diff --git a/Arcade_MiST/Galaga Hardware/DigDug_MiST/DigDug_MiST.srf b/Arcade_MiST/Galaga Hardware/DigDug_MiST/DigDug_MiST.srf deleted file mode 100644 index 9dc57685..00000000 --- a/Arcade_MiST/Galaga Hardware/DigDug_MiST/DigDug_MiST.srf +++ /dev/null @@ -1,14 +0,0 @@ -{ "" "" "" "Verilog HDL Declaration warning at tv80s.v(55): \"do\" is SystemVerilog-2005 keyword" { } { } 0 10463 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Unrecognized synthesis attribute \"dc_script_begin\" at rtl/TV80/tv80_reg.v(67)" { } { } 0 10335 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Net \"R\" at tv80_core.v(97) has no driver or initial value, using a default initial value '0'" { } { } 0 10030 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Verilog HDL warning at tv80_core.v(97): object R used but never assigned" { } { } 0 10858 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "Output port \"rfsh_n\" at tv80_core.v(59) has no driver" { } { } 0 10034 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10335 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10463 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10230 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 276027 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10268 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10036 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10273 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 10270 "" 0 0 "Quartus II" 0 -1 0 ""} -{ "" "" "" "*" { } { } 0 14284 "" 0 0 "Quartus II" 0 -1 0 ""} diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qpf b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qpf new file mode 100644 index 00000000..dbbbab92 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2011 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II +# Version 10.1 Build 197 01/19/2011 Service Pack 1 SJ Full Version +# Date created = 23:49:02 July 13, 2012 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "10.1" +DATE = "23:49:02 July 13, 2012" + +# Revisions + +PROJECT_REVISION = "LodeRunner_MiST" diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qsf b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qsf new file mode 100644 index 00000000..7e0b14c7 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/LodeRunner_MiST.qsf @@ -0,0 +1,275 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 64-Bit +# Version 13.1.0 Build 162 10/23/2013 SJ Web Edition +# Date created = 21:06:00 February 29, 2020 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# LodeRunner_MiST_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + + +# Project-Wide Assignments +# ======================== +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL +set_global_assignment -name LAST_QUARTUS_VERSION 13.1 +set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl" +set_global_assignment -name SMART_RECOMPILE ON +set_global_assignment -name SYSTEMVERILOG_FILE rtl/LodeRunner_MiST.sv +set_global_assignment -name VHDL_FILE rtl/target_top.vhd +set_global_assignment -name VHDL_FILE rtl/platform_variant_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/platform_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/platform.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/pace.vhd +set_global_assignment -name VHDL_FILE rtl/Graphics.VHD +set_global_assignment -name VHDL_FILE rtl/video_mixer.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl.vhd +set_global_assignment -name VHDL_FILE rtl/bitmapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/spritereg.vhd +set_global_assignment -name VHDL_FILE rtl/spritectl.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_array.vhd +set_global_assignment -name VHDL_FILE rtl/Inputs.VHD +set_global_assignment -name VHDL_FILE rtl/input_mapper.vhd +set_global_assignment -name VHDL_FILE rtl/dprom_2r.vhd +set_global_assignment -name VHDL_FILE rtl/dpram.vhd +set_global_assignment -name VHDL_FILE rtl/sprom.vhd +set_global_assignment -name VHDL_FILE rtl/spram.vhd +set_global_assignment -name VHDL_FILE rtl/clk_div.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv +set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd +set_global_assignment -name VHDL_FILE rtl/cpu68.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/YM2149.sv +set_global_assignment -name VHDL_FILE rtl/Sound_Board.vhd +set_global_assignment -name VHDL_FILE rtl/roms/ldrun/snd_prg.vhd +set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip +set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip +set_global_assignment -name VHDL_FILE ../../../common/CPU/T80/Z80.vhd + +# Pin & Location Assignments +# ========================== +set_location_assignment PIN_7 -to LED +set_location_assignment PIN_54 -to CLOCK_27 +set_location_assignment PIN_144 -to VGA_R[5] +set_location_assignment PIN_143 -to VGA_R[4] +set_location_assignment PIN_142 -to VGA_R[3] +set_location_assignment PIN_141 -to VGA_R[2] +set_location_assignment PIN_137 -to VGA_R[1] +set_location_assignment PIN_135 -to VGA_R[0] +set_location_assignment PIN_133 -to VGA_B[5] +set_location_assignment PIN_132 -to VGA_B[4] +set_location_assignment PIN_125 -to VGA_B[3] +set_location_assignment PIN_121 -to VGA_B[2] +set_location_assignment PIN_120 -to VGA_B[1] +set_location_assignment PIN_115 -to VGA_B[0] +set_location_assignment PIN_114 -to VGA_G[5] +set_location_assignment PIN_113 -to VGA_G[4] +set_location_assignment PIN_112 -to VGA_G[3] +set_location_assignment PIN_111 -to VGA_G[2] +set_location_assignment PIN_110 -to VGA_G[1] +set_location_assignment PIN_106 -to VGA_G[0] +set_location_assignment PIN_136 -to VGA_VS +set_location_assignment PIN_119 -to VGA_HS +set_location_assignment PIN_65 -to AUDIO_L +set_location_assignment PIN_80 -to AUDIO_R +set_location_assignment PIN_105 -to SPI_DO +set_location_assignment PIN_88 -to SPI_DI +set_location_assignment PIN_126 -to SPI_SCK +set_location_assignment PIN_127 -to SPI_SS2 +set_location_assignment PIN_91 -to SPI_SS3 +set_location_assignment PIN_13 -to CONF_DATA0 +set_location_assignment PIN_49 -to SDRAM_A[0] +set_location_assignment PIN_44 -to SDRAM_A[1] +set_location_assignment PIN_42 -to SDRAM_A[2] +set_location_assignment PIN_39 -to SDRAM_A[3] +set_location_assignment PIN_4 -to SDRAM_A[4] +set_location_assignment PIN_6 -to SDRAM_A[5] +set_location_assignment PIN_8 -to SDRAM_A[6] +set_location_assignment PIN_10 -to SDRAM_A[7] +set_location_assignment PIN_11 -to SDRAM_A[8] +set_location_assignment PIN_28 -to SDRAM_A[9] +set_location_assignment PIN_50 -to SDRAM_A[10] +set_location_assignment PIN_30 -to SDRAM_A[11] +set_location_assignment PIN_32 -to SDRAM_A[12] +set_location_assignment PIN_83 -to SDRAM_DQ[0] +set_location_assignment PIN_79 -to SDRAM_DQ[1] +set_location_assignment PIN_77 -to SDRAM_DQ[2] +set_location_assignment PIN_76 -to SDRAM_DQ[3] +set_location_assignment PIN_72 -to SDRAM_DQ[4] +set_location_assignment PIN_71 -to SDRAM_DQ[5] +set_location_assignment PIN_69 -to SDRAM_DQ[6] +set_location_assignment PIN_68 -to SDRAM_DQ[7] +set_location_assignment PIN_86 -to SDRAM_DQ[8] +set_location_assignment PIN_87 -to SDRAM_DQ[9] +set_location_assignment PIN_98 -to SDRAM_DQ[10] +set_location_assignment PIN_99 -to SDRAM_DQ[11] +set_location_assignment PIN_100 -to SDRAM_DQ[12] +set_location_assignment PIN_101 -to SDRAM_DQ[13] +set_location_assignment PIN_103 -to SDRAM_DQ[14] +set_location_assignment PIN_104 -to SDRAM_DQ[15] +set_location_assignment PIN_58 -to SDRAM_BA[0] +set_location_assignment PIN_51 -to SDRAM_BA[1] +set_location_assignment PIN_85 -to SDRAM_DQMH +set_location_assignment PIN_67 -to SDRAM_DQML +set_location_assignment PIN_60 -to SDRAM_nRAS +set_location_assignment PIN_64 -to SDRAM_nCAS +set_location_assignment PIN_66 -to SDRAM_nWE +set_location_assignment PIN_59 -to SDRAM_nCS +set_location_assignment PIN_33 -to SDRAM_CKE +set_location_assignment PIN_43 -to SDRAM_CLK +set_location_assignment PLL_1 -to "pll:pll|altpll:altpll_component" + +# Classic Timing Assignments +# ========================== +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON + +# Analysis & Synthesis Assignments +# ================================ +set_global_assignment -name FAMILY "Cyclone III" +set_global_assignment -name TOP_LEVEL_ENTITY LodeRunner_MiST +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 +set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 +set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP +set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED +set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON +set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE ON +set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 +set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF +set_global_assignment -name SEARCH_PATH common/CPU/T80/ -tag from_archive +set_global_assignment -name SEARCH_PATH common/mist/ -tag from_archive +set_global_assignment -name SEARCH_PATH rtl/ -tag from_archive + +# Fitter Assignments +# ================== +set_global_assignment -name DEVICE EP3C25E144C8 +set_global_assignment -name ENABLE_CONFIGURATION_PINS OFF +set_global_assignment -name ENABLE_NCE_PIN OFF +set_global_assignment -name ENABLE_BOOT_SEL_PIN OFF +set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "PASSIVE SERIAL" +set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF +set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON +set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL" +set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" +set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON +set_global_assignment -name FITTER_EFFORT "STANDARD FIT" + +# Assembler Assignments +# ===================== +set_global_assignment -name GENERATE_RBF_FILE ON +set_global_assignment -name USE_CONFIGURATION_DEVICE OFF + +# SignalTap II Assignments +# ======================== +set_global_assignment -name ENABLE_SIGNALTAP OFF +set_global_assignment -name USE_SIGNALTAP_FILE output_files/mcr3.stp + +# Power Estimation Assignments +# ============================ +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" + +# Advanced I/O Timing Assignments +# =============================== +set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise +set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall +set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise +set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall + +# ----------------------------- +# start ENTITY(LodeRunner_MiST) + + # Pin & Location Assignments + # ========================== + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQ[*] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_A[*] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[0] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[1] + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQMH + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQML + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nRAS + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCAS + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nWE + set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCS + set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] + set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] + + # Fitter Assignments + # ================== + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_A[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQ[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_BA[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQML + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQMH + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nRAS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCAS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nWE + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CKE + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CLK + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[*] + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_HS + set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_VS + set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_L + set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_R + set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to SPI_DO + + # start DESIGN_PARTITION(Top) + # --------------------------- + + # Incremental Compilation Assignments + # =================================== + set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top + set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top + set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top + + # end DESIGN_PARTITION(Top) + # ------------------------- + +# end ENTITY(LodeRunner_MiST) +# --------------------------- +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/clean.bat b/Arcade_MiST/IremM62 Hardware/Kung_MiST/clean.bat new file mode 100644 index 00000000..c9a2cb06 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/clean.bat @@ -0,0 +1,15 @@ +@echo off +del /s *.bak +del /s *.orig +del /s *.rej +rmdir /s /q db +rmdir /s /q incremental_db +rmdir /s /q output +rmdir /s /q simulation +rmdir /s /q greybox_tmp +del PLLJ_PLLSPE_INFO.txt +del *.qws +del *.ppf +del *.qip +del *.ddb +pause diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Graphics.VHD b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Graphics.VHD new file mode 100644 index 00000000..dc3fb666 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Graphics.VHD @@ -0,0 +1,272 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.std_logic_arith.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; + +entity Graphics is + port + ( + bitmap_ctl_i : in to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_ctl_o : out from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_i : in to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_ctl_o : out from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_i : in to_SPRITE_REG_t; + sprite_ctl_i : in to_SPRITE_CTL_t; + sprite_ctl_o : out from_SPRITE_CTL_t; + spr0_hit : out std_logic; + + graphics_i : in to_GRAPHICS_t; + graphics_o : out from_GRAPHICS_t; + + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t + ); + +end Graphics; + +architecture SYN of Graphics is + + alias clk : std_logic is video_i.clk; + + signal from_video_ctl : from_VIDEO_CTL_t; + signal bitmap_ctl_o_s : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal tilemap_ctl_o_s : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal sprite_ctl_o_s : from_SPRITE_CTL_t; + signal sprite_pri : std_logic; + + + signal rgb_data : RGB_t; + -- before OSD is mixed in + signal video_o_s : to_VIDEO_t; + +begin + + -- dodgy OSD transparency... + video_o.clk <= video_o_s.clk; + video_o.rgb.r <= video_o_s.rgb.r; + video_o.rgb.g <= video_o_s.rgb.g; + video_o.rgb.b <= video_o_s.rgb.b; + video_o.hsync <= video_o_s.hsync; + video_o.vsync <= video_o_s.vsync; + video_o.hblank <= video_o_s.hblank; + video_o.vblank <= video_o_s.vblank; + + graphics_o.y <= from_video_ctl.y; + -- should this be the 'real' vblank or the 'active' vblank? + -- - use the real for now + graphics_o.hblank <= video_o_s.hblank; + graphics_o.vblank <= video_o_s.vblank; + --graphics_o.vblank <= from_video_ctl.vblank; + + pace_video_controller_inst : entity work.pace_video_controller + generic map + ( + CONFIG => PACE_VIDEO_CONTROLLER_TYPE, + DELAY => PACE_VIDEO_PIPELINE_DELAY, + H_SIZE => PACE_VIDEO_H_SIZE, + V_SIZE => PACE_VIDEO_V_SIZE, + L_CROP => PACE_VIDEO_L_CROP, + R_CROP => PACE_VIDEO_R_CROP, + H_SCALE => PACE_VIDEO_H_SCALE, + V_SCALE => PACE_VIDEO_V_SCALE, + H_SYNC_POL => PACE_VIDEO_H_SYNC_POLARITY, + V_SYNC_POL => PACE_VIDEO_V_SYNC_POLARITY, + BORDER_RGB => PACE_VIDEO_BORDER_RGB + ) + port map + ( + -- clocking etc + video_i => video_i, + + -- register interface + reg_i.h_scale => "000", + reg_i.v_scale => "000", + -- video data signals (in) + rgb_i => rgb_data, + + -- video control signals (out) + video_ctl_o => from_video_ctl, + + -- VGA signals (out) + video_o => video_o_s + ); + + pace_video_mixer_inst : entity work.pace_video_mixer + port map + ( + bitmap_ctl_o => bitmap_ctl_o_s, + tilemap_ctl_o => tilemap_ctl_o_s, + sprite_rgb => sprite_ctl_o_s.rgb, + sprite_set => sprite_ctl_o_s.set, + sprite_pri => sprite_pri, + + video_ctl_i => from_video_ctl, + graphics_i => graphics_i, + rgb_o => rgb_data + ); + + GEN_NO_BITMAPS : if PACE_VIDEO_NUM_BITMAPS = 0 generate + --bitmap_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + end generate GEN_NO_BITMAPS; + + GEN_BITMAP_1 : if PACE_VIDEO_NUM_BITMAPS > 0 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(1), + ctl_o => bitmap_ctl_o_s(1), + + graphics_i => graphics_i + ); + end generate GEN_BITMAP_1; + + GEN_BITMAP_2 : if PACE_VIDEO_NUM_BITMAPS > 1 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(2), + ctl_o => bitmap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_2; + + GEN_BITMAP_3 : if PACE_VIDEO_NUM_BITMAPS > 2 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_3) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(3), + ctl_o => bitmap_ctl_o_s(3), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_3; + + bitmap_ctl_o <= bitmap_ctl_o_s; + + GEN_NO_TILEMAPS : if PACE_VIDEO_NUM_TILEMAPS = 0 generate + --tilemap_ctl_o_s(1) <= ((others => '0'), (others => '0'), (others => '0'), + -- (others => (others => '0')), '0'); + end generate GEN_NO_TILEMAPS; + + GEN_TILEMAP_1 : if PACE_VIDEO_NUM_TILEMAPS > 0 generate + + foreground_mapctl_inst : entity work.tilemapCtl(TILEMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(1), + ctl_o => tilemap_ctl_o_s(1), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_1; + + GEN_TILEMAP_2 : if PACE_VIDEO_NUM_TILEMAPS > 1 generate + + background_mapctl_inst : entity work.tilemapCtl(TILEMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(2), + ctl_o => tilemap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_2; + + tilemap_ctl_o <= tilemap_ctl_o_s; + + GEN_NO_SPRITES : if PACE_VIDEO_NUM_SPRITES = 0 generate + sprite_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + sprite_pri <= '0'; + spr0_hit <= '0'; + end generate GEN_NO_SPRITES; + + GEN_SPRITES : if PACE_VIDEO_NUM_SPRITES > 0 generate + + sprites_inst : sprite_array + generic map + ( + N_SPRITES => PACE_VIDEO_NUM_SPRITES, + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + -- register interface + reg_i => sprite_reg_i, + + -- video control signals + video_ctl => from_video_ctl, + + graphics_i => graphics_i, + + row_a => sprite_ctl_o_s.a, + row_d => sprite_ctl_i.d, + + rgb => sprite_ctl_o_s.rgb, + set => sprite_ctl_o_s.set, + pri => sprite_pri, + spr0_set => spr0_hit + ); + + end generate GEN_SPRITES; + + sprite_ctl_o <= sprite_ctl_o_s; + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD new file mode 100644 index 00000000..6551aeaf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Inputs.VHD @@ -0,0 +1,51 @@ +Library IEEE; +Use IEEE.std_logic_1164.all; + +library work; +use work.pace_pkg.all; + +entity inputs is + generic + ( + NUM_DIPS : integer := 8; + NUM_INPUTS : integer := 2; + CLK_1US_DIV : natural := 30 + ); + port + ( + clk : in std_logic; + reset : in std_logic; + jamma : in from_JAMMA_t; + + dips : in std_logic_vector(NUM_DIPS-1 downto 0); + inputs : out from_MAPPED_INPUTS_t(0 to NUM_INPUTS-1) + ); +end entity inputs; + +architecture SYN of inputs is + + signal reset_n : std_logic; + + +begin + + reset_n <= not reset; + + + inputmapper_inst : entity work.inputmapper + generic map + ( + NUM_DIPS => NUM_DIPS, + NUM_INPUTS => NUM_INPUTS + ) + port map + ( + clk => clk, + rst_n => reset_n, + jamma => jamma, + dips => dips, + inputs => inputs + ); + + +end architecture SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/LodeRunner_MiST.sv b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/LodeRunner_MiST.sv new file mode 100644 index 00000000..d5564488 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/LodeRunner_MiST.sv @@ -0,0 +1,285 @@ +module LodeRunner_MiST( + output LED, + output [5:0] VGA_R, + output [5:0] VGA_G, + output [5:0] VGA_B, + output VGA_HS, + output VGA_VS, + output AUDIO_L, + output AUDIO_R, + input SPI_SCK, + output SPI_DO, + input SPI_DI, + input SPI_SS2, + input SPI_SS3, + input CONF_DATA0, + input CLOCK_27, + + output [12:0] SDRAM_A, + inout [15:0] SDRAM_DQ, + output SDRAM_DQML, + output SDRAM_DQMH, + output SDRAM_nWE, + output SDRAM_nCAS, + output SDRAM_nRAS, + output SDRAM_nCS, + output [1:0] SDRAM_BA, + output SDRAM_CLK, + output SDRAM_CKE +); + +`include "rtl/build_id.v" + +localparam CONF_STR = { + "KUNGFUM;ROM;", + "O2,Rotate Controls,Off,On;", + "O34,Scanlines,Off,25%,50%,75%;", + "O5,Blending,Off,On;", + "O6,Service,Off,On;", + "T0,Reset;", + "V,v1.0.",`BUILD_DATE +}; + +wire rotate = status[2]; +wire [1:0] scanlines = status[4:3]; +wire blend = status[5]; +wire service = status[6]; + +assign LED = ~ioctl_downl; +assign SDRAM_CLK = clk_sd; +assign SDRAM_CKE = 1; + +wire clk_sys, clk_aud, clk_sd, clk_vid; +wire pll_locked; +pll_mist pll( + .inclk0(CLOCK_27), + .areset(0), + .c0(clk_sys), + .c1(clk_vid), + .c2(clk_sd), + .c3(clk_aud), + .locked(pll_locked) + ); + +wire [31:0] status; +wire [1:0] buttons; +wire [1:0] switches; +wire [7:0] joystick_0; +wire [7:0] joystick_1; +wire scandoublerD; +wire ypbpr; +wire no_csync; +wire key_pressed; +wire [7:0] key_code; +wire key_strobe; + +user_io #( + .STRLEN(($size(CONF_STR)>>3))) +user_io( + .clk_sys (clk_sys ), + .conf_str (CONF_STR ), + .SPI_CLK (SPI_SCK ), + .SPI_SS_IO (CONF_DATA0 ), + .SPI_MISO (SPI_DO ), + .SPI_MOSI (SPI_DI ), + .buttons (buttons ), + .switches (switches ), + .scandoubler_disable (scandoublerD ), + .ypbpr (ypbpr ), + .no_csync (no_csync ), + .key_strobe (key_strobe ), + .key_pressed (key_pressed ), + .key_code (key_code ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), + .status (status ) + ); + +wire [14:0] rom_addr; +wire [15:0] rom_do; + +wire [13:0] snd_addr; +wire [15:0] snd_do; + +wire [14:0] sp_addr; +wire [31:0] sp_do; + +wire ioctl_downl; +wire [7:0] ioctl_index; +wire ioctl_wr; +wire [24:0] ioctl_addr; +wire [7:0] ioctl_dout; + +data_io data_io( + .clk_sys ( clk_sd ), + .SPI_SCK ( SPI_SCK ), + .SPI_SS2 ( SPI_SS2 ), + .SPI_DI ( SPI_DI ), + .ioctl_download( ioctl_downl ), + .ioctl_index ( ioctl_index ), + .ioctl_wr ( ioctl_wr ), + .ioctl_addr ( ioctl_addr ), + .ioctl_dout ( ioctl_dout ) +); + +wire [24:0] sp_ioctl_addr = ioctl_addr - 17'h10000; //todo + +reg port1_req, port2_req; +sdram sdram( + .*, + .init_n ( pll_locked ), + .clk ( clk_sd ), + + // port1 used for main + sound CPU + .port1_req ( port1_req ), + .port1_ack ( ), + .port1_a ( ioctl_addr[23:1] ), + .port1_ds ( {ioctl_addr[0], ~ioctl_addr[0]} ), + .port1_we ( ioctl_downl ), + .port1_d ( {ioctl_dout, ioctl_dout} ), + .port1_q ( ), + + .cpu1_addr ( ioctl_downl ? 16'hffff : {2'b00, rom_addr[14:1]} ), + .cpu1_q ( rom_do ), + .cpu2_addr ( ioctl_downl ? 16'hffff : (16'h4000 + snd_addr[13:1]) ), + .cpu2_q ( snd_do ), + + // port2 for sprite graphics + .port2_req ( port2_req ), + .port2_ack ( ), + .port2_a ( {sp_ioctl_addr[23:16], sp_ioctl_addr[13:0], sp_ioctl_addr[15]} ), // merge sprite roms to 32-bit wide words + .port2_ds ( {sp_ioctl_addr[14], ~sp_ioctl_addr[14]} ), + .port2_we ( ioctl_downl ), + .port2_d ( {ioctl_dout, ioctl_dout} ), + .port2_q ( ), + + .sp_addr ( ioctl_downl ? 15'h7fff : sp_addr ), + .sp_q ( sp_do ) +); + +// ROM download controller +always @(posedge clk_sd) begin + reg ioctl_wr_last = 0; + + ioctl_wr_last <= ioctl_wr; + if (ioctl_downl) begin + if (~ioctl_wr_last && ioctl_wr) begin + port1_req <= ~port1_req; + port2_req <= ~port2_req; + end + end +end + +// reset signal generation +reg reset = 1; +reg rom_loaded = 0; +always @(posedge clk_sys) begin + reg ioctl_downlD; + reg [15:0] reset_count; + ioctl_downlD <= ioctl_downl; + + if (status[0] | buttons[1] | ~rom_loaded) reset_count <= 16'hffff; + else if (reset_count != 0) reset_count <= reset_count - 1'd1; + + if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1; + reset <= reset_count != 16'h0000; + +end + +wire [11:0] audio; +wire hs, vs; +wire blankn = 1'b1;//todo +wire [3:0] g,b,r; + +target_top target_top( + .clock_sys(clk_sys),//4xclk_vid + .clock_vid(clk_vid),//11MHz + .clk_aud(clk_aud),//0.895MHz + .reset_in(reset), + .audio_out(audio), + .usr_coin1(m_coin1), + .usr_coin2(m_coin2), + .usr_service(service), + .usr_start1(m_one_player), + .usr_start2(m_two_players), + .p1_up(m_up), + .p1_dw(m_down), + .p1_lt(m_left), + .p1_rt(m_right), + .p1_f1(m_fireA), + .p1_f2(m_fireB), + .p2_up(m_up2), + .p2_dw(m_down2), + .p2_lt(m_left2), + .p2_rt(m_right2), + .p2_f1(m_fire2A), + .p2_f2(m_fire2B), + .VGA_VS(vs), + .VGA_HS(hs), + .VGA_R(r), + .VGA_G(g), + .VGA_B(b), + .cpu_rom_addr(rom_addr), + .cpu_rom_do( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ), + .snd_rom_addr(snd_addr), + .snd_rom_do(snd_addr[0] ? snd_do[15:8] : snd_do[7:0]) + ); + +mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video( + .clk_sys ( clk_sys ), + .SPI_SCK ( SPI_SCK ), + .SPI_SS3 ( SPI_SS3 ), + .SPI_DI ( SPI_DI ), + .R ( blankn ? r : 0 ), + .G ( blankn ? g : 0 ), + .B ( blankn ? b : 0 ), + .HSync ( hs ), + .VSync ( vs ), + .VGA_R ( VGA_R ), + .VGA_G ( VGA_G ), + .VGA_B ( VGA_B ), + .VGA_VS ( VGA_VS ), + .VGA_HS ( VGA_HS ), + .rotate ( { 1'b1, rotate } ), + .ce_divider ( 1'b0 ), + .scandoubler_disable( scandoublerD ), + .scanlines ( scanlines ), + .blend ( blend ), + .ypbpr ( ypbpr ), + .no_csync ( no_csync ) + ); + +wire dac_o; +assign AUDIO_L = dac_o; +assign AUDIO_R = dac_o; + +dac #( + .C_bits(12)) +dac( + .clk_i(clk_aud), + .res_n_i(1), + .dac_i(audio), + .dac_o(dac_o) + ); + +wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF; +wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F; +wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players; + +arcade_inputs inputs ( + .clk ( clk_sys ), + .key_strobe ( key_strobe ), + .key_pressed ( key_pressed ), + .key_code ( key_code ), + .joystick_0 ( joystick_0 ), + .joystick_1 ( joystick_1 ), + .rotate ( rotate ), + .orientation ( 2'b10 ), + .joyswap ( 1'b0 ), + .oneplayer ( 1'b1 ), + .controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ), + .player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ), + .player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} ) +); + +endmodule diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Sound_Board.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Sound_Board.vhd new file mode 100644 index 00000000..abcb4631 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/Sound_Board.vhd @@ -0,0 +1,423 @@ +--------------------------------------------------------------------------------- +-- Moon patrol sound board by Dar (darfpga@aol.fr) +-- http://darfpga.blogspot.fr +--------------------------------------------------------------------------------- +-- gen_ram.vhd +-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com) +-- http://www.syntiac.com/fpga64.html +--------------------------------------------------------------------------------- +-- cpu68 - Version 9th Jan 2004 0.8 +-- 6800/01 compatible CPU core +-- GNU public license - December 2002 : John E. Kent +--------------------------------------------------------------------------------- +-- Educational use only +-- Do not redistribute synthetized file with roms +-- Do not redistribute roms whatever the form +-- Use at your own risk +--------------------------------------------------------------------------------- +-- Version 0.0 -- 24/11/2017 -- +-- initial version +--------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +entity Sound_Board is +port( + clock_E : in std_logic; -- 3.58 Mhz/4 + areset : in std_logic; + + select_sound : in std_logic_vector(7 downto 0); + audio_out : out std_logic_vector(11 downto 0); + snd_rom_addr : out std_logic_vector(13 downto 0); + snd_rom_do : in std_logic_vector(7 downto 0); + + dbg_cpu_addr : out std_logic_vector(15 downto 0) +); +end Sound_Board; + +architecture struct of Sound_Board is + component YM2149 + port ( + CLK : in std_logic; + CE : in std_logic; + RESET : in std_logic; + A8 : in std_logic := '1'; + A9_L : in std_logic := '0'; + BDIR : in std_logic; -- Bus Direction (0 - read , 1 - write) + BC : in std_logic; -- Bus control + DI : in std_logic_vector(7 downto 0); + DO : out std_logic_vector(7 downto 0); + CHANNEL_A : out std_logic_vector(7 downto 0); + CHANNEL_B : out std_logic_vector(7 downto 0); + CHANNEL_C : out std_logic_vector(7 downto 0); + + SEL : in std_logic; + MODE : in std_logic; + + ACTIVE : out std_logic_vector(5 downto 0); + + IOA_in : in std_logic_vector(7 downto 0); + IOA_out : out std_logic_vector(7 downto 0); + + IOB_in : in std_logic_vector(7 downto 0); + IOB_out : out std_logic_vector(7 downto 0) + ); + end component; + + signal reset : std_logic := '1'; + signal reset_cnt : integer range 0 to 1000000 := 1000000; + + signal cpu_addr : std_logic_vector(15 downto 0); + signal cpu_di : std_logic_vector( 7 downto 0); + signal cpu_do : std_logic_vector( 7 downto 0); + signal cpu_rw : std_logic; + signal cpu_irq : std_logic; + signal cpu_nmi : std_logic; + + signal irqraz_cs : std_logic; + signal irqraz_we : std_logic; + + signal wram_cs : std_logic; + signal wram_we : std_logic; + signal wram_do : std_logic_vector( 7 downto 0); + + signal rom_cs : std_logic; + signal rom_do : std_logic_vector( 7 downto 0); + + signal ay1_chan_a : std_logic_vector(7 downto 0); + signal ay1_chan_b : std_logic_vector(7 downto 0); + signal ay1_chan_c : std_logic_vector(7 downto 0); + signal ay1_do : std_logic_vector(7 downto 0); + signal ay1_audio : std_logic_vector(9 downto 0); + signal ay1_port_b_do : std_logic_vector(7 downto 0); + + signal ay2_chan_a : std_logic_vector(7 downto 0); + signal ay2_chan_b : std_logic_vector(7 downto 0); + signal ay2_chan_c : std_logic_vector(7 downto 0); + signal ay2_do : std_logic_vector(7 downto 0); + signal ay2_audio : std_logic_vector(9 downto 0); + + signal ports_cs : std_logic; + signal ports_we : std_logic; + + signal port1_bus : std_logic_vector(7 downto 0); + signal port1_data : std_logic_vector(7 downto 0); + signal port1_ddr : std_logic_vector(7 downto 0); + signal port1_in : std_logic_vector(7 downto 0); + + signal port2_bus : std_logic_vector(7 downto 0); + signal port2_data : std_logic_vector(7 downto 0); + signal port2_ddr : std_logic_vector(7 downto 0); + signal port2_in : std_logic_vector(7 downto 0); + + signal adpcm_cs : std_logic; + signal adpcm_we : std_logic; + signal adpcm_0_di : std_logic_vector(3 downto 0); + + signal select_sound_r : std_logic_vector(7 downto 0); + + signal audio : std_logic_vector(12 downto 0); + + type t_step_size is array(0 to 48) of integer range 0 to 1552; + constant step_size : t_step_size := ( + 16, 17, 19, 21, 23, 25, 28, 31, + 34, 37, 41, 45, 50, 55, 60, 66, + 73, 80, 88, 97, 107, 118, 130, 143, + 157, 173, 190, 209, 230, 253, 279, 307, + 337, 371, 408, 449, 494, 544, 598, 658, + 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552); + + type t_delta_step is array(0 to 7) of integer range -1 to 8; + constant delta_step : t_delta_step := (-1,-1,-1,-1,2,4,6,8); + + signal adpcm_vclk : std_logic := '0'; + signal adpcm_signal : integer range -16384 to 16383 := 0; + +-- adpcm algorithm (4bits) [no pcm here] +-- +-- val : input value 3bits (0 - 7 : b2b1b0) +-- sign : input value sign (4th bit : 0=>sign=1 ,1=>sign=-1) +-- +-- step : internal data, init = 0 +-- signal : output value, init = 0; +-- +-- for each new val (and sign) : +-- | +-- | step_size = 16*1.1^(step) +-- | delta = sign * (step_size/8 + step_size/4*b0 + step_size/2*b1 + step_size*b2) +-- | signal = signal + delta +-- | step = step + delta_step(val) +-- | +-- | signal is then limited between -2048..2047 +-- | step is then limited between 0..48 + +begin + +dbg_cpu_addr <= cpu_addr; + +-- cs +wram_cs <= '1' when cpu_addr(15 downto 7) = X"00"&'1' else '0'; -- 0080-00FF +ports_cs <= '1' when cpu_addr(15 downto 4) = X"000" else '0'; -- 0000-000F +adpcm_cs <= '1' when cpu_addr(14 downto 11) = "0001" else '0'; -- 0800-0FFF / 8800-8FFF +irqraz_cs <= '1' when cpu_addr(14 downto 12) = "001" else '0'; -- 1000-1FFF / 9000-9FFF +rom_cs <= '1' when cpu_addr(14 downto 12) = "111" else '0'; -- 7000-7FFF / F000-FFFF + +-- write enables +wram_we <= '1' when cpu_rw = '0' and wram_cs = '1' else '0'; +ports_we <= '1' when cpu_rw = '0' and ports_cs = '1' else '0'; +adpcm_we <= '1' when cpu_rw = '0' and adpcm_cs = '1' else '0'; +irqraz_we <= '1' when cpu_rw = '0' and irqraz_cs = '1' else '0'; + +-- mux cpu in data between roms/io/wram +cpu_di <= + wram_do when wram_cs = '1' else + port1_ddr when ports_cs = '1' and cpu_addr(3 downto 0) = X"0" else + port2_ddr when ports_cs = '1' and cpu_addr(3 downto 0) = X"1" else + port1_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"2" else + port2_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"3" else + snd_rom_do when rom_cs = '1' else X"55"; + +process (clock_E) +begin + if rising_edge(clock_E) then + reset <= '0'; + if reset_cnt /= 0 then + reset_cnt <= reset_cnt - 1; + reset <= '1'; + end if; + if areset = '1' then + reset_cnt <= 1000000; + end if; + end if; +end process; + +-- irq to cpu +process (reset, clock_E) +begin + if reset='1' then + cpu_irq <= '0'; + select_sound_r(7) <= '1'; + elsif rising_edge(clock_E) then + select_sound_r <= select_sound; + if select_sound_r(7) = '0' then + cpu_irq <= '1'; + end if; + if irqraz_we = '1' then + cpu_irq <= '0'; + end if; + end if; +end process; + +-- cpu nmi +cpu_nmi <= adpcm_vclk; + +-- 6803 ports 1 and 2 (only) +process (reset, clock_E) +begin + if reset='1' then + port1_ddr <= (others=>'0'); -- port1 set as input + port1_data <= (others=>'0'); -- port1 data set to 0 + port2_ddr <= ("11100000"); -- port2 bit 7 to 5 should always remain output to simulate mode data + port2_data <= ("01000000"); -- port2 data bit 7 to 5 set to 2 (for mode 2 at start up) + elsif rising_edge(clock_E) then + if ports_cs = '1' and ports_we = '1' then + if cpu_addr(3 downto 0) = X"0" then port1_ddr <= cpu_do; end if; + if cpu_addr(3 downto 0) = X"1" then port2_ddr <= cpu_do and "11100000"; end if; + if cpu_addr(3 downto 0) = X"2" then port1_data <= cpu_do; end if; + if cpu_addr(3 downto 0) = X"3" then port2_data <= cpu_do; end if; + end if; + end if; +end process; + +port1_in <= (port1_bus and not(port1_ddr)) or (port1_data and port1_ddr); +port2_in <= (port2_bus and not(port2_ddr)) or (port2_data and port2_ddr); + +-- port1 bus mux +port1_bus <= ay1_do when port2_data(4) = '0' else + ay2_do when port2_data(3) = '0' else X"FF"; + +-- port2 bus +port2_bus <= X"FF"; + + +-- latch adpcm (msm5205) data in +process (reset, clock_E) +begin + if reset='1' then + adpcm_0_di <= (others=>'0'); + elsif rising_edge(clock_E) then + if adpcm_cs = '1' and adpcm_we = '1' then + if cpu_addr(1) = '0' then adpcm_0_di <= cpu_do(3 downto 0); end if; + end if; + end if; +end process; + +-- adcpm clocks and computation -- make 24kHz and vclk 8/6/4kHz +adpcm_clocks : process(clock_E, ay1_port_b_do) + variable clock_div_a : integer range 0 to 148 := 0; + variable clock_div_b : integer range 0 to 5 := 0; + variable step : integer range 0 to 48; + variable step_n : integer range -1 to 48+8; + variable sz : integer range 0 to 1552; + variable dn : integer range -32768 to 32767; + variable adpcm_signal_n : integer range -32768 to 32767; +begin + if rising_edge(clock_E) then + if clock_div_a = 37 then -- 24kHz + clock_div_a := 0; + + case ay1_port_b_do(3 downto 2) is + when "00" => if clock_div_b = 5 then clock_div_b := 0; else clock_div_b := clock_div_b +1; end if; -- 4kHz + when "01" => if clock_div_b = 2 then clock_div_b := 0; else clock_div_b := clock_div_b +1; end if; -- 8kHz + when "10" => if clock_div_b = 3 then clock_div_b := 0; else clock_div_b := clock_div_b +1; end if; -- 6kHz + when others => null; + end case; + + if clock_div_b = 0 then adpcm_vclk <= '1'; else adpcm_vclk <= '0'; end if; + else + clock_div_a := clock_div_a + 1; + end if; + + if ay1_port_b_do(0) = '1' then + step := 0; + adpcm_signal <= 0; + else + + if clock_div_b = 0 then + case clock_div_a is + + when 0 => -- it's time to get new nibble (adpcm_0_di) + + sz := step_size(step); + dn := sz/8; + if adpcm_0_di(0) = '1' then dn := dn + sz/4; end if; + if adpcm_0_di(1) = '1' then dn := dn + sz/2; end if; + if adpcm_0_di(2) = '1' then dn := dn + sz ; end if; + + if adpcm_0_di(3) = '1' then + dn := -dn; + end if; + + step_n := step + delta_step(to_integer(unsigned(adpcm_0_di(2 downto 0)))); + + when 4 => + + adpcm_signal_n := adpcm_signal + dn; + + if step_n > 48 then step := 48; else step := step_n; end if; + if step_n < 0 then step := 0; else step := step_n; end if; + + when 8 => + + if adpcm_signal_n > 2040 then adpcm_signal <= 2040; else adpcm_signal <= adpcm_signal_n; end if; + if adpcm_signal_n < -2040 then adpcm_signal <= -2040; else adpcm_signal <= adpcm_signal_n; end if; + + when others => null; + + end case; + end if; + + end if; + end if; +end process; + +-- audio mux +audio <= ("000"&ay1_audio) + ("000"&ay2_audio) + ('0'&std_logic_vector(to_unsigned((adpcm_signal)+2048,12))); +audio_out <= audio(12 downto 1); + +-- microprocessor 6800/01/03 +main_cpu : entity work.cpu68 +port map( + clk => clock_E, -- E clock input (falling edge) + rst => reset, -- reset input (active high) + rw => cpu_rw, -- read not write output + vma => open, -- valid memory address (active high) + address => cpu_addr, -- address bus output + data_in => cpu_di, -- data bus input + data_out => cpu_do, -- data bus output + hold => '0', -- hold input (active high) extend bus cycle + halt => '0', -- halt input (active high) grants DMA + irq => cpu_irq, -- interrupt request input (active high) + nmi => cpu_nmi, -- non maskable interrupt request input (active high) + test_alu => open, + test_cc => open +); + + + + snd_rom_addr <= cpu_addr(13 downto 0); + + +-- cpu wram +cpu_ram : entity work.spram +generic map( widthad_a => 7) +port map( + clock => clock_E, + wren => wram_we, + address => cpu_addr(6 downto 0), + data => cpu_do, + q => wram_do +); + + ay83910_inst1: YM2149 + port map ( + CLK => clock_E, + CE => '1', + RESET => reset, + A8 => '1', + A9_L => port2_data(4), + BDIR => port2_data(0), + BC => port2_data(2), + DI => port1_data, + DO => ay1_do, + CHANNEL_A => ay1_chan_a, + CHANNEL_B => ay1_chan_b, + CHANNEL_C => ay1_chan_c, + + SEL => '0', + MODE => '1', + + ACTIVE => open, + + IOA_in => select_sound_r, + IOA_out => open, + + IOB_in => (others => '0'), + IOB_out => ay1_port_b_do + ); + + ay1_audio <= "0000000000" + ay1_chan_a + ay1_chan_b + ay1_chan_c; + + ay83910_inst2: YM2149 + port map ( + CLK => clock_E, + CE => '1', + RESET => reset, + A8 => '1', + A9_L => port2_data(3), + BDIR => port2_data(0), + BC => port2_data(2), + DI => port1_data, + DO => ay2_do, + CHANNEL_A => ay2_chan_a, + CHANNEL_B => ay2_chan_b, + CHANNEL_C => ay2_chan_c, + + SEL => '0', + MODE => '1', + + ACTIVE => open, + + IOA_in => (others => '0'), + IOA_out => open, + + IOB_in => (others => '0'), + IOB_out => open + ); + + ay2_audio <= "0000000000" + ay2_chan_a + ay2_chan_b + ay2_chan_c; + +end struct; \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/YM2149.sv b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/YM2149.sv new file mode 100644 index 00000000..eae73bb3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/YM2149.sv @@ -0,0 +1,329 @@ +// +// Copyright (c) MikeJ - Jan 2005 +// Copyright (c) 2016-2018 Sorgelig +// +// All rights reserved +// +// Redistribution and use in source and synthezised forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// Redistributions in synthesized form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// Neither the name of the author nor the names of other contributors may +// be used to endorse or promote products derived from this software without +// specific prior written permission. +// +// THIS CODE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + + +// BDIR BC MODE +// 0 0 inactive +// 0 1 read value +// 1 0 write value +// 1 1 set address +// + +module YM2149 +( + input CLK, // Global clock + input CE, // PSG Clock enable + input RESET, // Chip RESET (set all Registers to '0', active hi) + input BDIR, // Bus Direction (0 - read , 1 - write) + input BC, // Bus control + input A8, + input A9_L, + input [7:0] DI, // Data In + output [7:0] DO, // Data Out + output [7:0] CHANNEL_A, // PSG Output channel A + output [7:0] CHANNEL_B, // PSG Output channel B + output [7:0] CHANNEL_C, // PSG Output channel C + + input SEL, + input MODE, + + output [5:0] ACTIVE, + + input [7:0] IOA_in, + output [7:0] IOA_out, + + input [7:0] IOB_in, + output [7:0] IOB_out +); + +assign ACTIVE = ~ymreg[7][5:0]; +assign IOA_out = ymreg[7][6] ? ymreg[14] : 8'hff; +assign IOB_out = ymreg[7][7] ? ymreg[15] : 8'hff; + +reg [7:0] addr; +reg [7:0] ymreg[16]; +wire cs = !A9_L & A8; + +// Write to PSG +reg env_reset; +always @(posedge CLK) begin + if(RESET) begin + ymreg <= '{default:0}; + ymreg[7] <= '1; + addr <= '0; + env_reset <= 0; + end else begin + env_reset <= 0; + if(cs & BDIR) begin + if(BC) addr <= DI; + else if(!addr[7:4]) begin + ymreg[addr[3:0]] <= DI; + env_reset <= (addr == 13); + end + end + end +end + +// Read from PSG +assign DO = dout; +reg [7:0] dout; +always_comb begin + dout = 8'hFF; + if(cs & ~BDIR & BC & !addr[7:4]) begin + case(addr[3:0]) + 0: dout = ymreg[0]; + 1: dout = ymreg[1][3:0]; + 2: dout = ymreg[2]; + 3: dout = ymreg[3][3:0]; + 4: dout = ymreg[4]; + 5: dout = ymreg[5][3:0]; + 6: dout = ymreg[6][4:0]; + 7: dout = ymreg[7]; + 8: dout = ymreg[8][4:0]; + 9: dout = ymreg[9][4:0]; + 10: dout = ymreg[10][4:0]; + 11: dout = ymreg[11]; + 12: dout = ymreg[12]; + 13: dout = ymreg[13][3:0]; + 14: dout = ymreg[7][6] ? ymreg[14] : IOA_in; + 15: dout = ymreg[7][7] ? ymreg[15] : IOB_in; + endcase + end +end + +reg ena_div; +reg ena_div_noise; + +// p_divider +always @(posedge CLK) begin + reg [3:0] cnt_div; + reg noise_div; + + if(CE) begin + ena_div <= 0; + ena_div_noise <= 0; + if(!cnt_div) begin + cnt_div <= {SEL, 3'b111}; + ena_div <= 1; + + noise_div <= (~noise_div); + if (noise_div) ena_div_noise <= 1; + end else begin + cnt_div <= cnt_div - 1'b1; + end + end +end + + +reg [2:0] noise_gen_op; + +// p_noise_gen +always @(posedge CLK) begin + reg [16:0] poly17; + reg [4:0] noise_gen_cnt; + + if(CE) begin + if (ena_div_noise) begin + if (!ymreg[6][4:0] || noise_gen_cnt >= ymreg[6][4:0] - 1'd1) begin + noise_gen_cnt <= 0; + poly17 <= {(poly17[0] ^ poly17[2] ^ !poly17), poly17[16:1]}; + end else begin + noise_gen_cnt <= noise_gen_cnt + 1'd1; + end + noise_gen_op <= {3{poly17[0]}}; + end + end +end + +wire [11:0] tone_gen_freq[1:3]; +assign tone_gen_freq[1] = {ymreg[1][3:0], ymreg[0]}; +assign tone_gen_freq[2] = {ymreg[3][3:0], ymreg[2]}; +assign tone_gen_freq[3] = {ymreg[5][3:0], ymreg[4]}; + +reg [3:1] tone_gen_op; + +//p_tone_gens +always @(posedge CLK) begin + integer i; + reg [11:0] tone_gen_cnt[1:3]; + + if(CE) begin + // looks like real chips count up - we need to get the Exact behaviour .. + + for (i = 1; i <= 3; i = i + 1) begin + if(ena_div) begin + if (tone_gen_freq[i]) begin + if (tone_gen_cnt[i] >= (tone_gen_freq[i] - 1'd1)) begin + tone_gen_cnt[i] <= 0; + tone_gen_op[i] <= ~tone_gen_op[i]; + end else begin + tone_gen_cnt[i] <= tone_gen_cnt[i] + 1'd1; + end + end else begin + tone_gen_op[i] <= ymreg[7][i]; + tone_gen_cnt[i] <= 0; + end + end + end + end +end + +reg env_ena; +wire [15:0] env_gen_comp = {ymreg[12], ymreg[11]} ? {ymreg[12], ymreg[11]} - 1'd1 : 16'd0; + +//p_envelope_freq +always @(posedge CLK) begin + reg [15:0] env_gen_cnt; + + if(CE) begin + env_ena <= 0; + if(ena_div) begin + if (env_gen_cnt >= env_gen_comp) begin + env_gen_cnt <= 0; + env_ena <= 1; + end else begin + env_gen_cnt <= (env_gen_cnt + 1'd1); + end + end + end +end + +reg [4:0] env_vol; + +wire is_bot = (env_vol == 5'b00000); +wire is_bot_p1 = (env_vol == 5'b00001); +wire is_top_m1 = (env_vol == 5'b11110); +wire is_top = (env_vol == 5'b11111); + +always @(posedge CLK) begin + reg env_hold; + reg env_inc; + + // envelope shapes + // C AtAlH + // 0 0 x x \___ + // + // 0 1 x x /___ + // + // 1 0 0 0 \\\\ + // + // 1 0 0 1 \___ + // + // 1 0 1 0 \/\/ + // ___ + // 1 0 1 1 \ + // + // 1 1 0 0 //// + // ___ + // 1 1 0 1 / + // + // 1 1 1 0 /\/\ + // + // 1 1 1 1 /___ + + if(env_reset | RESET) begin + // load initial state + if(!ymreg[13][2]) begin // attack + env_vol <= 5'b11111; + env_inc <= 0; // -1 + end else begin + env_vol <= 5'b00000; + env_inc <= 1; // +1 + end + env_hold <= 0; + end + else if(CE) begin + if (env_ena) begin + if (!env_hold) begin + if (env_inc) env_vol <= (env_vol + 5'b00001); + else env_vol <= (env_vol + 5'b11111); + end + + // envelope shape control. + if(!ymreg[13][3]) begin + if(!env_inc) begin // down + if(is_bot_p1) env_hold <= 1; + end else if (is_top) env_hold <= 1; + end else if(ymreg[13][0]) begin // hold = 1 + if(!env_inc) begin // down + if(ymreg[13][1]) begin // alt + if(is_bot) env_hold <= 1; + end else if(is_bot_p1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alt + if(is_top) env_hold <= 1; + end else if(is_top_m1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alternate + if(env_inc == 1'b0) begin // down + if(is_bot_p1) env_hold <= 1; + if(is_bot) begin + env_hold <= 0; + env_inc <= 1; + end + end else begin + if(is_top_m1) env_hold <= 1; + if(is_top) begin + env_hold <= 0; + env_inc <= 0; + end + end + end + end + end +end + +reg [5:0] A,B,C; +always @(posedge CLK) begin + A <= {MODE, ~((ymreg[7][0] | tone_gen_op[1]) & (ymreg[7][3] | noise_gen_op[0])) ? 5'd0 : ymreg[8][4] ? env_vol[4:0] : { ymreg[8][3:0], ymreg[8][3]}}; + B <= {MODE, ~((ymreg[7][1] | tone_gen_op[2]) & (ymreg[7][4] | noise_gen_op[1])) ? 5'd0 : ymreg[9][4] ? env_vol[4:0] : { ymreg[9][3:0], ymreg[9][3]}}; + C <= {MODE, ~((ymreg[7][2] | tone_gen_op[3]) & (ymreg[7][5] | noise_gen_op[2])) ? 5'd0 : ymreg[10][4] ? env_vol[4:0] : {ymreg[10][3:0], ymreg[10][3]}}; +end + +wire [7:0] volTable[64] = '{ + //YM2149 + 8'h00, 8'h01, 8'h01, 8'h02, 8'h02, 8'h03, 8'h03, 8'h04, + 8'h06, 8'h07, 8'h09, 8'h0a, 8'h0c, 8'h0e, 8'h11, 8'h13, + 8'h17, 8'h1b, 8'h20, 8'h25, 8'h2c, 8'h35, 8'h3e, 8'h47, + 8'h54, 8'h66, 8'h77, 8'h88, 8'ha1, 8'hc0, 8'he0, 8'hff, + + //AY8910 + 8'h00, 8'h00, 8'h03, 8'h03, 8'h04, 8'h04, 8'h06, 8'h06, + 8'h0a, 8'h0a, 8'h0f, 8'h0f, 8'h15, 8'h15, 8'h22, 8'h22, + 8'h28, 8'h28, 8'h41, 8'h41, 8'h5b, 8'h5b, 8'h72, 8'h72, + 8'h90, 8'h90, 8'hb5, 8'hb5, 8'hd7, 8'hd7, 8'hff, 8'hff +}; + +assign CHANNEL_A = volTable[A]; +assign CHANNEL_B = volTable[B]; +assign CHANNEL_C = volTable[C]; + +endmodule diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/bitmapctl_e.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/bitmapctl_e.vhd new file mode 100644 index 00000000..be8471e3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/bitmapctl_e.vhd @@ -0,0 +1,30 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; +--use work.project_pkg.all; + +entity bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity bitmapCtl; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/build_id.tcl b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/build_id.tcl new file mode 100644 index 00000000..938515d8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/build_id.tcl @@ -0,0 +1,35 @@ +# ================================================================================ +# +# Build ID Verilog Module Script +# Jeff Wiencrot - 8/1/2011 +# +# Generates a Verilog module that contains a timestamp, +# from the current build. These values are available from the build_date, build_time, +# physical_address, and host_name output ports of the build_id module in the build_id.v +# Verilog source file. +# +# ================================================================================ + +proc generateBuildID_Verilog {} { + + # Get the timestamp (see: http://www.altera.com/support/examples/tcl/tcl-date-time-stamp.html) + set buildDate [ clock format [ clock seconds ] -format %y%m%d ] + set buildTime [ clock format [ clock seconds ] -format %H%M%S ] + + # Create a Verilog file for output + set outputFileName "rtl/build_id.v" + set outputFile [open $outputFileName "w"] + + # Output the Verilog source + puts $outputFile "`define BUILD_DATE \"$buildDate\"" + puts $outputFile "`define BUILD_TIME \"$buildTime\"" + close $outputFile + + # Send confirmation message to the Messages window + post_message "Generated build identification Verilog module: [pwd]/$outputFileName" + post_message "Date: $buildDate" + post_message "Time: $buildTime" +} + +# Comment out this line to prevent the process from automatically executing when the file is sourced: +generateBuildID_Verilog \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/clk_div.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/clk_div.vhd new file mode 100644 index 00000000..020d6ae6 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/clk_div.vhd @@ -0,0 +1,39 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity clk_div is + generic + ( + DIVISOR : natural + ); + port + ( + clk : in std_logic; + reset : in std_logic; + + clk_en : out std_logic + ); +end clk_div; + +architecture SYN of clk_div is + +begin + + process (clk, reset) + variable count : integer range 0 to DIVISOR-1; + begin + if reset = '1' then + count := 0; + clk_en <= '0'; + elsif rising_edge(clk) then + clk_en <= '0'; + if count = DIVISOR-1 then + clk_en <= '1'; + count := 0; + else + count := count + 1; + end if; + end if; + end process; + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd new file mode 100644 index 00000000..016bd9a9 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/cpu68.vhd @@ -0,0 +1,3963 @@ +--===========================================================================-- +-- +-- S Y N T H E Z I A B L E CPU68 C O R E +-- +-- www.OpenCores.Org - December 2002 +-- This core adheres to the GNU public license +-- +-- File name : cpu68.vhd +-- +-- Purpose : Implements a 6800 compatible CPU core with some +-- additional instructions found in the 6801 +-- +-- Dependencies : ieee.Std_Logic_1164 +-- ieee.std_logic_unsigned +-- +-- Author : John E. Kent +-- +--===========================================================================---- +-- +-- Revision History: +-- +-- Date: Revision Author +-- 22 Sep 2002 0.1 John Kent +-- +-- 30 Oct 2002 0.2 John Kent +-- made NMI edge triggered +-- +-- 30 Oct 2002 0.3 John Kent +-- more corrections to NMI +-- added wai_wait_state to prevent stack overflow on wai. +-- +-- 1 Nov 2002 0.4 John Kent +-- removed WAI states and integrated WAI with the interrupt service routine +-- replace Data out (do) and Data in (di) register with a single Memory Data (md) reg. +-- Added Multiply instruction states. +-- run ALU and CC out of CPU module for timing measurements. +-- +-- 3 Nov 2002 0.5 John Kent +-- Memory Data Register was not loaded on Store instructions +-- SEV and CLV were not defined in the ALU +-- Overflow Flag on NEG was incorrect +-- +-- 16th Feb 2003 0.6 John Kent +-- Rearranged the execution cycle for dual operand instructions +-- so that occurs during the following fetch cycle. +-- This allows the reduction of one clock cycle from dual operand +-- instruction. Note that this also necessitated re-arranging the +-- program counter so that it is no longer incremented in the ALU. +-- The effective address has also been re-arranged to include a +-- separate added. The STD (store accd) now sets the condition codes. +-- +-- 28th Jun 2003 0.7 John Kent +-- Added Hold and Halt signals. Hold is used to steal cycles from the +-- CPU or add wait states. Halt puts the CPU in the inactive state +-- and is only honoured in the fetch cycle. Both signals are active high. +-- +-- 9th Jan 2004 0.8 John Kent +-- Clear instruction did an alu_ld8 rather than an alu_clr, so +-- the carry bit was not cleared correctly. +-- This error was picked up by Michael Hassenfratz. +-- + +library ieee; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; + +entity cpu68 is + port ( + clk: in std_logic; + rst: in std_logic; + rw: out std_logic; + vma: out std_logic; + address: out std_logic_vector(15 downto 0); + data_in: in std_logic_vector(7 downto 0); + data_out: out std_logic_vector(7 downto 0); + hold: in std_logic; + halt: in std_logic; + irq: in std_logic; + nmi: in std_logic; + test_alu: out std_logic_vector(15 downto 0); + test_cc: out std_logic_vector(7 downto 0) + ); +end; + +architecture CPU_ARCH of cpu68 is + + constant SBIT : integer := 7; + constant XBIT : integer := 6; + constant HBIT : integer := 5; + constant IBIT : integer := 4; + constant NBIT : integer := 3; + constant ZBIT : integer := 2; + constant VBIT : integer := 1; + constant CBIT : integer := 0; + + type state_type is (reset_state, fetch_state, decode_state, + extended_state, indexed_state, read8_state, read16_state, immediate16_state, + write8_state, write16_state, + execute_state, halt_state, error_state, + mul_state, mulea_state, muld_state, + mul0_state, mul1_state, mul2_state, mul3_state, + mul4_state, mul5_state, mul6_state, mul7_state, + jmp_state, jsr_state, jsr1_state, + branch_state, bsr_state, bsr1_state, + rts_hi_state, rts_lo_state, + int_pcl_state, int_pch_state, + int_ixl_state, int_ixh_state, + int_cc_state, int_acca_state, int_accb_state, + int_wai_state, int_mask_state, + rti_state, rti_cc_state, rti_acca_state, rti_accb_state, + rti_ixl_state, rti_ixh_state, + rti_pcl_state, rti_pch_state, + pula_state, psha_state, pulb_state, pshb_state, + pulx_lo_state, pulx_hi_state, pshx_lo_state, pshx_hi_state, + vect_lo_state, vect_hi_state ); + type addr_type is (idle_ad, fetch_ad, read_ad, write_ad, push_ad, pull_ad, int_hi_ad, int_lo_ad ); + type dout_type is (md_lo_dout, md_hi_dout, acca_dout, accb_dout, ix_lo_dout, ix_hi_dout, cc_dout, pc_lo_dout, pc_hi_dout ); + type op_type is (reset_op, fetch_op, latch_op ); + type acca_type is (reset_acca, load_acca, load_hi_acca, pull_acca, latch_acca ); + type accb_type is (reset_accb, load_accb, pull_accb, latch_accb ); + type cc_type is (reset_cc, load_cc, pull_cc, latch_cc ); + type ix_type is (reset_ix, load_ix, pull_lo_ix, pull_hi_ix, latch_ix ); + type sp_type is (reset_sp, latch_sp, load_sp ); + type pc_type is (reset_pc, latch_pc, load_ea_pc, add_ea_pc, pull_lo_pc, pull_hi_pc, inc_pc ); + type md_type is (reset_md, latch_md, load_md, fetch_first_md, fetch_next_md, shiftl_md ); + type ea_type is (reset_ea, latch_ea, add_ix_ea, load_accb_ea, inc_ea, fetch_first_ea, fetch_next_ea ); + type iv_type is (reset_iv, latch_iv, swi_iv, nmi_iv, irq_iv ); + type nmi_type is (reset_nmi, set_nmi, latch_nmi ); + type left_type is (acca_left, accb_left, accd_left, md_left, ix_left, sp_left ); + type right_type is (md_right, zero_right, plus_one_right, accb_right ); + type alu_type is (alu_add8, alu_sub8, alu_add16, alu_sub16, alu_adc, alu_sbc, + alu_and, alu_ora, alu_eor, + alu_tst, alu_inc, alu_dec, alu_clr, alu_neg, alu_com, + alu_inx, alu_dex, alu_cpx, + alu_lsr16, alu_lsl16, + alu_ror8, alu_rol8, + alu_asr8, alu_asl8, alu_lsr8, + alu_sei, alu_cli, alu_sec, alu_clc, alu_sev, alu_clv, alu_tpa, alu_tap, + alu_ld8, alu_st8, alu_ld16, alu_st16, alu_nop, alu_daa ); + + signal op_code: std_logic_vector(7 downto 0); + signal acca: std_logic_vector(7 downto 0); + signal accb: std_logic_vector(7 downto 0); + signal cc: std_logic_vector(7 downto 0); + signal cc_out: std_logic_vector(7 downto 0); + signal xreg: std_logic_vector(15 downto 0); + signal sp: std_logic_vector(15 downto 0); + signal ea: std_logic_vector(15 downto 0); + signal pc: std_logic_vector(15 downto 0); + signal md: std_logic_vector(15 downto 0); + signal left: std_logic_vector(15 downto 0); + signal right: std_logic_vector(15 downto 0); + signal out_alu: std_logic_vector(15 downto 0); + signal iv: std_logic_vector(1 downto 0); + signal nmi_req: std_logic; + signal nmi_ack: std_logic; + + signal state: state_type; + signal next_state: state_type; + signal pc_ctrl: pc_type; + signal ea_ctrl: ea_type; + signal op_ctrl: op_type; + signal md_ctrl: md_type; + signal acca_ctrl: acca_type; + signal accb_ctrl: accb_type; + signal ix_ctrl: ix_type; + signal cc_ctrl: cc_type; + signal sp_ctrl: sp_type; + signal iv_ctrl: iv_type; + signal left_ctrl: left_type; + signal right_ctrl: right_type; + signal alu_ctrl: alu_type; + signal addr_ctrl: addr_type; + signal dout_ctrl: dout_type; + signal nmi_ctrl: nmi_type; + + +begin + +---------------------------------- +-- +-- Address bus multiplexer +-- +---------------------------------- + +addr_mux: process( clk, addr_ctrl, pc, ea, sp, iv ) +begin + case addr_ctrl is + when idle_ad => + address <= "1111111111111111"; + vma <= '0'; + rw <= '1'; + when fetch_ad => + address <= pc; + vma <= '1'; + rw <= '1'; + when read_ad => + address <= ea; + vma <= '1'; + rw <= '1'; + when write_ad => + address <= ea; + vma <= '1'; + rw <= '0'; + when push_ad => + address <= sp; + vma <= '1'; + rw <= '0'; + when pull_ad => + address <= sp; + vma <= '1'; + rw <= '1'; + when int_hi_ad => + address <= "1111111111111" & iv & "0"; + vma <= '1'; + rw <= '1'; + when int_lo_ad => + address <= "1111111111111" & iv & "1"; + vma <= '1'; + rw <= '1'; + when others => + address <= "1111111111111111"; + vma <= '0'; + rw <= '1'; + end case; +end process; + +-------------------------------- +-- +-- Data Bus output +-- +-------------------------------- +dout_mux : process( clk, dout_ctrl, md, acca, accb, xreg, pc, cc ) +begin + case dout_ctrl is + when md_hi_dout => -- alu output + data_out <= md(15 downto 8); + when md_lo_dout => + data_out <= md(7 downto 0); + when acca_dout => -- accumulator a + data_out <= acca; + when accb_dout => -- accumulator b + data_out <= accb; + when ix_lo_dout => -- index reg + data_out <= xreg(7 downto 0); + when ix_hi_dout => -- index reg + data_out <= xreg(15 downto 8); + when cc_dout => -- condition codes + data_out <= cc; + when pc_lo_dout => -- low order pc + data_out <= pc(7 downto 0); + when pc_hi_dout => -- high order pc + data_out <= pc(15 downto 8); + when others => + data_out <= "00000000"; + end case; +end process; + + +---------------------------------- +-- +-- Program Counter Control +-- +---------------------------------- + +pc_mux: process( clk, pc_ctrl, pc, out_alu, data_in, ea, hold ) +variable tempof : std_logic_vector(15 downto 0); +variable temppc : std_logic_vector(15 downto 0); +begin + case pc_ctrl is + when add_ea_pc => + if ea(7) = '0' then + tempof := "00000000" & ea(7 downto 0); + else + tempof := "11111111" & ea(7 downto 0); + end if; + when inc_pc => + tempof := "0000000000000001"; + when others => + tempof := "0000000000000000"; + end case; + + case pc_ctrl is + when reset_pc => + temppc := "1111111111111110"; + when load_ea_pc => + temppc := ea; + when pull_lo_pc => + temppc(7 downto 0) := data_in; + temppc(15 downto 8) := pc(15 downto 8); + when pull_hi_pc => + temppc(7 downto 0) := pc(7 downto 0); + temppc(15 downto 8) := data_in; + when others => + temppc := pc; + end case; + + if clk'event and clk = '0' then + if hold = '1' then + pc <= pc; + else + pc <= temppc + tempof; + end if; + end if; +end process; + +---------------------------------- +-- +-- Effective Address Control +-- +---------------------------------- + +ea_mux: process( clk, ea_ctrl, ea, out_alu, data_in, accb, xreg, hold ) +variable tempind : std_logic_vector(15 downto 0); +variable tempea : std_logic_vector(15 downto 0); +begin + case ea_ctrl is + when add_ix_ea => + tempind := "00000000" & ea(7 downto 0); + when inc_ea => + tempind := "0000000000000001"; + when others => + tempind := "0000000000000000"; + end case; + + case ea_ctrl is + when reset_ea => + tempea := "0000000000000000"; + when load_accb_ea => + tempea := "00000000" & accb(7 downto 0); + when add_ix_ea => + tempea := xreg; + when fetch_first_ea => + tempea(7 downto 0) := data_in; + tempea(15 downto 8) := "00000000"; + when fetch_next_ea => + tempea(7 downto 0) := data_in; + tempea(15 downto 8) := ea(7 downto 0); + when others => + tempea := ea; + end case; + + if clk'event and clk = '0' then + if hold = '1' then + ea <= ea; + else + ea <= tempea + tempind; + end if; + end if; +end process; + +-------------------------------- +-- +-- Accumulator A +-- +-------------------------------- +acca_mux : process( clk, acca_ctrl, out_alu, acca, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + acca <= acca; + else + case acca_ctrl is + when reset_acca => + acca <= "00000000"; + when load_acca => + acca <= out_alu(7 downto 0); + when load_hi_acca => + acca <= out_alu(15 downto 8); + when pull_acca => + acca <= data_in; + when others => +-- when latch_acca => + acca <= acca; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- Accumulator B +-- +-------------------------------- +accb_mux : process( clk, accb_ctrl, out_alu, accb, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + accb <= accb; + else + case accb_ctrl is + when reset_accb => + accb <= "00000000"; + when load_accb => + accb <= out_alu(7 downto 0); + when pull_accb => + accb <= data_in; + when others => +-- when latch_accb => + accb <= accb; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- X Index register +-- +-------------------------------- +ix_mux : process( clk, ix_ctrl, out_alu, xreg, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + xreg <= xreg; + else + case ix_ctrl is + when reset_ix => + xreg <= "0000000000000000"; + when load_ix => + xreg <= out_alu(15 downto 0); + when pull_hi_ix => + xreg(15 downto 8) <= data_in; + when pull_lo_ix => + xreg(7 downto 0) <= data_in; + when others => +-- when latch_ix => + xreg <= xreg; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- stack pointer +-- +-------------------------------- +sp_mux : process( clk, sp_ctrl, out_alu, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + sp <= sp; + else + case sp_ctrl is + when reset_sp => + sp <= "0000000000000000"; + when load_sp => + sp <= out_alu(15 downto 0); + when others => +-- when latch_sp => + sp <= sp; + end case; + end if; + end if; +end process; + +-------------------------------- +-- +-- Memory Data +-- +-------------------------------- +md_mux : process( clk, md_ctrl, out_alu, data_in, md, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + md <= md; + else + case md_ctrl is + when reset_md => + md <= "0000000000000000"; + when load_md => + md <= out_alu(15 downto 0); + when fetch_first_md => + md(15 downto 8) <= "00000000"; + md(7 downto 0) <= data_in; + when fetch_next_md => + md(15 downto 8) <= md(7 downto 0); + md(7 downto 0) <= data_in; + when shiftl_md => + md(15 downto 1) <= md(14 downto 0); + md(0) <= '0'; + when others => +-- when latch_md => + md <= md; + end case; + end if; + end if; +end process; + + +---------------------------------- +-- +-- Condition Codes +-- +---------------------------------- + +cc_mux: process( clk, cc_ctrl, cc_out, cc, data_in, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + cc <= cc; + else + case cc_ctrl is + when reset_cc => + cc <= "11000000"; + when load_cc => + cc <= cc_out; + when pull_cc => + cc <= data_in; + when others => +-- when latch_cc => + cc <= cc; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- interrupt vector +-- +---------------------------------- + +iv_mux: process( clk, iv_ctrl, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + iv <= iv; + else + case iv_ctrl is + when reset_iv => + iv <= "11"; + when nmi_iv => + iv <= "10"; + when swi_iv => + iv <= "01"; + when irq_iv => + iv <= "00"; + when others => + iv <= iv; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- op code fetch +-- +---------------------------------- + +op_fetch: process( clk, data_in, op_ctrl, op_code, hold ) +begin + if clk'event and clk = '0' then + if hold = '1' then + op_code <= op_code; + else + case op_ctrl is + when reset_op => + op_code <= "00000001"; -- nop + when fetch_op => + op_code <= data_in; + when others => +-- when latch_op => + op_code <= op_code; + end case; + end if; + end if; +end process; + +---------------------------------- +-- +-- Left Mux +-- +---------------------------------- + +left_mux: process( left_ctrl, acca, accb, xreg, sp, pc, ea, md ) +begin + case left_ctrl is + when acca_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= acca; + when accb_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= accb; + when accd_left => + left(15 downto 8) <= acca; + left(7 downto 0) <= accb; + when ix_left => + left <= xreg; + when sp_left => + left <= sp; + when others => +-- when md_left => + left <= md; + end case; +end process; +---------------------------------- +-- +-- Right Mux +-- +---------------------------------- + +right_mux: process( right_ctrl, data_in, md, accb, ea ) +begin + case right_ctrl is + when zero_right => + right <= "0000000000000000"; + when plus_one_right => + right <= "0000000000000001"; + when accb_right => + right <= "00000000" & accb; + when others => +-- when md_right => + right <= md; + end case; +end process; + +---------------------------------- +-- +-- Arithmetic Logic Unit +-- +---------------------------------- + +mux_alu: process( alu_ctrl, cc, left, right, out_alu, cc_out ) +variable valid_lo, valid_hi : boolean; +variable carry_in : std_logic; +variable daa_reg : std_logic_vector(7 downto 0); +begin + + case alu_ctrl is + when alu_adc | alu_sbc | + alu_rol8 | alu_ror8 => + carry_in := cc(CBIT); + when others => + carry_in := '0'; + end case; + + valid_lo := left(3 downto 0) <= 9; + valid_hi := left(7 downto 4) <= 9; + + if (cc(CBIT) = '0') then + if( cc(HBIT) = '1' ) then + if valid_hi then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + else + if valid_lo then + if valid_hi then + daa_reg := "00000000"; + else + daa_reg := "01100000"; + end if; + else + if( left(7 downto 4) <= 8 ) then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + else + if ( cc(HBIT) = '1' )then + daa_reg := "01100110"; + else + if valid_lo then + daa_reg := "01100000"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + + case alu_ctrl is + when alu_add8 | alu_inc | + alu_add16 | alu_inx | + alu_adc => + out_alu <= left + right + ("000000000000000" & carry_in); + when alu_sub8 | alu_dec | + alu_sub16 | alu_dex | + alu_sbc | alu_cpx => + out_alu <= left - right - ("000000000000000" & carry_in); + when alu_and => + out_alu <= left and right; -- and/bit + when alu_ora => + out_alu <= left or right; -- or + when alu_eor => + out_alu <= left xor right; -- eor/xor + when alu_lsl16 | alu_asl8 | alu_rol8 => + out_alu <= left(14 downto 0) & carry_in; -- rol8/asl8/lsl16 + when alu_lsr16 | alu_lsr8 => + out_alu <= carry_in & left(15 downto 1); -- lsr + when alu_ror8 => + out_alu <= "00000000" & carry_in & left(7 downto 1); -- ror + when alu_asr8 => + out_alu <= "00000000" & left(7) & left(7 downto 1); -- asr + when alu_neg => + out_alu <= right - left; -- neg (right=0) + when alu_com => + out_alu <= not left; + when alu_clr | alu_ld8 | alu_ld16 => + out_alu <= right; -- clr, ld + when alu_st8 | alu_st16 => + out_alu <= left; + when alu_daa => + out_alu <= left + ("00000000" & daa_reg); + when alu_tpa => + out_alu <= "00000000" & cc; + when others => + out_alu <= left; -- nop + end case; + + -- + -- carry bit + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(CBIT) <= (left(7) and right(7)) or + (left(7) and not out_alu(7)) or + (right(7) and not out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(CBIT) <= ((not left(7)) and right(7)) or + ((not left(7)) and out_alu(7)) or + (right(7) and out_alu(7)); + when alu_add16 => + cc_out(CBIT) <= (left(15) and right(15)) or + (left(15) and not out_alu(15)) or + (right(15) and not out_alu(15)); + when alu_sub16 => + cc_out(CBIT) <= ((not left(15)) and right(15)) or + ((not left(15)) and out_alu(15)) or + (right(15) and out_alu(15)); + when alu_ror8 | alu_lsr16 | alu_lsr8 | alu_asr8 => + cc_out(CBIT) <= left(0); + when alu_rol8 | alu_asl8 => + cc_out(CBIT) <= left(7); + when alu_lsl16 => + cc_out(CBIT) <= left(15); + when alu_com => + cc_out(CBIT) <= '1'; + when alu_neg | alu_clr => + cc_out(CBIT) <= out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0); + when alu_daa => + if ( daa_reg(7 downto 4) = "0110" ) then + cc_out(CBIT) <= '1'; + else + cc_out(CBIT) <= '0'; + end if; + when alu_sec => + cc_out(CBIT) <= '1'; + when alu_clc => + cc_out(CBIT) <= '0'; + when alu_tap => + cc_out(CBIT) <= left(CBIT); + when others => -- carry is not affected by cpx + cc_out(CBIT) <= cc(CBIT); + end case; + -- + -- Zero flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_inc | alu_dec | + alu_neg | alu_com | alu_clr | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_ld8 | alu_st8 => + cc_out(ZBIT) <= not( out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_inx | alu_dex | + alu_ld16 | alu_st16 | alu_cpx => + cc_out(ZBIT) <= not( out_alu(15) or out_alu(14) or out_alu(13) or out_alu(12) or + out_alu(11) or out_alu(10) or out_alu(9) or out_alu(8) or + out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_tap => + cc_out(ZBIT) <= left(ZBIT); + when others => + cc_out(ZBIT) <= cc(ZBIT); + end case; + + -- + -- negative flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_inc | alu_dec | alu_neg | alu_com | alu_clr | + alu_ld8 | alu_st8 => + cc_out(NBIT) <= out_alu(7); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_ld16 | alu_st16 | alu_cpx => + cc_out(NBIT) <= out_alu(15); + when alu_tap => + cc_out(NBIT) <= left(NBIT); + when others => + cc_out(NBIT) <= cc(NBIT); + end case; + + -- + -- Interrupt mask flag + -- + case alu_ctrl is + when alu_sei => + cc_out(IBIT) <= '1'; -- set interrupt mask + when alu_cli => + cc_out(IBIT) <= '0'; -- clear interrupt mask + when alu_tap => + cc_out(IBIT) <= left(IBIT); + when others => + cc_out(IBIT) <= cc(IBIT); -- interrupt mask + end case; + + -- + -- Half Carry flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(HBIT) <= (left(3) and right(3)) or + (right(3) and not out_alu(3)) or + (left(3) and not out_alu(3)); + when alu_tap => + cc_out(HBIT) <= left(HBIT); + when others => + cc_out(HBIT) <= cc(HBIT); + end case; + + -- + -- Overflow flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(VBIT) <= (left(7) and right(7) and (not out_alu(7))) or + ((not left(7)) and (not right(7)) and out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(VBIT) <= (left(7) and (not right(7)) and (not out_alu(7))) or + ((not left(7)) and right(7) and out_alu(7)); + when alu_add16 => + cc_out(VBIT) <= (left(15) and right(15) and (not out_alu(15))) or + ((not left(15)) and (not right(15)) and out_alu(15)); + when alu_sub16 | alu_cpx => + cc_out(VBIT) <= (left(15) and (not right(15)) and (not out_alu(15))) or + ((not left(15)) and right(15) and out_alu(15)); + when alu_inc => + cc_out(VBIT) <= ((not left(7)) and left(6) and left(5) and left(4) and + left(3) and left(2) and left(1) and left(0)); + when alu_dec | alu_neg => + cc_out(VBIT) <= (left(7) and (not left(6)) and (not left(5)) and (not left(4)) and + (not left(3)) and (not left(2)) and (not left(1)) and (not left(0))); + when alu_asr8 => + cc_out(VBIT) <= left(0) xor left(7); + when alu_lsr8 | alu_lsr16 => + cc_out(VBIT) <= left(0); + when alu_ror8 => + cc_out(VBIT) <= left(0) xor cc(CBIT); + when alu_lsl16 => + cc_out(VBIT) <= left(15) xor left(14); + when alu_rol8 | alu_asl8 => + cc_out(VBIT) <= left(7) xor left(6); + when alu_tap => + cc_out(VBIT) <= left(VBIT); + when alu_and | alu_ora | alu_eor | alu_com | + alu_st8 | alu_st16 | alu_ld8 | alu_ld16 | + alu_clv => + cc_out(VBIT) <= '0'; + when alu_sev => + cc_out(VBIT) <= '1'; + when others => + cc_out(VBIT) <= cc(VBIT); + end case; + + case alu_ctrl is + when alu_tap => + cc_out(XBIT) <= cc(XBIT) and left(XBIT); + cc_out(SBIT) <= left(SBIT); + when others => + cc_out(XBIT) <= cc(XBIT) and left(XBIT); + cc_out(SBIT) <= cc(SBIT); + end case; + + test_alu <= out_alu; + test_cc <= cc_out; +end process; + +------------------------------------ +-- +-- Detect Edge of NMI interrupt +-- +------------------------------------ + +nmi_handler : process( clk, rst, nmi, nmi_ack ) +begin + if clk'event and clk='0' then + if hold = '1' then + nmi_req <= nmi_req; + else + if rst='1' then + nmi_req <= '0'; + else + if (nmi='1') and (nmi_ack='0') then + nmi_req <= '1'; + else + if (nmi='0') and (nmi_ack='1') then + nmi_req <= '0'; + else + nmi_req <= nmi_req; + end if; + end if; + end if; + end if; + end if; +end process; + +------------------------------------ +-- +-- Nmi mux +-- +------------------------------------ + +nmi_mux: process( clk, nmi_ctrl, nmi_ack, hold ) +begin + if clk'event and clk='0' then + if hold = '1' then + nmi_ack <= nmi_ack; + else + case nmi_ctrl is + when set_nmi => + nmi_ack <= '1'; + when reset_nmi => + nmi_ack <= '0'; + when others => +-- when latch_nmi => + nmi_ack <= nmi_ack; + end case; + end if; + end if; +end process; + +------------------------------------ +-- +-- state sequencer +-- +------------------------------------ +process( state, op_code, cc, ea, irq, nmi_req, nmi_ack, hold, halt ) + begin + case state is + when reset_state => -- released from reset + -- reset the registers + op_ctrl <= reset_op; + acca_ctrl <= reset_acca; + accb_ctrl <= reset_accb; + ix_ctrl <= reset_ix; + sp_ctrl <= reset_sp; + pc_ctrl <= reset_pc; + ea_ctrl <= reset_ea; + md_ctrl <= reset_md; + iv_ctrl <= reset_iv; + nmi_ctrl <= reset_nmi; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= reset_cc; + -- idle the bus + dout_ctrl <= md_lo_dout; + addr_ctrl <= idle_ad; + next_state <= vect_hi_state; + + -- + -- Jump via interrupt vector + -- iv holds interrupt type + -- fetch PC hi from vector location + -- + when vect_hi_state => + -- default the registers + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- fetch pc low interrupt vector + pc_ctrl <= pull_hi_pc; + addr_ctrl <= int_hi_ad; + dout_ctrl <= pc_hi_dout; + next_state <= vect_lo_state; + -- + -- jump via interrupt vector + -- iv holds vector type + -- fetch PC lo from vector location + -- + when vect_lo_state => + -- default the registers + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- fetch the vector low byte + pc_ctrl <= pull_lo_pc; + addr_ctrl <= int_lo_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + -- + -- Here to fetch an instruction + -- PC points to opcode + -- Should service interrupt requests at this point + -- either from the timer + -- or from the external input. + -- + when fetch_state => + case op_code(7 downto 4) is + when "0000" | + "0001" | + "0010" | -- branch conditional + "0011" | + "0100" | -- acca single op + "0101" | -- accb single op + "0110" | -- indexed single op + "0111" => -- extended single op + -- idle ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + + when "1000" | -- acca immediate + "1001" | -- acca direct + "1010" | -- acca indexed + "1011" => -- acca extended + case op_code(3 downto 0) is + when "0000" => -- suba + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0001" => -- cmpa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0010" => -- sbca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0011" => -- subd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0100" => -- anda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0101" => -- bita + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0110" => -- ldaa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1000" => -- eora + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1001" => -- adca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1010" => -- oraa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1011" => -- adda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1100" => -- cpx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_cpx; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1101" => -- bsr / jsr + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1110" => -- lds + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when others => + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + when "1100" | -- accb immediate + "1101" | -- accb direct + "1110" | -- accb indexed + "1111" => -- accb extended + case op_code(3 downto 0) is + when "0000" => -- subb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0001" => -- cmpb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0010" => -- sbcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0011" => -- addd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0100" => -- andb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0101" => -- bitb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0110" => -- ldab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1000" => -- eorb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1001" => -- adcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1010" => -- orab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1011" => -- addb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1100" => -- ldd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when "1110" => -- ldx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + when "1111" => -- stx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + when others => + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + when others => + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + end case; + md_ctrl <= latch_md; + -- fetch the op code + op_ctrl <= fetch_op; + ea_ctrl <= reset_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + iv_ctrl <= latch_iv; + if halt = '1' then + pc_ctrl <= latch_pc; + nmi_ctrl <= latch_nmi; + next_state <= halt_state; + -- service non maskable interrupts + elsif (nmi_req = '1') and (nmi_ack = '0') then + pc_ctrl <= latch_pc; + nmi_ctrl <= set_nmi; + next_state <= int_pcl_state; + -- service maskable interrupts + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if(nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + else + nmi_ctrl <= latch_nmi; + end if; + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + pc_ctrl <= latch_pc; + next_state <= int_pcl_state; + else + -- Advance the PC to fetch next instruction byte + pc_ctrl <= inc_pc; + next_state <= decode_state; + end if; + end if; + -- + -- Here to decode instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode_state => + -- fetch first byte of address or immediate data + ea_ctrl <= fetch_first_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + iv_ctrl <= latch_iv; + case op_code(7 downto 4) is + when "0000" => + md_ctrl <= fetch_first_md; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + case op_code(3 downto 0) is + when "0001" => -- nop + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "0100" => -- lsrd + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + when "0101" => -- lsld + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsl16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + ix_ctrl <= latch_ix; + when "0110" => -- tap + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tap; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "0111" => -- tpa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tpa; + cc_ctrl <= latch_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1000" => -- inx + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inx; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + when "1001" => -- dex + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dex; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= load_ix; + when "1010" => -- clv + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clv; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1011" => -- sev + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sev; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1100" => -- clc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clc; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1101" => -- sec + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sec; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1110" => -- cli + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_cli; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when "1111" => -- sei + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + end case; + next_state <= fetch_state; + -- acca / accb inherent instructions + when "0001" => + md_ctrl <= fetch_first_md; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + left_ctrl <= acca_left; + right_ctrl <= accb_right; + case op_code(3 downto 0) is + when "0000" => -- sba + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "0001" => -- cba + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + when "0110" => -- tab + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= load_accb; + when "0111" => -- tba + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "1001" => -- daa + alu_ctrl <= alu_daa; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when "1011" => -- aba + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + accb_ctrl <= latch_accb; + when others => + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end case; + next_state <= fetch_state; + when "0010" => -- branch conditional + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0000" => -- bra + next_state <= branch_state; + when "0001" => -- brn + next_state <= fetch_state; + when "0010" => -- bhi + if (cc(CBIT) or cc(ZBIT)) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0011" => -- bls + if (cc(CBIT) or cc(ZBIT)) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0100" => -- bcc/bhs + if cc(CBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0101" => -- bcs/blo + if cc(CBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0110" => -- bne + if cc(ZBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "0111" => -- beq + if cc(ZBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1000" => -- bvc + if cc(VBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1001" => -- bvs + if cc(VBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1010" => -- bpl + if cc(NBIT) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1011" => -- bmi + if cc(NBIT) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1100" => -- bge + if (cc(NBIT) xor cc(VBIT)) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1101" => -- blt + if (cc(NBIT) xor cc(VBIT)) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1110" => -- bgt + if (cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '0' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when "1111" => -- ble + if (cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '1' then + next_state <= branch_state; + else + next_state <= fetch_state; + end if; + when others => + next_state <= fetch_state; + end case; + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + case op_code(3 downto 0) is + when "0000" => -- tsx + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + when "0001" => -- ins + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0010" => -- pula + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pula_state; + when "0011" => -- pulb + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pulb_state; + when "0100" => -- des + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0101" => -- txs + left_ctrl <= ix_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= fetch_state; + when "0110" => -- psha + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= psha_state; + when "0111" => -- pshb + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= pshb_state; + when "1000" => -- pulx + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= pulx_hi_state; + when "1001" => -- rts + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= rts_hi_state; + when "1010" => -- abx + left_ctrl <= ix_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= load_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + when "1011" => -- rti + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= load_sp; + next_state <= rti_cc_state; + when "1100" => -- pshx + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= pshx_lo_state; + when "1101" => -- mul + left_ctrl <= acca_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= mul_state; + when "1110" => -- wai + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= int_pcl_state; + when "1111" => -- swi + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= int_pcl_state; + when others => + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + next_state <= fetch_state; + end case; + -- + -- Accumulator A Single operand + -- source = Acc A dest = Acc A + -- Do not advance PC + -- + when "0100" => -- acca single op + md_ctrl <= fetch_first_md; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= acca_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + acca_ctrl <= latch_acca; + cc_ctrl <= load_cc; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- single operand acc b + -- Do not advance PC + -- + when "0101" => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + pc_ctrl <= latch_pc; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + left_ctrl <= accb_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + accb_ctrl <= latch_accb; + cc_ctrl <= load_cc; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- Single operand indexed + -- Two byte instruction so advance PC + -- EA should hold index offset + -- + when "0110" => -- indexed single op + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + -- + -- Single operand extended addressing + -- three byte instruction so advance the PC + -- Low order EA holds high order address + -- + when "0111" => -- extended single op + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when "1000" => -- acca immediate + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0011" | -- subdd # + "1100" | -- cpx # + "1110" => -- lds # + next_state <= immediate16_state; + when "1101" => -- bsr + next_state <= bsr_state; + when others => + next_state <= fetch_state; + end case; + + when "1001" => -- acca direct + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0111" => -- staa direct + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1111" => -- sts direct + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1101" => -- jsr direct + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= jsr_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= read8_state; + end case; + + when "1010" => -- acca indexed + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + + when "1011" => -- acca extended + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when "1100" => -- accb immediate + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0011" | -- addd # + "1100" | -- ldd # + "1110" => -- ldx # + next_state <= immediate16_state; + when others => + next_state <= fetch_state; + end case; + + when "1101" => -- accb direct + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + pc_ctrl <= inc_pc; + case op_code(3 downto 0) is + when "0111" => -- stab direct + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std direct + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx direct + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + next_state <= read8_state; + end case; + + when "1110" => -- accb indexed + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= indexed_state; + + when "1111" => -- accb extended + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- increment the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + next_state <= extended_state; + + when others => + md_ctrl <= fetch_first_md; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + -- idle the pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= latch_pc; + next_state <= fetch_state; + end case; + + when immediate16_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + op_ctrl <= latch_op; + iv_ctrl <= latch_iv; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment pc + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= inc_pc; + -- fetch next immediate byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + -- + -- ea holds 8 bit index offet + -- calculate the effective memory address + -- using the alu + -- + when indexed_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- calculate effective address from index reg + -- index offest is not sign extended + ea_ctrl <= add_ix_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + -- work out next state + case op_code(7 downto 4) is + when "0110" => -- single op indexed + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + case op_code(3 downto 0) is + when "1011" => -- undefined + next_state <= fetch_state; + when "1110" => -- jmp + next_state <= jmp_state; + when others => + next_state <= read8_state; + end case; + when "1010" => -- acca indexed + case op_code(3 downto 0) is + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- jsr + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= jsr_state; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when "1110" => -- accb indexed + case op_code(3 downto 0) is + when "0111" => -- stab direct + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std direct + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx direct + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when others => + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + next_state <= fetch_state; + end case; + -- + -- ea holds the low byte of the absolute address + -- Move ea low byte into ea high byte + -- load new ea low byte to for absolute 16 bit address + -- advance the program counter + -- + when extended_state => -- fetch ea low byte + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- increment pc + pc_ctrl <= inc_pc; + -- fetch next effective address bytes + ea_ctrl <= fetch_next_ea; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + -- work out the next state + case op_code(7 downto 4) is + when "0111" => -- single op extended + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + case op_code(3 downto 0) is + when "1011" => -- undefined + next_state <= fetch_state; + when "1110" => -- jmp + next_state <= jmp_state; + when others => + next_state <= read8_state; + end case; + when "1011" => -- acca extended + case op_code(3 downto 0) is + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- jsr + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= jsr_state; + when "1111" => -- sts + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when "1111" => -- accb extended + case op_code(3 downto 0) is + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when "1111" => -- stx + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= read8_state; + end case; + when others => + md_ctrl <= latch_md; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + next_state <= fetch_state; + end case; + -- + -- here if ea holds low byte (direct page) + -- can enter here from extended addressing + -- read memory location + -- note that reads may be 8 or 16 bits + -- + when read8_state => -- read data + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + case op_code(7 downto 4) is + when "0110" | "0111" => -- single operand + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= execute_state; + + when "1001" | "1010" | "1011" => -- acca + case op_code(3 downto 0) is + when "0011" | -- subd + "1110" | -- lds + "1100" => -- cpx + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + -- increment the effective address in case of 16 bit load + ea_ctrl <= inc_ea; + next_state <= read16_state; +-- when "0111" => -- staa +-- left_ctrl <= acca_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st8; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write8_state; +-- when "1101" => -- jsr +-- left_ctrl <= acca_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_nop; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= latch_md; +-- ea_ctrl <= latch_ea; +-- next_state <= jsr_state; +-- when "1111" => -- sts +-- left_ctrl <= sp_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= fetch_state; + end case; + + when "1101" | "1110" | "1111" => -- accb + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldx + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + -- increment the effective address in case of 16 bit load + ea_ctrl <= inc_ea; + next_state <= read16_state; +-- when "0111" => -- stab +-- left_ctrl <= accb_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st8; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write8_state; +-- when "1101" => -- std +-- left_ctrl <= accd_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; +-- when "1111" => -- stx +-- left_ctrl <= ix_left; +-- right_ctrl <= zero_right; +-- alu_ctrl <= alu_st16; +-- cc_ctrl <= latch_cc; +-- md_ctrl <= load_md; +-- ea_ctrl <= latch_ea; +-- next_state <= write16_state; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= execute_state; + end case; + when others => + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= fetch_first_md; + ea_ctrl <= latch_ea; + next_state <= fetch_state; + end case; + + when read16_state => -- read second data byte from ea + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle the effective address + ea_ctrl <= latch_ea; + -- read the low byte of the 16 bit data + md_ctrl <= fetch_next_md; + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + -- + -- 16 bit Write state + -- write high byte of ALU output. + -- EA hold address of memory to write to + -- Advance the effective address in ALU + -- + when write16_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + -- increment the effective address + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + ea_ctrl <= inc_ea; + -- write the ALU hi byte to ea + addr_ctrl <= write_ad; + dout_ctrl <= md_hi_dout; + next_state <= write8_state; + -- + -- 8 bit write + -- Write low 8 bits of ALU output + -- + when write8_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- write ALU low byte output + addr_ctrl <= write_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when jmp_state => + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- load PC with effective address + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= load_ea_pc; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when jsr_state => -- JSR + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= jsr1_state; + + when jsr1_state => -- JSR + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= jmp_state; + + when branch_state => -- Bcc + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- calculate signed branch + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + pc_ctrl <= add_ea_pc; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when bsr_state => -- BSR + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= bsr1_state; + + when bsr1_state => -- BSR + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= branch_state; + + when rts_hi_state => -- RTS + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment the sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_hi_dout; + next_state <= rts_lo_state; + + when rts_lo_state => -- RTS1 + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle the ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + when mul_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- move acca to md + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + cc_ctrl <= latch_cc; + md_ctrl <= load_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mulea_state; + + when mulea_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + md_ctrl <= latch_md; + -- idle ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- move accb to ea + ea_ctrl <= load_accb_ea; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= muld_state; + + when muld_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + md_ctrl <= latch_md; + -- clear accd + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= latch_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul0_state; + + when mul0_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 0 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(0) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul1_state; + + when mul1_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 1 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(1) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul2_state; + + when mul2_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 2 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(2) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul3_state; + + when mul3_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 3 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(3) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul4_state; + + when mul4_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 4 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(4) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul5_state; + + when mul5_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 5 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(5) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul6_state; + + when mul6_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 6 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(6) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= mul7_state; + + when mul7_state => + -- default + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- if bit 7 of ea set, add accd to md + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + if ea(7) = '1' then + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + else + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + end if; + md_ctrl <= shiftl_md; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + when execute_state => -- execute single operand instruction + -- default + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + case op_code(7 downto 4) is + when "0110" | -- indexed single op + "0111" => -- extended single op + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + iv_ctrl <= latch_iv; + ea_ctrl <= latch_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + left_ctrl <= md_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1010" => -- dec + right_ctrl <= plus_one_right; + alu_ctrl <= alu_dec; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1100" => -- inc + right_ctrl <= plus_one_right; + alu_ctrl <= alu_inc; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1110" => -- jmp + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= write8_state; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + md_ctrl <= latch_md; + next_state <= fetch_state; + end case; + + when others => + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + ea_ctrl <= latch_ea; + -- idle the bus + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + end case; + + when psha_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= push_ad; + dout_ctrl <= acca_dout; + next_state <= fetch_state; + + when pula_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pull_ad; + dout_ctrl <= acca_dout; + next_state <= fetch_state; + + when pshb_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= push_ad; + dout_ctrl <= accb_dout; + next_state <= fetch_state; + + when pulb_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pull_ad; + dout_ctrl <= accb_dout; + next_state <= fetch_state; + + when pshx_lo_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= push_ad; + dout_ctrl <= ix_lo_dout; + next_state <= pshx_hi_state; + + when pshx_hi_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= push_ad; + dout_ctrl <= ix_hi_dout; + next_state <= fetch_state; + + when pulx_hi_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- pull ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_hi_dout; + next_state <= pulx_lo_state; + + when pulx_lo_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_lo_dout; + next_state <= fetch_state; + + -- + -- return from interrupt + -- enter here from bogus interrupts + -- + when rti_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- idle address bus + cc_ctrl <= latch_cc; + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + next_state <= rti_cc_state; + + when rti_cc_state => + -- default registers + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pull_ad; + dout_ctrl <= cc_dout; + next_state <= rti_accb_state; + + when rti_accb_state => + -- default registers + acca_ctrl <= latch_acca; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pull_ad; + dout_ctrl <= accb_dout; + next_state <= rti_acca_state; + + when rti_acca_state => + -- default registers + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pull_ad; + dout_ctrl <= acca_dout; + next_state <= rti_ixh_state; + + when rti_ixh_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_hi_dout; + next_state <= rti_ixl_state; + + when rti_ixl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pull_ad; + dout_ctrl <= ix_lo_dout; + next_state <= rti_pch_state; + + when rti_pch_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_add16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_hi_dout; + next_state <= rti_pcl_state; + + when rti_pcl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- idle sp + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + -- pull pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pull_ad; + dout_ctrl <= pc_lo_dout; + next_state <= fetch_state; + + -- + -- here on interrupt + -- iv register hold interrupt type + -- + when int_pcl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= push_ad; + dout_ctrl <= pc_lo_dout; + next_state <= int_pch_state; + + when int_pch_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= push_ad; + dout_ctrl <= pc_hi_dout; + next_state <= int_ixl_state; + + when int_ixl_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= push_ad; + dout_ctrl <= ix_lo_dout; + next_state <= int_ixh_state; + + when int_ixh_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= push_ad; + dout_ctrl <= ix_hi_dout; + next_state <= int_acca_state; + + when int_acca_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= push_ad; + dout_ctrl <= acca_dout; + next_state <= int_accb_state; + + + when int_accb_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= push_ad; + dout_ctrl <= accb_dout; + next_state <= int_cc_state; + + when int_cc_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= latch_cc; + sp_ctrl <= load_sp; + -- write cc + addr_ctrl <= push_ad; + dout_ctrl <= cc_dout; + nmi_ctrl <= latch_nmi; + -- + -- nmi is edge triggered + -- nmi_req is cleared when nmi goes low. + -- + if nmi_req = '1' then + iv_ctrl <= nmi_iv; + next_state <= vect_hi_state; + else + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_mask_state; + else + case op_code is + when "00111110" => -- WAI (wait for interrupt) + iv_ctrl <= latch_iv; + next_state <= int_wai_state; + when "00111111" => -- SWI (Software interrupt) + iv_ctrl <= swi_iv; + next_state <= vect_hi_state; + when others => -- bogus interrupt (return) + iv_ctrl <= latch_iv; + next_state <= rti_state; + end case; + end if; + end if; + + when int_wai_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + op_ctrl <= latch_op; + ea_ctrl <= latch_ea; + -- enable interrupts + left_ctrl <= sp_left; + right_ctrl <= plus_one_right; + alu_ctrl <= alu_cli; + cc_ctrl <= load_cc; + sp_ctrl <= latch_sp; + -- idle bus + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + if (nmi_req = '1') and (nmi_ack='0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= vect_hi_state; + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if (nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + else + nmi_ctrl <= latch_nmi; + end if; + -- + -- IRQ is level sensitive + -- + if (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_mask_state; + else + iv_ctrl <= latch_iv; + next_state <= int_wai_state; + end if; + end if; + + when int_mask_state => + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- Mask IRQ + left_ctrl <= sp_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + sp_ctrl <= latch_sp; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= vect_hi_state; + + when halt_state => -- halt CPU. + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- do nothing in ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + if halt = '1' then + next_state <= halt_state; + else + next_state <= fetch_state; + end if; + + when others => -- error state halt on undefine states + -- default + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + ix_ctrl <= latch_ix; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + nmi_ctrl <= latch_nmi; + ea_ctrl <= latch_ea; + -- do nothing in ALU + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + -- idle bus cycle + addr_ctrl <= idle_ad; + dout_ctrl <= md_lo_dout; + next_state <= error_state; + end case; +end process; + +-------------------------------- +-- +-- state machine +-- +-------------------------------- + +change_state: process( clk, rst, state, hold ) +begin + if clk'event and clk = '0' then + if rst = '1' then + state <= reset_state; + elsif hold = '1' then + state <= state; + else + state <= next_state; + end if; + end if; +end process; + -- output + +end CPU_ARCH; + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dpram.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dpram.vhd new file mode 100644 index 00000000..672d33d3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dpram.vhd @@ -0,0 +1,131 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dpram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock_a : IN STD_LOGIC ; + clock_b : IN STD_LOGIC ; + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren_a : IN STD_LOGIC := '1'; + wren_b : IN STD_LOGIC := '1'; + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END dpram; + + +ARCHITECTURE SYN OF dpram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + read_during_write_mode_port_b : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock1 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q_a <= sub_wire0(width_a-1 DOWNTO 0); + q_b <= sub_wire1(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK1", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK1", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + numwords_b => 2**widthad_a, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + read_during_write_mode_port_b => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + widthad_b => widthad_a, + width_a => width_a, + width_b => width_a, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK1" + ) + PORT MAP ( + wren_a => wren_a, + clock0 => clock_a, + wren_b => wren_b, + clock1 => clock_b, + address_a => address_a, + address_b => address_b, + data_a => data_a, + data_b => data_b, + q_a => sub_wire0, + q_b => sub_wire1 + ); + + + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dprom_2r.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dprom_2r.vhd new file mode 100644 index 00000000..a17e0e58 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/dprom_2r.vhd @@ -0,0 +1,135 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dprom_2r IS + GENERIC + ( + INIT_FILE : string := ""; + --NUMWORDS_A : natural; + WIDTHAD_A : natural; + WIDTH_A : natural := 8; + --NUMWORDS_B : natural; + WIDTHAD_B : natural; + WIDTH_B : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : in std_logic_vector (WIDTHAD_A-1 downto 0); + address_b : in std_logic_vector (WIDTHAD_B-1 downto 0); + clock : in std_logic ; + q_a : out std_logic_vector (WIDTH_A-1 downto 0); + q_b : out std_logic_vector (WIDTH_B-1 downto 0) + ); +END dprom_2r; + + +ARCHITECTURE SYN OF dprom_2r IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire2 : STD_LOGIC ; + SIGNAL sub_wire3_bv : BIT_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire3 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire4_bv : BIT_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire4 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + init_file_layout : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + ram_block_type : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (WIDTHAD_A-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (WIDTHAD_B-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + sub_wire2 <= '0'; + sub_wire3_bv(WIDTH_A-1 DOWNTO 0) <= (others => '0'); + sub_wire3 <= To_stdlogicvector(sub_wire3_bv); + sub_wire4_bv(WIDTH_B-1 DOWNTO 0) <= (others => '0'); + sub_wire4 <= To_stdlogicvector(sub_wire4_bv); + q_a <= sub_wire0(WIDTH_A-1 DOWNTO 0); + q_b <= sub_wire1(WIDTH_B-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK0", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK0", + init_file => INIT_FILE, + init_file_layout => "PORT_A", + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**WIDTHAD_A, + numwords_b => 2**WIDTHAD_B, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_b, + power_up_uninitialized => "FALSE", + ram_block_type => "M9K", + widthad_a => WIDTHAD_A, + widthad_b => WIDTHAD_B, + width_a => WIDTH_A, + width_b => WIDTH_B, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK0" + ) + PORT MAP ( + wren_a => sub_wire2, + wren_b => sub_wire2, + clock0 => clock, + address_a => address_a, + address_b => address_b, + data_a => sub_wire3, + data_b => sub_wire4, + q_a => sub_wire0, + q_b => sub_wire1 + ); + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/input_mapper.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/input_mapper.vhd new file mode 100644 index 00000000..8fc031ba --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/input_mapper.vhd @@ -0,0 +1,99 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; + +entity inputmapper is + generic + ( + NUM_DIPS : integer := 8; + NUM_INPUTS : integer := 2 + ); + port + ( + clk : in std_logic; + rst_n : in std_logic; + jamma : in from_JAMMA_t; + + -- user outputs + dips : in std_logic_vector(NUM_DIPS-1 downto 0); + inputs : out from_MAPPED_INPUTS_t(0 to NUM_INPUTS-1) + ); +end inputmapper; + +architecture SYN of inputmapper is + +begin + + process (clk, rst_n) + variable jamma_v : from_MAPPED_INPUTS_t(0 to NUM_INPUTS-1); + begin + + -- note: all inputs are active LOW + + if rst_n = '0' then + for i in 0 to NUM_INPUTS-1 loop + jamma_v(i).d := (others =>'1'); + end loop; + + elsif rising_edge (clk) then + + -- handle JAMMA inputs + jamma_v(0).d(0) := jamma.p(1).start; + jamma_v(0).d(1) := jamma.p(2).start; + jamma_v(0).d(2) := '1';--jamma.service; + jamma_v(0).d(3) := jamma.coin(1); + --unused + --unused + --unused + --unused + + jamma_v(1).d(0) := jamma.p(1).right; + jamma_v(1).d(1) := jamma.p(1).left; + jamma_v(1).d(2) := jamma.p(1).down; + jamma_v(1).d(3) := jamma.p(1).up; + --unused + jamma_v(1).d(5) := jamma.p(1).button(2); + --unused + jamma_v(1).d(7) := jamma.p(1).button(1); + + jamma_v(2).d(0) := jamma.p(2).right; + jamma_v(2).d(1) := jamma.p(2).left; + jamma_v(2).d(2) := jamma.p(2).down; + jamma_v(2).d(3) := jamma.p(2).up; + jamma_v(2).d(4) := jamma.coin(2); + jamma_v(2).d(5) := jamma.p(2).button(2); + --unused + jamma_v(2).d(7) := jamma.p(2).button(1); + end if; -- rising_edge (clk) + + -- assign outputs + inputs(0).d <= jamma_v(0).d; + inputs(1).d <= jamma_v(1).d; + inputs(2).d <= jamma_v(2).d; + inputs(3).d <= "11111110"; -- 1C/1C, 10/30/50K, 3 lives + inputs(4).d <= jamma.service & "1111100"; +-- PORT_START("DSW2") +-- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:1") +-- PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) +-- PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +-- PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW2:2") +-- PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) +-- PORT_DIPSETTING( 0x02, DEF_STR( Cocktail ) ) +-- PORT_DIPNAME( 0x04, 0x04, "Coin Mode" ) PORT_DIPLOCATION("SW2:3") +-- PORT_DIPSETTING( 0x04, "Mode 1" ) +-- PORT_DIPSETTING( 0x00, "Mode 2" ) +-- /* Bits 4,5,6 are different in each game, see below */ +-- PORT_DIPUNUSED_DIPLOC( 0x38, 0x38, "SW2:4,5,6" ) +-- PORT_DIPNAME( 0x40, 0x40, "Invulnerability (Cheat)" ) PORT_DIPLOCATION("SW2:7") +-- PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) +-- PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +-- PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) + + end process; + +end architecture SYN; + + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace.vhd new file mode 100644 index 00000000..112c724a --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace.vhd @@ -0,0 +1,146 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; +--use work.project_pkg.all; + +entity PACE is + port + ( + -- clocks and resets + clkrst_i : in from_CLKRST_t; + + -- misc I/O + buttons_i : in from_BUTTONS_t; + switches_i : in from_SWITCHES_t; + leds_o : out to_LEDS_t; + + -- controller inputs + inputs_i : in from_INPUTS_t; + + -- video + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t; + sound_data_o : out std_logic_vector(7 downto 0); + + -- custom i/o + -- project_i : in from_PROJECT_IO_t; + -- project_o : out to_PROJECT_IO_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0) + ); +end entity PACE; + +architecture SYN of PACE is + + constant CLK_1US_COUNTS : integer := + integer(27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY); + + signal mapped_inputs : from_MAPPED_INPUTS_t(0 to PACE_INPUTS_NUM_BYTES-1); + + signal to_tilemap_ctl : to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal from_tilemap_ctl : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + signal to_bitmap_ctl : to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal from_bitmap_ctl : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + signal to_sprite_reg : to_SPRITE_REG_t; + signal to_sprite_ctl : to_SPRITE_CTL_t; + signal from_sprite_ctl : from_SPRITE_CTL_t; + signal spr0_hit : std_logic; + + signal to_graphics : to_GRAPHICS_t; + signal from_graphics : from_GRAPHICS_t; + +begin + + inputs_inst : entity work.inputs + generic map + ( + NUM_DIPS => PACE_NUM_SWITCHES, + NUM_INPUTS => PACE_INPUTS_NUM_BYTES, + CLK_1US_DIV => CLK_1US_COUNTS + ) + port map + ( + clk => clkrst_i.clk(0), + reset => clkrst_i.rst(0), + jamma => inputs_i.jamma_n, + + dips => switches_i, + inputs => mapped_inputs + ); + + platform_inst : entity work.platform + generic map + ( + NUM_INPUT_BYTES => PACE_INPUTS_NUM_BYTES + ) + port map + ( + -- clocking and reset + clkrst_i => clkrst_i, + + -- misc inputs and outputs + buttons_i => buttons_i, + switches_i => switches_i, + leds_o => leds_o, + sound_data_o => sound_data_o, + -- controller inputs + inputs_i => mapped_inputs, + + -- graphics + bitmap_i => from_bitmap_ctl, + bitmap_o => to_bitmap_ctl, + + tilemap_i => from_tilemap_ctl, + tilemap_o => to_tilemap_ctl, + + sprite_reg_o => to_sprite_reg, + sprite_i => from_sprite_ctl, + sprite_o => to_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => from_graphics, + graphics_o => to_graphics, + + -- custom i/o +-- project_i => project_i, +-- project_o => project_o, + platform_i => platform_i, + platform_o => platform_o, + + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do + ); + + graphics_inst : entity work.Graphics + Port Map + ( + bitmap_ctl_i => to_bitmap_ctl, + bitmap_ctl_o => from_bitmap_ctl, + + tilemap_ctl_i => to_tilemap_ctl, + tilemap_ctl_o => from_tilemap_ctl, + + sprite_reg_i => to_sprite_reg, + sprite_ctl_i => to_sprite_ctl, + sprite_ctl_o => from_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => to_graphics, + graphics_o => from_graphics, + + -- video (incl. clk) + video_i => video_i, + video_o => video_o + ); + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg.vhd new file mode 100644 index 00000000..d2dd0c07 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg.vhd @@ -0,0 +1,280 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; + +package pace_pkg is + + -- + -- PACE constants which *MUST* be defined + -- + + type PACETargetType is + ( + PACE_TARGET_NANOBOARD_NB1, + PACE_TARGET_DE0, + PACE_TARGET_DE0_CV, -- 5CEBA4 + PACE_TARGET_DE0_NANO, -- EP4CE22 + PACE_TARGET_DE1, + PACE_TARGET_DE2, + PACE_TARGET_DE2_70, -- EP2C70 + PACE_TARGET_DE2_115, -- EP4CE115 + PACE_TARGET_P2, -- A02 build + PACE_TARGET_P2A, -- A04/A build (SRAM byte selects) + PACE_TARGET_P3M, + PACE_TARGET_S3A_700, -- Spartan 3A/N Starter Kit + PACE_TARGET_RC10, + PACE_TARGET_NX2_12, + PACE_TARGET_NEXYS_3, -- Digilent S6 board + PACE_TARGET_CYC3DEV, + PACE_TARGET_CYC5GXDEV, + PACE_TARGET_COCO3PLUS, + PACE_TARGET_S5A, + PACE_TARGET_CARTEBLANCHE_250, + PACE_TARGET_CARTEBLANCHE_500, + PACE_TARGET_BEMICRO, + PACE_TARGET_OPENEP3C16, + PACE_TARGET_MIST, + PACE_TARGET_CHAMELEON64, + PACE_TARGET_RETRORAMBLINGS_CYC3, -- Generic EP3C25 board with custom io boards + PACE_TARGET_S5A_R2_EP4C, + PACE_TARGET_S5A_R2_EP3SL, + PACE_TARGET_S5A_R2B0_EP4C, + PACE_TARGET_S5A_R2B0_EP3SL, + PACE_TARGET_S5A_R2C0_EP4C, + PACE_TARGET_S5A_R2C0_EP3SL, + PACE_TARGET_S5L_A0_EP4C, + PACE_TARGET_S5L_A0_EP3SL, + PACE_TARGET_NAVICO_ROCKY, + PACE_TARGET_NGPACE, + PACE_TARGET_S6M_A0 + ); + + type PACEFpgaVendor_t is + ( + PACE_FPGA_VENDOR_ALTERA, + PACE_FPGA_VENDOR_XILINX, + PACE_FPGA_VENDOR_LATTICE + ); + + type PACEFpgaFamily_t is + ( + PACE_FPGA_FAMILY_CYCLONE1, + PACE_FPGA_FAMILY_CYCLONE2, + PACE_FPGA_FAMILY_CYCLONE3, + PACE_FPGA_FAMILY_CYCLONE4, + PACE_FPGA_FAMILY_CYCLONE5, + PACE_FPGA_FAMILY_CYCLONE6, + PACE_FPGA_FAMILY_STRATIX_III, + PACE_FPGA_FAMILY_SPARTAN3, + PACE_FPGA_FAMILY_SPARTAN3A, + PACE_FPGA_FAMILY_SPARTAN3E + ); + + type PACEJamma_t is + ( + PACE_JAMMA_NONE, + PACE_JAMMA_MAPLE, + PACE_JAMMA_NGC, + PACE_JAMMA_PS2 + ); + + -- Types + + type ByteArrayType is array (natural range <>) of std_logic_vector(7 downto 0); + + type from_CLKRST_t is record + arst : std_logic; + arst_n : std_logic; + rst : std_logic_vector(0 to 3); + clk_ref : std_logic; --reference clock + clk : std_logic_vector(0 to 3); + end record; + + -- maximums from the DE2 target + + constant PACE_NUM_SWITCHES : natural := 18; + subtype from_SWITCHES_t is std_logic_vector(PACE_NUM_SWITCHES-1 downto 0); + + constant PACE_NUM_BUTTONS : natural := 4; + subtype from_BUTTONS_t is std_logic_vector(PACE_NUM_BUTTONS-1 downto 0); + + constant PACE_NUM_LEDS : natural := 18; + subtype to_LEDS_t is std_logic_vector(PACE_NUM_LEDS-1 downto 0); + + -- + -- JAMMA interface data structures + -- - note: all signals are active LOW + -- + + type from_JAMMA_player_t is record + start : std_logic; + up : std_logic; + down : std_logic; + left : std_logic; + right : std_logic; + button : std_logic_vector(1 to 5); + end record; + + type from_JAMMA_player_a is array (natural range <>) of from_JAMMA_player_t; + + type from_JAMMA_t is record + coin_cnt : std_logic_vector(1 to 2); + service : std_logic; + tilt : std_logic; + test : std_logic; + coin : std_logic_vector(1 to 2); + p : from_JAMMA_player_a(1 to 2); + end record; + + -- + -- INPUTS + -- + subtype analogue_in_t is std_logic_vector(9 downto 0); + type analogue_in_a is array (natural range <>) of analogue_in_t; + + type from_INPUTS_t is record + ps2_kclk : std_logic; + ps2_kdat : std_logic; + ps2_mclk : std_logic; + ps2_mdat : std_logic; + jamma_n : from_JAMMA_t; + -- up to 4 10-bit analgue inputs + analogue : analogue_in_a(1 to 4); + end record; + + type in8_t is record + d : std_logic_vector(7 downto 0); + end record; + + type from_MAPPED_INPUTS_t is array (natural range <>) of in8_t; + + -- + -- SRAM interface data structure + -- + type from_SRAM_t is record + d : std_logic_vector(31 downto 0); + end record; + + type to_SRAM_t is record + a : std_logic_vector(23 downto 0); + d : std_logic_vector(31 downto 0); + be : std_logic_vector(3 downto 0); + cs : std_logic; + oe : std_logic; + we : std_logic; + end record; + + function NULL_TO_SRAM return to_SRAM_t; + + -- + -- FLASH interface data structure + -- + type from_FLASH_t is record + d : std_logic_vector(15 downto 0); + end record; + + type to_FLASH_t is record + a : std_logic_vector(21 downto 0); + d : std_logic_vector(15 downto 0); + we : std_logic; + cs : std_logic; + oe : std_logic; + end record; + + function NULL_TO_FLASH return to_FLASH_t; + + type from_AUDIO_t is record + clk : std_logic; + end record; + + type to_AUDIO_t is record + clk : std_logic; + ldata : std_logic_vector(15 downto 0); + rdata : std_logic_vector(15 downto 0); + end record; + + function NULL_TO_AUDIO return to_AUDIO_t; + + type from_SPI_t is record + din : std_logic; + end record; + + type to_SPI_t is record + clk : std_logic; + mode : std_logic; + sel : std_logic; + ena : std_logic; + dout : std_logic; + end record; + + function NULL_TO_SPI return to_SPI_t; + + type to_SERIAL_t is record + txd : std_logic; + rts : std_logic; + end record; + + function NULL_TO_SERIAL return to_SERIAL_t; + + type from_SERIAL_t is record + dcd : std_logic; + rxd : std_logic; + cts : std_logic; + end record; + + constant PACE_NUM_GPI : natural := 72; + subtype from_GP_t is std_logic_vector(PACE_NUM_GPI-1 downto 0); + constant PACE_NUM_GPO : natural := PACE_NUM_GPI; + type to_GP_t is record + d : std_logic_vector(PACE_NUM_GPO-1 downto 0); + oe : std_logic_vector(PACE_NUM_GPO-1 downto 0); + end record; + + function NULL_TO_GP return to_GP_t; + + subtype SND_A_t is std_logic_vector(7 downto 0); + subtype SND_D_t is std_logic_vector(7 downto 0); + + type to_SOUND_t is record + a : SND_A_t; + d : SND_D_t; + rd : std_logic; + wr : std_logic; + end record; + + type from_SOUND_t is record + d : SND_D_t; + end record; + + function NULL_TO_SOUND return to_SOUND_t; + + -- + -- OSD interface data structure + -- + type from_OSD_t is record + d : std_logic_vector(7 downto 0); + end record; + + function NULL_FROM_OSD return from_OSD_t; + + type to_OSD_t is record + en : std_logic; + a : std_logic_vector(7 downto 0); + d : std_logic_vector(7 downto 0); + we : std_logic; + end record; + + function NULL_TO_OSD return to_OSD_t; + + -- create a constant that automatically determines + -- whether this is simulation or synthesis + constant IN_SIMULATION : BOOLEAN := false + -- synthesis translate_off + or true + -- synthesis translate_on + ; + constant IN_SYNTHESIS : boolean := not IN_SIMULATION; + +end; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg_body.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg_body.vhd new file mode 100644 index 00000000..e1cedf87 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pace_pkg_body.vhd @@ -0,0 +1,50 @@ +library work; + +package body pace_pkg is + + function NULL_TO_FLASH return to_FLASH_t is + begin + return ((others => '0'), (others => '0'), '0', '0', '0'); + end NULL_TO_FLASH; + + function NULL_TO_SRAM return to_SRAM_t is + begin + return ((others => '0'), (others => '0'), (others => '0'), '0', '0', '0'); + end NULL_TO_SRAM; + + function NULL_TO_AUDIO return to_AUDIO_t is + begin + return ('0', (others => '0'), (others => '0')); + end NULL_TO_AUDIO; + + function NULL_TO_SPI return to_SPI_t is + begin + return (others => '0'); + end NULL_TO_SPI; + + function NULL_TO_SERIAL return to_SERIAL_t is + begin + return (others => '0'); + end NULL_TO_SERIAL; + + function NULL_TO_SOUND return to_SOUND_t is + begin + return ((others => '0'), (others => '0'), '0', '0'); + end NULL_TO_SOUND; + + function NULL_FROM_OSD return from_OSD_t is + begin + return (others => (others => '0')); + end NULL_FROM_OSD; + + function NULL_TO_OSD return to_OSD_t is + begin + return ('0', (others => '0'), (others => '0'), '0'); + end NULL_TO_OSD; + + function NULL_TO_GP return to_GP_t is + begin + return ((others => '0'), (others => '0')); + end NULL_TO_GP; + +end package body pace_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform.vhd new file mode 100644 index 00000000..2ad4f64f --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform.vhd @@ -0,0 +1,477 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; +use work.platform_variant_pkg.all; +--use work.project_pkg.all; + +entity platform is + generic + ( + NUM_INPUT_BYTES : integer + ); + port + ( + -- clocking and reset + clkrst_i : in from_CLKRST_t; + + -- misc I/O + buttons_i : in from_BUTTONS_t; + switches_i : in from_SWITCHES_t; + leds_o : out to_LEDS_t; + + -- controller inputs + inputs_i : in from_MAPPED_INPUTS_t(0 to NUM_INPUT_BYTES-1); + + -- graphics + + bitmap_i : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_o : out to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + tilemap_i : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_o : out to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_o : out to_SPRITE_REG_t; + sprite_i : in from_SPRITE_CTL_t; + sprite_o : out to_SPRITE_CTL_t; + spr0_hit : in std_logic; + + -- various graphics information + graphics_i : in from_GRAPHICS_t; + graphics_o : out to_GRAPHICS_t; + sound_data_o : out std_logic_vector(7 downto 0); + + -- custom i/o +-- project_i : in from_PROJECT_IO_t; +-- project_o : out to_PROJECT_IO_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0) + ); + +end platform; + +architecture SYN of platform is + + alias clk_sys : std_logic is clkrst_i.clk(0); + alias rst_sys : std_logic is clkrst_i.rst(0); + alias clk_video : std_logic is clkrst_i.clk(1); + + -- cpu signals + signal clk_3M072_en : std_logic; + signal cpu_clk_en : std_logic; + signal cpu_a : std_logic_vector(15 downto 0); + signal cpu_d_i : std_logic_vector(7 downto 0); + signal cpu_d_o : std_logic_vector(7 downto 0); + signal cpu_mem_wr : std_logic; + signal cpu_io_rd : std_logic; + signal cpu_io_wr : std_logic; + signal cpu_irq : std_logic; + + -- ROM signals + signal rom_cs : std_logic; +-- signal rom_d_o : std_logic_vector(7 downto 0); + + -- keyboard signals + + -- VRAM signals + signal vram_cs : std_logic; + signal vram_wr : std_logic; + signal vram_d_o : std_logic_vector(7 downto 0); + + signal snd_cs : std_logic; + + + -- RAM signals + signal wram_cs : std_logic; + signal wram_wr : std_logic; + signal wram_d_o : std_logic_vector(7 downto 0); + + -- CRAM/SPRITE signals + signal cram_cs : std_logic; + signal cram_wr : std_logic; + signal cram_d_o : std_logic_vector(7 downto 0); + signal sprite_cs : std_logic; + + -- misc signals + signal in_cs : std_logic; + signal in_d_o : std_logic_vector(7 downto 0); + + -- other signals + signal rst_platform : std_logic; + signal pause : std_logic; + signal rot_en : std_logic; + +begin + + -- handle special keys + process (clk_sys, rst_sys) + variable spec_keys_r : std_logic_vector(7 downto 0); + alias spec_keys : std_logic_vector(7 downto 0) is inputs_i(PACE_INPUTS_NUM_BYTES-1).d; + variable layer_en : std_logic_vector(4 downto 0); + begin + if rst_sys = '1' then + rst_platform <= '0'; + pause <= '0'; + rot_en <= '0'; -- to default later + spec_keys_r := (others => '0'); + layer_en := "11111"; + elsif rising_edge(clk_sys) then + rst_platform <= spec_keys(0); + if spec_keys_r(1) = '0' and spec_keys(1) = '1' then + pause <= not pause; + end if; + if spec_keys_r(2) = '0' and spec_keys(2) = '1' then + rot_en <= not rot_en; + if layer_en = "11111" then + layer_en := "00001"; + elsif layer_en = "10000" then + layer_en := "11111"; + else + layer_en := layer_en(3 downto 0) & layer_en(4); + end if; + end if; + spec_keys_r := spec_keys; + end if; + graphics_o.bit8(0)(4 downto 0) <= layer_en; + end process; + + --graphics_o.bit8(0)(0) <= rot_en; + + -- chip select logic + -- ROM $0000-$7FFF + rom_cs <= '1' when STD_MATCH(cpu_a, "0---------------") else '0'; + -- SPRITE $C000-$C0FF + sprite_cs <= '1' when STD_MATCH(cpu_a, X"C0"& "--------") else '0'; + -- VRAM/CRAM $D000-$DFFF + vram_cs <= '1' when PLATFORM_VARIANT = "kungfum" and + STD_MATCH(cpu_a, X"D"&"0-----------") else + '1' when PLATFORM_VARIANT /= "kungfum" and + STD_MATCH(cpu_a, X"D"&"-----------0") else + '0'; + cram_cs <= '1' when PLATFORM_VARIANT = "kungfum" and + STD_MATCH(cpu_a, X"D"&"1-----------") else + '1' when PLATFORM_VARIANT /= "kungfum" and + STD_MATCH(cpu_a, X"D"&"-----------1") else + '0'; + -- RAM $E000-$EFFF + wram_cs <= '1' when STD_MATCH(cpu_a, X"E"&"------------") else '0'; + + -- OUTPUT $DXX0 + snd_cs <= '1' when STD_MATCH(cpu_a(7 downto 0), X"D") else '0'; + + -- INPUTS (I/O) $00-$04 + in_cs <= '1' when STD_MATCH(cpu_a(7 downto 0), X"0"&"00--") else + '1' when STD_MATCH(cpu_a(7 downto 0), X"04") else + '0'; + +process (clk_sys, rst_sys) begin + if rst_sys = '1' then + sound_data_o <= X"00"; + elsif rising_edge(clk_sys) then + if cpu_clk_en = '1' and cpu_mem_wr = '1' and snd_cs = '1' then + sound_data_o <= cpu_d_o; + end if; + end if; + end process; + + + -- memory read mux + cpu_d_i <= in_d_o when (cpu_io_rd = '1' and in_cs = '1') else + cpu_rom_do when rom_cs = '1' else + vram_d_o when vram_cs = '1' else + cram_d_o when cram_cs = '1' else + wram_d_o when wram_cs = '1' else + (others => '1'); + + -- memory block write signals + vram_wr <= vram_cs and cpu_mem_wr; + cram_wr <= cram_cs and cpu_mem_wr; + wram_wr <= wram_cs and cpu_mem_wr; + + -- sprite registers + sprite_reg_o.clk <= clk_sys; + sprite_reg_o.clk_ena <= clk_3M072_en; + sprite_reg_o.a <= cpu_a(7 downto 0); + sprite_reg_o.d <= cpu_d_o; + sprite_reg_o.wr <= sprite_cs and cpu_mem_wr; + + -- + -- COMPONENT INSTANTIATION + -- + + BLK_CPU : block + signal cpu_rst : std_logic; + begin + -- generate CPU enable clock (3MHz from 27/30MHz) + clk_en_inst : entity work.clk_div + generic map + ( + DIVISOR => M62_CPU_CLK_ENA_DIVIDE_BY + ) + port map + ( + clk => clk_sys, + reset => rst_sys, + clk_en => clk_3M072_en + ); + + -- gated CPU signals + cpu_clk_en <= clk_3M072_en and not pause; + cpu_rst <= rst_sys or rst_platform; + + cpu_inst : entity work.Z80 + port map + ( + clk => clk_sys, + clk_en => cpu_clk_en, + reset => cpu_rst, + + addr => cpu_a, + datai => cpu_d_i, + datao => cpu_d_o, + + mem_rd => open, + mem_wr => cpu_mem_wr, + io_rd => cpu_io_rd, + io_wr => cpu_io_wr, + + intreq => cpu_irq, + intvec => cpu_d_i, + intack => open, + nmi => '0' + ); + + end block BLK_CPU; + + BLK_INTERRUPTS : block + + signal vblank_int : std_logic; + + begin + + process (clk_sys, rst_sys) + variable vblank_r : std_logic_vector(3 downto 0); + alias vblank_prev : std_logic is vblank_r(vblank_r'left); + alias vblank_um : std_logic is vblank_r(vblank_r'left-1); + -- 1us duty for VBLANK_INT + variable count : integer range 0 to CLK0_FREQ_MHz * 100; + begin + if rst_sys = '1' then + vblank_int <= '0'; + vblank_r := (others => '0'); + count := count'high; + elsif rising_edge(clk_sys) then + -- rising edge vblank only + if vblank_prev = '0' and vblank_um = '1' then + count := 0; + end if; + if count /= count'high then + vblank_int <= '1'; + count := count + 1; + else + vblank_int <= '0'; + end if; + vblank_r := vblank_r(vblank_r'left-1 downto 0) & graphics_i.vblank; + end if; -- rising_edge(clk_sys) + end process; + + -- generate INT + cpu_irq <= vblank_int; + + end block BLK_INTERRUPTS; + + BLK_INPUTS : block + begin + in_d_o <= inputs_i(0).d when cpu_a(2 downto 0) = "000" else + inputs_i(1).d when cpu_a(2 downto 0) = "001" else + inputs_i(2).d when cpu_a(2 downto 0) = "010" else + inputs_i(3).d when cpu_a(2 downto 0) = "011" else + inputs_i(4).d; + end block BLK_INPUTS; + + BLK_SCROLL : block + signal m62_hscroll : std_logic_vector(15 downto 0); + begin + process (clk_sys, rst_sys) + begin + if rst_sys = '1' then + m62_hscroll <= (others => '0'); + elsif rising_edge(clk_sys) then + if cpu_clk_en = '1' and cpu_mem_wr = '1' then + case cpu_a is + when X"A000" => + if PLATFORM_VARIANT = "kungfum" then + m62_hscroll(7 downto 0) <= cpu_d_o; + end if; + when X"B000" => + if PLATFORM_VARIANT = "kungfum" then + m62_hscroll(15 downto 8) <= cpu_d_o; + end if; + when others => + null; + end case; + end if; -- cpu_wr + end if; -- rising_edge(clk_sys) + end process; + graphics_o.bit16(0) <= m62_hscroll; + end block BLK_SCROLL; + +cpu_rom_addr <= cpu_a(14 downto 0); + + BLK_GFX_ROMS : block + + type gfx_rom_d_a is array(M62_CHAR_ROM'range) of std_logic_vector(7 downto 0); + signal chr_rom_d : gfx_rom_d_a; + type spr_rom_d_a is array(0 to 11) of std_logic_vector(7 downto 0); + signal spr_rom_left : spr_rom_d_a; + signal spr_rom_right : spr_rom_d_a; + + begin + + GEN_CHAR_ROMS : for i in M62_CHAR_ROM'range generate + char_rom_inst : entity work.sprom + generic map + ( + init_file => "./roms/" & + M62_CHAR_ROM(i) & ".hex", + widthad_a => 13 + ) + port map + ( + clock => clk_video, + address => tilemap_i(1).tile_a(12 downto 0), + q => chr_rom_d(i) + ); + end generate GEN_CHAR_ROMS; + + tilemap_o(1).tile_d(23 downto 0) <= chr_rom_d(0) & chr_rom_d(1) & chr_rom_d(2); + + GEN_SPRITE_ROMS : for i in M62_SPRITE_ROM'range generate + sprite_rom_inst : entity work.dprom_2r + generic map + ( + init_file => "./roms/" & + M62_SPRITE_ROM(i) & ".hex", + widthad_a => 13, + widthad_b => 13 + ) + port map + ( + clock => clk_video, + address_a(12 downto 5) => sprite_i.a(12 downto 5), + address_a(4) => '0', + address_a(3 downto 0) => sprite_i.a(3 downto 0), + q_a => spr_rom_left(i), + address_b(12 downto 5) => sprite_i.a(12 downto 5), + address_b(4) => '1', + address_b(3 downto 0) => sprite_i.a(3 downto 0), + q_b => spr_rom_right(i) + ); + end generate GEN_SPRITE_ROMS; + + sprite_o.d(sprite_o.d'left downto 48) <= (others => '0'); + sprite_o.d(47 downto 0) <= spr_rom_left(0) & spr_rom_right(0) & + spr_rom_left(1) & spr_rom_right(1) & + spr_rom_left(2) & spr_rom_right(2) + when sprite_i.a(14 downto 13) = "00" else + spr_rom_left(3) & spr_rom_right(3) & + spr_rom_left(4) & spr_rom_right(4) & + spr_rom_left(5) & spr_rom_right(5) + when sprite_i.a(14 downto 13) = "01" else + spr_rom_left(6) & spr_rom_right(6) & + spr_rom_left(7) & spr_rom_right(7) & + spr_rom_left(8) & spr_rom_right(8) + when sprite_i.a(14 downto 13) = "10" else + spr_rom_left(9) & spr_rom_right(9) & + spr_rom_left(10) & spr_rom_right(10) & + spr_rom_left(11) & spr_rom_right(11); + + end block BLK_GFX_ROMS; + + + + BLK_VRAM : block + signal vram_a : std_logic_vector(10 downto 0); + alias cram_a : std_logic_vector(10 downto 0) is vram_a; + begin + + vram_a <= cpu_a(10 downto 0) when PLATFORM_VARIANT = "kungfum" else + cpu_a(11 downto 1); + + vram_inst : entity work.dpram + generic map + ( + init_file => "", + widthad_a => 11 + ) + port map + ( + clock_b => clk_sys, + address_b => vram_a, + wren_b => vram_wr, + data_b => cpu_d_o, + q_b => vram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).map_a(10 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).map_d(7 downto 0) + ); + tilemap_o(1).map_d(15 downto 8) <= (others => '0'); + + cram_inst : entity work.dpram + generic map + ( + init_file => "", + widthad_a => 11 + ) + port map + ( + clock_b => clk_sys, + address_b => cram_a, + wren_b => cram_wr, + data_b => cpu_d_o, + q_b => cram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).attr_a(10 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).attr_d(7 downto 0) + ); + tilemap_o(1).attr_d(15 downto 8) <= (others => '0'); + + end block BLK_VRAM; + + + wram_inst : entity work.spram + generic map + ( + widthad_a => 12 + ) + port map + ( + clock => clk_sys, + address => cpu_a(11 downto 0), + data => cpu_d_o, + wren => wram_wr, + q => wram_d_o + ); + + + -- unused outputs + + sprite_o.ld <= '0'; + --graphics_o <= NULL_TO_GRAPHICS; + leds_o <= (others => '0'); + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_pkg.vhd new file mode 100644 index 00000000..355d009a --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_pkg.vhd @@ -0,0 +1,55 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +library work; + +use work.platform_variant_pkg.all; +use work.video_controller_pkg.all; +package platform_pkg is + + + constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_PAL_576x288_50Hz; + constant PACE_CLK0_DIVIDE_BY : natural := 27; + constant PACE_CLK0_MULTIPLY_BY : natural := 44; -- 27*44/27 = 44MHz + constant PACE_CLK1_DIVIDE_BY : natural := 27; + constant PACE_CLK1_MULTIPLY_BY : natural := 11; -- 27*11/27 = 11MHz + constant PACE_VIDEO_H_SCALE : integer := 1; + constant PACE_VIDEO_V_SCALE : integer := 1; + constant PACE_ENABLE_ADV724 : std_logic := '1'; + constant USE_VIDEO_VBLANK_INTERRUPT : boolean := false; + constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '1'; + constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '1'; + + constant PACE_VIDEO_BORDER_RGB : RGB_t := RGB_BLACK; + + constant M62_VIDEO_H_SIZE : integer := 256; + constant M62_VIDEO_H_OFFSET : integer := (512-M62_VIDEO_H_SIZE)/2; + constant M62_VIDEO_V_SIZE : integer := 256; + + constant PACE_VIDEO_NUM_BITMAPS : natural := 0; + constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; + constant PACE_VIDEO_NUM_SPRITES : natural := 32; + constant PACE_VIDEO_H_SIZE : integer := M62_VIDEO_H_SIZE; + constant PACE_VIDEO_V_SIZE : integer := M62_VIDEO_V_SIZE; + constant PACE_VIDEO_L_CROP : integer := 0; + constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; + constant PACE_VIDEO_PIPELINE_DELAY : integer := 5; + + constant PACE_INPUTS_NUM_BYTES : integer := 6; + + constant CLK0_FREQ_MHz : natural := + 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; + constant CPU_FREQ_MHz : natural := 3; + + constant M62_CPU_CLK_ENA_DIVIDE_BY : natural := CLK0_FREQ_MHz / CPU_FREQ_MHz; + + type from_PLATFORM_IO_t is record + not_used : std_logic; + end record; + + type to_PLATFORM_IO_t is record + not_used : std_logic; + end record; + +end; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_variant_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_variant_pkg.vhd new file mode 100644 index 00000000..c4995415 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/platform_variant_pkg.vhd @@ -0,0 +1,524 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +library work; + +use work.platform_pkg.all; + +package platform_variant_pkg is + + + constant PLATFORM_VARIANT : string := "kungfum"; + + type rom_a is array (natural range <>) of string; + +-- constant M62_ROM : rom_a(0 to 3) := +-- ( +-- 0 => "lr-a-4e", +-- 1 => "lr-a-4d", + -- 2 => "lr-a-4b", + -- 3 => "lr-a-4a" + -- ); + -- constant M62_ROM_WIDTHAD : natural := 13; + + constant M62_CHAR_ROM : rom_a(0 to 2) := + ( + 0 => "g-4c-a", + 1 => "g-4d-a", + 2 => "g-4e-a" + ); + + constant M62_SPRITE_ROM : rom_a(0 to 11) := + ( + 0 => "b-4k-.bin", + 3 => "b-4f-.bin", + 6 => "b-4l-.bin", + 9 => "b-4h-.bin", + 1 => "b-3n-.bin", + 4 => "b-4n-.bin", + 7 => "b-4m-.bin", + 10 => "b-3m-.bin", + 2 => "b-4c-.bin", + 5 => "b-4e-.bin", + 8 => "b-4d-.bin", + 11 => "b-4a-.bin" + ); + + +type pal_rgb_t is array (0 to 2) of std_logic_vector(7 downto 0); + type pal_a is array (natural range <>) of pal_rgb_t; + + constant tile_pal : pal_a(0 to 255) := + ( + 0 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 1 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 2 => (0=>"00000011", 1=>"11111111", 2=>"00000011"), -- 03FF03 + 3 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 4 => (0=>"00000011", 1=>"00000011", 2=>"11111111"), -- 0303FF + 5 => (0=>"11111111", 1=>"00000011", 2=>"11111111"), -- FF03FF + 6 => (0=>"00000011", 1=>"11111111", 2=>"11111111"), -- 03FFFF + 8 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 9 => (0=>"11110000", 1=>"10110111", 2=>"10000100"), -- F0B784 + 10 => (0=>"11011100", 1=>"10100110", 2=>"01110000"), -- DCA670 + 11 => (0=>"11111111", 1=>"00000011", 2=>"00110001"), -- FF0331 + 12 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 13 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 14 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 15 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 16 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 18 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 19 => (0=>"11001100", 1=>"11110000", 2=>"11001100"), -- CCF0CC + 20 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 21 => (0=>"11011100", 1=>"10010100", 2=>"01010000"), -- DC9450 + 22 => (0=>"10110111", 1=>"10010100", 2=>"01010000"), -- B79450 + 23 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 24 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 25 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 26 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 27 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 29 => (0=>"11001100", 1=>"10010100", 2=>"10000100"), -- CC9484 + 30 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 31 => (0=>"11111111", 1=>"11110000", 2=>"11001100"), -- FFF0CC + 32 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 33 => (0=>"11001100", 1=>"00110001", 2=>"01000001"), -- CC3141 + 34 => (0=>"11111111", 1=>"10000100", 2=>"10000100"), -- FF8484 + 35 => (0=>"11111111", 1=>"10110111", 2=>"10110111"), -- FFB7B7 + 36 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 37 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 38 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 39 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 40 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 41 => (0=>"00000011", 1=>"11001100", 2=>"11001100"), -- 03CCCC + 42 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 43 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 44 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 45 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 46 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 47 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 48 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 49 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 50 => (0=>"00000011", 1=>"11110000", 2=>"11110000"), -- 03F0F0 + 51 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 52 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 53 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 54 => (0=>"01110000", 1=>"01110000", 2=>"01110000"), -- 707070 + 55 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 56 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 57 => (0=>"00000011", 1=>"11111111", 2=>"00000011"), -- 03FF03 + 58 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 59 => (0=>"11111111", 1=>"11011100", 2=>"00000011"), -- FFDC03 + 60 => (0=>"00000011", 1=>"11111111", 2=>"11111111"), -- 03FFFF + 61 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 62 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 63 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 64 => (0=>"11111111", 1=>"00000011", 2=>"00110001"), -- FF0331 + 65 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 66 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 67 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 68 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 69 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 70 => (0=>"00000011", 1=>"11110000", 2=>"11110000"), -- 03F0F0 + 71 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 72 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 73 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 74 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 75 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 76 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 77 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 78 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 80 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 81 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 82 => (0=>"11011100", 1=>"10010100", 2=>"01110000"), -- DC9470 + 83 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 84 => (0=>"11011100", 1=>"11111111", 2=>"11111111"), -- DCFFFF + 85 => (0=>"00000011", 1=>"11110000", 2=>"11110000"), -- 03F0F0 + 86 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 87 => (0=>"01110000", 1=>"01110000", 2=>"01110000"), -- 707070 + 88 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 91 => (0=>"11111111", 1=>"00000011", 2=>"00110001"), -- FF0331 + 92 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 93 => (0=>"11001100", 1=>"00000011", 2=>"10000100"), -- CC0384 + 94 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 96 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 97 => (0=>"00000011", 1=>"10110111", 2=>"11001100"), -- 03B7CC + 98 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 99 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 100 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 101 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 102 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 103 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 105 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 106 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 107 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 108 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 109 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 110 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 111 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 112 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 113 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 114 => (0=>"00000011", 1=>"11110000", 2=>"10100110"), -- 03F0A6 + 115 => (0=>"11111111", 1=>"11011100", 2=>"10010100"), -- FFDC94 + 116 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 117 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 118 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 119 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 120 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 121 => (0=>"11111111", 1=>"10110111", 2=>"10110111"), -- FFB7B7 + 122 => (0=>"00000011", 1=>"11110000", 2=>"10100110"), -- 03F0A6 + 123 => (0=>"11111111", 1=>"11011100", 2=>"10010100"), -- FFDC94 + 125 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 126 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 127 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 128 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 129 => (0=>"11111111", 1=>"10110111", 2=>"10110111"), -- FFB7B7 + 130 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 131 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 132 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 133 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 134 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 135 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 136 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 137 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 138 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 139 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 140 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 141 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 142 => (0=>"00000011", 1=>"11011100", 2=>"11011100"), -- 03DCDC + 143 => (0=>"10110111", 1=>"10100110", 2=>"10000100"), -- B7A684 + 144 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 145 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 146 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 147 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 148 => (0=>"11001100", 1=>"10010100", 2=>"10000100"), -- CC9484 + 149 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 150 => (0=>"10100110", 1=>"11001100", 2=>"11111111"), -- A6CCFF + 151 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 152 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 153 => (0=>"10100110", 1=>"10000100", 2=>"00000011"), -- A68403 + 154 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 155 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 156 => (0=>"11001100", 1=>"10010100", 2=>"10000100"), -- CC9484 + 157 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 158 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 159 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 160 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 162 => (0=>"11111111", 1=>"10010100", 2=>"01110000"), -- FF9470 + 163 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 164 => (0=>"11111111", 1=>"11111111", 2=>"11001100"), -- FFFFCC + 165 => (0=>"11111111", 1=>"11111111", 2=>"10110111"), -- FFFFB7 + 166 => (0=>"11001100", 1=>"11001100", 2=>"00000011"), -- CCCC03 + 167 => (0=>"11110000", 1=>"11110000", 2=>"00000011"), -- F0F003 + 168 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 169 => (0=>"00000011", 1=>"11111111", 2=>"11111111"), -- 03FFFF + 170 => (0=>"11111111", 1=>"00000011", 2=>"11111111"), -- FF03FF + 171 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 173 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 174 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 175 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 176 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 177 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 178 => (0=>"11001100", 1=>"11111111", 2=>"11001100"), -- CCFFCC + 179 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 180 => (0=>"00000011", 1=>"00000011", 2=>"11111111"), -- 0303FF + 181 => (0=>"11110000", 1=>"10110111", 2=>"10010100"), -- F0B794 + 182 => (0=>"10110111", 1=>"11110000", 2=>"11110000"), -- B7F0F0 + 183 => (0=>"11001100", 1=>"10100110", 2=>"10000100"), -- CCA684 + 186 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 188 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 194 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 196 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 200 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 201 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 202 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 203 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 204 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 205 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 206 => (0=>"00000011", 1=>"00000011", 2=>"10100110"), -- 0303A6 + 208 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 209 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 210 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 212 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 213 => (0=>"11111111", 1=>"10010100", 2=>"10010100"), -- FF9494 + 214 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 216 => (0=>"11111111", 1=>"11110000", 2=>"11011100"), -- FFF0DC + 217 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 218 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 219 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 220 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 221 => (0=>"11111111", 1=>"11001100", 2=>"10110111"), -- FFCCB7 + 222 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 223 => (0=>"11110000", 1=>"11001100", 2=>"10100110"), -- F0CCA6 + 224 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 225 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 226 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 227 => (0=>"11011100", 1=>"00100010", 2=>"11001100"), -- DC22CC + 228 => (0=>"11001100", 1=>"11110000", 2=>"11001100"), -- CCF0CC + 229 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 231 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 232 => (0=>"10100110", 1=>"10000100", 2=>"11011100"), -- A684DC + 233 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 234 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 235 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + 236 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 237 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 238 => (0=>"11011100", 1=>"00100010", 2=>"11001100"), -- DC22CC + 239 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 240 => (0=>"01100010", 1=>"01100010", 2=>"01100010"), -- 626262 + 241 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 242 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 243 => (0=>"11011100", 1=>"00100010", 2=>"11001100"), -- DC22CC + 244 => (0=>"00000011", 1=>"10110111", 2=>"00000011"), -- 03B703 + 245 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 246 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 248 => (0=>"11111111", 1=>"11110000", 2=>"11011100"), -- FFF0DC + 249 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 250 => (0=>"10010100", 1=>"10000100", 2=>"10110111"), -- 9484B7 + 251 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 252 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 253 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 254 => (0=>"11011100", 1=>"11001100", 2=>"10110111"), -- DCCCB7 + 255 => (0=>"11110000", 1=>"11110000", 2=>"11001100"), -- F0F0CC + others => (others => (others => '1')) + ); + + constant sprite_pal : pal_a(0 to 255) := + ( + 0 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 1 => (0=>"10100110", 1=>"01110000", 2=>"00000011"), -- A67003 + 2 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 3 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 4 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 5 => (0=>"11001100", 1=>"11111111", 2=>"11111111"), -- CCFFFF + 6 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 8 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 9 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 10 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 11 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 12 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 13 => (0=>"10100110", 1=>"11011100", 2=>"11110000"), -- A6DCF0 + 14 => (0=>"11001100", 1=>"11111111", 2=>"11111111"), -- CCFFFF + 16 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 17 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 18 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 19 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 20 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 21 => (0=>"10100110", 1=>"11011100", 2=>"11110000"), -- A6DCF0 + 22 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 24 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 25 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 26 => (0=>"11001100", 1=>"11111111", 2=>"11111111"), -- CCFFFF + 27 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 28 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 29 => (0=>"10100110", 1=>"01110000", 2=>"00000011"), -- A67003 + 30 => (0=>"10110111", 1=>"10010100", 2=>"01110000"), -- B79470 + 31 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 32 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 33 => (0=>"10010100", 1=>"10010100", 2=>"11001100"), -- 9494CC + 34 => (0=>"10110111", 1=>"10110111", 2=>"11011100"), -- B7B7DC + 35 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 36 => (0=>"11011100", 1=>"00000011", 2=>"11011100"), -- DC03DC + 37 => (0=>"11110000", 1=>"10100110", 2=>"11011100"), -- F0A6DC + 38 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 39 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 40 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 41 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 42 => (0=>"10110111", 1=>"10110111", 2=>"11011100"), -- B7B7DC + 43 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 44 => (0=>"11011100", 1=>"00000011", 2=>"11011100"), -- DC03DC + 45 => (0=>"11110000", 1=>"10100110", 2=>"11011100"), -- F0A6DC + 46 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 47 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 48 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 49 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 50 => (0=>"10100110", 1=>"10110111", 2=>"11001100"), -- A6B7CC + 51 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 52 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 53 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 54 => (0=>"11111111", 1=>"11011100", 2=>"10110111"), -- FFDCB7 + 56 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 57 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 59 => (0=>"11110000", 1=>"10100110", 2=>"00000011"), -- F0A603 + 60 => (0=>"11111111", 1=>"11011100", 2=>"10110111"), -- FFDCB7 + 61 => (0=>"11110000", 1=>"11001100", 2=>"10100110"), -- F0CCA6 + 62 => (0=>"10100110", 1=>"10000100", 2=>"00000011"), -- A68403 + 63 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 64 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 65 => (0=>"11111111", 1=>"10110111", 2=>"10010100"), -- FFB794 + 66 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 67 => (0=>"11011100", 1=>"11110000", 2=>"11110000"), -- DCF0F0 + 68 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 69 => (0=>"10100110", 1=>"10010100", 2=>"01110000"), -- A69470 + 70 => (0=>"10000100", 1=>"10000100", 2=>"10000100"), -- 848484 + 71 => (0=>"10110111", 1=>"10110111", 2=>"11011100"), -- B7B7DC + 72 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 73 => (0=>"11110000", 1=>"11110000", 2=>"10000100"), -- F0F084 + 74 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 75 => (0=>"11011100", 1=>"11110000", 2=>"11110000"), -- DCF0F0 + 76 => (0=>"11001100", 1=>"11011100", 2=>"11111111"), -- CCDCFF + 77 => (0=>"10100110", 1=>"10010100", 2=>"01110000"), -- A69470 + 78 => (0=>"10000100", 1=>"10000100", 2=>"10000100"), -- 848484 + 80 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 81 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 82 => (0=>"01110000", 1=>"10110111", 2=>"01110000"), -- 70B770 + 83 => (0=>"11110000", 1=>"11011100", 2=>"10010100"), -- F0DC94 + 84 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 86 => (0=>"01110000", 1=>"10010100", 2=>"01110000"), -- 709470 + 88 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 89 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 90 => (0=>"10000100", 1=>"11111111", 2=>"10000100"), -- 84FF84 + 91 => (0=>"11111111", 1=>"10110111", 2=>"01110000"), -- FFB770 + 92 => (0=>"01110000", 1=>"01110000", 2=>"10110111"), -- 7070B7 + 94 => (0=>"11001100", 1=>"10100110", 2=>"11111111"), -- CCA6FF + 96 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 97 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 98 => (0=>"01110000", 1=>"11001100", 2=>"01110000"), -- 70CC70 + 99 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 100 => (0=>"01110000", 1=>"10100110", 2=>"01110000"), -- 70A670 + 101 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 102 => (0=>"10110111", 1=>"11110000", 2=>"11110000"), -- B7F0F0 + 104 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 105 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 107 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 108 => (0=>"00000011", 1=>"00000011", 2=>"10110111"), -- 0303B7 + 109 => (0=>"11110000", 1=>"10100110", 2=>"01110000"), -- F0A670 + 110 => (0=>"10000100", 1=>"10000100", 2=>"11111111"), -- 8484FF + 111 => (0=>"11111111", 1=>"11001100", 2=>"01110000"), -- FFCC70 + 112 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 113 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 114 => (0=>"10110111", 1=>"10010100", 2=>"10000100"), -- B79484 + 115 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 116 => (0=>"10000100", 1=>"10000100", 2=>"10110111"), -- 8484B7 + 117 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 118 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 120 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 121 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 122 => (0=>"10110111", 1=>"10010100", 2=>"10000100"), -- B79484 + 123 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 124 => (0=>"11111111", 1=>"10100110", 2=>"00000011"), -- FFA603 + 125 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 126 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 128 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 129 => (0=>"11111111", 1=>"11001100", 2=>"00000011"), -- FFCC03 + 130 => (0=>"10110111", 1=>"10010100", 2=>"10000100"), -- B79484 + 131 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 132 => (0=>"10000100", 1=>"10000100", 2=>"10110111"), -- 8484B7 + 133 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 134 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 136 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 137 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 138 => (0=>"10010100", 1=>"11111111", 2=>"10010100"), -- 94FF94 + 139 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 140 => (0=>"00000011", 1=>"11011100", 2=>"00000011"), -- 03DC03 + 141 => (0=>"11110000", 1=>"10010100", 2=>"10010100"), -- F09494 + 142 => (0=>"10110111", 1=>"10000100", 2=>"00000011"), -- B78403 + 143 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 144 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 145 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 146 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 148 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 149 => (0=>"11110000", 1=>"10010100", 2=>"10010100"), -- F09494 + 150 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 151 => (0=>"11111111", 1=>"11001100", 2=>"10100110"), -- FFCCA6 + 152 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 153 => (0=>"11011100", 1=>"10000100", 2=>"00000011"), -- DC8403 + 154 => (0=>"11111111", 1=>"11011100", 2=>"10110111"), -- FFDCB7 + 155 => (0=>"11110000", 1=>"11110000", 2=>"00000011"), -- F0F003 + 156 => (0=>"10100110", 1=>"11110000", 2=>"10100110"), -- A6F0A6 + 157 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 158 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 159 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 160 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 161 => (0=>"11011100", 1=>"10000100", 2=>"00000011"), -- DC8403 + 162 => (0=>"10000100", 1=>"11001100", 2=>"10000100"), -- 84CC84 + 163 => (0=>"11001100", 1=>"01110000", 2=>"00000011"), -- CC7003 + 164 => (0=>"10100110", 1=>"11110000", 2=>"10100110"), -- A6F0A6 + 165 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 166 => (0=>"10110111", 1=>"11111111", 2=>"10110111"), -- B7FFB7 + 167 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 168 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 169 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 170 => (0=>"01110000", 1=>"01110000", 2=>"01110000"), -- 707070 + 171 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 172 => (0=>"00000011", 1=>"00000011", 2=>"11110000"), -- 0303F0 + 174 => (0=>"11001100", 1=>"10010100", 2=>"11001100"), -- CC94CC + 176 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 177 => (0=>"10100110", 1=>"10010100", 2=>"01110000"), -- A69470 + 178 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 179 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 180 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 182 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 183 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 184 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 185 => (0=>"11011100", 1=>"10110111", 2=>"11001100"), -- DCB7CC + 186 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 188 => (0=>"10010100", 1=>"10010100", 2=>"10010100"), -- 949494 + 189 => (0=>"11111111", 1=>"11011100", 2=>"11011100"), -- FFDCDC + 190 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 191 => (0=>"11110000", 1=>"11011100", 2=>"10100110"), -- F0DCA6 + 192 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 193 => (0=>"11111111", 1=>"00000011", 2=>"00000011"), -- FF0303 + 194 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 195 => (0=>"11111111", 1=>"11111111", 2=>"00000011"), -- FFFF03 + 196 => (0=>"10110111", 1=>"10100110", 2=>"10000100"), -- B7A684 + 198 => (0=>"11011100", 1=>"10110111", 2=>"10010100"), -- DCB794 + 199 => (0=>"11110000", 1=>"11110000", 2=>"11110000"), -- F0F0F0 + 200 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 201 => (0=>"11111111", 1=>"10000100", 2=>"10000100"), -- FF8484 + 202 => (0=>"11001100", 1=>"10110111", 2=>"10000100"), -- CCB784 + 203 => (0=>"11111111", 1=>"11111111", 2=>"10010100"), -- FFFF94 + 204 => (0=>"10110111", 1=>"01110000", 2=>"10000100"), -- B77084 + 205 => (0=>"11110000", 1=>"10110111", 2=>"10010100"), -- F0B794 + 206 => (0=>"11110000", 1=>"11011100", 2=>"10110111"), -- F0DCB7 + 207 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 208 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 209 => (0=>"11111111", 1=>"10000100", 2=>"10000100"), -- FF8484 + 210 => (0=>"10100110", 1=>"10100110", 2=>"10100110"), -- A6A6A6 + 211 => (0=>"11111111", 1=>"11111111", 2=>"10010100"), -- FFFF94 + 212 => (0=>"10110111", 1=>"01110000", 2=>"10000100"), -- B77084 + 213 => (0=>"11110000", 1=>"10110111", 2=>"10010100"), -- F0B794 + 214 => (0=>"10110111", 1=>"10110111", 2=>"10110111"), -- B7B7B7 + 215 => (0=>"11011100", 1=>"11011100", 2=>"11011100"), -- DCDCDC + 216 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 217 => (0=>"11111111", 1=>"00000011", 2=>"10010100"), -- FF0394 + 218 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 219 => (0=>"11110000", 1=>"11011100", 2=>"10110111"), -- F0DCB7 + 220 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 221 => (0=>"11111111", 1=>"10010100", 2=>"00000011"), -- FF9403 + 222 => (0=>"10100110", 1=>"01110000", 2=>"10000100"), -- A67084 + 224 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 225 => (0=>"11111111", 1=>"00000011", 2=>"10010100"), -- FF0394 + 226 => (0=>"11011100", 1=>"11001100", 2=>"10010100"), -- DCCC94 + 227 => (0=>"11110000", 1=>"11011100", 2=>"10110111"), -- F0DCB7 + 228 => (0=>"11011100", 1=>"00000011", 2=>"00000011"), -- DC0303 + 229 => (0=>"11111111", 1=>"10010100", 2=>"00000011"), -- FF9403 + 230 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 232 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 234 => (0=>"11001100", 1=>"11001100", 2=>"00000011"), -- CCCC03 + 235 => (0=>"11011100", 1=>"11111111", 2=>"00000011"), -- DCFF03 + 236 => (0=>"11001100", 1=>"11001100", 2=>"11001100"), -- CCCCCC + 240 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + 248 => (0=>"00000011", 1=>"00000011", 2=>"00000011"), -- 030303 + others => (others => (others => '1')) + ); + + -- table of sprite heights + type prom_a is array (natural range <>) of integer range 0 to 3; + constant sprite_prom : prom_a(0 to 31) := + ( + 0 => 0, + 1 => 0, + 8 => 0, + 9 => 0, + 12 => 2, + 13 => 2, + 14 => 2, + 15 => 2, + 16 => 0, + 23 => 0, + 24 => 0, + 27 => 0, + others => 1 + ); + +end package platform_variant_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.qip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.qip new file mode 100644 index 00000000..d4720390 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.qip @@ -0,0 +1,4 @@ +set_global_assignment -name IP_TOOL_NAME "ALTPLL" +set_global_assignment -name IP_TOOL_VERSION "13.1" +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "pll_mist.vhd"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "pll_mist.ppf"] diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.vhd new file mode 100644 index 00000000..ebe4c7e7 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/pll_mist.vhd @@ -0,0 +1,461 @@ +-- megafunction wizard: %ALTPLL% +-- GENERATION: STANDARD +-- VERSION: WM1.0 +-- MODULE: altpll + +-- ============================================================ +-- File Name: pll_mist.vhd +-- Megafunction Name(s): +-- altpll +-- +-- Simulation Library Files(s): +-- altera_mf +-- ============================================================ +-- ************************************************************ +-- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +-- +-- 13.1.4 Build 182 03/12/2014 Patches 4.26 SJ Web Edition +-- ************************************************************ + + +--Copyright (C) 1991-2014 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + + +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY pll_mist IS + PORT + ( + areset : IN STD_LOGIC := '0'; + inclk0 : IN STD_LOGIC := '0'; + c0 : OUT STD_LOGIC ; + c1 : OUT STD_LOGIC ; + c2 : OUT STD_LOGIC ; + c3 : OUT STD_LOGIC ; + locked : OUT STD_LOGIC + ); +END pll_mist; + + +ARCHITECTURE SYN OF pll_mist IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (4 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC ; + SIGNAL sub_wire2 : STD_LOGIC ; + SIGNAL sub_wire3 : STD_LOGIC ; + SIGNAL sub_wire4 : STD_LOGIC ; + SIGNAL sub_wire5 : STD_LOGIC ; + SIGNAL sub_wire6 : STD_LOGIC ; + SIGNAL sub_wire7 : STD_LOGIC_VECTOR (1 DOWNTO 0); + SIGNAL sub_wire8_bv : BIT_VECTOR (0 DOWNTO 0); + SIGNAL sub_wire8 : STD_LOGIC_VECTOR (0 DOWNTO 0); + + + + COMPONENT altpll + GENERIC ( + bandwidth_type : STRING; + clk0_divide_by : NATURAL; + clk0_duty_cycle : NATURAL; + clk0_multiply_by : NATURAL; + clk0_phase_shift : STRING; + clk1_divide_by : NATURAL; + clk1_duty_cycle : NATURAL; + clk1_multiply_by : NATURAL; + clk1_phase_shift : STRING; + clk2_divide_by : NATURAL; + clk2_duty_cycle : NATURAL; + clk2_multiply_by : NATURAL; + clk2_phase_shift : STRING; + clk3_divide_by : NATURAL; + clk3_duty_cycle : NATURAL; + clk3_multiply_by : NATURAL; + clk3_phase_shift : STRING; + compensate_clock : STRING; + inclk0_input_frequency : NATURAL; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + operation_mode : STRING; + pll_type : STRING; + port_activeclock : STRING; + port_areset : STRING; + port_clkbad0 : STRING; + port_clkbad1 : STRING; + port_clkloss : STRING; + port_clkswitch : STRING; + port_configupdate : STRING; + port_fbin : STRING; + port_inclk0 : STRING; + port_inclk1 : STRING; + port_locked : STRING; + port_pfdena : STRING; + port_phasecounterselect : STRING; + port_phasedone : STRING; + port_phasestep : STRING; + port_phaseupdown : STRING; + port_pllena : STRING; + port_scanaclr : STRING; + port_scanclk : STRING; + port_scanclkena : STRING; + port_scandata : STRING; + port_scandataout : STRING; + port_scandone : STRING; + port_scanread : STRING; + port_scanwrite : STRING; + port_clk0 : STRING; + port_clk1 : STRING; + port_clk2 : STRING; + port_clk3 : STRING; + port_clk4 : STRING; + port_clk5 : STRING; + port_clkena0 : STRING; + port_clkena1 : STRING; + port_clkena2 : STRING; + port_clkena3 : STRING; + port_clkena4 : STRING; + port_clkena5 : STRING; + port_extclk0 : STRING; + port_extclk1 : STRING; + port_extclk2 : STRING; + port_extclk3 : STRING; + self_reset_on_loss_lock : STRING; + width_clock : NATURAL + ); + PORT ( + areset : IN STD_LOGIC ; + clk : OUT STD_LOGIC_VECTOR (4 DOWNTO 0); + inclk : IN STD_LOGIC_VECTOR (1 DOWNTO 0); + locked : OUT STD_LOGIC + ); + END COMPONENT; + +BEGIN + sub_wire8_bv(0 DOWNTO 0) <= "0"; + sub_wire8 <= To_stdlogicvector(sub_wire8_bv); + sub_wire5 <= sub_wire0(2); + sub_wire4 <= sub_wire0(0); + sub_wire2 <= sub_wire0(3); + sub_wire1 <= sub_wire0(1); + c1 <= sub_wire1; + c3 <= sub_wire2; + locked <= sub_wire3; + c0 <= sub_wire4; + c2 <= sub_wire5; + sub_wire6 <= inclk0; + sub_wire7 <= sub_wire8(0 DOWNTO 0) & sub_wire6; + + altpll_component : altpll + GENERIC MAP ( + bandwidth_type => "AUTO", + clk0_divide_by => 27, + clk0_duty_cycle => 50, + clk0_multiply_by => 44, + clk0_phase_shift => "0", + clk1_divide_by => 27, + clk1_duty_cycle => 50, + clk1_multiply_by => 11, + clk1_phase_shift => "0", + clk2_divide_by => 27, + clk2_duty_cycle => 50, + clk2_multiply_by => 88, + clk2_phase_shift => "0", + clk3_divide_by => 9000, + clk3_duty_cycle => 50, + clk3_multiply_by => 299, + clk3_phase_shift => "0", + compensate_clock => "CLK0", + inclk0_input_frequency => 37037, + intended_device_family => "Cyclone III", + lpm_hint => "CBX_MODULE_PREFIX=pll_mist", + lpm_type => "altpll", + operation_mode => "NORMAL", + pll_type => "AUTO", + port_activeclock => "PORT_UNUSED", + port_areset => "PORT_USED", + port_clkbad0 => "PORT_UNUSED", + port_clkbad1 => "PORT_UNUSED", + port_clkloss => "PORT_UNUSED", + port_clkswitch => "PORT_UNUSED", + port_configupdate => "PORT_UNUSED", + port_fbin => "PORT_UNUSED", + port_inclk0 => "PORT_USED", + port_inclk1 => "PORT_UNUSED", + port_locked => "PORT_USED", + port_pfdena => "PORT_UNUSED", + port_phasecounterselect => "PORT_UNUSED", + port_phasedone => "PORT_UNUSED", + port_phasestep => "PORT_UNUSED", + port_phaseupdown => "PORT_UNUSED", + port_pllena => "PORT_UNUSED", + port_scanaclr => "PORT_UNUSED", + port_scanclk => "PORT_UNUSED", + port_scanclkena => "PORT_UNUSED", + port_scandata => "PORT_UNUSED", + port_scandataout => "PORT_UNUSED", + port_scandone => "PORT_UNUSED", + port_scanread => "PORT_UNUSED", + port_scanwrite => "PORT_UNUSED", + port_clk0 => "PORT_USED", + port_clk1 => "PORT_USED", + port_clk2 => "PORT_USED", + port_clk3 => "PORT_USED", + port_clk4 => "PORT_UNUSED", + port_clk5 => "PORT_UNUSED", + port_clkena0 => "PORT_UNUSED", + port_clkena1 => "PORT_UNUSED", + port_clkena2 => "PORT_UNUSED", + port_clkena3 => "PORT_UNUSED", + port_clkena4 => "PORT_UNUSED", + port_clkena5 => "PORT_UNUSED", + port_extclk0 => "PORT_UNUSED", + port_extclk1 => "PORT_UNUSED", + port_extclk2 => "PORT_UNUSED", + port_extclk3 => "PORT_UNUSED", + self_reset_on_loss_lock => "OFF", + width_clock => 5 + ) + PORT MAP ( + areset => areset, + inclk => sub_wire7, + clk => sub_wire0, + locked => sub_wire3 + ); + + + +END SYN; + +-- ============================================================ +-- CNX file retrieval info +-- ============================================================ +-- Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0" +-- Retrieval info: PRIVATE: BANDWIDTH STRING "1.000" +-- Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz" +-- Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low" +-- Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1" +-- Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0" +-- Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0" +-- Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0" +-- Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0" +-- Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0" +-- Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0" +-- Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0" +-- Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0" +-- Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0" +-- Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" +-- Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR3 NUMERIC "27" +-- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE3 STRING "50.00000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "44.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "11.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "88.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "0.897000" +-- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0" +-- Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" +-- Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" +-- Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0" +-- Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0" +-- Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575" +-- Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1" +-- Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "27.000" +-- Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz" +-- Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000" +-- Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1" +-- Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1" +-- Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz" +-- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III" +-- Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1" +-- Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1" +-- Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1" +-- Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available" +-- Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "deg" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT2 STRING "ps" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT3 STRING "ps" +-- Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any" +-- Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" +-- Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" +-- Retrieval info: PRIVATE: MIRROR_CLK2 STRING "0" +-- Retrieval info: PRIVATE: MIRROR_CLK3 STRING "0" +-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "44" +-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "11" +-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "88" +-- Retrieval info: PRIVATE: MULT_FACTOR3 NUMERIC "1" +-- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "44.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "11.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "88.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "0.89700000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE3 STRING "1" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT2 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT3 STRING "MHz" +-- Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0" +-- Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT2 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT3 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "deg" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT2 STRING "ps" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT3 STRING "ps" +-- Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0" +-- Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "1" +-- Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" +-- Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0" +-- Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0" +-- Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0" +-- Retrieval info: PRIVATE: RECONFIG_FILE STRING "pll_mist.mif" +-- Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0" +-- Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0" +-- Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0" +-- Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0" +-- Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000" +-- Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz" +-- Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500" +-- Retrieval info: PRIVATE: SPREAD_USE STRING "0" +-- Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" +-- Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" +-- Retrieval info: PRIVATE: STICKY_CLK1 STRING "1" +-- Retrieval info: PRIVATE: STICKY_CLK2 STRING "1" +-- Retrieval info: PRIVATE: STICKY_CLK3 STRING "1" +-- Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" +-- Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" +-- Retrieval info: PRIVATE: USE_CLK0 STRING "1" +-- Retrieval info: PRIVATE: USE_CLK1 STRING "1" +-- Retrieval info: PRIVATE: USE_CLK2 STRING "1" +-- Retrieval info: PRIVATE: USE_CLK3 STRING "1" +-- Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA1 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA2 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA3 STRING "0" +-- Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0" +-- Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" +-- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all +-- Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO" +-- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "27" +-- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "44" +-- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "27" +-- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "11" +-- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "27" +-- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "88" +-- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "9000" +-- Retrieval info: CONSTANT: CLK3_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "299" +-- Retrieval info: CONSTANT: CLK3_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" +-- Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037" +-- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" +-- Retrieval info: CONSTANT: LPM_TYPE STRING "altpll" +-- Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL" +-- Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO" +-- Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena2 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: SELF_RESET_ON_LOSS_LOCK STRING "OFF" +-- Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5" +-- Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]" +-- Retrieval info: USED_PORT: @inclk 0 0 2 0 INPUT_CLK_EXT VCC "@inclk[1..0]" +-- Retrieval info: USED_PORT: areset 0 0 0 0 INPUT GND "areset" +-- Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0" +-- Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1" +-- Retrieval info: USED_PORT: c2 0 0 0 0 OUTPUT_CLK_EXT VCC "c2" +-- Retrieval info: USED_PORT: c3 0 0 0 0 OUTPUT_CLK_EXT VCC "c3" +-- Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0" +-- Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked" +-- Retrieval info: CONNECT: @areset 0 0 0 0 areset 0 0 0 0 +-- Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0 +-- Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 +-- Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 +-- Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1 +-- Retrieval info: CONNECT: c2 0 0 0 0 @clk 0 0 1 2 +-- Retrieval info: CONNECT: c3 0 0 0 0 @clk 0 0 1 3 +-- Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0 +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.vhd TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.ppf TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.inc FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.cmp FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.bsf FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist_inst.vhd FALSE +-- Retrieval info: LIB_FILE: altera_mf +-- Retrieval info: CBX_MODULE_PREFIX: ON diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/Roms.txt b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/Roms.txt new file mode 100644 index 00000000..c6db1e07 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/Roms.txt @@ -0,0 +1,37 @@ +ROM_START( ldrun ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "lr-a-4e", 0x0000, 0x2000, CRC(5d7e2a4d) SHA1(fe8aeff360f6c3a8606d67a8b95148c3c2ef7267) ) + ROM_LOAD( "lr-a-4d", 0x2000, 0x2000, CRC(96f20473) SHA1(e400c43f3f32e12f68ca204c60bcebdb2b3da55d) ) + ROM_LOAD( "lr-a-4b", 0x4000, 0x2000, CRC(b041c4a9) SHA1(77768b03ea2497e25c3e47b68a0eb2fe3e9aea35) ) + ROM_LOAD( "lr-a-4a", 0x6000, 0x2000, CRC(645e42aa) SHA1(c806ffce7ece418bad86854c987f78c70c13e492) ) + + ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */ + ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) ) + ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, CRC(3f7f3939) SHA1(7ee25a21e74995bfb36ac11b45d384b33a6d8515) ) + + ROM_REGION( 0x6000, "gfx1", 0 ) + ROM_LOAD( "lr-e-2d", 0x0000, 0x2000, CRC(24f9b58d) SHA1(e33224b910d37aaa85713b954c8dd50996245a8c) ) /* characters */ + ROM_LOAD( "lr-e-2j", 0x2000, 0x2000, CRC(43175e08) SHA1(9dbafb27d46cf7df35f343a8753e8d91ea706993) ) + ROM_LOAD( "lr-e-2f", 0x4000, 0x2000, CRC(e0317124) SHA1(b766bd21e2da1673d2054148f62d61c33c95d38e) ) + + ROM_REGION( 0x6000, "gfx2", 0 ) + ROM_LOAD( "lr-b-4k", 0x0000, 0x2000, CRC(8141403e) SHA1(65fa6bc872fb07c71aacbbcc35cee766b2877896) ) /* sprites */ + ROM_LOAD( "lr-b-3n", 0x2000, 0x2000, CRC(55154154) SHA1(35304676e1ab55adccdabdc766a4e0e0901d3cd0) ) + ROM_LOAD( "lr-b-4c", 0x4000, 0x2000, CRC(924e34d0) SHA1(6a841419797a129235fc7d0405a5be55e8d703da) ) + + ROM_REGION( 0x20, "spr_height_prom", 0 ) + ROM_LOAD( "lr-b-5p", 0x00, 0x20, CRC(e01f69e2) SHA1(0d00ef348025ea4a9c274a7e3dbb006217d8449d) ) /* sprite height, one entry per 32 */ + + ROM_REGION( 0x300, "spr_color_proms", 0 ) + ROM_LOAD( "lr-b-1m", 0x0000, 0x0100, CRC(4bae1c25) SHA1(17a9e2567d9d648dca69510bb201f8af0738b068) ) /* sprite palette red component */ + ROM_LOAD( "lr-b-1n", 0x0100, 0x0100, CRC(9cd3db94) SHA1(bff95965f946df0e4af1f99db5b2468bf1d4403f) ) /* sprite palette green component */ + ROM_LOAD( "lr-b-1l", 0x0200, 0x0100, CRC(08d8cf9a) SHA1(a46213e0dc04e44b0544401eb341fd49eef331dd) ) /* sprite palette blue component */ + + ROM_REGION( 0x300, "chr_color_proms", 0 ) + ROM_LOAD( "lr-e-3m", 0x0000, 0x0100, CRC(53040416) SHA1(2c6915164d1c31afc60a21b557abdf023d5b3f46) ) /* character palette red component */ + ROM_LOAD( "lr-e-3l", 0x0100, 0x0100, CRC(67786037) SHA1(cd40dfd94295afe57139733752643cf48b8566b1) ) /* character palette green component */ + ROM_LOAD( "lr-e-3n", 0x0200, 0x0100, CRC(5b716837) SHA1(e3ea250891fec43a97e92ac1c3a4fbb5ee2d4a4d) ) /* character palette blue component */ + + ROM_REGION( 0x100, "timing", 0 ) + ROM_LOAD( "lr-b-6f", 0x000, 0x100, CRC(34d88d3c) SHA1(727f4c5cfff33538886fa0a29fd119aa085d7008) ) /* video timing - common to the other games */ +ROM_END \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3e-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3e-.bin.hex new file mode 100644 index 00000000..2f175a44 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3e-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000001804002B082F001B084A00150E5 +:1000100085F0100095F01880AE7003A0B2100800B3 +:1000200000000001000000010000000100000001CC +:1000300000000001000000010000000100000001BC +:10004000AA98261080288BBA100A8BAA2271191040 +:1000500010ACB100CBE9253180010AC800ADDA044B +:1000600042180008D9889EA8172198110BC8ABE93F +:100070001471898119B99BE9255199820BBCAB2573 +:100080005309980ACBAD05538AA019CABB376199A9 +:10009000A109ABC27308AA8889CA4720AA8998AA6D +:1000A0003778998980A84619A98988A2739A99A155 +:1000B0002E0629999911D0719989810C170A88986F +:1000C00049B369A00B14C850A80A848B62C918A34D +:1000D0001E25AA10B23E058C10A12B878B11B03CB7 +:1000E000068B10A11C35C939A3AB72D02A03F05876 +:1000F000C28A48D42D03C03E059B4996CB51C3A963 +:100100007BC41B3C968D1112DB51B80200F048B045 +:10011000185BB68B03A39F31B84A11E12A81094DC0 +:1001200003A984809B58A85981D21AA7A00A209CB1 +:100130007A82B292D5A83C192B31C5C2A2902C5C10 +:100140003C3A3A83D4C293B11B3B3C2A31C1A6C28C +:10015000A389894A814C1B86983C2C01399C3B26FB +:10016000A1D19588A81182A0E1A791B2A89791D3B7 +:100170009087C0A18841BA182C7B3D39097D18822F +:10018000B588D4A2C5B1992C7A1E4A3C5B91A4C211 +:100190002AA201C23BB122F4B3D3A2D5B1A208A7CF +:1001A0009B3A4E492D4B3E5A2C20996B8004C959DD +:1001B0009913C830C2A4D128B392F030C101D20142 +:1001C000C281BA78A012C815BA6B1D339C281E15BF +:1001D000AA012D8589C488B07A9A51D006D806BB69 +:1001E000216D940D843CC35BD225DA34CB485D820B +:1001F0003F85B5D128F25D4D5A0C40C110A0A7B87B +:1002000097AA05AA04B5D281981C7A9839B20A7DBA +:100210004A2B3A129D229C13D5B002B812AE7C0133 +:1002200019A20995B3A8813FA79911A83BA07E32D6 +:100230008D15D02A5D48A821D11900B380A22CA524 +:100240009D7B0290B7A801B22F390912F20984D31D +:1002500088913E1089102E12C101A95A08084C95A8 +:10026000A0828C3890839F5A9390A20A03AA23F20B +:100270000B208A25E0298097D21B108883C85A92C8 +:1002800083F13E12A082B03B02C12A939A4A1881A0 +:100290009949A3A1992B7F32E028A29009181A89C5 +:1002A0007BB7A11B4981A29000A1800A42F6AA4A0D +:1002B00000910892A1809193D3B97F41F20A1088EE +:1002C000009109818882A86B97B839902A00091893 +:1002D00000B391997B8187F40E38A108882992890F +:1002E000109938C4908916F13E11A10918808080B8 +:1002F000E7F079F31B1883AA398293F05B93919A04 +:1003000048987AD58A1810B12A97AB68A1818A4992 +:10031000A34F03B0802C11B58E3880A3992A59F4CD +:10032000891A28A382F0288A22D14E1191C30B2268 +:10033000E1000C38929B408A97A84D2800B4919C0C +:10034000591A0182E292993A8812D1010E293B8210 +:100350002C8182E202E19399119893A01B3A4B956C +:100360000D9588A22A8A22AA24B903B0917A92898B +:10037000D419A0498C228C228B8108A127BC34CAB5 +:1003800015989020BD418B13AB2829182BA15E082E +:1003900078A914BA385D0180A103BE588D591B108D +:1003A0002B010BA17900A9A57C2B2B178A901A7021 +:1003B000B903B36E094A21E002B22C883A05B98527 +:1003C000A85C1A39839C859939B138AC7B196B02CA +:1003D000C280A07CA41B97C084A923F038E5A1A00B +:1003E0002A5BB78B06AB05AA6D208A25D958A830A1 +:1003F000E389968D31AB44D95A948D300D5BA69A22 +:1004000032F38A017D95AB69D59897AD42CA50D138 +:1004100039E51D389B7AB43DA52D95A95D5D296907 +:10042000D25DB50C858D598939A7D381F53DA58D50 +:1004300041D118B42F120E5A800897BA33DA5A0AEB +:100440007BB68A940B4D4A3E42D823F31C813E135F +:10045000C002D49A038E59A820C7B984A959A119FA +:10046000A7A9839A7B082A87B092985C001A03B1E7 +:10047000A2A14E280A11A289959B308C5993999676 +:10048000A938994B848B05A911A03D020AA48808BC +:10049000019D318D12A180A40C183B8B63CC41C10E +:1004A00081918091918000818081908080818008FD +:1004B000A92A57CD5A94922F00B2284C93D03921B3 +:1004C000F2AA5083F01B13A48E29A3006AB3BB5871 +:1004D00016AA2BA28378A0A9982540B8AC981551EC +:1004E000999D8993435A88DA8903443B88EA90911D +:1004F0006220A0BDA8883622898CBAA01274000A96 +:10050000ABC9910372008BABBA822572010BBBCAD7 +:100510009122651809CAB998243530A9ADBA991441 +:100520003435899ACBA890333648909AC9891432C9 +:10053000468989BCB9981333738889CBA9B13346EE +:100540004008ABBCC98122443188BCBCA99142346B +:1005500041889CC8BB08134343309ACCCAA80925DC +:1005600021441808BD99BA000442242899BDB99ABB +:10057000020A4319439B89FB18D22A14014212181C +:100580009CBCB9BA89B99AA2515534224111199C1F +:10059000CBCBAA990111121B989A82262342201ACA +:1005A000CACBB1135343109ABBBA922334119ACCDD +:1005B000BBAA03314318189A9A8A980808081900A8 +:1005C0001008188A088908081080088A8800111104 +:1005D00008099A8900003020180A8A8A0802103017 +:1005E00019899A898000111808098809088918084A +:1005F000989191881008809000010100B8A990A0FE +:1006000089808172488D0C882950080C8988402285 +:100610003D1BB91B10E99976120BABC92034291C7C +:10062000BB8B444129CCBC8A167038AB9C801151DD +:10063000888D98815281ADAAB1273409B9E8811417 +:100640001098C99832310FBB9973311D8BAA204382 +:10065000288BE9001489BCB42372A99CA18125814F +:100660009AB3C021E0BB71221D0AA929341919D0FF +:100670008892D9C42262C89AB282269089A0990928 +:10068000EA70232E0A9A39232A28E889B3DA7103FB +:100690002E09A939140929D08A91C52115C989B310 +:1006A0000123980D989D0A71212D8AA81116888022 +:1006B000C88A8A61234F098A20020090E089A970C4 +:1006C000213F0A09281390A0E1999870200C0B9300 +:1006D0008206A09A899C170130F0A811823C08AAD2 +:1006E0001AB071238F89931023E80B81AB47821EC8 +:1006F00080A84083A988C11C878029B09C51920A98 +:10070000A1B81AB7482BB80C53A10AB2BB3D701060 +:100710001DA19221880F0098969301E90931000AE2 +:10072000D2998A7110C890952A3CA189B17010BAEB +:100730000987191BB38C961028F81922A18BB3AD29 +:1007400054911F93A139A1AB38E70918D02924C9C6 +:1007500019809348A2EA4002AB00A887290D8101C5 +:1007600028C88A0973C19A11122F9090870A1C8297 +:100770000129E00A034980F84811D929A071C3D999 +:100780005802BC10B873D4DA4182AE11B872D4D911 +:1007900042A3BE11B279B4D852C4DA29973D2AC017 +:1007A0005801F94B169C3D854C3DB10973D09B54C3 +:1007B000B0AC02B73D09B17908E01A73C8AA27089E +:1007C000AE109178C4CA54D2CA10973D19C44D19BD +:1007D000C10844B90B15990C831818D25A92A93044 +:1007E000C19C21072E80A23C30D12999C8372AB953 +:1007F00092488C93393CC88158B05818A80A83C9CC +:100800003C149011C288A95A8201B0F48B108A72EC +:1008100008B08D1090058C10C1593AC28912D008C9 +:1008200038B4AD32D2189181B948B983A97903821D +:10083000A0AAAA868B2508A0B8934D4A23C20A0A0B +:100840000B88B4B149551D20B090AD948868090358 +:10085000B919983A1EB78A78900880809E28B60801 +:1008600020908919D29A098A4423996E02A1A90875 +:10087000B15B84108109B13D81C8906A959292095B +:100880009919899AD128872A3091929F901C02C188 +:100890009340F31D21989188911C12B94B40B31ECF +:1008A00028929820D59B4992992994994B0182A826 +:1008B0001B102A2AF2805A91B429A8D21A48A8817A +:1008C0003091F32B2D885A01C20912F83B59A39A93 +:1008D00048B0195A11B182A00A897898808204D848 +:1008E000895A00D02291AAA3282C2AB3010C2A30BD +:1008F000984B91091892882A93895C92A389A389BD +:1009000030A3B94B20D11A93884B21D13B4AE298AE +:100910003888AA48118A0B35BB48B02299001018B4 +:10092000BB6981809D79929A6B119A3095F109206B +:100930008B399032E1D21A101C8300A6AB14929925 +:10094000B9270B0A815C4B84C03B02919997C13F48 +:1009500021A83B000889023E883911D18184E191A8 +:100960002D22E30B94C40C29958990830E3A0289B9 +:100970008A17B08108B851B08D68B6A829900208CE +:10098000E1191008AB7A11A083BB7A11B39AA79131 +:1009900008A828F7A83D291882C3980A5C3891D482 +:1009A000A28B49882A39D4918D4890109A832AA025 +:1009B00049B843A9F42E1A48B121D0931B194AC251 +:1009C00031F01009A13D04B3AA283B2B9492E48A8C +:1009D00081859BA789805D02A3AA15A98208A8200A +:1009E0009A5893B499180A003FE9309A372141C0C8 +:1009F000CA0A9DDB27639C980209ABA08377A8985D +:100A000022999D9A877A9AB46999C88073C0C9451A +:100A1000B0AD08073D0C844A1DA81973D0B955B371 +:100A2000DC03C150D5D95813FA3AA170A3F9582361 +:100A3000FA2B855C00E05930F93C854D1AB53B4AEC +:100A4000D02C052D3D95195CC39A170B4D95885DEB +:100A5000B4A937C01E05A14DB5B963D00D34C31E6E +:100A6000A4B964D2BB52A49D01C053D2D95195AD53 +:100A700000A071D2BA6194AD10A070B19B25A38F74 +:100A800001A0179A1C95822F91900169A3C84098E4 +:100A9000B9288071B0B86189AA008872C19A349966 +:100AA0008C1098972C28B22B28E10819932A38C16A +:100AB0008A48A1B14C82F01184019C08900A8A17DF +:100AC0003C10B81A01922A72B088A88B9925AB11F4 +:100AD00022759999811A9D92810290131E40A29BC2 +:100AE00019A68A1A909371A89A24C0090AA62A10F6 +:100AF000B01029C182E82B72D08038B1BE51908CE1 +:100B000040A08978989840B2AC60919A31A09D60DD +:100B1000A08921909B4082C83A10D85880C0598142 +:100B2000B03B10984C14D12B01B15C83C24C819125 +:100B30003D82A13BC2005AB2B259A98178B1A34A01 +:100B4000B9955AB1915998B36999B278A0B2799090 +:100B5000A14990B07981C04980A030A99050A8B334 +:100B6000388AB06910F2093BB5810BA50A3C96A002 +:100B70002C12C02983D03C12C20C30C21C40D29827 +:100B80005A91912B94A13E82920B88148C8017AAC3 +:100B90001A51D19049A19978B2984990A239B88256 +:100BA0005AA0C52B8A060A0A04890BB61B3AB73924 +:100BB0000AB92ACDB167188B021989E88BA9877207 +:100BC0009AC2111AD88A0876A88A1300AD81B9751D +:100BD000B08B26980C829A37A92D85892CA48986FA +:100BE0009A2AA33A28F0190A17982C94893BA389CA +:100BF000907892C94882AB4989B72A2BC31949C159 +:100C000009987092CA4883AC20A833B02F84902DE5 +:100C10008299841A08C15902E8299878A1AA3491C6 +:100C20000F8298970A0AA3302AF8190A71A89A2500 +:100C3000009D8180934A90B07090D8180870C009C8 +:100C400023AA0C01A963B11C83993E910148B90004 +:100C50002899A06309BB050999A0D36C24B11B8214 +:100C6000D83C04A039B28A39B22083AA4C089789AB +:100C70008901B10A40B850249C09A02999A96111A1 +:100C8000BA1025991A91B9691AD8252BB825A9093E +:100C900015AA9171D9013A90039D01848B8B63AAA7 +:100CA0000B51D0814A99850A01D31D10B68A2A8436 +:100CB0000A90960D1803A898139C2A97992B0499CB +:100CC0001C05099A971A89951A898228C09078B2CA +:100CD0009A6890A02189908259C88860B88A62A9D0 +:100CE0008A338ABB16189C84288AC24909B0221903 +:100CF000AC4298AA33C188941C09119029901B20FA +:100D0000A11C33F829018A09418A9840C4998902B3 +:100D10002981A83B010A1081994A90A22B839A4904 +:100D200080A03A88808299010B049B119829801930 +:100D30003BA49811990939190892928A19820A29B3 +:100D4000921B91905A8180881A008A5AA38929009F +:100D5000092A92802D20902D03A938B48A1182C0CF +:100D60000911A4AC15A81B1290A68A890330B0AF54 +:100D700000A9E274189980BA9FC9A37788A922298B +:100D8000BC0019DD9758A8A0429AA9220AFB4788FF +:100D90008B84180C91201DC17880C83083DA2182A1 +:100DA000AF85080BB3311BF83018DA16009D83109D +:100DB0001CB3102DC05001E93003CB2183BF139227 +:100DC0000F83812DA3883DA78A4BB32A48D11A18D7 +:100DD000D43C18D14882D82880E24A01D84092C930 +:100DE0002080E23A01D84882C92880C61B3BC3193B +:100DF00039D1080C15983CA5091BA3088D70B3AB1D +:100E000032B39E21A0C44A92BA70B2AA28B73C82DB +:100E1000B03992C82A04A968B21B01928B11B11B88 +:100E200001094200823DE10A909B4AA4154191BD0F +:100E300000A989048039A4280AF82080828B03C283 +:100E40003C81AA34B92C902410980BE2319F911266 +:100E50000999143F92820DA1861D01A23C92082B94 +:100E6000B3885C8390889138A29C19B61B5AA4B3AE +:100E70001A10F02A12A91C40A5981A891A25B92E11 +:100E8000138910C8950B31BD50C13B84AA3A22BBCF +:100E900001B70A19819A69949A81A0319B03810A4A +:100EA00090813CA4981E13081C82098B03080C1225 +:100EB000389B11080C02801C21818091A9193A8865 +:100EC0002B58A3AD40A39C30B48C58A20C03A88827 +:100ED000219889831A081908911888A1290099294D +:100EE000208A29808A39810B31A20D20B12A83B84A +:100EF0004A82981901892891191B00801C139009B6 +:100F000009000908198288888108099209180920AE +:100F1000C20A000811A0801A918818929911A101A3 +:100F20009091881A03988818A39000A08109929143 +:100F300008808090982893AA3A84993AB6991882A2 +:100F4000801A180819A18A68901B81028A31C16829 +:100F5000C9BFC99673C0BA638ABA129AFA74B2BB8F +:100F600052919D12809CB074A0C93380BC1381AF94 +:100F7000A7191BB24019F02801DA5192BC22820F46 +:100F800082801D96893CB40839D11900D14983D992 +:100F90003884BB40919E33B10E04902D94892CA6C9 +:100FA0001B3BD22820F03A82F05893DA5894AB30A9 +:100FB000A3CB72C29D23911F12A01F05894D9409D6 +:100FC0003BB40A3CB62B28F14902D82901CA71B4B6 +:100FD000BB32949E11908C61B18C23A10D82988BB1 +:100FE00073B08C14890B83890C17088A92100AC17C +:100FF0000820C02031BA0A22B909B31B63A30E012D +:10100000B19A21951BA5298AA81188C94028F941C0 +:10101000028D82903C92A99C270929A28B13B38C44 +:10102000BB073808A818B1203AFC037891AA319977 +:101030002B31F80A45B11D02991A23B89D16893B38 +:10104000B68A18938A1BB72B00A43DA3A23C90A399 +:101050007AB29169B1803991D859A18858A189296A +:10106000B40D31C03B22BA4994BA5A949D30A30BB7 +:1010700010C22C21C13AA3C850800B18928D23A214 +:101080000E11930AA0921C94A12800AA58A199209D +:10109000A18921A20A02B808019910019800939A27 +:1010A00001920A92A20891911998010880009180FA +:1010B0008901A00883B081908298910800A39A20AA +:1010C000909208808189918001980109919288808D +:1010D0000880919108888191A001809800009090EB +:1010E0001888029090801888810080800990801173 +:1010F000909088089810009092009908029A109198 +:10110000818088819008819008009018089192A1B0 +:10111000993892A83A938880828908A10A119190FF +:10112000089180818882800880AAAE91E778A8A182 +:101130005099BB0AD472C2D84091BA4288BD987502 +:10114000A98A06098A94119D98072B8A93488AC117 +:10115000320BF8052A9B92608AB0323CD90528AB45 +:10116000A2510BB8242BD905399D92220CB0250B26 +:10117000BA3618AC83218E91138CA96108C912125A +:10118000AD8121ACA26189C82210E91128BC971851 +:101190000BB2313BF82018BC07188C92211CB128E7 +:1011A00028F88439AAB26189C82010CA0270A989B6 +:1011B00042999A1100BB974889A82209C91000AA30 +:1011C0000731AA89028C9901111A26891990A90A56 +:1011D00085800821098BA71A8C9110089203388BFF +:1011E000A222DF81119899144099CA129B984182DA +:1011F0008A23182D9BA028111A1102918A100D9A8A +:1012000023059A2A118A3E049B9935829BA2938AD0 +:1012100089840C9926019D01820C19149B88248ACB +:101220008C96190988800929219B1B0408980919A3 +:10123000882128B989419A00039E00042C09913025 +:10124000AB80408A985188BB03000C820199A204AC +:101250000A99A23899B41198B83388BA04808C835B +:101260000289B02208AA951999A32009A90489998D +:1012700082390AA30008B00289A08201889001A0E7 +:1012800080948908902992A11890980181988001F2 +:1012900089808298088000888000908080019881F1 +:1012A000A288800000908081908881900910008041 +:1012B000A081908000819088818918088190808029 +:1012C0000800900800A28008888192890091088017 +:1012D00092809088018890819191A100889081806E +:1012E0009081189188008880000098000199000181 +:1012F000A88000088902A1981092A800819080819E +:10130000809080800080088880828090009091800A +:1013100008A289188198109188818809818090821B +:1013200001898882980810A28988A0BCF277A999BF +:101330003589BA88B077B1AA4390AE13008D02A860 +:10134000AA74A0AC4280AC03119BA9BA77A1BA528F +:10135000909C03001C90AA74C1A941919C03801C1D +:1013600080A972C2BA51919C13901C809971B2BB32 +:1013700061908C13881C92AA72C19A42A08C048836 +:101380001BA29B73D18A24A80C04881BA39B64B85E +:101390001C05992B95892AA28A151999A2419BC1EE +:1013A0002129E918021A48B31C21C02D82A02C82E1 +:1013B000995382AC28839E980209B9112531AB1844 +:1013C000379CA983089C830221A8984319E92B1311 +:1013D0008E80914080D82020B939B41D81A0390178 +:1013E000893088D86088B904081CA1212809C9332C +:1013F000198AA3182AA9182118AC12802BB318290E +:10140000901989120D019229C12019D0120A801950 +:10141000110B00901889192109A829080911808940 +:10142000090018098118A18A2091000988180889E3 +:101430001008080808081909000918000A081919ED +:101440000800891009081008B81020998820898997 +:101450001028199080189829180890880000890988 +:101460001009190800880818109098190928188977 +:1014700000088829080009088019880008800809E0 +:1014800008190808188088000888180009881008BA +:10149000880919800810090980081809191889187D +:1014A0000080090009280A00191A08108809000894 +:1014B000080819088808091818880008088800080A +:1014C00019080809008808081918080919000818D7 +:1014D00088880800080919188800081888881008E2 +:1014E00089000888081009880939080819808810B7 +:1014F00009080919080800808808000808880800F9 +:101500008091080808088008091808881808808849 +:1015100008000008880808891818880818080808AA +:101520000900800808881900081908881808881810 +:10153000808819000929080880080918080918086E +:101540008899B9B771B0BB72908D8289E97290ACFD +:1015500014008C92103BD10039CAD975A1BB3492CA +:101560009E82012CA2884AF40A20C02903CA389519 +:101570008B11B21E933819F01011C918149B080270 +:101580009EA37088C93102CB11040C80910D971A6B +:1015900018C13901D93804BA2A83AF27981C83802F +:1015A0001AB21921D81902D937888B82110BB010C1 +:1015B00031CB8822A9857080AA1001BC08830C90C9 +:1015C000833A061951A88B92899F929838930951B2 +:1015D000910038CBA040A9988928209A2119080A9F +:1015E00008A1499A192A3090091089000988803881 +:1015F0008A2C4A3A8885B22E8011B6C19088489AC2 +:10160000118D322F10820C108A01880C942D1992A2 +:1016100012B4A93B31C1A3A5E119109193BCA279E1 +:1016200091D4A20891B4039E1A11839B3E3B20598A +:10163000B097B3C021B1C5D11A3A118B202C58D123 +:10164000A490A4D1922888A9303C9A590895B091C9 +:101650002D5F1108A82A2038CA10A7829D28120AD7 +:10166000CC032808F9223B2F2A2E489292191D20DC +:10167000008EA90612AAA35689EB901390D084126B +:101680008880123A1B057393808088FFF808080849 +:101690000073AA991790B903788088E292AA08018A +:1016A00007B1A31199E132908080F388F8080860AF +:1016B0008C800690C1803808A9A280B1880730A02C +:1016C000F5880808BB7080D0083188F180490C0883 +:1016D0000480C80803B8007088080808BF1319AB55 +:1016E000806291F80824D8080480C80812A1D24862 +:1016F0000808E81490E1821880F180498B18159948 +:10170000B1807B808329080DA133AE9124908F0096 +:101710008480C80831F18012D10290808F10390A7C +:10172000C50808D008480C08081908035900808823 +:101730008F897808C48089B180418F008080804182 +:10174000D218088AE114908E1390AB180708C800CD +:10175000801A01970080809F01490880808F08804F +:1017600007B808080883591880808DD150880881EF +:10177000AF080080808459E00823908088080D48D5 +:10178000808080FB190080808047E0080688080878 +:1017900008080F4880808F0080808080807B808454 +:1017A00083908080808088080808FFA080808080E7 +:1017B00080087B70184A180880808088080AFFA477 +:1017C000C008080808080827780F03808808080858 +:1017D000080808F2F598B290080808080297B69829 +:1017E00002900880F488A9159080F3A3C1B29008F4 +:1017F0000808080865B9203A18A1F14908BA7D49D6 +:101800000088A88482E08808190808033E1282E252 +:1018100028089019D1B78B3C14990F11290E182B59 +:1018200019010A3C6A183B2C391B79009C202A1AA2 +:101830003E1A591C094910AA5810CA183909799931 +:1018400080320DA82518AA0028098089413A1F9DD9 +:10185000113A0804B9BC328B0B61149C8A480840C9 +:101860004999988390C8320EAA1941A0A81421BBA7 +:101870009B8700A5878AB01791A0B3C28A0B218EDF +:1018800002610BA91113B092688E0002B29180B26E +:10189000DB96B8D11700A0A4A2B29304AA0B282FFC +:1018A0002808A4B2A1988F1B4A682B0B0158098203 +:1018B000124DAC28691B1C2A8293C1B1100A4A2917 +:1018C000E216008A8C4849A908690A88A983800819 +:1018D00032C26C1F9122280A0B8097A12B2C493D04 +:1018E0000B892183D492A2B2E5881C291119C1A2C7 +:1018F0008482DA81F7B4B1994B5A8801280AAA5038 +:10190000289B88710BA92020B8A0110C8C501B9328 +:1019100004A04A29BF3C7A5B0A2110D9006899804B +:101920001869BC10590080BB2511BB088411D8B3BD +:101930000483AA977920888FC913199C9080080086 +:1019400062184E0C71900CA78808009B910818B281 +:101950002302FA8418E0078088D1219080808F804C +:10196000813E5A1A092A2B1852908F004900808014 +:10197000F08048A1C19185B1B187808AA132908061 +:1019800008AF88780D1880102F1884808AA10690DF +:101990000808D801490E18805B3D1885908C1813F3 +:1019A0009080BD185090C0808680D1885900B803BF +:1019B00018088E9016D000919329B98027808E0840 +:1019C0006908089B184A3C9181798B19179009C1C5 +:1019D0000490809D18149B9180780AB1878089B10A +:1019E0005880089E18409C1880580C80059008E18B +:1019F000118088BA18780D1880588B80878808B8AD +:101A00000408089F183199C1883590F00219080818 +:101A1000F3080808F00848C18080308C881790804F +:101A20008091080880FA08188080800728D81688D6 +:101A30000808080808080FD087999188017A98004B +:101A400022889288080892909FF881900808007078 +:101A5000A8B72080C4900808808091F6F18080901B +:101A6000080806C1938490A1A4A280880808A84F02 +:101A70002F09158C08082A08034F2A201999058078 +:101A800089C690089AA70B8002B91802C3994033FF +:101A9000E2092B86908E12808AA309F0851BB08004 +:101AA0000131E2913D20B294208AAE98700A0A3C3E +:101AB00002928008D0AB7390D229BA807828B0996E +:101AC000958392B90380FA22419AC9C202529CAC12 +:101AD0001311B09780B1A9833708BBE1050199B90B +:101AE00082418AB12300CF985138BAC820519998C1 +:101AF000A09421C0A183089D94519BA290A8712C11 +:101B0000BA02500C90318AA920124A3FA08206A046 +:101B1000D0010190991051BA9C044008D981528A91 +:101B2000F801280A89A15389C8A40518CBA85338FD +:101B30008EAA124089AB81500C9843299CB934700D +:101B40008999C88610B9A208928A39351C0D0027D8 +:101B500001C8A091410E800A8813A0A225A9C946F8 +:101B600010A9A2982080B21DF0139AA359A992132C +:101B7000410F99306B01C81019981C1A702E090278 +:101B8000283E2C88320AAC1181388D2F3C591A1806 +:101B900088311DBA5218AB98339C0932BCF420BC72 +:101BA00095319A9D40009A404B991313C9C988EB0F +:101BB0001921C8A809F7309D8263908ED259008000 +:101BC0009E181A080259A8A0804A927008F08588C9 +:101BD00008080AD105B902280D90080804590AE13D +:101BE0000590808089E1840A8020D90808008378E4 +:101BF00009F1039081900BF184089882F00009802C +:101C000085290BD1249882900FA187899218D080C2 +:101C1000808007808D00488928808F0831BA788AB3 +:101C2000918808007800F18308088080F0881917EF +:101C300090C008819007918D1838080808CB1807C4 +:101C4000B4089B0887B083290BD10790800D0859F1 +:101C50000A881A788C2A2A1858088D10490809E130 +:101C600085909A08068992C19015900D8059008040 +:101C7000D0804809C18841A2F008149089D12290EF +:101C800080BE18339AE18086809B082690808E045F +:101C900088080BB29619C08080780AA1103900809C +:101CA00088E300880FB18078C008083499E1831870 +:101CB000818808089F821299EA0080808008434F3B +:101CC0000841098A4080808AAF78808E008059B0B0 +:101CD00008081029D28428899A780808080DC17943 +:101CE0001D0088080091010B84120948A21B2EB226 +:101CF0002590AF00209E1A591A0A08222A2E011296 +:101D00003D09048E00129AA92401D91A3B483F08C4 +:101D100000183D88821A38A1A02A72E0892123E99F +:101D20009120A4A0AE14A28BA887800891B1C332E1 +:101D300002DA9A3613BFA10408A9A2010121CCA896 +:101D400050408BA984148ACC11592C0A08304B1BA3 +:101D50004B8B1452BBA05100FA813480D9A283204E +:101D600089A3C89052B9105199DAC83720D9902167 +:101D70000098200DA8430BB2071AABB914720CC916 +:101D80000131919208BC0369B9327A9A898A337118 +:101D90009E9802100010BBA444AE004089AB8102A3 +:101DA000239CD90383A313CAD1420CC31491F0918D +:101DB000819301DC984100818CA84519C91338CC66 +:101DC000984309909AE0141B1838E891590A023890 +:101DD0001E9B9611890BA907819011ABA071A8A237 +:101DE000202AFA93501B1B0A93791D81481D889263 +:101DF0001020B01F0B30780B882931BAF22290E303 +:101E0000C0A116B8A111A0109EDA52739009FC036C +:101E100048080AF88083188AB0080472808F9050AE +:101E2000808808DA1885028808F8807909819A087C +:101E3000429019189DC033A3D2029F908060B89041 +:101E40008008087280BF1840A38808F08808349082 +:101E50008F08048808A8A187080C806A2E48008D86 +:101E600000219C3008F1002AB29027908E10119921 +:101E70005908AB185191892F90023F0803080CA113 +:101E8000058D31900F1885981808E1820D180139D9 +:101E900008F1914B84908AA1860A0288D8001B1809 +:101EA000817008F00039A59089C1869A05909C1828 +:101EB0000088007808D00219B79089C1858C1490E9 +:101EC000AA1831F1914908D18498A5900B9086C346 +:101ED0001908D182B19007808D18380D5A188D18C5 +:101EE0008013808F083C4C185908C18590808088E9 +:101EF000F18831900F08049B0015908C80329080FF +:101F00009F480D008038198D080808053908CD1440 +:101F100019188DA1078C00803008AE1819508080E8 +:101F20009F3190080F08488C18082390D9022A592D +:101F300008080F4900808E08119A1808379AA006E1 +:101F4000088818080808EC518809E1880808080082 +:101F5000580C15819A810490808080BB78BF080856 +:101F600001A8080875AAA18351888A04900888D41A +:101F70009188FA918598B18008129218739829185F +:101F80004A9E80798B10398B9F08359AAA203B8313 +:101F9000582E1192910C814219BEAA16488B892A9B +:101FA0008B523B8F0A22109F001329C9B014608AFC +:101FB000C002811998999144A9BB88532A8DAB140A +:101FC000708B80218990808AB723B9B9E005159973 +:101FD000CA83600B09288E0032ABB1130A8A781BC2 +:101FE0000B49293819B2520CFC30698B90430CAA6A +:101FF00052A8A128399CA1302329FF012098A829A3 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3f-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3f-.bin.hex new file mode 100644 index 00000000..5ef7e119 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3f-.bin.hex @@ -0,0 +1,513 @@ +:10000000288479ABB3261AA88080122DCA3139C949 +:10001000B02270200F8B325988008CA9212208ACA5 +:10002000C99194870498D9923803302DAF888342C0 +:1000300009E9A82082334E9B013988441ABBA0925B +:1000400015429BE8A291B6138CA80900221133D364 +:10005000F8CA15112D0B894939398C1290F93229BA +:1000600090280F9986118AB9A20700A19029BCB7E0 +:1000700003B2E2801A9B35180BB09327B9A23599C9 +:10008000D802891A1207AC9A42908929878A0B24D0 +:100090000011C3D98304881B0F801D89B3C508993B +:1000A000A28329FF51170808EE105919188E080865 +:1000B00030093ABC185289902A8A83408C8322CE18 +:1000C0009810081898C84208A22110815A1E8888E2 +:1000D0002B99294C199CB007329A9085C1025888F7 +:1000E000947E9D113B242918FD00481A490AF1808D +:1000F00022B928B88154F83190AC1868B59008D06E +:100100000020080BC00852B9A16088C2B827900E21 +:1001100000200B59009E180821081E80012E08019E +:100120005908C8023980080DD1825A8028BD18426A +:10013000AD008007808AB1842880808F9081680814 +:1001400009F18128D0080807900AB1878808080FAC +:1001500018823A188BC08068C1880870808E181386 +:10016000908080F8080688080D80013E0808006924 +:1001700008B80860808808F080319188F08048C015 +:10018000080816908D00021808088F090790808AC9 +:10019000B2927D0080138088F0805880808C90809F +:1001A00060808AC1849A8008170080F084808080F3 +:1001B00089F1880130B498A9B180807490080F88C3 +:1001C0004190808F0918190068190AB91882718046 +:1001D0008080CF10590808E00800888036909C8005 +:1001E000826880808080F92490800F8082A8080136 +:1001F000708AB0007088008808088F9508088F0002 +:100200008018A0080428E800608808918008008011 +:100210008D1F3B4D09008009008082718D21280CC3 +:10022000930290B4F28299C1281F98007C190800AB +:100230000003A8906189892881B0182BF19304925A +:10024000FB9128887BA884198882581A1888A323D0 +:100250003FA835B1D982019698B8B2A48030F9B5DB +:100260008194B1A1112006C89B6801892C94B39C8C +:100270002195B19C1281C91020D27A0AA01851018F +:10028000C89A5080A8203AD280B1B4B41401DAC020 +:100290000493C39A0289E0012911A8059A9068ABDA +:1002A0004539BE8020092800F88318E88219A21376 +:1002B000E891823103ADBA60598A88491C091A292C +:1002C0002E01429D98211C1050A9A9131A6A2B2AAD +:1002D0003C0F2A120A295C0B582B902952C8B111E5 +:1002E000E38309A0B0A90928348CB823B223B395BD +:1002F0002C7A2E0900701A9AB93400A9098C860349 +:100300000F0A220189800CA236A598AD18102B1C6B +:10031000492D292AA89622C990588AA21851A2A923 +:10032000BCB87319AD2211DB0132229FC803B3B2EE +:10033000A391B1C3B1E31789B3300B0474188DBA1C +:10034000981A4AC899AB22439DE8732C87118BF900 +:1003500087009190E80803188189F8005009880AFD +:10036000A914219A008ABA3630AB081AB92358ABBF +:10037000013E094309AD084088080AAC30690C28E1 +:100380002B183991400AAD0309D1135AA9E0038013 +:100390008690A08A8D24A20320FAB5118BA70F9C0A +:1003A0007189981002C69ABA1470088BE1815808B6 +:1003B0000ABA037C1B124A0E10098806080D803009 +:1003C0001D49080E18011B5908C008588A0A2A003E +:1003D00007808E1821A84908AC181301080F9887C8 +:1003E000088D188040809E1831900880F8080329F5 +:1003F00018CD180780C800832908F0804808080C29 +:10040000B290178089D180690C188005900BA18269 +:100410006908080F08005908C0800690C0080868DD +:10042000809B1824908080F88050888B9080708EFC +:100430001808112908F0805880808C8087880AA2CB +:10044000A10799A18012D6900C0084880808C808DA +:100450005080C919519B9188170918089F0858089E +:1004600008E18020B91907808D1800490A8488089E +:10047000D80408080E80879A08083299D1885089D4 +:1004800091390800FA060880AC1833CC1808780CAB +:100490000082291AB851808080DD230808F8800383 +:1004A000C080800798A8250808B013908808080E17 +:1004B000BF16808F008081890080680C8113190825 +:1004C000E3893889F10391E1A4A3D1A0800598A91B +:1004D00018131C193889232CA8619AA7A2A2C9B3A2 +:1004E0003211A0FD815088C8002098B1690912100E +:1004F0008D193A802401F9918393D2B3A182C0F17E +:100500000000B5020F9903091231CCAA2530AB11B6 +:1005100028A98B328E9535AAB9A29404A1A1BB88D3 +:1005200033B8DC38760B9B10B4345A9BC02208A336 +:10053000828AF2B2A014BAE1440AD891121329DED9 +:1005400080303B89112F0900111CAB36209E98206A +:1005500029202C99095800390E89200D9020006A15 +:100560001C091021B2051BE9B3133688F89302B0B9 +:10057000C1C18602B9C11109A4319E0A19203028CF +:100580008E898A1349DC8340A093BAC31748C99265 +:1005900081901202C9BA3906098D285C2982D901D5 +:1005A00060899819098258810C8E91428AC8241852 +:1005B000C1A1B59111BB93804D5B1919384BB4B8EB +:1005C000D303B699890A049308839F0931691F0AE6 +:1005D000491A82909A01397A082B286A8D395B8AE8 +:1005E0003139AF98701B9298A812599B840191B42D +:1005F000B14111B1718DD9822A9A089CB21709991B +:10060000CD471078080FB0369080ABA1904791A1EC +:10061000C891870808A09A805380AC090802510B42 +:10062000C90010202AAD902110201BEA8402018904 +:100630009F90140A88100B8B712D09310B0A081A30 +:100640003150CA9A4D4811A9818390E021AA278090 +:100650008CA201B6B3B3B7A9FA4481B071FA0853BA +:10066000A1880CE1825909A9900817000D90801605 +:10067000809C0812B97190C9184191808AF0850850 +:100680009291BD180790C181A18807880D18038831 +:100690000808E8086880080E0084880D18808040EB +:1006A00080AD1816908088E1805908088E18049053 +:1006B0009B18080061908F1905880809D1804808A7 +:1006C00008C9084390F808019827909C184080803A +:1006D0008AE180690089C180790A918821C0878870 +:1006E0000D1838800808F08059008D1803090F187C +:1006F0000129D184880D183880800D90807808D128 +:10070000801291E0803088E1830808F2828808082E +:10071000F08022D2B0802599C1811108BA04A04F7F +:100720006908B1038808F080589B1800690C0082A2 +:10073000390AB97080800888F0491880F00810B133 +:10074000808240E8083490899A24080D859009F148 +:100750002080BB080017B90800308D836188D00263 +:10076000081089F913108A8F192111A9F88031AC6A +:1007700000412E880121398AF812490BD1398A9714 +:10078000009899A0503AA898C3189CA7289E1111C8 +:10079000982A18C00153C2E0A00581A90098191A2F +:1007A0002598AE1913949B1A8B97481C09902068C2 +:1007B00000BA093809792CAA8162809B0D81041244 +:1007C0008DAB83250198D8A21302F3A2BAE10520CC +:1007D0000BCAA242390ABD9934418ABA803A3872AA +:1007E0008CBD8223108ACB82311043AEEA83630B27 +:1007F000D98238090210FAA2340AB912A3A309B5A2 +:10080000A2BCA4370ACB024009329DD91422CBB036 +:100810004393F08001918A0305A9D80111881088BB +:10082000FA8372ABB93212A28C98A10731C99A0827 +:100830004849B241AFA83600B9C202A01588C99193 +:1008400015108ACA93230A2F29818B0373B0F0886D +:10085000A397189C981330AA918B0001593C1B1E3A +:1008600088612AA890E20501AABB13539A8B49AC70 +:1008700002400D90193B4321D8D1900540ABCA02EC +:10088000448A1B1A2C98710A9B8A305490C1D2A5B5 +:100890009588A89082A38288E8B204400D89B2208E +:1008A0005191BCAC6181A199A886829A9184C002C1 +:1008B000392AEA3968292C8E0311990BC80149019C +:1008C00090FB04010088990B247723FAB08682906C +:1008D000BAC004110890AA1144099A029A0B232560 +:1008E000BBF90311A6A0DA12483C0A99204A19A2C2 +:1008F000B07199F8123989B2920219CAA44499B90F +:10090000C2320AF2E11130CA801191E238BA887914 +:100910001B16999023899C0107B9087980A00A4089 +:1009200079ABC3230C9C8142F5E388D40390DD109E +:100930003288999D0806290E8080419A9A18086489 +:10094000909F1958080888E18059089B4B11490D60 +:100950008004890C180887808C0005908080D80856 +:10096000249089A99087290E808008087080AC188F +:100970006808080CA1817900B18C292590AB190673 +:100980009A087808AA187880808C80834A18BB0857 +:1009900003780BC18279A9087880C0012808808F6C +:1009A00008858088D1803080F0083080F1884880C8 +:1009B000D1821888E110B186880B9186880D0003DA +:1009C000880E00490088BA151900E8021080AF1897 +:1009D0000588AA18259B8203D80112AC069009F15C +:1009E00003908C9184A980806089B0807180C92334 +:1009F0000888CA0708089F0120808F00822D808008 +:100A0000181A3800083B28839F2110F9081086081F +:100A10008F91112B2CA8000911A0037B3C001843D7 +:100A200008EA0132B3F1B004099D8584AA98309890 +:100A3000B24A2C1C0B404900B3E11120A0A22A1F8E +:100A40008250BC0012BAA052688E9920228989BBBC +:100A5000B15501A1A9C82702B9A18499C11718AC41 +:100A6000891302298CE99244099999893371BAC88A +:100A70002100900510DA98312248DBD812529A9A58 +:100A80000910414C8B003D882501BAAA8423411FDF +:100A9000D9832509BC003180891A08A88B02571018 +:100AA000EA90338120ADE9232399F9011890222D92 +:100AB000B0920189269A9A209013748FB813319DB1 +:100AC00098229BA2631DBA151A99242BD98220184B +:100AD000391FAA26289D90221AB9332D9001CA8663 +:100AE000429DB9133808888BD93719B895109D9055 +:100AF0002329CA118A1A730BE9113108B1ABD04608 +:100B00000AB9141A9B1332FA2019B2151BAE9213AC +:100B100059A9938C0117B0A9124A0D3B38A9239308 +:100B200096C993BAA6231EC903100833DC904288E5 +:100B3000C121ACA92443ABD0119AB532CD8028890C +:100B400008403D8921081A70510CB831DBA4509F30 +:100B50009812080018B9340598A81280922B8FB00B +:100B600022ABF094999B8435A81303E0A231288925 +:100B7000ABAE4129EBBA3529B81090097430CB02DD +:100B80005099D820328BF9B08413BBE812209152CF +:100B900028B9B98373B046AEF884129AA389AF011D +:100BA000510C0B2821281DA7009F0823989B08990A +:100BB00030718AA928828718ABC227AB902788D0CA +:100BC000010093009F03088D8221AC9031A98378A6 +:100BD000AE18220B99005D19023180DE1879008071 +:100BE0008C80087900A90808179080D00021888B94 +:100BF000B18448998409C10380F93289F8005A8880 +:100C000083889A84828A1809AA7819D88017100EC6 +:100C1000A107900808E00814909B080807808E1828 +:100C2000590899008809070809D185880808AC186F +:100C300007880B8808223908F905080A9A090082F2 +:100C400071080F9015900809F1883180BC190037A0 +:100C5000908F1821909B08040B953A1BF186900801 +:100C600008C80807908B18841909E183180BD1056F +:100C700080C805908D182290AC1004D03800E18116 +:100C800029A2C1092391EB2221E980410808F884B7 +:100C90001900CA18140AAA186398D900400990804C +:100CA000300EAA224390C1390FD023190EA18058CB +:100CB000AA000618B9A10618A8882129E90331AAB3 +:100CC000C9204981A0C113CBBA0783CA084199A1A1 +:100CD0004308B8589AB4711CB9124898A8A5820D57 +:100CE00089182189A91994DA03158D9A628AB85353 +:100CF00018D91120B2920D901220BFB84119A83115 +:100D0000CAD04338FA8220A9834BA8060A89591908 +:100D10000099383B1B0D1A13532FD9824008B0910C +:100D2000A8A715AAB8140109E81100B110691B9E03 +:100D300081334A9F912100B0110ACD03332ABF9914 +:100D4000132418DAB12339B9C090848381BA090019 +:100D5000416A8DA196918380E90023004CBC033841 +:100D60002E9A8430BBB0452AAE11219BA05299B077 +:100D70003090B224D89121AA9608AE81589A0822C0 +:100D80008C083820D90528BF00318C80219A8041F9 +:100D90001D09102D1130EA9334ABAB1528BB22810D +:100DA000B8C5180A0219AA1421AC0D4A3A09202B19 +:100DB000D01492C1A0388B12080C8033A99128A0BE +:100DC000C32398C931809821AE101011AC1A384055 +:100DD0008A808B194392BAA88112290AC1832B02F7 +:100DE000A4A98B02289191A991518AD90060808889 +:100DF000B982302B2A18C81201B200B89101828141 +:100E0000C8B31490F1A380A1300CB93332AB8891F0 +:100E10002AA84139CBA12580A888B3120AAA2108A3 +:100E20001D2019A90300A289092A2980308C80027B +:100E30000A1882D81211B8A0139891299AA313A85E +:100E4000B1001909A30298992000A1818A9132A0CA +:100E5000B2A192D302A99912090198A3888010889F +:100E6000B09581A1A0B2813888D3A38891809019D0 +:100E70008080918080808001D812345213772011B5 +:100E80004750CEDB0113438B998900448DB9011281 +:100E90002210998449DCBAA81333420A9A37618A2E +:100EA000ABBA981121B1760889AAC91429C823338D +:100EB000218A838FFE80132199ABABC9276209A8D1 +:100EC0009080100089999A8980015719EB81180048 +:100ED00008010BD84733329EC908AB033090235822 +:100EE000DA998002120008999890027750BEB011EA +:100EF0000108CB1642109AABBB99B8730361889E68 +:100F0000A981339BA9002432200AAB05AFD8800207 +:100F1000222110898082BFAEB05409CB9013435474 +:100F2000289CDCA821180125318ADDA8003521097B +:100F3000BBAA9981123232120088999999A8989087 +:100F40009888899FF132DC80235322099BDABBAA5F +:100F5000880022222313111101077519ACBCAA883D +:100F60002243332AB32BB15344218ABDDABBBAA83A +:100F700088111323324676089ABC9AABA2644423A4 +:100F80001880BDBAB9988001124220BECCAA98033D +:100F90002092754351018ADB8999898880800011EC +:100FA000202011000CFC16221189ADCCA026421184 +:100FB00099BBCAAA8808AA25535321188ABBCBBA61 +:100FC000B9A880102121202111282010001132768B +:100FD00019BDBAEA98137321189AABBAA9008A36D8 +:100FE0004119ABB937221220829FBBABAA912917B6 +:100FF0006109ABCABDBA452045218A999880101075 +:1010000008A042AFBDCABA99B855332311008998D8 +:1010100098808BFD911364309ABBCA9A8802340D74 +:10102000DB9990234343222315309AFEBA9811444A +:1010300021331BBABFA989988BE90264222089ABAE +:10104000BBA99801213088A80271352189BCCABD8D +:10105000CA982343433110899BCBABAAA8988081BF +:1010600001810101100181818373089BFABABA9151 +:10107000144341218A8301819899A999999090807C +:1010800090A90013230180AAFB033333AEBA801367 +:10109000534341ABCABBB9988081808180818181F3 +:1010A00082460ABA88AB80213232211088898A9917 +:1010B0008A8A8988090808001362089BFCB9813173 +:1010C00024332331381238ACCCCBABB99910313240 +:1010D000399A1234623353199BCDBACBA800119BB5 +:1010E000012353441211000300BBDCBCAA999811E0 +:1010F00022322222112010000888890989898989D1 +:1011000089BD992323131235129DBCBBA80235104B +:101110001329BB9A0041091132288A9ABBAA8A086E +:1011200009A9025442109AA9A9182018180129AE39 +:10113000A88999BB9109911224334432189A9AAA2A +:101140009A00290A99BA9A890810180001102251A8 +:10115000001081808890A899A8A8A8989080808184 +:1011600081018101010001800081138AA881989981 +:1011700098AABA821121010188B991022533110A76 +:10118000AABB9B9A98888818101018101018181865 +:10119000000808880908880908880908880980184B +:1011A0008A0910212120100889898899098988884D +:1011B000080808000008100008181808080810108F +:1011C00008099CBB9A023231180BA80010180A9A21 +:1011D0000910212110180889898889988909080926 +:1011E0000008180221189AAA890111202010080865 +:1011F0000909881009899B99998989012131101061 +:101200000810080808880809080908090888080853 +:1012100081A80081A2B009280081803AA2B3B01849 +:101220009801A2899292A2892894A8899109119083 +:101230008489800A10B1888002881A1903A91809C4 +:1012400029A1A19388A1188019928930A8A1898128 +:101250003A824C920C27DA68C149808898151F039E +:10126000BC52BC41C858C129B42D838C24BB41D089 +:1012700049B22B968C13B940D12A948C22B969B308 +:101280002D04AB58B23D849A30E13B849D32D13C71 +:10129000959B40D23C84AC41C22C949930C008113B +:1012A00098A04902F85A02BC41B31D931A39D822BA +:1012B000088DB62A00D05992BC51A18E05880BA189 +:1012C00061AA09871D00B45CA1A872D90937BC19AD +:1012D000872DB39871DB4803BE21010E82942EA5A1 +:1012E000A868D0118A28D33CB179B2800F35DA5979 +:1012F00081E35D94A02F35D85D13E850A3E05D95A0 +:101300009C5A84BB63D81928987D85C14D950B18CC +:101310008188E62DA5992E15AC5A85CA42B91008C8 +:101320000F15BA3883B807D95983CA321DA33B8A2F +:10133000C74DB5818F053DB3209CA600BB62AA892D +:10134000342F840C089126D112F00949A3B15BA473 +:101350000C840C12A03AE853D5D3A8B97892C9608E +:10136000C8289869D34BA219B9712E4C82B05B95ED +:10137000A949A21A9835CA31A18B8873F958B29835 +:1013800039C41C11B13BA0873FA51B8000A23F853B +:101390009B20A48D14AB30911C01C44DA50C119160 +:1013A000A830A08849C23D924BA40A0806AD130C90 +:1013B0008120BA33B8D070C029828A1B878B31B0A4 +:1013C0008960C8138E03A930B29F35BA2080802C63 +:1013D00090972F02903BB40E25CB40939E21908195 +:1013E0000D03080E84099008840BA83319FB45A847 +:1013F0000AA70B11D04A01B951A89823AC20B32BEE +:1014000012F978988814AD2288C04898820C11A1EE +:10141000181E858B1834F95A93B979B48C59D42D88 +:1014200012D22B12D969B2193CD51D11A14BC32A76 +:1014300081A07BA58B30D31E22C12B03AC34C938CD +:10144000A30F22C10A06AD42C10A14AB120B10A5AC +:101450003FA58A19049C841B80011C8023DA034A5F +:10146000C0843F921880AD62DA5880A84988922BD8 +:10147000109904AB33F051EB53CA2010B93810C99E +:101480003109A2C17AD32A9219F16BB40918A30DBC +:1014900020B128A031DB51A8081189D27AA20919FC +:1014A000830D02A969C2499A971C93098839D40C03 +:1014B00012A82B15AC31989010881BC71D029939C2 +:1014C000920B11900928E40C12B95892BB71AA84AE +:1014D0001C82801B832BE050C11C05A83B949A38CA +:1014E00092BA70B1883A82AC6895AE23B83C83A0BA +:1014F000398D860A81A059B58E23B92A049A18918C +:10150000010BA1071D9218808D04088AA252BF11F9 +:10151000812E930B40C10922CA2101BD25A939B2F0 +:101520008868D028009C34B90951D01809948A10D1 +:101530008A060D0280AC61D11A12F13B83C04AA425 +:101540009A49910911C039A1A37D828819A33C91C0 +:101550000818E33E839A4AA79A38A28912AC32B897 +:101560002C07AA30A20F15B938929B239A93091C15 +:10157000C72E029089031D930909A4199B439BC29E +:10158000591CB71A918814DB61B81810A0001AA46E +:1015900099218C13AA40F844CB33B88932C08941D1 +:1015A000B9002A21F06AA12A9078E13A92983B95F5 +:1015B000A948A010AA35BB40919A1149F13A9191DE +:1015C0002C940A11C879B0302FA51A9010A85AA5EA +:1015D0008B21B21E059A10088881804D958A02B031 +:1015E0003B838A10819A7AB50B13AB3887BC320BD8 +:1015F000B43B90932DA170C930B33F01A13D03AA24 +:101600003A13E83880B12A06BA4D078C11901A10A7 +:10161000B1041E930A30E84A978C11910B03A0196C +:101620008902298DB7199008840D80112BBC378A47 +:1016300008B62C82AA68919A33B99835AD22C1298F +:1016400091B970A80813AF1281C940A0812C839969 +:10165000020E968A0014DA68A29A68D21A20D21B67 +:1016600012B03B82AA60C11808E32C01903BC32A48 +:1016700081A86AC41C12B13F03B83A83AB35BB40A2 +:10168000A30F13B93A859E22B01904AB121B82A393 +:101690004FA78A18018B951B80101BA214CB233BEC +:1016A000E1834EA32A089D53E93090983898922BF5 +:1016B00002B9059B23C971DB45BA2181B93801CA3A +:1016C0004189919879C149A208D079B31A00A22E14 +:1016D00011B128A831CB52B91821A9C179B22A1861 +:1016E000B41D838A40E139AA972D93199820D23EE0 +:1016F000029929959C139980028A19C71D028A2094 +:10170000B21C02981911D23D839B23C00C53CA838B +:101710003CA3081B933AF960A82AA78A3AB68A2004 +:10172000A19941C08029A38D32B6AF149A2993980C +:10173000398CA72C819840C21F049A18849A109162 +:10174000000AA1142F9129800B86089A9341BF03A8 +:10175000904DA41A11D01922CA2101BC259B30C179 +:101760001931F820888B179A1933F82809930B023E +:101770008B052F83980C36D83A03E859A3A959A3AF +:101780008B48A10912C958A0805BB50A18A24BA2C8 +:101790000818C26C839A4AA79A38A28A22BC34B924 +:1017A0003B879B31B20E16AA38918C239A820A1A73 +:1017B000B73F83980A131E9319989419AA43ACA3B0 +:1017C000590CA71B928013FA50B01810B0110B944B +:1017D00099219C13BA58C873EA32A90830B08941DC +:1017E000C9020928F15AB31A8069F22A92902B95FE +:1017F000A949A118A834D9309099213AF14AA29068 +:101800002B960B02C859C2201F950A9101A85AB6FF +:101810008A10910C15AA11089801813F958B12B07E +:101820003AA48A1881A969B50B13BA3885DB5189A6 +:10183000B42B80820AB270D930B40D12B22D03B924 +:101840003A13F83808A02B14C93D279D12A11B019B +:10185000A0232FB50918C04A979C21918B13A0197A +:1018600098032B9E971AA119038F00110AB8549C54 +:1018700008A61B93B878909A42AA0933BE21A04AC1 +:1018800081B870B80003AF2180BA70A0811B849921 +:10189000010C978A1002BF58A28B58D22B20D22C51 +:1018A00002B13A919A50B03909F41B82A13BD32A74 +:1018B00081894AF40B12B12F13B83A93AA25BB4180 +:1018C000B20F23B93A849F23C01A03AB131B939121 +:1018D0004FA70B01928B951B91281BA313DC231A96 +:1018E000E1834EA329889B64D93090993898823C33 +:1018F00083B8138D12BB71EA44BB2208A93081BAA8 +:10190000359B829978E23AA118E159D21900A12CAD +:1019100012B038A821BF23C928019A9078C31A1899 +:10192000B40C948922F128B0952E9319A011C14DC1 +:10193000839A39958D139980000A08C62D848A28C8 +:10194000A02B83981001B24D940D12A88B62D882FF +:1019500019B2100C032AE852C819A68B28B58921A0 +:10196000B18B42E80838A38A41B39F069B28B599FA +:101970003A9A872C819840D12E14AA29039B109162 +:101980003899B3234FC229918B0709988231EC050E +:10199000893CA41A11E02911BB4101BD24AA38C217 +:1019A0000813F931898A17AA1823F82088948B0222 +:1019B0009A058D02888A37C83A03E979918939C333 +:1019C0001C30C11901A948A8186BC40918A24BA260 +:1019D0000910B07AB58B30C58C21B11A129C24B98C +:1019E00029A79C30910B17AB40A18B249B831A0035 +:1019F000A72F839919832F821A9082199A36BA01D8 +:101A00004A99C62BB30112ED51B81810B8102B9497 +:101A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:101A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:101A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:101A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:101A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:101A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:101A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:101AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:101AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:101AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:101AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +:101AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:101AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:101B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:101B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:101B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:101B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:101B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:101B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:101B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:101BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:101BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:101BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:101BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +:101BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:101BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:101C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:101C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:101C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:101C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +:101C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:101C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:101C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:101C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +:101C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:101C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:101CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:101CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +:101CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:101CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +:101CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:101CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:101D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:101D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +:101D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:101D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:101D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:101D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +:101D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:101D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +:101DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:101DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +:101DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:101DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +:101DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +:101E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:101E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:101E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:101E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +:101E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:101E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:101E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:101E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:101E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:101E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +:101EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:101EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:101EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:101ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:101EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:101EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:101F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:101F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +:101F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:101F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +:101F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:101F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +:101F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:101F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:101F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:101F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:101FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:101FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +:101FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:101FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:101FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:101FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3h-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3h-.bin.hex new file mode 100644 index 00000000..e5840791 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-3h-.bin.hex @@ -0,0 +1,513 @@ +:10000000C387E000000000000000000000000000C6 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:100050000000000000000000000000000005E004B7 +:10006000ED007CBAC07DBBC9A7ED5223C9237CB586 +:100070002BC97D02037C0203C91A6F131A67C9DBFF +:1000800004E68032FDFEC93100F6CD60F0CD23EBF1 +:100090003100F62103E0065FAF772310FCCDCAE004 +:1000A000AF32FDFE32FEFE3A04E0A7CC84F2060138 +:1000B000CD43F3CDB8F20601CD43F3CDB8F20E0037 +:1000C000CD86F30E00CD86F318C6AF3203E032FDC5 +:1000D000FE3201F62105E0225DE02104ED225FE021 +:1000E000064D36202310FB213DEBCD50F2CD1EF105 +:1000F000FE01CA36E1FE02CA96E1FE03CA36E2FEFE +:1001000004CA47E2FE06CAD0F0FE0720BD2185EBF7 +:10011000CD50F2CD1EF1FE01CAC3EEFE02CA00F7B9 +:10012000FE03CA00F4FE04CA94EDFE05CA00FBFEFD +:1001300007C20DE11894213FEB0E05CDFEEACD7507 +:10014000E2CD84F22120ECCD50F2CD45F1CDD3EAC1 +:1001500020F82122EC0E04CDFEEACD12EB212DEC8D +:10016000CD50F2CD45F1CDDDEA20F83826212FEC37 +:100170000E04CDFEEACD12EB2147ECCD50F2CD4579 +:10018000F1CDDDEA20F8380B214FEC0E02CDFEEA6E +:10019000CD12EBC319E92149EB0E04CDFEEACD7572 +:1001A000E2CD84F2215CECCD50F2CD45F1CDD3EA25 +:1001B00020EF215EEC0E04CDFEEACD12EB2169ECBE +:1001C000CD50F2CD1EF1FE01285FFE0320F5217D0A +:1001D000EC0E0CCDFEEACD84F2218AECCD50F2CDAE +:1001E00045F1CDD3EA20F8CD12EBCD84F22193EC8A +:1001F000CD50F2CD45F13A04F8CDDDEA20F53826B0 +:100200002122EC0E04CDFEEACD12EB21A9ECCD505B +:10021000F2CD45F1CDDDEA20F8380B212FEC0E04AC +:10022000CDFEEACD12EBC399E8216BEC0E0ACDFEB0 +:10023000EACD04E318B42152EB0E0ACDFEEACD75E7 +:10024000E2CD04E3C319E9215DEB0E07CDFEEACD53 +:1002500075E2CD04E3CD84F2218AECCD50F2CD4598 +:10026000F1CDD3EA20F8217DEC010C00CDFEEACDE2 +:1002700012EBC3EAE121CDEBCD50F2CD1EF1FE072A +:10028000281AFE062823FE05282CFE042835FE0326 +:10029000283EFE022847FE01285018D93E000109D9 +:1002A00000110BEC210008184C3E3201060011022F +:1002B000EC212000183F3E3401060011F8EB21002C +:1002C0000218323E5401040011EEEB2100101825F3 +:1002D0003E5401041011E4EB21002018183E49019E +:1002E000040011DAEB210010180B3E490104101133 +:1002F000D0EB2100203241E02245E02140E070EBCC +:10030000CDFEEAC911FFFF2A5DE073237223225D4F +:10031000E02103E034C9210000224DE07D323FE0BE +:100320002A05E02249E0224FE03A03E0C9CD33E359 +:10033000C3B8E3CD16E3FE0120232A49E01100E013 +:10034000CD62E0380721FFFF2249E023EB2A45E098 +:100350002247E02B19224BE03E01D8AFC9FE022014 +:1003600021EB2A07E0224BE0CD68E038EB2247E0A2 +:10037000EB2A45E01BCD62E03E0030013C323FE01D +:10038000AFC9EB2A07E0224BE0CD68E038CA22472C +:10039000E02A09E0224DE0EB2A45E02BCD62E03E69 +:1003A0000138DA2A47E019EB2A45E0CD62E03E0049 +:1003B00030CB3C18C8CD92E4A7C02105E0063A3600 +:1003C000002310FB3A3FE0A7282E2A45E011001039 +:1003D000CD62E03E003061ED5B45E02A47E02BCD89 +:1003E00062E0D2F9E4444D2A4DE009DA58E3CD62E7 +:1003F000E03E01D0AF323FE0D52A45E0110010CDFC +:1004000062E0D12156E03E0138023E07770105E067 +:100410002A47E0CD72E02A4DE0CD72E0EB2A45E0BC +:1004200019224DE02A49E0CD72E02A4FE0CD72E07A +:100430002156E03520DAAFC90105E0ED5B45E02A41 +:100440004DE0A7ED5230FC7D2F5F7C2F57132A47DC +:10045000E0CD62E0F528083806ED522247E0EBCD0A +:1004600072E0EB2A4DE0CD72E019224DE02A49E01E +:10047000CD72E0CD6DE02801192249E02A4FE0CD90 +:1004800072E0CD6DE0280119224FE0F13E00C83046 +:10049000AAC9CD16E311FFFFED534FE0FE01200C7A +:1004A0001100E0CD62E0DA4CE33E01C9471100E003 +:1004B000CD62E0380721FFFF2249E02378FE02EBFE +:1004C0002A07E0224FE0CA4DE32A09E0224DE03E30 +:1004D00001323FE078FE03CA4DE3EB2A0BE0CD6822 +:1004E000E0DA58E32247E0EB2A49E0CD6DE0C81995 +:1004F000224BE01100E0CD62E03E01D0AFC93A41AD +:10050000E0FE322804FE342003AF1810A720043E7A +:100510001018090630FE4928020620783243E0C947 +:100520003A3FE0A728142107E07E23666FED5B4584 +:10053000E006FFA7ED520430FA783251E0C9CD5EF3 +:10054000E5D51110271B7AB320FBD1C911C0C03AE1 +:1005500043E0E630FE20300350180158B2C9F532AE +:1005600044E00682FE002002068078D303F1E6C054 +:1005700047D5CD4CE5D3023A3FE0A73E0E2801AF68 +:10058000473A40E0E610B03240E0B3D305D1C93A73 +:1005900044E0E6C047D5CD4CE5477CE60FB0D3023A +:1005A0007DD3003A40E0E60EFE0E7C2817E6F047C9 +:1005B0003A43E0E620280A3A40E0E61020037817A4 +:1005C00047781804E610F6E00F0F0F0F473A40E0A7 +:1005D000E610B0E61F3240E0B3D1D305C9D5C50659 +:1005E00080CD4CE5477CE60FB0D302473A40E0B3FC +:1005F000D3054FED5B58E01B7AB320FB78CD0BE6BB +:10060000D30279CD0BE6D305C1D1C9CB77C0E67F44 +:10061000C92105E04E2346235E2356237E23666FC1 +:10062000EBC93A03E0FE033E00C8D5E52A45E011D8 +:100630000010CD62E0E1D101010138020E07C53E94 +:1006400040CD3EE53A40E0E6103240E0110000C106 +:100650003E00F5C5D5CD8BE6D1C12801C5040D28D6 +:10066000072A45E019EB18EB3EC0CD3EE5F1A7C8DF +:10067000CDDBE721C5ECCD54F2F1A7280BCDDBE7AC +:1006800021C5ECCD54F218F13E80C9ED4B45E0EBAD +:100690005059CD8FE5233A43E0E63006FF200104B0 +:1006A000DB01B8C01B7AB320E9C93EC0CD3EE53EB0 +:1006B00040CD3EE53A40E0E6103240E0AF325BE04C +:1006C0002100002256E02252E02151E0342A4BE082 +:1006D0007E4F23B6F53EC0CC3EE5F1C84623EBCDB8 +:1006E00079E0224DE013CD79E02249E013CD79E0A5 +:1006F000224FE013EB224BE0C52A4DE0CD8FE5EB16 +:100700002A49E0CD6DE0DB01280D473A54E0A77897 +:10071000280577232249E0215BE0FEFF28053528E4 +:10072000013434F52A52E0856F7CCE00672252E016 +:10073000F12A4FE0BEC419E8C12804AF3255E02ABF +:100740004DE023224DE02A4FE0CD6DE02804232226 +:100750004FE00B78B120A13EC0CD3EE53A5CE0A76A +:1007600020053A5BE0A7C0F5F5CDD8E7F121BFEC55 +:10077000CC54F2F1C83A61E0A7282B0602CD43F32E +:10078000CDB8F20602CD43F3CDB8F20602CD43F365 +:10079000CDB8F2AF3261E00E80CD86F30E80CD860B +:1007A000F30E80CD86F3CDD8E7CD0EF22A4FE0CD03 +:1007B0006DE028122A56E07CB5280B21CEECCD57EF +:1007C000F22A56E0180921D3ECCD57F22A52E0CD97 +:1007D000E6E72A56E07CB5C93A51E0473EF8C60A3A +:1007E00010FC571E11C97CF50F0F0F0FCD0DE8CD72 +:1007F0002CF2F1CD0DE8CD2CF27DF50F0F0F0FCDC2 +:100800000DE8CD2CF2F1CD0DE8CD2CF2C9E60FFEAE +:100810000A3003F630C9C637C94F2A4FE0CD6DE024 +:10082000C82A56E0232256E03A55E0A7C8C53E0143 +:100830003261E03AFEFEFE123823CD45F1C13A04A2 +:10084000F8FE0D2852C5AF32FEFE21D8ECCD74F172 +:100850003A51E0F630CDBAF2CDB8F2180A2B7CB599 +:100860002005CDB8F218E30602CD43F32A4DE0CDC2 +:1008700026F30602CD43F3C179CD2BF30603CD4316 +:10088000F32A4FE07EF5CD26F30602CD43F3F1CDFA +:100890002BF3CDB8F2AFC9A7C9CDB5E3A7C0CDFE44 +:1008A000E4111101CD87F2111201CD87F23E013220 +:1008B0005CE03254E03255E02105E0224BE0CD20EF +:1008C000E53A3FE0A7280C2A4BE07E23B6C8CDAA24 +:1008D000E618F40607D5E52A45E0110010CD62E0E0 +:1008E000E1D130020601C5AF325CE03254E032554E +:1008F000E0CDAAE63A5BE0A7281A325CE03254E089 +:1009000000000001A04002B0A2F001B0A4A001507C +:10091000A5F01000B5F01880CE7003A0D21008002A +:1009200000000001000000010000000100000001C3 +:1009300000000001000000010000000100000001B3 +:1009400000000001000000010000000100000001A3 +:1009500000000001F0E5F10AF1AFF1DDF26DF2C83F +:10096000F3FEF41CF436F363F181E9D9E9D9E9D94E +:10097000E9D9E9D9E97EEA2FEAF2EBCBED2640008E +:100980004100420043004400480049004A0045003D +:100990004B004C004D006C006D006E0066BC6C148A +:1009A0006D14FEE9DAFEEA1BFEE9DAFEEA1BFEE957 +:1009B000DA408E480D690D027A40690D027A2048AE +:1009C00000409F680D690D021C40408E680D690D46 +:1009D000021C206C006D006703FF42384302490D82 +:1009E000680D004720680D004F204900680D690D13 +:1009F000005E2042DD4301490D680D006A20680D4C +:100A00000077204900680D690D008E204077480D61 +:100A1000690D02A940690D02A920FD408E480D69AB +:100A20000D027A20690D023E20690D021C20FD6630 +:100A3000BC6C106D1041004301406A680D690D02E5 +:100A40007A20405E680D690D027A20404F480D699A +:100A50000D02C120690D02C1204800405E680D6989 +:100A60000D02A920406A680D690D02A920407E4848 +:100A70000D690D029020690D029020406A480D69B1 +:100A80000D027A20690D027A20407E480D690D0220 +:100A9000C120690D02C120408E480D690D02A920B8 +:100AA000690D02A920409F480D690D029020690D33 +:100AB000029020427A490D680D008E20680D009F3B +:100AC00020490040BD680D690D02C14040D443017A +:100AD000680D690D021C2040C8680D690D020C20CC +:100AE00040BD4300680D690D02FD8067036C006D19 +:100AF00000FF66BC6C106D1040384102480D430089 +:100B0000690D02EE20690D02E120480040C141015B +:100B1000680D690D028E40407A680D690D029F4094 +:100B20004051680D690D02A840403E480D690D0214 +:100B3000BD20690D02D42048004051680D690D02A6 +:100B4000EE40407A480D690D02EE20690D02E12069 +:100B5000480040C1680D690D02D44040A7410268B9 +:100B60000D690D02E12040514101680D690D028EB1 +:100B700020407D4102680D690D02D420403E4101B4 +:100B8000680D690D027E2040584102680D690D0212 +:100B9000C820402C4101680D690D02772040384182 +:100BA00002680D690D02BD20401C4101680D690DF0 +:100BB00002702040384102680D690D0270406703E1 +:100BC0006C006D00480049004A00FF66B86C146D67 +:100BD000146E14FEEC62FEEC62FEEC62403F425486 +:100BE0004501680D690D6A0D047A2D680D690D6A5D +:100BF0000D047A2D680D690D6A0D047A2D680D6952 +:100C00000D6A0D047A2D680D690D6A0D047A2D6840 +:100C10000D690D6A0D047A2D680D690D6A0D047A4F +:100C20002D680D690D6A0D047A2D403C424F680D08 +:100C3000690D6A0D04A95A403F4254680D690D6A56 +:100C40000D04C12D4047425E4502680D690D6A0DD5 +:100C500004385A67076C006D006E00480049004A6E +:100C600000FF4A00410043004502408E42BD480D4E +:100C7000490D6A0D04382D45016A0D04C12D480047 +:100C800049004070428E680D690D6A0D047A2D404E +:100C90005E443845024A0D680D690D02702D406AA8 +:100CA000680D690D028E2D4A004054426A45016864 +:100CB0000D690D6A0D04C12D6A0D047A2D404F4255 +:100CC0006A680D690D6A0D04A95A4054426A680D9C +:100CD000690D6A0D04512D405E4270680D690D6A00 +:100CE0000D041C2D407744EE45004A0D680D690D3A +:100CF000029F2D4070680D690D028E2D4A00409FA5 +:100D000042D4680D690D6A0D04FD2D409F441C45B9 +:100D1000014A0D680D690D02D42D408E680D690DD4 +:100D200002BD2D4A00FD66B56D144B034C024D0902 +:100D300046014302FEEF27FEEF27FEEF27FEEF27D7 +:100D40004300FEF009FEF0094301FEEF27FEEF2706 +:100D50004B034C024D0943014810690E027A304B97 +:100D6000034C024D094810690E027A164300020036 +:100D7000024B034C024D0948104301690E02A916AB +:100D800043000200024B034C024D09430148106925 +:100D90000E027A304B034C024D094810690E027A5C +:100DA0001643000200024B034C024D094810430158 +:100DB000690E02A91643000200024B034C024D09C2 +:100DC00043014810690E027A304B034C024D09482A +:100DD00010690E027A1643000200024B034C024DCA +:100DE0000948104301690E02A91643000200024B94 +:100DF000034C024D094810690E4301027A16430064 +:100E00000200024301690E023E1643000200024B3B +:100E1000034C024D0943014810690E027A16430043 +:100E20000200024B034C024D0943014810690E02B7 +:100E3000A91643000200024B034C024D094810431F +:100E400001690E02A9304B034C024D0948104301C1 +:100E5000690E02A91643000200024B034C024D0921 +:100E600043014810690E02DD1643000200024B03E5 +:100E70004C024D0948104301690E02A9304B034C46 +:100E8000024D0948104301690E02A91643000200F1 +:100E9000024B034C024D0943014810690E02DD1656 +:100EA00043000200024B034C024D09481043016904 +:100EB0000E02A9304B034C024D0948104301690E44 +:100EC00002A91643000200024B034C024D094301E4 +:100ED0004810690E02DD1643000200024B034C026B +:100EE0004D0943014810690E02A916430002000291 +:100EF0004301690E02651643000200024B034C02D7 +:100F00004D0948104301690E02A916430002000270 +:100F10004B034C024D0948104301690E02DD164394 +:100F200000020002FEED264B034C024D094302482D +:100F300010690E0238304B034C024D094810690EFF +:100F400002381643000200024B034C024D094302D3 +:100F50004810690E027D1643000200024B034C024A +:100F60004D0943024810690E0238304810690E02DC +:100F7000381643000200024B034C024D094302485D +:100F800010690E027D1643000200024B034C024D15 +:100F90000943024810690E0238304B034C024D09D8 +:100FA0004810690E02381643000200024B034C023F +:100FB0004D0943024810690E027D164300020002EB +:100FC0004B034C024D0943024810690E0238164388 +:100FD000000200024301690E02DD16430002000216 +:100FE0004B034C024D0943024810690E0238164368 +:100FF000000200024B034C024D0943024810690EE7 +:10100000027D164300020002FD4B034C024D0943D2 +:10101000014810690E02A9304810690E02A9164352 +:10102000000200024B034C024D0943014810690EB7 +:1010300002DD1643000200024B034C024D0943013E +:101040004810690E02A9304B034C024D0948106943 +:101050000E02A91643000200024B034C024D094345 +:10106000014810690E02DD1643000200024B034CDA +:10107000024D0943014810690E02A9304810690E5B +:1010800002A91643000200024B034C024D09430122 +:101090004810690E02DD1643000200024B034C02A9 +:1010A0004D0943014810690E02A9164300020002CF +:1010B0004301690E02651643000200024B034C0215 +:1010C0004D0943014810690E02A9164300020002AF +:1010D0004B034C024D0943014810690E02DD1643D3 +:1010E00000020002FD76AE5000510052005300583D +:1010F0001059105B005C025D00700008160C10585F +:101100000059005B005C007711FF76A7580F590F5C +:1011100051015301161605580559003000000458B6 +:101120000F590F160805580E590E160705580D5978 +:101130000D160905580C590C160A05580B590B16B3 +:101140000805580A590A16090558095909160605C5 +:101150005808590916070558075907160A05580669 +:101160005906160805580559051606055804590468 +:1011700016080558025902160A0558005900771832 +:10118000FF66AF4609892001090A0B0D0D0E0F0FEE +:101190000F0F0F0F0F0F0F0F0F0E0D0C0B0A09087B +:1011A0000706050403020100490067104600FF66B8 +:1011B0009746098A2001090A0B0D0D0E0F0F0F0F1C +:1011C0000F0F0F0F0F0F0F0E0D0C0B0A090807065C +:1011D0000504030201004A0067204601FF76A45877 +:1011E0000F590F5618701200312501027018003186 +:1011F000280002701A0031220203702C00312A01EB +:1012000003702D0031220002702F0031250001599A +:101210000318030276AC580F590F56025BF05C0AB4 +:10122000FEF23458105910FEF234FEF234580059D0 +:1012300000771BFF70180031100005701D0031137E +:101240000004701C00310E0005700A00311000040B +:1012500070080031100004700E0031130005701585 +:1012600000310E0004701A00310A0004FD76BB66DE +:10127000B34A0F5A0FFEF28F0A0008FEF28F4400A5 +:1012800045005500540048A05A0077046704FF62E7 +:10129000200032180002622500321A000162230089 +:1012A00032150002620B0032120001620900321690 +:1012B0000001620E00321A0002622000320E0001AC +:1012C000622900320D0001FD669746004A055A0565 +:1012D00076BB1460014A075A06145C014A085A0793 +:1012E0001458014A095A081454014A0A5A09145058 +:1012F000014A0B5A0A144C014A0C5A0B1448014A71 +:101300000D5A0C1444014A0E5A0D1440014A0F5A4A +:101310000E143C014A0F5A0E1438014A0E5A0E148C +:1013200034014A0D5A0E1430014A0B5A0D14400173 +:101330005A0B1445015A09144A015A08144F015A0C +:10134000061453015A051457015A04145B015A0339 +:101350001460015A021464014A005A007720672081 +:101360004601FF669F46004A055A0576BB14600198 +:101370004A075A06145C014A085A071458014A09D8 +:101380005A081454014A0A5A091450014A0B5A0ABD +:10139000144C014A0C5A0B1448014A0D5A0C1444BF +:1013A000014A0E5A0D1440014A0F5A0E143C014ACC +:1013B0000F5A0E1438014A0E5A0E1434014A0D5AAF +:1013C0000E1430014A0B5A0D1440015A0B144501FA +:1013D0005A09144A015A08144F015A061453015A63 +:1013E000051457015A04145B015A031460015A0290 +:1013F0001464014A005A00770467204600FF76BC57 +:10140000581059105B805C025D0070300031600044 +:101410000C30300004580059007703FF66BE4100CD +:101420006C09680F007722680F007722680F007739 +:10143000226C006701FF66B345006E146A0F044317 +:10144000306A0F0453E067046E00FF47BF57BF4088 +:101450000041004200430044004500460048004966 +:10146000004A004B004C004D005100500052005308 +:1014700000540055005600580059005A005B005CAB +:10148000005D00FF73F42A07E0ED5B05E0092BEB3C +:10149000092BEBEDB8C92146FFCD74F1C900FF005F +:1014A00000FF00FF00FF00FF00FF00FF00FF00FF44 +:1014B000F700FF00FF00FF00FF00FF00FF00FF003C +:1014C00000FF00FF00FF00FF00FF00FF00FF00FF24 +:1014D000FF00FF00FF00FF00FF00FF00FF00FF0014 +:1014E00000FF00FF00FF00FF08FF00FF00FF00FFFC +:1014F000FF00FF00FF00FF00FF00FF00FF00FF00F4 +:1015000000FF00FF00FF00FF00FF00FF00FF00FFE3 +:10151000FF00FF00FF00FD00FF00FF00FF00FF00D5 +:1015200000FF00FF00FF00FF00FF00FF00FE00FFC4 +:10153000FF00FF00FF00FF00FF00FF00FD00FF00B5 +:1015400000FF00FF00FF00FF00FF00FF00FF00FFA3 +:10155000FF00FF00FF00FF00FF00FF00FE00FF0094 +:1015600000FF00FF00FF00FF00FF00FF00FF00FF83 +:10157000FF00FF00FF00FF00FF00FF00FF00FF0073 +:1015800000FF00FF00FF00FF00FF00FF00FF00FF63 +:10159000FF00FF00FF00FF00FF00FF00FF00FF0053 +:1015A00000FF00FF00FF00FF00FF00FF00FF00FF43 +:1015B000FF00FE00FF00FF00FF00FF00FF00FF0034 +:1015C00000FF00FF00FF00FF00FF00FF00FF00FF23 +:1015D000FF00FF00FF00FF00FF00FF00FE00FD0016 +:1015E00000FF00FF00FF99E5010075E575E505E8DE +:1015F0000CE8D2E780EA000100200000F0E0A0E063 +:10160000004577726974652020202020726561642E +:1016100020202020206572617365636865636B20FC +:10162000636F6D70617265202020202020202020B3 +:1016300020202020656E64202020202020202D2DB9 +:101640002D4554432D2D2D202020202020202020EA +:10165000202020200D0AFF00FF00FF00FF400100B6 +:1016600000FE00FE00FE00FE00FE00FF00FF00FF87 +:10167000FE00FE00FE00FF00FE00FF00FE00FF0077 +:1016800000FF00FF00FF02FF00FF00FF00FF00FF60 +:10169000FF00FF00FF00FF00FF00FF00FF00FF0052 +:1016A00000FF00FF00FF00FF00FF00FF00FF00FF42 +:1016B000FF00FF00FF00FF00FF00FF00FF00FF0032 +:1016C00000FF00FF00FF00FF00FF00FF00FF00FF22 +:1016D000FF00FF00F700FF00BF00FF00FF00FF005A +:1016E00001FF00FF00FF00FF00FF00FF00FF00FF01 +:1016F000FF01FF00FF00FF00FF00FF00FF00FF00F1 +:101700003E0132FDFE2191EB0E05CDFEEACD5FF7E5 +:10171000CDCEEEC34BF3D9014B001189FF2188FFD9 +:101720003E2077EDB03E0D77233E0077D9C913797F +:101730001F1F1F1FCD38F779E60FFE0A3802C607B4 +:10174000C6301213C913CD4EF73E2D1213C94CCD1E +:101750002FF74DC32FF77EE67FFE20D03E20C9CD68 +:1017600084F22120ECCD50F2CD45F1CDD3EA20F822 +:101770002122EC0E04CDFEEACD12EB212DECCD5052 +:10178000F2CD45F1CDDDEA20F8D8212FEC0E04CDC5 +:10179000FEEACD12EB213AECCD50F2CD45F1CDDD94 +:1017A000EA20F8D8213CEC0E04CDFEEACD12EBC9BC +:1017B000FF00FF00FF00FF00FF00FF00FF00FF0031 +:1017C00000FF00FF00FF00FF00FF00FF00FF00FF21 +:1017D000FF00FF00FF00FF00FF00FF00FF00FF0011 +:1017E00000FF00FF00FF00FF00FF00FF00FF00FF01 +:1017F000FF00FF00FF00FF00FF00FF00FF00FF00F1 +:10180000000620000D4646460DFF00FF00FF00FFCA +:10181000FF00FF00FF00FF00BF00FF00FF00FF0010 +:1018200000FF00FF00FF00FF00FF00FF00FF00FFC0 +:10183000FF00FF00FF00FF00FF00FF00EF00FF00C0 +:1018400000FF00FF00FF00FF00FF00FF00FF00FFA0 +:10185000FF00FF00EF00FF00FF00FF00BF00FF00E0 +:1018600000FF00FF00FD00FF00FF00FF00FF00FF82 +:10187000FF00FF00FD00FF00BF00FD00FF00FF00B4 +:1018800000FF00FF00FF00FF00FF00FF00FF00FF60 +:10189000FE00FF00EE00FF00FF00FF00FF00FF0062 +:1018A00000FF00FF00FD00FF00FF00FF00FF00FF42 +:1018B000FF00FF00FF00FF00FF00FF00FF00FF0030 +:1018C00000FF00FF00FF00FF00FF00FF00FE00FF21 +:1018D000EF00FF00EF00FF00FF00FF00FF00FF0030 +:1018E00000FF00FF00FF00FF00FF00FF00FF00FF00 +:1018F000FF00FF00FF00FF00FF00FF00FF007F0070 +:101900000F8E00FFBDFA9386BFC607BDFAD58613BA +:10191000C60FBDFAD5863FC617BDFAD5BDFAA87F5A +:1019200008000FBDFA4396BC2B07BDFCC786FF9786 +:10193000BC0ECE0000DFD19680260BDE84D68CBD97 +:10194000FBDBDF8497807C00D29681260BDE86D677 +:101950008DBDFBDBDF8697817C00D29682260BDE75 +:1019600088D68EBDFBDBDF8897827C00D2968326EB +:101970000BDE8AD68FBDFBDBDF8A978396A827080C +:101980007F00A8C608BDFB3796A927087F00A9C617 +:1019900009BDFB3796AA27087F00AAC60ABDFB37F8 +:1019A00096AB27087F00ABC618BDFB5096AC270846 +:1019B0007F00ACC619BDFB5096AD27087F00ADC6B1 +:1019C0001ABDFB5096BE169AD80F97D8C60FBDFA0F +:1019D000DB7EF92296C1B7080196C2B708027C00E7 +:1019E000BD96BF4C97BF442432DEC309271EDFC318 +:1019F000DEC7A6004444444497C1DEC5092715DF6D +:101A0000C5DEC9A6004444444497C23B86019ABE41 +:101A100097BE20E686029ABE97BE3B96C7812025D8 +:101A200009DEC7A60097C108DFC796C9812025092E +:101A3000DEC9A60097C208DFC996BF840E26CC7CFB +:101A400000C03B96C0273E7A00C0968027064C27F0 +:101A5000037A0080968127064C27037A00819682BC +:101A600027064C27037A0082968327064C27037AA1 +:101A70000083CE0006A6AD27094A26046CA7A6B3AC +:101A8000A7AD0926F039B70800C60EBDFB1D843F7F +:101A900097BC3BCEFFFFDF00C64F088600A780083B +:101AA0005A26FA861397D839BDFAC086BF97BBC6A7 +:101AB000FFD782D783D7B1D7B2D7B3C6177EFADBA9 +:101AC00086BF97BAC6FFD780D781D7AED7AFD7B07A +:101AD000C6077EFADB7C00BD20040F7F00BD3736D1 +:101AE000C1102A19860D9703D702C608D7035C32A6 +:101AF000970296BD27FCD7035AD70333398615972B +:101B000003C40FD702C61020E33720E437861597A9 +:101B100003C40FD702C614200DC1102AEF37860D5B +:101B20009703D702C60C4F97039700D70396025F1F +:101B3000D7035AD70033390FBDFB1DC6097F00BD3F +:101B4000841F81102A084A81072B03BDFB090E3927 +:101B50000FBDFB0CC61120E517840F810D2A08A6C6 +:101B600094AB98A79420695A58C417DECDA60536C1 +:101B7000DED1AB94A794322B0C24026C98BDFADA18 +:101B80005CA694204B25F66A9820F26F8CDECDC1BE +:101B9000A02B020808080808C1C02B0817840F8171 +:101BA000082B0108860039DFCDDED16A9027DCC121 +:101BB000A02A10C41FA69436DECDA603BDFADA0E05 +:101BC000320839C1C02A91A69044A6942502A6984D +:101BD000C41FBDFADA0EDECDA6043926CADFCDE673 +:101BE000002A037EFC79C43FC1202A11A601BDFA58 +:101BF000DA0EE6000808582BE4A6000839C41F17BF +:101C0000840F81062A1648C4101B16A60197CEA67B +:101C10000297CDBDFCBA0EE6000820D880082B291B +:101C2000DDCF8403C1102B028B0316A601CE00006A +:101C30003AD6CFC1042A0BA6B4A7AEDECDD6D07E4D +:101C4000FBECA7B4DECD7EFBF24C27175CC1102A5B +:101C50000996BAA40197BA7EFBEE96BBA40197BB86 +:101C60007EFBEEC1102A0996BAAA0197BA7EFBEE56 +:101C700096BBAA0197BB7EFBEEC1F02A17A601EE28 +:101C8000023CDED1E78C4CA79032A79432A798DEB5 +:101C9000CD8600395C2712DED15C2610DCCDA79CF6 +:101CA000E7A0DECDEE0186003986FF39A69CE6A0CE +:101CB000DDCDDECD08080886003996CEBDFADA5CA7 +:101CC00096CDBDFADB5C3926037EFDBD81102B036A +:101CD0007EFD4181032A3597CB96D88A0116C4FE32 +:101CE000D7D8C60FBDFADB86057F00BDD6BD27FC61 +:101CF0004A26F6D6CB5858CEE9003A3CEE00DFC76C +:101D000038EE02DFC396BE840297BE3997CC96D8D0 +:101D10008A0216C4FDD7D8C60FBDFADB86057F0040 +:101D2000BDD6BD27FC4A26F6D6CC5858CEE9003A97 +:101D30003CEE00DFC938EE02DFC596BE840197BED7 +:101D4000391658CEE9343AEE0081202B1F81242722 +:101D50000A3C36BDFA93BDFAA8323897A4DF847FD7 +:101D600000807F008CC6B8DABAD7BA3981122A113E +:101D7000DF8897A67F00827F008E86789ABB97BB0C +:101D800039811327EB811627E781172A17DF8A97F6 +:101D9000A77F00837F008F86B89ABB97BB86B89ACF +:101DA000BA97BA39811727B3811927E1DF8697A53A +:101DB0007F00817F008D86789ABA97BA39CEF44B2E +:101DC0004F3C36BDFA93BDFAA8323897A4DF847F22 +:101DD00000807F008CC6B8DABAD7BAC6B8DABBD7EB +:101DE000BB3900FF00FF00FF00FF00FF00FF00FF06 +:101DF000FF00FF00FF00FF00FF00FF00FF00FF00EB +:101E0000001D4E0000FF00FF00FF00FF00FF00FF6D +:101E1000FF00FF00FF00FF00FF00FF00FF00FF00CA +:101E200000FF00FF00FF00FF00FF00FF00FF00FFBA +:101E3000FF00FF00FF00FF00FF00FF00FF00FF00AA +:101E400000FF00FF00FF00FF00FF00FF00FF00FF9A +:101E5000FF00FF00FF00FF00FF00FF00FF00FF008A +:101E600000FF00FF00FF00FF00FF00FF00FF00FF7A +:101E7000FF00FF00FF00FF00FF00FF00FF00FF006A +:101E800000FE00FF00FF00FF00FF00FF00FF00FF5B +:101E9000FF00FF00FF00FF00FF00FF00FF00FF004A +:101EA00000FF00FF00FF00FF00FF00FF00FE00FE3C +:101EB000FF00FF00FF00FF00FF00FF00FF00FF002A +:101EC00000FF00FF40FF00FF00FF00FF00FF00FFDA +:101ED000FF40FF00FF00FF00FF00BF00FF00FF000A +:101EE00000FF00FF00FF00FF00FF00FF00FF00FFFA +:101EF000FF00FF00FF00FF00FF00FF00FF000200E7 +:101F0000090A0C0D0F101213151618191B1C1E1F91 +:101F100023242627292A2C2D2F30323335363839E1 +:101F2000225A3830223B3B2020646574612069735B +:101F300020202D2D2D2D4820746F202D2D2D2D4846 +:101F4000454E444845583E3E20506172616D74656F +:101F500072206572726F72203C3C0D0044554D50EA +:101F6000204C4953542050414745203D20FF000D4F +:101F70000D00FF00FF00FE00FF00FF00FF00FF005C +:101F800000FF00FF00FF00FF00FF00FF00FF00FF59 +:101F9000FF00FF00FF00FF00FF00FF00FF00FF0049 +:101FA00000FF00FF00FF00FF00FF00FF00FF00FF39 +:101FB000FF00FF00FF00FF00FF00FF00FF00FF0029 +:101FC00000FF00FF00FF00FF00FF00FF00FF00FF19 +:101FD000FF00D1AE02004D00FF00FF000000FF0037 +:101FE000FEFF000000003500FEFF082EE4410C005B +:101FF000F900F900F900F900FA86F900F9D4F900BE +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4d-c.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4d-c.bin.hex new file mode 100644 index 00000000..3d9223bc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4d-c.bin.hex @@ -0,0 +1,1025 @@ +:100000002A12E7ED5B07E73A80E0E6012801EBED15 +:10001000523E0130023E003202E738102103E77EF3 +:1000200035A72008CD3F433E90CDFE0D2A12E73A7A +:100030001AE7A7C2AD403A00E0FE0328703A02E793 +:10004000FE0B2869303AFE09300BFE01205F3A06AC +:10005000E7FE0428583A00E7CB6F3A01E711290080 +:100060002827E6202047191100DBED52193801EB53 +:10007000E57CD60F2114E7BE202F347EC61F18263C +:100080003A00E7E620201118E7E6102020ED521193 +:100090000004ED52193001EBE53E10842114E7BE57 +:1000A0002007357EC6E0CD6557E12212E7AF29175C +:1000B000291729176C67118000ED5238111911802A +:1000C00006ED523009192200E92100011808ED530C +:1000D00000E9110001192215E7AF2A10E729176C72 +:1000E000672217E7C92A17E72207E83A06E78721B8 +:1000F000FF6506004F097E23666F3A01E7E640ED93 +:100100005B15E7CD200E3A00E0FE05C8FE07C8FEED +:10011000032A00E9201EEB2A02E93A01E10102006C +:10012000A72008ED42ED523007180809ED523003C0 +:10013000191801EB2202E93A3FE3A7CCC12EC9CD41 +:100140000812200C2A03E07CB52005211FE7CBCE46 +:10015000CD74412100E7CB66280ECB6E2805CB7607 +:10016000200EC9CB762805C9CB6E200423CBB6C997 +:1001700023CBF6C92119E735C29A413A80E0E61847 +:10018000FE081600380C16A92808FE101670280262 +:100190001638722101E77EEE80773A00E0FE03CA4E +:1001A000A046CD04472102E77EFE0DCAF645FE04B7 +:1001B000DA8942FE0BCADE44D20245FE08D206446A +:1001C0003A1FE7E601C251453A09E9577EFE06307B +:1001D00005CB52C28743CB5AC2B5432100E7CB4A75 +:1001E0002802CBAECB422802CBEE2103E7352039E3 +:1001F0003A04E73C284A3D20193C3204E72A0AE742 +:100200007E3203E7233A01E7A63201E7237E320676 +:10021000E7C92102E77EFE06010004380301030559 +:1002200071783206E7233605C93A04E73DC02A0A49 +:10023000E723CB4E2805CB6A200AC9CB622005C92B +:10024000AF3205E7AF3204E7573A02E7D604875FDB +:1002500087835F218D65197E3203E7233A01E7B674 +:100260003201E723CB4F7E23220AE72105E7280549 +:10027000CB4628013C3206E7343A84E8A7C03E0B5F +:100280003284E83E82CDFE0DC93A1FE7CB4FC2361D +:1002900046CB47C25A453A03E73DFAA0423203E74C +:1002A0003A09E9CB6FC26543CB67C25243CB5FC209 +:1002B000BD43CB57C28743CB4F204CCB4720202197 +:1002C00002E77EFE023600D24743FE003A05E728E9 +:1002D000023E053D3205E7C02A12E72207E7C92A98 +:1002E00012E71100DBED5228D62101E7CB6E2B205F +:1002F00008CB6E203CCBEE1826CBEE1802CBAE2AF4 +:1003000012E72207E718B82A12E7110004ED522875 +:10031000AE2101E7CB662B20E4CB6E2814CBAE3A9E +:1003200002E7FE0420053E053203E72A12E7220712 +:10033000E72102E73E01BE77380D3A03E7A7C03A4E +:1003400006E73CFE0438023E003206E73E05320373 +:10035000E7C97EFE033E0520023E07772A12E72208 +:1003600007E7C340423E013203E77EFE030E043E30 +:100370000620040E063E0B713206E73EFF3204E70C +:100380002A12E72207E7C97EFE022819FE03C836B3 +:10039000022A12E72207E73E023203E73A01E7E6C4 +:1003A000FC3201E7C93A03E7A7C03E033202E73E49 +:1003B000053206E7C93A01E7E6FC3201E72A12E70F +:1003C000ED5B07E73A00E7E6202001EBED523E083F +:1003D000110004ED5238013C3202E7D608870600CE +:1003E0004F1103E721A565097E23666FEDA0032267 +:1003F0000CE721A965097E23666FEDA0220EE7AF09 +:10040000127E3206E7C9211FE7CB46C24B463A1A95 +:10041000E7A7C256462A0CE75E2356E52A10E719DD +:100420002210E7E13A03E73D2006237E23220CE772 +:100430003203E72A0EE73A04E73D2009237EA72886 +:100440002D23220EE73204E74E3A05E7A728582A63 +:100450000AE73A05E73D202ECB7E2804CB792029F8 +:10046000237E3205E723A72821220AE7181B210053 +:10047000052202E73E043206E72100502210E72A57 +:1004800012E72207E7C93205E74E3A01E7CBCFCBA7 +:1004900071200ACB8FCBC7CB692002CB873201E713 +:1004A00079E61F3206E7C9CB7928F53A09E9E63043 +:1004B00028EE06F8CB67200906FB3E81CDFE0D181D +:1004C00003CD79423A02E7808716005F21AD6519B6 +:1004D0007E23666F7E3205E723220AE718AB3A1FB8 +:1004E000E7E60120752103E735C02102E73A06E778 +:1004F000FE053603C836003E003206E73E053203ED +:10050000E7C92103E73520192A0AE77EFEFF283BC9 +:100510003206E7237E233203E7220AE72100E7CBF6 +:10052000CEED5B0EE72A07E719220EE72A10E7ED6A +:10053000522210E72A12E7ED5B0CE73A00E7E620CB +:100540002804ED521801192212E7C93E0B3200E0CF +:10055000C97EFE063E05300C18073A06E7FE052860 +:1005600006CD8E463206E7CD912E2A12E72207E706 +:100570003A01E7E6FC3201E7211FE7CB863E08326D +:1005800003E72121E73A09E7A737FA9145963209AF +:10059000E72102E7360BD0CD0812C0343A20E7A796 +:1005A000F53E00CDFE0D3E87CDFE0DF121EC45114F +:1005B0000C0001120020232A12E7ED5BDAE2ED5273 +:1005C0002101E73807CBB62BCBAE1805CBF62BCBEA +:1005D000EE21F145113900011B00220AE7ED530C11 +:1005E000E7ED4307E7210000220EE7C9220A23189E +:1005F000FF24082516FF211FE7CB46280CCD912E9E +:10060000CD7546CD8E463206E7ED5B0EE721120032 +:1006100019220EE72A10E7ED52EB2100B019300540 +:10062000ED5310E7C9210050211FE7CB4E2814CB12 +:100630008ECD0812200D3E0C3202E73E053203E754 +:10064000C39F452102E73600C34743CD912ECD75A8 +:1006500046CD8E4618023E103206E73E0D3202E7C6 +:10066000218000220EE72A12E72207E73A01E7E697 +:10067000FC3201E7C92121E73A09E7A7FA84469647 +:100680000E0030020E023209E7211FE771C92A105D +:10069000E711001819ED5B22E7ED523E20D83CC966 +:1006A000CD0359FE04284D2103E735C03608210546 +:1006B000E735202436022B3528342A12E7110001B1 +:1006C0003A01E1A72803191802ED522212E72A1075 +:1006D000E7110006192210E73A06E73CFE20200247 +:1006E0003E1C3206E7E601C03E90CDFE0DC93E0C31 +:1006F0003200E0C93A06E7FE26C03E0C3200E0AF09 +:100700003240E3C92A02E1ED5B12E7CD0359FE0452 +:1007100028723A01E1FE01FD2100503806C0FD219A +:100720000052EBA7ED52D8E52A10E7110050ED5228 +:100730003850297CE1060CD60C380E110001ED5220 +:10074000D8110006FD190518EEFD2210E73E00CD78 +:10075000FE0D3E033200E0EB2A12E73A01E1A72842 +:1007600005ED52110001192212E72100E7CBCE3E20 +:100770001C3206E73E083203E73E013205E77832D5 +:1007800004E7F1C9ED52D83A02E7FE02D02141E375 +:10079000343E053246E33E053247E33E032101E79E +:1007A000CBB62BCBAECBCE3200E03E00CDFE0DF172 +:1007B0003E033206E7C9DD214CE3DDCB0066C421F0 +:1007C00048DD2140E3DD4E00CB61C8DD7E01FE0146 +:1007D00038392813111B00CDEA1B1120FF193841AD +:1007E0003E263206E7183ADD35072035DD36070BA1 +:1007F000DD3406DD7E06FE073827DD360707DD34EB +:1008000001DD360601DDCB0CE61816DD35072011BB +:10081000DD360708DD7E063CFE0528023E04DD7756 +:1008200006CDE21B1100EE19D821F073C37D1A3AF0 +:1008300000E0FE0620172122E035C0EB2A23E07EEF +:10084000FEFF283423127E232223E018273A06E9EC +:10085000E6042100E7CB46201B3A06E9E6074F3ABB +:100860001AE7A779200E3A08E92F472F070707A0B4 +:10087000E63847B13209E9C93E0B3200E0C9F3312D +:1008800000F0AF3201E03220E03221E03280E0FBC4 +:10089000CD0057CD4A06216D4BCD1C1121014F22B1 +:1008A0000EE73E9C3205E721A0302212E721005CD2 +:1008B0002210E72244E321A0342242E33E103240DA +:1008C000E33E053247E3DD2162E201500721000FDC +:1008D0000607DD360400DD36055CDD360707DD364C +:1008E0000E38DD700FDD7100DD7502DD740378FEFA +:1008F000072808FE043804DD36060AFE0530052107 +:1009000000310E10111000DD1910C73E053200E055 +:100910001152D10E0B21864BCD34113A20E0FE0846 +:1009200020F9CD1C113A20E0FE0B20F9CDAE492173 +:100930000E4CCD34113EE1CD0F57CDAE4921714C57 +:10094000CD1C11CDC0493A00E0FE0B20F6AF2100CE +:10095000003281E02282E03C3284E03222E0212534 +:10096000E07E360911554AA72805110A4B36003298 +:1009700080E0ED5323E0CD57113E01CD4904F33E15 +:10098000063200E02100002281E02282E02210E015 +:100990002212E0FBCDB80F3A00E0FE0B20F63E3805 +:1009A000CD0F57CD20563EE1CD0F57C37E48115095 +:1009B000D10604D5CD2A57E111800019EB10F4C9F6 +:1009C0001116D3010B193A80E8E630CA1F572A0ADC +:1009D000E97DAC201413CDF749CB5DC01197D37DD1 +:1009E0008727CD104A3E0218213E41CDF4496C11B3 +:1009F00096D33E42CD2C4ACB5D3E0120017DCD10E9 +:100A00004ACB5D3E0128037DE607E521394A1804FB +:100A1000E521344AF5C548CDF756C113CD1C11F177 +:100A2000D5FE013E53C41011D113E1C9CD10113EC2 +:100A30002DC31011434F494EFF504C41594552FFB1 +:100A400020202020202020202020202020202020A6 +:100A500020202020FF420201202802021018020359 +:100A60001018020210240202203802100402201E74 +:100A700002100802202C010420280208010210287C +:100A80000110081820080140020808082048020345 +:100A90000103020301030603050306030103020326 +:100AA0000103010302030103060305030603010317 +:100AB00002030103020301030603050306030118F1 +:100AC000020208480202101800021018000A010A67 +:100AD0000402101804022018040210100428010354 +:100AE0002020010320180103200800280208040325 +:100AF0002010103402040810202802050105020508 +:100B0000010506050505068000FF1C010400011013 +:100B100044011000280102201002200102085001A7 +:100B2000020836010A023000101020001B020208E1 +:100B30001010480202081020280402202004680136 +:100B40000A0004201002100028010102600438018C +:100B5000020810103000500120020208102020006E +:100B600018021008102010004001A004FFFE1DFD17 +:100B7000D8D640203139383420FEDA4952454D204C +:100B8000434F52502EFF41204B554E472D46552086 +:100B90004D41535445522CFE1A54484F4D4153FE7B +:100BA0000B20414E4420FDD2D1FE1A53494C5649E8 +:100BB00041FE0B20574552452053554444454E4C69 +:100BC000592041545441434B454420FD52D242598F +:100BD000205345564552414C20554E4B4E4F574E93 +:100BE00020475559532EFFFDD0D228FE1A53494CA9 +:100BF000564941FE0B20574153204B49444E41502A +:100C0000504544204259205448454D2E29FFFD535C +:100C1000D14C4154455220FE1A54484F4D4153FE89 +:100C20000B20464F554E442041204C4554544552CC +:100C300020FDD3D146524F4D20FE1A58FE0B2E20D8 +:100C4000FD53D2484520495320414E20494E48414A +:100C5000424954414E54204F462054484520FDD32C +:100C6000D2444556494C27532054454D504C452EAF +:100C7000FFFEDAFDDAD080818283848586878889C9 +:100C80008AFD1AD18B8C8D8E8F909192939495FDC5 +:100C900057D1969798999A9B9C9D9E9FA0A1A2A39D +:100CA000A4A5A4A6FD96D1A7A8A9AAABACADAEAF4A +:100CB000B0B1B2B3B4B5B6B7B3B8B9FDD6D1BABB5B +:100CC000BCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBEC +:100CD000CCCDFD15D2CECFD0D1D2D3D4D5D6D7D886 +:100CE000D906DADBDCDDDEDFE0E1FD55D2E2E3E46C +:100CF000E5E6E7E8E9EAEBECED06EEEFF0F106F207 +:100D0000F3F4F5FD95D2F6F7F8F9FAFB707172730A +:100D1000747506767778797A7B7C7D7EFF3E0B3220 +:100D200000E018302103E77EA72801352105E735CB +:100D3000204DED5B0EE71AA7FA1D4DCB7728042155 +:100D400020E034CB6F280DF521B7657E23220CE718 +:100D50003203E7F16FCB6528053E023203E7CB5D36 +:100D600028083A01E7EE403201E77DE6033221E050 +:100D7000131A3205E7131A3206E713ED530EE73A5A +:100D800021E021BC4DCD261F3A20E0DD2140E3DDEE +:100D90004E00FE0A280A3011A7200BCDD4471809AF +:100DA000113600CD7A1CCD21483A20E0DD2162E2E7 +:100DB000DD4E0021C24DCD261FC3722DFA4D124EBD +:100DC000DA4D244E254E3A4E714EAF4EA84EA14EEE +:100DD0009A4E934E8C4E7F4E244E2A0CE75E23563D +:100DE000E52A10E7192210E7E13A03E7A7202323B9 +:100DF0007E23220CE73203E71818CD1F432A12E79F +:100E000011E5FF3A01E7E6402003191802ED5222EE +:100E100012E72A12E7AF2917291729176C67CDD6D1 +:100E200040CDE540C9CDE71B2A64E21100E7193047 +:100E30003A2120E03421E54E18092169E2352028C5 +:100E40002A6EE27EFEFF282E3268E2237E3269E2BD +:100E5000237EA7280FE5212BE33601237723364095 +:100E600023361AE123226EE2CDE21BCB61C2721A55 +:100E7000C9CDDF4E18F52120E034CDDF1718E92168 +:100E8000A2E21110000603CBF61910FBDD21C2E22D +:100E9000CDD74EDD21B2E2CDD74EDD21A2E2CDD7B6 +:100EA0004EDD2182E2CDB34EDD2192E2CDB34EDDA7 +:100EB0002172E2DD4E0021D14EE5DD7E01FE0128EA +:100EC0001ECDA815DD350EC0DD7E0FDD7706C3DF34 +:100ED00017CB61C8C32F16DD4E00CDE71B18F2CB30 +:100EE00061C2AA1BC90B0B000C3852000B00090B86 +:100EF000000A3850002B00060A0000180006010006 +:100F0000FF411600013204011C05012D04220410CA +:100F1000020612021013020614020410102100012E +:100F20000B04220410020612021018020614020416 +:100F300010010806010807010806011304412104F5 +:100F4000410E040108080108090102084105084191 +:100F5000080541080B41080C01080B0108050108B0 +:100F60000D01080E01090D410805011C04091000BE +:100F700010270041E10301A903011604010806013D +:100F8000080701080601080401080801080901080A +:100F900008090804010806010807010806010804F9 +:100FA00001080501080B01080C01080B01080501E7 +:100FB00008040108080108090108080908050108D2 +:100FC0000B01080C01080B0108052204100206128F +:100FD0000210180206140204100908040108060190 +:100FE000080701080601A904FF3E23CDFE0DAF321C +:100FF00002E73220E03283E83E083200E0CD95502F +:101000000ED9213251CD1C11214751CD1C11215730 +:1010100051CD1C11216251CD1C11216D51CD1C11DE +:1010200021A750CD79503EF8CD3850CD915021FFB9 +:10103000500ED9CD79503EF8E5C5D53282E80ED9AB +:101040002183E87EA7201A360B2120E03535F253A4 +:101050005036085E1600216B50197E23666FCD1C3A +:10106000113A82E8A720D9D1C1E1C95D5168514D3B +:10107000512D513D515E2356237E233CC83C3C28D4 +:10108000F4D603CD1011FE2020EF3E0BCD385018C2 +:10109000E80608180206190E0B119FD1CD1A572128 +:1010A0001F0019EB10F6C9FD63D241204B554E4786 +:1010B0002D4655204D41535445522C54484F4D41D7 +:1010C0005320414E4420FDE3D253494C5649412020 +:1010D000454E4A4F5945442048415050494E45538A +:1010E0005320FD63D3414741494E20464F52204192 +:1010F000204C4954544C45205748494C452EFFFD3F +:10110000A6D2425554205448454952204841505097 +:1011100059204441595320FD28D3444944204E4F7F +:1011200054204C415354204C4F4E472EFFFD2ED49B +:101130000000FDACD46061FDECD46263FFFDACD473 +:101140000000FDECD40000FD6DD46465FFFDB0D45B +:101150000000FDF0D40000FD2ED46667FFFD6DD4C5 +:101160000000FD6FD46869FFFD6FD40000FDB0D4AE +:101170006A6BFDF0D46C6DFF2105E0CBFECD5711FD +:10118000CD0357115AD20E143A80E8E618280821E8 +:10119000D851CD1C111803CD25571119D33A13E995 +:1011A000F5FE0121E551280321F351CD1C11210247 +:1011B00052CD1C11F1CDFF103A04E9E60328C4E634 +:1011C000023202E006012801042113E97E9038B3BF +:1011D00027772105E0CBBEC9505553482020425502 +:1011E00054544F4EFF4F4E4C59203120504C4159D2 +:1011F0004552FF31204F52203220504C4159455228 +:1012000053FFFDE1D543524544495420FFCD5711CA +:10121000CD03573E20CDFE0D0E1B1153D10617CD29 +:10122000255721260019EB10F6213252CD3957C32C +:101230001C11FD55D1CCFD60D1CCFD67D1CCFD9208 +:10124000D3E3FDD1D3D9D800D0D1CDFD10D4E0DB8C +:10125000DA00D2D3CFFD50D4E207DCDDD4D5FD9047 +:10126000D4E407DEDFD6D7FDD0D4E6070707E5FDD7 +:1012700010D5E107E8E9E7FD50D50707EAEBFD9057 +:10128000D50707ECEDFDD0D507EFEEFD10D607F141 +:10129000FD50D6F0F3FD90D6F2FDD0D6F4FDD6D6B3 +:1012A000CEFDE4D6CEFEFDADD3E3FDE9D3CDD1D066 +:1012B00000D8D9FD29D4CFD3D200DADBE0FD6AD43F +:1012C000D5D4DDDC07E2FDAAD4D7D6DFDE07E4FD06 +:1012D000EBD4E5070707E6FD2BD5E7E9E807E1FDD5 +:1012E0006CD5EBEA0707FDACD5EDEC0707FDEDD5B6 +:1012F000EEEF07FD2ED6F107FD6ED6F3F0FDAFD66B +:10130000F2FDEFD6F4FFFE1BFD17D2594F555220C8 +:101310004C4F564520FE1F53494C564941FE1BFD7C +:1013200097D2495320494E20435553544F44592096 +:101330004E4F572EFD16D3494620594F5520574141 +:101340004E5420544F2053415645FD97D3594F5585 +:1013500052204445415220FE1F53494C56494127D3 +:1013600053FD19D4FE1F4C494645FE1B2C20434F0C +:101370004D4520544FFD97D4544845204445564987 +:101380004C27532054454D504C45FD17D541542012 +:101390004F4E43452EFD96D53520534F4E53204F8B +:1013A000462054484520444556494CFD17D65749D8 +:1013B0004C4C20454E5445525441494E20594F55AE +:1013C0002EFFCD00573E05CDFE0D3A80E0F53E04E0 +:1013D0003280E0CD4A062100542210E72244E32166 +:1013E00000272212E721001A2242E3F13280E02195 +:1013F0004754CD1C113E073200E03E70CD165421FB +:10140000AB54CD1C113E05CDFE0D3E70CD16543EA5 +:1014100005CDFE0D3EC03282E83A80E81195D20E2D +:10142000D9218554E6182003219854CD1C1121821E +:10143000E87EA720E4C92103E77EA7280135CD1F58 +:1014400043CD124EC3B647FE96FD18D5B7FD57D50E +:10145000AAABFD97D5ACADFDD7D5F6F5FCFD17D6FB +:10146000F8F9F7FD57D6FAFBFED618FD56D1FED790 +:101470004C4554275320545259204E455854204629 +:101480004C4F4F52FF48454C50204D452CFD15D335 +:1014900054484F4D415321FF202020202020202060 +:1014A000FD15D320202020202020FFFEDAFDA3D22E +:1014B00049274D20434F4D494E47FD23D3524947BD +:1014C000485420415741592CFDA5D353494C564906 +:1014D0004121FF20202020202020202020202047E4 +:1014E000414D45204F5645522020202020202020CD +:1014F000202020203E21CDFE0D1140D30EDBDD212A +:10150000D354CDC3563EE1CD0F573E38CD0F57AF24 +:101510003200E7321AE71183E02100EA06031A7766 +:10152000231B10FA060336202310FB0E141100EAC9 +:1015300006031ABE381C2006132310F6181478C6AA +:1015400003477EF51A77F112231310F60D20E113ED +:10155000131379FE14C8040528031310FDD5F53EB6 +:1015600024CDFE0DCD2056218A56CD1C11F111112E +:10157000DAFE0A3805D60A1121DA2E00CB3FCB1D40 +:101580006719D1060D36002310FB01FDF70906038C +:101590003E4177123E203226E0D51160D10E00CDBB +:1015A000FF10D13E383281E8CD0D573A04E9E60309 +:1015B00020693A06E9E60328253A83E8A720233E76 +:1015C0000B3283E83A06E9CB477E20093DFE4130E5 +:1015D000243E5C18203CFE5D381B3E411817AF329C +:1015E00083E83A09E9E630280E7EFE5C282D1323B5 +:1015F00005281A3E4177123A81E8A720AB3A26E047 +:10160000D6012720911160D10E00CDFF10CD2C56B0 +:101610003E1CCD0F573E00CDFE0DC93E201218EDE9 +:10162000CD5711CD0357217556CD1C112106EA1156 +:10163000A1D63E20F50ED8CDF7560E15137E23A762 +:10164000D5C40811D11306027E23CDFF1010F93E38 +:1016500030CD10110E001306037E23CD101110F9AA +:10166000F1D60127C8E52173FF19EBE1FE1020C474 +:101670001191D618BFFEDBFDD8D04245535420321D +:101680003020504C4159455253FFFD5AD1FE14545D +:10169000494D45FF202020202020202020202020F0 +:1016A00054494D45204F56455220202020202020CF +:1016B00020202020200ED8DD219456CDC3563E7028 +:1016C000C30F572A02E91104001929292929297C65 +:1016D000C61A1140D36F2603E5060BD57D2CE63FD5 +:1016E000B35FDD7E00DD23CD1011D110EE2140006F +:1016F00019EBE12520E2C9FE10D2FF1013C3081137 +:10170000CD5311AF3200E02100002202E93E01E595 +:101710002182E8777EA720FCE1C9C50621180ECDFD +:1017200025571196D3C5061A1803C50620AFCD104C +:101730001110FBC1C95E2356237E233CC83C200404 +:10174000CBE918F53C28EED603CBB9FE083802CB1E +:10175000F9CD101118E32A17E87CE5CD6557E1248F +:101760007CBD20F6C9FEE0D03202E8C620E63F216B +:1017700080D1B56F3A02E8CD00583A80E0E601200A +:1017800005CD5F581803CD3558CD03592005CDD36D +:10179000581803CDF158CDD457CD0359FE03C03AA4 +:1017A00002E801080021305AEDB9C0CB01CB013A63 +:1017B00080E0FE1021315A380321515A095E235628 +:1017C00023EB0E111A1377CBDC711A1140F819773D +:1017D000CBDC71C93A80E0E601217C5A20032188E4 +:1017E0005A3A02E8010C00EDB9C021895A09093AB8 +:1017F00002E8EBC620E63F2180D3B56F0E8B18C4FC +:1018000011E761FEDAD21859D6D5380CE521DB593B +:101810005F1600197EE11804E601C6520E5CCD0980 +:10182000593A02E8E607E521E1594F097EE177CB15 +:10183000DC365E19C93A02E8FEDDD0FE0D380AFE3C +:10184000CF382A11835FC3C558473A15E9FE01789E +:1018500011485D287011185E306B118E5C18663A65 +:1018600002E8FEDDD0FE133836FED33019E61FF550 +:10187000E5874F21E959097E234EE177CBDC7119C9 +:10188000F1116A5B183F4711CB61CD0359280D3A1E +:1018900015E9FE01117661300311F5607818265FB5 +:1018A000CD0359FE047B11B360281A11A95ECD182F +:1018B00059CD03593A02E82005FE03300BC9FE0258 +:1018C0003006115465CD18593605CBDC3601114070 +:1018D000F819C90E4F3A02E8FEC03010FE20380752 +:1018E000E61F110C651831110264182C11F86218EA +:1018F000273A02E811A763FEDC301DE601C6240E7C +:101900004218063A80E0E607C906031140F877CB93 +:10191000DC7119C60210F7C9EBC506004F0909C1F1 +:101920007E23666FEB06011A133C28133C2817C66A +:10193000FE77CBDC713E40856F3EF88C6718E8057A +:10194000C8D1131318E11A13FEFC380C2802D50471 +:10195000EB7E23666FEB18CF4F18CCFE15FDD8D267 +:1019600053454C4543542047414D4520464C4F4F2D +:1019700052FD9AD3484F555345204E554D4245523E +:101980002DFD1AD4464C4F4F52204E554D424552D4 +:101990002DFD98D450554E43482D5550204B49436A +:1019A0004B2D444F574EFFFE15FD11D031502DFDEC +:1019B00026D032502DFE00FD1BD0544F502DFE146A +:1019C000FDAAD054494D45FE94FD91D098999A9B1B +:1019D0009CFE95FD11D19D9E9FA0FF5859606168A6 +:1019E00069676E5E5E5E5E5F66F10806010601066F +:1019F00001060114411541EE08EF08060106011821 +:101A000041194106010601EE08EF0806010601141E +:101A100041154106010601EE08EF0818411941067B +:101A200001060106010601F00822233C3D5A5B70C5 +:101A30007102D37C7E03D3017F1CD47C7E1DD40134 +:101A40007FFAD57C7EFBD5017F10D37C7E11D3013C +:101A50007F02D37C7E03D3017F1CD47C7E1DD40106 +:101A60007F3AD47C7E3BD4017F10D37C7E11D3019E +:101A70007F1F203F405F607F809FA0BFC0BFC09F8F +:101A8000A07F805F603F401F200406057D7E969505 +:101A900097BCBEBDBFC0C2C1C3C4C6C5C7C8CAC942 +:101AA000CBFDFBD4FE4122FD3AD580FE911F94FD73 +:101AB00079D526FE11000000FDB8D5FE9127282912 +:101AC000FE110000FDF8D5FE91302AFE1103FE91B3 +:101AD0002021FD38D6312C2DFE1103FE9123FD79F6 +:101AE000D62E2F22FE1103FDBAD6FE912B2425FF00 +:101AF000FDFCD4FE4122FD3BD58080FD79D580FDE3 +:101B0000B8D5808080FDF8D58080808080FD38D673 +:101B10008686868686FD77D6FE9136373232323318 +:101B2000FDB6D638393434343435FFFE0106FEFDB7 +:101B3000395B808086FFFE0106FE01FEFD525BFEE2 +:101B400041228080FFFE09FEFD535BFEFC535BFEDD +:101B50000106F900000000000000FFFE010303037E +:101B6000030303030303030303FFAA5BB35BC45B29 +:101B7000CE5BC45BD55BE85BFB5B105C255C3A5CD1 +:101B80004F5C625CCE5BC45BCE5BC45BCE5BC45B14 +:101B9000D55BE85BFB5B105C255C3A5C4F5C625C90 +:101BA000CE5BC45BCE5B755C835CFEFD5B5BF2F47D +:101BB000F604FFFEFD395BFE01F7F3F5FE41847C80 +:101BC000FFFE0106FEFD2E5B7C84FFFE0106FEFD8E +:101BD0002E5B847CFFFE4116808080808080801E8A +:101BE0008080808014847CFFFE4117881C88888850 +:101BF00088881F88888888157C84FFFE01F9FE414B +:101C000080890002040610228080808086847CFF08 +:101C1000FE01F9FE418089010305071122808080C1 +:101C200080867C84FFFE01F9FE418089080A0C0E43 +:101C300012228080808086847CFFFE01F9FE418034 +:101C400089090B0D0F132280808080867C84FFFE23 +:101C5000411A231D232323232320232323231884F2 +:101C60007CFFFE411B80808080808080218080807E +:101C700080197C84FFFEFD395BFE01F8FAFCFE4111 +:101C80007C84FFFEFD5B5BFBFDFE417B7CFFA85C73 +:101C9000C25CDD5CF35C085D205D335D3C5D0A5E2B +:101CA000CB5BC15BCB5BC15BFE03EFFE09000000B9 +:101CB00000FE923A3C3E8EFE09FEFD545BCCFE01D6 +:101CC000EDFFFE09FEFD555BFE923B3D464446FEA0 +:101CD0000900000000FE9249FE934B4DFFFE4115A6 +:101CE0001788888888FE933F40424745484A4C4EB3 +:101CF0005C5EFFFE0106F9FEFD555BFE934143521B +:101D00005456585A865D5FFFFE0106F9FEFD545B8E +:101D1000FE9351535557595BFE0106FE93635FFFD7 +:101D2000FEFD4F5BFE934F50FE1300000006FE9336 +:101D3000635FFFFEFD2B5BFE93635FFFFE08EEFE1D +:101D4000FD2E5BFE936062FF625D7D5D985DB25D1E +:101D5000CA5DD65DE25DF75D0A5ECB5BC15BCB5BC6 +:101D6000C15BFE03EFFE0900000000FE92878A8C33 +:101D70008EFE09FEFD555B00CCFE01EDFFFE09FE67 +:101D8000FD555BFE92888B8D8F92FE09000000004E +:101D9000CDFE01EDFE9274FFFE41151788888888FC +:101DA00088FE9389909365FE4188888815FE937319 +:101DB00075FFFE0106F9FEFD545BFE939164FE4142 +:101DC00080808080FE936E7072FFFEFD365B80FE29 +:101DD000936D6F715FFFFEFD365BFE93686A6C6307 +:101DE0005FFFFEFD4F5BFE412280FE9366696BFE46 +:101DF0001302FE93635FFFFE08EEFEFD395BFE9368 +:101E000067FE418086FE936062FFFE08EFFEFD2EB6 +:101E10005BFE9361FE4184FF325E4C5E745E7D5ECC +:101E20007D5E7D5E865E8F5E9B5ECB5BC15BCB5BCA +:101E3000C15BFE03EFFE0900000000FE92763C79D4 +:101E4000FE09FEFD545B00CCFE01EDFFFE09FEFD28 +:101E5000555BFE927778FE09FEFD535BCDFE927ACC +:101E60007CFFFE411517888888888888881F8888A5 +:101E7000888815FFFEFD625EFE927B34FFFEFD2B1F +:101E80005BFE913234FFFEFD2B5BFE918082FFFEF4 +:101E900008EEFEFD2E5BFE918183FFFE08EFFEFD46 +:101EA0002E5BFE917FFE4184FFCF5EE25EF45E0C0E +:101EB0005F215F395F535F6D5F8B5FA75FC35FDF3C +:101EC0005FFD5F18602B604760656083609B60FE0C +:101ED00003EFFE09000000C4C6C8C8C8C9CB000093 +:101EE00000FFFE0900000000C5C7C7C7C7CA000041 +:101EF0000000CDFFFE09C3FE4117888888888888C6 +:101F0000881F8888888815FE078082FFFE06A7A89C +:101F1000FEFD535BFE41228080808086FE07818328 +:101F2000FFFE458AFE0604A9AAABABABABABBDABCB +:101F3000ABABABC0FE0AD6D4FFFE06A1A2FE058C59 +:101F4000FE06ACADAEAEAEAEBEAEAEAEAEC1FE4AFD +:101F50007D7EFFFE069EA3A6FE058FFE0604AFB0A3 +:101F6000B1B1BFB1B1B1B1C2FE4A7F83FFFE08EC8F +:101F7000FE06A4949699FE058CFE06B2B300FE41BF +:101F800022808080FE048486888AFFFE08EFFE0699 +:101F9000A595979A93FE058EFE0604B4B500000041 +:101FA000FE048587898BFFFE0106F900FE06989BDB +:101FB000949699FE058CFE06B6B7ABABABC0FE0A95 +:101FC000D4D6FFFE0106F90000FE069C95979A9371 +:101FD000FE058EFE0604B8B9AEC1FE0AD5D7FFFED7 +:101FE0000106F900000000FE06989B949DA0FE05E6 +:101FF0008CFE06BABBC2FE0AD8FE417CFFFE01067B +:10200000F9FEFD555BFE069C959E9A93FE058EFE9D +:102010000604BCFE0AD303FFFEFD4F5BFE069F9B3A +:10202000949699FE058CFE0AD1D2FFFE0106F9FEB8 +:102030000BD9DCDCDCDCDEFE418022FE069C9597C1 +:102040009A90FE058D07FFFE08EEFE01F9FE0BDA01 +:1020500007DBDDDFE9FE4180228080FE06989B9150 +:10206000FE0ACFD0FFFE08EFFE01F9FE0BDAE0E238 +:10207000E4E6E9FE418022808080FE069C92FE0A12 +:10208000CE03FFFE0106F9FE0BDAE1E3E5E7E9FE28 +:102090004180228080808086847CFFFE0106F9FEDC +:1020A0000BEBE8E8E8E8EAFE418022808080808649 +:1020B0007C84FF156109610261F660E560D96037D3 +:1020C00063856390633063376330633763306337AE +:1020D000638563906330633763FEFD365B8080FE0B +:1020E00096B4B6B5FFFEFD4F5BFE412280FE96B76B +:1020F000ABADAFB1B3FFFEFD365BFE96AAACAEB0A2 +:10210000B2FFFEFD625E8484FFFEFD455BFE9249E8 +:10211000FE01ED04FFFE03EFFEFD455BCCFE01ED8D +:10212000FF3D6159617B619B61BB61D561EB6103DF +:10213000621B623762536269627D629162FE08EEE1 +:10214000FE01F9FE0BD9DCDCDCDCDE04FE41228082 +:1021500080808086FE4A4E81FFFE08EFFE01F9FE78 +:102160000BDAFE4B878D90FE0B07E904FE412280BF +:10217000808080FE464BFE4C9BA9FFFE0106F9FEC7 +:102180000BDAFE4B878E91FE0B07E904FE4122809D +:1021900080FE464CFE4C839FA787FFFE0106F9FE9A +:1021A0000BDAFE4B8C8F92FE0B07E904FE41228076 +:1021B000FE464BFE4C9B9C49A887FFFE0106F9FE9C +:1021C0000BEBE8E8E8E8EA04FE464DFE4C839FA0EE +:1021D000A1858787FFFE0106F9FEFD545BFE464B95 +:1021E000FE4C9BA5A69A9A424344FFFE0106F900C5 +:1021F000000000FE464CFE4C839FA3A43E3E3E459D +:102200004887FFFE0106F9000000FE464BFE4C9B8E +:102210009CA2403D3D3D3D464787FFFE08EEFE0146 +:10222000F900FE464CFE4C839FA0A180FE41228017 +:10223000808080868484FFFE08EFFE01F9FE464B15 +:10224000FE4C9B9C9D9E8080FE41228080808086EB +:102250008484FFFE464AFE4C8398999A9A9A9A9AE9 +:10226000419A9A9A9A424344FFFE4C9B9596973E18 +:102270003E3E3E3E3F3E3E3E3E454887FFFE4C933F +:10228000943D3D3D3D3D3D3D403D3D3D3D464787C7 +:10229000FFFE4C3CFEFD2E5B8484FF3063376330D1 +:1022A00063AF62B862C462D062E562F6620963FE3F +:1022B000FD2B5B7CFE911CFFFE08EEFEFD2E5BFEFF +:1022C00091181EFFFE08EFFEFD2E5BFE911416FF17 +:1022D000FEFD4F5BFE412280FE911AFE418080860A +:1022E000FE911416FFFEFD4F5BFE4122FE91191B6D +:1022F0001D10121416FFFEFD4F5BFE91080A0CFE26 +:102300001103FE9111131517FFFEFD4F5BFE91099E +:102310000B0D0FFE110303FE91070EFF30633763B1 +:1023200030633E63476353635F635F635F63686308 +:10233000FEFD2B5B847CFFFEFD2B5B7C84FFFEFDA2 +:102340002B5B7CFE9138FFFE08EEFEFD2E5BFE91BE +:102350003639FFFE08EFFEFD2E5BFE913734FFFE9F +:10236000FD2B5BFE913234FFFEFD2B5BFE9133357E +:10237000FF3063376330633763856390633063375F +:102380006330633763FE08EEFEFD2E5BFEFC3463B4 +:10239000FE08EFFEFD2E5BFEFC3B63A763B063B956 +:1023A00063C263CF63E963FE5C696B6DFE5E8BFFA6 +:1023B000FE5C7072FE5E7884FFFE5C7173FE5E7977 +:1023C00084FFFE5C7476FE5D4F8787FEFCD863FE5B +:1023D0005C7577FE5D50FE5F878787878787878775 +:1023E0008787878787878787FFFE5C6F7AFE5D51C7 +:1023F000FE5F8787878787373839393A3B878787F2 +:1024000087FF42644E645D64BC64C0646464686455 +:10241000D864E86474646C647064D864E864D864F4 +:10242000E864D864DC64E064E464E864D864DC6490 +:10243000E064E464E864D864E864C864CC64D064AC +:10244000D464FE4DFAFCFE70AFB1B3B5B7FFFE4DDC +:10245000FDFE8D85FE8E84FE50B2B4B6FFFE8E006A +:10246000010203FFF4F6D8FFF5F780FFF0F2D8FF82 +:10247000F1F380FFF8D5D7FFD864E864B864BC6492 +:10248000C064C464D864E864C864CC64D064D464B0 +:10249000D864E864D864E864D864E864D864DC6428 +:1024A000E064E464E864D864DC64E064E464E86400 +:1024B000EC64F264F9640265C6C280FFC7C280FFA3 +:1024C000CED5D7FFCFD6D8FFC8CA80FFC9CBCDFFA6 +:1024D000D0D2D4FFD1D380FFAAC280FFB8C2C4FF3C +:1024E000C1C3C5FFAAC0CCFFB8C280FFBABCFE50B2 +:1024F000BEFFFE50B9BBBDBFFFFE50ACAEB0B2B424 +:10250000B6FFFE50ABADAFB1B3B5B7FF4C65D86405 +:10251000E8645065E064E464E864D864DC64E06422 +:10252000E464E864D864E864D864E864D864DC648B +:10253000E064E464E864D864DC64E064E464E8646F +:10254000D864E864C864CC64D064D464E3E580FFF4 +:10255000E4E6C4FF465E5865FE01EDFE417CFF6780 +:10256000656D6576658165FE42242630FFFE5D87D8 +:10257000FE422A2C2EFFFE5F878735FE422B2D2F31 +:10258000FFFE5F878736FE4231323334FF05010795 +:102590000BFE060502090BFD0805010C0BFE0B05E1 +:1025A000020E0BFD0DB765B765D565E065EB65F10E +:1025B000650000F765FB65020000020003051901D4 +:1025C00005B300050000054DFF05E7FE0200FD0212 +:1025D0000000FF00000410061210930614041000FF +:1025E000041106121093061404100005550188000A +:1025F0000005560188000005B8000005B900009BE1 +:1026000066BF66D966FD661D6745679368BD684706 +:10261000686B681F687769A1692B694F6903699FB7 +:1026200067C969B967D967FF676B686B686B68E5ED +:1026300068E568000000006367746781679267F36C +:1026400069076A276A3C6A516A666A6674AC66CC36 +:1026500066EA660A6732675667A468D26858688077 +:102660006834688869B6693C6964691869AC67DA76 +:1026700069C667E6670C68806880688068F668F6F7 +:102680006800000000BE66BE66BE66BE66006A14D4 +:102690006ABE66BE66BE66BE66BE66271002802D36 +:1026A000100282232C008428300102FF3D4AA0FF43 +:1026B00020FF0F3F400040FF0F38A0000000FF291F +:1026C0001002862830010328400004FF424BC0FF5F +:1026D00040FF0F42600060FFFF2610028E2D1002A7 +:1026E00090222C0092282F010BFF3049C0FF40FFA1 +:1026F0000F3EA000C0FF0F28000000FFFF273F0093 +:1027000004281002942830010DFF404BC0FF20FF29 +:102710000F41400060FF0F1CA0000000FF2A3B009B +:102720002A221002882A10028A22300105292D014E +:1027300006FF0F454000E0FF0F3AE000A0FF0F2624 +:10274000000040FFFF2510028C2E100208282001F7 +:1027500009272D000AFF0F35A0FF20FF0F2C800056 +:10276000A0FFFF1F1D029A2412029C25320117258B +:10277000420016FF2A10029E2A3001192840001C30 +:10278000FF201D02A0251202A22532011B244200B7 +:102790001AFF2A1002A42A30011D2840001CFF2A1B +:1027A0003C0021281002A6282E011FFF0F46000022 +:1027B00080FF0F37A0000000FF29490021281002E8 +:1027C000A8282B01AAFF4650E0FF60FF39466000B1 +:1027D000A0FF14396000C0FFFF281702AC293101A7 +:1027E0002228410021FF364AC0FF40FF2B3FC00096 +:1027F000E0FF1E2C200040FF1A1E40000000FF28B2 +:10280000490021281002A8292B01AEFF4853C0FF20 +:1028100040FF2F486000A0FF142F4000C0FFFF259D +:102820001002B02A1002B21C3801242A3001252CD3 +:10283000400026FF0F4B4001C0FF0F29800100FF21 +:102840000F2F8001A0FFFF251002B02A1002B2292D +:1028500030012829400027FF0F4B4000C0FF0F2AFE +:10286000800000FF3240A0002000FF251002B02AA7 +:102870001002B21C3801292830012B2840002AFF01 +:102880000F4A4000A0FF0F29800000FF293F800071 +:10289000C0FFFF1D2402B42D1002B82D3001B62D4B +:1028A00040002CFF274B800000000F27C000400095 +:1028B000303FE000A0002F37000040FFFF0E38023D +:1028C0002D1E300232281002C42E3001342E40005A +:1028D00033FF374AA0002000353F200120FF133886 +:1028E0004000A0FFFF27460027281002C628280125 +:1028F000CA183702C8FF1351000080FF314780001B +:102900000000FF25100296351002981E2801112E96 +:1029100023010F2D33000EFF0F3A6000E0FF0F314F +:10292000C00000000F22400020FFFF251002963556 +:102930001002982A2301132A330012FF0F3A600075 +:10294000E0FF0F32C00020000F22200020FFFF25F3 +:10295000100296351002981F28011028230115280F +:10296000330014FF0F3A4000C0FF0F30C000E0FFFB +:102970000F22E0FF00FFFF201002CC282000CE3005 +:1029800010023730200136FF1D38800000000F2C68 +:102990004001A0001F2B000040FF0F1F40FFC0FEA2 +:1029A000FF0F10023B1F1002D4261A00D83010026D +:1029B000D62D23013CFF1A382000A0FF192D00015D +:1029C000E0FE0F1FC001E000FF18390021121B02BA +:1029D0002E221002C21B2B0131FF3942C0FD40FDE7 +:1029E0002A39A0FEC0FD1F2F40FF40FE0F20A0FF90 +:1029F00000FFFF2940003E2930013F29100242FF1D +:102A00000F4B2000A0FFFF253F00072B2F01352C87 +:102A1000100244FF4048A0FF20FF343F6000C0FF89 +:102A20000F3AC0002000FF2A40003D2030412B30EB +:102A300030413E2010024630100248FF2633413F0D +:102A4000363180EA1C14024A2C13024C3C19004E09 +:102A5000FF2E4080EB1E3081EC2E3081ED1E1002E7 +:102A6000502E100252FF273681EE372C80EF1710C0 +:102A700002542716015637100158FF976AA46AB10D +:102A80006AA46AD86ACB6ABE6AE56AF26AFF6A22F9 +:102A90006B196B0C6B196B2D404500271044802D72 +:102AA000104440FF2D404500293044012910444284 +:102AB000FF2D4045002810448431104444FF273C3A +:102AC0004502212044462C104448FF2428444A282B +:102AD0002B454C2810444EFF2C0C4598252044567D +:102AE00025104404FF190D45881F1A44502F0D442A +:102AF0008CFF1C0D45902C174452350D4454FF2873 +:102B00003F45002610449436304403FF2940850099 +:102B1000261044F6361084DAFF2A4085002A104435 +:102B2000FCFF2A408500261044FA3610C4F2FF51FB +:102B30006B5E6B6B6B5E6B856B786B0000926B9B57 +:102B40006BA46BB16BB16BBA6BC36BCC6BD56BDE2B +:102B50006B283091102820911128109282FF283084 +:102B600091102820911228109284FF27309110286C +:102B700020911328109286FF282091882810928A8D +:102B80002B2E470CFF28209192281092942C0C4752 +:102B90000CFF221891962D109298FF1E12918C2EE8 +:102BA00012928EFF272D9110291092902C209114B3 +:102BB000FF2A18D1F42A10D2F6FF2C1ED1F82A0AC7 +:102BC000D2FAFF290DD1FC261292FBFF270DD1FE70 +:102BD000201692FCFF270DD1FC241892FBFF280A37 +:102BE000D1FE211192FCFF016C0E6C176C0E6C2D46 +:102BF0006C3A6C246C476C546C776C846C616C6AB6 +:102C00006C253006BE251006C02A104658FF253018 +:102C100006BA251006BCFF253006D0251006D22B9B +:102C200010465AFF271046A02D3E4705FF20294693 +:102C300006260C46AC300C4707FF201046D02A2D44 +:102C4000470C301046D4FF1725465C270E46B03798 +:102C500010465EFF170A46B4270A46B8370A466090 +:102C6000FF271046BC27484708FF261046C03637C6 +:102C700046093610460AFF1730460B1710466227E2 +:102C80001046C4FF1F1046C82F1046CCFFC56CD697 +:102C90006CE76CD66C266D506D936D506D266D0D86 +:102CA0006D3B6D7E6D3B6D0D6DF86C3B6D656D3BE9 +:102CB0006DF86CDA6DC56DAC6D0C6EF36D256E360E +:102CC0006E436E586E2010486430104966243049B7 +:102CD000683430490DFF2610480E2620496A2640E8 +:102CE000490F36284910FF2010496C2730496E30B3 +:102CF00010487038294910FF21104872311048746B +:102D0000182D4976282049D8184C4811FF254049EC +:102D10000F0830497818364912211048723010488F +:102D200074282B497AFF2010482530104926142892 +:102D300009FC1A2049272A20497CFF293C490F1DFC +:102D400010487E2D1008DA1D404913252A09DCFFA2 +:102D50002B2B490F1C1048142C1049151C2C4916FC +:102D6000282009DEFF2740490F231008E03310090F +:102D7000E2253009E43538491745384918FF1C0861 +:102D800008E61C2849192C1049DC3C30491A4B3004 +:102D9000491BFF2A2B490F1F10481C2F1009E8263A +:102DA00020491D3E20491E4E20491FFF183809EAC0 +:102DB00018304820251008EC282809EE2848492119 +:102DC0002B3C470CFF0F4809F01738492227100801 +:102DD000F2272E09F42D2B4707FF123F09F616386C +:102DE0004923263009F828284924251008FA2C0EF2 +:102DF000470CFF2010482530104926142809FC1ADA +:102E0000204927282009FE2D2B470CFF201048259C +:102E100030104926142809FC1A2049272A20096065 +:102E2000330D470CFF261009623018096420300862 +:102E3000662C380968FF1728096A1F1849E02F1007 +:102E400049E4FF2011086C1F314928224149292FEC +:102E500015096E2F35492AFF1722096A1F1249E00A +:102E60002F0A49E4FF7D6E926EA36E926EB86ECD0E +:102E70006E7D6EEA6EFF6E7D6E186F316F28488E24 +:102E80002029308F222B388E0121108F2431108F72 +:102E900026FF28488E282830902A28108F2C1810BA +:102EA0008F02FF28488E2E28388E032B308F042166 +:102EB000108F3031108F32FF2C408E3426308E36FA +:102EC00028308F051D108F382D108F3AFF2B508E14 +:102ED0000623308E3C32408E073F408E0829308FCB +:102EE0000A1B108F3E2B108F40FF29408E4224304A +:102EF0008E4427308F091C108F462C108F48FF29D5 +:102F0000408E4A23308E4C21108F4E29208F50390D +:102F1000308F0B49318F0CFF2B458E522333905449 +:102F20002C2E9056252D8F0D2C0E8F583C158F5A18 +:102F3000FF2B3C8E5C291D8F5E1B1C4EA6390C4F4F +:102F4000AA471C8F802B4C8F0F292D8E0EFF686F88 +:102F50007D6F926F7D6FFB6F0C70EE6F1D70327026 +:102F6000C06FD96F926FAB6F1D4883E828408715FB +:102F70002110539C3120939A3110949CFF1D48835B +:102F8000E8284087151F30939E2F2093A027109488 +:102F9000A2FF1D4883E828408715213093A43120E3 +:102FA00093A6261094A836109416FF293F8715245F +:102FB00030931833319317241094AA341094ACFF33 +:102FC000132883E92A37871520299319301993AEDE +:102FD000251094B03510941AFF2A378715242893AA +:102FE0001B341893B2231094B4331094B6FF282BDB +:102FF00093B82828931C281094BAFF283E871D24D4 +:103000001E93BC281094BE310B931EFF2B3B871FD1 +:10301000212893C0312B93C2241094C4FF263587F6 +:10302000E0201993C6302993E12B1394C83B1094E8 +:10303000CAFF182A87E2201493CC2C3193CE2C138C +:1030400094D03C1094D2FFBB70AA709570AA70D037 +:1030500070E97002711B71BB71D071E5718B717079 +:1030600071797182710D7512751B752D758271796B +:103070007170718B719471A171AE71347149715617 +:103080007163710D7512751B752D756371567149DC +:10309000713471BE662638D6001E20D7202E20D768 +:1030A000221E10D6022E10D603FF2638D6001D2071 +:1030B000D7242D20D7262110D601FF2638D6001E72 +:1030C00020D7202E20D7221E10D6282E10D62AFF39 +:1030D0002C38D6002420D72C2B30D62E3420D605E1 +:1030E0001C10D60A2C10D607FF2E38D6002320D766 +:1030F000302F20D7323F30D6091C10D60A2C10D6DC +:1031000007FF2E38D6002320D7302F20D7343F2872 +:10311000D6091C10D60A2C10D607FF2E38D600234D +:1031200020D7302F20D7363F20D60C1C10D60A2CA3 +:1031300010D607FF2838D6002220D7382E32D614D2 +:103140002E22D7152610D613FF1E28D83A2E28D89F +:103150003C2410D83EFF1E28D8402E28D8422410E8 +:10316000D844FF1E28D8462E28D8482410D84AFF15 +:103170002230D8162210D84CFF2230D8172210D86F +:103180004EFF2230D8182210D850FF2220D75222CA +:1031900010D619FF2531D61A2220D7522210D6195F +:1031A000FF2734D6002220D7522210D619FF283804 +:1031B000D6002220D7522210D619FF2738D61B233B +:1031C00020D7543320D71C2910D61D2A27D81EFFFC +:1031D0002330D61F1C18D7562915D7583910D65A60 +:1031E0003928D660FF1E27D6612016D75C3013D74A +:1031F0005E3E10D6802E30D662FF38724D725A7203 +:103200004D726B7280726B72C372D872C3726B72C2 +:103210006B729572AA7295726B72ED72FE72137375 +:10322000FE72ED72467357732C7339738A73687329 +:1032300075739B73AC73BD732647D9682430D982EC +:103240002C27D9692010DA843010DA86FF2648D975 +:10325000042628D9882610DA8AFF2647D90426278B +:10326000D98C1D10DA8E2D10DA90FF2545D9062451 +:1032700026D9923430D9942110DA963110DA98FF99 +:103280002547D9062428D99A2410DA9E3410DA0B5F +:10329000343AD99CFF2347D9042227D9A03236D902 +:1032A000671C10DAA22C1EDAA4FF1D48D9061C28C0 +:1032B000D9A62C28D9A83A3CDA6A4A3CDA6B1F1006 +:1032C000DAAAFF2546D9042426D9AC3438D96C258E +:1032D00010DAAE3510DA6DFF2847D9042627D9B0A9 +:1032E0003638D96E2110DAB23110DAB4FF1C20D989 +:1032F000B62C20D9B81C10DA6F2C10DA70FF2A30E7 +:10330000D971201CD9BA301AD9BC1F10DA72331007 +:10331000DA73FF252CD9741F10D9BE2F10D9C01D08 +:1033200010DA753D10DA764D10DA6DFF2950D96844 +:103330002530D9C22510DAC4FF2844D9772224D9F0 +:10334000C62414DAC8FF2630D9CA2D33D9CC1F10B1 +:10335000DACE2F10DAD0FF2631D9D22528D9781D20 +:1033600010DA792710DAD4FF2930D9D61927D9D81D +:103370002610DADAFF2333D9DC2323D97A2710DAAF +:10338000DE3710DA7C333EDA7BFF2B30D9E02028A1 +:10339000D9E22510DAE4310CDA7DFF2829D9E623B9 +:1033A00023D9E82E10DAEA3E10DA7EFF1D1BD9EC95 +:1033B0001810D97F2810D9EE3811DAF0FF243A9985 +:1033C0006622289968260F9A6A322F9A6E422F9A9F +:1033D00070FFDC73E173E673EB73DC732810D66364 +:1033E000FF2810D664FF2810D665FF2810D666FF88 +:1033F00000740D741A740D74277438744D747F74CE +:10340000283B1B39272B1C3A28109C60FF283C1BAB +:1034100039282C9CFA28109C62FF283C9BFD292C03 +:103420009CFE27109C64FF1F321B2F1E1A1C5E255A +:103430000E9CDC1E261D20FF23321B381F1A9CDE2B +:10344000250E1C5A232E9DF91C231D1EFF23321B03 +:10345000381F1A9CDE250E1C5A17201D0C27201D14 +:1034600018292B9DFFFF23381B2325301C301E10ED +:103470009C7425408076253081782B10827AFF2835 +:10348000049D6CFF2B0A470CFF2B0A4B0CFFCC74DE +:10349000D174D674DB74CC74E074E974F274FF7484 +:1034A000047561756A7573750D7512751B752075D8 +:1034B00043754C75437578757D75327520752D751E +:1034C000827587758C75917596759B7528100A7035 +:1034D000FF28104D35FF28104B3AFF28104B3CFFBA +:1034E00020104A2C30104A2DFF20104A2E30104A4E +:1034F0002FFF28104B3220104A3030104A31FF285D +:10350000104B32FF21104B3331104B34FF28100C7D +:1035100072FF28100C7428304C36FF28104CECFF3A +:1035200026174CF0362F0C76280F4CE8FF280F4C4E +:10353000E8FF26174CF0362F0C7621350C78313504 +:103540000C7AFF26174CF0362F0C76FF26174CF01E +:10355000362F0C76383F4C37483F4C38583F4C3963 +:10356000FF20080C7830080C7AFF20080C7C30080B +:103570000C7EFF28080C40FF2B0D4B3BFF2B0D4B07 +:103580003DFF2C0ED80DFF2C0ED80EFF2C0DD80FA2 +:10359000FF2C0DD810FF2810D811FF2810D812FFCB +:1035A00024090101FFB175B675BB75B675B175BB60 +:1035B00075281083E3FF281083E4FF281083E5FFBC +:1035C000D475D975DE75E375E875ED75F2756175BD +:1035D0006A757375281095D4FF281095E6FF28109A +:1035E00095D6FF281095D8FF280395D6FF28039578 +:1035F000D8FF281095E7FF117616761B76207625E2 +:10360000762A762F7634763D7646764F76587661F2 +:103610007628108CF0FF28108CF1FF27108CF2FF19 +:1036200028108CF3FF28108CF4FF28108CF5FF284D +:10363000108CF6FF24108CF82A108CF7FF25108CC4 +:10364000F02A108CF7FF25108CF12A108CF7FF253B +:10365000108CF32A108CF7FF21108CF82C108CF7AB +:10366000FF28108CF8FF3EFF3200E0FBCD0D57CD58 +:103670005711F3DD21000006003E005F160D0E100D +:103680002100E077233C152003160D3C10F50D209A +:10369000F27B2100E0160D0E10BEC2F677233C151A +:1036A0002003160D3C10F20D20EF7B3CFE1420CBC6 +:1036B0003E005F160D0E102100D077233C1520032D +:1036C000160D3C10F50D20F27B2100D0160D0E10CA +:1036D000BEC2BD77233C152003160D3C10F20D2011 +:1036E000EF7B3CFE1420CBCD57112100E01101E00F +:1036F00001FF0F3600EDB02125EB2203EB3EFF3238 +:1037000000E0110000CD107CED4B6A00AFED4228C7 +:10371000013CCD107CED4B6C00ED422802CBCFF587 +:10372000470E1411D5D13E31CDF77B1155D23E3223 +:10373000CDF77BDDE5E17DB41155D12189782003FA +:10374000219178CD1C11FB3E70CD0F5778A7C4E8AE +:103750007BCD571121F77CCD1C11AF3282E83A1D89 +:10376000E8321DE80E00CDD77B3A06E9E603218258 +:10377000E82825477EA7202236100E143A1DE8F5CA +:10378000CDD77BF1CB4820083DF261773E0518D1BB +:103790003CFE0638CCAF18C936003A04E9CB4728BE +:1037A000C8CD5711215177E53A1DE821B177C326DD +:1037B0001F99783E79BA798B7A107B787B08D9117A +:1037C00000E02155D1012000EDB01120E02155D9B4 +:1037D000012000EDB0DD21DB771821D92100E011B7 +:1037E00055D1012000EDB02120E01155D901200074 +:1037F000EDB0D9C3D476DD219D7608D92155D111FC +:10380000897806071A13FD210C78187310F63E3AD2 +:10381000FD2116781869D97CD9FD211F781842D965 +:103820007DD9FD21287818393E3AFD213078184F8E +:10383000085F087BFD213A78182723D97ED9FD211E +:103840004478181DDB00CB47CAE776CB4F20F50143 +:1038500000100B79B020FBDB00CB4F28FAD908DD34 +:10386000E95F0F0F0F0FE60FC69027CE402777CBEB +:10387000DC3614CB9C237BE60FC69027CE402777FF +:10388000CBDC3614CB9C23FDE952414D20204E4722 +:10389000FF52414D20204F4BFF21307CCD1C11CDDC +:1038A000C17BCD1C111199D1DB03CDB27B11D9D1D4 +:1038B000DB04CDB27BDB04CB4F21967C2003219E21 +:1038C0007C115DD3CD1C11DB03E60121A67C200316 +:1038D00021B07C119ED3CD1C11DB03E60221BA7C02 +:1038E000200321BF7C11DED3CD1C11CD6F05111F2C +:1038F000D4CD0811CD8F0541119AD22A0AE97DA7AE +:103900002828BCF53E2028023E41CD1011CDF749B4 +:10391000F111D0D2281DE5218C7CCD1C11133E4223 +:10392000CD1011E16CCDF749180C21C47CCD1C11D0 +:1039300011D0D2CD1A57DB00CB4FC2A578C90114E4 +:10394000031155D4C521D87CCD1C11E51378CD08C1 +:1039500011CDC17B212C0019EBE1CD1C1121B6FE4C +:1039600019EBC110DF21EC7CCD1C112199992203A8 +:10397000E03E383282E82103E07EC6012777237ECD +:10398000CE0027771162D5CDFD10CDFD10DB0011E3 +:10399000A2D2CDB27BDB0111A2D3CDB27BDB02116F +:1039A000A2D4CDB27B3A82E8A728C63A04E9CB4F2D +:1039B00028DB3A06E9CB4F28D4C9AF3282E8F5219B +:1039C000617A5F160019193A04E9CB4720F97E3273 +:1039D00083E8321FE8233E00CDFE0D7ECDFE0D2193 +:1039E000567DCD1C11F1321EE80E00CDCE7B3A067D +:1039F000E9E6032182E8282E477EA720F13E00CD8C +:103A0000FE0DAF321FE836100E143A1EE8F5CDCE8B +:103A10007BF1CB4820083DF2E6793E1418C83CFE05 +:103A20001538C3AF18C036003A1FE8A72812473A26 +:103A300083E8A728113A04E9E60328B2CB4F201BFC +:103A40003A1EE8C3BE7978FEBA3283E83E01321FDF +:103A5000E8309B3A1EE83CFE1538E83E00CDFE0DEE +:103A6000C92D012D022D03B4059E042D062D072D11 +:103A7000102D112D122D132D142D152D16BA20FFDA +:103A800024BA22FF23BA212D172D18CD531121005E +:103A9000E036FE3A06E9E603280ACB4F280436FD55 +:103AA000180236FE3A04E9CB4F28E836FFC90E006B +:103AB0003C203221100111E0003E00CDDC7A2110C3 +:103AC000011120013E40CDDC7A21D00011E0003E02 +:103AD00080CDDC7A21D0001120013EC02207E821F0 +:103AE000DE75C3200E21C0002207E811D000219B03 +:103AF00066CD0C7B11F000216A6CCD0C7B1110019E +:103B0000217D6ECD0C7B113001216B72AFC3200E75 +:103B100011D0D10E143E41061ACDC77B1110D23EF2 +:103B200030060ACDC77BCDE87B3E04110400CD5B97 +:103B300011CDE87B1E01CD5B11CDE87B1E02CD5B74 +:103B400011CDE87B0100021E06CD5E110100041EAE +:103B500000CD65110100021E07CD65112110D40EA4 +:103B6000083E000604772310FC3CE60720F51120F0 +:103B700000190D20ECC3E87B0E001110D03E0B2E77 +:103B800020E50610CD10113DCD10113C10F621207E +:103B90000019EBFE0B3E0B20023E09E12D20E22135 +:103BA000DFD3360C23360D211FD4360E23360FC338 +:103BB000E87B2F6F0608AFCB0DCB17CD081110F6A1 +:103BC000C913133E310608CD10113C10FAC9FE0688 +:103BD00038013CA728013C6F2600292929292929D9 +:103BE0001150D919712371C93A04E9CB4F28F93A18 +:103BF00004E9CB4F20F9C9F5212C7CCD1C11F1CD66 +:103C000010111321297CCB08380321267CC31C11F9 +:103C1000F50100402100001A856F3E008C67130BF0 +:103C200079B020F3F1C94F4BFF4E47FF524F4DFF84 +:103C3000FE14FD50D144495020535720FFFD94D12C +:103C400044535731FDD4D144535732FDA3D1312EC3 +:103C50004F4EFDE3D1302E4F4646FD50D3424F44E8 +:103C6000592054595045FD90D3444946464943553F +:103C70004C5459FDD0D34445435245415345FD1062 +:103C8000D44649474854455253FD90D2434F494E7C +:103C9000204D4F4445FF5441424C452020FF555094 +:103CA0005249474854FF454153592020202020FFC6 +:103CB000444946464943554C54FF534C4F57FF46E1 +:103CC000415354FF202020202046524545202020EB +:103CD000504C4159202020FF494E54455246414303 +:103CE00045FF524541442044415441FFFD57D554BE +:103CF000494D4D494E47FFFE14FD50D1303120440F +:103D0000495020535749544348FD90D130322049FF +:103D10002F4F20504F5254FDD0D1303320534F55A8 +:103D20004E44FD10D2303420434841524143544563 +:103D300052FD50D2303520434F4C4F52FD90D2307F +:103D4000362043524F53532048415443482050415A +:103D5000545445524EFFFE14FD15D1534F554E4459 +:103D6000FD50D130312059454C4C204F4620504C0D +:103D700041594552284A554D502D4B49434B5329E3 +:103D8000FD93D143524544495420414444494E4750 +:103D900020534F554E44FDD0D130322059454C4C24 +:103DA000204F4620504C415945522850554E4348CB +:103DB00045532C4B49434B5329FD10D230332047F8 +:103DC000524F414E204F4620504C41594552204FB2 +:103DD0005220454E454D59FD50D23034204C41556E +:103DE0004748494E4720564F494345204F462045B6 +:103DF0004E454D4945532D31FD90D23035204C4133 +:103E0000554748494E4720564F494345204F462085 +:103E1000454E454D4945532D32FDD0D230362042D6 +:103E200055525354494E47204F4620504150455219 +:103E30002042414C4CFD13D34255525354494E47F6 +:103E4000204F4620445241474F4E27532045474775 +:103E5000FD50D330372053485249454B204F462020 +:103E6000504C41594552FD90D3303820504C415967 +:103E700045522052554E4E494E47FDD0D330392041 +:103E800048495454494E4720534F554E44FD10D491 +:103E90003130205357495348494E4720534F554ED0 +:103EA00044FD50D43131204255525354494E47209D +:103EB0004F4620534E414B4520504F54FD90D43136 +:103EC0003220424954494E4720534F554E44FDD06D +:103ED000D4313320534F554E44204F46204B4E494A +:103EE0005645532C424F4F4D4552414E4753FD10BE +:103EF000D5313420434F554E54494E4720504F49F9 +:103F00004E5453FD50D531352047414D4520535433 +:103F1000415254FD90D531362042474DFDD0D53128 +:103F20003720434F4D504C4554494F4E204F46206B +:103F300045414348205041545445524EFD10D6311E +:103F40003820434F4D504C4554494F4E204F46204A +:103F500047414D45FD50D631392047414D45204F11 +:103F6000564552FD90D632302054494D452055508B +:103F7000205741524E494E47FDD0D6323120414460 +:103F8000444954494F4E414C2046494748544552B4 +:103F9000FD16D74D5553494320454E44FFC7C7C76B +:103FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:103FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:103FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:103FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C771 +:103FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C761 +:103FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C751 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4e-c.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4e-c.bin.hex new file mode 100644 index 00000000..c97273bc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/a-4e-c.bin.hex @@ -0,0 +1,1025 @@ +:10000000F3ED563100F02100E01101E001FF0F3661 +:1000100000EDB02125EB2203EBDB04CB7FCA667633 +:10002000CD8F0521CC051106EA017800EDB02A3FFD +:10003000067D6C67184CC7C708D92A03EB1120C08E +:1000400001C000EDB03A02E93200A03A03E9320003 +:10005000B0FDE5DDE5C38D00C7C7C7C7C7C7C7C7C4 +:10006000C7C7C7C7C7C7ED4563AD9C5272CF8741AD +:100070005437A7439151A74391519FB8E5D6855670 +:1000800035232280E92117E934FBC37E483A00E09A +:10009000A7FAF801DB04CB67201D2105E0CB7E2009 +:1000A00016CB46DB002009E602200CCBC6C3F001CC +:1000B000E601C2F001CB86DB04CB5F20102104E90E +:1000C000CB4E2809210EE835F2F00136083A00E05F +:1000D000FE063E472802ED5F2110E08677238677F3 +:1000E0002114E0347EE60316005F3A00E0217E0032 +:1000F000FE062813216E003A80E0E638FE20380222 +:100100003E180F4F060009197E2115E086772386D9 +:1001100077238677CD050DCD480DCD2F48CDE50D44 +:100120003A01E0A720073A13E9A7C21702CDF80366 +:100130003A00E0FE0BD2DD013E183200EB2125EB48 +:100140002203EB2201EB3A00E0875F160021560103 +:10015000195E2356EBE9C401C401BE0168016801C0 +:10016000B4016801B901BE01CD3F41CD2C403A80B8 +:10017000E0E607FE042808CDE540CDB31C1806CD07 +:10018000B31CCDE540CDB6473A00E1A7280EFE0AE4 +:100190003805CDDE371808CD95351803CDAC12CD16 +:1001A000C72F3A3FE3A7C4C12ECDC039CD722DCDA4 +:1001B000062F1810CD244D180BCD36541806CD003F +:1001C00040CDE5403A00EBA7281347FD2A01EBAFED +:1001D000110800FD7704FD7705FD1910F63A00E0DF +:1001E000FE063E372802ED5F2112E08677238677F0 +:1001F000DDE1FDE1D908FBC9F53E183200EB212510 +:10020000EB2203EB2201EBF13CC4AE7ACDF803CD37 +:10021000050DCDE50D18AD3100F03E013201E0AF26 +:100220003200E0FBCD78513EFF3206E02180E01144 +:1002300081E0011F003600EDB0DB03E60120083E3F +:10024000083280E03290E0CD6F053284E03294E0F5 +:100250002105E0CBBEAF3200E0DB04E6022110E96D +:10026000280B3A02E0E6012804CBC61802CB86210F +:1002700085E0CB4E200FCBCECD0D523EE1CD0F57BA +:100280003E70CD0F57CD5711AF3207E03208E0CDA9 +:1002900049043E043200E03E24CDFE0DDB04CB6772 +:1002A000280CCB6F20082104E9CB46C29C033A00FE +:1002B000E0FE0BCA3A03FE0CCAC002CDB80F18DC30 +:1002C0003E00CDFE0D3E22CDFE0D3EE1CD82053E2F +:1002D00038CD82053E01CD82052109E77EA7FAEAE5 +:1002E0000235CD972FCD5F0518EA110000D53E03EA +:1002F000CD8205D12A03E07DB428227BC601275F89 +:10030000ED521930025D547D93276F7C9A27672246 +:1003100003E0D5CD9A2F3E16CDFE0D18D13E38CD37 +:1003200082053A80E0E601C4C2533A80E0E607FE67 +:1003300004CCE94FCD3204CD50023E2DCD0F572ACB +:1003400003E07DB4CCB5562184E03528103A07E0AF +:10035000A7280DCDFE0D3EA9CD0F571803CDF4549F +:100360002102E0CB4E281B3A94E0A728157EEE012F +:100370007706102180E01190E04E1AEB71122313E2 +:1003800010F73A84E0A7C250022110E9CB86AF32C1 +:1003900006E03A13E9A7C21702C37E482105E0CB65 +:1003A000FE3E00CDFE0DAF3200E0CD571121000022 +:1003B0002202E9CD0D57215B59CD1C110E1411A756 +:1003C000D33A80E0E6F80F0F0FCD5B051127D4CDAF +:1003D00056053A06E9E6A020F92104E9CB4EC250C1 +:1003E000022106E9CB7E2006CB6E200718EBCD1B41 +:1003F0000418C9CD320418C42180E835237EA7280B +:100400000135237EA7280135237EA7280135237EC9 +:10041000A7280135237EA7280135C92180E0357E34 +:10042000E607FE07C07EE6F8FEF820023E28F60446 +:1004300077C92180E0347EE607FE05C07EE6F8C677 +:1004400008FE3020023E2877C9321CE83E01320007 +:10045000E0CD44063A80E0E601212100200321E0BE +:10046000BFE52217E8CD9B0EAF3215E9CD56573ABE +:100470001CE8A7CCE5043E023200E03E27CD0F5732 +:100480002107002217E82115E93421A15ACDBF0424 +:100490003E0BCD0F572115E93421F05ACDBF043A58 +:1004A0001CE8A7213F05CC1C113E54CD0F57E1227B +:1004B00017E8CD56572100002214E02216E0C93A71 +:1004C00080E0E607C8E601CA1C11CD56573A15E987 +:1004D000FE02C021D904C31C11FD67D6FE92817FA4 +:1004E000FDA7D683FF21FD04CD1C113A02E0E601F1 +:1004F0003CCD0811CD1C11CD5605C31C11FD67D391 +:10050000FEDB202020202020202020202020202052 +:1005100020202020FDA7D320FF2D504C41594552CB +:1005200020FF2D464C4F4F5220FDE7D320202020A6 +:100530002020202020202020202020202020FFFEFE +:10054000DBFD2CD420524541445920FD6CD42020A1 +:100550002020202020FF3A80E0E6073CC308113A23 +:1005600083E8A7C03E033283E83E16CDFE0DC9DB0B +:10057000032FE60C0F0FC602FE04D03CFE03C83E5C +:1005800002C93282E8CDE30F3A82E8A720F7C9DB3F +:10059000032F1F1F1F1F47210AE9DB04CB57201120 +:1005A000783CE6037723781F1FE603FE02DEF5772B +:1005B000C9783CE60FFE07380AFE093804FE0E38FB +:1005C000023E01CB5F28013C772377C90014955484 +:1005D000412E0015384141410015724E4E4900161A +:1005E00052414141001821494B4F00198541492E84 +:1005F000002007414E4F0021014D2E4B002551494F +:100600004941002570484154002635412E540028A8 +:100610001159452E00302153414900355049484D6C +:10062000003810414E490039185453490039754279 +:100630004148004010542E4B004315535549004883 +:10064000524E2E412180002202E92125EB1126EB9A +:1006500001BF003600EDB0CD4D07CDBE062180E3D1 +:100660001181E30131013600EDB0CD6608218A0821 +:10067000097E3200E1A7281121B0081160E30118BA +:1006800000CDB2063E013280E32120E51121E501D3 +:1006900043013600EDB0CD6608219E08097EA7C84B +:1006A0003200E12120091100E5011100CDB206C39D +:1006B000533D87C54F09C17E23666FEDB0C9210048 +:1006C000E71101E70123003600EDB03A80E0E607CC +:1006D000874F218008097E23666F2203E03E3F3268 +:1006E00009E72100502210E73A80E0E6013201E1FB +:1006F000282B2100E736202336402140CE2202E17C +:100700002100092212E72100102207E72100CD2253 +:1007100006E121C0022204E13E01C349073A80E01C +:10072000E60721E010FE0420032100102202E1214F +:1007300060D52212E72100D02207E72140DC220603 +:10074000E121C0112204E13EDF3214E7C92100E2B9 +:100750001101E20152013600EDB03A80E0E607FEF9 +:1007600004202E2100062242E3218007224EE321AD +:1007700000502244E32250E33E043246E33E073277 +:1007800052E33E40324CE33E503240E33E053247B6 +:10079000E3DD21D8E2DD360A3FDD360707210050D0 +:1007A00022DCE23A80E0E601210015110031280642 +:1007B0002100CC1100B022DAE2ED53D3E2CD66087D +:1007C000C5CB21C5C521B009097E23666F119CE107 +:1007D000011D00EDB0218009C1097E23666FB42898 +:1007E00005010800EDB0C121E00B091196E1EDA073 +:1007F000EDA0AF12C121180B097E32C1E121080C16 +:10080000097E3299E1329AE1329BE1FD210000211B +:100810002E0C09095E2356FD19DD210AE1111C0C7D +:100820000623CD4508FD2310F921FFE12208E1CD83 +:1008300066085059212C0B19EB2929291911F0E1CF +:100840000E09EDB0C9FD7E00F50F0F0F0FCD510859 +:10085000F1E60F8726006F197EDD7700237EDD77B6 +:1008600001DD23DD23C93A80E06FE607677DE638C6 +:10087000FE2038023E180F6F0F0F85844F0600C907 +:1008800000200020002000200020000100020000C5 +:100890000300020000040002000005000200000046 +:1008A000000A000000000B000000000C0000000027 +:1008B0000D00BC081C09D408EC08040900007000F5 +:1008C0000D54A8435A7066CC0000360016A9B60134 +:1008D0004B017C00000070000D54A82D435A66CCDB +:1008E0000000360016A9B6014B017C000000700024 +:1008F0000D54A81C384366CC0000360016A9B6017A +:100900004B017C00000070000D54A81C2D3866CCF3 +:100910000000360016A9B6014B017C00000000362D +:100920000030490000006100A400360016005200AB +:1009300049002D003C094D095E096F092000320075 +:100940002800330023006B077F3F3F387032003BA5 +:10095000003F00500038006B07B23F66387032002D +:100960003B003F005000380038047F66661C383B6F +:100970000044004A005F0044003804B2667F1C381F +:100980000000A8090000000000000000A809000005 +:10099000000000000000A8090000000000000000A6 +:1009A000A809000000000000B3FF07002E00D700D8 +:1009B000D809E109EF09FD090B0A280A310A3F0AA3 +:1009C0004D0A5B0A780A810A8F0A9D0AAB0AC80A97 +:1009D000D10ADF0AED0AFB0A99E5669954A82116A7 +:1009E0000B667FCC0354A82D5A7054A81C2D38CC0C +:1009F000E5A8FC54A82D5A70000000001654A899D0 +:100A0000B77FFC70A9A954543870A966CC54A85477 +:100A1000A80B162154A805080B038000997F667F58 +:100A2000CC664C7F997F7F4C7FBF336654A81F15DF +:100A30000B4C66B20354A82D5A7054A81C2D38B222 +:100A4000E5A8FC54A821385A000000001054A87FE3 +:100A5000B27FFC70A9A954541C387066CC54A854B9 +:100A6000A80B162154A805080B038000997F7F7FEF +:100A7000CC7F667F997F7F7F4CB2336654A81C136E +:100A80000B337FCC0354A82D5A7054A8101C2D99F9 +:100A9000E57FFC54A8162D43000000000B54A86607 +:100AA000B27FFC70A9A954541C387066CC54A85469 +:100AB000A80B162154A805080B038000CCCC7FCCD2 +:100AC000CC7F4C7FCCCCCC4C4C99336654A81913BA +:100AD0000B197FE50354A82D5A7054A8101C2D7FC4 +:100AE000CC54FC54A8162D43000000000B54A8540D +:100AF000A87FFC70A9A954541C1C7066CC54A8543F +:100B0000A80B162154A805080B038000E5CC7FCC68 +:100B1000E5997F7FE5CCCC7F000026334C00192679 +:100B2000334C0019334C6600194C667F043F5AB4AD +:100B3000E11A014900043F5AB4E11A014900045581 +:100B40005AB4E11A01490004555AB4E11A014900A6 +:100B500004665AB4E11A01490004665AB4E1E1009E +:100B6000520004665AB4E1E100520004665AB4E14E +:100B7000E100520004665AB4E1E100520004665AF2 +:100B8000B4E1E1005200047F5AB4E1A9005B000423 +:100B90007F5AB4E1A9005B00047F5AB4E1A9005B6D +:100BA00000047F5AB4E1A9005B00047F5AB4E1A9B4 +:100BB000005B00047F5AB4E1A9005B00047F5AB4D3 +:100BC000E1A9005B00047F5AB4E1A9005B00047F47 +:100BD0005AB4E1A9005B00047F5AB4E1A9005B00AC +:100BE00003030403050305030503050305030503C8 +:100BF00005030503050305030503050405040503B3 +:100C000005030503050505050D0C0B0A090B0A096B +:100C100008080A0909080709080807078000001CD6 +:100C20000038007000E1041C0438047004E1560C24 +:100C3000790C9C0CBF0CE20C560C790C9C0CBF0C74 +:100C4000E20C560C790C9C0CBF0CE20C560C790C87 +:100C50009C0CBF0CE20C0000000000000000000033 +:100C600000030004424343424423344343433334A8 +:100C700034434333433443300000610322003032B5 +:100C8000402723002312733203272073327103029B +:100C900052327521630000000000000000000000D7 +:100CA00000000000000000000034451317177321F6 +:100CB0003727326337343243223242232320000164 +:100CC0002303250070163106310025135423000735 +:100CD0001263616127125672162152000000000053 +:100CE00000000000000000000000000000060003FB +:100CF00031212317636132257253273215310621C2 +:100D000073161350003A10E9E601DB012802DB02FA +:100D10002A06E9CD3B0D2206E92108E917CB161773 +:100D200017CB161717CB16DB00E60F47DB02E610D2 +:100D3000B02A04E9CD3B0D2204E9C92F47AC4FA5E9 +:100D40006F792FA4B56F60C90F0F0F473A11E917DC +:100D50004FE649FE49200A2114E9347EE60FCCD63D +:100D60000D210CE9110AE9CDB10D210EE913CDB128 +:100D70000D2111E9712B4E2B0604CDA20D210DE999 +:100D80000602CDA20D793210E9D301DB042FA9E6CA +:100D90000128013C3216E93A0AE9A7C03E023213A3 +:100DA000E9C935F0360C2B7EA7C878A94FA0C0350D +:100DB000C9CB08CB1179E649FE01C0343A06E0A759 +:100DC0003E01CCFE0D1AFE012810FE08300A211249 +:100DD000E934BEC036003E09D6082113E986273023 +:100DE000023E9977C92117E97EA7C835237ED30033 +:100DF000F680D300231118E9010F00EDB0C9E5D545 +:100E000057CB7A28083A06E0A72812CBBA2117E96F +:100E10007EFE10300834235F7A16001977D1E1C9BD +:100E2000E54F3A00EB47FD2A01EBCB712120002072 +:100E30000321D0FF192205E8E10504C87E3C2852B1 +:100E40003A05E8CB71200B86FD77063A06E8CE001E +:100E5000180996FD77063A06E8DE00FD7707233A83 +:100E600016E95F7E935F3A07E883FD77023A08E868 +:100E7000CE00FD7703237EE61FFD77007E0707E6A1 +:100E800003B1FD7705237EFD7704110800FD1923CA +:100E900010AAFD2201EB783200EBC921A759CD1C25 +:100EA00011CDA510CDAB10CDCF10CDD910CDE61002 +:100EB0003A1CE8A7CC1A0F3E033281E83A09E73220 +:100EC0001AE83AE2E23219E8CD780FCD6B0F11A0A3 +:100ED000D00194053EA1CD10113C1310F93A80E0E9 +:100EE000E6073C673EA611E0D0CD0A0F3C1120D1A9 +:100EF000CD0A0F11E1D00E943EA8CD010F1121D1E2 +:100F00003C0604CD10111310FAC96C06050E94CDE1 +:100F10001011132D20010C10F6C93A80E0E6F80FED +:100F20000F0F47DB03E60120010578A7C8FE033851 +:100F3000023E03470E801129D1CD3F0F10FBC93E61 +:100F4000B8CD4F0FD5213E0019EBCD4F0FD1C9CDF4 +:100F500010113CCD10113CC91129D1AF4FCD630FF9 +:100F60001169D10606CD101110FBC91116D1211936 +:100F7000E83AE2E20E15180B1196D0211AE83A0968 +:100F8000E70E1496FA8F0FFE03380A3E031806FE8A +:100F9000FD30023EFD86770608D6086F3805FAADAB +:100FA0000F3E8AC678FE7720083E0218042EFF3EC8 +:100FB00003CD10117D10E2C93A00E0FE0328242A77 +:100FC00003E011CDFC19381B2108E07EA720063E66 +:100FD00000CDFE0D342185E87EA7200736383E97E8 +:100FE000CDFE0D211BE83A80E8BE284E77CD780F64 +:100FF000CD6B0F21E0D03A80E0E607875F1600193D +:101000003A80E8CBDC3A80E8E6183E9528013D7747 +:1010100011400019773A1CE8A7203F47DB03E6019F +:101020003A80E02002D608FE20380F3A80E8E61821 +:101030002805CD1A0F1803CD580F3A85E0E6012098 +:10104000192A81E0110050ED52380F2185E0CBC6FE +:101050002B343E98CDFE0DCDE6103A00E0FE03287D +:101060001FFE0C281B2181E87EA7201436032A03CB +:10107000E07DD601276F7CDE00276738032203E07E +:10108000CDD9103A83E04FED5B81E03A82E92A80C6 +:10109000E9913806200FED52300B793282E9ED5399 +:1010A00080E9CDCF10AF1183E018053E011193E028 +:1010B0002102E0AEEBE6011129D020031114D00E7D +:1010C000157E2BCD0811CDFD10CDFD10AF183921A7 +:1010D00082E9111FD00E0018E80E142104E011EA75 +:1010E000D0CDFD1018173A84E01162D16F06070EBB +:1010F000033EFE2D2001AFCD101110F7C97E2BF558 +:101100000F0F0F0FCD0811F1E60FC69027CE402725 +:10111000EB77CBDC71CB9C23EBC94E237E233CC801 +:101120003C28F73C2807D603CD101118EF5E235654 +:1011300018E94E237E233CC83C28F73C2810D603F0 +:10114000CD1011FE2020ED3E0BCD0F5718E65E238B +:101150005618E01601180216DB1E200100082100B7 +:10116000D0FD2100D873FD720023FD230B78B12040 +:10117000F4C9AF29176C67D511100019D12215E8F1 +:10118000192213E83A06E7875F1600214D66195EBB +:101190002356FD210000FD192A17E7FD7E00FEFF02 +:1011A000C85F160019ED5B13E8ED5230542A17E7BB +:1011B000FD5E01160019ED5B15E8ED5238432A1269 +:1011C000E73A01E7E640280AFD5E04FD5605ED52C8 +:1011D0001807FD5E02FD560319A7ED5B0FE8ED52FF +:1011E000381F2A12E7A7280AFD5E02FD5603ED52BA +:1011F0001807FD5E04FD560519A7ED5B11E8ED52D9 +:10120000D8110600FD1918903A00E0FE06C8DB046C +:101210002FCB77C9BE380523BE38012323237EC9CF +:101220002205E83A06E7216E1216005F197EA7C86C +:10123000FD21901287875FFD192A10E7FD5E02FDF0 +:10124000560319E5FD5E00FD56012A12E73A01E753 +:10125000E6402803191802ED52DD5E02DD5603ED6B +:1012600052ED5B05E83804ED52180119D1C90000B0 +:101270000000000000040001010003000202000061 +:10128000000000010101050500060000000000004B +:101290000000000000028018000280138003000498 +:1012A00080038018A00200182003800F2100E7CBE4 +:1012B0004E20122100E2CDCB12CDFE12CD8F13CDE8 +:1012C000EE13CD3F14CD3D15C923237EA7C835C2EB +:1012D000C912234E0600EB210AE10909CBBE2A08F8 +:1012E000E1EDA8EDA82208E1233600EBC3CA120005 +:1012F00000000101010202020303030404043A0195 +:10130000E7E6800EE428020E1C3A13E781FEE0D0E7 +:101310003209E85FE60F3DF821EF1206004F094E53 +:101320007BE6F00F0F5F0F0F83814FDD210AE1DDB8 +:1013300009DD09DDCB007EC02A08E11113E2ED5280 +:10134000C8473A01E7E6802135E2119AE1280421F5 +:1013500015E2137EA7C0237EFE0AD0E5D534235FB5 +:10136000878316005F1972233A09E87723DD7E0030 +:1013700077DD7E012A08E1237723712208E1DDCBA6 +:1013800000FEE1D135C03A99E177EB2B3601C92156 +:1013900036E27EA7C8471600237EC63677237E8AAC +:1013A000D2A4133D77232310F02A37E27CFEBE300F +:1013B0000B01001209ED4B12E7ED42D82155E27EF8 +:1013C000FE0AD0345F2156E2193A39E2F65877EB3B +:1013D0002136E23528107E1137E2213AE24F87812B +:1013E0004F0600EDB0C92B7EA7C8EBCBC6C92116AE +:1013F000E27EA7C8471600237ED63677237E9AD290 +:1014000003143C77232310F02A17E27CFE22380CC9 +:10141000010012ED42ED4B12E7ED42D02155E27E84 +:10142000FE0AD0345F2156E2193A19E2F63077EB22 +:101430002116E23528B07E1117E2211AE2189E3AF1 +:1014400060E247EE28C83AD8E2E6103A96E128036F +:101450003A97E1A728064F3A61E2B9D02155E27EDA +:10146000A7C84F23CB76200DCB6828530DC823CBBC +:101470007628F91804CB58203FCD2415F52A12E719 +:10148000110012ED521100BEED52300219EB3AD8A4 +:10149000E26FCB65281B3A97E1A7280BCB75281183 +:1014A0002ADAE2ED52380A2135E2F1E601C83600C7 +:1014B000C92160E2CBDE183E0DC823CB7620F9CDE2 +:1014C0002415F52A12E711001219110022ED5238E5 +:1014D0000219EB3AD8E26FCB6528163A97E1A728B4 +:1014E0000BCB75200C2ADAE2ED5230052115E218FB +:1014F000B92160E2CBEE2161E234230110007EA726 +:1015000028030918F9F177AF2336002373237223D8 +:101510003600233650237723360723772377233665 +:10152000022377C97E0D2807545D230600EDB02104 +:1015300055E235C9C1111000DD19101AC93A01E789 +:10154000E603200332D2E2210101221BE7221DE73C +:10155000DD2162E20605C5213415E5DD4E00CB61D3 +:10156000C8CB69C4261CCB59C43D1CCB41DD7E01D0 +:10157000C26E18CB51C28A16212F16E52100E7CB87 +:101580004EC2E21BFE01CAAA1B3847FE09CADD157E +:101590003016CDEF1B1100EF19D0CD7A1B79E6285C +:1015A0002F2160E2A677E1C9CDE71BDD7E06FE0AAA +:1015B0003004DD36060DCD3E16D81100FF2A0CE8AA +:1015C00019D2201BC93E0ADD8606DD7706DD36010D +:1015D0000AC9CDE71B1100F819D2C515C9CD541B96 +:1015E000CD611CDDBE0F280ADD350B2839DD770FF4 +:1015F0001809DD350E2008DD360B06DD360E05DD5B +:101600003507C03A1CE8A73E02200ADB03E6023E8B +:101610000420023E03DD77072109E77EA7F835F0B5 +:10162000211FE7CBCEC9211AE7353E09C3901B2104 +:101630007B6ADD7E01FE05C27D1A79C3801A1180A6 +:1016400016CDD21AD0F53E91CDFE0DF1FA53163ECD +:1016500080182421D2E234CDC91A7E200EFE023E2B +:101660008038143E8228103E85180CFE023E8C38CD +:10167000063E8028023E8221D200EBCD602F37C982 +:10168000F2F0F2F2F20201FFFFFF212218E5210041 +:10169000E7CB4EC2E21BFE09CADD15D20B17FE01D5 +:1016A000CAAA1BD29215CDE71BCD2818D82A0CE860 +:1016B0001100E119DA7A1BDDCB0B4620262A0CE853 +:1016C0001100FA19381DDDCB0BC63A02E7FE0328DC +:1016D00008FE062804FE07200A3A13E021C1E1BEF5 +:1016E000DAE5172A10E71180A119D82A0AE811C0F3 +:1016F00000CB712803191802ED52DA201BC9DD3620 +:101700000100DD360600DD360707C9DD5E0EDD5659 +:101710000FDD7E06FE0AF5C4701CCDE21BF1281D0C +:1017200011D6FFCDAC1C19CDA51CEBCD9E1C1911FB +:101730000050ED52193001EBCD971C38C1DDCB0BB9 +:101740004E201CCD8A1C1160FF19220FE8114001A8 +:10175000192211E8CD9E1C111400CD72113828DD1C +:1017600035072018DD7E0A3CDD770A875F160021E9 +:10177000FC17197EDD7707237EDD7706DD7E06FE0A +:101780000FD879EEC04FC93A02E7FE032808FE06DB +:101790002804FE072024CD9E1C110C013E91CDFE95 +:1017A0000DCDE22E3E07F5CDAC1CEB210000ED5235 +:1017B000CDA51CDDCB0BCEF118AEDD360609CD9ED6 +:1017C0001C11000A19AF29076C67EBCD8A1CCDC923 +:1017D0001A3E8020023E82CD602F3E91CDFE0D212B +:1017E0005B1CC3961BDD36010A21A003CDA51C217D +:1017F0002800DD750EDD740FAFC36817030A070CF0 +:10180000070D070E070F0710FF0B030A070D070E42 +:10181000070F0710FF0B030A0710070F070E070D2E +:10182000FF0B212F6BC33216116418CDD21AD0F5DD +:101830003A0BE8E680CBB12802CBF1DD71003E9196 +:10184000CDFE0DF1FA4B183E81181321D2E2347E01 +:10185000FE023E80DA77163E81CA77163E8421BEAC +:1018600000C37A16FFF0FFFFFFFF01FFFFFF2172A9 +:101870001AE52100E7CB4E202ADD6E08DD66092B34 +:10188000CB7C2006DD7508DD74098716005F219783 +:1018900018197E23666FE9281AAA1B6C19C219AEA3 +:1018A000189919F5CDE21BF1FE05CABD19C9CDE2A3 +:1018B0001BCD491A3020DD350AF53E91CDFE0DF1E4 +:1018C0002804DD3401C9CD77162115E2CB71280338 +:1018D0002135E23600C91100FF2A0CE819380B3E09 +:1018E00005215A00DD3606021865DD7E08A7CAFD0F +:1018F00019DD7E06FE022865DD3507C0DD7E0EA7F8 +:10190000C24219212BE37EFE03DD3407D0878634E3 +:101910002316005F19E5CD8A1C11C00079E6402826 +:1019200003191802ED52EBE147DD7E06D609B077C8 +:1019300023732372CDBF1DDD350EDD360710DD3478 +:1019400006C9DD360602DD350BC02AF5E13E03DDB2 +:101950007508DD7409DD7701DD360702C92A0CE858 +:1019600011A0F519215A003E0038E4C9CDE21B3E12 +:1019700002DDBE06280CDD3507C0DD7706DD360743 +:1019800003C9CD491ADAB618DD3507C0DD360804BB +:10199000DD360900DD360103C9CDEF1BCD491ADA6A +:1019A000B618DD7E08A72006DD7E09A728451100B0 +:1019B000F62A0CE819DA3C1ACDB81A387F79EE40CD +:1019C0004FC9CDE21BCD491ADAB618DD7E08A72033 +:1019D00006DD7E09A7281C1100F72A0CE819300A39 +:1019E0001100FE19D0DD360100C9CDB81AD8DD3698 +:1019F0000105C9DD3601043AF0E1DD770B21F1E1A3 +:101A00003A10E0BE3E0938023E0BDD7706233A115C +:101A1000E0FE55380623FEAA3801237EDD7708DD77 +:101A2000360E00DD36070BC9CDE71B1100F619D8BD +:101A3000DD7E08A72006DD7E09A728B7DD36010375 +:101A4000DD360602DD360702C93A01E7E603200467 +:101A5000DDCB0096DDCB0056C0118016CDD21AD05A +:101A6000DDCB00D63E85F0CDC91A3E8320023E87ED +:101A700037C92A0CE81100E419D821E76B79EE4048 +:101A8000E6C0DDCB0066C8EBCD9E1C296C2600CBE2 +:101A9000142207E82A0AE8DD4E06D5060016FF29BB +:101AA00038015029295C2A15E7192203E8EBE109DE +:101AB000094E236669C3200ECD911C2A06E1CB7125 +:101AC00028042A04E1EBED52C93A02E7FE08C8FEF9 +:101AD00009C9D5CDE71AE1D0CD181BD0F5E60FCD59 +:101AE0008E1BCD911CF1C93A0BE8473A01E707A8D4 +:101AF000E680C83A01E7E603C8E60211C00206051F +:101B0000200411000447ED52D03A02E7FE06D80443 +:101B1000D608D804804737C9581600197EFEFFC979 +:101B2000CD081220553A1CE8A73E02200ADB03E646 +:101B3000023E0420023E03DD7707DD360609DD366E +:101B40000109211AE734CD611CDD770FDD360B0664 +:101B5000DD360E05DDCB0056211BE728022323DDF1 +:101B6000CB00761180FF20042311800034462A1216 +:101B7000E71910FDCD831CC3E21BDDCB004E20090D +:101B8000DD3600002161E235C9DDCB00A6C9C604FF +:101B9000DD770621551CDD3601017E23DD7707CD7B +:101BA000A51CAFDD770EDD770FC9DD3507C2C41B7D +:101BB000CDAC1C7EA7FA7A1B23DD77067E23DD776A +:101BC00007CDA51CDD5E0EDD560F21160019DD7553 +:101BD0000EDD740FCD9E1CED52CD971C113900CD3A +:101BE0007A1CCD8A1C1821113600CD701C180611E4 +:101BF0003600CD7A1CDD3507200EDD360707DD35D2 +:101C000006F2081CDD360603ED5B12E77BE6E05FBB +:101C10007DE6E06FED52220AE83006110100EBED9F +:101C200052220CE8A7C92A12E711001019CD911C05 +:101C3000ED52D8DDCB00AE2160E2CBAEC9CD8A1C1F +:101C400011001019ED5B12E7ED52D8DDCB009E219B +:101C500060E2CB9EC90507070811FF05070A0817B0 +:101C6000FF3A00E0FE063A09E9C83A07E9E60FC97B +:101C7000CD8A1CCB71280A191809CD8A1CCB712872 +:101C8000F6ED52DD7502DD7403C9DD6E02DD66031B +:101C9000C9EBCD8A1CEBC9DD7504DD7405C9DD6EA9 +:101CA00004DD6605C9DD750CDD740DC9DD6E0CDD66 +:101CB000660DC9CD4A1ECDFD1DDD21FBE2CDC41C44 +:101CC000DD210BE3DD7E004FE610C83A00E7E602B7 +:101CD000C2A71DDD7E01FE01DA4B1D2826CDE91DC0 +:101CE0003AD9E2FE0128073AD8E2E610206DED5B12 +:101CF00012E7ED52DA5B1D1100EC19305EDD3600A3 +:101D0000001858DD7E0BDD6E04DD6605CB47280C20 +:101D1000ED5BBFE1FE032808ED521805ED5BBDE168 +:101D200019DD7504DD7405DD6E0CDD660DED5BBB44 +:101D3000E119DD750CDD740DCDEF1DDD5E0EDD5698 +:101D40000FED523816DDCB00AE180DCDE91DDD5E6E +:101D50000EDD560FED523003DD3401DDCB006E2079 +:101D60002EDD6E02DD66031140FF19220FE811809F +:101D700001192211E8DD6E04DD6605110800E5CDCC +:101D80007211E1300A111801CD9A2CDDCB00EEDD85 +:101D900035072013DD360702DD7E063CFE063804DB +:101DA000CDBF1DAFDD7706CDE21B1100E819D8DDF0 +:101DB0007E06FE033E403801AF21A575C37E1AE5BD +:101DC000D52A03E011CDFC193E9538023E99CDFE8F +:101DD0000DD1E1C9E5D52A03E011CDFC193E9238B9 +:101DE000023E9ACDFE0DD1E1C9DD6E0CDD660DDD42 +:101DF0005E02DD560319DD7502DD7403C9DD211BAA +:101E0000E3DD4E00CB61C8DD35072014DD36070564 +:101E1000DD34063A21E3FE0438062029DDCB00FE3E +:101E2000117200CD7A1CCDE21B2A27E3111B001989 +:101E30002227E3EB2A1FE3ED52221FE321D2733A5C +:101E40001BE3C37E1ADD360000C93AD8E24FA7284B +:101E50003DE610C82AE0E22BCB7C200322E0E2DD45 +:101E600021D8E23AE2E221FAE2A7FA771EFE3F2801 +:101E700006352005DD340A36703A80E0E607218415 +:101E80001EC3261F191F98223E21F024F2283A80F3 +:101E9000E0E6072AD3E2ED5B12E7ED52CB472801DB +:101EA0003FD8FE032006214F0322F8E2CB474F3EE6 +:101EB0001220023E5232D8E23E7032FAE23A61E239 +:101EC0002197E196D8C80605DD2162E2DDCB004608 +:101ED00020312A12E7DD5E02DD5603CB41280CDDFE +:101EE000CB0076281EED52381A180ADDCB0076207A +:101EF00012ED52300E6FDD7E01A77D2006DD36012A +:101F0000053DC8111000DD1910C2C9301FF91F119D +:101F100020451F591F64201B20CD6F2C219620E5E2 +:101F2000210B1FDD7E018716005F197E23666FE996 +:101F3000CD0D2D1100FA19D2CF1F1100C02ADAE2FF +:101F400019DA501FC9CDE21B1100FA19D2CF1FC9EF +:101F5000DD360103DD360600C9CDE21BCDE320DA14 +:101F60003620DD3507C0DD350EFA85202854DD34F6 +:101F700006DD3607053AE6E2FE02C0CDD41DED5B74 +:101F80000CE82160FA19D82100FE19D02ADAE211F2 +:101F9000000219220FE811C002192211E83ADEE20C +:101FA000FE0B380C280521006918082180611803F0 +:101FB000218059110500E5CD7211E1D0111001C346 +:101FC000952CDD350B200BDD3406DD360705C9CD3C +:101FD000E82C3A11E0219EE10604BE3808230609E8 +:101FE000BE3802060EDD7006DD360E043A12E02120 +:101FF000A0E1CD141232DFE2C9CDAA1BDDCB006611 +:10200000C0E121D8E2CBA621E8E2CBA6C9DD3601AA +:1020100002CDE21BDD3507CACF1FC9ED5B04E1DD50 +:102020006E02DD6603ED5238E4115500CD7A1C18BE +:10203000E0DD360106C9C61332DEE2FE1621262196 +:102040003803212C21CD961B21672D11D800CD19E5 +:102050002D3E08DA7A24DD7EFEDD36FE1CA720D177 +:10206000DD3401C9CD132DCDE320DA3620ED5B043C +:10207000E1DD6E02DD6603ED523805DD7E08A7C0A6 +:10208000DD360100C9DD360600DD360707DD360125 +:1020900005DD360825C9CDB92CCD782C218D6C11E4 +:1020A000A0FE3A01E7E6032004DDCB00AEE5DD7ECD +:1020B00001FE01281D2A0CE8192101E7DDCB00767D +:1020C000280A3804CBE61811CBA6180D3809CBEE38 +:1020D00018072101E7CBA6CBAEE1CD012DDD7E00B7 +:1020E000C37E1ACD0921D02A0CE81160FE19D03A1E +:1020F000DEE2FE043807FE092112213803211C21EB +:10210000CD181BD0DDCB00EEC9DD7E00E620C0C3BC +:10211000E71A0403FFFFFFFF04FFFFFF02000202B4 +:10212000020201FFFFFF0618081911FF061A081B1B +:1021300011FF4821F91F00225D2167211722213953 +:1021400022E5213221C3231FCD0D2D1100FB19D211 +:10215000DC211100C02ADAE219DA501FC9CDE21BD6 +:102160001100FB193076C9CDE21BCD4B22DA0A22D1 +:10217000DD3507C0DD350E285BDD3406DD36070BA7 +:102180003AE6E2FE02C0CDD41D2ADAE23ADEE2FEF1 +:1021900007381611E00119220FE811200219221147 +:1021A000E821005E111100181411400219220FE8F5 +:1021B00011E001192211E821006A110A00CD721103 +:1021C000D03ADEE2FE0721806C38032180601118CE +:1021D00000C3952CDD350B2006C32022CDE82C3A18 +:1021E00011E0219EE10604BE38020607DD70063AC2 +:1021F00012E021A5E1CD141232DFE2DD360E03C973 +:10220000CDE21BDD3507CA501FC9DD360600DD36BD +:10221000070BDD360102C9CD132DCD4B22C36D2036 +:10222000DD360600DD360707DD3601053A13E0210D +:10223000A0E1CD1412DD7708C9CDB92CCD782C21C1 +:10224000656E1120FECDA220C3702E3AD8E2E620A2 +:10225000C021E000CD2012D0DDCB00EED52105005D +:10226000CD5C2E216A2DCD192DD138052100901974 +:10227000C9F111EE003E09CD7A24DD360600218435 +:1022800022C3961B060A080B13FFA522F91F092477 +:10229000C722D22280243224CD6F2C219F24E52115 +:1022A0008A22C3231FCD0D2D1100F619D2C623118A +:1022B000005F2ADAE219D2501FC9DD360100DD368F +:1022C0000600DD360702C9CDE21B1100F619D2C6A1 +:1022D00023C9CDE21BCDB024DA4824DD3507C0DDAB +:1022E000350E2860FAB423DD3406DD36070BFD21F8 +:1022F000FBE2FDCB00662804FD210BE33AE7E2FE9A +:10230000022100693803218056FD7504FD7405FD26 +:10231000770B2ADAE21100FF19FD7502FD74031133 +:1023200000ED19FD750EFD740F2AB9E1FD750CFD68 +:10233000740D3E50FD7700AFFD7701FD77063E023C +:10234000FD7707C9DD340EDD3407FD21FBE2FDCB4F +:1023500000662814FDCB0D7EC0DDCBFF462812FDA4 +:10236000CB1066200CC3D323FD210BE3FDCB0D7EE8 +:10237000C0FD7E0BA72808FE0328043E0A18023E73 +:102380000CDD77062ADAE211C0FE19FD5E02FD5669 +:1023900003ED52D0FD360000DD35063A0BE3E610C2 +:1023A0003E0B200CDD350E3A11E021A5E1CD1412D3 +:1023B00032DFE2C92A0CE81100F519DABA22DD355C +:1023C0000B2009C320223A9FE132E3E2ED5FE601F0 +:1023D000DD77FFDD3601043A10E0219CE10600BE06 +:1023E000380B2304BE38062304BE380104DD700F09 +:1023F000780609FE023002060BDD7006DD36070B9B +:10240000DD360E02C9DD360102CDE21BDD3507C027 +:10241000DD34073A0BE3E610200D3AFBE2E6102824 +:10242000A5DDCBFF4620AC3AE4E232DEE2DD360148 +:1024300004C9ED5B06E1DD6E02DD6603ED5230C5D9 +:10244000115500CD7A1C18C1DD4606C60432DEE205 +:10245000216D2DCD192D3817DD700CDD360706DD09 +:102460007EFEDD36FE1CA7C23120DD360102C92109 +:10247000CC24CD961B11DC003E092ADAE2C3602F82 +:10248000CD132DCDB02438C0ED5B06E1DD6E02DD4D +:102490006603ED52D28020DD7E08A7CA8020C921C4 +:1024A00000E7CBF6CDB92CCD782C214E6FC39F2001 +:1024B000CD0921D02A0CE81160FE19D021C224C315 +:1024C000002102000202020201FFFFFF06070808C6 +:1024D00011FF1825F91FC325352540251B277F2609 +:1024E000D626E21B0328BA2737278427E3252F2681 +:1024F0002AF8E27DB428042B22F8E221D6E27EA756 +:10250000280135CD0F25DD21E8E2DDCB0066C821AD +:10251000D224CD231FC39328CD0D2D1100F819D23D +:102520008925DDCB0076C011005FDD6E02DD66031C +:1025300019D2501FC9CDE21B1100F819D28925C943 +:10254000CDE21BCDBA28DA4B26DD7E0EA7FCAF25E7 +:10255000DD3507C0A72815FA8C25DD8606DD770650 +:10256000CDDD34DD36070BDD360E00C9DD350BCA97 +:102570002022CDAF25DD360600DD350E3A11E021F3 +:10258000A5E1CD1412DD7707C9CDE82CCDD42CCA36 +:10259000DF273A12E0219EE10601BE38060423BE81 +:1025A000380104DD700EDD360604DD36070BC92A5E +:1025B0000CE81180F319D0F1DD360600DD3607078F +:1025C000C38020CDE21BDD3507C03AD7E2A7CA5051 +:1025D0001FDD36010DDD36061ADD3607082100E75E +:1025E000CBC6C9CDE21BDD3507C0DD360708DD34BB +:1025F00006DD7E06FE22C0DD3401DD36061EDD6E00 +:1026000002DD6603DDCB0076280E1100A1ED521924 +:1026100038141180FD19180E11800219ED5B06E1C6 +:10262000ED52193801EBDD7502DD7403C3E21BCDF9 +:10263000E21BDD3507C0DD360708DD3406DD7E062A +:10264000FE26C02100E7CB86C3501FA7284ADD36EF +:10265000060821702DCD192D21D62838117EDD7761 +:1026600007DD36010221D6E27E361C2377C9CD96DE +:102670001BDD6E02DD660311D7003E0AC3602FCD5D +:10268000E21BDD3507C0DD7E063CFE133840205DD1 +:10269000DD36071C3E26183A3E91CDFE0DDD6E025A +:1026A000DD6603221DE3DD7E00E650321BE32100E0 +:1026B00065221FE3215B002227E33E053222E3AFC0 +:1026C0003221E32100E7CBC6DD3601063E0BDD36C5 +:1026D0000708DD7706C9CDE21BDD3507C0DD7E06C4 +:1026E0003CFE1A38E92100E7CB86C38925DD340199 +:1026F000DD6E02DD6603118002DDCB0076200D1950 +:10270000EB2A06E1ED52193805EB1802ED52DD75A2 +:1027100002DD7403CDE21B3E0F18B3CD132DCDBAED +:1027200028DA4B26CDD42CCA8020DDCB0076CA888F +:10273000241100A1C37120DD35072016DD3407CD3B +:102740008728206CDD360707DD3506F25227DD3697 +:1027500006032A12E7DD5E0CDD560DED52EBDDCBF4 +:102760000076200D2A06E1ED523004ED5B06E118FB +:102770000A218085ED523803118085DD7302DD72F8 +:1027800003C3E21BCDE21BCD87282817DD3507C028 +:10279000DD7E0EA7CA7525FA9225DD8606DD770651 +:1027A000C36325DD360600DD360702DD36010BC9C1 +:1027B000DD36010CCD9225C3E21BCDE21BDD3507D2 +:1027C000C0DD360708DD3406DD7E06FE22C0218B23 +:1027D0000122F8E2DD3600002101E7CBA6185E21D8 +:1027E00000E7CBC63AE8E2E6102864DDE5DD21D853 +:1027F000E2CD7E28DD361708DD36161ADD36110AE1 +:10280000DDE1C9CDE21BDD3507C0DD360708DD346B +:1028100006DD7E06FE26C0211A0122F8E2CDA3279E +:10282000CD3D28ED5FE601C8DD36F10BDD36010058 +:10283000210000ED5BF4E2ED5222E4E2C9DD36F660 +:1028400000DD36F702DD36F1002100E7CB86C9ED69 +:102850005B0AE82160FD19380311A0022A12E7ED96 +:1028600053F4E2ED5222EAE221005022ECE2DD369E +:102870001050DD361708DD36161EDD361109DD363F +:102880000108DD36061AC93A02E7FE01C8FE09C88A +:10289000FE0AC92A0CE81100E8192197E11198E114 +:1028A00030083AE8E2E6102001EB7EA72803123652 +:1028B000002147701100FEC3AD20CDE71AD02A0CCD +:1028C000E81160FE19D021CC28C3181B00FF0000BE +:1028D000000001FFFFFF0609080A13FFFC28F91F8B +:1028E000EE2A5629CC298C2A14298F29C82A282B6C +:1028F000322B215A2CE521DC28C3231FCD0D2D11AD +:1029000060F719302A181CDD360707DD360100DDB7 +:10291000360600C9CD3C29CD701CCDE21B1160F7F5 +:102920001938E41100C02ADAE219DA501F1836DD2E +:10293000360709DD360604DD360106C9DD35072018 +:1029400011DD360709DD7E063CFE0528023E04DD6A +:102950007706111200C9CDE21B1160F7193E043051 +:1029600001AFDD7706CDA02B2A0CE81180FB19D82A +:10297000DD7E08A7C2E92ADD3606042A0CE811002C +:10298000FD19301C3AAAE1DD7707DD360107C9EDF4 +:102990005BABE1CD701CCDE21BCDA02BDD3507C0BC +:1029A000CDE82C2A0CE81180FC19DA552A3A11E0FE +:1029B000219EE10606BE380823060BBE380206102B +:1029C000DD7006DD360705DD360E05C9CDE21BCD0F +:1029D000A02BDD3507C0DD350E2862FAA329DD7E88 +:1029E0000EFE032047DD7E06FE0C21732A380821E7 +:1029F0007A2A280321812ADD7E0286235FDD7E0379 +:102A00008E2357ED530FE87B86235F7A8E2357ED95 +:102A10005311E85E2356236E2600EBE5CD7211E1DB +:102A2000300A11000419111800CD952CDD3406DD93 +:102A30005E0E160021872A197EDD7707C9DD350B6A +:102A400028133A12E021A5E1CD1412DD7707C92140 +:102A5000005022DCE2DD3606042ADAE21100FE191B +:102A6000ED5B04E1ED523871DD3601083AAAE1DD93 +:102A70007707C920016001806707400120020066D6 +:102A80000E8001000200500A01100B10CD3C29CD30 +:102A90007A1CCDB62ACDA02BDD7E08A7CA77292ABD +:102AA0000CE81100FB19DA37292ADAE2ED5B04E1C0 +:102AB000ED52DA7729C92ADAE2ED5B04E1ED523012 +:102AC00004ED53DAE2C3E21BED5BABE1CD7A1CCD42 +:102AD000B62ACDA02BDD3507C03A12E021A0E1CD0A +:102AE0001412DD7708DD360709DD360105C9CDE2B0 +:102AF0001BDD3507CA4F2AC9E178FE023E1B3804A8 +:102B000028013D3DDD770678FE032804AF32D6E28A +:102B100021692CCD961B21672D11DE00CD192D3E8C +:102B20000BDA7A24DD3401C9CDE21BDD3507CA5545 +:102B30002AC9CDE21B21D7E27EA720123ADEE2FEAF +:102B40001E200B3601210060111800CD952C2AE4BF +:102B5000E2DD3507201423237EFEFFCA4F2ADD77EE +:102B600006237EDD77072322E4E27EDD8604DD771F +:102B700004237EDD8E05DD7705C920011803AA0038 +:102B800018020000180356FF1704E0FEFF20011E84 +:102B900003AA001E0200001E0356FF1704E0FEFFFA +:102BA000CDE71AD021362CCD181BD047DD5E061696 +:102BB0000021402C197EFEFFC821D6E234FEFE28FB +:102BC0001CFE08380B5F78FE0238627BFE09280D78 +:102BD000805F21ADE1193A13E0BED2F82AE178FE18 +:102BE0000228383832DD360705DD36010ADD3606C3 +:102BF000173A80E00F0F0FE6035F160021322C1901 +:102C00003AD6E2BE217A2B380A218D2BAF32D7E299 +:102C100032D6E222E4E2C93E1518023E16DD7706FE +:102C2000DD360109DD36070B3E91CDFE0DAF32D604 +:102C3000E2C90403020200030000000102FFFFFFDB +:102C4000FFFFFFFFFEFEFE000000FEFE040404FE88 +:102C50000908080809FFFFFFFFFFCDB92CCD7E2C26 +:102C60001100FE21FA71C3AD200B1C081D13FFDDFE +:102C70007EFEA7C8DD35FEC93A80E0E6FCC02A0C1E +:102C8000E81100E8192198E11197E13801EB7EA7DE +:102C9000C8123600C93E91CDFE0D3A09E793F2B64F +:102CA0002CCD081220103A80E0E607FE023E0420F8 +:102CB000023E053207E0C3E22E2A0CE81160F71944 +:102CC0002100E7CBA6D8DD7E01FE01C83A61E2A76C +:102CD000C0CBE6C92AF8E27DB4C03A02E7FE092873 +:102CE00005FE0A28017CA7C93A10E0219CE10601F3 +:102CF000BE38062304BE380104DD700BDD36010446 +:102D0000C9E52A0CE81100EE19E1D0F1C9111B0048 +:102D1000C3EA1B111B00C3F21B3E83CDFE0D3E9187 +:102D2000CDFE0DD53A06E7E521422D5F1600195E6E +:102D3000E1193AE2E29632E2E2D1D03E87CDFE0DD1 +:102D400037C900000000000000020001010002007D +:102D50000101000000000001010003030000000069 +:102D60000000000000000000100C200C08181010DB +:102D70002010212BE37EA7C84723C54E11B400CBFA +:102D800049280311D200CB612807E521180019EB6F +:102D9000E1ED5307E8235EE523563A00E72AF7E121 +:102DA000CB71281AEBCB4F200119E5ED5B12E7ED53 +:102DB00052220AE838261100F019385E181BEBCBB6 +:102DC0004F2002ED52E53852ED5B12E7ED52220A38 +:102DD000E830091100101930412A0AE8CB4F2010C1 +:102DE000CB61200C1160001911C000ED52DC312EB6 +:102DF0002A0AE816FF293802160029295C2A15E755 +:102E000019EB21A07579EE40E640CD200ED1E1739B +:102E1000237223C105C27A2DC9E1212BE37E3587B8 +:102E2000862316005F19D1D113010300EDB8EB180A +:102E3000E1CB49200D2A10E71100A619D821005A2C +:102E400018123A02E7FE06C8FE07C83A06E7FE0572 +:102E5000C8210069111801CDE22E18BD2238E3EB1C +:102E6000296C26003001242236E33E073235E3C9BF +:102E70002135E37EA7C835C82A36E3C52207E82AEC +:102E800038E3ED5B03E819EBAF218474CD200EC16C +:102E9000C93A20E7FE033E012801AF323FE33A0181 +:102EA000E7CB7721FEFF2803210200223DE32A22FF +:102EB000E7296C2600300124223BE33E0E323AE340 +:102EC000C9213AE37EA7C835C82A3BE3C52207E8F3 +:102ED0002A3DE3ED5B15E719EBAF218974CD200E98 +:102EE000C1C93A1FE7E60120122222E7211FE7CBE2 +:102EF000C6237223733E83CDFE0DC93A09E7933092 +:102F000001AF3209E7C9214CE606047EA7C835287F +:102F100035C5235E2356ED5307E8235E2356234E23 +:102F200023E52A12E77DE6E06FEBED52E511001C88 +:102F30003804ED52180119E1300711F775AFCD9A39 +:102F40001AE1C110C6C9052814C5E5EB2106001910 +:102F5000788780874F0600EDB0AF1218E43600C9BD +:102F6000C5D5E51163E6215DE6011200EDB857E62F +:102F70007F5F3251E6E1224FE6E1224DE63EA9CBEA +:102F80007A28023E0B324CE6160021AD2F19195E4D +:102F90002356CD9A2FC1C91110002181E07E8327CD +:102FA00077237E8A2777237ECE002777C9200030BB +:102FB000004000500060008000900000010002000E +:102FC000030005001010003A81E3A7C8DD2182E369 +:102FD0000610C5DD4E00CB61C4E42FC1111300DD26 +:102FE0001910EFC921E736E521F72FDD5E01160044 +:102FF00019197E23666FE97F33D43119309833D4A1 +:1030000033C8324930EE3125328B3254315D31666E +:10301000314434783484343735CDE21B210070CD0F +:103020001D37DACD30CD7337DA1E33CD46373E91BA +:10303000DA2733DD3507C0DD360703DD7E063CFECB +:103040000420023E02DD7706C9CDE21BDD3508CA49 +:103050000631DD6E0EDD660F112000DDCB00562837 +:103060000DED523016DDCB0096210000180D19E54C +:103070001180FF19E13004DDCB00D6DD750EDD7463 +:103080000FDD5E0ADD560B19DD7502DD7403DD6EA2 +:1030900010DD6611114900DDCB0046280DED5230E0 +:1030A00016DDCB0086210000180D19E51100FE1970 +:1030B000E13004DDCB00C6DD7510DD7411DD5E0C82 +:1030C000DD560D19DD7504DD7405C32530DD3601CF +:1030D000063A71E3DD7708114000DD6E02DD66031C +:1030E000ED52DD750ADD740BDD730EDD720F11001C +:1030F00001DD6E04DD6605ED52DD750CDD740DDD60 +:103100007310DD7211C9CD3A333E86CDFE0DFD211F +:1031100082E306100E0ADD6E02DD6603FDCB00665B +:10312000202AFDCB00E6FD360707FD360614FD75A7 +:1031300002FD7403110074FD7304FD7205FD71013D +:103140003A81E33C3281E3790CFE0CC8111300FD97 +:103150001910C9C9ED5B76E3CD701C1810CDE21BC8 +:10316000ED5B72E3180EED5B76E3CD7A1CCDE21BCE +:10317000ED5B74E3210050CD3237DA13372A0CE8C7 +:10318000110003ED523023DD5E02DD560321E0FF26 +:1031900019220FE8212000192211E8DD6E04DD66F6 +:1031A00005110100CD7211DAC031DD3507C0DD3601 +:1031B0000703DD7E063CFE1620023E14DD7706C9BD +:1031C000DD6E04DD66051120013E91CDFE0DCDE2E0 +:1031D0002EC31337CDE21BCD7337DAED32CD463730 +:1031E0003E91DA2733210050CD1D373826C9CDE274 +:1031F0001BDD3507C0DD3406DD7E06FE102021DD37 +:1032000034013A0BE8CB7FDDCB00F62013DDCB0099 +:10321000B6180D3E86CDFE0DDD360107DD36060DF6 +:10322000DD360707C9CDE21B214001CD20123A024D +:10323000E7300AFE04CAA832FE05CAA832FE0628F4 +:1032400034FE0728303A06E7FE052829CB692025F9 +:10325000DD7E06FE12201E2A0AE8118006CB7120B0 +:1032600004ED52180119300D21006B112001CDCA57 +:1032700036DDCB00EEDD3507C0DD7E06FE13CAA2CB +:1032800032DD34063A70E3DD7707C9CDE21BDD3568 +:1032900007C0DD7E06FE18CA1337DD3406DD3607AB +:1032A00007C9DD36061718173E86CDFE0DDD6E0206 +:1032B000DD660311DC003E88CD602FDD360616DDAD +:1032C000360109DD360707C9CDE21BDD3507C0DD54 +:1032D0007E06DD3406DD360707FE0CC0DD7E0EA758 +:1032E000FCBA3CC313373E93CDFE0D18053E86CD88 +:1032F000FE0D3A01E7E601200706841181801805DA +:10330000068211808CED5FE67FFE2A382F43FE5542 +:10331000382A42182706883E86CDFE0D181E0687DD +:103320003E86CDFE0D1815CDFE0DDD6E04DD660565 +:1033300011800219112001CDCA360600DD700EDDA4 +:10334000360707DD360105DD36060AC93E86CDFEA5 +:103350000D18E7CDF636DD7E02FD7702DD7E03FD3A +:103360007703DD7E04FD7704DD7E05FD7705FDCB6B +:1033700000E6FD360707FD360105FD36060AC9CD14 +:10338000E21BCD7337DAE632CD46373E93389821CB +:103390000050CD1D37382BC9CDE21BCD7337DAF283 +:1033A00032DD3507C0DD360705DD3406DD7E06FE7D +:1033B00007207F3A0BE8CB7FDDCB00F6C8DDCB00E2 +:1033C000B6C9DD360103DD360705DD3606043E935A +:1033D000CDFE0DC9ED5B6EE3CD7A1CCDE21B110075 +:1033E000E419DA1337CB6920333A02E7FE0C282CB4 +:1033F0002A0AE811E000CB712804ED5218011930B7 +:103400001B2A10E71100AD193812210056112003B4 +:103410003E94CDFE0DCDCA36DDCB00EEDD3507C0C6 +:10342000DD360709DD7E063CFE0A20023E08DD7718 +:1034300006C9FE08C0DD360104DD360608DD3607A4 +:1034400009C3B333ED5B72E3CD7A1CCDE21BCDBF74 +:1034500037DA1533CD92373E91DA2733DD3508CA96 +:103460006B35DD3507C8DD36070BDD7E063CFE1B00 +:1034700038023E19DD7706C9ED5B74E3CD7A1C2A6C +:103480006AE3180AED5B76E3CD7A1C2A6CE322002E +:10349000E8CDE21BCDBF37DA1533CD92373E91DA56 +:1034A0002733ED5B00E8210050CD32373816DD358B +:1034B00007C8DD36070BDD7E063CFE1D38023E1BCD +:1034C000DD7706C93E86CDFE0DED5FE603CA1832F4 +:1034D000F5CD5333F1FE01CA3534C31337CDF6367B +:1034E000DD6E02DD6603110002DD7E00E64028038A +:1034F000191802ED52FD7502FD7403EE50FD7700C0 +:10350000DD7E0EC60CFD7701875F16002117351989 +:103510005EFD7304235EFD7305FD36070BFE1A2066 +:103520000BFD3606193A65E3FD7708C9FD36061B23 +:10353000C90066005F005AED5B63E3CD7A1CCDE203 +:103540001BCD7337DA1533CD46373E94DA2733DD9A +:103550003508CA4C33DD3507C0DD36070BDD7E0686 +:103560003CFE1F38023E1DDD7706C9CD53333E8633 +:10357000CDFE0DED5FE601CA13373E40DDAE00DD46 +:103580007700DD360110DD36061DDD36070B3A66A5 +:10359000E3DD7708C93A60E3ED5B12E72A61E3ED0A +:1035A00052380B2A63E3ED52380BFE011801A7C015 +:1035B000AF3200E1C92180E335C034237EFE10D054 +:1035C0003A17E0216AE31E00BE381D231CBE3818DE +:1035D0001C3A16E0FE7F3EF838023E062101E7CB9A +:1035E000762002ED445718233A16E016F7FE2A38E3 +:1035F0001A16FAFE55381416FDFE7F380E1603FE15 +:10360000AA38081606FED4380216093A02E7FE0167 +:103610002806FE093E0320023E062101E7CB76285C +:1036200002ED44BA200216003A02E7FE012806FE27 +:10363000093E0320023E09CB762002ED4482573A30 +:1036400013E78257CBC2EBDD216FE31113000610A5 +:10365000DD19DDCB00662814DD7E01FE033808FE8F +:10366000063809FE093005DD7E12BCC810E2EB3ACF +:1036700015E02165E3CD14122180E3772334DD21A9 +:103680006FE3011300DD09DDCB006620F8ED5FE696 +:1036900040F610DD7700DD7301DD7306DD7212DDAB +:1036A0007203DD360200210090DD7504DD7405DD56 +:1036B000360703210A00117D00DD750ADD740B2A2F +:1036C0006CE319DD750CDD740DC93A80E0E607FE88 +:1036D0000320113A09E793F2E436CD081220053EA3 +:1036E000053207E0C3E22E2A0CE81100E419D821C4 +:1036F0008E7479C37E1A3A81E3FE1030143C328115 +:10370000E3FD216FE3111300FD19FDCB006620F8E6 +:10371000C9F1C9DD3600002181E335F1C9E5DD6E6F +:103720000ADD660BDD5E0CDD560D19DD750CDD74F2 +:103730000DE1E5A7DD6E04DD6605ED52DD7504DD06 +:103740007405D1ED52C92A0CE8110003ED52D0DD09 +:103750005E02DD56032180FF19220FE82180001947 +:103760002211E8DD6E04DD660511800019110800E4 +:10377000C37211214001CD2012D0A7DD6E04DD6699 +:1037800005ED52D02100F819DD5E04DD5605A7EDE8 +:1037900052C92A0CE8110003ED52D0DD5E02DD565D +:1037A0000321C0FF19220FE8214000192211E8DD92 +:1037B0006E04DD660511800019110400C372112129 +:1037C000E000CD2012D0A7DD6E04DD6605ED52D0FD +:1037D0002180FB19DD5E04DD5605A7ED52C92A12D2 +:1037E000E711008019380ACDF637CDFF38CD6039A2 +:1037F000C9AF3200E1C906042172E57EA72805356C +:103800002310F8C9C5E53A80E0FE1021DB38380303 +:1038100021EB38160058CB03CB03195E2356E5ED98 +:103820004B12E721400F09ED52DAD93821C0F009D7 +:10383000ED52D2D9382176E53A0BE5BEDAD93834E3 +:10384000FD2162E5011500FD09FDCB006620F8FDB4 +:103850007302FD72032A12E73E10ED5238023E5009 +:10386000FD7700CDC53DD53A12E0210DE5BE300F04 +:10387000FDCB14CEE6023E3828023EA9FD77133A6E +:1038800013E0210EE5BE300EFDCB14C6E602232860 +:1038900001237EFD7712D1E1237E23666FFD75043F +:1038A000FD7405ED52FD750CFD740DF5FD7E01C630 +:1038B00004FD7701FE042809F1ED5FCB47280518C8 +:1038C00007F13804FDCB00DEFD360606FD36071095 +:1038D0003A0AE5E177C1C30038E1E1C1C30038002D +:1038E000710080005B0054003D00700023008000E8 +:1038F000710080005B0070003D0070002300803A82 +:1039000020E5A7C847DD2121E5DD6E00DD66011158 +:103910002900ED52EB210008ED523805CD0E3D187F +:1039200024DD7300DD72012A12E7ED52380A11001E +:10393000F01938250EFF180811001019301B0E0061 +:10394000C5CD553DC12120E535C805C87E230716E4 +:10395000005F197E23666F18B6DD23DD2310AAC928 +:103960003A49E5A7C847DD214AE5DD6E00DD66017D +:1039700011290019EB210080ED523005CD093D18C9 +:1039800024DD7300DD72012A12E7ED52380A1100BE +:10399000F01938250EFF180811001019301B0E0001 +:1039A000C5CD593DC12149E535C805C87E23071657 +:1039B000005F197E23666F18B7DD23DD2310ABC9C6 +:1039C0003A76E5A7C8DD2177E53A0BE547C5DD4E38 +:1039D00000CB61C4DF39C1111500DD1910EFC9DD5D +:1039E0007E01FE04380BFE07DA3B3CCAE93BC31FED +:1039F0003BDD3507200DDD360705DD35062804DD06 +:103A0000360601DDCB144E281DDD35132018DDCB25 +:103A10001456200ADDCB14D6DD3613A91808DDCBE9 +:103A20001496DDCB148EDDCB14462806DD3512CA84 +:103A3000923BDD6E02DD6603DD5E10DD5611DDCBEF +:103A400014562803110000CB712013ED52EB210016 +:103A5000F419381CDDCB00F621AB3EC3AA3B19EBB1 +:103A600021008419300ADDCB00B6217F3EC3AA3B7A +:103A7000DD7302DD7203D52A12E7ED521100113811 +:103A800008ED52D1380EC3FB3C19D138072100DFB5 +:103A900019DAFB3CFE03285CCD223D3DFAE43AD521 +:103AA000DD6E0CDD660D2806ED5B04E51804ED5BAC +:103AB00006E5CB59280DED52EBCB7A281EDDCB0065 +:103AC0009E181819EBCB7A2012A728052100EC18B4 +:103AD000032100F0193004DDCB00DEDD730CDD7254 +:103AE0000DE119EBDD6E08DD660919DD7504DD7485 +:103AF00005C37A3CCD223DD5ED5B04E5DD6E0CDDE2 +:103B0000660DCB592804ED521801193007DD360136 +:103B100000210000DD750CDD740DD119EB18C5DD39 +:103B20006E0EDD660FDD3507200911050019CDD5B4 +:103B30003B28247EDD8602DD7702237EDD8E03DDD9 +:103B40007703237EDD8604DD7704237EDD8E05DDAD +:103B50007705234EC37A3CDD360A00DD360600DDEC +:103B6000360705DD6E04DD6605DD5E08DD5609ED10 +:103B700052DD750CDD740DDD7E01D608200E3E038E +:103B8000DDCB009ECB7C2004DDCB00DEDD7701C3E6 +:103B90007A3CDDCB1486DDCB0076217F3EDDCB0089 +:103BA000B62007DDCB00F621AB3EE5DD6E04DD6619 +:103BB0000511009819E1300411160019CDD53B11FB +:103BC0000400194EDD7E01C608FE0B20023E08DD12 +:103BD0007701C37A3C7EFEFFC8DD7707237EDD7761 +:103BE0000623DD750EDD740FC9DD3507C2A93CDD86 +:103BF0007E06FE09280ADD360705DD3406C3A93C2A +:103C0000DD7E0EA7CAF23CCDBA3CC3F23C3E86CD67 +:103C1000FE0D3A01E7E6013E83200F3C180C11151A +:103C200001CDE22E3E94CDFE0DAFDD770EDD3607E1 +:103C300005DD360607DD360107186EDD3507282657 +:103C40003A00EBF53E013200EB2A01EBE52A03EBEB +:103C500011F8FF192201EB2203EBCDA93CE122016F +:103C6000EBF13200EBC9DD360600DD360705DD7EFF +:103C700001D60420023E03DD7701CDCF3CDA0D3CB6 +:103C8000DD5E02DD560321C0FF19220FE82180000E +:103C9000192211E8DD6E04DD660511000219110616 +:103CA00000E5CD7211E1DA1E3CCDE21B1100E419F2 +:103CB000D821C07579EE40C3801ADD6E04DD66053B +:103CC000291600CB125CDD6E02DD6603C3602F2176 +:103CD0004001CD2012D021800119EBDD6E04DD669C +:103CE00005ED52D02180F319DD5E04DD5605A7ED08 +:103CF00052C92176E535DD360000C92176E535DD8E +:103D0000CB0076DD36000020052120E5180321498F +:103D1000E57EFE14C83423C50706004F09732372DD +:103D2000C1C9DD6E0ADD660BED5B08E5DDCB005633 +:103D3000280EED52EB3015DDCB0096110000180C6B +:103D400019EB2100FC193004DDCB00D6DD730ADD50 +:103D5000720BC90E000610180206502176E53A0BC8 +:103D6000E5BED834FD2162E5111500FD19FDCB003B +:103D70006620F8ED5FE60CB0FD77002A12E71180AF +:103D800010CB412804ED52180A19118020ED521968 +:103D90003001EBFD7502FD7403FD360705FD3606A7 +:103DA00000CDC53DFD7E01FE01D8215F3E280321E7 +:103DB0006F3E3A10E0E60E16005F197EFD770C2389 +:103DC0007EFD770DC92149E67EA7200F3603ED5F02 +:103DD000E61C211F3E16005F191804352A4AE67EAC +:103DE00023224AE6FD7701FD361400213F3EA72835 +:103DF00003214F3EED5FE60E16005F195E2356FD70 +:103E00007308FD7209FD360B023A11E0210CE5BE84 +:103E10002A00E538032A02E5FD7510FD7411C90278 +:103E20000001000102000000000201000100020286 +:103E30000000010002010000010200010000020078 +:103E40005080540059805D00628066006B806F0076 +:103E50004E805100558058005C805F006380660092 +:103E6000008002000500078009800B000E00100092 +:103E700000000300068008800B000E000C001412E6 +:103E8000022A00470040120300008E00401202D6B2 +:103E9000FF470000FF12042A00B9FFC0120500000E +:103EA00072FFC01204D6FFB9FF80FF1202D6FF478F +:103EB0000000120300008E000012022A004700409A +:103EC000FF1204D6FFB9FF801205000072FF8012B6 +:103ED000042A00B9FFC0FFC7C7C7C7C7C7C7C7C73E +:103EE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C762 +:103EF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C752 +:103F0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C741 +:103F1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C731 +:103F2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C721 +:103F3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C711 +:103F4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C701 +:103F5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F1 +:103F6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E1 +:103F7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D1 +:103F8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C1 +:103F9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B1 +:103FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:103FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:103FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:103FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C771 +:103FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C761 +:103FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C751 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3m-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3m-.bin.hex new file mode 100644 index 00000000..e1058caf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3m-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000206070701030301000000D2 +:1000100000000060F090E0C0E0F0F8F8D0C0000010 +:1000200003010103030307070307070F1F1F0F0740 +:10003000FCFCFCFCF8F8F8F8E0E0C0C0E0E0F8FCFC +:10004000030307070F1F3F0F070E0E1C1E3F7F7F86 +:10005000FEFCFCF8F8F0F0E0000000000000C0E05A +:100060000000000000000000E0E0E070707C7F7F96 +:100070000000000000000000000000000000008000 +:100080000000000000000000000206070303010F4B +:100090000000000000000060F0C0F0F8E0E0E08048 +:1000A000000000000000011F1F060000000000000B +:1000B00000000000000080C0E038000000000000E8 +:1000C000000000000000000000020707030307070C +:1000D0000000000000000060F0C0F0F8E0E0E0C0C8 +:1000E000FF7F7FFFFEFEFEFE3838387C7CFFFFFF7F +:1000F0000000000000000000000000000000C0E060 +:100100000000071FFFFEFE000000000000000000CE +:100110000000E000000000000000000000000000FF +:100120000000000080C0FEFFFF9C080000000000EF +:10013000000000000000000080C00000000000007F +:10014000000000000000000000000001010307079C +:10015000000000000000000070E0E0C0E0F0FCFEE5 +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:1001800000000000E0F8FCFE770100000000000025 +:1001900000000000000000000080000000000000DF +:1001A000000000003C7EE7C3C3C3E77E3C000000C4 +:1001B00000000000000010C0E88000800000000087 +:1001C000000000003C7FE7C3C3C3E77E3C000000A3 +:1001D000000000000000E8C0FBE08000000000001C +:1001E00000000000383F7F63E3E3E3677F3C0000EB +:1001F0000000002000A8C080800000000000000077 +:1002000000000000383F7F63E3E3E3677F3C0000CA +:1002100000000102A8F0C4E080800000000000009F +:10022000004020202079FFA7B353D182041C150180 +:10023000387C7EFEFFFBE1C1F8FCFE6E8381C1428B +:10024000004020213B7FFFA7B351D2841C15010041 +:100250000060F0F8F8FCFCFCFCFC6C8585C14102F8 +:100260001F0F0F1F1F3F3F3F0E0E1C1C1E3F7F7FA7 +:10027000E0E0E0E0C0C0C0C0000000000000C0E05E +:1002800000000000000000000000000001010B0F52 +:1002900020202030387C7C7838707878F0E0C0C03E +:1002A0000F0F0F0F0F0E08000000000000000000ED +:1002B000C0C0E0E08000000000000000000000007E +:1002C000010F1F3F3F3F7F7F7F7F7F7F3F3F7F7FCC +:1002D000C0E0F0F0F8FCFEFFFFFFFFFFFFFFFFFFB5 +:1002E000010F1F00003F7F7F00007F7F3F00007FE6 +:1002F000C0E0F00000FCFEFF0000FFFFFF0000FC7C +:1003000001000000003F000000007F000000007FAF +:10031000C000000000FC00000000FF00000000FC26 +:1003200001010001010303030000010101030303B4 +:10033000FEFEFEFCFCFCFCFCE0E0C0C0E0E0FCFEDD +:1003400000000000000000000000000000000000AD +:1003500000000030780808000000000000000000E5 +:10036000000000000001050406070701030100006A +:10037000000000C0E0A0C0B8FCFCD880B0E0E00005 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000FFFF7FFFFFFFFFF939393F3F7FFFFFF777 +:1003B000000000000000C0C0C0C0E0F0DCFEF08023 +:1003C000000021211B1F1F0F0F3FDF070604080835 +:1003D0008080800008B0E0E0C080C0C0C020200065 +:1003E000000000000101040D0F07070303010000D6 +:1003F000000080C080C080F0F8F8B81040C0C00095 +:1004000000000000000000000000000000000000EC +:1004100000000000000000060F1F3F3F3F7F7F7F6E +:1004200000000000030300000000000103030101BD +:100430003F3F1F1FFFFF070100000092FFFFFFFE6D +:100440000000000000000000008080808080C0C0AC +:10045000000000000000000000000000000000009C +:10046000E0F0F8FCFEFEFFFBF0E000000000000002 +:10047000000000000030F8FCC67000000000000022 +:10048000000000000000000000000000000000006C +:100490000000000000000003070F1F1F1F3F3F3F29 +:1004A0000000000003030000000000000000000046 +:1004B0001F1F0F0FFFFF0300000000C97F7F7F3F5A +:1004C000000000000000000080C0C0C0C0C0E0E02C +:1004D000000000000000000000000000000000001C +:1004E000F0F8FCFEFFFFFFFD78700000808080C008 +:1004F000000000000018FCFE63780000000000000F +:1005000000000000000000000000000000000000EB +:10051000000000000000000000000092FF7F7F3F0D +:100520000000000000000000070E0E1C1E3F7F7F31 +:100530001F0F0F0F07070707000000000000C0E0B3 +:1005400000000000000000000000000080C0C0C0EB +:10055000000000000000000000000000000000009B +:10056000E0E0E0F0F0F0F0F0E0E0F070707C7F7F31 +:1005700000000000000000000000000000000080FB +:10058000000000000000000000000000000000006B +:100590000000000001070F1F3F7F7F7F7F3F1F008C +:1005A000000000000F0F0000000000080F07070305 +:1005B00000000000F8F8000000000088FCFCFEFECF +:1005C000000000000000000000000000000000012A +:1005D00000000103060C0D0F1E1C3C38387060E053 +:1005E00003070F1F1F1F1F1F1F1F1E1C18100000B7 +:1005F000C0C0E0E0C0C0C08080000000000000007B +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000070700000000000607030301A8 +:1006300000000000FCFC000000000022FEFEFFFFA6 +:1006400000000000041E3F7FFFFFFFFF7F3F1C00F4 +:1006500000000000033FFFFFFFFFFFFFFEE0000080 +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000C3F7FFFFFFFFFFF7F26 +:10069000000000000000000000C0FCFFFFFFFFFFA3 +:1006A0003F03000000000000000000000000000008 +:1006B000FFFF070000000000000000000000000035 +:1006C00000000000000000041E7FFFFFFFFFFF7F0F +:1006D00000000000000000000000008080C0F0F872 +:1006E0003F1F0F0301000000000000000000000099 +:1006F000FCFEFFFFFF7F1D00000000000000000067 +:1007000000000000000000000000000000000000E9 +:1007100000000000000000003C7EFEFFFFFFFF7FA6 +:10072000000000000F0F00000000000203030101A1 +:100730007F3F3F0FFFFF000000000048FCFEFEFE71 +:100740000000000000000000000001030303070791 +:1007500000010103030307071FFFFFFFFFFFFFFF68 +:1007600007070707030307070F0F07010000000033 +:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:1007800078FCFCFCFCFCFCF8F8FCFEFEF4F0E0F06D +:1007900000000000000020202030387C7C78387079 +:1007A000F0F8FDFFFFFFFFFFFFFFFFFEF8C0C0E016 +:1007B0007878F0E0C0C0C0C0E0E080000000000039 +:1007C00000000000000000007F7FFFEF0F0F070711 +:1007D0000000000000000000FCFCFCFEF0F8F8F84F +:1007E00007030307070F0F0F03030707070F0F0F79 +:1007F000F8F8F8F8F0F0F0F08080000080C0F8F829 +:1008000000000000000000000000010303000007DA +:1008100000010100000307070000FFFFFF0000FFC9 +:100820000707000003030700000F07010000000096 +:10083000FFFF0000FFFFFF0000FFFFFF0000FFFFC2 +:1008400078FCFC0000FCFCF80000FEFEF40000F068 +:1008500000000000000020200000387C7C000070B8 +:10086000F0F80000FFFFFF0000FFFFFE0000C0E007 +:1008700078780000C0C0C00000E0800000000000E8 +:1008800000000000000000007F0000EF0F0F0000DC +:100890000000000000000000FC0000FEF0F8000076 +:1008A00007030300000F0F0F0000070707000000F9 +:1008B000F8F8F80000F0F0F0000000008000000000 +:1008C0000000000000000000000001000000000720 +:1008D00000000000000300000000FF00000000FF17 +:1008E0000000000003000000000F000000000000F6 +:1008F00000000000FF00000000FF00000000FF00FB +:100900007800000000FC00000000FE00000000F085 +:10091000000000000000000000003800000000702F +:1009200000000000FF00000000FF00000000C00009 +:1009300000000000C000000000E000000000000017 +:100940000000000000000000000000EF00000000B8 +:100950000000000000000000000000FE0000000099 +:1009600007000000000F000000000700000000006A +:10097000F800000000F0000000000000000000008F +:10098000FFFF7F1F0F0F0F0F1F1F3F3F03030301C9 +:10099000FEFEFEFCFEFEFEFFFFFEFEFEFFFFFFFE74 +:1009A000010100010103030300000101010303032E +:1009B000FEFEFEFCFCFCFCFCE0E0C0C0E0E0FEFE55 +:1009C000FFFF00000F0F0F00001F3F3F000003015B +:1009D000FCF80000FEFEFE0000FEFEFE0000FFFE32 +:1009E00001000001010300000000010000030303F7 +:1009F000FE0000FCFCFC0000E0E0C00000E0FEFEA9 +:100A0000000000000F000000001F000000000300B5 +:100A100000000000FE00000000FE00000000FF00DB +:100A200000000001000000000000000000030000C2 +:100A3000000000FC00000000E000000000E00000FA +:100A400000000000000000000000000000010101A3 +:100A500000000000000000387C7EFEFEFEFEFCFC74 +:100A6000010101010F0F0000000000060303030154 +:100A7000FCF8FCFCFEFEFEFFFF7E3E7EFFFFFFFE5D +:100A80000000000000000000030F1F1F3F3F7F7F9A +:100A90000000000000000000E0F0F0B0B0C0C0C0F6 +:100AA0007F7F7FFEFFFFFFFFFF7F7F3F0F0F070767 +:100AB0008000000000F2F0C08080E0F8F8F8F8FC58 +:100AC000000000000000010307070F0F0F0F1F1F9A +:100AD0000000000161F0F8F8F8F8F0F0F0E0E0C094 +:100AE0001F3F3F3F3F3F1F07010000000000000085 +:100AF000C0E0E1F3F7FEFEFAFA786C404020000017 +:100B000000000000001F0F03030100000000071F8A +:100B100000303C3F3FFFFBF8F8F878180000000079 +:100B20001C00000000000103070F0F0F1F1800003A +:100B300000001C1E3FFFFFFFFFFFFFFFFF7F0F03B3 +:100B40000000000000000000000000000000008025 +:100B50000000000000000000000000000000000095 +:100B6000E0FCFCF9FFFFFFFFFFFFFFDE1E1C0C0097 +:100B700040C0A0E0E0E08080000000000000000035 +:100B80000000000000000000000000000000010163 +:100B90000000000000000103070101000060F0F800 +:100BA0000303070707030101000000000000000025 +:100BB000F8F8F8F8FCFDFFFFFFFF7F7F3F3F1F0FB6 +:100BC0003F7FFFFFFFFEFCF8F0E0C0000000207058 +:100BD000C0C0808000000000000000000000000095 +:100BE00070E3C7EFFFFFFFFFFFFFFFF8700000009B +:100BF0000080E0F8FCFEFEFCFCFEFFFFFF7F772399 +:100C000000000000E080F09010C000000000000034 +:100C100000000000000000000000000000000000D4 +:100C200000001D1B150F0B01171C00000000000029 +:100C300040E0E0C080A0B030F0E0C0000000000064 +:100C40000000000000000000000303070700000090 +:100C500000001010185A7E7C3870E0E0F0000000B0 +:100C60000000000000010002070705010101010367 +:100C700000000040E080E0C0F0F8F8F8E0E0C0805C +:100C80000000010306020300070303000000000048 +:100C900000008010B8F8F8F0F8F87C3C183010002C +:100CA000000000020505070300030100000000002A +:100CB0000000607060F8F8FCFCBC8C0C04000000C4 +:100CC00000000307030305171B1E0C0100000000B2 +:100CD00000001070F8F8FEF080C0C0C000000000F6 +:100CE000000000000C1E1E1E1E0E0080C0F8FCFE40 +:100CF00000000000000000000000000000000000F4 +:100D00000000000000000000000206070303070FB8 +:100D10000000000000000060F0C0F0F8E0E0E080BB +:100D200000000000000000FCFCFCF87878F8F8F007 +:100D3000000000002060F0F0F06000000000000003 +:100D4000000000000001071F3FFEFCF8F0F0E0C0CB +:100D500000000020F0F0F8C080000000000000005B +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000C0E0E0E0E0C0000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC000000000000CB8F8FCFCC0000000000000AF +:100DD0000000387C7C7C381000000000000000001F +:100DE00000000000000000000101030202000000FA +:100DF00006000000000000E0F8F8F8FC7C3C0C0065 +:100E000000000103030303030303010000000000CB +:100E100070E0E0E0E0C0C0C0C08080C00000000022 +:100E2000000000000001050D0707070F1F0F1FBF7F +:100E300000000000C0E080E0F0C0C0C080C0E0F86A +:100E4000801C7F7F3F3F1F0F0F070703000000003C +:100E50000000000000000000808000000000000092 +:100E60000103070F0F07070703010101000000003E +:100E7000808080C0C0C0C0C0C0C0C0F020000000E2 +:100E8000000000000000000000010100060F5F7F6D +:100E9000000000000000183CB0BCFEF8F8FEFFFFA8 +:100EA0000F0F070703030303010101010000000006 +:100EB0000000008080C0C0C0C0C0C0800000000032 +:100EC000E0F0F8FCFEFFFF7F1F0F030000000000B2 +:100ED00000000000000080C0E0F0F87C5800000036 +:100EE0000000000000000001050D0707071F077F35 +:100EF000000000000000C0E080E0F0C0C0C00000C2 +:100F000000000000000000030000000000000000DE +:100F100000000000000000FC0000000000000000D5 +:100F200000000000000000000000000000000000C1 +:100F300000000040404040C0404000000000000071 +:100F4000070F0F1F1515040000010101000000002C +:100F5000FCFCFEFEF6F777FBFBFBF3F7F7F3717093 +:100F60000000000000000000000000000000808081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA00000000002040C0C080C0F0E0C68488402B0 +:100FB00000000000000000000000800000000000B1 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000007C7C3C18080100000000009C +:1010000000000000000000000206060E0E2E3E3E0C +:1010100000000000000000000000000000000000D0 +:101020003C1C1C0A060E1E3C3C38383030F0706008 +:1010300000000000000000000000000000000000B0 +:1010400000000000000000000000000000000000A0 +:10105000000000000000000000E03078FCFCFEFE14 +:10106000012121317171F9F9F87078383C181811A3 +:10107000FEFEFEFEFEFEFEFCFCFC3E1C3878F8FC8C +:101080000000000000000000000000000000000060 +:101090001010000000000000100F1F3E3E1E1CE05C +:1010A0000101030303030707070301000000000019 +:1010B000F0F0E0E0C0C0C0808080000000000000D0 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E000787878787C7C7C3C3C3E0E0700000000E1 +:1010F00000000000000000000000000000000000F0 +:101100000300010303070707070F0F0F0F0F0F0F50 +:1011100080C0E0F0F0F8F8F8F8F8F8F8F8F8F0F037 +:101120000F07070707030002030301010100000086 +:10113000F00080F0B018181C0C9EFEFCF8F8F8F8CF +:10114000000000000000000000000000000000039C +:101150000000000000000000F878F8F0F07070E087 +:101160000307070F0F1F1F0F0707030301000000EE +:10117000E0E0C0C0C080808000000000800000006F +:1011800003010707070F0F1F1F3F3F7F7F7FFFFFF1 +:1011900080C0E0F0F0F8F8F8F8F8F8F8F8F8F0F0B7 +:1011A000FF7F3C381101010101030303000000002F +:1011B000F0F00000E0E0F0F0F0F0F8F8F87C7C7E71 +:1011C000000000000000000000000000000000001F +:1011D00000000000000000000000000000000010FF +:1011E00000000000000000000000000000000000FF +:1011F0003F3E7E7C7C7878787030301000000000B4 +:101200000000000000000000003F1F1F0F07070F35 +:1012100000000000000000000000000080808080CE +:101220000E0F0F0F0F0F0F0F07030100000000003C +:10123000000000000080808080808080000000002E +:10124000000177FFFFFFFFFFFF7F7F7F3F3F1F1FF3 +:1012500000FCFEFFFFFFFFFFFFFFFFC7C7C1E0F875 +:101260000F07000003070703030101030707070F28 +:10127000F8E00008FCFEFEFFFFFFDFCFC7C3818060 +:101280000000000000000000000000000000C0F0AE +:10129000000000000000101038B8B8F87870602026 +:1012A000F6FFFFFFFFDCC080000000000000000030 +:1012B00000008000000000000000000000000000AE +:1012C0000000000000000000000000000001050711 +:1012D00000000000000000000000F0F0F0E0E0C0BE +:1012E0000F0F1F1F1F1E1E1C1C18180800000000D7 +:1012F000C08080000000000000000000000000002E +:101300000000101818181C1C1C1E1E3E1E3E3E3EDF +:1013100000000000000000000000000000000000CD +:101320003E3C1C1C1C1C1C1C1C0C0600000000006D +:1013300000000000000000000000000000000000AD +:101340000001737FFFFFFFFFFF7F7F7F3F3F1F1F76 +:1013500000FCFEFFFFFFFFFFFFFFFFE7E7E1F4FCFC +:101360000F070003070F0F07070703030303070710 +:10137000F80000808080800080808080C0C0C080B5 +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000103D +:1013A000000000000000C0F0F6FEFFFFFFDCC08080 +:1013B00038B8B8F8787060000000800000000000C5 +:1013C0000000000000000000070F070703131F3F85 +:1013D00000000000000000008080C0C0839F1F1F2D +:1013E0003E3E3E3E3C3C3C3838381C040000000089 +:1013F0001F1F1F1E0E0E0E0E0E060703000000001C +:10140000030307777FFFFFFFFFFF7F7F3F3F3F1F04 +:10141000F0FCFCBEFEDFDFDFDF8F1FFFFF1F1F0FB3 +:101420001F1F03010307070F070707030707070F1E +:101430008F9FFFF7FBF8F8F0E0E0E0E0E0E0C0C0ED +:10144000000000000000000000000000000000009C +:101450000000000000000000003E3C1E3EFCFCF8C6 +:101460000101010101010101010101010000000070 +:10147000F8F8F0F0F0E0E0E0C0C0C0C0000000000C +:101480000000000000000000030302000000000054 +:101490000000000000000000F87CFCFC7C783C7C34 +:1014A0000000000101010000010101000000000036 +:1014B0007C38F8F8F0F0E0E0E0E0F8F80000000038 +:1014C000070F01737FFFFFFFFFFF7F7F3F0F0301C8 +:1014D000F0FCFFFFFFFFFDF8F0F1F9FFFFFFFFFE5B +:1014E00000000000000000000000000000000000FC +:1014F000FC181103070F1D3F3F1F1F3F3E3E3C3EA0 +:101500000000E0E0F0F0E0E0F0F1FBFBDF9F0F3FD8 +:101510000000000000081C7CFCFCFCF8F0B0C0C01F +:101520007FFFFCA8CBC70F8F8700000000000000E2 +:10153000800000000080800000000000000000002B +:101540000000000000000000010303010101000091 +:101550000000000000000000F0F0F8F0F0E0F8F803 +:101560000000000000000000010101000000000078 +:10157000F8F0F0F0F0E0E0E0E0C0C0800000000033 +:101580000103030F1F3F7FFFFFFF3F07070103001A +:10159000C0F0F0F9FDFFE3E3E1F4FCFCFCFC78F8BB +:1015A000000000010307070703010000000000001E +:1015B0000000F0F0F0F8F8FCFE7E3F1F0F0F070F61 +:1015C000000000000000000000000000080F0F0FE6 +:1015D000000000000000000000011F0FCEBEBEBED4 +:1015E0001F1F1F1F1E1E1E3C3C1C0C000000000085 +:1015F000BEBE3E1E1C1C1C1C1C1C1E0E000000003F +:101600000000000001133333737171F0F078393842 +:10161000E03078F8FFFFFFFFFFFFFEFEFE7EFCFCE0 +:1016200010000000010303010100000000000000A1 +:10163000FC0000F8F8FCFCFCFEFE7E1F3F1F0B07C1 +:10164000000000000000000000000000000000009A +:101650000000000000000000000000004060F1F900 +:101660000001010303070303030200000000000060 +:10167000F9F1F1E1E0C0808001000000000000000D +:101680000000000000000404047CFC7C78F8F8F8FA +:10169000000000000000000000000000000000004A +:1016A000F0F0F0E0E0E0E0E0E0E0E040000000002A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D0000000000000000000000000000000010306 +:1016E00000000000000000000000000000000000FA +:1016F00007070F1F1F1F0F0E0400010F0F070F0F0B +:1017000000000000000000000000011B7FFFFFFF41 +:1017100000000000000C1E58FE7F7CFCFCC0C0C016 +:10172000FFFFF7CF1F3F3F7F7E80FEFFFFFFFFF5EC +:10173000E0E0E0E0C0C0800000000080C0E0E070B9 +:1017400000000000000000000000000007070F1F5D +:101750000000000000000000000000007F7FFFFF8D +:101760001F3F3F7F7F7EFCF0FBFF7DF8F9C101004A +:10177000FFFFFEF8A6FE7D3FC0FFFFFDF9E0E0C0E1 +:1017800000000000000000000000FFFF7F7F7F7F5F +:10179000000000000000000000000080C0C0E0E089 +:1017A0007F1FF3F1E09E7FFFFEFCFCBC3C7E7E3C95 +:1017B000F0F0F0F070F8F8F8F0F0C0000000000071 +:1017C00000000000010303030F1F3F7FFFFF7F7F27 +:1017D00000000000FFFFFFFEFCF7FBFCFFE9C0C0BC +:1017E00003030301010000000000000000000000EE +:1017F00080C0E0E0E0F0C0000000183E3E2B292948 +:10180000000000037F7F7F3F0F73EF1FBF0F0700B4 +:1018100000000000C0C0E0E0E0F0F0F0F8FCFCFFE9 +:1018200000387CFCFCF8781000000000000000800C +:10183000FCFC2C040400000000000000000000007C +:10184000000001071F3F7FFFFFFFF8F1F8797B6180 +:1018500070F8FCFCFEFEFEFEFEFEFCFCFCF8F8F060 +:1018600001030E1F1F1F1F0F0307070201030303BE +:10187000F0F000F0F0F0F0F0F0F0F0E0E0E0E0E0A8 +:101880000101010301010303070707070707070712 +:10189000E0E0E0F0F0E0C0C0C0C0C0C0C0C0C0C068 +:1018A0000707070707070301010000000000000009 +:1018B000C0808080000000808000000000000000E8 +:1018C000030F3F3F7FFFFF7E707879792703010C7C +:1018D000FEFEFFFFFFFFFF3F7FFEFCF8F8F0E07029 +:1018E0003F3F3F1F1B0700000000000000000000FA +:1018F00000C8F8F8FCFEFE7F170703070201030388 +:1019000000000000000000000000000000000000D7 +:101910000000000000000000000202030303E3F2E5 +:10192000010307071F0F0600000000000000000071 +:10193000FEFEFCF0E080000000000000000000005F +:101940000000000001030301010303317B7FFFFF5F +:10195000000030787078FCFDFDFDFDF5F1F1F8F840 +:10196000FFFFFFFF7F3F0F1F0F0707000000070F5C +:10197000F8F8FDFFFFFFFFFDFCF8E0000070F0F05D +:101980000000000000000000000000000000000057 +:1019900000000000000000103038383070706060C7 +:1019A0000000000000000000000000000000000037 +:1019B0004000004040406060606040000000000067 +:1019C0000000000000000000000000000000010313 +:1019D0000F161E1E1E1E1E1E3C1C3C7C3C3878F042 +:1019E0000307070707070F0F0E0606000000000099 +:1019F000E0E0C0C0808000000000000000000000A7 +:101A0000F8FCFC7E7E3F1F0F0F070703030F0F0F2D +:101A1000000000000000008080C0C08080808080C6 +:101A20000F0F0F0F0F0F0F07070703010000000034 +:101A30008080808080000000000080800000000026 +:101A40000000000000000103030101030303777F8E +:101A50000000000030786078FCF0F0F0C0F0FEFE8E +:101A6000FFFFFFFFFFFF7F7F7F7F7F7F7F3F0301C0 +:101A7000FFFFFFFED8981999FFFFFFFFFFFFC78EFA +:101A80003F3E3F1F1F0F0F070301070F073F7E7EDB +:101A9000F0F878B8BCBCBCBEBEDEDEBC7C7C7CF89A +:101AA000FCF8F8F0F0E0E0C0C0C0800000000000EA +:101AB000F8F8F8F0F0F0F0F0E0E06030000000003E +:101AC000000000000001010707C3E3F7FFFFFFFF6D +:101AD00000000000809838FCF4B898C04000808076 +:101AE000FFFF7F7FEEF4F0F060800000E4ECDEFFAB +:101AF00080800000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B10000103070F0F1F3F3F7FFFFEFCF1F87878AE +:101B200000000000000000000000000000000000B5 +:101B3000782000000E0F1E3E2A2B08000000000037 +:101B40000F0F0F0F0707070301030303010F0F0F09 +:101B5000A0A0D0D0D8D8E8E8ECECDCDCD8F8F8F8D5 +:101B60000F0F0F0F0F1F1F1F1F1F0F0F060000006B +:101B7000F0F0F0F0F0E0E0E0E0E0F0E00000000085 +:101B80000000000000000001030101000000001F30 +:101B9000000000003870285CDCC84080C060C0C015 +:101BA0001F3F3F3F3F7E7CFCF9F17B7931200003F2 +:101BB000DABB7B3B3B3F7FFFFFFEFEFCFC0000FCF3 +:101BC00000000000000000000000000000071F3EB1 +:101BD00000000000000008080C0C0E0E0E0E3E3E29 +:101BE0003E3E3E3E3C3C3C3C3838781C0C000000FD +:101BF0003C3C3C3C3C3C3C383838380C0000000055 +:101C0000000000000001010707C3E3F3F7F7E7CF87 +:101C100000000000809838FCF4B898C04000808034 +:101C2000DF9F3F7FFFFFFEFEFCF80000F0F8F8F8B2 +:101C300080800000000000000000000000000000A4 +:101C40000000000001010307070F1F1F1F1E1F0FC9 +:101C5000002060E0E0E0E0E0E0E0E0C00000202004 +:101C60000D08000001030303070505010000000043 +:101C70002020000000C0E0C0CFCF6F07070703039C +:101C800000000000000000000000000000050F0F31 +:101C90001010181818181C1C3C7C787838F8F8F8C4 +:101CA0000F0F0F1F1F1F3F3F3F3F1D190800000070 +:101CB000F8F0F0F0E0E0E0E0E4C2C2C3E71F0F0795 +:101CC00000000000010101050F07C3EFFFFFFFFF48 +:101CD0000000000010B8BCF0F8DCCC600080C0C090 +:101CE000FFFFFFFF7E7C7C1C0060F8FCFEFFFFFF17 +:101CF000C0C0808000000000000000000000808064 +:101D0000000000000008183838787878F8F8F8F003 +:101D100000000000000000000000000000000000C3 +:101D2000E0F0F0706040000008181E1F3D39282CBC +:101D3000000000000000000000007E7F3F3F0F0712 +:101D4000000000000000000000000107073F7FFFC7 +:101D50000000000000000000000080808080808083 +:101D6000FFFFFB7B7B7B797978380C0C000000004F +:101D700080C0C0C0C0C0E0E0F0B0000000000000C3 +:101D800000000000070E070717141D0F070F0F03B1 +:101D900000000000000080C080008000E0F0F0F84B +:101DA000030307070F0F1F1F1F1F1F3F3E3C3E1F50 +:101DB000FCFEFFFEFEFEFCFC958000000000000023 +:101DC00000000000000000000307070707070703E3 +:101DD00000000000000000009CFFFFFFFFFDE0008E +:101DE0000000000000000000E0F0D0C0E080C06013 +:101DF00000000000000000000000000000000000E3 +:101E00000000C0F8FC7E7F7F7F0F81C0E0E0F0F033 +:101E100000000000000030F0E0E0E04000000000C2 +:101E2000F8F8FCFC7E7E3E1F1F0F0700000000003C +:101E3000000000000000000080E0C0800000000002 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E800003010F070F1F0F0F0703030000010103DA +:101E90000080C0E0C0C0C0E0C0C000000000008002 +:101EA000030301010000000000000000000000002A +:101EB0008080C4FFFF2F060000000000000000002B +:101EC000000000000000000000000000000060FEB4 +:101ED0000000000000000000000000000000000002 +:101EE000FEFF7F0F070307070F1F070F0600000005 +:101EF000000080C0E0E0E0C0C08080800000000002 +:101F00000000000001000703070F0707030101009D +:101F10000000000080C0E0F0E0E0E0F0E0E08000E1 +:101F200000010101010000000000000000000000AD +:101F3000008080C0C0C0E0603A3F1F0F0600000074 +:101F4000000000000000001C1F1F0F0F0707070FF5 +:101F50000000000000000000C0C0C0C08080800001 +:101F60000F0F1E3E3C7CFC78383010000000000053 +:101F700000000060301000000000000000000000C1 +:101F80000000000000000000000002020607070732 +:101F90000004347D7F7FFFFEFE3A30100000000019 +:101FA0000303010100000101000000000000000027 +:101FB0000080C0C0C0E0E0E0C00000000000000001 +:101FC0000000000003070F00000000000000006791 +:101FD000000000000080800000000000000080C0C1 +:101FE000FFFE38200000000000000000000000009C +:101FF000F0F01000003C3C7E3E7E3F3E7C3E1000F8 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3n-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3n-.bin.hex new file mode 100644 index 00000000..425c676a --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-3n-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000FCFEFC000000000000CA +:10004000073C387B7F7F7F3F3F7F7F3F3F3361C0EF +:10005000C040200000B0B81C04C6F6E4ECCE9EDF21 +:100060001C1C1E1E1F1C080C0505010303267E7F99 +:10007000787838383878F0F0F0F0F8E0C0003CFCE0 +:1000800000000000000020402000000800010F1FB9 +:10009000000000000000000000000000C0E0F0F0E0 +:1000A000004040E0E8D8F07030180E060200000072 +:1000B0000000000000000000000000000000000040 +:1000C0000001030F0E08183CFDFBC30100000000F7 +:1000D000001CFCBE3E3F7FFFFFFFFFFFFC700107DF +:1000E000000000000000000000000004000000000C +:1000F00000000000000000000000000000083E704A +:10010000C7070706060E7E7F7F7F7F3F3F3F1E1C8F +:100110008080000000000C04040C8C9C9C1838703B +:10012000000000030F0F0F070703197CFEFFFFFFFE +:1001300000000088CCECFC9C8CCCECC607EFEFCF29 +:100140000000000000000000000020402000000827 +:100150000000000000000000000000006070488403 +:100160001F1F373331313919030F0F1F17334081E8 +:10017000E0F0F0F0F0F0F0F8F8F8F8F0E0800C1EA5 +:100180000000000704080804030008080403000036 +:10019000000000000000000080790000008067007F +:1001A0003D383C3F3F3F3F3E1F0F0F070704000312 +:1001B000E060703030F070303090B0A020409CFC97 +:1001C0000000000000000000204020000008031F85 +:1001D000000000000000000000000000000080801F +:1001E0003F3F3B238387CFFFFFFF7F7F7F300000B0 +:1001F00080C0C0C0C0C0C8D8F0F0808080000000BF +:1002000000101010001E1701000000000000000088 +:1002100000000000000080800000000000000000DE +:1002200000000000001003000000000000000000BB +:1002300000000000000080F01F0700000000000028 +:10024000000000000000000004080400000100039A +:10025000000000000000000000000000000010B0DE +:1002600000070F0F2F000E0F0F0F070707030000E7 +:10027000783C9CBE1F1FFEFCFCFCF8F8F800000058 +:100280000000000000000000020402000000000066 +:1002900000000000000000000000000000800038A6 +:1002A0000707EFF313000100000003030100000043 +:1002B000F8FC9E8A83C17D600047FEFEFEC0000000 +:1002C0000000000000000020402000000800011F86 +:1002D0000000000000000000000000000000C0E07E +:1002E0001F3733393939110B0F1F1F377340800EF9 +:1002F000F0F0F0F0F0F0F8F8F8F8F0E0800C1EFE06 +:1003000000000000000000000FF800000003F800EB +:1003100000006010080810E080080810E08000006D +:100320003F7371787C7E7E3F1C1C0C06030200002C +:10033000C0E0E0E0E070F0F0F0707020604C5CFC39 +:100340000000000000000000204020000008000322 +:10035000000000000000000000000000000040E07D +:100360003C387B7F7F7F3F3F7F7F3F3F3361C006CD +:1003700040202000B0B81C04C6F6E4ECCE1E1F1FBF +:1003800000000000000000002040200000080003E2 +:100390000000000000000000000000000000C0E0BD +:1003A0003160687C7E7F7D3C1C1C0E0706000103CB +:1003B000C0C0E06060F0F0F07070602878FCFCFC79 +:1003C0000000000002020904020101000000000018 +:1003D0000000000000000080806010C030000000BD +:1003E000000000030707060F0F0F0F0707030100A8 +:1003F000003070F8B81848CCCCDCFC9C8CCCE8C839 +:1004000000000000000000000040308867100F006E +:1004100000000000000000000000000080008000DC +:100420000000000000000000002040200000080143 +:10043000000000000000000000000000000000803C +:10044000071F3F3D7070383F3F1F1F070300000329 +:1004500080C0F0FC0E030B7BFAF8F0C4840422F297 +:100460000000060C1C180E070E0F0F010000000004 +:10047000000000000000C080C0C080C0000000007C +:100480000000000000000004010000000000000067 +:100490000000000000000000C0780F030000000012 +:1004A00007073B3010191F1F1F0F0F0F0707000012 +:1004B000F8F87878F8F8F8F8F8F0F0F0F000006064 +:1004C00000000000000000204020000008031F037F +:1004D000000000000000000000000000008080C05C +:1004E00000000000000000040804000001000300F8 +:1004F0000000000000000000000000000010B078C4 +:100500000608080C00260F0F0F070707030300005B +:10051000FCFC7C3C1C7CFCFCFCF8F8F8F88000300F +:1005200000000000000000080001000000000000C2 +:10053000000000000000000000C07010000000007B +:10054000000000000000000004080400000100009A +:10055000000000000000000000000000000000702B +:100560000F0F1FE72701000000000707030100002D +:10057000F0B89C040682FAC1018EFCF8F8800018DD +:1005800000000000000000102010000004001838D7 +:1005900000000000000000000000008080C06040FB +:1005A00000000003070E0E1C1C00000000000000ED +:1005B0000000000080000C1F3F3F3F7F7F1F0C00AA +:1005C000000000000000000000000000000000002B +:1005D0000000000000010101000000000000000018 +:1005E0000000000307073B7B73793F5F230703018C +:1005F00000000080E0E0F0F0E0A0F0E0E0C00000EB +:1006000000000018383C3C3C1800000F07030100B4 +:1006100000000000000000000003030EFEF8E000F0 +:10062000410008BCFEFFFFFE7E3F3F0E04090306AB +:100630000080C060307078783C9C3C79F1F3670FA3 +:10064000C0E0F0FCFEFF3F070301000000000000D7 +:100650000000000000C0F8FEFFFFFD7D770F0301E2 +:10066000000000000000000008100800000218F060 +:10067000000000000000000000000000000080C03A +:10068000383C1F1F8F46E67270388DC7E2E0F0F8E5 +:100690004000903870F0E0400040C0800000000052 +:1006A0001F3E707070787C3F3F1F0F0F07030200E2 +:1006B000C0E070381C0C06C2E6E4E4EC88080C0CC0 +:1006C000C1E3F7FFFFFFFFFFFFFF3F8FE1FFFFFFEA +:1006D00080C0E0F0F03818080C86860203E7C6CC2C +:1006E000AF840200000004070F07030000020707A1 +:1006F00098B030707060E0E0E0E0C0000020F8FCEE +:10070000000000000307073B7B73793D5723070375 +:100710000000000080E0E0F0F0E0A0F0E0A0C00009 +:1007200000000307173B7B73793D57270303000045 +:10073000000080E0E0F0F0E0A0F0E0A0C0000000E9 +:10074000060F0F0E1E1E3C383830300000808080AF +:100750000000000000000018181C0C000000000041 +:1007600000000000000000010100002072FEFE7F7A +:10077000000000011F7FFFFFFFFEF4C0000000002B +:1007800000000020C1E3F7FFFFFFFFFFFFFF10C3E2 +:1007900000000080C0C0C0E0F0F0F8E888CC04E4BD +:1007A00000000000000000000000000E0E1E1F1FD1 +:1007B00000000000000000000000000080100002A7 +:1007C0000000000000000008000000000000030F0F +:1007D000000000000000000000000000008080C059 +:1007E0001F3F3A3838383C3E1F1F0F0F07060000E6 +:1007F000E0E0F0707030301818881830206040D079 +:100800000000070F0F06000060F0F87912200000CA +:10081000000000B8FCBC78E0F67F1FBEF830000096 +:100820000410000800201070E2F0600000000000DA +:1008300060F0F06000004030702000000000000018 +:100840000000041C1C303D7E7CFDF9D3E3F3F979F4 +:10085000C0E06060C0802040C0808080008080C098 +:10086000797D7C7C78787C3E3C380001030F3F7FAB +:10087000C0C0E0E0F07070600000002070F8F8E0A8 +:10088000000706070F0F1F1F1F3F3E3C38363E3F35 +:10089000001030E0C0C080800000000000404060D8 +:1008A0001F1F1E1E1F1F1E0F0F0E000000070F3FF1 +:1008B0002030303818181C1C800000487CFCFCF8E4 +:1008C00001030707070F0F0E1F1F1F3F3F3E3F1E6D +:1008D000FFFFFEF1C3C307878F8F0F0F0F0F0707AF +:1008E0000C000000070F1F7E000000000000000049 +:1008F0000707078787870300000000010303070F2E +:10090000FFFFFFFEFCF8F0F0E0E0E0E0C0E0E0F028 +:1009100098081010103020000000000000000000B7 +:10092000F0F0F0F8F8F0E00000203070F0E0800027 +:1009300000000000000000000000000000000000B7 +:1009400000000000000001010100000038F87D3FB8 +:100950000003071F7FFFFFFDFEFCE84000000003CF +:100960000F03000000000000000000063F1F0F03FF +:1009700003070F1F3F7F7F7F3F1F0E0640C0C00051 +:10098000FCFFFFFFFFFFD783010000073FFFFFFFD2 +:10099000386C68486FBFBBBFBDBF3DBFDFDEECED4D +:1009A000FFFFFFFEE0C0800000000000000000002C +:1009B000F8F0E70606060303067ED80000000000F4 +:1009C00000000000000000800010F0F0F0F0F0F0F7 +:1009D0000000000000000000000000000000000017 +:1009E000F0F8880000000000000000000000000097 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A10000000000001030707060F0F0E0F1F1F1F26 +:100A200000000000007C3F1F0703010107000000D9 +:100A30003F7F7F7E3C9E86808080E6FCFCFC1C0025 +:100A40003F7F7FFEFCF8F0E0C0C0008080800000A7 +:100A500006840404080808000000000000000000EC +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A8000000000000000000000004060383E1E0E24 +:100A900000000000000000000000000001030387C8 +:100AA0000F07030200000000000000000000010327 +:100AB000878F0F0F1F3F3E3E1F0C000020E4FEFEFD +:100AC00000000000000000000070FCFEFFFFFFFFC0 +:100AD000203010380C070601010103030787F7F3E4 +:100AE000FFFFFFFFFFFFFFFCF0E0E0E0C0C0C080C1 +:100AF000F3F1F9F8FCFE7E3C180000000000000055 +:100B0000F8F8FCFEFFFFE7EFCFC7CFC7E3F03C06E6 +:100B100000000000000000808080808080000000D5 +:100B200006030103020204040400000000000000A8 +:100B300000000000000000000000000000000000B5 +:100B40008080000000000000000000003C0E060352 +:100B5000000000000000000000000000202060E015 +:100B60000303070703030101000001000000000068 +:100B7000E0F0F0F0F0F8F8D8DCCCC0E06000000065 +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC00000000000000000001038387878384070CD +:100BD0000000000000000000000000000000000015 +:100BE00090E0E04000000000000000000000000075 +:100BF00000000000000000000000000000000000F5 +:100C00000000000000000000000000010001077F5C +:100C10000000000000000000303C24BAFEFC9CC82C +:100C2000FFFFFFFFFFFFFF7FFF977FFFFFFE7E7F3E +:100C3000E0C0E0E0F0F0E0E0E0F0F0F0F0F878FCA8 +:100C40000F1F3F1E0F0F03010000000000000000F7 +:100C5000C0C0C0C0408040C0C0C0C0400000000054 +:100C60000000000000000000000000000000000084 +:100C700040404000000000003E3E1E0C000000000E +:100C8000000000000080E0F8FEFFDFBF1F0781804A +:100C9000C040404000000000000080C0C0E060E0B4 +:100CA000C1E0E0E0F071F0F0E0E0F0F0F0707878B2 +:100CB000E0F0F070F0F0F8787C3C300000000000CC +:100CC000000000000000000001010101000000011F +:100CD000000000000000C040406060C0C080B0F074 +:100CE0000301070301030F0F0707070300010000BB +:100CF000F0F0F0F0F0F0F0F0F8F8F47FFFFFFFFF15 +:100D000000000000000006060202030301010101C9 +:100D10000000000000000000000000000000888AC1 +:100D200000000000000000C1E7FFFFFFE6C00080F8 +:100D3000AAAEFC7D7FE8E0C0D0D090101008080873 +:100D40000000000303000203000000000000000098 +:100D50000000000000000000000000000000000093 +:100D60000100000202030303010101000000000072 +:100D70000000000000000000000000000000000073 +:100D80001F3F0B073F1F1F3F0F3F3F7D7E7E7E3D76 +:100D9000C0C080C0C0C28EFEFEFEFEFEFC7AB0C0A7 +:100DA0001F07030103030303030103010000000005 +:100DB000E2E0F0F0F0F0F0F0F0E0E08000000000A1 +:100DC000180808080C040404C6E2E2E2E2F0F0F0BD +:100DD0000000000000000000000000000000000013 +:100DE000F0E060E0F0F078F878200000000000000B +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000080406D0 +:100E1000000000000000000000000000000000F0E2 +:100E200047C78F8F976300111F1F1F17070300000D +:100E3000F8FCFEFEFEFFFFFFFFFFFFFEAE0480009A +:100E4000070F0F3F7FFFFFFFFFFF7F7F3F0F013B3C +:100E5000BCFEFFFFFFFFFEFCF0FCFEFFFFFFFFFEFE +:100E60007F7F7F3F1F0F0F0701030707030F1F7FC0 +:100E7000F8E0F8FCFEFEFEFEFCF8E08080C0E0FE3C +:100E80007FFFFFFFFFFF7F1F3F7FFFFFFFFF7F1FF2 +:100E9000FFFFFFFFFEFCF8F8F8F8F0E0C0F0F8FC08 +:100EA0000F3F7F7F7F3F0F070F1F1F0F070F1F3F52 +:100EB000FEFFFFFFFFFEFEFCE0E0C080C0C0E0F0F0 +:100EC00000008040E0C080000000000000C0E04062 +:100ED0000000000000000000000000000000000012 +:100EE0000000000040A0602070D09880000000004A +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000060F0F07193C3C1D7FFF7A +:100F200000000000000000000000000000000000C1 +:100F3000FBF761070F3F7C783000000000000000E5 +:100F400000000000000000808090185CBC9E0FBF75 +:100F50000000000000000000000000000000000091 +:100F6000FFFEFCF8E07038787830000000000000E8 +:100F70000000000000000000000000000000000071 +:100F80000000000000200000080001010000010333 +:100F9000004400000307070300C0E8E1F170E2C06D +:100FA000230100000000000010000000000002000B +:100FB000D080012302076EF8FC7C3800000100009D +:100FC0000020000080C0C086EF7FFEBC3E1F0F37B0 +:100FD000000080000000000000000024C0E0E0C02D +:100FE0007D7E3E3C1840180C1E1E0C0000000800C0 +:100FF00080000040000800000000000040000000E9 +:101000000000000004041C1C3C3C3C3C78747C7CCC +:1010100000000000000000000000000000000000D0 +:101020007C7C7C7C7C3C3C1C0C000000083C7CFCF8 +:1010300000000000000000000000000000000000B0 +:10104000032377FFFFFAF8E3F7C79F1F1F1F9F8F48 +:10105000C0C0C0800040C0808080808080C0C0F060 +:101060008FCFC3C3C3C381810000000020E0C00054 +:10107000F0F8F8FCFCFCFCF8F0C0000003377EFC44 +:101080000000000000020402000000000000000058 +:1010900000000000000000000000800C00000000C4 +:1010A0000000000000000000000000000020200000 +:1010B0000000000000000000000000000000000030 +:1010C000E76F0F0F1F1E1F3F3E7E7C7D79343E3E33 +:1010D000E0C0C0903030706060E0E0C0C0C0C0E0F0 +:1010E0003E3E7F7F7F7B7E3C1C00000000093F7FEF +:1010F000E0F0787878707070000003071F9EB87079 +:1011000000000000000000000000010101010101D9 +:1011100000000000000000000000000000000000CF +:101120000103030707070301000000000103070F85 +:1011300000000000000000000000000000000000AF +:101140000000000001071F3FFFFFFFFCE0A1C3E319 +:10115000000000F0FCF8F8E0C0C20E3CFCF8F8F02B +:10116000F3F3E3E1E1C1E1E1000000B0F0E0C080B1 +:10117000E0F0F8F8FCFCFCF8F0C000060E1E3E7C27 +:10118000000000000000000000000000000000203F +:10119000000000000000000000000000000000004F +:1011A0003B3C3E3C7A7F7E7E3F0E000000317BFF61 +:1011B000000000000000000000000000000000002F +:1011C0000000000002060E1E1E3E3E7E7E7E7E7EDB +:1011D000000000000000000000000000000000000F +:1011E000FEFEFEFEFE7E7E3E30000000021E3E7CC5 +:1011F00000000000000000000000000000000000EF +:10120000007FFFFFFEFEFCFAFEFEFCFEBE3E3D3F01 +:10121000000000000000000000000000000000804E +:101220009F9F9F8F0F0F070301008080C0C0800029 +:1012300080C0E0E0E0D8F8F080030303071E3C78AC +:10124000000000000000010000000000000000009D +:101250000000000000800080000020000700000067 +:101260000000000000000000000000000C00000072 +:10127000000000000000000000000000000000006E +:101280000303010303030303070707070707030318 +:10129000F8F8F0F0E0E0C0C0C080C0C08040C0E01E +:1012A000030301010101010000000000091F3F7E4E +:1012B000F0F0E0E0D8F8F0F02001038F8F9E3C784A +:1012C00000000000000000000000030F1F1F1E3F71 +:1012D000000000000000000000000080C0FFFF5F71 +:1012E0003F3E3E3E7E7F7F7E3C08000000317BFF1C +:1012F0003F3E08213F3F3F3F3F3F3F1F1F1F0F0E15 +:10130000000000000000000000000000000000805D +:1013100000000000000000000000000000000000CD +:1013200000000000000006828286CECECE8C1C38E3 +:1013300000000000000000000000000000000000AD +:101340000000000000000000000C00000008181859 +:101350000000000000000000000004000000000089 +:1013600018181818181818080000000000000818AD +:10137000000000000000000000000000000000006D +:101380003FFFFFFFFFFFFDF1F9FDFFFFEB03030B45 +:10139000FCFEFCF8F0F0E0F0E0E0E0E0C0C0A0E02F +:1013A0000B5BF9F1F10100000000000000000000FB +:1013B000F0F0F0F8F8FCFCF8F0F06000133F7EFC71 +:1013C00001010307070F0F0F1F1F1F0E0F0F070746 +:1013D000F8F0F0E0C0C0808000000080808040E035 +:1013E00007070303010100000101030F1F3E7C00FA +:1013F000E0F0F0F0E0F0F04203838E1E1C1818308D +:1014000000000000000000000000000000080818B4 +:1014100000000000000000000000000000000000CC +:101420001818181818080800000000000000081814 +:1014300000000000000000000000000000000000AC +:101440007FFFFFFFFFB8D0E1B1F1FBFFEB03030B20 +:101450001EBEFCE0063EFCFCF8F8F0F0F0E0F0F810 +:101460000B5BF9F0F000000000000000000000003D +:10147000F8FCFCFEFFFFFEFE7C702001133F7EFCAB +:1014800003070F1F3F7F7E7EFCEDF1F9ECFCFE7E33 +:10149000F8F8F0C090903060E0E0C0C0C0E0F0F834 +:1014A0007C7C7C3E3E3E3C3C100001031F3F7C00A8 +:1014B000787C7E7E7C78F878600183879E1C38700B +:1014C0000000000000000101070F3F7F7E6C79746F +:1014D000000058107078FCF8F8F0C4183060C0E0D4 +:1014E0003E3E3F1F1E3E3E3F3F18000002071F3F8B +:1014F0006070707038383870000000044CFCF8F0F0 +:101500000303030707070703010203030303070796 +:10151000E0E0E0C0C0C0A0E0E0E0F0F0F0F0F0F803 +:1015200007070102030100000000000000000101A4 +:10153000F8F0F0E0E0E000080C5C7878F0E0C080C3 +:1015400000000103060E0F0F0F0F0706040107032B +:101550000040E0B01098D898B8B83878F0F0F0C0F3 +:101560000300000103030301030303000000000064 +:101570008018FCFCFCFCFCFCF8F8F000000000000B +:1015800000000000000003071F3F3F7E6870787670 +:10159000000000000000F0F8F8E08000000000000B +:1015A0007E7F3F3E3E3C1E1C0000000101030307FE +:1015B00000000000000000101030F0E0C0C080000B +:1015C0000001070F1F313030383F1F1F1F1F1F0F33 +:1015D000000080C0C0C0707C7664E4E4CCCCD81835 +:1015E0000E0003070F0F0F070F0F0F000000000082 +:1015F0003C6CF0F0F0F0F0F0E0E0C0000000000023 +:101600000000000000081818183838383038787092 +:1016100000000000000000000000000000000000CA +:10162000707878783838381818080000003878F85A +:1016300000000000000000000000000000000000AA +:101640000F1F3F7FFFF8F8F1F7C7CF0F87C7C7C756 +:10165000C0E0E0C00000E0C0C0C0C0C0E0E0E0E02A +:101660008787C3C3E3C38381810000002060E080DB +:10167000F0F0F8F8FCFEFEFCFC787803071F7FFC16 +:101680000000000000000000000000000000010158 +:101690000000000000001000080C0434FEFFFFFFF3 +:1016A0000101020203030303030100061C787F7F8C +:1016B000FDFEDFEEE0D0B0F0F8F8F00040C08000B2 +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E0003C3F3F3F3F3F3F1FCFFFE9F8FFFFFFFF7A +:1016F00080983870606080989898D818D0F0E0C0D2 +:101700001B070307070F070707030307070707035D +:10171000C0C0C0C08080808080C0C0C0C0C0C0C009 +:101720000303030707030101000000000101030395 +:10173000E0E0E0E0E0E0F0F0F06000000090F8F8B9 +:101740000000000000000000070C0800000000007E +:101750000000000000000000FC7C3C78F0FC7CF8FD +:10176000010307060F0F0F0F1F1F1F1F1F1F3F3FF4 +:10177000C0800000C0E0E0E0E0C0C0C0C0C0E0E069 +:101780003F3F0C0C0C0F0F07020303030101010084 +:10179000C0080878E0F8F87830008080C0C0E050D9 +:1017A000010103030307070F070303000000000004 +:1017B000C08000008000000080C0C0000000000069 +:1017C0000000000000000000070C080000000000FE +:1017D0000000000000000000FC7C3C78F0FC7CF87D +:1017E0000103070E0F0F0F1F3F3F3F3E7C3E1E1FA2 +:1017F000C0800000C0E0E0F0F0F0F8FCFCFE7C7877 +:101800003F7FFFFF7F1E0C060E0C0C0C0E070E0C0C +:1018100030C2E6FF070303010000001010389018E3 +:1018200008080C1C18181038383C3C080000000050 +:1018300018181C0E04040606020203030000000030 +:1018400000000000001F3F7F7FFFFEFCF4F9FC74E6 +:101850000000004040800000000060F0F0E0E4473D +:101860003E3F1F0E0F0F0F0707070703000001077A +:10187000430303030686C682808080000898F8F040 +:101880000B0F0F07070703070303010102070703F5 +:10189000E0E0C0C0C0C080808080C0E0E0E0E0E068 +:1018A000030303030707070703000000000000000D +:1018B000F0F0F0F0F0F0F8F8F8D0000040647E7F2F +:1018C0000F0F1F1F1F1F1F1F3F3F3F3F1F1F1F1FC8 +:1018D000E0E0E0C0C0C08000808080C0C0C0C0E048 +:1018E0001F1F1F0F0F07000000010303030706045B +:1018F000E0E0E0E0800020206040C0808000000048 +:1019000000000000000003060E1E1C3C7870301022 +:1019100000000000000000000000000000000000C7 +:101920000000010103070F0F03000000000000008A +:10193000C0E0E0F0F4FEFFFF3FFF3E0101000000C9 +:10194000000F0F0F0F0F0F0F87C7E3F1F8FEFFFF18 +:10195000F01808C4E4E4ECFCCEC6E2F3F903860414 +:10196000FEFE7E3F1F0F070F00000000000000007A +:101970004C0C0C1CFCFCF8F0000000000000000007 +:101980000000000000000000000000000000020352 +:10199000030F0F0F0F07070303217CFD7F7F3F3FDE +:1019A0000707070F0F0F1D1E0E000000081D3F7FC9 +:1019B000398088C0C0C0C0C0800000008080C0C026 +:1019C0000000000000000000000000010000000016 +:1019D00000000000000000000000800080000020E7 +:1019E00000000000000000000000000000000000F7 +:1019F00000000000000000000000000000000000E7 +:101A00000000000000000000070C080000000000BB +:101A10000000000000000000FC7C3870FCFC78F83E +:101A2000010307070F0F0F1F3F3F7F7F3F0F074740 +:101A3000C0800080C0E0E0C0840404A4C08000C076 +:101A40007F7FEFFFFEFF660703010000000000003C +:101A5000E0FFFF7F01010180C0C0E070380C181862 +:101A60000000000000000000080E0E04000000004E +:101A70000C06060707030203030301000000000031 +:101A80000000000000000000000000000000000254 +:101A90000000000000000000000000000000000046 +:101AA0000E1E7EFEFEF8F0E02000000000000000A8 +:101AB0000000000000000000000000000000000026 +:101AC00000000000000000000000000000BC100347 +:101AD0000000000000000000000000000060F8FEB0 +:101AE0000F100000000000000000000000010101D4 +:101AF000DFBF7F2F7F7FFE7E3C2C0000888CFEFFA7 +:101B000000000000000102010000000E0E0E0E0E8B +:101B100000000000000000000000000000000000C5 +:101B20000606060E5E5E7E7F3F3F9FC3E5E1E0E076 +:101B300000000000000000C0C08080808000000025 +:101B4000000000000000FFFF7F3F1F8F8F878B8FFB +:101B50000000000060E0E0E0800000808080000085 +:101B60001F1F3F1E3E1E0E1E3C3C1C1C00000000A2 +:101B70000000000000000000000000000000000065 +:101B8000000000000000000000003F3F1F0F0700A2 +:101B900000000000000000000000008086870F1F8A +:101BA0000001000301000703010C00000000000019 +:101BB0003FFEFEFE3CFCF8F8F8FCFCFEFEFFFFFFDB +:101BC0000000000000000000000000000000000114 +:101BD0000000000000000000000000000000008085 +:101BE00000080C0E7E3E1C000001030F020F073F91 +:101BF000C060301C1E1E3E7EFCF8F8F0F0E0FCFFDA +:101C000000000000000001010100000000000001D0 +:101C10007E1E3E7F3F1F8F8FC7EFE773F3F9FAF306 +:101C2000030307070F1F3F7F7FFF7F7EFCFE7E1EA3 +:101C3000F7F3E3E7C3C3CF879F8F070700000000D8 +:101C4000000000000000808080C0C0E0E0E0E0C054 +:101C50000000000000000000000000000000000084 +:101C6000C0C0C0C080808000808080000000000074 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C900000000000000000000000000000007C7F49 +:101CA0000000010000202167E2C1C361613010061D +:101CB000FFFFFF6C0004FCFCFCBCF8F8F8F0F060DF +:101CC00000000000000000000000000000030F1FE3 +:101CD00000000000000607070707033FFFFFFFFFA4 +:101CE0001F0F0703010000000000000000000000BB +:101CF000FFFFFCF0C000000000000000000000003A +:101D000000000000000101010101000000000000CE +:101D100000000000000080C0E0FA5E3E0600000007 +:101D2000FFFFFFFF3F170F1F1F1F0F0F07060000CA +:101D300000000080808080808080808080000000A3 +:101D40000000000080C0C0C04040606020203030F3 +:101D50000000000000000000000000000000000083 +:101D60001010181808080C0C0000000000000000FB +:101D7000000000000000000003077F7F7A200000C1 +:101D80000700000100000404060202030307070F16 +:101D9000F8F8F8F8FCFC7CFC7C7C3E3E1EAE3E3C39 +:101DA0000F0F1E1E1E3C3D7C7CF8F878F8FCFE7E72 +:101DB0001C7C7C783878F8F87070F0707000000047 +:101DC0002E3E1C04083C7EFCFCFBD79F0F070F0F28 +:101DD00080800000000000000020A0A0F0F0F0F0E3 +:101DE0000601070E0F1F070700000000000000009B +:101DF000E0E0E060F0F0F8F8383C3F1D1C0E0F0406 +:101E000000000000000000000000000080C04060F2 +:101E100000000000000000000000000000000000C2 +:101E200020301018080C0406020301010000000015 +:101E300000000000000000000000008080C0406042 +:101E4000030703030109080C04060607070E0E1E0C +:101E5000C0D1F3FFFFFCF0F0F8787C3C5C78787838 +:101E60001C3C3C7D78F8F9F8387CF8F070380000BC +:101E7000F8F8F0F0F0F0F0F0606000000000000012 +:101E800000000000000001000101030F3FFFFFFF01 +:101E9000000000303C24BAFEFC9CC8E0C0E0E0F04A +:101EA000DF1B0F1F0F0B070F0F1E0F0707330E014E +:101EB000F0F0F06060A0A080000000800000C88CFE +:101EC0000080C0C0406060203030101818080C0C32 +:101ED0000000000000000000000000000000000002 +:101EE00004060602030303030301010000000000CF +:101EF0000000000000C0C0E0E0D0D0C8686C6637C9 +:101F0000000000000000000001000101030F3FFF7E +:101F10000000000000303C24BAFEFC9CC8E0C0E099 +:101F2000FFFFEF470F0703050E1F0F070F1F0F3FA0 +:101F3000E0F0F0F0F0E0E0E0E0C0C0E0E0E0E0C0C1 +:101F4000030103070301000404060203030303075C +:101F5000C0E0E0E0F0F0F8F878787C3C3E9EAE3CE3 +:101F6000070F1E1E1E3E7CFCFCFC3C7EFCF8783CF1 +:101F70003C7C7C7C18186868200000000000000091 +:101F800000C0C0C040606020203030101018180819 +:101F90000000000000000000000000000000000041 +:101FA000080C0C0404060603040C0C0404000000D6 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000203010100050700011FDE +:101FD000000000000000C07020B0B0900000008041 +:101FE0003F3F3E3D3F3F1F0F3F1F093F1F3F0F1F1A +:101FF0000000C0E0E0F0F0F8F8FCFCFCFCBE9EFF46 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4a-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4a-.bin.hex new file mode 100644 index 00000000..91d24ab9 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4a-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000206070701030301000000D2 +:1000100000000060F090E0E0E0B078B8D0C00000F0 +:10002000000206040C0C1808000001010103030380 +:100030007C3C5C7CF8F87878E0E0C0C0E0E0F8FC5C +:100040000000000001030103070E0E1C1E3F7F7F0E +:100050007F3F7FFFFFF7F7E7000000000000C0E0F0 +:10006000F0F0F0F0F8F8F8F80000000000000000F0 +:100070000000000000000000000000000000000080 +:1000800000000000030F070F1F0F0F1F0F07060FC1 +:1000900000000060F0F8F8F0F0E0F0F8E0E0E000D8 +:1000A000000080C0E0F0F1FFDF86000000000000EB +:1000B00000000000000080C0E038000000000000E8 +:1000C00000000000030F070F1F0F0F1F0F07060789 +:1000D00000000060F0F8F8F0F0E0F0F8E0E0E00098 +:1000E0002F9FBF3F1E1E1E0E3838387C7CFFFFFF3F +:1000F0000000000000000000000000000000C0E060 +:100100000000071FFFFEFE000000000000000000CE +:100110000000E000000000000000000000000000FF +:100120000000000080C0FE3F7F1C080000000000AF +:10013000000000000000000080C00000000000007F +:1001400000000000000001010000000000000000AD +:100150003F3F7F7FFFFFFEFE000000000000000029 +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:1001800000000000E0F8FCFE770100000000000025 +:1001900000000000000000000080000000000000DF +:1001A0000000000000182442424224180000000011 +:1001B000000000000000000000000000000000003F +:1001C00000000000001824424242241800000000F1 +:1001D000000000000000000000000000000000001F +:1001E0000000000000101C2222222224180000001F +:1001F00000000000000000000000000000000000FF +:100200000000000000101C222222222418000000FE +:10021000000000000000800000000000000000005E +:1002200004462F2F2F7FFFA7B353D1800000140166 +:10023000387C7EFEFFFBE1C1F8FCE642030101428F +:100240000044262F3F7FFFA7B351D0800014010048 +:100250000060F0F8F8FCFCFCFCFE6E0705014102B2 +:1002600003020103070F07030E0E1C1C1E3F7F7FB6 +:10027000E0E0E0E0C0C0C0C0000000000000C0E05E +:100280000000000000000000000000080D0F0F0F2C +:10029000202020302040404020607878F0E0C0C02E +:1002A0000F0F0C0800000000000000000008000014 +:1002B00080000000000000000000000000000000BE +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000010101030303C1 +:10033000FE2E1E3C7CFC7C3CE0E0C0C0E0E0FCFE0D +:1003400000000000000000000000000000000000AD +:1003500000000030780818000000000000000000D5 +:10036000000000000001050406070701030100006A +:10037000000000C0E0A0C0F8FCDCC880B0E0E000F5 +:1003800000000000000000000080C00000000080AD +:10039000000000000000000000000000000000005D +:1003A0001F1B0F1F3F1F0F0038383C3E7FFFFFF021 +:1003B000E0F0F0F0F0E0000000000000C0E000001D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000101040D0F07070303010000D6 +:1003F000000080C080C0C0F0F8B8981040C0C000B5 +:1004000000000000000003030703030703010207C5 +:100410000000000012B7EFF9F3E7C7CFC78F878757 +:1004200003010000000000010000000000000000C7 +:10043000CDC3E3E30100F8FEFFFF7F7F3F7F7FFF37 +:1004400000000000000080C0C0C0C0C08080C0C0EC +:10045000000000000000000000000000000000009C +:10046000E0F0F8FCFEFE3F1B0000C0E0C0C0C0E0B2 +:10047000000000000030F8FCC67000000000000022 +:10048000000000000000010103010103010001035D +:1004900000000000095BF7FCF9F3E3E7E3C743C39F +:1004A000010000000000000100000000000000004A +:1004B000E6E171710000FCFFFFFF7F3F0F0F1F0F90 +:1004C000000000000080C0E0E0E0E0E0C0C0E0E04C +:1004D000000000000000000000000000000000001C +:1004E000F0F8FCFEFF7F1F0D8080E0F0808080C070 +:1004F000000000000018FCFE63780000000000000F +:1005000000000000000000000000000103030103E0 +:100510000000000000000000000000020F8F87C7ED +:10052000030307070F0F1F1F00000000000000005B +:10053000E3F1F3F3F1F0E0E0000000000000000060 +:1005400000000000000000000000000080C0C0C0EB +:10055000000000000000000000000000000000009B +:10056000E0E060F0F0F0F070E0E0F070707C7F7F31 +:1005700000000000000000000000000000000080FB +:100580000000000000000001070703070D07030734 +:10059000000000001137FFFFFFFFFFBF89C0E0FF31 +:1005A0000301010000000103070301103039183C6A +:1005B000FEFFFFFF0707FFFFFFFFFFFFFCFC7E3E84 +:1005C000000000000000000000000000000000012A +:1005D00000000103060C0D0F1E1C3C38387060E053 +:1005E00003070F1F1F1F1E1E1C101000000000001D +:1005F000C0C080800000000000000000000000007B +:100600000000000000041C387870F1E0E16043470E +:1006100000000000001030703070F0F0F070B0F0AA +:10062000030100000000000000010101181C0C1E65 +:10063000F0F0F0700000FC7CFEFFFFFF3E7E3F1FED +:1006400000000000247EDF9F3F3F1F1F86C0E0FCAC +:1006500000000000033FFFFFFFFFF3000000000069 +:10066000F8F0F0E0000000000000000000000000D2 +:10067000000000000000000000000000000000007A +:10068000000000002466EFDFCF9F3F3F1F1F0C805C +:10069000000000000000008080C0FCFFFF7FFF6CB6 +:1006A000C0F8F0E0000000000000000000000000C2 +:1006B000000000000000000000000000000000003A +:1006C00000000020246EDFFFEF8F1F3F3F1F0F85CC +:1006D00000000000000000808080008080C0F07872 +:1006E000C0E0F0E00000000000000000000000009A +:1006F000FCFE7F5F07030100000000000000000017 +:100700000000000005060F0F070F0F07070B0F1F54 +:100710000000000048DCBEFFCF9F3F3F1F1F1F8E21 +:100720000F0F07030000030307030101000000008F +:1007300087C2C0F00000FCFEFFFFFFFFFC7E7E7E54 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A40000000000005070F0F070F0F07070A0E1E13 +:100A50000000004078FCFEC78F9F3F3F3F1F3F3F95 +:100A60000E0E060200000303070301010000000050 +:100A70001E1E3E3C3E1E1E1F0F86C2FEFF7F7F7E57 +:100A8000000000000000000300000103070F0F0F2B +:100A9000000000000000B0BEFFFEFEBCBCC8C0C02D +:100AA0001F0F070A1F0F0F0F0F0707030303010094 +:100AB000E0E08040F080C6EFEFFFFFFFFFFFFFFFA9 +:100AC000000000000000000000000101030303011A +:100AD00000000019191C3E7FFFFFFFFFFFFFFFFF13 +:100AE00003070F05030000000000000000000000E5 +:100AF000FFFFFEFCF8F17F7B7B796D414321000015 +:100B000000000000001E191C1C1E1E1E1E1E1800C8 +:100B100000303C3F3FFFFBB8200000000000008099 +:100B2000031F1F1F1F1F1F1F1F17070000000000AC +:100B3000E0F0FFFFFFFFFFFFFFBF7F3B1100000062 +:100B40000000000000000000000000000080E0F84D +:100B50000000000000000000000000000000000095 +:100B6000F0FCFCF8F8F1FBFFFF3F3F1E1E1C0C00E1 +:100B700000002060E0E08080000000000000000035 +:100B8000000000000000000000000100021A161E14 +:100B9000000000000000010377FFFFFFFFFF7F3F21 +:100BA0003C1C1818080000000000000000000000B5 +:100BB000FF7F7FFF7F3E2F1F1F0F190000000000E7 +:100BC0003F79FCF8E8E0C0800000008187CFCF8F3C +:100BD000000000000000000000000000803CFFFF5B +:100BE0008F1FFFFFFFFFFFDFDE0C00000000000093 +:100BF000FFFFFFFFFFFFFEBC6C2E0707070F070379 +:100C000000000000E080F09010C000000000000034 +:100C100000000000000000000000000000000000D4 +:100C200000001D1B170F0B01171C00000000000027 +:100C300040E0C08000A0B030F0E0C0000000000044 +:100C40000000000000000000000303070700000090 +:100C500000001010185A7E7C3870E0E0E0000000C0 +:100C6000000000000001000207070501010000006C +:100C700000000040E080E0E0F0F8B8D8E0E040009C +:100C80000000010306020300070303000000000048 +:100C900000008010F8F8D8E0F8F8700000000000BC +:100CA000000000020505070300030100000000002A +:100CB00000006070E0D8F8F8F0A0800000000000AC +:100CC00000000307020307171B1E0C0100000000B1 +:100CD00000000060E0E0E0E080C0C0C00000000074 +:100CE000000000000C141C1C1C080080C0800000C8 +:100CF00000000000000000000000000000000000F4 +:100D000000000000030F070F1F0F0F1F0F07060E35 +:100D100000000060F0F8F8F0F0E0F0F8E0E0E0004B +:100D200000000000000000000000008080000000C3 +:100D3000000000002060F0F0F06000000000000003 +:100D4000000000000001071F3FFEFCF8F0F0E0C0CB +:100D500000000020F0F0F8C080000000000000005B +:100D60000000000000000000000000000000000083 +:100D70000000000000000000000000000000000073 +:100D80000000000000C0E0E0E0C000000000000043 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC00000000000000898FCC000000000000000C7 +:100DD00000000078785C381000000000000000007F +:100DE0000000000000000000000000000000000003 +:100DF000190F0700000000000000000000000000C4 +:100E0000FFDB0103030303030303010000000000F1 +:100E1000F0E0E0E0E0C0C0C0C08080C000000000A2 +:100E200000071F0F1F3F1F1F3F1F0F0D1EFFE0403A +:100E3000C0E0F0F0E0E0C0E0F0C0C0C000000000A2 +:100E4000001C7F7F3F3F1F0F0F07070300000000BC +:100E50000000000000000000808000000000000092 +:100E60000103070F0F07070703010101000000003E +:100E7000808080C0C0C0C0C0C0C0C0F020000000E2 +:100E8000000000000301030703030F3F7B732000F2 +:100E9000000018FCFEFEFCFCF8FCFEFEBFD9800042 +:100EA0000F0F070703030303010101010000000006 +:100EB0000000008080C0C0C0C0C0C0800000000032 +:100EC0000010183C7E7FFF7F1F0F03000000000012 +:100ED00000000000000080C0E0F0F87C5800000036 +:100EE000000000071F0F1F3F1F1F3F1F0F1D3E0069 +:100EF0000000C0E0F0F0E0E0C0E0F0C0C0C00000E2 +:100F0000000000000000003C4040400000000000E5 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000040404040C0404000000000000071 +:100F40000407070507070707070202020303030157 +:100F500000C040400888880404040C08080C8E87F0 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000080C0C061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC00000000000000000000080000000000000A1 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF0000000000000383C1C080000000000000059 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000002060E1E3C3C38383030F0706084 +:1010300000000000000000000000000000000000B0 +:10104000000000000000000000030707070F0F1F4B +:1010500000000000000000000000C08000002060D0 +:101060001E1E1E0E6E6EE6F6D76F7333331F1F1EE5 +:1010700070F0F0B0707030301818DCECC8800000F0 +:10108000000000000000000000000000000100005F +:10109000E0E0707030303030607060C0C0E0E0E0A0 +:1010A0000101030303030707070301000000000019 +:1010B000F0F0E0E0C0C0C0808080000000000000D0 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000000000000000000 +:1010F00000000000000000000000000000000000F0 +:101100000E1F1E1C3C393B3B39333737351617163B +:1011100000000000000080808080808000000000CF +:10112000320A0B0B191C1E1C1C1C0E0606030303A3 +:1011300000E0608080000000041E1E0C0000000023 +:101140000000000000000000010103030307070383 +:10115000000000000000000000800000008080E02F +:1011600003070707070707173F377373311000009E +:10117000E0E0C0C0C080808000000000800000006F +:101180000E1E1818393377676F4F5A183C3030608D +:10119000000000000000808000000000000000004F +:1011A00030301B1B0010303839393D1C1F0703013C +:1011B0000000E0E000000080C0C08000008080806F +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000000000EF +:10120000000000000000000000C06060303838308E +:1012100000000000000000000000000000000000CE +:10122000100F0F0F0F0F0F0F07030100000000003A +:10123000000000000080808080808080000000002E +:101240000C1F083070707878383C381C544E6F672B +:1012500000C00000010101000103030705C0C080B8 +:1012600032181F3F3C38383C1C0E1E1C18383830D2 +:101270000018F8F00000000000002030381C0E07B5 +:10128000000000000000000000000000000000C09E +:10129000000000000000000010B0B0D070706020AE +:1012A000E0776FBFBF9C000000000000000000005E +:1012B00000008000000000000000000000000000AE +:1012C00000000000000000000000070F0F0E0607DE +:1012D000000000000000000000000000000000C04E +:1012E0000F0F1F1F1F1E1E1C1C18180800000000D7 +:1012F000C08080000000000000000000000000002E +:1013000000000000000000000000E0426E3E3E3E93 +:1013100000000000000000000000000000000000CD +:101320003E3C1C1C1C1C1C1C1C0C0600000000006D +:1013300000000000000000000000000000000000AD +:101340000C1F0C30307078787C3C28345C5C6B6F00 +:1013500000C00000010101000103030321E0C0807F +:10136000371A3F3C7870707878383C3C1C1C383811 +:1013700000F8F840404040800000000000000000FD +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A00000000000000000C0E0766F3FBF9C80009E +:1013B0001090B0D07070600000008000000000004D +:1013C0000000000000000000383018381C1F1F3FCC +:1013D000000000000000000000000000008000008D +:1013E0003E3E3E3E3C3C3C3838381C040000000089 +:1013F00000000000000000000000000000000000ED +:101400000F1C3808103038787868343C1C181C0FD2 +:1014100080000040002020202173E002060E1E0CF8 +:1014200003020C0E1C1838303818180C1818183015 +:10143000808000080407060C101010000000000057 +:10144000000000000000000000000001000000009B +:10145000000000000000000000C0C0E0C0FCFCF87C +:101460000101010101010101010101010000000070 +:10147000F8F8F0F0F0E0E0E0C0C0C0C0000000000C +:101480000000000000000000000001030301000153 +:101490000000000000000000008000008080C0808C +:1014A0000100000101010000010101000000000035 +:1014B00080D0F8F8F0F0E0E0E0E0F8F8000000009C +:1014C000070F1F0C30387C7C7E2E333F0F03050640 +:1014D00080C0000000000100001018B8B0E0C0C1DA +:1014E00003030100000000000000000000000000F5 +:1014F00003E7EEFC581002000000000001010301A8 +:10150000000000E0E0A08020301008082060F0C05B +:101510000000000000000404040400040E4F3F3CDF +:1015200080000357343DF76660C0C0C0808080C033 +:1015300060C080000000000000000000000000000B +:10154000000000000000000000000000000000009B +:1015500000000000000000000E0E040C0C1CF8F847 +:101560000000000000000000010101000000000078 +:10157000F8F0F0F0F0E0E0E0E0C0C0800000000033 +:10158000070C0C030E1D3B7F3F070018181E1C1F85 +:10159000000000810083C3E3C10000000000800060 +:1015A0000707070E1C1818180C0E07000000000093 +:1015B000F0F00000000000000080C0E030101810C3 +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000006070323E3E3E4F +:1015E00000000000000000000060707CFCFF3F1F56 +:1015F0003E3E3E1E1C1C1C1C1C1C1E0E000080C0FF +:10160000030707070E0D0D1D3C2E6ECFEF77362713 +:1016100080C08040F8FFFFFEFE3000000080000028 +:101620000F030303060C0C0E0E070300000000005E +:1016300000F8F80000000000000080E0406034186E +:10164000000000000000000000000000000000009A +:10165000000000000000000000010103030101017F +:10166000000000000000000000000000000000007A +:101670000101010100000000010000000000000065 +:10168000000000000000000000800080800000C01A +:10169000000000000000000000000000000000004A +:1016A000F0F0F0E0E0E0E0E0E0E0E040000000002A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F0000103070F0C0E07060C181D3030381010B0 +:1017000000000001000103010103070511387CFC02 +:10171000000C7EFFFFFFFEFCFEFFFCFC9C80000037 +:10172000F8B0C830E0C0C00000F880B0E0E0404A47 +:101730000000000000000000000000000000008029 +:101740000000000000000000000000010103070F7E +:1017500000000000000000000000C0C08080000009 +:101760000F1E1E3E3438604060783C1801010000B6 +:1017700000000107590102403F004062E6DFDF3B05 +:10178000000000000000000000000203838281814D +:101790000000000000000000000000008080C0C0C9 +:1017A00081E100001060800000000058FCBC9C003B +:1017B000E0F0B03030707070E0D0800000000000C9 +:1017C00000000000000101010101010103030263A7 +:1017D000000000008080C0E1E3E88443C0963F370A +:1017E00001010100000000000000000000000000F6 +:1017F000000080C0C06040000000181E0E0B0909E8 +:1018000002030300808080C0F08D10E040F0B81C1F +:10181000000080C00080C0C0C0E0A060301070E058 +:1018200008305C5978701000000000000000008053 +:10183000C00050F8783C1C0C0000000000000000C4 +:1018400001030601071F3F7B6D60776E6736342604 +:10185000800000C0C0E0C080000000000000000068 +:1018600006040D1C1E1C18101C18080D0E04040480 +:101870000000E00000000000000000000000000088 +:101880000602060C0E0603030707070707070707EC +:10189000000000000000C0C0C0C0C0C0C0C0C0C0C8 +:1018A0000707070707070301010000000000000009 +:1018B000C0808080000000808000000000000000E8 +:1018C00001030F1E3E7F7C212F3736362804060B7E +:1018D000C0E0F0E0C00000C0800000000000008018 +:1018E00038141C2824381F0F0600000000000000D8 +:1018F000F030000000000080E8F87C380D0E040095 +:1019000000000000000000000000000000000000D7 +:101910000000000000000000000000000000E0F0F7 +:10192000010307071F0F0600000000000000000071 +:10193000F0F8FCF0E0800000000000000000000073 +:101940000703070F07070F0703031F0F3430787CC7 +:10195000FCFCF8F890B0B4B5DDDDE5ED0F0D04004A +:101960007E7F7B7C1F4771607078383F3F7F787047 +:10197000000001CDEDDBFB31000018F0F08000002D +:101980000018FC0000000000000000000000000043 +:101990000000000000000000101010101070404007 +:1019A0000000000000000000000000000000000037 +:1019B0000000004040404040404000000000000067 +:1019C000000000000000000000000101030301030B +:1019D00070E9E1616160E0E0C0E0C080C0C080E02B +:1019E0000307070707070F0F0E0606000000000099 +:1019F000E0E0C0C0808000000000000000000000A7 +:101A00000000008080C060303018080C1F0F0F0FDE +:101A100000000000000000000000000080808080C6 +:101A20000F0F0F0F0F0F0F07070703010000000034 +:101A30008080808080000000000080800000000026 +:101A400000010703070F07070F070303071D0830EF +:101A500030F8FCFCF8F8F0F8FCF070B080000004FE +:101A600070787878783838141C0C0E0507013D7EA4 +:101A700086C6EE6E4000010167E7C6C6C686BC702A +:101A8000C0C1C0E0603030381C1E1830183F7E7E68 +:101A9000000080404040404040202040187C7CF8BE +:101AA000FCF8F8F0F0E0E0C0C0C0800000000000EA +:101AB000F8F8F8F0F0F0F0F0E0E06030000000003E +:101AC000000101050707031F7F3DDDE8E0C08080BE +:101AD00070F8FEFFFFFFFFFFFCB898C04000000059 +:101AE00000008080000000000000C0E00000000056 +:101AF00000000000000000000000000000000000E6 +:101B000000000000000000000000000000000000D5 +:101B1000000103070F0F1D3D3E7E79636E77373757 +:101B200000000000000000000000000000000000B5 +:101B300037070707090E1F0B0F0B0B0101000000F1 +:101B4000101010101818180C0E1C1C0C070F0F0F7B +:101B5000404020202020101010102020E0C0C0C0E5 +:101B60000F0F0F0F0F1F1F1F1E1E0E0F060000006E +:101B70008080800000000000000000187C3E0F0FF5 +:101B8000000001030F07070F070707030103070EF4 +:101B900060F0F8F8F8F0B8DCDCC84080C0E0000085 +:101BA0000E1E1E1E14313B73666E3436160703007C +:101BB000000000C0C0C080000000000000F8F80075 +:101BC000000000000000000000000000001B1F3E9D +:101BD000000000000000000000000000063E0E0EA5 +:101BE0003E3E3E3E3C3C3C3C3838781C0C000000FD +:101BF0001C1C1C1C0C0C0C081818187C7F7F3F1F29 +:101C0000000101050707031F7D7DFCCCE8C898B0E3 +:101C100070F8FEFFFFFFFFFFFCB898C04000000017 +:101C20002060C080000000000000F0F00000000014 +:101C300000000000000000000000000000000000A4 +:101C4000000000000001010307050F0F0E0D0E0636 +:101C500000002060E0E0606080E08020E0E0C0C044 +:101C60000400000001030101010101010000000066 +:101C7000C0C0E0E0E0A080E0B030107838381C0C44 +:101C80000000000000000000010303010001010149 +:101C90000000000000000000C0808080F8F8F8F824 +:101CA000010101010103030303036161F0F8783CC2 +:101CB000F8F0F0F0E0E0E0E0E0C0C0C0C0000000FC +:101CC00000010103070303071F7E3CD0E0F0E0E0C2 +:101CD00060FCFEFFFFFFFEF8F8DCCC6000000000B7 +:101CE000C0800000808080E0F898000000000000C4 +:101CF00000000000000000000000000000000000E4 +:101D0000000000000000081818383830787060486B +:101D100000000000000000000000000000000000C3 +:101D2000786878382800000008180F0C1A08080C8A +:101D3000000000000000000000008080C0C070387B +:101D400000000000000000000000000000C4FCF8DB +:101D50000000000000000000000000000000000083 +:101D6000F8F8F8787878787878380C0C000000006B +:101D700000000000000000000C4F7F7C706000003D +:101D80000E1F1F7F7FFF7FFFFFFC3D7F3C0E0E0E6F +:101D900000008080000080C0800080000000000003 +:101DA0000C1C181B17170F0F0F0B0C1E14181C0EF2 +:101DB00000000001818183836A7FFF1F090000000A +:101DC000000000000000000000000000000000040F +:101DD00000000000000000000000000000021FFFE3 +:101DE0000707070300000000E0B0D04060000000DB +:101DF000FBC08000000000000000000000000000A8 +:101E00000000000000000000000000000020307012 +:101E100000000000000000000000000000000000C2 +:101E2000F8F8FCFC7E7E3E1F1F0F0700000000003C +:101E3000000000000000000080E0C0800000000002 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E800003010F070F1F0F0F070303010302060CC7 +:101E90000080C0E0C0C0C0E0C0C0008080C0C040C2 +:101EA0000C1C1E1E0F0F07000000000000000000A9 +:101EB0004040040F0FDFF6000000000000000000AB +:101EC0000000000000000000000000000000001EF4 +:101ED0000000000000000000000000000000000002 +:101EE0003E1F0703010100010303030F0E1F1F1F05 +:101EF000000080C0E0E0E0C0C0808080000080C0C2 +:101F00000000000001000703070F0707030101009D +:101F10000000000080C0E0F0E0E0E0F0E0E0808061 +:101F20000100000202070F0F0F0707030000000067 +:101F3000C060602020000080C2C7EFBF1600000014 +:101F4000000000000000000001030303030101037F +:101F50000000000000000000E0E0F8FCFCFCBC3CDD +:101F6000030706060C0C1C1878F0F0707038180087 +:101F70003C78787870F0F83C000000000000000029 +:101F80000000000000000F3F3F7FFDFCF8F8F8F86C +:101F90000004347D7F7FFFFEFE3A30100000000019 +:101FA000EC040606030301011038783838180808D5 +:101FB0000000000040E0E0E0C00000000000000081 +:101FC000000000000000C0C0C0E0C00101071F7891 +:101FD00000000040406060F0FCFCFCFEFEFE7F3F25 +:101FE000F0F03020000000000000000000000000C1 +:101FF0000F0F0F07023C3C7E3E7E3F3E7C3E1000B2 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4c-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4c-.bin.hex new file mode 100644 index 00000000..cdee4044 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4c-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000FCFEFC000000000000CA +:100040001F3F3F7F7F7F7F3F3F7F7F7FDFC38100F9 +:10005000C0C0E0E0E0C0C0E0F8F8F8F8F4F66E2FB9 +:100060001F1F1F1F1F1F0F0F060602040408000397 +:10007000E0E0E0F0F0E06060606070E0C00020E090 +:10008000000000000020707078787D37070F0F1F88 +:10009000000000000000000000000080000080E080 +:1000A0000000000000200000080600000000000022 +:1000B0000000000000000000000000000000000040 +:1000C0000001030F1F3F67C303073F7F7B30000022 +:1000D000F0E0E0E0F8F8FCFCFCF8F8F8F0F00000E4 +:1000E0000000000000000000081C160E0F0D0103A8 +:1000F0000000000000000000008080C0E0F0C04E62 +:10010000CB0B2B78787C7C78726B7F3B3F3F1E1C3F +:100110008080000000005CFCFCDC9C9C9C1838701B +:10012000000000070F0F0F070703197CFEFFFFFFFA +:10013000000000F0F0F0E0E0F0F0F0DA1BF3F7F789 +:1001400000000000000000000020707078797D370A +:100150000000000000000000000000000080B0F877 +:100160001E1F3F3F3F3F3F3F3F737767E7C380011D +:1001700010088C8C8ECECFE7E6C6C4E4E080001079 +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A0003F3F3F3F3F3F3F3F1F0F0F07071F3F3C72 +:1001B000C0C0E0E0F09090D0C0E0C0C0C08000F0CF +:1001C0000000000000000020707078787C370E1E60 +:1001D000000000000000000000000000000000001F +:1001E000FEFEFFFF7FFFFFFFFEFE7E7C7C300000F7 +:1001F0000000002030B0B02000000000000000002F +:100200000060E8E8FF61200000000000000000003E +:1002100000000000808000000000000000000000DE +:100220000000387C7F6F38100000000000000000E4 +:1002300000000000E0FB7F0F000000000000000055 +:1002400000000000000000040E0E0F0F0F06010357 +:1002500000000000000000000000000080C0E0C0BE +:1002600003070F6FDFFFF1EC0F0F07070703000015 +:1002700080C0E0C0E0E00030E0E0F0E0E00000003E +:1002800000000000000000020707070707030080C6 +:10029000000000000000000000008080C060F0E06E +:1002A000FFFF1F0F0F0306070703030301000000F2 +:1002B000F8FCFCFCFCFEF2FFFFB8FEFEFEC00000F6 +:1002C00000000000000020707078783C37070E1E98 +:1002D000000000000000000000000000008000108E +:1002E0001F3F3F3F3F3F3F37736767C78380000E25 +:1002F000088CCCCECEEFC7C6C6C48480800010F870 +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:100320003F7F7F7F7F7F7F3E1F1F0F0703030D0FE0 +:10033000008080C0C0C0606030B090C08080907885 +:100340000000000000000020707078787C37070FF4 +:10035000000000000000000000000000000080001D +:100360003F3F7F7F7F7F3F3F7F7F7FDFC3810007EE +:1003700080C0C0E0C0C0E0F8F8F8F8F0F0E8E8FCB1 +:100380000000000000000020707078787C37070FB4 +:10039000000000000000000000000000000000C09D +:1003A0003F7F7F7F7F7E7E3F1F1F0F07173B3E3DB6 +:1003B0008080C0C0C0602020A08080C09030F8F84D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000103030707070F0F0F0F0707030100A3 +:1003F00020C0E0E0F0F8F8F8F8E8C8E0F0F0F0F03D +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:10042000000000000000000020707078787D370622 +:1004300000000000000000000000000000000000BC +:100440001E1F3F3F7F7F3F3F3F1F1F0703000003EB +:1004500000C0C0C0F0FCF48484C6EEC898183CEC20 +:10046000040E0F0F1F1F7FFCFDF47038502000009A +:10047000000000C0E0E0204000004000000000005C +:10048000000000001C3E3F3B1C0800000000000074 +:10049000000000000000F0FD3F0700000000000029 +:1004A0003F3F070F1F1F1F1F1F0F0F0F07070000E2 +:1004B000E0E0F4F6E6E7C7C686C0800080000000F2 +:1004C00000000000000020707078787C370E1EFF5E +:1004D000000000000000000000000000000000001C +:1004E000000000000000040E0E0F0F0F06010303B2 +:1004F000000000000000000000000080C0E0C0809C +:10050000070F6FFFFFD9EC0F0F070707030300006A +:10051000C0E082C3E38A38F0C0E0E0C0C0800000E1 +:10052000000000001C3E3E371F0C000000000000D1 +:1005300000000000000000F0F030000000000000AB +:1005400000000000000000040E0E0F0F0F06010156 +:1005500000000000000000000000000080C0E080FB +:10056000FFFFFF1F1F070F0F0F0707070301000003 +:10057000F0F8FCF8F8FCE4FEFE70FCF8F8800000EF +:100580000000000000001038383C3C3E1B031F3FB9 +:10059000000000000000000000000000000080805B +:1005A00000000003070F0F1F1C00000000000000E8 +:1005B0000000000080C0FCFFFF3F3F7F7F1F0C005A +:1005C000000000000000000000000000000000002B +:1005D00038180000000000000000000000000000CB +:1005E0000000000B1F1F3F7F7F7E3F5F2D00040E2A +:1005F00000000080E0E0F0B0004000E0E00000809B +:1006000000000018383C3C3C38000010183C3E7E8E +:1006100000000000000000000000000000000000DA +:10062000BE3F7FFFFFFFFFFF7F3F3F0F1F367C383E +:1006300000000080C0808080C0E0C0903073670FF1 +:10064000C0E0F0FCFEFF3F070301000000000000D7 +:1006500003070F0F1FFFF8FEFFFFFD7D77CFE3F1CC +:1006600000000000000000081C1C1E1E1F0D1FFFC4 +:10067000000000000000000000000000000000007A +:10068000FFFFFFFF7FFFDF6F6F2782C0E0E030F8E2 +:10069000A0F0F0F8FCFCFCF8F8B00000000000004E +:1006A0001F3F7F7F7F7F7F3F3F1F0F0F07030200AA +:1006B000C0E0C0C0E0F0F8FCF8F8F8F0F0F0B030BE +:1006C0003F9FCFFFDFFFDFDF3DE33E8EE1FFFF77A0 +:1006D0000000A0F0F0F8F8F8F078381C0CF8F8F00A +:1006E000AF870507070707070F070303030307077C +:1006F000E0C0D0B0F0E0E0E0E0E0C00080E0F8FC76 +:10070000000000000B1F1F3F7F7F7E3A582C000C1B +:100710000000000080E0E0F0B00040000040000079 +:1007200000000B1F1F3F7F7F7E3A58280400010303 +:10073000000080E0E0F0B000400000400000808059 +:10074000070F0F0E1E020000000000000000000056 +:10075000E0707878E860000060E0E00000000000F1 +:10076000000000000000000101070F3F7FFEFE7F38 +:10077000000000011F7FFFFFFFFEF4C0000000002B +:10078000000000DF3F9FCFFFEFEFEF33FFFF10C30D +:1007900000000080C0C0C0E0F0F0F0F0F0F038F8E9 +:1007A00000000000000000000000010F3F7FFFFF7D +:1007B0000000000000000000000000D0F8BCB8FEFF +:1007C00000000000000E020E1E1C05121E070C0C7D +:1007D0000000000000000000008080000000000019 +:1007E0001F3F3F3F3F3F3F3F1F1F0F0F07070103C3 +:1007F00080C0C0E0E0C0C0E0E0F0E0C0C0808000A9 +:100800000000070F0F06000060F0F87912200000CA +:10081000000000B8FCBC78E0F67F1FBEF830000096 +:100820000410000800201070E2F0600000000000DA +:1008300060F0F06000004030702000000000000018 +:10084000030F0F1F1F3F3F7E7CFCF8D0E0F0F878CD +:1008500040E0E0E0C0800000000000000000000078 +:10086000787C7C7C78787C3E3C3F0F06040000005E +:100870000000000000000000C0E0E0E0F0F8786058 +:10088000000707070F0F1F1F1F3F3E3C38363E3F34 +:1008900000F0F0E0C0C08080000000000000000018 +:1008A0001F1F1E1E1F1F1E0F0F0F0103030000003E +:1008B0000000000000000000B0F0B8B89C1C1C381C +:1008C00041030707070F0F0E1F1F1F3F3F3E3F1E2D +:1008D000FFFFFEF1C3C307878F8F0F0F0F0F0607B0 +:1008E0000D070703070F1F7E000000000000000037 +:1008F0000707878787870300000000010303070FAE +:10090000FFFEFEECF0F0E0E1C1C08081800080C01D +:1009100006060E0C0C0C58F06060E0E04000000091 +:10092000C0C0E0E0C0C080C0E0E0F0F0F0E08000D7 +:1009300000000000000000000000000000000000B7 +:100940000000000000000101010001033FFF7F3FA4 +:100950000003071F7FFFFFFDFEFCE8C080000003CF +:100960000F03000000000000000000073F1F0F03FE +:1009700003070F1F3F7F7F7E3E78F0F0C0C0C000AE +:10098000FCFFFFFFFFFFD783010000073FFFFFFFD2 +:100990003F6F6D4F6FBFBBBFBDBF3DBFDFDFEFEF31 +:1009A000FEFCA8C00000000000060F0303070F1A9A +:1009B000E343010101010000010127FEFC8000006A +:1009C0000000808080C0C0E0C08080F0F0F0F0F0D7 +:1009D0000000000000000000000000000000000017 +:1009E000F0F8F8F8F8F8F0F0F0E0E0E0C0C080804F +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000000000000000E6 +:100A10000000000001030707060F0F0E0F1F1F1F26 +:100A200000000101030300000000000107000000B6 +:100A30003F7F7FFEFC5E0E0C0E1E7EFCFCFC1C004D +:100A40003F7F7FFEFCF8F0E0C0C0008080800000A7 +:100A500018981818103070FCBC9414300000000076 +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A8000000000000000000000004060383F1F0F21 +:100A90000000000000000000000000000183C3C748 +:100AA0000F07030200000000000000000000010327 +:100AB000878F0F0F1F3F3E3E1F0E0E1E3CFCFEFE9B +:100AC0000000000000000000000000000000000323 +:100AD0004040604070793E1F1F0F0303070737F344 +:100AE0007FFFFFEFBEDCC0E080C000000000000020 +:100AF000F3F1F9F8BC3E1400000000000000000013 +:100B0000FFFFFFFDFCFEFFFFFFFFFFBFDF8F0301C5 +:100B1000C08000000000008080808080808000C055 +:100B20000100000001010303023E6C4C1C34040C64 +:100B3000C0C0E0E0C0C08000000000000000000075 +:100B4000BEFC7C762C08C0C0BFDF31FEC3C10101F2 +:100B5000000000000000000080C0E0E0E0E0E0C035 +:100B6000010004040000000000000000000000007C +:100B7000800000000000000020303C1E101808001B +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC00000000000000000001F3F3D7D7A3A000059 +:100BD0000000000000000000E0E0E0F00000000085 +:100BE00000000000060E06001E0E000000000000BF +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000103030203020000D6 +:100C10000000000000387CFECFC3DB440800000069 +:100C2000008080000000008000688000000080E2FA +:100C30000000000000000020207070F0F0F80800B4 +:100C4000F3FC602130301C1E030303010000000090 +:100C5000000000008040800000000080C040C0C054 +:100C6000000000000001010101010100000000007E +:100C7000808080C0C0C0C0C0C0C0E0F0787CFEFFF3 +:100C8000010101010080000000002040E0380E0753 +:100C9000C0C0C0C0000000000000000000008000D4 +:100CA000020303030382030301010101008080802A +:100CB000000000800000008080C0C0FC7F7E7C308F +:100CC00000000000071F1F3F3E3E3E3E1F1F0F0655 +:100CD000000000008080008080808038306040000C +:100CE0000C1E181C3E3C30301818180C0F06070359 +:100CF000000000000000000006040A80000001025D +:100D00000000000000000E0E0E0E07070707030389 +:100D100000000000000000000000000000008080D3 +:100D2000030301010101004167FFFFFF6600C0608E +:100D30008080C0C0E0E0E0C0D0D09030303838389B +:100D400000061E3C3C7F7D7C3F3F1F0F01010103DD +:100D50000000000000000000000000000000000093 +:100D60000203030303030303010101000000000069 +:100D70000000000000000000000000000000000073 +:100D800060C0F4F8C0E0E0C0773800024161713221 +:100D900030207030302060E00000000002844E36C9 +:100DA0001C0403010302030303010301000000000C +:100DB0000406068606020280C28292F8787CFEFE55 +:100DC0001C0E0E0E0E0707070703030303000000A7 +:100DD0000000000000000000008080808000000013 +:100DE000000080000000800080C0F0F8FCFEF8E009 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000018CA +:100E100000000000000000000000000000000000D2 +:100E200038387070706000111F1F1F170703000013 +:100E300040202000000000000080C0E0A0008000F2 +:100E4000070F0F3F7FFFFFFFFFFF7F7F3F0F013B3C +:100E5000BCFEFFFFFFFFFEFCF0FCFEFFFFFFFFFEFE +:100E60007F7F7F3F1F0F0F0701030707030F1F7FC0 +:100E7000F8E0F8FCFEFEFEFEFCF8E08080C0E0FE3C +:100E80007FFFFFFFFFFF7F1F3F7FFFFFFFFF7F1FF2 +:100E9000FFFFFFFFFEFCF8F8F8F8F0E0C0F0F8FC08 +:100EA0000F3F7F7F7F3F0F070F1F1F0F070F1F3F52 +:100EB000FEFFFFFFFFFEFEFCE0E0C080C0C0E0F0F0 +:100EC0000000008000408000000000000040008022 +:100ED0000000000000000000000000000000000012 +:100EE000000000004080000000000800000000003A +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000060F0F07193C3C1870F895 +:100F200000000000000000000000000000000000C1 +:100F3000F8F060060F3F7C783000000000000000F1 +:100F400000000000000000808090181C3C1E0F3F35 +:100F50000000000000000000000000000000000091 +:100F6000FFFE7CF8E0703878783000000000000068 +:100F70000000000000000000000000000000000071 +:100F8000000000000000000000000101000001035B +:100F9000000000000307070300C0E0E1F170E0C0BB +:100FA000030100000000000000000000000000003D +:100FB000C080010302076EF8FC7C380000000000CE +:100FC0000000000080C0C086EF7FFEAC3E1F0F37E0 +:100FD000000000000000000000000000C0E0E0C0D1 +:100FE0007D7E3E3C1800180C1E1E0C000000000008 +:100FF0008000000000000000000000000000000071 +:101000000000000004041C1C3C3C3C3C78747C7CCC +:1010100000000000000000000000000000000000D0 +:101020007C7C7C7C7C3C3C1C0C0404040C3C7CFCE8 +:1010300000000000000000000000000000000000B0 +:101040003F3F7FFFFFFAF8E0F0C09C1C1E1F9E8E02 +:10105000C0C0C08000000000000000000000008050 +:101060008DCFC3C3C3C381818080C0C0E0E0C00016 +:1010700080A0E0F0F0F8F0E0C8DC1C0E1F3F7EFC22 +:101080000000000002070707070703000000000038 +:10109000000000000000008080D0707C0000000094 +:1010A0000000000000000000000008E8F8504000C8 +:1010B0000000000000000000000000000000000030 +:1010C000070F0F0F1F1E1F3F3E7E7C7C78343E3E75 +:1010D000E0C0C08000000000000000000000000030 +:1010E0003E3E7F7F7F7B7E3C1E0E0E07070F3F7FBD +:1010F00000000000000000081C1E0F0F1F9EB870AB +:1011000000000000000000000000010101010101D9 +:1011100000000000000000000000000000000000CF +:101120000103030707070301000000000103070F85 +:1011300000000000000000000000000000000000AF +:101140000000000001071F3FFFFFFFFCE0A1C3E319 +:10115000000000F0FCF8F8E0C0C00000E0C0C0C033 +:10116000F3F3E3E1E1C1E1E1C0C0E0F0F0E0C08011 +:101170008040E0F0F0F0F0E0E8F81C1E1E1E3E7C1F +:10118000000000000000000000000000000000203F +:10119000000000000000000000000000000000004F +:1011A0003B3C3E3C7A7F7E7E3F0E06060E3F7FFF35 +:1011B000000000000000000000000000000000002F +:1011C0000000000002060E1E1E3E3E7C7C787078F9 +:1011D000000000000000000000000000000000000F +:1011E000ECFCFEFCFC7878383C1C0E0E0E1E3E7C9F +:1011F00000000000000000000000000000000000EF +:10120000005FBFBFBEBEBC7A7E7E7C3E3E3E3D3FA1 +:10121000000000000000000000000000000000804E +:101220001F1F1F0F0F0F070301008080C0C0800029 +:1012300080C0E0E0E0D8F8FC9E0F0F0F0F1E3C7856 +:101240000000000000010101010100000000000099 +:101250000000000080C0C0E0E0F0DC1E38000000AC +:101260000000000000000000000064FCF07020009E +:10127000000000000000000000000000000000006E +:101280001F1F0103030303030707070707070303E0 +:10129000F8F8F0F0E0E0C0C0C080C0C08040C0E01E +:1012A0000303010101010100030606070F1F3F7E32 +:1012B000F0F0E0E0D8F8F0F42E0F078F8F9E3C7826 +:1012C00000000000000000000000030F1F1F1E3F71 +:1012D000000000000000000000000080C0FFFF5F71 +:1012E0003F3E3E3E7E7F7F7E3C0806060E3F7FFFF0 +:1012F0003F3E0820383C3E3C3A363D1F1F1F0F0E34 +:10130000000000000000000000000000000000805D +:1013100000000000000000000000000000000000CD +:101320000000000000002E7E7EEECECECE8C1C385B +:1013300000000000000000000000000000000000AD +:101340000000000000000064FCF070200008181885 +:10135000000000000000000000000000000000008D +:1013600018181818181818080000000000000818AD +:10137000000000000000000000000000000000006D +:101380003EFEFEFCF8F1E1A1D1F1FBF3F373733BF8 +:101390007CFEFCF8F0F0E0F0E0E0E0E0C0C0A0E0AF +:1013A0003B7BF9F1F10100000000000000000000AB +:1013B000F0F0F0F8F8FCFCF8F0FE6E061F3F7EFC43 +:1013C0001E1F0F07070F0F0F1F1F1F0E0F0F0707FF +:1013D000F8F0F0E0C0C0808000000080808040E035 +:1013E000070703030101060E07070F0F1F3E7C00CE +:1013F000E0F0F0F0E0F0FC5E0F8F8E1E1C1818304D +:10140000000000000000000008E8F87060080818FC +:1014100000000000000000000000000000000000CC +:101420001818181818080800000000000000081814 +:1014300000000000000000000000000000000000AC +:101440007FFFFFFFFFB8D0E1B1F1FBFFFB73733B00 +:10145000FEFEFCE00020E0F0F0E0E0E0C0C0C0A054 +:101460003B7BF9F0F00000000000000000000000ED +:10147000E0F0F8F8F8FCF8F8787C2E071F3F7EFCC7 +:101480003F3F0F1F3F7F7E7EFCECF0F8ECFCFE7EC2 +:10149000F8F8F0C0808000000000000000000000AC +:1014A0007C7C7C3E3E3E3E3E1607070F1F3F7C0085 +:1014B00000000000000004040E0F8F8F9E1C387087 +:1014C0000000060F0F0F0601070F3F7F7E6C787438 +:1014D0000000606090F8FCF8F8F0C0000000000028 +:1014E0003E3E3F1F1E3E3E3F3F1B030303071F3F81 +:1014F00000000000000000006070B8B8F0C080007C +:101500000303030707070703010203030303070796 +:10151000E0E0E0C0C0C0A0E0E0E0F0F0F0F0F0F803 +:1015200007070102030100000000000000000101A4 +:10153000F8F0F0E0E0F070383C7C7878F0E0C080C3 +:1015400000030707070F0F0F0F0F07071B3E393B5D +:10155000408000C0E0E0E0E0C0C0C0802060E0C0AB +:101560000300000103030301030303000000000064 +:101570008000E0F0F8F8F0F0F0E0C00000000000BB +:1015800000000000000003071F3F3F7E6870787670 +:10159000000000000000F0F8F8E08000000000000B +:1015A0007E7F3F3E3E3C1F1D0000000101030307FC +:1015B000000000000080C0F0F0F0F0E0C0C080004B +:1015C000010E1E1F1F3F3F3F3F3E1E1F1F1F1F0FCD +:1015D000000000C0F0FC8E838183020282808404BC +:1015E0000E0003070F0F0F070F0F0F000000000082 +:1015F000000080C0E0E0C0C0C0800000000000002B +:101600000000000000081818183838383038787092 +:1016100000000000000000000000000000000000CA +:10162000707878783838381818080800083878F84A +:1016300000000000000000000000000000000000AA +:101640000F1F3F7FFFF8F8F0F4C6CF0F87C7C7C75B +:10165000C0E0E0C00000000000000080800080C00A +:101660008787C3C3E3C3838181C0C0C0E0E0E0805B +:1016700040E0E0E0C0A0E0F0F87C7E0F0F1F7FFCB0 +:101680000000000000000000000000000000010158 +:1016900000000030787868703011193CFEFFFFFFC1 +:1016A0000101020203030303030100071F7F7F7F81 +:1016B000FDFEDFEEE0D0B0F0F8F8F0C0C0C0800072 +:1016C000000000000000000000000000000000001A +:1016D00000000000000000000000000000000030DA +:1016E0003F7FFFFFFFFFFFFF0F8F918180804C3F07 +:1016F000F0F8FCFCFCFCFCE4606020E020000080D2 +:101700001B070307070F070707030307070707035D +:10171000C0C0C0C08080808080C0C0C0C0C0C0C009 +:101720000303030707030101000000000101030395 +:10173000E0E0E0E0E0E0F0F0F060C0E0F0F0F8F8C9 +:10174000000000000000000101010303070B030576 +:10175000000000000058FCFCFCFCFCF8F8FCFCF865 +:101760000800000000000000010000010001003836 +:10177000C0000000C060E0E0E0C0C0C0C0C0E060E9 +:101780003C3C0F03030000000000000000000000CC +:1017900060F8F8F8E0787878300000000000008009 +:1017A0000000000000000000030F1F1F0F0F0707BD +:1017B000000000000000000080C0C08080C0F0F881 +:1017C000000000000000000101010303070B0305F6 +:1017D000000000000058FCFCFCFCFCF8F8FCFCF8E5 +:1017E0000800000000000010303030206060E0FC95 +:1017F000C00000000060E0707070381C3C1E1F0FBD +:101800007F7FF7E0600000000000000000000000A3 +:101810000EFEFEFF07030B090C0E0E0F0F070F073E +:101820000000000000000000303C3C78F8FC7E1F07 +:101830000707030103030101010103030303070772 +:1018400000000000000F0F1F3F3F3E7C74787C7447 +:1018500000000040408000000000000000001C3F2D +:101860003E3F1F0E0F0F0F0707070703000001077A +:101870001F0F0F070686C68280A0E07078F8F8F088 +:101880008B0F0F0707070307030301010207070375 +:10189000E0E0C0C0C0C080808080C0E0E0E0E0E068 +:1018A000030303030707070703000000000000000D +:1018B000F0F0F0F0F0F0F8F8F8F06070787C7E7FEF +:1018C0000E0F1F1F1F1F1D1E3D3F3F3F1F1F1D1FD0 +:1018D0000000008080000000000000808080808088 +:1018E0001F1F1F0F0F070101010103030307060458 +:1018F000C0C0800000C0E0E0E0C0C0808000000008 +:1019000000000000000003060E1E1C3C7C7C3C1EF8 +:1019100000000000000000000000000000000000C7 +:101920000F07070303070F0F03000000000000006C +:10193000C0E0E0F0F4FEFFFF3FFF3E0101000000C9 +:10194000070F0F0F0F0F0F0F87C7E3E1F87EFFFFA1 +:1019500000E0F0F8F8F8F0E0F0F8FCFCFE0C88D8B5 +:101960007F7F7F1F0701040F0000000000000000C0 +:10197000B4F4FCF8F8F040000000000000000000A3 +:10198000000000000000000000010101010103034C +:10199000030F0F0F0F0F0F9FDBD19C3D9F9FDFDFCA +:1019A0000707070F0F0F1D1E0F0303070F1F3F7FB2 +:1019B000D9F8F4FCFCF8C0C0808080008080C0C0F2 +:1019C0000000000000000000000001010101010012 +:1019D00000000000000000000080C0C0E0E0F0DC7B +:1019E0000000103030707060200000000000000027 +:1019F00000000000000000000000000000000000E7 +:101A0000000000000000000101010303070B0305B3 +:101A1000000000000058FCFCFCFCF8F8FCFCF8F8A6 +:101A20000800000000000107070F0E1C5CF8F87C9E +:101A3000C000000000A0E0C084040404000203030E +:101A40007F7FF3F0F0F0600004060707030203064F +:101A500082FFFF7F01010100000000800000000004 +:101A60000706060404040E0E0E0E1E3C3C3E1F0F1D +:101A700000000000000000000303010101030383D4 +:101A80000000000000000000020202060602000240 +:101A90000000000000003030706000000000000016 +:101AA0000E1E7EFEFEF8F0E02000000000000000A8 +:101AB00000000000000030000000000000000000F6 +:101AC00000010101000000000000000000FFFFFC19 +:101AD00000000080C0404000000000000080387E10 +:101AE000F1E0C00000000000000000000001010162 +:101AF000DFBF7F2F7F7FFE7E3CEC60E0F8FCFEFFC7 +:101B000000000000010303030303000E1E3E3E7E9F +:101B100000000000008080C0C0E000000000000065 +:101B2000E6E2C6C6A2A0828FDFCEEFFEFADE1E1C62 +:101B300000000000000000C0C0C0404040000000A5 +:101B4000000000000000000080C0E0703018343059 +:101B50000000000000000000000000000000000085 +:101B600060604060C0E0F0E0C0C0E0E0F0F8FEFF80 +:101B70000000000000000000000000000000000065 +:101B8000000000000000000000003F3F1F0F07049E +:101B900000000000000000000000008080800000C5 +:101BA0000F0E0F1C3E3F383C1E0F000000000000CF +:101BB00000000000C0000008080C9C7E1E0F0E04F0 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE00000080C0E7E3E1C103C3E3C70FDF0783E22 +:101BF000000000000000000000000000000000E005 +:101C000003030303030101010100000000000001C0 +:101C1000F0E0C080C0E0F0F0F8F0F86CCCE6C58CE5 +:101C2000030307070E1C387C78E07078FCFE7F1FEA +:101C3000088C9C183C3C30786070F8F878FEFFFF08 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C600000000000000000000000000000000080F4 +:101C70000000000000000000000000000000000064 +:101C8000000000000000000000000000000103064A +:101C900000000000000000000000000080C0F07F95 +:101CA0000E0C0D0C1E3F3E78FDFEFC7E7E3F1F0796 +:101CB000FFFFFF6C0000000000400000000000A0DB +:101CC00000000000000000000000000000030F1EE4 +:101CD0000F0F0F07030707060707033EFDE9C8803C +:101CE0001E3C7C7C7E3E0F070000000000000000D0 +:101CF00080000000000000800000000000000000E4 +:101D000000000000000101010101000000000000CE +:101D100000000000000080C0E0FA5E3E0600000007 +:101D200060800000C0E8B0206060703038191F1F6C +:101D30000000000000000000000000000080E0F053 +:101D400000000060E0E0E0E0707070703838383813 +:101D50000000000000000000000000000000000083 +:101D60001C1C1C1C0E0E0E0E0000000000000000CB +:101D7000000000000000000003077F7F7A200000C1 +:101D8000070F0F0E07070707070303030307070FD4 +:101D900038000000000080008080C0C0E0D0C0C0DB +:101DA0000F0F1F1F1F3F3E7F7FFFFF7FFFFFFF7F44 +:101DB000E0808080C08000008080008080F8FEFF8E +:101DC000D0406000002070F0F0F0C080101810309B +:101DD0000000000000000000000000000000000003 +:101DE000393E78717060383E00000000000000004D +:101DF000000020A010101818383830000000000033 +:101E0000000000000000000000000060E0F07078BA +:101E100000000000000000000000000000000000C2 +:101E2000383C1C1E0E0F07070303010100000000D1 +:101E3000000000000000008080C0C0E0E0F070788A +:101E40007C383C1C0E0E0F0F07070707070F0F1FEC +:101E50000000000000000000008080C0A0808080A2 +:101E60001F3F3F7E7FFFFEFF3F7FFFFF7F3F000062 +:101E70000000000000000000808080C0F0F800003A +:101E800000000001030302030200000030F8F8F034 +:101E9000387CFECFC3DB44080000000000000000D7 +:101EA000C0043020303438707060F0F8783C7E7CAC +:101EB0000000000000000000000000000000080C0E +:101EC00060E0E0F070707838383C1C1C1E0E0E0F7D +:101ED0000000000000000000000000000000000002 +:101EE00007070703030300000000000000000000D4 +:101EF000000080808000000000707078787C7E3F59 +:101F0000000000000001030302030200000038F893 +:101F10000000387CFECFC3DB440800000000000056 +:101F2000F8F0E04010383C3A31607078F0E07038FA +:101F300000000000000000000000000000000000A1 +:101F40003F3E3C181C0E0707070703030303030764 +:101F5000C000000000000000808080C0C0E0D0C051 +:101F6000070F1F1F1F3F7FFFFFFF3F7FFFFF7F3FC9 +:101F7000C0808080C0C08080C0C080C0E0C0C08001 +:101F800060E0E0F0707070383838381C1C1C1C0E93 +:101F90000000000000000000000000000000000041 +:101FA0000E0E0E07070707000000000000000000EB +:101FB00000000000000000800000000000000000A1 +:101FC0000000000307070D0C0E0E1F1A080E02007A +:101FD000000000E0F0E020004000000000000000F1 +:101FE0000020200000002030002036002000303883 +:101FF0000000000000000008081C1C3C3C3E028061 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4d-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4d-.bin.hex new file mode 100644 index 00000000..d5f6935c --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4d-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000002030103E7 +:1000100000000000000000000040E0E080E000E0A0 +:10002000FB73C7E7FBFD7E7F3F1F07030101000055 +:10003000E0E0E0E0E0E0C040400000A8F8F7FF7E2C +:1000400000000000000000000000000000000000B0 +:100050000000000101000000000001030301000096 +:10006000DFDFAEB8BC5F7F2F2F0703010000000069 +:100070003C7C7CFCFC7CBCD8E8E8E8F03D1F1E0F13 +:100080000000000000000000000000000000000070 +:1000900000000000000007077E7C081010181818E8 +:1000A0000000000000000000000000000000000050 +:1000B000010300000000000000000000000000003C +:1000C0000001030307030D0F1B1F0F030F0E1F3F3C +:1000D000E0F0F8FCFCFCFCE8FCFCFCF8F8F838C0AC +:1000E000F8FCFEC01C7FFFFFFFFF7F1E80FCFCF8BA +:1000F00000000000002078F8F8B8000000000000C0 +:1001000000000000000E7FFFFE8C000000000000D9 +:1001100000000000032EFFBF1C1E1800000000009E +:1001200000000000000000000000000000000000CF +:1001300007060604080000000000000808080C0C70 +:100140000000000000000000000000000000E0F0DF +:100150007C78787060000000000000000000000063 +:10016000000000000000000000000000000000008F +:10017000000000000000010F0F0F1F1F0100000012 +:100180000307070F1E3E7EFCFCFCF8F8F8F87838F1 +:10019000000000000000000000000000000000005F +:1001A0000000000000000000003633311808000095 +:1001B0000000000000000000000080C0C0600000DF +:1001C00000000000030F1F3F7C70000000000000D3 +:1001D000000070F8F8F0C00000000000000000000F +:1001E000000000000000000000000000047CF80097 +:1001F00000000000000000000000000000000000FF +:10020000000000000001000703070F0707030103B8 +:10021000000000000080C0E0F0E0E0E0F0E0E080FE +:1002200007070C0811172327274F4F6F73783030BB +:10023000808080C0C0C0C0D090D8D89C1E1F0E0641 +:10024000070F0E0C1C1C1D19193D3D3C1C0603011B +:1002500000008080C0C0C080008080808080C0E0BE +:10026000070F1F1E3C3C7E7E7EFFFF7FF7F0600085 +:1002700000808080C0C0C0C04060188CDE7E3C0C16 +:10028000000000F8FCF6E1F0FEF3F0F8F0F060009A +:10029000000000000C09BF5E1CA0E0000000000090 +:1002A000000000000000010307070F0F070303070A +:1002B000000000000000C0E0E060F0F0E0E0C0807E +:1002C000C0C0C0C0C0C0000000808080C00000006E +:1002D000000000000000000000000000000000001E +:1002E000000080C0FEFEFEFEFEFEC0C0C08080009A +:1002F00000000000000000000000000000000000FE +:100300000000000103070F0F1F1F0F0F0F0F07073C +:100310003C7EFEFEFEFEFEFEFEFEFEFEFEFEFEFE3F +:1003200000000000030303010100000000000000C2 +:10033000031F7FFFFFFFFFFFFFFFFFFFFF1F000007 +:10034000000000000000000000E0E060300000005D +:10035000000000000000000000000000000000009D +:10036000000003070F1F1F0F070F0F0F03000000F0 +:100370003C7FFFFFFFFFFFFFFFFFFFFFFE3E000090 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A0000000000000000000020303010103070336 +:1003B0000000000000002078F8FCECE8FC9CC8E09D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E0000000000000010B0F0F07073E3F1D00003B +:1003F0000000000080E0E0B0B0E0F070208000007D +:100400000001030307030D0F1B1F0F030F0E0F0F38 +:10041000E0F0F8FCFCFCFCE8FCFCFCF8F8F87800E8 +:100420001F3F3E7C7973F7F7E7EFE7E7E7E7C3DFC6 +:10043000C0D87C1ECEE7F7F7F7E7EFCF0F9E9E3CC4 +:10044000000000000000000080404040000000006C +:10045000000000000000000000000000000000009C +:1004600000000000000000004040707070783838D4 +:10047000000000000000000000000000000000007C +:100480000000000000000000000000010101030363 +:100490003C3C7E7E7F7F7FFFFFFFFFFFFFFFFFFE75 +:1004A0000307070F0F1F1F0000040F0F1F1F3F3F01 +:1004B000FEFEFEFEFCFCFCFC000000E0F0F8FCFE92 +:1004C000000000000080808080000000000000002C +:1004D000000000000000000000000000000000001C +:1004E00000000000000000000000081F1F1F3F3F29 +:1004F0000000000000000000000000C0F0F8FCFE5A +:100500000001030307030D0F1B1F0F030F0E0F0F37 +:10051000E0F0F8FCFCFCFCE8FCFCFCF8F8F87800E7 +:100520001F3F3F7C797377E7EFCFDFCF8F973C3E5C +:10053000C0D8FC7E3E9FCFEFEFEFCFDF9F3E3E7CEB +:1005400000000000000000007E7C7D3B1D0C1E1E94 +:100550000000000000000000FCFCFCFCFCFCF810AB +:100560000F0F07070301000000000000000000005B +:100570000000008090F0E8FE7E3C180000000000C3 +:1005800004040404060E0E0C0C1C1C1838383870B9 +:10059000000000000000000000000000000000005B +:1005A00070F0E0E0E0200000C0C0E2FFFFFFFF0FBE +:1005B000000000000000000000000010F8FCFEFF3A +:1005C0000001030307030D0F1B1F0F070F0E0F0F73 +:1005D000E0F0F8FCFCFCFCE8FCFCFCF8F8F8780027 +:1005E0001F3F3F7E7C7973F3F7E7EFE7E7E7C35FF1 +:1005F000C0C0DC7C1ECFE7F7F7F7E7EFCF0E9E9E7B +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:10062000000000000000000004070F0F1F1F3F3FE5 +:1006300000000000000000000000C0E0F0F8FCFE38 +:100640000F0F0F0F0F0F0F1F1F1F3F3F3F3F3F1F8A +:100650000000008080C0C0C0C0C0C0E0E0E0E0E0BA +:100660001F1F1F1F3F3F3F3F00000C0F1F1F3F3F3B +:10067000F0F0F0F0F0F0F0F0000000C0E0F0FCFE70 +:100680000001030307030D0F1B1F0F030F0E1F3F76 +:10069000E0F0F8FCFCFCFCF0FCFCFCF8F8F838801E +:1006A0007F4713F9FCFEDF0FE2FC9FE3FFFFF3033C +:1006B00000E0F0F0F8787C7C7CE0F3FFFFFFFFFEC9 +:1006C000000000000C1C1C3C78FCFCFC7C3C103C3A +:1006D000000000000000000000000000000000001A +:1006E0003F7F3F3F1F0701000000000000000000A7 +:1006F000FFFFFFFEFEF8F000000000000000000019 +:1007000000000000000000000000000000000000E9 +:100710000C0707030303010001030307070F0F0F73 +:1007200000000000000000000000000103030707B4 +:100730001F3F3F7FFF0F000000C0F0FCFEFEFFFFE9 +:10074000000000C0E0E0F0F0F8F8F8F0F0F0F0F0B1 +:100750000000000000000000000000000000000099 +:10076000E0E0E0E0C0C000000000181E3F3FFFFFD7 +:10077000000000000000000000000040F0F8FCFC59 +:100780000000000103070F1F1F0F3F1B0F07070784 +:100790003F7F7FFFFFFFFEFEFEFEFEFFFFFFE7FF46 +:1007A0000303030000000000000000000000000040 +:1007B000FFFFFFFF3F0F00000000000000000000EF +:1007C0000000000000000000000000000000000029 +:1007D00003030303010101000101030307070F0FD6 +:1007E00000000000000001000000000101030707F5 +:1007F0001F3F3F7F7FFFFFFF0000C0E0FEFFFFFFC6 +:10080000C0E0F0F8FCFEFEFEFCFCFCFCFCFCFCFC8A +:1008100000000000000000000000000000000000D8 +:10082000FCF8F0F0E0E0E0C0000000070F0F9FDFF1 +:10083000000000000000000000000000F8FCFEFFC7 +:1008400000000101030106070D0F07030707070F4B +:1008500070F8FCFEFEFEFEF4FEFEFEFCFC7C9CE05E +:100860001F3F2701387EFFFFFEFFFEFC5183BFBF05 +:10087000F0F8FCFEFE7E3F3F3F3F7FFFFFFFFFFEA5 +:100880000000000000000000103858783838183890 +:100890000000000000000000000000000000000058 +:1008A0003E1E1E1C1D0D0D06070707070303000053 +:1008B000FFFFFFFFFFFFFCFC00800080C080000006 +:1008C000000000000000000000000000001078F0B0 +:1008D0000000000000000000000000000000000018 +:1008E000F0F8F87C3C3C3C181C1C0C0C040000008C +:1008F00000000000000000000000000000000000F8 +:1009000001010000000000000000000101070F0FBE +:10091000C0E0F0F0F0F070787878F8F8F8F8F8F8CF +:100920000F0F0F1F1F1F3F3F0000181C1F1F3F7F8F +:10093000F8F0F0F0F8F8F8F800000080E0F0F8FCCB +:10094000000000000100030306070300030307077C +:10095000387CFEFFFFFF7FFAFFFFFFFEFEBEDEC01A +:100960000F0301187EFEFFFEFEFCF97387FF7FFF79 +:10097000F0F0FCFE7E7E7F7F7FFFFFFEFEFCFCF83A +:1009800000000000000004747C7C787838783C3CDF +:100990000000000000000000000000000000000057 +:1009A0003D1D1D0D090D070706070707030300007E +:1009B000FFFFFFFFFFFF3F0FA0E0E0C0800000004F +:1009C0000000000000000000000000000001030320 +:1009D0000000000000000000000000000000000017 +:1009E0000307070F0F1F0F0F0F1F1F3F7F7FFFFF13 +:1009F000FFFFFFFEFCFCFC9C80000080C0F0F8FCC8 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A2000000060787F7F3F3F3F7F7F7FFFFFFFFFBA +:100A3000000000C0C0C0C0C0C08080808080800036 +:100A400000000001010207050707070F0F1F1D7EA9 +:100A5000387CFEFEFFFF7FFFF6F4FC3C1CC8E02064 +:100A60007FFFFF7F1F8FCFE7E7E7C7CFCF9F3F3FD6 +:100A700000E0F0F8FCFCFEFEFEFEFCFCF8F8F0F0F6 +:100A8000010000010307070F0F0F1F0F1F3A3C7DE6 +:100A90000000000000000000000000000000FFFF58 +:100AA0007B373B183C3C1E1E0E0606030303070F54 +:100AB000FFFFFFFF0F00000000000000C0E02080EB +:100AC000000000000000000000010101010101011F +:100AD000000000000000000000C080808080000056 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B0000383810181C0F060C0C08080C0C0C0E0CB6 +:100B100000000000000000000000000000000000D5 +:100B20000C1E1C1C181C0E00000101030303030310 +:100B30000000000000000000000898FCFEFFFEE03E +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000004070707070362 +:100B70000000000000000000337FFEFCF0E0800079 +:100B8000E0F0F8F8FCFCF8707CFCB4CFFB8307FFC6 +:100B9000000000000000000000000080E0F0F0F025 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000F4FEFFFFFFF7F7F3E0E0E0C0C0C0E0E0C5 +:100BC000C0FFFFFFFFFCF0E040000030306060F04D +:100BD00000F8F880000000000000000000000000A5 +:100BE000F0303C0C8F878000000000000000000007 +:100BF000000000000080E0F01C080C070301010168 +:100C000000070F0F0F07030A090D0406020307036D +:100C10008080808080C0C0E0607070301858D898A4 +:100C200000000000000000000000004060703C0E6A +:100C300098800000000000000000000000647F7F3A +:100C40000006070703020909080406060000050755 +:100C50004040008080C0C0C0E060607030302060E4 +:100C6000060200000000000010181C0C0404070716 +:100C700040C0400000000000000000000040E0E034 +:100C800003050C070701030301010000000206042D +:100C9000C080800080808080C0C0C0404040E0F0C4 +:100CA00000010000000000000000004060603C0EF9 +:100CB000F0F0C000000000000000000000447E7F53 +:100CC0000000010001030101030100000100070F02 +:100CD0000C7EFFFFFEFEFCFEFFFCFCFCF01080C063 +:100CE0003F77FBEC80DCDEDEDC48480C080F185E4A +:100CF000C0C08000000000000000000000C0000034 +:100D000000404040000000000000000000001B1BED +:100D100000000000000000000000000000000000D3 +:100D20001B0C0E0F07030301010000000000000070 +:100D30000000000040C080C0C000000000000000B3 +:100D40001C0C0C1E1E0E070707070F0F0F0F0F07B7 +:100D5000000000000000C0C0C0C0C0C08080808013 +:100D60000707070707030301010000000000000058 +:100D700080808080808080C0C06000000000000013 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0000000000000000000000000000000000033 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000000000000000000000000003 +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E8000010101010101000000000000000000005C +:100E9000FCF8E8F0F0F8F87C2C2C343414163637D3 +:100EA000000000000000000000000101010100003E +:100EB00077474400000000000000000080E0F07070 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE00000000000000001010101010000000000FD +:100EF000000000000080C0C0E0E0F0DC180000004E +:100F000000000000000000000000000000000000E1 +:100F1000000000000000000000000000607078FC8D +:100F20000000000000014141C7FEE0E06000000059 +:100F3000FCFCFCF8E4CCCCD81C7CFCF000061EFCCD +:100F40003E3E3E3E3C7C7C787E3C3E3E3E1F1F1F2C +:100F50000000000000000000000000000000000091 +:100F60001F1F3F3E3E3E3E3E1F0707070E06000086 +:100F700000000000000000008080C0C0C0C0C000B1 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:1010200000000000000000000000000107030101B3 +:101030000000000003071E3E7C7CF8F8F0F0C0C002 +:10104000000000000000000000000000000103019B +:1010500000000000000000000000000000C0E0E010 +:101060000006070703070F1F1F3F7E3E7CF0F07C42 +:10107000F03838BC948C9C161E1E1E0E38383E3F2D +:1010800000000000000000000000000000000C064E +:101090000000000000000000000000000000000050 +:1010A0000303010300050A0B1B13371B0F0E1F1F41 +:1010B000E0C080C0C0C0C0C0808080808000008050 +:1010C000000000000000000000000000080E0F07F4 +:1010D000000000000000000000000000000000A070 +:1010E0000707070F0F0E1E1E3C7C7870E0F0F87C9F +:1010F000A0B030387878787C3E3E3E3E183C3E3F8B +:10110000000000000000283E1E34783C7E3C1C0895 +:1011100000000000000000000000000000000000CF +:10112000060F1F1919191B1A1B38040402030100AA +:101130000000008000000000008080404060F0E07F +:101140000000000000000000000000000404040390 +:10115000000000000000000000000000000000008F +:1011600001010002030307060E0E060E060301002E +:10117000E0E0A06070307070F0F0F060F0F0F8FC2B +:101180000000000000000000000000000007010750 +:10119000000000000000000000000000000080C00F +:1011A00001030010387CFE7E7CFD7F3F1D010000A6 +:1011B000E09090C84828284D9FDFFFFFFFFFFF7E8B +:1011C000000000000000000303010103070F1F3FA0 +:1011D00000000000000000000080C0C0E0E000004F +:1011E0003C7C78F0E2CB1D3FB9F0F0F0F0E08000FD +:1011F0000000000206BEFCFCD80000000000000059 +:101200000000000000202020206060606060303C12 +:1012100000000000000000000000000000000000CE +:101220003C1E1E0F0F060D0C1E3C7C7C3870F8FE19 +:1012300000000000808000000000000000000000AE +:101240000000000000000000030107030703030380 +:1012500000000000000000A0F0F0F0F0E0F080C01E +:10126000071F23634F1F3A3C9E9F5F5F3E38380045 +:10127000000080800000000000000000000000006E +:10128000000000000000000000000000000707034D +:1012900000000000000000000000000000000080CE +:1012A000030103010000010B0B1A1C0E00060E0CBB +:1012B00080808080C0C0404000000000000000002E +:1012C000000000000000107C3C7CFC7EFC787E3935 +:1012D0000000000004151F0F0E141424244848D0E9 +:1012E0001F0C1F1F1F1F1F1F1F1F0F0F00000000BD +:1012F0000020C080E0F0F0F0F0E0E0C0C08000002E +:101300000000000000000000000000000000004796 +:1013100000000000000000000000000000000000CD +:101320007FFF6F4B01030301070303010303030165 +:10133000C0E0F0F8F9FDBF9E9C888080F0E0C0001E +:1013400080C0E0E0E0E0F0F0F0F0F0F0F0F8FCFE5B +:10135000000000000000000000000000000000008D +:10136000FC08080000000000000000000000000071 +:10137000000000000000000000000000000000006D +:1013800000000000C0C0C0C0C0808080808080009D +:10139000000000000000000000000000000000004D +:1013A00000000000000000000030301808000000BD +:1013B000000000000000000000000000000000002D +:1013C000000000000000000000000000000000011C +:1013D000000000000000000000000000000000808D +:1013E0001F0F0F07030000000000000000000000B6 +:1013F000EFFFFFFFFFFF3F0F0F0F0F1F1F1F1F0309 +:10140000E0F0F0F8F8F8F8F8F8F0F8F8FCFEFFFF74 +:10141000000000000000000000000000000000804C +:10142000030202F0F0F8F8F8F8FCFCFCFCFCFCF815 +:1014300000000000000000000000000000000000AC +:1014400000000F0F0F0F0303010101000000010155 +:10145000000000000000000000000000000000008C +:101460000303030300000007070703010000000057 +:10147000F8F8F8F0F030000080808080C0000000B4 +:101480000000000000000000000000000000000656 +:10149000000000000000000000000000000000004C +:1014A0007F3F3F1F0F03000000000000000000000E +:1014B000BFFFFFFFFFFFFF3F3F3F3F3F1F3F7F7FDC +:1014C00080C0C0E0E0E0E0E0E0E0C0E0F0F8FCFE7A +:1014D000000000000000000000000000000000000C +:1014E000FC080800E0F0F0F0F8F8F8FCFCFC7C7C6C +:1014F00000000000000000000000000000000000EC +:1015000001000407070707030100000000000000B6 +:10151000E0000080E0E0E0E0E0E0602000000000AB +:1015200000000000000000183C3C381800000000DB +:101530000F070F0F0F1F030000030301000000003F +:10154000000000020301000101010101000101018D +:101550007E000000FEFEFEFEFCFCFCFCFCF8F8F841 +:1015600001030703010000040F0E0606030000003C +:10157000F8F0F0F0F0E000000001010000000000D1 +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000000000000C0C040300000004B +:1015B000000000000000000000000000000000002B +:1015C00080C0E0F0F8F8F8F0F0F0F0F0F8F070001B +:1015D000000000000000000000000000000000000B +:1015E0000008FCFEFFFFFF7F1F0F070F0F0F070014 +:1015F00000000000008080C0C0C080C0C0E080004B +:1016000000000000000000080F1F1F0F070300006C +:101610000000000000000000E0E0E0E0E0E0E000AA +:101620000000000000000000181C1808080000005E +:1016300000000000000000000000000000000000AA +:10164000000080808080C0C0F8FCFCF8F8F87030A2 +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:101680000000000000000000070707030100000041 +:101690000000000000000000E0FCFCFFFFFF7F3FB7 +:1016A000000000010000000203070706020000001E +:1016B0007F7FFFFEFE7C38180080000000000000E5 +:1016C000000000000000000000000000008080809A +:1016D000000000000000000000000000000000000A +:1016E0008080000000000000003838180C00000066 +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000103071F3F70 +:10171000000000000000000000000080C0C0E0E009 +:101720003F7F7FFFFFFFFFFFFBE3430100000A0B4A +:10173000E0F0F0F0F0F0F0F0E0F0F0F0300000C099 +:1017400000000000000F070707030303010100006A +:101750000000000000E0F0F0F0F8F8F8F87CFCFC85 +:10176000010103030301000000181C1D0C00000010 +:10177000FCFCF8F8F8F878000080E0E0F060000089 +:10178000010303070F0F1F1F1F3F3F3F7F7F040011 +:10179000FCFEFEFFFFFFFFFFFFFEFEFEFCFE000063 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C000070000101F1F1F0F0F0F07070303030160 +:1017D000E0E0000000C0E0E0F0F0F0F0F0F8F8F831 +:1017E00000010103030707070000000705040000CC +:1017F000F8F0F0F0F0E0E000000000C0E0C0000011 +:101800000000000000000000000000000103070FBE +:101810000000000000000000000040FFFBFBFDFD99 +:101820001F1F3F3F3E3E0C00000000000000000074 +:10183000FCE8F0F8FCF8F8F60F030040F8FEFE7F35 +:101840000000000000000000000000000080C0C098 +:101850000000000000000000000000000000000088 +:10186000C0C08080000000000000000000000000F8 +:101870000000000000000000000000000000000068 +:101880000000000000000000030100000000000054 +:101890000000000000000404FEFEFEFF7F7F3F3FCB +:1018A000000000000101010302002078F96100003E +:1018B0007F7EFEFEFEFCFCFC080000C0E0C00000D5 +:1018C000070F1F3F7F7FFBF9F9FDFDFC7000000053 +:1018D000F9FFFFFFFFFFFFFFFFFFFFFFFFFE786045 +:1018E00000000000000000000000000000000000F8 +:1018F000071F3F3F1F1F0F030000000000000000F4 +:1019000000000000000000000000070707070707AD +:10191000000000000000000000000080C0F0FCFE9D +:1019200007070701000000000000000000000000A1 +:10193000FFFFFFFF5F1F1F0F0F0F070302000000D5 +:101940000000000000000000000000000000008017 +:101950000000000000000000000000000000000087 +:1019600080C0C0C0E0E0C0800010383C180000001B +:101970000000000000F8F02000000000000000005F +:1019800000000000000101031F1F1F3F3F3F7F7F3A +:101990000F1F3F7FFEFCF8F8FDFFFFFFFFFFFFFE7C +:1019A000FFFBF9FD7C7E7C38300000000000000069 +:1019B000FEFEFCFC78783100000000000000000012 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E000000000000000000010387C7EFE0C08089B +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000080E0C0808000003079A +:101A10000000000000000000000100000000E0FFE6 +:101A200007070F0F0F0F0F0000000000000000005D +:101A3000FFFFFFFFFFFD800000000000000000002E +:101A40000000000000C000000001030381C0E0F0BE +:101A500000000000000000000080F0E0E040000016 +:101A6000F8FCFCFEFEFCFC782001030301000000F2 +:101A700000000000000000000000E0C08000000046 +:101A80000000000000000000000000000000000056 +:101A90000000000000000000000000000000000046 +:101AA000000002000000020000000603104C6070FD +:101AB000000000000000060E06000000000000000C +:101AC0000000000000000000000000000000000412 +:101AD0000000000000000000000000000000000006 +:101AE0000000040000010301000E020000000000DD +:101AF00008081870D0C08020080000000000000016 +:101B000000000000000000000000000000000000D5 +:101B100000000000000000000000000000000000C5 +:101B20000000210109000001010000030300000082 +:101B30008080C062480080C0C0400080808000007B +:101B40000000C0E0E0C080000000000000000000D5 +:101B50000000000000000000000000000000000085 +:101B600000000000000000000000808080C0000035 +:101B70000000000000000000000000000000000065 +:101B8000F8D0D00000000000BFDF31FEC30101012A +:101B9000000000000000000080C0E0E0E0E0E0C0E5 +:101BA000010404000000000000000000000000002C +:101BB000800000000000000020301C2E10180800DB +:101BC00000000000000000000D0F1F1F1C1C0C0077 +:101BD000000000000000000080C0D0F800000000FD +:101BE000000404000C1C0C003C1C00000000000061 +:101BF00000000000000000000000000000000000E5 +:101C00000000000000010B0F0F07073EFF0100005E +:101C10000000000080E0E0B0B0E0F0702080000044 +:101C200040E0F0F8FEFFBF9FCEE6E0E0E0C000003D +:101C300000000000008080000000000000000000A4 +:101C40000000000000000000010100000000000092 +:101C5000000000000070F6CECEFCFAF2767CE000C8 +:101C600000000000000000001F0701000001071F26 +:101C7000000000000000000000F0F83878F0C0001C +:101C8000000000000000000001070F1C306000038E +:101C90000000000000000000E0F8FC3C1C78F08030 +:101CA0000000000000000000071F3F787060201057 +:101CB0000000000000000000C0F0F83C1C0C081000 +:101CC00000000000000001000200000C06001800E7 +:101CD000000000000000060E0600000000000000EA +:101CE00000000000000000010108020300000000E5 +:101CF000000000000080804040080080800000005C +:101D000000070E1C18383838381C0E04000000007C +:101D10000080000000000000000000000000000043 +:101D200000000000010101010101000000000000AD +:101D30000070F8FCDC8E820202000000000000004F +:101D400080C0E0F8F8FCFEFEFCFCFEFEBEF3FFBF28 +:101D50000000000000000000000000000000008003 +:101D60000000000000000205030707070300030F3F +:101D70000000000000000000000040C04060E0F0F3 +:101D800000000C063F0F07020E00000000000000DC +:101D9000000080808183E77F1F0A000000000000B0 +:101DA0001F3F7FFFFFFFFFFF7F5F0F0F0700183E02 +:101DB000F0F0F8F8FCFCF8F8F87CBC989C0C0C0CE3 +:101DC000000000000000000001010101000000000F +:101DD000000000000000C0406060F0F0C0404040E3 +:101DE00000000000000000010103E1FB0707030100 +:101DF00000000000004060A0D0E0C000C0800000F3 +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000070F010000000000009A +:101F30000000000000000000E0E0000000000000E1 +:101F4000030307070000000000000000000000007D +:101F5000C0E0E0F0E0408000008080C000000000B1 +:101F600020206060E0E2EF0F1F1C0103030100006E +:101F70000000181C1E1E0E06048080C0C0E0C0C0F9 +:101F8000021E1E060101000000000000000000000B +:101F90000E0E2E6EF4F4F0C00000020E3F1F0F066E +:101FA0000000000B1F1F3F7F7F7E3A58280400006F +:101FB00000000080E0E0F0B0004000004000008041 +:101FC00023232363230200020203070F0000000003 +:101FD0000080C0C0C0000000000000000000000041 +:101FE0000000000000000000030B0E0600000000CF +:101FF00000000040203010F0E080000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4e-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4e-.bin.hex new file mode 100644 index 00000000..577402e3 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4e-.bin.hex @@ -0,0 +1,513 @@ +:10000000000000000000000000010B1B1A0F070F8A +:100010000000000000000000000080800080000060 +:1000200001030707060E0E0C0C0C18181818080808 +:10003000C0C0E030181818181838303070703838D0 +:10004000000404020203171F3F3F1F0F0D1C1E6711 +:10005000000020204040C0ECF0E0C0E090888040EC +:100060000000000030247C707C301800000000008C +:100070000000000000000000000000000000000080 +:10008000000000000000000000000000030100006C +:1000900000000000000000000000000080000000E0 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C00000000000000000000C0C040C1C1C1414A8 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:100100000000000000060707070F0E0701000000AF +:10011000000000000000000000000000C08000009F +:10012000000000000000030207FFFFFDF8F8780C54 +:100130000000000000000060E0C0C080000000007F +:100140000000000000000000000000000080C0E08F +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:100170000000000000000000000000071F3F7FFF9C +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A0000000000000000000000000008080C0C0CF +:1001B000000000000000000000000000000000003F +:1001C000010307070F0F1F3F7E7E7CFEFE7F1F1F70 +:1001D000D080000080800000000000000080E0F07F +:1001E0000000010303070704060202000003020CDB +:1001F00070F8FCBE86B08898000000000080800087 +:10020000000000000000000000000000FFFFFF00F1 +:10021000000000000000000000000000E0E0E0003E +:1002200000000000000000000000040F0F0C0000A0 +:10023000000000000001071F0E0800000000000081 +:100240000000000000000030783D1F1F0300000088 +:1002500000000000000103036FFFFFFEF8D0000064 +:10026000000000080C1C3E1F0F07030000000000E8 +:10027000000000000000000000800000103C7E7EB6 +:10028000000000010107070D0C0C0C0C0F07030305 +:1002900007070E8FCFE7F7BF8F020201000080C073 +:1002A000900000022FFDFBE3060707030301010195 +:1002B0000000000040800000000000008098FEFF69 +:1002C00000000203070F0703010000000000000008 +:1002D000000000000080C0E0E0C000040F1F0F0F0E +:1002E0000000000000001F7FFFF8800000000000F9 +:1002F00000000000070703808000000000000000ED +:100300000000077FFFFCC0000000000000000000AC +:10031000077FFFFCC000000000000000000000009C +:1003200000000000000000000000000000000000CD +:1003300000000303070F1F3F3F3F3F3F1F1F1F0FDB +:1003400000000000000000000000F0F0C00000000D +:100350000000000000000000007F7F3F0000000060 +:1003600000000000000000007FFFFFC00000000050 +:100370000000000000000000F0F0F00000000000AD +:10038000000000181C7E7FF7E1C0C0C0F070383C50 +:100390003E67E0C0E07B7FFEF86040200000000088 +:1003A00001030307071F3F7EFCFEFF7C783C1C0E09 +:1003B000E0E0A00001038707030100C00000000C7B +:1003C000000000000000000000C1E1E0B0000000FB +:1003D000000000000000000000FFFFFF0000000020 +:1003E00000000000000000007FFFFFC000000000D0 +:1003F000000000000000000080808000000000007D +:1004000007070707010000000001010100000000CC +:100410000000000000000080C0C0C0E0E0E0C000BC +:1004200000000000000000000F3F3F69407670F8B8 +:10043000000000000000000000800000000000003C +:100440000000000707070303000000000000000091 +:10045000000000000080C0E0F8FD7F1F0A000000DF +:100460000000000000000000000300000000000089 +:10047000000000000000000008FD3F3F14000000E5 +:10048000000000000000000001000000000000006B +:1004900000000000004040E0E0F0E0C0000000008C +:1004A000000000181C7E7FF7E1C0C0C0F070383C2F +:1004B0007770E0F0F07B7FFEF860402000000000E5 +:1004C00000000000C0E8B0206060703038191F1FC5 +:1004D0000000000000000000000000000080E0F0CC +:1004E000200000387C3E3F3F393000000000000013 +:1004F000030F1F1F3FFEF8F1230707070F0F070326 +:100500001F1F1E1E1F0F0706387C70E0E0F070787A +:10051000808080000080808E1F3F3F1E18100018D2 +:100520000000000000000000000000003C7EFFFE14 +:100530000000000000000000000E0E0E0E0706076F +:1005400000000000A020000030303070E0E4ECCC6F +:10055000000000000000000000000000000000009B +:100560000001030307070E0E0C0C183878FCEC444E +:10057000FFFFFFFFBF1301000102060E1F3F7FFFB9 +:10058000000000000000000000000000000000006B +:100590000000183838707060000001060F03074132 +:1005A0000000402020004042AC9208080C0868B8C7 +:1005B000000000000000000000000000000000003B +:1005C0000000000000000000010302000103010020 +:1005D00000000000000000008C3C1C3C3A3181030C +:1005E0000000000000002040C0E04203A122406063 +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000020103D4 +:10062000000000000000000000000000000000309A +:1006300000000000000000000000000000000000BA +:1006400000000018181C0E061C3870717371381CDD +:10065000000000000000000000000080402020108A +:100660000000000000000200000000030000000085 +:1006700000000000000080000000C0686D213018FC +:1006800000000000000000000000000080D8800092 +:10069000000000000000000000000000000000005A +:1006A0000000183F0F070F1C183830310F0F0F07CD +:1006B0000000F0F0888CDCDCFC7CFCF8F8F0E0C09A +:1006C0001C3E7F7FFFFFFF7F7F3F0F1F3F3F3F1F8E +:1006D00038FCFEFEFEFCF8FEFFFFFFF6F8FCFEFE17 +:1006E000000000000000010A1377FF1F0F03000045 +:1006F000000000000123373F7FFFFFFFFF9EC9205E +:1007000004030183CFFFFFFFFFFFFF8B0102000007 +:100710000000881090F1FBFFFDC6BD7800000000CE +:10072000006040A0C0A00084C8FA3C201000000077 +:1007300000000000000000000000000000000000B9 +:10074000000001032170702000060F060000000069 +:10075000000080C080001038381000000060E040C9 +:100760000000000000000000081C1C080000000041 +:100770000000000000000000000000000000000079 +:100780000000183C180001032371702000060F06BA +:1007900040E06000000C8CC4C080001838100000DD +:1007A0000000000000000000000002070702000037 +:1007B0000000000000000000000000000000000039 +:1007C000FFFFFFEFDFDF9F5FEFF7DF3F1F8CC0E131 +:1007D000C0E0F0F0F0F8F8FCFCFCFCFEDE4E8E8E83 +:1007E000000000010377FE9C3C7C481800000001DB +:1007F0000C3F7FFFEF83030703030101000000C0EC +:10080000F8FCFCFE1E0000000000000000000000DC +:1008100000003078F8F060000000000000000000E8 +:1008200000000000000000000000000100000000C7 +:100830000000000000000000000000C0C0400000F8 +:100840000C0C0C060000000000000000000000007E +:100850001818080830F8F8F06000000000000000E8 +:10086000000000000000000000040701000000007C +:100870000000000000000000000080E06020000098 +:100880000000010101010100000000000000000063 +:10089000000080C0C08000000000000000000000D8 +:1008A0000000000000000000000001010101000044 +:1008B00000000000000000000000000000800000B8 +:1008C0000000000001020000000000000000000025 +:1008D000000000000C0E0E0E1E3E7EFE7C7C7E7E16 +:1008E0000000000000010101010000000000000004 +:1008F0007E3F3F3CF0E0F0D0E0C000000000000090 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000040F03000000B1 +:100930000000000000000000000040F8300000004F +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:1009600000000000000000000060F0F0E0603010C7 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000050F0F07033A +:100990000000000000000000A0B8E8F0B080C080B7 +:1009A00003071F3F3F3F3F3F7F7F7F7F3F3FBFBFEB +:1009B000C0C8E8F0F0F0FBFCF8F0F8E4E2E0D0D0DA +:1009C0000000000000070000000000000000000020 +:1009D0000000000000C00000000000000000000057 +:1009E0000000000000000000000000000F000000F8 +:1009F000000000000000000000000080E030000067 +:100A0000F0F8FCFEFEFF7F3F3F3F7F7FFFFFFF7F51 +:100A100000000000000000008080808080C1C0F0E5 +:100A20007F7F3F3F3F1E1800C0E0F0C0E0E0E040A5 +:100A3000F8E0C0800000000000000000000000009E +:100A4000000101030303010000000080C0E0F0F09A +:100A5000808020E0C0800000000000000000000056 +:100A6000C080000000000000000000000000000046 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000000000066 +:100A90000000000000000000000000006070E04066 +:100AA000000000000000000000000103030100003E +:100AB0000000000000000000000080C08000000076 +:100AC000000000000000000002020202020606060A +:100AD0000000000000000000000000000000000016 +:100AE0000662F2FAE860301000000000000000002A +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B1000000010181818100000000000000010104D +:100B200000000000000000000000000000000000C5 +:100B300010100010101010101010101010181E1FA0 +:100B400000000000000000000000000000000000A5 +:100B5000000030383838300000000000000000008D +:100B60000000000000000000000000000000000085 +:100B7000000000000000000020202030303C3E3FFC +:100B80000000000000000000000000000000000065 +:100B90000000000101030703070300000000061E18 +:100BA000000000010101030F1F070F1E14140000B5 +:100BB0003EFCF8E080C0C0C080008080870707004E +:100BC00000800080800000000000000000000000A5 +:100BD0000000000000000000000000000000000015 +:100BE000000000000303003070F0F83E3F3F1E1885 +:100BF000000000C1EFFEFC7C78300000C0800000E7 +:100C000000000000000000000002060F1F0F03019B +:100C1000000000000000000000000006FEFCF8F0EC +:100C20000000000000000000060F1F0F030301007A +:100C3000E0C00000000000000002FEFCF8F0E0C090 +:100C4000030707070F1C38707080000000000000C9 +:100C5000FE868480000707070000000000020301F1 +:100C60000000000000000000000000000000000084 +:100C70000100000000010307060F3F7C7E3F1F0FAD +:100C80000000F8F8F800000000000000000000007C +:100C90007B383F3F7F787C7E3E3F3B13193139786C +:100CA00000000001010303060E0C1838303E7F7F60 +:100CB00060C8C0C08000800000000000000080C04C +:100CC000B810FFFFFF000000000080008080C0809F +:100CD0000000E0E0E0000000000000000000000074 +:100CE000C0C0506060604060E0E0C060710F0F0FF6 +:100CF00000000000000000000000000080C0F0F0D4 +:100D000000000001010303020301010000010001D2 +:100D1000387CFEDFC3D8C44C0000000000C0600077 +:100D200001030F0F0F1F0F1F3F1F1F3E1F1F1F0F1E +:100D3000C0C0C08080808202A7C70303030383C7AB +:100D400009030307070307070F0707030307030345 +:100D500040C0C0C080808080A0C080C0C0C080E093 +:100D6000030100003C3E3E030301010100000000BE +:100D7000808000001F1F1F00C080C08080C0C0E0B6 +:100D80000000000000000000000000000000000063 +:100D90001E7F7F7F7F7F3C38181010383830343802 +:100DA00000000000010103030706070F0F1F1F1FAC +:100DB000707060C0C08080800000000080C0F0F8CB +:100DC00000010307070F0F090C04040000070F1CA4 +:100DD000E0F0F87C0C6010300000000000000080A3 +:100DE00019193B3333777773F1F3F97D7D3C3C1E62 +:100DF000C0C0C0C080808000808080C0C0E0E07043 +:100E00006000000F0F0F00000040404060E0607481 +:100E100000000000000000000000000000000000D2 +:100E200038301818180C0C0C0E0E0C0607030303B0 +:100E300000000000000000000000000000E0FCFED8 +:100E4000000001010100000000000000000000009F +:100E5000FCF0E0C0E0F0F8F87C7C7E3E3B7363F190 +:100E60000001010303070E0E1F1C3870787CFFFF82 +:100E7000E1C1D1808000000000010100000080C0BD +:100E800000000000000000000000000000008000E2 +:100E90000000000000000000000000000000000052 +:100EA000008080A0C0C0C0C080C0C0E0E01F1F1F85 +:100EB0000000000000000000000000000000C0E092 +:100EC0000000000000000000000000000000000022 +:100ED00020207070F070707038783C3F1F07010060 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000010100000000000000F0 +:100F000060F0783C1E0F07030100000000000000A5 +:100F100000000000000080C0E0F0783C1E0F0702D7 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F40003D3C24301010000000C0C0E0E0C0800034 +:100F50008040C00000000000000000000000000011 +:100F600060687063E0C0E0E0F078387760C0E0F07F +:100F70000020207070303038383C9C0E0E07020084 +:100F8000000000000000010307070F0F090C040414 +:100F90000000000000E0F0F87C0C60103000000061 +:100FA00000808080000000800030C088000080E267 +:100FB0000000000000000020207070F0F0F8080031 +:100FC0000000000000000000000000000000000021 +:100FD0001F3C3830393E1E1F1F1F1C080C1A3830AA +:100FE000000000000101010303070703070F0F0FB3 +:100FF0007870E0E0F0C080C0C101818080C0F1F96C +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:101020000001010303030303070707070303030783 +:1010300070F0F8CC8686060606868480C0C0C0E0C4 +:1010400004347C78781800000000000000000000E4 +:101050000000000000000000000000000000000090 +:101060000000000000000000003038100000000008 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000001030706060400000000000001010320 +:1010B000E0E0F0381C0C0C0C1C3C7C78F8F8F8F8DC +:1010C000030373F3F8F87000000000000000000054 +:1010D000FCFCFCFDFF3901000000000000000000E6 +:1010E000000000000000000000183C38080000006C +:1010F00000000000000000000000030301000000E9 +:1011000000000000000000000000000000000002DD +:101110000000000000000000000000000040E0802F +:10112000060301000000000C0800000000000000A1 +:10113000E0C000000000000000000000000000000F +:10114000000000000000000000000000040404048F +:10115000000000000000000000000000000000008F +:10116000040000000000000000000000000000007B +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A0000000000000000000000000006040F8F0B7 +:1011B000000000000000000000000000000000002F +:1011C000F0E000000000000000000000000000004F +:1011D000000000000000000000000000000000000F +:1011E0000000000000000000020E0F0400000000DC +:1011F0000000000078E060400000000000000000F7 +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000060C0F07161C0D070707070F1F030109 +:10123000000000000000000080C0F0F8FCFEFEFF8F +:101240000101010103030100000000000000000093 +:10125000FFFFFFFFFFFFFFFF7F3F3E0C080010383E +:10126000000000000000000000000000000000007E +:101270007C707C3C3C080000000000000000000086 +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A000000E1E3F3930707078787CFFFFFFFFFF23 +:1012B0000000000080C040000000000080C0C0C0EE +:1012C000FFFFFFFF1F000000000000000000000003 +:1012D000808080808000000000000000000000008E +:1012E00000000000000000000000000E06000000EA +:1012F00000000000000000000000000000000000EE +:101300000000000000000000000505072F7D7C3E66 +:1013100000000000000000000000C04080800000CD +:101320001C1E3FFFFFFFFFFEFEFEFCFEFEFEFEFE5C +:1013300000000000000000000000000000000000AD +:101340001E0000000000000000000000000000007F +:10135000000000000000000000000000000000008D +:1013600001010000000D03013C0F01020400000018 +:1013700000088890D0F0FBFCF8F0F86422201010F0 +:101380000000000000000000000000000000000657 +:10139000000000000000000000000000000000004D +:1013A0007F3F3F1F0F03000000000000000000000F +:1013B000BFFFFFFFFFFFFF3F3F3F3F3F1F3F7F7FDD +:1013C000000000000000000000000000000000001D +:1013D0000F0000203F3F1F1F1F3F3F3F3F1F3F3F6A +:1013E00000000000000000000101010000000000FA +:1013F0007FFEFE7E3C1C0880C0C0C0800000000054 +:1014000000000000000003070F0F1D1E0F0F1F1F1D +:1014100000000000000000808080000000800000CC +:101420002E05000103070F1E0C1C0808183C1C1C8D +:10143000C0800000C08080000000000000000000AC +:101440007C7F1F3E3A282C000004040402020303A0 +:1014500000C0F8F80000000000000000000000805C +:1014600001010103030707070F0F0F0E0E1F1F1FB8 +:10147000C080808080808080F8787070F8FCFEFFEB +:10148000000000000000000000000000000000005C +:101490000103070707070F1F17171F0F070F0F1F5E +:1014A000000001030000000103070707070F0F07F3 +:1014B0007FFFFFBF1F0FAFE7F7F7E7EFEFCFDF9C2F +:1014C00007030707070703030303010000000000E9 +:1014D000BC3C3C0C84C0E0E0E0F0F0B0B0B8FC7480 +:1014E00000000000000000000000000000000000FC +:1014F0003838382C341018080000000000000000B4 +:101500000000000020303038280C0C0E0E1E1C1C71 +:1015100000000000000000000000000000000000CB +:101520000C0406060000000000000000000000009F +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000008080C0DB +:10155000000000000000000000000000000000008B +:10156000C0C0F0E0607038381003010101010101D2 +:1015700000000000000000387FFEFCF8F0E0C0C072 +:101580000000000000000001000102040000000053 +:1015900000143F7F7FFFFFFEFCFEF6F078000000A6 +:1015A00002070F1E1C383070F06060ECFFFF87E010 +:1015B00000000000000000000000000080F0F8784B +:1015C000E020A00000000000000000000000010179 +:1015D000000000000000000000000000000000000B +:1015E00003020206010003070F0F1F1F0000000087 +:1015F00000000000E0C0E0E0E0F0F0E000000000EB +:101600000000000000000000000068FCFEFEFEFE7E +:1016100000000000000000000000000000000000CA +:10162000FCF8FCECE070060703010000000000007D +:101630000000000000000080C0E0F0783C1E1E3F6B +:101640000000010FFFF8C0000000000000000000D3 +:101650003607C4C6000000000000000000000000C3 +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000004061F3F3F3F3F3FD6 +:1016B00000000000000000000000000000C0C0802A +:1016C0001F1F1F0F0F15100000000101010303036E +:1016D000A3E7CF830000000000C0C0C0C08080002E +:1016E00001030703030101010707020000000000D6 +:1016F00000008080C0E1C1C0D8F0F87C48603000B4 +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200002020A0F0707071E3C3C3E7FFEF0F0E076 +:1017300000000040C0800000000000000000000029 +:10174000C0808000000000000206060C1C18183043 +:101750000000000000000000000000000000000089 +:10176000302060E0C0C08080000000000000000069 +:101770000000000000000000000000000000000069 +:10178000000000000001030707070F0F1F2F0F17AE +:10179000000000000060F0F0F0F0F0F8F8F8F8F861 +:1017A00023000000040E1E1C1C3C381C0E1F3E7F34 +:1017B000F870303010100000000000000000000041 +:1017C000DFFF1F03000000000010181C1C0E0C0C93 +:1017D00060E0F0F060000000000000000000000089 +:1017E0001C1A18103020203070707070F8FCFE7FCA +:1017F0000000000000000040707070F0F8FC7E3FB8 +:101800000000000000000103030307070F17070B88 +:101810000000000000B0F8F8F8F8F0F0F8F8F0F088 +:1018200011000000030F0F0E1E0E1C3C38381C0E5A +:1018300080001C1F0F0F02000000000000000000CD +:101840007F7F3F3C1E1E1E0C080C0C0E0F07060669 +:1018500000F8FCFC00000000000000000000000098 +:101860000C0E0D0C18181010383838387C7E7F3F5D +:10187000000000000000000000000C1C1F1F1F9F44 +:10188000000000000000000000000000000103074D +:101890000000000000000000000000000060F0F008 +:1018A00007070F0F1F2F0F170330E0C080830F0FA4 +:1018B000F0F0F0E0E0F0F0E00000000000000000D8 +:1018C0000E1C0E070F07E3F17B030100000080E010 +:1018D0000000000080C0E0F6FF3F1E0C000000008A +:1018E000C0C06060D0C0800000000000000080C068 +:1018F0000000000000000020383838387C7EFFFFF0 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000010307BC +:1019200000000000000000000000000000081D3F53 +:1019300007070F0F1F2F0F1703001C3EBEFCF0C040 +:101940003F7BF1E0F0F1E303000000000000000045 +:101950008000000038FFFFE30000000080C07070CE +:101960000000000000000103071F1F3E3F1F0F077C +:101970006060303060C0C080000000000080C0E0C7 +:101980000000000000000000000000000060F0F017 +:101990000000000000000000000000000000000047 +:1019A000F0F0F0E0E0F0F0E00000000000000010D7 +:1019B0000000000000000000000000000000000027 +:1019C000101C3E3F7F3FDFCE6C0400000000000093 +:1019D0000000008080D8F07C3F3E1800000000002E +:1019E000000000000000000000101C383E3F3F3F98 +:1019F000000000000000000000000000000080C0A7 +:101A000000000000000000000000000000000000D6 +:101A1000000000000000000000010303070F070F93 +:101A2000000000000000000102070F0E0C1C7C7C6F +:101A3000170101000030F8F8E0C0000000000000CD +:101A40003C3179F8FCA4B400000000000000000064 +:101A500000E8FF3F07000000004060603030383C85 +:101A600000000000000001030307070F1E1F3F3F97 +:101A70001810103070E0E0E0E0F8BE1C3C3E7FFF44 +:101A80000000000000000000D0F8FCFCFCFCF8F0B6 +:101A90000000000000000000000000000000000046 +:101AA000F8D8C0E0000000000000000000000000C6 +:101AB0000000000000000000000000000000000026 +:101AC000000000C0C0000000000000000000000096 +:101AD0000000000000000000000000000000000006 +:101AE0000000000000000000000000000000008076 +:101AF00000000000000000000000000000000000E6 +:101B00000000000001071F7EF8E0800000000000D8 +:101B100000000060F0E08000000000000000000015 +:101B200003070F1D1C3D3C24301010000040E0E076 +:101B300080C0E0F0308040C00000000000000000E5 +:101B4000E08000C0C0C0E060F0DAC080E0F0F8796A +:101B500000000000000020207070303018181C8C2D +:101B60000000000000000000000000000000000075 +:101B70000E0E070200000000000000000000000040 +:101B800000000000000000000103070E0E1E1E12E0 +:101B90000000000000000000C0E0F0F818C0206065 +:101BA00018080800183C7EFCFFEFDF9F8FC7E0C0DD +:101BB000000000000000000000E0FDFFFFBE00008C +:101BC000E0F0C80080C0FCE0800090F8FCFE070157 +:101BD000000000000000000000000000008090C035 +:101BE000010001010303030707060F0F0F0F1F1F5B +:101BF000B080C0C0800080800000000000C0F0F015 +:101C000000000000000000000000000000000000D4 +:101C10000000000000000000000000C0C0E0F07004 +:101C2000000000000000800D8FCFC7C78381000037 +:101C3000707038387070F0E0C08000000080C1C162 +:101C40000000408090E2F6FEFCFFFFF3430000003E +:101C500061030302040408081010A9C6C28282C4EA +:101C60000000000000000000000000000000000074 +:101C7000701C0603010000000000000000000000CE +:101C8000000000000707070E0E0E1C1C1C38383819 +:101C90000000000000000000000000000000000044 +:101CA000707070E0E0E0C0C0C08080000000000004 +:101CB0000000000000000000000000000000000024 +:101CC000A0FA8C060303030301010181C19080C0C7 +:101CD00000000000000080000080C0C080DC7E7F2B +:101CE000606070603030381D1D1F0707030300005F +:101CF0007E380000000000C0F8F0E0C08000000066 +:101D0000183D7D7830030F7FFFF6600604193F3FD2 +:101D1000D8FCFEDF1E1ECCE0E0C00000C6E7E2C03B +:101D20003F1F0703307C7E7E2C0000011B3F3F3F9E +:101D30008080983C3C7E7F3F1F0EC0E0F0F0F0E0DA +:101D40001F0F1F1E0C000000060F0F67FFFF6F061E +:101D5000C000003C7E7F3F7F3E0C00D8FCFC7E3FF5 +:101D600060F1F1600000030F1D1F0D010001000074 +:101D7000FFFEECC00000C0E0E0C00080C00000003A +:101D8000387D7D7D3C1F3F7FFFFFFF7F1F0F3F7F23 +:101D9000DCFEFFFFFFFEFEFCF0FCFEFFFFFFFFFE90 +:101DA0007F7F3F1F7FFFFFFFFF7F1F0F3F3F3F3FB3 +:101DB000F8F0FCFEFEFFFFFFFFFFFEFCF0F8F8F876 +:101DC0003F7F7F7F3F1F0301070F6FFFFFFF7F7F75 +:101DD000F0E0F8FCFEFFFFFFFFFFFEFCFEFEFFFF52 +:101DE0003F7F7F7F7F070F1F1F1F1F0F0703070FF7 +:101DF000FFFFFEFEFCE0F0F8F8F8F0E0000080C025 +:101E000000000000000000000000000000000307C8 +:101E1000000000000000000000000000010204A11A +:101E2000CD3800030401000402000000000000009F +:101E30002244C022613060A02130180C0C060E0232 +:101E4000000000000000000000010101020000018C +:101E50000000080C1C3870E0C0828100000040E4E3 +:101E60000000000000000000000000000000000072 +:101E7000703018080C04040404040408081020003E +:101E8000000001010101000000000000000000004E +:101E900000E0F0F0F0E06000000000000000000052 +:101EA00000000000000000040406060F0F0F0F0FD3 +:101EB000E06070381C0C0C0C0C1C7CF8F8F8F8F87E +:101EC0000F0F0F0F000000000000000000000000D6 +:101ED000FCFCFCFDFF3901000000000000000000D8 +:101EE000000000000000000000183C38080000005E +:101EF00000000000000000000000030301000000DB +:101F000000000000000000000000000000000000D1 +:101F10000070F8F8F8F03000000000000000000049 +:101F20000000000000000002060707070303030784 +:101F30007030381C0E0E0E0E0E1EFCFCFCFCFCFC61 +:101F400007377F7B781800000000000000000000C9 +:101F5000FEFEFEFE7C00000000000000000000000D +:101F600000000000000000000030381800000000F1 +:101F70000000000000000000000000070301000056 +:101F800000070F0F0F0F030000000000000000000B +:101F900000008080800000000000000000000000C1 +:101FA00007030301004040606071FFFFFFFF7F7F78 +:101FB000000000C0C0C0C0C0C0C080808080C0C061 +:101FC0007F7F7F7F00000000000000000000000015 +:101FD000C0C0C0C000000000000000000000000001 +:101FE000000000000000000000203C0F0301000082 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4f-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4f-.bin.hex new file mode 100644 index 00000000..1cc6cd57 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4f-.bin.hex @@ -0,0 +1,513 @@ +:100000000000000000000D1F3F3E746465301810B2 +:100010000000000000000080808000000000000060 +:1000200000030707060E0E0C0D0D191B1B190909FD +:100030000000E03078F8F8F8F8F8F0F0F0F0F8F8B0 +:1000400000041C3E7EFFFFEFC7C36737391002076D +:10005000000020204040C0ECF0E0C0E090888040EC +:100060000000000000000080800000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000101030303010303060652 +:10009000206060C0C0C080808000008080000000C0 +:1000A0000000202111121ABE7F3F1F3E3F4C8402E8 +:1000B0000000000000000000608000000000000060 +:1000C000000000000404040C0C0C00000000000000 +:1000D0000000000000000000000000000000000020 +:1000E000202111121ABE7F7F7F3E3F4C8404020202 +:1000F0000000000000006080000000804000000060 +:1001000000000000000607070703010000000000D0 +:1001100000000000000000000080C080000000001F +:10012000000000000000000000F0F0F8F8F8F8EC23 +:1001300000000000000000000000000000000000BF +:100140000000000000000000000000000080C0E08F +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:100170000000000000000000000000071F1F0F0F1C +:100180000000101008090DDF3F1F0F1F1F2642023D +:100190000000008080000000B0C08000804020008F +:1001A0000000000000000000000000008080C0C0CF +:1001B000000000000000000000000000000000003F +:1001C000000206040C0C1C3879791301010F1F1F63 +:1001D0002878F8F87878F8F0F0F0E0E0E080E0F0E7 +:1001E00000000103030707040602020000000103E8 +:1001F00070F8FCBE86B0889000000000000070F02F +:1002000000000000000000000000000000FFFF00F0 +:1002100000000000000000000000000000E0E0001E +:1002200000000000000000000000040C00010000BD +:10023000000000000001071C0000000020E0E0E0DA +:10024000000000000000000060311B1F1F0F0701AD +:1002500000000000000103036FFFFFFFFFFEF8F046 +:10026000001038787C6C06030301000000000000D9 +:10027000000000000000000000800000101C4E6F15 +:10028000000000010107070F0F0F0F0F0F070303F7 +:1002900000000180C0E0F4FEFFFFFFFFFF3F8FC3BF +:1002A0006FFFFFFDD0000010F1F0E0E0E0C0C18181 +:1002B000F0F0F0F8B878F8F8F8F8F8F87878FEFF89 +:1002C000040E1E1F1B0100000000000000000000C3 +:1002D000000000000080C0602000000407030B0F36 +:1002E0000000000000001F7FFFFFFCC000000000B6 +:1002F00000000000070700808000000000000000F0 +:100300000000077FF0000000000000000000000077 +:10031000077FF00000000000000000000000000067 +:1003200000000000000000000000000000000000CD +:1003300000000202060C1C3C38383838181818081F +:1003400000000000000000000000F0F0F8F0C080A5 +:100350000000000000000000007F7F00000000009F +:1003600000000000000000007FFF8000000000008F +:100370000000000000000000F0F00000000000009D +:10038000000000181C7E7FFFFFFFFFFFFF73383C5B +:1003900001181F3F1F0440E1FFFFFEFEFEFCFC387A +:1003A0000000000000103071E3E1E0434703030167 +:1003B00000005AFFFFFF7FFFFFFFFF3EFEFCF8F348 +:1003C000000000000000000000C1E1E0F0C00000FB +:1003D000000000000000000000FFFF00000000001F +:1003E00000000000000000007FFF8000000000000F +:1003F00000000000000000008080000000000000FD +:1004000003030101010303000000000000000000DD +:10041000000000008080C0C0C0C0406020200000FC +:1004200000000000000000000F3F3F69407670F8B8 +:10043000000000000000000000800000000000003C +:100440000000000303010505030301000000000094 +:10045000000000000080C0E0F8FDFFFF7F7F3E0C41 +:10046000000000000000000000000100000000008B +:10047000000000000000000008FDFFFF7F7F3E0C31 +:10048000000000000000000001000000000000006B +:1004900000000000004040E0E0FCECC8000000006C +:1004A000000000181C7E7FFFFFFFFFFFFF73383C3A +:1004B000080F1F0F0F0440E0FFFFFEFEFEFCFC389C +:1004C000FFFFFFFF3F170F1F1F1F0F0F07071F1F04 +:1004D0000000008080808080808080808080E0F0CC +:1004E000200000381C1E1F0F0F0703000000000033 +:1004F000030F1F1F3FFFFFFEF8F0C00000000000C9 +:100500001F1F1E1E1F0F070707030F1F1F0F0F07B9 +:1005100080808000008080EEFFFFFFFFFFFEFCE098 +:100520000000000000000000000000003C7EFFFE14 +:10053000000000000000000000060606020302039F +:10054000000000002020000030383878F8FCFCFC67 +:10055000000000000000000000000000000000009B +:100560000000000000000101030204000000000080 +:1005700007070F1F7FF3C1000103070F1F3F7FFF16 +:10058000000000000000000000000000000000006B +:1005900010386242C387878F1F3F0E00000000366D +:1005A00000124824228A8E85030D0717331416057E +:1005B0000010004000000010004060400010C080AB +:1005C000000000000000000000000000000000002B +:1005D000000000000000081C3101614341440E1C72 +:1005E0000040001001000000010080C040C0808079 +:1005F0004100000008400200C0E4367460E2D830D8 +:1006000000000000000000000000000001010000E8 +:10061000000000000000000000000080C7F1E000C2 +:1006200000000000000000000000000010B0B880D2 +:10063000000000000000000000000000C0687CB85E +:1006400000614118181C0E061C3870707070381C40 +:10065000008080000000000000000000402020100A +:1006600000000C0803030317090303030000000044 +:1006700000003030000080C0C080C06060203018B2 +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000070F0701337F7E7F7F7F7F3F3F1F0F074D +:1006B000C0E0F0F8F87C3C3C1C9C9C88C8C0C0C0E2 +:1006C000183C7D79FFEFEE446005071B3E3B370782 +:1006D00038F8BCDCD8400008CCE6E4E040009CBE22 +:1006E000000000000000010A1377FF1F0F03000045 +:1006F00000011128717B373F7FFFFFFFFF9FCB2356 +:10070000A473A9C3CFFFFFFFFFFFFF9F0F538F0607 +:10071000C6ADDC9AF0F9FFFFFFFFFFFF7C8F5608A4 +:100720003B7E7DF6E0A78ECEFFFFFF7F3D785D2606 +:1007300000800000802040E4F8B08040800000008D +:10074000060F1E3C1800091F3F79702103070F0692 +:1007500040E0600060FCECC4C48C0C98F890000091 +:100760000000000000000000000022777722000057 +:100770000000000000000000000000000000000079 +:1007800001000103277F766040060F1E3C18000120 +:10079000800090F8980010383870F0600060E0C079 +:1007A0000000000000000000081C1C08081C1C08B9 +:1007B0000000000000000000000000000000000039 +:1007C000EDF9FFEFDFDF9E5FEFF7DFFFFFFFFFFFDA +:1007D000C0E0F09000000000008080C0E0F0B09029 +:1007E0000000000000000102000000000000000105 +:1007F00000000000107EEF0703030101000000C0AD +:10080000F9FDFCFE3E7E7E7C3C3C7C7C78FCBC7E24 +:10081000E0E0C00000000000000000000000000058 +:10082000FEF3F1F1E2C2C2C3C3C3C380010181C3BD +:1008300080000000000000000000800000B0F8FC14 +:100840000C0C0C0601010301000000000000000177 +:10085000F8F87838000000001878783C3C7C3CAC14 +:10086000010303030706060C0C0407070E1E0C0009 +:100870001C3C3C7878383878F87878000000000024 +:100880000000000000000000000000000001010165 +:100890000000000000000000000000000000000058 +:1008A000010101010101010101010000000001013C +:1008B0008080808080808080808000000040E0F028 +:1008C0000000000000000000010303010303010118 +:1008D000000000003C7EFEFEFEFEFE168C9CBEBEAE +:1008E0000100000000000000000000000000000007 +:1008F0009EDFCFC60E1F0F0F0F070713190D0C0633 +:1009000000000000000000040404060707070307B6 +:100910000000000000000000000000000080808057 +:1009200033331919191B1918181C1C0E0F0F1F1C13 +:100930008080C0C0C0E0E0F0F0E0000000000000F7 +:100940000000000000000000000000000000001097 +:100950000000000000000000000000000000000097 +:1009600010301030303070303000000000000000D7 +:100970000000000000000000000000000000000077 +:10098000000000000001030301030302080C061F1E +:1009900000000020F0F8FCFC58401000000000802F +:1009A0007FFFE7CF9F9F9F0F070F1F1F0F0F0707A7 +:1009B000C0C8E8F0F0F0FBFCF8F0F8E4E2E0D0D0DA +:1009C0000000000000070307070301000203030300 +:1009D0000000000000C0E0E0F0F0F8F8783CBC9EB9 +:1009E00001010303030707070E0E1C0F0C1E3E3CFC +:1009F000CE9EBCBCBC18387870303030000000008F +:100A00000038FC7E0E1F1FDFCFDF9F8D1B070E07F8 +:100A100000000000000000008080808080C0C0F0E6 +:100A20000F0F07038081C1C100000000000000001B +:100A3000F8FEFFE7FBFCFEFFFFBF0F010000000018 +:100A4000000000040CDCFCF040000080C0E0F1FF7E +:100A50000000000000000000000000000000808096 +:100A6000FFE7F9FCFFFFFF6F4300000000000000FC +:100A70008080800000808080808000000000000076 +:100A8000000000F0FCFEF7EF0F070381C0E0F0F874 +:100A90000000000000000080C0E0E0C38F0E1E3C9C +:100AA000B87C3C3E1E0F0F07070300000000010149 +:100AB00078300000000080C0C080002E7CF8F0C0BC +:100AC0000000000002061E1E3C38183830707030DE +:100AD0000000000000000000000000000000000016 +:100AE00030000000000000000000000000000000D6 +:100AF000000000000000000000000080C0404040F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000101010181E1F30 +:100B400000000000000000000000000000000000A5 +:100B500000000000000000000000002020203030D5 +:100B60000000000000000000000000000000000085 +:100B7000303020303030303020202030303C3E3F8C +:100B80000000000000000000000000000000000164 +:100B90000000060D0103070307020000003C7EFE73 +:100BA0000303030707070F0F1F00000000000000EA +:100BB000FEFCF9E180C0C0C180000000070707000B +:100BC00000000000000000000000C0E0F0787C3E63 +:100BD0000000000000000000000000000000000015 +:100BE0009FC7C3C1E3E3E07070F0F83E3F3F1E18BB +:100BF000000080C1EFFEFC7C78300000C080000067 +:100C000000000080E0F0F8783C1E1E0F1F0F0381EB +:100C1000000000000000000000000006FEFCF8F0EC +:100C2000C0E0E0F0F8783C3C0E0F1F0F030301001A +:100C3000E0C00000000000000002FEFCF8F0E0C090 +:100C4000000000060E1C38707080000000000000DC +:100C50000E06040000070707000000000000000067 +:100C60000000000000000000000000000000000084 +:100C70000000000000000004070F3F7C7E3F1F0FB4 +:100C8000000000F8F8000000000000000000000074 +:100C90000407003F7F47436139383C1C1E3E3E7FBE +:100CA00000000001010303070F0F1F3F3F3E7F7F3E +:100CB0007FFFFEFEFEFCFCF8F8F0F0E0C00080C014 +:100CC00038D000FFFFE0E0E0F0F078F8787C3C7C82 +:100CD000000000E0E0000000000000000000000054 +:100CE0003C3C2C1E1E1E3E1F1F1F3F1F0F0F0F0FD1 +:100CF00000000000000000000000000080C0F0F0D4 +:100D00000000000101030302030101000000030FC2 +:100D1000387CFEDFC3D8C44800000000000098F80B +:100D20001F1F1F3F3F7F7E7CF8F8F8FD7C7C7C789E +:100D3000FCFCFEFE7E7E7EFE5F3FFFFFFFFF7F3FEF +:100D4000070F0F0F1F1F1F1F1F1E1E1F1F0F0F0F2D +:100D5000F8F8FCFCFCFCFC7C5C3878383838708097 +:100D600007070200003E3E000000000000000000F7 +:100D7000F0F03018001F1F1838783C7C7C3C3C1C7D +:100D80000000000000000000000000000000000063 +:100D9000010000001F1F0307070F0F07070F0B07B6 +:100DA0000000000000000000000100000F1F1F1FD6 +:100DB0000F0F1E3E3C7C7878F8F0F0F080C0F0F821 +:100DC00000010307070F0F090C04040000000003D3 +:100DD000E0F0F87C0C601020000000000000E0E073 +:100DE0000707070F0F4F4F4FCFCFC7436323230191 +:100DF000F0F0F8F8F8F0F0F0E0E0F0F0F0F0F0F0FB +:100E0000E08000000F0F80F0F8F8FCFCFEFE7F7F12 +:100E100000000000000000000000000000000000D2 +:100E20003F3F1F1F1F0F0F0F0F0F0F070703030376 +:100E300080808080C0C0C0C0E0E0E0F0F0E0FCFE58 +:100E400000000000000000000000000000000000A2 +:100E5000030F1F3F1F0F87C7737379393C7C7CFEDC +:100E60000001010303070F0F1F1F3F7F7F7CFFFF60 +:100E7000FCFCF8F8F8F0F0E0E0C0C080000080C0B2 +:100E80000000018181C0C0C0E0E0F0F0F0F878F827 +:100E90000000808000000000000000000000000052 +:100EA000F878785C3C3C3C3E7E3E3E1E1C1F1F1F7B +:100EB0000000000000000000000000000000C0E092 +:100EC000000001010101010100010100000000001A +:100ED000E0E0F0F0F0F0F0F0F8F8FCFF7F7F3F0F7B +:100EE0000000000000000000000000000000000002 +:100EF00003000000000000000000000000000000EF +:100F000000C06030180C0603010000000000000063 +:100F1000000000000000000080C06030180C0602D5 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F40003D3C2430101000307CFFFFFFFFFFFFFF0F +:100F50008040800000000000008080C0C0E0E0E031 +:100F60009F170F1C1F3F1F1F0F0707081F3F1F0F53 +:100F7000E0E0E0F0F0F0F0F8F8FC7CBEBE9FDECCE4 +:100F8000000000000000010307070F0F090C047C9C +:100F90000000000000E0F0F87C0C60102000000071 +:100FA000FCFCFFFFFFFFFF7FFFCF3F77FFFE7E1DB3 +:100FB000000060F0F0F0E0E0E0F0F0F0F0F878FC35 +:100FC0000000000000000000000000000000000021 +:100FD0000003070F060101101C1E1F0F0F1F3F3FCC +:100FE000000000000101010303070703070F0F0FB3 +:100FF0007F7FFEFEFCFCFCF8F8F8F8F080C0F1F909 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:101020000001010303030303070707070303030783 +:1010300000C0F8DCBEBE3E7E3EBE9C9CCCCCCEE763 +:1010400004040C1800000000000000000000000074 +:101050000000000000000000000000000000000090 +:1010600000000004040C0C1C0C0C0460F8FC7C3C1C +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A000000103070606040101030507070F0F1FD0 +:1010B0000080F0381C7CFCFCFCFCFCF8F8F8F8F82C +:1010C0001F1F0F03000001000002030303010303BD +:1010D000FCFCFCFCFCF8F8F8FC7E3F9FCFE7E5E366 +:1010E00007070F0F1F3F3F7F1F07030070FC3E0FD6 +:1010F000E7E7E3C3C387878301010000020707070F +:101100000000000000000000000002070F0F0F0D9C +:101110000000000000000000000080C0C08000400F +:10112000191C0E04000000000000040C040C1C1C20 +:1011300000000000000000000000000000000000AF +:101140001C0C08181C0C0C0C0C041C1C00000000CF +:10115000000000000000000000000000000000008F +:10116000000000000000000000000000000000007F +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C0000000000000E0F0F8FC3C9ECFE7F7F7736A +:1011D000000000000000000000000000008080C04F +:1011E0007B39393C1C1E0E0F040000030707060064 +:1011F000C0F0E0C3871E1C382010F0E0C080000063 +:1012000000000000000000000000000000000030AE +:1012100000000000000000000000000000000000CE +:101220003C78F2F07868E070782800000F1F030720 +:101230000000000000000000001C7FFFFFFEFEFF1A +:101240000F0F1E1E0C0C1C0C040E0F0707010000D4 +:10125000FFFFED5B1F3F1F0707030181C0E0E04078 +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A0000000180F0103071319091C0F0F37191F2E +:1012B0000000000080C0C0C7FFFF580080C0C0C051 +:1012C0003F1F1F0F0F070F0F070F0703010100003C +:1012D0008080808080008080C0C0E0E0F0F0F0B0CE +:1012E000000000010101030303070301181F3F3F32 +:1012F00070F0E0E0E0E0C0C0C0C080800080C0E0EE +:101300000000000001070F1F1F0A1A18104060F0AC +:10131000000000000080C0E0E0C00080000000008D +:10132000FCFEFF3F7F7FDF3E7EFEFC7E7E3E3E1E5C +:1013300000000000000000000000000000000000AD +:101340003E3C7E7E3E3E1F4F6F2F2725133737676B +:10135000000000000000000000808080808000000D +:101360006F6FCFCFC78F87CF00010102040000004D +:1013700000088890D0F0FBFCF8F0F86422201010F0 +:101380000000000000000000000000000CFCFE7ED9 +:10139000000000000000000000000000000000004D +:1013A0007F3F3F1F0F03000000000000000000000F +:1013B000B8FCFCFCF8F0E0000000000000000000B9 +:1013C000000000000000000000000000000000001D +:1013D000F0FFFF1F00000000000000000000000000 +:1013E00000000001030100000101030307070701DA +:1013F00000000080C0E0F0F9F0D0C08080C0F0F8BC +:1014000000000000000003070F0F1D1E6E4C1C1E85 +:10141000000000000000008080800000000000004C +:101420002E04030F1F1F3F3E7C7C7878797C7C7CE8 +:101430000060F0F0F8F8F878F8F878B8F0F0F8789C +:101440007C770300000001000000000000000000A5 +:1014500038F8F8F870F0F8F8F87C7CFC7C3E3E1622 +:1014600000000000000000000C0F0700000000005A +:101470000E1C3C1C1C3C1C1878787070F8FCFEFF9D +:10148000000000000000000000000000000000005C +:101490000000000000000000010000000008081C1F +:1014A0000000010300000000000000000000000038 +:1014B0007CFEFFBF1F0F0F070707070F0F0F1F1C33 +:1014C000000000000000000000000000000000001C +:1014D0003C3C3C0C04000000000000000000000048 +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:10152000000000F8FFFFFFFFFFFFFFFFFFFFE701E5 +:101530000000000080E0F0F8FCFCFCFCFCFCFCFC83 +:1015400080C0C0E0F0F0F8F8FCFCFEFEFE7F7F3FBC +:101550007C3C3C1C1C0C0C0C00000000000080803B +:101560003F3F0F1F1F0F060400030101010101018E +:10157000C0F0F0E0C08000387FFEFCF8F0E0C0C0B2 +:101580000000010302000001000102040000030F3B +:1015900000143FFF7FFFE3C88CC08000002070F084 +:1015A0001F3F7F7EFCF9F1F0F1E3E1ECFF7F0700E4 +:1015B000F8F8F8F8F8F8F0B070F0E0F0F0F0F8F8BB +:1015C0000101030100000000000000000000000015 +:1015D000F0F0F0F8F8F878783C1C1C3C3838787853 +:1015E00000000000070700010103030300000000E2 +:1015F000707070E0E0C0E0E0E0F0F0E000000000BB +:101600000000000000000000000068FCFEFEDE8616 +:1016100000000000000000000000000000000000CA +:10162000901800000000FEFF7FFFFFFDFC5E37FF0B +:101630000000000000000080C0E0F0F8FC7E7C3874 +:10164000FFFF7F3FFFFFCF1F1F0F0F0200000000B3 +:101650003080C0C0B0D8EEF7FBFDFE5E0B070F0771 +:10166000000000000000000000000000000000007A +:10167000070301000000000000000000000000005F +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000004061F3F3E3D3B38E4 +:1016B000000000000000000000000000000000002A +:1016C0005CD8DA8E0C14100001030707070F0F0F08 +:1016D00003070F1FFFFFFF7FFFFFFFF7EE8481036C +:1016E0000F0F0F0F07070707070702000000000092 +:1016F00001008080C0E1C180800000000000000087 +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:10172000000000000000001030383E7FFEFCFCF896 +:1017300000000000000000000000000000000000A9 +:10174000F0E0E0C0800000B0FEFFFF7FFCFFFFBFC5 +:1017500000000003070F3E7FFEFCF8F020C0FFFFF3 +:101760003F3F7FFFDDC880800000000000000000D8 +:10177000FFFFF3A1000000000000000000000000D7 +:1017800000000000000103071F372F0E1C2C0E1451 +:10179000000000000060F0F0F0F010780808181861 +:1017A00020010F1F3F3F3F7F7FFFFFFFFF7F7970CB +:1017B000F8F0F0F0F0F0E0E0E0E0C0C0E0E0F0F0E1 +:1017C000D8FC1E03070F07070301010000000203F6 +:1017D0009010000080E0E0F0F0F0F8F8F8583C7C61 +:1017E0000305070F0F1F1E0C6C787070F8FCFE7F4E +:1017F0007C3C3C3818181848707070F0F8FC7E3F3C +:1018000000000000000001030F1B17070E16070A57 +:101810000000000000B0F8F8F8F880300000000088 +:1018200010000F0F1F1F1F3F3F7F7D7DF8F8FC7ECC +:1018300000C0FCFFFFFFFFFFF1F0F0F0B87878F890 +:101840007F7F070000000000000000000000010191 +:10185000F8F8FCFCF0F8787CFC7C7C3E3E3E9FB7C0 +:101860000301020307070F0E063438387C7E7F3FE2 +:10187000BF9F9E8E8E9E1E0C0C0C0C1C1F1F1F9F4C +:10188000000000000000000000000000000103074D +:101890000000000000000000000000000060F0F008 +:1018A0001F372F0E1C2C0E140031E3C78F9F1F1FF4 +:1018B000F0F0000060000000008080C0C0C0C0C028 +:1018C0003F3F3F3F3F1FFFFF7F7FFF7F2F0701000D +:1018D0008080800080C0E0C080C0E0F0FCFC7E3EE4 +:1018E0003C3C1C18283878F0E0C08000000080C024 +:1018F0000E1E1E0E1E1C1C3C383838387C7EFFFF26 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000010307BC +:10192000000000000000000000000103070F1F0F6F +:101930001F372F0E1C2C0E14047FFFFFFFFFF7C76D +:101940000703010000010303000000000000000085 +:101950008C030D1F3FFFFFFF3F3F3F3F0702000883 +:101960000000000000000002061F1F3E3F1F0F077F +:101970001E1E0E0E1C3C3C78F8E000000080C0E00B +:101980000000000000000000000000000060F0F017 +:101990000000000000000000000000000000000047 +:1019A000F0F00000600000000080C0C0E0E0E0F067 +:1019B0000000000000000000000000000000000027 +:1019C000E0FCFEFFFFFFFEFEFCFCFCFEFF5F0F05E0 +:1019D0000000008000000000000000000000808087 +:1019E0000307070F0F07070E0E1C1C383E3F3F3F33 +:1019F000808000000000000000000000000080C0A7 +:101A000000000000000000000000000000000000D6 +:101A10000000000000000000000D1B03070F070E70 +:101A2000000000000003070F1F1F3F3E3C7C7C7C32 +:101A30001400003BFFFBFBFDE5CC0800081C381838 +:101A40003C01010000000000000000000000000058 +:101A500006EFFF3F0F1F0F0F0F07070303010101E1 +:101A6000000000000000000003070100000000006B +:101A7000000303030303070706BEBE1C3C3E7F7F33 +:101A80000000000000000000D0F8FCFCBC0C20307E +:101A90000000000000000000000000000000000046 +:101AA000000000000080C0C0808000000000000036 +:101AB0000000000000000000000000000000000026 +:101AC000000000C0C080808080C0C0C0C0C0C0C056 +:101AD0000000000000000000000000000000000006 +:101AE000C080808000000000000000000000008036 +:101AF00000000000000000000000000000000000E6 +:101B00000000000001071C70C00000000000000081 +:101B100000000060C00000000000000000000000A5 +:101B200003070F1D1C3D3C2430101000007CFFFFFC +:101B300080C0E0F030804080000000000000808025 +:101B4000FFFFFF3F3F3F1F1F0F253F7F1F0F070670 +:101B5000C0C0E0E0E0E0E0E0F0F0F0F0F8F8FC7C9D +:101B60000000000000000000000000000000000075 +:101B70003E3E1F1E0C0000000000000000000000A0 +:101B800000000000000000000103070E0E1E1E12E0 +:101B90000000000000000000C0E0F0F818C0204085 +:101BA00018080800000000030F1F3F7F7F3F1F3F02 +:101BB00000000000000000C0C0E0FDFFFFFFFFF3D9 +:101BC0001F0F37FE7F3F021C7FFF6F070301F0F0FE +:101BD000800000000000000080E0F8F8FC7E6E3E0F +:101BE000F0E0E0E0C0C0C080800100000F0F1F1FC8 +:101BF0004C7C3C3878F87870F0F0F8F800C0F0F0E1 +:101C000000000000000000000000000000000000D4 +:101C10000000000000000000000020E0F0F8F8786C +:101C2000000000000000800D9FDFFFBF7F7EFFFFF0 +:101C3000787C3C3C7C7CF8F8F0E0E0C0800001015E +:101C4000FFFFBF7F6F1D0981C3E0F8F04000000077 +:101C500081FBFBFDFBFBF7F7EFEF56383D7D7D3B4E +:101C60000000000000000000000000000000000074 +:101C70000F03010000000000000000000000000051 +:101C8000000000000404040C0C0818181030302068 +:101C90000000000000000000000000000000000044 +:101CA000606040C0C0808080000070FEFFFFFFFFCA +:101CB0000000000000000000000000000080C0C024 +:101CC0005F050301000080C0E0F0F07838687C3CDC +:101CD000E0E0E0E0F0F070F0F8783C3C703C7E7FB3 +:101CE0001C1E0E1F0F0F0703030707070303000047 +:101CF0007E380000808000C0F8F0E0C08000000066 +:101D00001039796000030D5CE9C0000000193D3E08 +:101D100098D0881C1C0880C08000000086C4800009 +:101D200017070500306C6C4800000001133B393385 +:101D30000080103838506206000080C0C080C0802B +:101D40001F0F1A1000000000060F0F46ECCE0C000B +:101D5000000000387C78327A200000D87C183C3EA5 +:101D600040E1C1000000030F1D180000000000004A +:101D7000ECC0C080000080C08000000000000000B7 +:101D80003079796130070F5FFFFE6C0001013D7E05 +:101D900098D0E8ECCC98C0E0E0C000CCE6F4F0E0ED +:101DA0007F6F071D79FEFFFE6C0001073F3D391E66 +:101DB00080C0D0B8F8F872060600E0F0F0F06000DD +:101DC0001F7F7D3D19000000070F6FF7F66F3F1F63 +:101DD0000000B0F8FCFC78FCF86080ECFE3C7E7EF5 +:101DE0003E787D3902070F1F1D1E1E0C00000202E7 +:101DF0006CC0E0E0C000C0E0E0C0000000000000F7 +:101E000000000000000000000000000000000307C8 +:101E1000000000000000000000000000000018D1D9 +:101E2000CD3903170D03170F020001000000000059 +:101E3000C2C4A0C291FCB3252330988C0C66260244 +:101E4000000000010206000C0801090900084CA06E +:101E50006040888C1C3870E0C0828100000040E443 +:101E600066B2781C563A1A0000000000000000001C +:101E7000703098C80C0404140414042848902000FE +:101E80000000000000000000000001010303020741 +:101E90000000000000002060E0C0C0C08000000022 +:101EA000070303010101010000000001010103011A +:101EB0000080F0F8FCFCFCEC4C1C7CFCFEFEFFFF00 +:101EC00001010000000000000002030303010303FE +:101ED000FFFFFFFEFC78F8F87C7E3F9FCFE7E3E54D +:101EE00007070F0F1F3F3F7F1F07000070FC3E0FCB +:101EF000E7E3E3C3C1818183030300000000000026 +:101F000000000000000000000000010101010303C7 +:101F1000000000000000107070E0E0E0C0C08080B1 +:101F2000030101010100040C080818191C3C3C398C +:101F300080C0F8FCFEFEFEFE7E1E7CFCFCFCFCFC71 +:101F4000390801010000000000000000000101014B +:101F5000FEFEFEFE7C78F8FCFCFEFF7FFFFFFFFF2D +:101F6000010303030307070F0F0F06020000000021 +:101F7000FFCFC7C7870F0F0F0F0F0F000406070F04 +:101F80000000000000000107070E0E0E1C1C1818B0 +:101F90000000000000000000000000000000000041 +:101FA000381C1F1F1F0F0F0707030F1F3F1F1F1F87 +:101FB000000000C0C0C0C0C0C0C080808080C0C061 +:101FC0000F0F07070F070707070303030101000DA2 +:101FD000C0C0C0C080808080C0C0C0E0E0E0E060E1 +:101FE0000919191B3333336767233B3870F06000DE +:101FF000E0E0E0C0C0C0C0C0C0C0C0000000000041 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4h-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4h-.bin.hex new file mode 100644 index 00000000..d3010c60 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4h-.bin.hex @@ -0,0 +1,513 @@ +:100000000107070F0F0F1F1F1F1F1F3F3D58387895 +:10001000E0F0F0F0F0F0F0C0E0F0F8F8D0C0000050 +:1000200000000000000000000307070F1F1F0F075C +:100030000000000000000000E0E0C0C0E0E0FCFCC8 +:100040000000000000000000070E0E1C1E3F7F7F16 +:100050000000000000000000000000000000E0E0E0 +:100060000000000000000000E0E0E070707C7F7F96 +:100070000000000000000000000000000000808080 +:100080000000000000000000000000000000000070 +:100090000000000000000000004000000000000020 +:1000A000000000000000011F1F060000000000000B +:1000B00000000000000080C0E038000000000000E8 +:1000C0000000000000000000000000000000000030 +:1000D00000000000000000000040000000000000E0 +:1000E00000000000000000003838387C7CFFFFFF73 +:1000F0000000000000000000000000000000E0E040 +:100100000000071FFFFEFE000000000000000000CE +:100110000000E000000000000000000000000000FF +:100120000000000000003E3F7F1C080000000000AF +:10013000000000000000000080C00000000000007F +:10014000000000000000000000000001010307079C +:10015000000000000000000070E0E0C0E0F0FEFEE3 +:1001600000000000000000000000000080C0E0F07F +:10017000000000000000000000000000000000007F +:1001800000000000E0F8FCFE770100000000000025 +:1001900000000000000000000080000000000000DF +:1001A000000000003C7EFFFFFFFFFF7E3C000000E0 +:1001B00000000000000010C0E88000800000000087 +:1001C000000000003C7FFFFFFFFFFF7E3C000000BF +:1001D000000000000000E8C0FBE08000000000001C +:1001E00000000000383F7F7FFFFFFF7F7F3C000063 +:1001F0000000002000A8C080800000000000000077 +:1002000000000000383F7F7FFFFFFF7F7F3C000042 +:1002100000000102A8F0C4E080800000000000009F +:10022000000000000000004040000002041C150116 +:10023000000010143C3860C0400000008080C040C6 +:100240000000000000000040400002041C150100F6 +:100250000000000060F0B0980808088080C04000EE +:1002600000000000000000000E0E1C1C1E3F7F7FDF +:100270000000000000000000000000000000E0E0BE +:10028000000000000000000000000000000000006E +:1002900020202030387C7C7838707878F0E040403E +:1002A0000000000000000000000000000008000046 +:1002B000000000000000000000000000000000003E +:1002C000010F1F3F3F3F7F7F7F7F7F7F3F3F7F7FCC +:1002D000C0E0F0F0F8FCFEFFFFFFFFFFFFFFFFFFB5 +:1002E000010F1F00003F7F7F00007F7F3F00007FE6 +:1002F000C0E0F00000FCFEFF0000FFFFFF0000FC7C +:1003000001000000003F000000007F000000007FAF +:10031000C000000000FC00000000FF00000000FC26 +:1003200000000000000000000000010101030303C1 +:100330000202000000000000E0E0C0C0E0E0FEFEBD +:1003400000010000000000000000000000000000AC +:10035000F0F8F8787838080000000000000000008D +:1003600003070F0F1F1F1F1F1F0F0F0F1F1F3444E7 +:1003700080C0E0E0E0E0E0B8FCFCD880B0E0E00065 +:1003800000000000000000000080C000000000002D +:10039000000000000000000000000000000000005D +:1003A000000000000000000139393F3F7FFFFFF7E8 +:1003B000000000000000C0C0C0C0E0F0FEFEF08001 +:1003C000000021211B1F1F0F0F3FDF070604080835 +:1003D0008080800008B0E0E0C080C0C0C020200065 +:1003E00003070F0F1F1F3F3F5F1727030301000085 +:1003F000C0E0E0E0C0E080F0F8F8B81040C0C00015 +:100400000003070F0F0F1F1F1F1F1F1F0F0F1F1F9F +:1004100060E0E0C0D2B7EFF9F0E0C0C0C0808080FB +:100420003F3F1F070303030307070F0E00000000F1 +:10043000C0C0E0E0F0F0F8FEFFFFFF6D000000003C +:1004400000000000000080C0C040404000000000EC +:10045000000000000000000000000000000000009C +:1004600000000000000003030000C0E000000000E6 +:10047000000000000030F8FCC67000000000000022 +:100480000001030707070F0F0F0F0F0F07070F0FCD +:1004900030F0F0E0E9DBF7FCF8F0E0E0E0C0C0C0ED +:1004A0001F1F0F030303030307070F0F00000000C4 +:1004B000E0E0F0F0F8F8FCFFFFFFFF36000000007E +:1004C000000000000080C0E060202020000000004C +:1004D000000000000000000000000000000000001C +:1004E00000000000000001018080E0F0000000003A +:1004F000000000000018FCFE63780000000000000F +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:100520000000000000000000070E0E1C1E3F7F7F31 +:100530000000000000000000000000000000E0E0FB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:100560000000000000000000E0E0F070707C7F7F81 +:10057000000000000000000000000000000080807B +:100580000003070F0F0F1F1F3F3F7F7F7FFFFFFFFE +:1005900060E0E0C0D0B0F0E0C080808080C0E0FFCC +:1005A000FF7F3F1F0F0F1F3F7F7FFFE7000000000F +:1005B000FEFCFCF8F8F8F8F8FCFCFE770000000000 +:1005C000000000000000000000000000000000002B +:1005D00000000103060C0D0F1E1C3C38387060E053 +:1005E000000000000000000000000000000000000B +:1005F00040000000000000000000000000000000BB +:100600000000000103030307070F0F1F1F1F3F3FD9 +:100610001070F0F0F0F0F0F0F0F0F0F0F0F0F0F03A +:100620003F3F1F0F0707070F1F3F7F7900000000A4 +:10063000F0F0F0F0FCFCFCFCFEFFFFDD0000000031 +:10064000C0C0C080A060C0800000000080C0E0FC8E +:10065000000000000000000000000000000000009A +:10066000F8F0F0E0000000000000000000000000D2 +:10067000000000000000000000000000000000007A +:10068000C0C0C080A466EFD3C0800000000000801E +:10069000000000000000008080000000000000005A +:1006A000C0F8F0E0000000000000000000000000C2 +:1006B000000000000000000000000000000000003A +:1006C000C0C0C0A0A46EDFFBE1800000000000807D +:1006D000000000000000008080800000000000009A +:1006E000C0E0F0E00000000000000000000000009A +:1006F00000000000010301000000000000000000F5 +:10070000010F1F3F3F3E7F7F7F7F7F7F3F3F7F7F88 +:100710008080800048DCBEFFC381010000000080B3 +:10072000FFFF7F1F0F0F0F0F1F1F3F39000000003B +:1007300080C0C0F0FCFCFCFEFFFFFFB70000000023 +:100740000000000000000000000001030303070791 +:1007500000010103030307071FFFFFFFFFFFFFFF68 +:1007600007070707030307070F0F07010000000033 +:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:1007800078FCFCFCFCFCFCF8F8FCFEFEF4F0E0F06D +:1007900000000000000020202030387C7C78387079 +:1007A000F0F8FDFFFFFFFFFFFFFFFFFEF8C0C0E016 +:1007B0007878F0E0C0C0C0C0E0E080000000000039 +:1007C00000000000000000007F7FFFEF0F0F070711 +:1007D0000000000000000000FCFCFCFEF0F8F8F84F +:1007E00007030307070F0F0F03030707070F0F0F79 +:1007F000F8F8F8F8F0F0F0F08080000080C0F8F829 +:1008000000000000000000000000010303000007DA +:1008100000010100000307070000FFFFFF0000FFC9 +:100820000707000003030700000F07010000000096 +:10083000FFFF0000FFFFFF0000FFFFFF0000FFFFC2 +:1008400078FCFC0000FCFCF80000FEFEF40000F068 +:1008500000000000000020200000387C7C000070B8 +:10086000F0F80000FFFFFF0000FFFFFE0000C0E007 +:1008700078780000C0C0C00000E0800000000000E8 +:1008800000000000000000007F0000EF0F0F0000DC +:100890000000000000000000FC0000FEF0F8000076 +:1008A00007030300000F0F0F0000070707000000F9 +:1008B000F8F8F80000F0F0F0000000008000000000 +:1008C0000000000000000000000001000000000720 +:1008D00000000000000300000000FF00000000FF17 +:1008E0000000000003000000000F000000000000F6 +:1008F00000000000FF00000000FF00000000FF00FB +:100900007800000000FC00000000FE00000000F085 +:10091000000000000000000000003800000000702F +:1009200000000000FF00000000FF00000000C00009 +:1009300000000000C000000000E000000000000017 +:100940000000000000000000000000EF00000000B8 +:100950000000000000000000000000FE0000000099 +:1009600007000000000F000000000700000000006A +:10097000F800000000F0000000000000000000008F +:10098000FFFF7F1F0F0F0F0F1F1F3F3F03030301C9 +:10099000FEFEFEFCFEFEFEFFFFFEFEFEFFFFFFFE74 +:1009A000010100010103030300000101010303032E +:1009B000FEFEFEFCFCFCFCFCE0E0C0C0E0E0FEFE55 +:1009C000FFFF00000F0F0F00001F3F3F000003015B +:1009D000FCF80000FEFEFE0000FEFEFE0000FFFE32 +:1009E00001000001010300000000010000030303F7 +:1009F000FE0000FCFCFC0000E0E0C00000E0FEFEA9 +:100A0000000000000F000000001F000000000300B5 +:100A100000000000FE00000000FE00000000FF00DB +:100A200000000001000000000000000000030000C2 +:100A3000000000FC00000000E000000000E00000FA +:100A4000010F1F3F3F3F7F7F7F7F7F7F3F3E7E7E47 +:100A5000C0E0F0F0F8FCFEC783810101010103034F +:100A6000FEFE7E1E0E0E0F0F1F1F3F3900000000FE +:100A700002060200000000000080C28E0F0B0B0275 +:100A80000000030F1E1E3C7B7C7060604000000075 +:100A9000000000000000B0BE1F0E0E0C0C0800008D +:100AA000000000000000000000000103030301003B +:100AB00060E08040F072362F6FFFF8A0200080E0E9 +:100AC000000303070F3F3E7C78F8F0F070702020A1 +:100AD00040D0B0F8980C060707070F0F0F1F1F3FF5 +:100AE0000000000000000000000000000000000006 +:100AF0003F1F1F0F0F0F1F3F7F7F7F5F4F2F0F077E +:100B0000000000000000101C1C1E1E1E1E1E1F1FC9 +:100B10000000000303030300000000000000008049 +:100B20001F1F1F1F1F1F1E1C1810101000E0400069 +:100B3000E0F0E0E0C0000000000000000000000065 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B600000000001070F1F1F3F3F3F1E1E1C0C000F +:100B7000C0C0E0E0E0E08080000000000000000075 +:100B8000000000000000000000000110327AF6FEB4 +:100B9000000000000000000070FEFEFFFF9F0F0736 +:100BA000FCFCF8F8787C3E0E03000000000000001A +:100BB0000707070703030000000000000000000013 +:100BC00000000000000000000000008187CFEEFC64 +:100BD0000000000000000000000000008000000095 +:100BE000FCFC381C18181B1E1E0C00000000000026 +:100BF000000000000080000000020707070F070345 +:100C000000000000E080F09010C000000000000034 +:100C100000000000000000000000000000000000D4 +:100C200000387DFFFDFFFFFF7F7F7F3F0303010251 +:100C300040E0E0C080A0B030F0E0C080C0404000A4 +:100C400000000000000000000000000000000000A4 +:100C500000001010185A7E7C3870602000000000E0 +:100C60000007070F0F0F1F0F0F1F1F1F0F0F1F175B +:100C700080C0E0E0E0E0E0C0F0F8F8F8E0E0C0803C +:100C8000061F1F1F3F3F1F3F1F1F0F0707010000C9 +:100C900000008090B8F8F8F0F8F8FCFCF8F090400C +:100CA0000000001F3F3F3F3F3F1F1F07070100009D +:100CB0000000607060F8F8FCFCFCFCFCFCF4100820 +:100CC0000000030703030D1F3F3F7F7F3F1F0F02FD +:100CD00000001070F8F8FEFCF8F9FEF4E0E0800087 +:100CE0000000000000000000003078783078FCFE42 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D10000000000000000000004000000000000093 +:100D200000000000000000FCFCFCFEFEFFFFFFFFD7 +:100D30000000000080800000000000000000008033 +:100D4000000000000001071E3CF8F0E0C080000039 +:100D500000001E3FFFEF87070100000000000000B9 +:100D60000000000080808080800000000000000003 +:100D70000000000000000000000000000000000073 +:100D80000000000000000000000000000000000063 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000080E0E003 +:100DB0000000000000000000000000000000000033 +:100DC000000000000307070300000000000000000F +:100DD0000000000080808000000000000000000093 +:100DE0000000000000000E1F1E1E1C1C1C1C0E0715 +:100DF0001F0F0F0F0707070303070703030303036F +:100E0000FFFBF0F0E0E1E1E1E0E0C2C3C387870768 +:100E1000F0E0E0E0E0C0C0C0C08080C0C0E0F8FC0E +:100E200000000000000000000000000000F0FFFFD4 +:100E30000000000000008000000000000040E0F022 +:100E40008018787C3C3C1E0C0E0606060F1F3F7F68 +:100E5000000000000000000000008080C0C0C0C092 +:100E60000103030101010100000000000001030370 +:100E7000808080C0C0C0C0C0C0C0C070F8FCFEFF91 +:100E800000000000000000000000083C7C7C3F3FA8 +:100E900000000000000000001000000607070FFF20 +:100EA0000E0E06060303030301010103070F1F3F94 +:100EB0000000000000000080808080C0E0E0E0E0F2 +:100EC000E0F0F8FCFEBF0F0701000000000000008A +:100ED00000000000000080C0E0F0381C3E3F7F7F33 +:100EE0000000000000000000000000000000380CBE +:100EF0000000000000000000800000000000000072 +:100F0000000000000000003F4040400000000000E2 +:100F100000000000000000FC0000000000000000D5 +:100F200000000000000000000001010303000000B9 +:100F30000000000000000000C0C0C0C0C0C04000F1 +:100F40000800000002020307070303030303030171 +:100F5000FC3CBEBEFE7FFFFFFFFFFFFFFFFFFFF772 +:100F60008000000000B0C08080C0200080808080B1 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA00000000002040C0C080C0F0E0C68488402B0 +:100FB00000000000000000000000800000000000B1 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000002020707020000000000DD +:1010000000000000000000000606060E0E2E3E3E08 +:1010100000000000000000000000000000000000D0 +:101020003C1C1C0E060E1E3C3C38383030F0706004 +:1010300000000000000000000000000000000000B0 +:10104000000000000000000000030707070F0F1F4B +:1010500000000000000000000020F0F8FC9C0E0ED4 +:101060001E1E1E0E0E0F0707070F00000307070FB7 +:101070000E0606060606068480C00003E7F7FFFF9B +:10108000000000000000000000000000000100005F +:10109000F0F0707030303030707F7FFFFFFEFC204A +:1010A00000000000000001010107070F0F07070300 +:1010B000707060E0C0C0C08080800080C0C0F0F868 +:1010C000000000000000000000F8F8FCFCFCFCF848 +:1010D0000000000000000000000000000000000010 +:1010E0000000000000000000000010181F1F0F0F7C +:1010F0000000000000000000000000000080E0F0A0 +:101100000C1F1F1F3C38383838303030301010106A +:1011100080C0E0F07038383838383838387870F0B7 +:1011200030000008181C1F1F1F1F0F0707030303B1 +:10113000F000003070F8F8F8F0E0C0C0E0F8F8F81F +:101140000000000000000000010103030307070086 +:101150000000000000000000F8F8F8F0F0F0F06087 +:10116000000001010103030301090D0D0F0F070327 +:10117000E0E0C0C0C08080800000000080C0F0F8C7 +:101180000C1F1F1C38307060604040000103070FC7 +:1011900080C0E0F0703838387878F8F8F8F8F0F077 +:1011A000070700040F1F3F3E3E3C3C1C1F1F1F1F34 +:1011B000F0F00000E0E0703030303878F8FCFCFEF1 +:1011C000000000000000000000000000000000001F +:1011D000000000000000000000070F1F1F3F3F0F2E +:1011E00000000000000000000000000001000000FE +:1011F0000000000000000000000080E0F8FCFEFF9E +:10120000000000000000000000FFFFFFFFFFBFBF65 +:1012100000000000000000000000000080808080CE +:101220001E03030303070303010103030303030373 +:101230000000000000808080808080C0E0F8FCFE1C +:101240000C1E0F0707030303010101014140606009 +:10125000001CBEFEFEFEFEFEFCF8F8F8383C181836 +:10126000300000303F3F3F3F1F0F1F1F1F3F3F3FDA +:1012700038E00008FCFEFEFFFFFFFFFFFFDF8F8767 +:10128000000000000000000000000000000000015D +:10129000000000000000000000000000000080C00E +:1012A000010000000000000000000000000000003D +:1012B000C0C00000000000000000000000000000AE +:1012C00000000000000000000000070F0F0F0301E6 +:1012D00000000000000000000000F0F0F0E0E0C0BE +:1012E00001030307070E0E0C2C28787CFCFE7F1FE1 +:1012F000C0808000000000000000000000000080AE +:101300000000101818181C1C1C1EFE7E7E1E1E0ECF +:1013100000000000000000000000000000000000CD +:101320000E0C0404040C0C0C0C1C3E3E3F1F0F075B +:101330000000000000000000000000000080C0E08D +:101340000C1E0F0707030303010101014140606008 +:10135000001CBEFEFEFEFEFEFCF8F8D8181C0C1C9D +:101360003000383F7F7F7F7F7F3F3F3F1F1F3F3FE2 +:10137000380000F0F0F0F8F8F8F8FCFCFCFEFEFF96 +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000000000101010000000000003A +:1013B00000000000000080E0E0C00000000000002D +:1013C00000000000000000003F3F1F3F1F0F030709 +:1013D0000000000000000000FFFFFFFE9C800000F6 +:1013E000060E0E0E0C0C1C1818787C7CFEFF7F0F6E +:1013F00000000000000000000008181C1F1F8F8361 +:101400000C1F3F0F07070303030301010101000045 +:1014100030FCFCFEFEFEFEFEFCFCF8F0F0E0E0F12D +:1014200010180C0F1F1F3F3F3F1F1F0F1F1F1F3F95 +:10143000737FFFFFFFFFFEFCF0F0F0E0E0E0C0C0D4 +:10144000000000000000000000000001000000009B +:10145000000000000000000000FEFCFEFE3C3C38E6 +:10146000000000000000000000000303030303036A +:10147000787870F0706060604040C0C0E0E0F0F0EC +:10148000000000000000000003030303030100014B +:101490000000000000000000F8FCFCFCFCF8FCFC74 +:1014A0000100000000000000010101010303000031 +:1014B000FCF838383070E0E0E0E0F8FCFEFF7F0C2C +:1014C00000001E0F070301010000000000000406D9 +:1014D000001C3FFEFEFEFEFFEFCF4703070F1F1E5F +:1014E00003030100000000000000000000000000F5 +:1014F0003CF8F1E3470F1F3F3F1F1F3F3F3F3F3F78 +:101500000000000000000040C0C1E3E3DF9F0F3F88 +:101510000000000000081C7CFCFCFCFCFEFFFFFC43 +:101520007FFFFFFFFCF8F0E0E0C0C0C0808080C01B +:10153000E0C080000000000000000000000000008B +:101540000000000000000000010303010101000091 +:101550000000000000000000FEFEFCFCFCFCE0E0DF +:10156000000000000000000001010303070F1F1F1F +:10157000E0E0E0C0C0C0C08080E0E0E0E0E0E0C0CB +:10158000060F0C00000000000000001F1F1F1F1F9F +:1015900000F070783C3C1C1C1E0C3CFCFCFCF8F879 +:1015A0000000070F1F1F1F1F0F0F0F0F0707030755 +:1015B0000000F0F0F0F8F8FCFEFEFFFFFFFFFFFF79 +:1015C000000000000000000000001F1F07000000D6 +:1015D00000000000000000000001FFFF3E0E0E0EA4 +:1015E00000000000000000000000000000000000FB +:1015F0001E1E0E0E0C0C0C04040C0E1E3F3F3F3F33 +:10160000030707070E0C0C0C0C0E0F0F0F07070734 +:1016100000F0F80000000000000086FEFEFEFCFC6A +:101620000F000003070F0F0F0F0707070703030340 +:10163000FC0000F8F8FCFCFCFEFEFEFFFFFFFFFFD5 +:10164000000000000000000000000000000000009A +:101650000000000000000000003F7F7F3F1F0E06DB +:10166000000000000000040C1C1D1F1F0F070301D9 +:1016700000000000000000000001018183C3E1F0D0 +:10168000000000000000040404FCFCFCF8F8F8F87A +:10169000000000000000000000000000000000004A +:1016A000F070F0606060606060E0E0F0F8FCFEFF09 +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000010B1F1E3E3E3E1E1FAA +:1017000000000000000000000000060602030101C6 +:10171000000000000000000800000000000080C081 +:1017200001030F3FFFFFFFFFFE001E0F0F0F1F3FC4 +:10173000E0E0E0E0C0C0800000000080C0E0E0F039 +:101740000000000000000000000000010000000098 +:1017500000000000000000000000C0C0FFFF7F7F0D +:101760000000000000000000030303C7E6C60000FD +:101770007F7FFFFFFFFF7F3FC0BF1F0F0F1F1F3B7C +:1017800000000000000000000000FCFCFCFCFCFC71 +:101790000000000000000000000000000000000049 +:1017A000F8F8F0F0E09E7FFFFFFFE7C3C380800002 +:1017B0000000000000000000001000800000000099 +:1017C00000000000000000000C1C3C7CF8F8787859 +:1017D000000000007F7F3F1F1F070B1C1F1F3F37AC +:1017E00000000000000000000000000000000000F9 +:1017F0000000000000003070703020000000000089 +:1018000002030303FFFFFFFEFEF0EC1EFFFFBE1FFF +:10181000000080C080000000000000000084040F71 +:101820000F0703030000000000000000000000009C +:101830001C3CFCFC7C3C1C0C000000000000000078 +:1018400001030600000000000000070F0707071F44 +:10185000C0F83C1C1E0E0E1E3E7EFCFCFCF8F8F090 +:101860003F3F1000000001131F1F0F0F0F07070756 +:10187000F0F000F0F0F0F0F0F0F0F0E0E0E0E0E0A8 +:101880000703070F0F07010101000000000101031A +:10189000E0E0E0F0F0E0C0C0C0C0C0C0C0C0C0C068 +:1018A00001010101030105070F0F0F0703010000EC +:1018B000C0808080000000808080C0C0C0E0F070E8 +:1018C00000000000000000010F0707071F3F3F3026 +:1018D0001E0E07070F1F3FFFFFFEFCF8F8F0E07039 +:1018E00001010121273F1F0F06000000000000003A +:1018F00000C8F8F8FCFEFEFFFFFF7F3F0F0F070355 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000002020303030302B5 +:101920000000000103377EFC7C7C3C1E0E07030197 +:101930003EFEFCF0E080000000000000000000001F +:10194000000000000000000000001C0E070703015B +:10195000000000000000000000000010F0F2FBFF9B +:10196000000000000040707C7F7F0F00207C7F7FA4 +:10197000FF773210000000048CF8E0000070F0F0F7 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A0000000000000000000000000000000000037 +:1019B0000000000000000000000000000000000027 +:1019C000000000000000000000000101030300000F +:1019D0007FFFFF7F7F7EFEFEFCFCFCFCFCF8F8F046 +:1019E0000001010103030103020E1E1F1F3F7F7F41 +:1019F000E0E0C0C080800000000000000080808027 +:101A0000F8FCFCFEFEFF7F3F3F1F0F0F1F03030785 +:101A1000000000000000008080C0C08080808080C6 +:101A200007030307030303030303070F0F0F1F1F1E +:101A3000808080808000000000008080C0E0F0F89E +:101A4000000000000000000000000000041E0F065F +:101A50000000000000002000000000000030F8300E +:101A6000060202030303030141406060703000601E +:101A700010101010BEFEFE7E18101010103000085E +:101A8000FFFFFFFF7F3F3F3F1F1F1F3F1F070E0E40 +:101A9000F0F8F8F8FCFCFCFEFEFEFEFC6400000022 +:101AA0001C38787070E0E0C0C0C080C1E1F1F9F886 +:101AB0000000000000000000000080C0F8FCFE3FB5 +:101AC0000000000000000018783C1C0C0E0F1F3FA7 +:101AD00000000000000000100000000000008080F6 +:101AE0003F7FFFFFFFFFFEFEFFFF3F1FFEFE7F7FEA +:101AF000808000800000000000C0A0000000008086 +:101B000000000000000000000000000000000000D5 +:101B10000000000000000000000001030F0707079D +:101B200000000000000000000000000000000000B5 +:101B300001183E3F311001010500030101000000C2 +:101B40001F1F1F1F1F1F1F0F0F1F1F0F0701030343 +:101B5000E0E0F0F0F8F8F8F8FCFCFCFCE0C0C0C0F5 +:101B600003030303030707070E0E1E3F3F3F3F1FFC +:101B700080808000000000000000000080C0F0F0C5 +:101B8000000000000000000000000000000307014A +:101B900000000000000041212337BF7F3F9FFFFF6F +:101BA0000101000000010303070F07070F181C1FA6 +:101BB000FFFFFFFFFFFFFFFFFFFEFEFCFC0000FC3E +:101BC000000000000000000000000000001F0706E9 +:101BD00000000000000008080C0C0E0E0E3E0E0E59 +:101BE0000E0E0E0E1C1C1C1C1818187C7EFFFF7F8E +:101BF0001C1C1C1C0C0C0C081818180C0080C0C0F5 +:101C00000000000000000018783C1C0C0E0F1F3F65 +:101C100000000000000000100000000000008080B4 +:101C20003F7FFFFFFFFFFEFEFCF80000F0F8787832 +:101C300080800000000000000000000000000000A4 +:101C40000000000000000000000000000001000093 +:101C5000000000000000000000000020E0E0E0E0E4 +:101C60000207070706040000000000000000000053 +:101C7000E02000C0E02000203F3F1F7F3F3F3F3F6C +:101C80000000000000000000070F0F07070200001F +:101C90001010181818181C1CFCFCF8F8F8383878C4 +:101CA0000000000000000000000103070707070311 +:101CB000787070706060E0E0E4C2C2C3E7FFFFFFCD +:101CC000000000000000000010783C1C0E0F0F0FF9 +:101CD0000000000000001000000000000080C0C0F4 +:101CE0001F3F3F7FFEFCFC1C00E0F8FFFFFF7F3F33 +:101CF000C0C08080000000000000000080C0F0F83C +:101D000000000000000000000000000000000008CB +:101D100000000000000000000000000000000000C3 +:101D200018000008183838383000010002000000A0 +:101D300000000000000000000000FFFFFFFF7F3FE9 +:101D400000000000000000070707060404FCBC3880 +:101D50000000000000000000808000000000000083 +:101D6000787838383838381818183C7C7E7F3F3FF0 +:101D70000000000000000000000000000080C0C063 +:101D80000000000000000200000000000000000D44 +:101D9000000000000000000000000000E07070F88B +:101DA0000F1F1918101000000000000000000000B4 +:101DB000FCFEFFFE7E3E3C3C7D79FB1B09000000E3 +:101DC00000000000000000010307070707070707DE +:101DD00003071F1F3F7FFFFFFFFFFFFFFFFFFFFF07 +:101DE00007070703000000000000000000000000DB +:101DF000FBC08000000000000000000000000000A8 +:101E00000000000000808080000080C0E0E0F0F072 +:101E100000000103060E0E0E1C1C1C3838000000CA +:101E200078383C3C1E0E0E0707010003010101003B +:101E3000000000000000000082FEFCF8F0E0C0801E +:101E40000000000000000000000000000080808012 +:101E50000000000000000000000000000000000082 +:101E60008080C0C0C0C0C0C0C0C0C00000C0E0F022 +:101E70000000000000000000000000000000000062 +:101E800000000000000207030303070F0F1C1838AF +:101E90000000000080C080E0C0C0008080C0C04062 +:101EA000383878787CFE1F00000000000000000039 +:101EB0004040040F0F0F060000000000000000006B +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000C0E1F1F1F7B +:101EF000000000000000000000000000000080C0A2 +:101F000000000000000000000001030101010307C0 +:101F100000000000000000004060C0F0E0E08080B1 +:101F2000070E0E1C1C1C3E3E3F7F3F0F00000000B2 +:101F3000C06060202000000002078F8F06000000B4 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F6000000000000000000060F0F0707038180001 +:101F70000000006070F0F83C00000000000000006D +:101F80000000000000000F3F3F7FF9F1F1F0F0F09A +:101F9000000000002030E4FCF8B0B0900000000029 +:101FA000E0000000000001011038783838180808F7 +:101FB0000000000040E0E0E0C00000000000000081 +:101FC000000000000307CFC0C0E0C00101000060B6 +:101FD0000000004040E0E0F0FCFCFCFEFE1E0F07AD +:101FE000F0F03020000000000000000000000000C1 +:101FF0000303E73F0E3C3C78186C2800000000000B +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4k-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4k-.bin.hex new file mode 100644 index 00000000..8d5ee2a8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4k-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:10002000000000000001011F1F1F0101000000006F +:1000300000000000000000FCFEFC000000000000CA +:10004000073F3F7C7070783E3F3F1F1F273361C0E2 +:10005000C0C0E0E0E070381C04C6F6E4ECCE9EDFE1 +:100060001F1B19191818080C0505010303277F7FAA +:10007000E0E0E0F0F0E0E0E0E0E0F0F8F8F8E0E008 +:10008000003C7EFFFFDF0F0F0706020800010F1F75 +:10009000000000000000000000000000000080E000 +:1000A000004040E0E8D8F07030180E060200000072 +:1000B0000000000000000000000000000000000040 +:1000C0000000000001071F3FFFFBC301000000000C +:1000D00000006060F8F8FCFCFCF8F8F8F37E3E38AD +:1000E000000000000E1F3F3F776369110000000011 +:1000F00000000000008080C0C04000000000004EF2 +:10010000F7F7D700000C7C78726B7F3B3F3F1E1CDB +:1001100080800000000050F8F8D09080800000003F +:10012000000000020E0E0F070703197CFEFFFFFF01 +:10013000000000703010181888C8ECE667EFEFCFA9 +:1001400000000000003C7EFFFFDF0F0F07060208E3 +:10015000000000000000000000000000000030F877 +:100160001E1F3F2F0F0F0707070F0F1F1733418168 +:1001700010088C8C8ECECCE0E0C0C0E8F8F8F0F02F +:100180000000000600080800030000080401000049 +:100190000000000000000000006900000080230053 +:1001A0003F3F333030383C3E1F0F0F07070400033A +:1001B000C0C0E0E0F07070303090B0B03078E0F067 +:1001C0000000003C7EFFFFDF0F0F07060208021E43 +:1001D000000000000000000000000000000000001F +:1001E0000602071FFFFFFFFFFEFE7E7C7C3F3E3CBA +:1001F00000000000008088183030000000800000FF +:1002000000101010001E1701000000000000000088 +:1002100000000000000080800000000000000000DE +:1002200000000000001003000000000000000000BB +:1002300000000000000080F01F0700000000000028 +:10024000000000070F1F1F1B010100000001000339 +:1002500000000080C0E0E0E0E0E0E0C0400000809E +:10026000030008082C000E0F0F0F070707030303F6 +:1002700080C060321B1BF2F0E0E0F0E0E0F8E0C08C +:1002800000000003070F0F0D000000000000000039 +:10029000000000C0E0F0F0F0F0F07060208000207E +:1002A0000103E3FF1F000100000003030100000041 +:1002B000E0C0E2F2F3F171600047FEFEFEFEF8F0EE +:1002C00000003C7EFFFFDF0F0F0706020800001E44 +:1002D000000000000000000000000000000000100E +:1002E0001F3F2F0707070F0F0F1F1F377341810E87 +:1002F000088CCCCECEECC0C0C0C08898F8F0F0F826 +:1003000000000000000000000DB0000000016800C7 +:1003100000004010080010A080000800A08000002D +:100320003F7F6F6763616131181C0C060302000098 +:10033000008080C0C0C0E0E0F0707038787070F865 +:100340000000003C7EFFFFDF0F0F070602080003DE +:10035000000000000000000000000000000000009D +:100360003F3F7C7070783E3F3F1F0F273361C006D0 +:1003700080C0C0E070381C04C6F6E4E8C818181C39 +:100380000000003C7EFFFFDF0F0F0706020800039E +:10039000000000000000000000000000000000C09D +:1003A0003F7F7743416171301C1C0E07060001033B +:1003B0008080C0C0C0E0E0E06060703070F0F8F8AD +:1003C000000000000002090400010100000000001C +:1003D00000000000000000008040104020000000ED +:1003E000000000030707070E0E0E0E0707030100AB +:1003F000000060E0F0F8B8383838381888C8ECCC1D +:1004000000000000000000000000300066000D0049 +:1004100000000000000000000000000080008000DC +:10042000000000003C7EFFFFDF0F0F070602080000 +:1004300000000000000000000000000000000000BC +:10044000061C38327F7F3F3F3F1F1F070301010318 +:100450000000303C8E838B8B8AC8E0F4E4E4E0E05B +:10046000000000000000100B120B0F010000000044 +:10047000000000000000C080C0C0C0C0000000003C +:100480000000000000000004010000000000000067 +:100490000000000000000000C0780F030000000012 +:1004A00000003C3F1F1F1F1F1F0F0F0F07070707ED +:1004B0006060F4F6E6E6C4C080C0800080E0E080C2 +:1004C00000003C7EFFFFDF0F0F07060208021E1F21 +:1004D000000000000000000000000000000000001C +:1004E0000000070F1F1F1B01010000000100030394 +:1004F000000080C0E0E0E0E0E0E0C040000080807C +:10050000010F0F0F00260F0F0F0707070303030349 +:100510000000F0381878F8F0C0E0E0C0C0F0F0C09B +:1005200000000000000000080001000000000000C2 +:10053000000000000000000000C07010000000007B +:10054000000000070F1F1F1B010100000001000039 +:1005500000000080C0E0E0E0E0E0E0C0400000001B +:10056000030707FF3F010000000007070301010127 +:10057000C0C0E0F4E6E2FAC1018EFCF8F8F8F8E059 +:1005800000001E3F7F7F6F07070303010400183838 +:1005900000000000808080808080008080C06040FB +:1005A0000000000000010103000000000000000046 +:1005B0000000000000C0FCFFFF3F3F7F7F3F1F00A7 +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E00000000000000804040001070F01000C1EB9 +:1005F0000000000000000040E0A0F0E0E0400080CB +:100600000000000027323A3A3800001F1F3F3F7FAA +:1006100000000000000000000003030EFEF8E000F0 +:10062000460F17A3E1E0F0F87E3F3F0E04090306F2 +:1006300000000080C0C0606030923376FEFF7F1FF4 +:10064000C0F0F8FEFFFFFFFF0F07030100000000EE +:1006500003060E0E02C0FFFFFFFFFFFF7F3F1F07D5 +:100660000000000F1F3F3F3703030101000218F095 +:100670000000000080C0C0C0C0C0C080800080C03A +:10068000F83C1F1F8F47E7F2F0F8FDFFFEFC38F83B +:100690006070E0C08C0C1C387870C08000000000D6 +:1006A00018317F7F7F7F7F3F3F1F0F0F07030303BB +:1006B0000000B0B89C8C06C2E6E4E4EC880040C0C0 +:1006C000C1E3F7FFDFFFDFDF3DE3FEFEFFFFFF7764 +:1006D0000000808080C0E0F0FC66060203E7C6CC24 +:1006E000FFFCDA0808081C1F1F1F1F0F0301000072 +:1006F00098B030707060E0E0E0E0C00080C00000C2 +:100700000000000000000804040001050702063C88 +:10071000000000000000000040E0A0F0E0E0400029 +:100720000000000008040400010507050202070795 +:1007300000000000000040E0A0F0E0E0C000808089 +:10074000070C0C09191D3F3B3B33370000808080AC +:10075000E0F0F8F8F8F8F0E0E0E0E0000000000079 +:10076000000000000000000101070F1F0D00000045 +:10077000000000011F7FFFFFFFFFFFFF7F7E1C00C7 +:1007800000000020C1E3F6FEEEEEEF33FFFFFFFFB7 +:1007900000000080800000000000088888CCC4E4CD +:1007A00000000000000000010100000E3E7EFFFF7F +:1007B000000000000030F8FCFEFEFF2F074246025A +:1007C0000000070F1F110D01010302010100000CC1 +:1007D00000000080C0E0E0C0E06040C00000000019 +:1007E0001E3C3D3F3F3F3F3F1F1F0F0F07060200CC +:1007F0000000008080F0B01818881830307070E069 +:100800000000060F0D00000060E0C00102000000C3 +:1008100000000030F8B060E0741E1CB8F00000006A +:100820000410000800201070E2C00000000000006A +:1008300040E0C00000004030600000000000000008 +:100840000000041C1C303D7F7FFEFEFCFCFCFE7E95 +:10085000F8F87878F0E0C0800000000000000000A8 +:100860007E7E7F7F7F7F7F3F3F3F0F06040000003B +:100870000000000000808080C0E0E0C08000000038 +:10088000000706070F0F1F1F1F3F3F3F3F3F3F3F20 +:10089000001838F8F8E0E0C0C0C080008080808098 +:1008A0001F1F1F1F1F1F1F0F0F0F0103030000003B +:1008B000C0C0C0C0E0E0E0E0F0F0B8B080000000F0 +:1008C00001030707070F0F0F1F1F1F3F3F3F3F1F6A +:1008D000FFFFFFFFFBF3E7E7CFCFCFCFCFCF868779 +:1008E0000F070703000000000000000000000000E8 +:1008F000070787070707030000000000000000004B +:10090000FFFEFEECF0F0E0E0C0C08080800080C020 +:100910001808101010302000000000000000000037 +:10092000C0C0E0E0C0C080C0E0C0C08000000000E7 +:1009300000000000000000000000000000000000B7 +:100940000000000000000101010001030707020090 +:100950000003071F7FFFFFFFFFFEFEFCF8300003D0 +:100960000000000000000000000000010000000086 +:1009700003070F1F3F7F7F7E3E78F0F0800000006E +:10098000FCFFFFFFFFFFFFFFFF0701073FFFFFFF28 +:10099000387CFAF8FFFFFFFFFFFFFFFFFFFFFFFEBE +:1009A000FEFCA8C0000000000000000000000000E5 +:1009B000E343060606060303067ED8000000000097 +:1009C000F8F87C7C7C3C3C1C3870F0F0F0F0F0F0E7 +:1009D0000000000000000000000000000000000017 +:1009E000F0F8F8F8F8F8F0F0F0600000000000000F +:1009F00000000000000000000000000000000000F7 +:100A000000000000000000000000010103030707D0 +:100A1000000001070F3F3F7FFFFFFFFFFFFFFFFFCA +:100A200007030101030300000000000000000000B4 +:100A3000FFFFFFFFFF5F0F0F0E1E180000000000FA +:100A40003FFFFFFFFFFFFCF8F8F0E0E0E0C0C0C0B0 +:100A5000C6C4C4C4880808000000000000000000EC +:100A60008080C0C0C0C0C080000000000000000046 +:100A70000000000000000000000000000000000076 +:100A80000000000000000000000000000001010163 +:100A90000000000001070F3F7F7F7F7F7FFFFF5F28 +:100AA0000000000000000000000000000000000046 +:100AB0001F0F0F0F1F3F3F3F1F0F0E1E1C18000080 +:100AC0000000000000000000000000000000000323 +:100AD000203010380C06000303070303070F3FFF05 +:100AE0007FFFFFEFBEDCC0E080C000000000000020 +:100AF000FFFFFFFFBF3F15000000000000000000E7 +:100B0000F8F8FCFCFCF8F8F0F0F8F0B8DC8CCC86D7 +:100B100000000000000000000000000000000000D5 +:100B200006030103020204040400000000000000A8 +:100B300000000000000000000000000000000000B5 +:100B40007E7CFCFEFCF8E0C0FFFFFFFFFFFFFFCF55 +:100B5000000000000000000080C0E0E0E0E0E0C035 +:100B60000707030303030101000001010100000066 +:100B7000808080C0C0C0C0C0C0C2E3F1F0F83800BF +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC00000000000000000001F3F3F7766264E76C1 +:100BD0000000000000000000E0E0E0F00000000085 +:100BE00098EEF07E3E3E7E7E7E7E7E3E1E000000C3 +:100BF00000000000000000000000000000000000F5 +:100C00000000000000000000010303020302067E52 +:100C10000000000000387CFECFC3DB440000000071 +:100C2000FFFFFFFFFFFFFF7FFF977FFFFFFE7E1DA0 +:100C30000080E0E0F0F0E0E0E0F0F0F0F0F878FCC8 +:100C40000C031F1E0F0F0301000000000000000036 +:100C5000C0C0C0C0408040C0C0C0C0400000000054 +:100C60000000000000000000000000000000000084 +:100C700040404000000000003E3E1E0C787CFEFF1D +:100C8000010101010000E0F8FEFFDFBF1F078180C6 +:100C90000080808000000000000080C0C0E060E0B4 +:100CA000C1E0E0E0F071F0F0E0E0F0F0F0707878B2 +:100CB000E0F0F070F0F0F8787C3C301C7F7E7C3007 +:100CC00000000000071F1F3F3E3E3E3E1F1F0F0655 +:100CD00000000000B0AC28BABE9890000000307050 +:100CE0000001070301030F0F0707070300010000BE +:100CF000F0F0F0F0F0F0F0F0F8F8F47FFFFFFEFD18 +:100D000000000000000008080C0C040406060202A3 +:100D100000000000000000000000000000000000D3 +:100D200003030101010100C1E7FFFFFFFFFF27806F +:100D300000000080A0F0F0F0E0E0E0E0E0B0303053 +:100D400000061E3C3C7F7D7C3F3F1F0F01000000E2 +:100D50000000000000000000000000000000000093 +:100D60000100000202030303010101000000000072 +:100D70000000000000000000000000000000000073 +:100D80001F3F0B073F1F1F3F08073F7D7E7E7E3DB5 +:100D9000C0C080C0C0C28E1EFEFEFEFEFC7AB0C087 +:100DA0001F07030103030303030103010000000005 +:100DB000E2E0F0F0F0F0F0F0F2E2F2F8787CFEFE23 +:100DC000E4C6060602030303C1E1E1E1E1F0F0F04D +:100DD0000000000000000000008080808000000013 +:100DE000F0E060E0F0F078F8782070F8FCFEF8E0D1 +:100DF00000000000000000000000000000000000F3 +:100E00000000000000000000000000000010386238 +:100E100000000000000000000000000000000010C2 +:100E200042C387878F1F3F0E00000008080C070091 +:100E30004824A28A8E07030D0717331C5EFC78F046 +:100E4000070F0E2473AFFDFA5F3F3F1B0100002028 +:100E500018BCF2BADCDC980080C0488C8C180040CA +:100E600072777F1B0002000000030606030E1B734F +:100E7000C00080101830F8308000000000000080B2 +:100E800073F8FBEF4F0F06000161F7F3A000070FA7 +:100E90007E76A49860F0F8F8B0C0C080000000C072 +:100EA0000F3F7E7E6C0006070F1E1B00060E1B33D5 +:100EB000E0E4C60C0E1CC0C08000000000000080F2 +:100EC00000000000004080000000000000400080A2 +:100ED0000000000000000000000000000000000012 +:100EE000000000004080000000000800000000003A +:100EF00000000000000000000000000000000000F2 +:100F000000080002010000000000004E0100000087 +:100F1000000010100888C46E7F3E163BFB777FC729 +:100F20000001070C30000001010204040010000061 +:100F3000E7CF972F7E78F3E3020206040408080047 +:100F400000044448481810303070F0F9FFFEFEF8F5 +:100F50000000000000000010004080800000000041 +:100F6000FCF9F0C4EE733170600000000000808076 +:100F700080E03C03000080402010000200000000E0 +:100F80000000000000200000080001010000010333 +:100F900000440000030707030080C8C1E160C2806D +:100FA000230000000000000010000000000002000C +:100FB0001000012302066CF8F83000000001000068 +:100FC0000020000000800084EE7CB83C3E1F0F35FE +:100FD00000008000000000000000002480C08000AD +:100FE00078703810004018081C1800000000080035 +:100FF0000000004000080000000000004000000069 +:101000000000000004041C1C3C3C3C3C7C7C7C7CC0 +:1010100000000000000000000000000000000000D0 +:101020007C7C7C7C7C3C3C1C0C04040404000000A4 +:1010300000000000000000000000000000000000B0 +:10104000032377FFFFFFFFFCF8F8FCDC9EDFDECE1A +:10105000E0E0E0E0C0800000000000000000008050 +:10106000CDEFE3E3E3E3E1C18080C0C0C000000056 +:1010700080A0E0F0F0F8F0E0C8DC1C0E1C080000D6 +:1010800003070F0F0D00000000000000000000002B +:10109000C0E0F0F0F0F0F0706020800C0000000084 +:1010A0000000000000000000000000000020200000 +:1010B0000000000000000000000000000000000030 +:1010C000E76F0F0F1F1F1F3F3F7F7F7E7E3F3F3F1A +:1010D000F8F0F0E0C0C08080800000000000000058 +:1010E0003F3F7F7F7F7F7F3F1E0E0E07070600007A +:1010F00000008080808080081C1E0C08000000001A +:1011000000000000000000000000010101010101D9 +:1011100000000000000000000000000000000000CF +:10112000010303070707030100000000000000009F +:1011300000000000000000000000000000000000AF +:101140000000000001071F3FFFFFFFFFFFF1FBFB57 +:10115000000001FFFFFFFFFFFEFCF0C0E0C0C0C0C9 +:10116000FBFBFBF9F9F9F1E1C0C0E0400000000031 +:101170008040E0F0F0F0F0E0E8F81C18100000000B +:10118000000000000000000000000000000000203F +:10119000000000000000000000000000000000004F +:1011A0003F3F3F3F7F7F7F7F3F0F07060E0E0400CC +:1011B000808000008080808080800000000000002F +:1011C0000000000002060E1E1E3E3E7C7C787078F9 +:1011D000000000000000000000000000000000000F +:1011E000ECFCFEFCFC7878383C1C0E0E0C00000079 +:1011F00000000000000000000000000000000000EF +:10120000005FBFBFBFBFBF7F7F7F7F3F3F3F3F3F8D +:1012100000C0C0C080000080808000008080C0C00E +:101220001F1F1F0F0F0F0703010000000000000029 +:10123000E0F0F8F8F0F8F8FC9E0C0C0C0800000048 +:101240000001030303000000000000000000000094 +:10125000F0F8FCFC7C3C3C1C18082000000000005E +:101260000000000000000000000000000C00000072 +:10127000000000000000000000000000000000006E +:1012800003030103070F0F1F1F1F3F3F3F3F1F1F98 +:10129000FCFCFCF8F8F8F0F0F0E0E0E0E0E0F0F85A +:1012A0001F3F3F3F3F3F1F1F0F060607060000007E +:1012B000F8FCFCFEFEFCFCFC2E0E0400000000000E +:1012C00000000000000000000000030F1F1F1F3F70 +:1012D000000000000000000000000080C1FFFFFFD0 +:1012E0003F3F3F3F7F7F7F7F3F0E06060E0E04008D +:1012F000FFFF7F3EB8BCBEBC3A363D1F1F1F0F0E1E +:101300000000000000000000000000C0E0E0E0E09D +:1013100000000000000000000000000000000000CD +:10132000C0C080000000287C7CE8C0C0C0800000F5 +:1013300000000000000000000000000000000000AD +:101340000000000000000000000C00000008181859 +:10135000000000000000000000000000000000008D +:1013600018181818181818080000000000000000CD +:10137000000000000000000000000000000000006D +:101380003EFEFEFCF8F1E1A1D1F1FBF3F373733300 +:101390007FFFFFFFFEFEFCF8F8F0F0F0E0F0F8F859 +:1013A00033230101010100000000000000000000E3 +:1013B000F8FCFCFEFEFFFFFEFCFE6E060C000000CB +:1013C0000101030F1F3F3F7FFFFFFFFFFF7F7F7F75 +:1013D000FCFCF8F0F0E0E0C0C080C0E0E0F0F0F825 +:1013E0007F7F3F3F3F3F3E0E06060C00000000009F +:1013F000F8F8FCFCF8F8FC5C0C0C000000000000A5 +:1014000000000000000000000000000000080818B4 +:1014100000000000000000000000000000000000CC +:101420001818181818080800000000000000000034 +:1014300000000000000000000000000000000000AC +:101440007FFFFFFFFFFFFCF9FDFDFFFFFB73733321 +:101450001FBFFFFEF8E0E0F0F0E0E0E0C0C0C0A099 +:101460003323010000000000000000000000000025 +:10147000E0F0F8F8F8FCF8F8787C2E060C00000094 +:1014800003070F1F3F7F7F7FFFFEFEFEFFFFFF7FF3 +:10149000FCFCFCF8E0E0C080000000000000000060 +:1014A0007F7F7F3F3F3F3E3E1607060C0000000057 +:1014B00080808080808004040E0E0C0800000000F4 +:1014C0000000000000000101070F3F7F7F7F7E7F4B +:1014D00000005C1E7F7FFFFFFEFCF8E0C080000084 +:1014E0003F3F3F1F1F3F3F3F3F1B030301000000E3 +:1014F00080808080C0C0C0806070B8B8B00000003C +:101500000303030707070703030303030303070793 +:10151000F0F0F0F0E0F0F0F0F0F8F8F8F8FCFCFC97 +:1015200007070303030100000000000000000000A3 +:10153000FCFCFCF8F8F070303020000000000000E7 +:1015400000000103070F0C0C0E0F07060401070330 +:10155000000000C0E060206060303060E0E0E0F05B +:101560000301010103030301030303000000000062 +:10157000F0E0E0F0F8F8F0F0F0E0C000000000006B +:1015800000000000000003071F3F3F7F7F7E7F7F3A +:10159000000000000000FFFEFEFCF8E080000000FC +:1015A0007F7F3F3F3F3F1F1D000000000000000005 +:1015B00080C0C0800080C0E0E0C0000000000000EB +:1015C0000000060C183E3F3F3F3E1E1F1F1F1F0F0F +:1015D000000000000000F0FCF68404048C8C98D815 +:1015E0000F0707070F0F0F070F0F0F000000000076 +:1015F000FC8C80C0E0E0C0C0C080000000000000A3 +:101600000000000000081818183838383838787882 +:1016100000000000000000000000000000000000CA +:1016200078787878383838181808080008000000EA +:1016300000000000000000000000000000000000AA +:101640000F1F3F7FFFFFFFFEFCFEFFEFE7E7E7E72F +:10165000F0F0F0F0F0E0000000000080800080C0BA +:10166000F7F7F3F3F3F3F3E1E1C0C0C0C08000008B +:1016700040E0E0E0C0A0E0F0F87C7E0C0800000054 +:101680000000000000000000000000000000010158 +:101690000000000000001000080C0477FFFFFFFFAF +:1016A0000101030303030303030100010307000017 +:1016B000FFFFFFFFFCFCF8F8F8F8F0C08000000026 +:1016C000000000000000000000000000000000001A +:1016D00000000000000000000000000000000030DA +:1016E0003C7FFFFFFF7F7F7F0FBFEFFEFFFF7F3F4E +:1016F000F0E0C48C9C9C9C9C18181818D0F0E080DA +:101700007F3F1F1F1F1F1F0F0F0F0F0F1F1F1F1FB9 +:10171000C0C0C0C08080808080C0C0C0C0C0C0C009 +:101720000F0F0F0F0F0F0F0F070100000000000039 +:10173000E0E0E0E0E0E0F0F0F0E0C0E0F0600000C9 +:101740000000000000000001070D0B03070B03055C +:10175000000000000058FCFCFCFCC0801800800069 +:101760000800000100010103030303070707073B0B +:101770000060F0F0F8F8F8F8F8F8F8F8F0F0F8F899 +:101780003F3F0F03030000000100000000000000C5 +:10179000F8F8F89800000080C8F878783C3C1C2CD9 +:1017A000000000000004060C0703030303070707FB +:1017B0003878F8F870F0E0E0E0C0C08080C0F0F861 +:1017C0000000000000000001070D0B03070B0305DC +:1017D000000000000058FCFCFCFCC08018008000E9 +:1017E0000800000100010111313030216361E1FC8A +:1017F0000060F0F8F8F8F8F8F8F8F8FCFCFEFFFFE5 +:101800007F3F0700000103010103030301000103FF +:10181000FEFCF8F8F0F0F0F0F0F0F0E0E0C060E08E +:101820000707030307070F07363C3C78F8FC7E1FC9 +:10183000C0C0C080808000000000030303030707CE +:1018400000000000000F0F1F3F3F3F7F7F7E7F7F24 +:101850004060606060E0C08080808000000018B858 +:101860003F3F1F0F0F0F0F07070707030000000080 +:101870009C8C8C84C0F0F0F0E0E0E07070600000C0 +:101880001F1F0F0F0F0F0F07070707070F0F0F0F70 +:10189000E0E0E0E0C0C0C0C0C0E0E0E0E0E0E0E0E8 +:1018A00007070707070707070300000000000000FD +:1018B000F0F0F0F0F0F0F8F8F8F060703818000090 +:1018C0000E0F1F1F1F1F1D1E3D3F3F3F1F1F1D1FD0 +:1018D0000000008080000000000000808080808088 +:1018E0001F1F1F0F0F070101010000000000000073 +:1018F000C0C0800000C0C0C08080000000000000A8 +:10190000000000000000000000000000040C0C0EAD +:1019100000000000000000000000000000000000C7 +:101920000F07070303070F0F03000000000000006C +:10193000C0E0E0F0FCFEFFFFFFFF3F0F03030101EB +:10194000000F0E0E0E0E0E0F87C7E3E1F87EFFFFAD +:1019500000E0F0381818181C8EC6E2F3F9F3F624EC +:101960007E7E7E1F0701040F0000000000000000C3 +:101970004C0C0C18F8F040000000000000000000C3 +:101980000000000000000000000000000000020352 +:10199000030F0F0F0F0F0F1F1B317CFF7F7F3F3F88 +:1019A0000707070F0F0F1F1F0F0303070702000092 +:1019B0003F8789C0C0C0F0F0F0E080000000000068 +:1019C000000000000000010303030000000000000D +:1019D0000000000000F0F8FCFC7C3C3C1C180820D7 +:1019E0000000103030707060200000000000000027 +:1019F00000000000000000000000000000000000E7 +:101A00000000000000000001070D0B03070B030599 +:101A1000000000000058FCFCFCFCC09800008000A6 +:101A20000800000103070F1F3F3F7E7C7CF8F83C55 +:101A30000060F0F0F8F8F8F8FCFCFC5C3C7EFF3F3E +:101A40000F0F130001000100000000000001000161 +:101A50009EFCFCFCF8FCFC7C3E3F1F0FC7E3E7E765 +:101A60000001010303030101090E1E3C3C3E1F0F50 +:101A7000E3E1E1C0C08081000303010101030383AE +:101A80000000000000000000000000000000000254 +:101A90000000000000003030706000000000000016 +:101AA0000E1E7EFEFEFEFFFEF0F0C0800000000075 +:101AB0000000000000000000000000000000000026 +:101AC00000010101000000000000000000BC100344 +:101AD00000000080C0404000000000000060F8FEF0 +:101AE0000F1F0700010103030300000000000000B6 +:101AF000FFFFFFFFFFFFFEFEFCEC60E070700000E8 +:101B000001030707060000000000000E1E3E3E7E97 +:101B1000E0F0F8F8F87878383010000000000000A5 +:101B2000E6E2C6466260426F3F3E9FC2E4C00000EC +:101B300000000000000000C0C080000000000000A5 +:101B4000000000000000FCFC7E3F1F8F8F878B8F02 +:101B5000000000C0800000000000008080800000C5 +:101B60001F1F3F1E3E1E0E1E3C3C1C1CF0F8FEFFBD +:101B70000000000000000000000000000000000065 +:101B8000000000000000000000003F3F1F0F07039F +:101B9000000000000000000000C0F0F8FEFFFFFFA2 +:101BA0000001000301000703010000000000000025 +:101BB000FFFEFEFE3CFCF8F8F8FC7CBEFEFFFEFCDF +:101BC0000000000000000000000000000000000114 +:101BD0000000000000000000000000000000008085 +:101BE000030F0F0F7F3F1F0F0301030F020F0701AA +:101BF000C0E0F0FCFEFEFEFEFCF8F8F0F0E0FC1F9A +:101C000000000000000001010100000000000001D0 +:101C10000E1E3E7F3F1F8F8FC7EFE773F3F9FAF376 +:101C2000030307070F1F3F7F7FFF7F1E0000010197 +:101C3000F7F3E3E7C3C3CF879F8F070778FEFFFF64 +:101C4000000000000000808080C0C0E0E0E0E0C054 +:101C50000000000000000000000000000000000084 +:101C6000C0C0C0C0808080008080800000000080F4 +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000153 +:101C900000000000000000000000000000007CFFC9 +:101CA0000103030301202167E2C1C3616130100019 +:101CB000FFFFFFFFFFFCFCFCFCBCF8F8F8F0F04075 +:101CC00000000000000000000000000000030F1FE3 +:101CD00000000000000607070707033FFFFFFFFFA4 +:101CE0001F3F7F7F7F3E0F070000000000000000C5 +:101CF000FFFFFCF0C00000800000000000000000BA +:101D000000000000000101010101010100000000CC +:101D100000000000000080C0E0FAFEFE7E0E000021 +:101D20009F7FFFFF3F170F1F1F1F0F0F07071F1F6B +:101D30000000008080808080808080808080E0F053 +:101D400000000060602020203030101018180808B3 +:101D50000000000000000000000000000000000083 +:101D60000C0C040406060202000000000000000043 +:101D7000000000000000000003077F7F7F3F383035 +:101D80000000000100000404060202030307070F1D +:101D9000C0F8F8F8FCFC7CFC7C7C3E3E1EAE3E3C71 +:101DA0000F0F1E1E1E3C3D7C7CF8F838000301011D +:101DB0001C7C7C783878F8F87070F07070F8FEFF52 +:101DC000D0406000083C7EFCFCFBF7FFEFC70F0F24 +:101DD00000000000000000000020A0A0F0F0F0F0E3 +:101DE0000601070E0F1F07010000000000000000A1 +:101DF000E0E0E060F0F0F8F8383830200000000053 +:101E0000000000000000000000000060603030189A +:101E100000000000000000000000000000000000C2 +:101E2000180C0C060603030101000000000000006E +:101E3000000000000000008080C0C06060303018EA +:101E4000030703030109080C04060607070E0E1E0C +:101E5000CEC6E4E0E0F0F0F0F8787C3C5C7878788E +:101E60001C3C3C7D78F8F9F81803070F0F070000B9 +:101E7000F8F8F0F0F0F0F0F0606080C0F0F80000EA +:101E800000000001030302030200020F3FFFFFFFF7 +:101E9000387CFECFC3DB44000000000080E0E0F0AF +:101EA000FFFBCF9F0F0B070F0F1E0F07070300014C +:101EB000F0F0F06060A0A080000000800000C88CFE +:101EC0006060203030101818080C0C04060602035D +:101ED0000000000000000000000000000000000002 +:101EE00003010101000000000000000000000000EC +:101EF000000080808000000000303038181C1E0F69 +:101F0000000000000001030302030200020F3FFF74 +:101F10000000387CFECFC3DB44000000000080E0FE +:101F2000FFFFFFFFEF8703050E1F0F070F1F0F07B0 +:101F3000E0F0F0F0F0E0E0E0E0C0C0E0E0E0E0C0C1 +:101F4000000103070301000404060203030303075F +:101F500000E0E0E0F0F0F8F878787C3C3E9EAE3CA3 +:101F6000070F1E1E1E3E7CFCFCFC0C010307070332 +:101F70003C7C7C7C18186868200000C0E0C0C080F1 +:101F800060202030301010181808080C0C040406CB +:101F90000000000000000000000000000000000041 +:101FA000060202030301010000000000000000001F +:101FB00000000000000000800000000000000000A1 +:101FC0000000000307070D0C0E0E1F1A080E031F5A +:101FD000000000E0F0E02000400000000000008071 +:101FE0003F3F3E3D3F3F1F0F3F1F093F1F3F0F0732 +:101FF0000000C0E0E0F0F0F8F8FCFCFCFCBE9E7FC6 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4l-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4l-.bin.hex new file mode 100644 index 00000000..1119f163 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4l-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000001010101000604E2 +:1000100000000000000040E0E0A000004000000000 +:1000200003030707030100000000000000000000B8 +:10003000E0E0E0E0E0E00000000000000000000080 +:1000400000000000000000000000000000000000B0 +:100050000000000000000000000001030301000098 +:10006000C0C0808080404000007078787070301888 +:100070003C7C7CFCFC7C3C0000000000000000009C +:1000800000000020707C7E3FFFFF7F7F7F7F7F7FAF +:1000900000000000000000008080E0E0E0E0E0E020 +:1000A0000000000080E0F8FFFFFFFFFFFFFFFFFF01 +:1000B00001030000000000C0C0E0F0F0F8FCFEFF0B +:1000C00000000001010000000000000000001038E6 +:1000D0000040000000002030000000007800000018 +:1000E00008FCFEC0000000000000000080FCFCF8DE +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:100120000000000000000000010101010103070FB1 +:100130000706060408000000E0E0F0F0F0F0F0F040 +:1001400000000080E0F8FFFFFFFFFFFFFFFF1F0F31 +:100150007C787870600080C0C0E0F0F8FCFEFEFFA4 +:100160000000000000F3FFFFFFFFFFFFFFFFFF3F66 +:100170000000000000F0F0F0F0F0E0E0E0C0C0802F +:100180000307070F1E3E3E1C1C1C18181818383891 +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000010301010103E4 +:100210000000000000000000004060C0F0E0E0804E +:1002200007040000000101030307076F73783030F3 +:10023000C0C06060E0E0E0E0E0E0E0E0E60F0E0675 +:10024000070C080818181010103038381800010171 +:1002500080C040606060E0E0C0C040404040C0E01E +:10026000070F0C181818181C1C1C1E5FF7F06000F4 +:1002700080C0C060606020202000000C9E1E1C0C0E +:10028000000000E0E0C0C0E0F0FCFCFCFCF87C0CEE +:10029000000000000C091F1E1C00000000000000F0 +:1002A0000000000107070E0C1818101008040007C2 +:1002B000000000C0E0F0301000000000000000006E +:1002C000000000000000E0E0C0808080C0E0F0F8A6 +:1002D000000000000000000000000000000000001E +:1002E000000080C1FFFFFFFFFFFF000000000000D3 +:1002F000000000808080808080800000000000007E +:100300000000000103070F0E1E1C0C0C0C0800005F +:100310000C1E1E1E1E0E0E06020000000000000035 +:100320000000000003070F0F0F0703030200000087 +:10033000001E7FFFFFFFFFFFEFE0808000E0FFFF78 +:1003400000000000000000F8F0E0E0E0F0F8FCFE43 +:10035000000000000000000000000000000000009D +:10036000000003060E1C3C78783000001C1F1F3F65 +:10037000000F3F3F3F7F7F3F3F0F070300C0FCFE62 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000010301040406020207032C +:1003B0000000000078FCDE860602000000000080DD +:1003C000202111121ABE7F3F1F3E3F4C84040202BF +:1003D000000000000000608000000000000000003D +:1003E00000000103070E0410101808383C1C000020 +:1003F0000000E0F07818180800000000000000007D +:1004000000000001010000000000000000000008E2 +:100410000040000000002030000000201800000014 +:100420001E3F3E7C7870F0F0E0E0E0E0E0E0C0C02D +:1004300000D87C1E0E07070707070F0F0F1E1E3C74 +:10044000000000000000000080000000000000002C +:10045000000000000000000000000000000000009C +:1004600060F0F8FCFF7F7F7F3F3F0F0F0F0707070C +:10047000001010000080C0E0E0F0F8FCFCFEFEFE82 +:10048000000000000000000000000000000000006C +:100490000303010100000000000000000000000054 +:1004A000000000000000000000040F0F1F1F3F3F6E +:1004B0000000000000000000000000E0F0F8FCFE7A +:1004C000FFFFFFFFFF7F7F3F1F3F3F3F3F3F3F7FDC +:1004D000000000808080C0C0C0C0E0E0E0E0E0E05C +:1004E0007F7F7F7F7F7F7F7F3F00081F1F1F3F3FF2 +:1004F000E0E0E0E0E0E0E0E0E00000C0F0F8FCFE7A +:1005000000000001010000000000000000000008E1 +:100510000040000000002030000000201800000013 +:100520001E3F3F7C787070E0E0C0C0C0808000005B +:1005300000D8FC7E3E1F0F0F0F0F0F1F1F3E3E7C8B +:1005400000000000000000000000010300000000A7 +:100550000000000000000000FCFCFCFC7C1C00E033 +:1005600020607070783C3E3E1F1F0F0F0707070783 +:100570007070783820000000008084CCFCFCFCFC0B +:100580000303030301010103030303070707070F25 +:10059000FEFEFEFEFEFEFEFEFEFEFCFCFCFCFCFC87 +:1005A0000F0F1F1F1F1F1F00C0C0E2FFFFFFFF0F25 +:1005B000FCF8F8F8F8F8F87800000010F8FCFEFFF6 +:1005C0000000000101000000000000000000000029 +:1005D0000040000000002030000000201800000053 +:1005E000183E3F7E7C7870F0F0E0E0E0E0E0C04054 +:1005F0000000DC7C1E0F07070707070F0F0E1E1EEB +:1006000000000000000000000000000101010303E1 +:100610000F1F1F1F3F3F3F7F7FFFFFFFFFFFFFFFBA +:1006200007070F0F1F07000004070F0F1F1F3F3F93 +:10063000FFFFFEFEFEFEFC1C0000C0E0F0F8FCFE2A +:10064000F0F0F0F0F0F0F0E0E0E0C0C080808080FA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000C0F1F1F3F3FB3 +:100670000000000000000000000000C0E0F0FCFEF0 +:100680000000000101000000000000000000003830 +:1006900000400000000010180000000018000000DA +:1006A0007F4703010000000000000000000000037D +:1006B00000E0F0F0F8787C7C7CE04000000000C0B6 +:1006C0000000000000000000000000000000103CDE +:1006D000000000000000000000000000000000001A +:1006E0003F7F0100404040C0C0C0C0C0404000004B +:1006F000FFFFFF7E1E000000000000000000000061 +:1007000000000000000000000000000000000000E9 +:1007100003000000000000000000000000000000D6 +:1007200000000000000000000000000103030707B4 +:10073000000000000000000000C0F0FCFEFEFFFF13 +:10074000FFFFFF3F1F1F0F0F0707070F0F0F0F0FB1 +:10075000E0F0F0F0F8F8F8F8F8F8F8F8F8FCFCFC3D +:100760001F1F1F1F3F3F3F000000181E3F3FFFFF9E +:10077000FCFCF8F8F8F8E00000000040F0F8FCFCA1 +:100780000000000000010101030303030307070742 +:100790003F7F7FFFFFFFFEFEFEFEFEFFFFFFE7FF46 +:1007A00001000006060E0E0E0E0E0E0602000000E0 +:1007B000FF3F0701000000000000000000000000F3 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E00000000000000000000000000101030707F6 +:1007F00000000000000000000000C0E0FEFFFFFF5E +:100800003F1F0F0703010101030303030303030356 +:10081000FCFCFEFEFEFEFCFCFEFEFEFEFEFEFEFE00 +:100820000307070707070707000000070F0F9FDFF1 +:10083000FEFEFEFFFFFFFEFE00000000F8FCFEFFD4 +:100840000000000000000000000000000000000C9C +:100850000020008080001018000000000C00000044 +:100860001E3F2701000000000000000001033F3F81 +:100870000018FCFEFE7E3F3F3F3F7FFFFFFFFFFE75 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A00000000000000000001030303010080F067B +:1008B000FFFFFFFF7F0F00000000000000000000AE +:1008C00000000000000000000001070707137BF193 +:1008D000070703030301071F7FFFFFFFFFFFFFFF62 +:1008E000F1F9F97C3C3C3C181C1C0C0C0400000089 +:1008F000FFFEFEF8F0606000000000000000000055 +:10090000FEFEFFFFFFFFFFFFFFFFFFFEFEF8E0E040 +:1009100000000000000080808080000000000000D7 +:1009200080000000000000000000181C1F1F3F7F17 +:10093000000000000000000000000080E0F0F8FC73 +:1009400000000000000000000000000000000004A3 +:100950000010004040080C04000000000E000000E1 +:100960000F030100000000000000010387FF7FFF6C +:1009700000F0FCFE7E7E7F7F7FFFFFFEFEFCFCF82A +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000101010000000000000000000000000044 +:1009B000FFFFFF1F03000000000000000000000018 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E00000000000000000000010183C7F7FFFFFA7 +:1009F000000000000000000000000080C0F0F8FCD3 +:100A0000000000000000100C0707070F1F3FFF7FCA +:100A1000000000000000031FFFFFFFFFFFFFFFFFBC +:100A20007F7F1F07000000000000000000000000A2 +:100A3000FEF8E000000000000000000000000000E0 +:100A40000000000000000000000000000000004066 +:100A500000100040400000101808000000000000D6 +:100A600060F0FC7F1F0F0F070707070F0F1F3F3FA7 +:100A7000000070F8FCFCFEFEFEFEFCFCF8F8F0F056 +:100A80000100000000000000000000000000000164 +:100A90000000000000000000000000000000FFFF58 +:100AA0000000000301010000000000000000000041 +:100AB0007F1F0100F0FFFFFFFFFFFFFF3F1FDF7FF2 +:100AC0000000000000000000000101010101000021 +:100AD000000000000000000000C080808080000056 +:100AE0000101010101010101010101FF3F1F1F0F70 +:100AF00000C0C0E0E0F8F8FCFEFFFFFFFFFFFFFFD3 +:100B000007070F070300010303070703030301039C +:100B1000FFFFFFFFFFFFFFFFFFFBFBFBF9F9FDFD01 +:100B2000030103030703010000010103030303039F +:100B3000FDFCFCFCFCF88000000898FCFEFFFEE0D9 +:100B400000008080C0E0E0E0F0F0F8F8FCFCFEFE81 +:100B50000000000000000000000000000000000095 +:100B6000FFFFFFFFFFFEF8F0E08004070707070321 +:100B70000000808000000000337FFEFCF0E0800079 +:100B80000000000000000098800000030303010340 +:100B9000000000000000000000000080E0F0F0F025 +:100BA0000F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:100BB000F0F0F0F0F0F0F0F0E0E0E0C0C0C0E0E015 +:100BC000C0FFFFFFFFFCF0E040030F0F0F1F1F0FE0 +:100BD00000F8F88000070F3FFFFFFFFFFFFFFFFF58 +:100BE0000F0F0303000000000000000000000000E1 +:100BF000FFFFFFFFFF7F1F0F030703000000000040 +:100C00007FFFFFFF7FBF1F070703030101000004F1 +:100C10008080808080C0C0E0E0F0F0F0F8B83878E4 +:100C20000F0E0E1E1C1C181818183030100800006B +:100C3000787070707070707030303030307C7F7FC2 +:100C40001F1F1F1F1F0F07070703010103030200D8 +:100C5000C0F0F8E8C0C0C0C0E0E0E0F0F0F0E0E0D4 +:100C6000010103030303030303030303030707074C +:100C7000C0C0C080808080800000000000C0E0E034 +:100C80007FFFFFBF5F1F1F0F070707030303070750 +:100C9000CC8783C3C1C0E0E0F0F0F0F8F8F8D8C02A +:100CA0000F0F0E1E1E1C1C181838307070783C0E6A +:100CB0008080F070707070707030303030380000AC +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000800000000000060301C60 +:100CE00000000000011F1F1F1F0F3F7F7F70216149 +:100CF0001C1C1C3CFCFCF8F8F8F0E0E0E000F8FFFD +:100D000000000000000000000000000000001818B3 +:100D100000000000000000000000000000007F7FD5 +:100D2000180C0F0F07030301010000000000000072 +:100D30007FFFFFFFFFFEF8F8F80000000000000052 +:100D40001F0F0F1F1F0F0001030101030303030304 +:100D5000C0C0E0E0E0C0C0C0C0C0C0C08080808033 +:100D6000030301010100010307070703000000005E +:100D700080808080808080C0C0E0E0F0F83C0C0083 +:100D80000000000000000000000000000000000063 +:100D9000000000000000000010080018C000C000A3 +:100DA00000000000061020200018030000000000D2 +:100DB0001800184080000000204C020000000000D5 +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE0000000000000FEFEFEFCFCFCBC0C0000004D +:100DF00000000000000000000000000000000000F3 +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E200000000001030307070E0E0C0C1C3C180009 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E8000010101010101000000000000000000005C +:100E9000FEFEFEFEFEFCFC7C3C3E3E3E1E1F3F3E38 +:100EA000000000000000000000000101010100003E +:100EB0007E7E7C38787070706060E0C0C8EEF07044 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE00000000103030300000000000000000000F8 +:100EF00000F0F8FCFC7C3C3C1C18082000000000C2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000000000000000607068CCCD +:100F2000000000000000000000011F0000000000A1 +:100F30008C848C981C3C3C38FCFCFCF000061EFCAD +:100F40003F3F3F3F3F7F7E7F7F3F3F3F3F1F1F1F12 +:100F50008000000000000000000000808080808091 +:100F60001F1F3F3F3F3F3F3F1F0707070E06000081 +:100F70008080808080800000808080800000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:101000000000000000000000000080C0C0E0F0F020 +:1010100000000000000000000000000000000000D0 +:10102000F8FCFEFFFFFFFEFCF8F8F02127030101AA +:101030000000008083071E3E7C7CF8F8F0F0C0C002 +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:1010600000000000000000000000000070F0F07CB4 +:1010700000000000000000000000000038383E3F83 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A0000100000000000000000000003E7E7F3FC5 +:1010B000E0C0000000000000000000000000008010 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000000000000000000000010 +:1010E000000000000000000000000060E0F0F87C5C +:1010F000000000000000000000000000183C3E3F1F +:101100000000000000000000000000040E0C0403BA +:1011100000000000000000000000000000000000CF +:10112000070F1C18181010111038000000000000E4 +:101130008080C0C0C08080C0C06060000060F0E0FF +:10114000000000000000000000000000000000009F +:10115000000000000000000000000000000000008F +:1011600000000000000000000000000E1E1F1F0F06 +:10117000E00000000000000000000060F0F0F8FC5B +:101180000000000000000000000000000007010750 +:10119000000000000000000000000000000080C00F +:1011A0000103000000040A1E0C1D070F01010000CE +:1011B00080800000000307070F0FDFFFFFFFFF7EA7 +:1011C0000000000000000003030101030101000012 +:1011D00000000000000000000080C0C0E0E000004F +:1011E0000000000000000000808080C0E0E080007F +:1011F00000000002063E3C3C180000000000000019 +:10120000000000000020202020606060606000007E +:1012100000000000000000000000000000000000CE +:101220000000000000000000000000003070F8FE28 +:1012300000000000000000000000000000000000AE +:101240000000000000000000000000000100010399 +:101250000000000000000000000020E0C0F080C09E +:1012600007030101030F1F0F0F1F0F1F3F38380027 +:1012700080C0C0C0C08080008080C0C0C0000000AE +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A0000000000000000000000000081C1E3E3C82 +:1012B000000000000000000000000000000000002E +:1012C0000000000000000000000C081E1C381E0872 +:1012D0000000000004151F0F0E04000000000000B5 +:1012E0000C0C1E1F1F0F0F07070303010000000057 +:1012F000000020F0F8FCF8F0F0E0E0E0E0A00000F2 +:1013000000000000000000000000000000000000DD +:1013100000000000000000000000000000000000CD +:1013200000000000000000000000000103030301B2 +:1013300000000000091D3F1E1C080080F0E0C000F6 +:1013400000000000000000000000000010181C1E3B +:10135000000000000000000000000000000000008D +:101360000FFFFEFE1C08000000000000000000004F +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:10139000000000000000000000000000000000004D +:1013A000000000000004FEFEFC383038787CFFFFAF +:1013B00000000000000000000000000000000080AD +:1013C000000000000000000000000000033F3F1F7D +:1013D000000000000000000000000000000080800D +:1013E0001F0F0F07030000000000000000000000B6 +:1013F000EEFFFFFFFFFE3C00000000000000003C8D +:1014000000000000000000000000000004060707C4 +:10141000000000000000000000000000000000804C +:10142000FFFFFF0F070200000000000000000000A7 +:10143000C0C080800000000000000000000000002C +:101440003F1F00000000000000000000000000003E +:10145000000000000000000000000000000000008C +:101460000000001C1F1F0F070F0F1F3F3F1F0F0320 +:101470000000000000C0F0F0E0808080C0E0F0F8E4 +:101480000000000000000000000000000CFCFE7ED8 +:10149000000000000000000000000000000000004C +:1014A0007F3F3F1F0F03000000000000000000000E +:1014B000B8FCFCFCFCF8F00000000000000000009C +:1014C00000000000000000000000000010181C1EBA +:1014D000000000000000000000000000000000000C +:1014E0000FFFFEFE1C0800000000000000000000CE +:1014F00000000000000000000000000000000000EC +:101500001E1F03000000000000000000000000009B +:1015100000E0E060000000000000000000000000AB +:1015200000000020383C1E1F3F3D7878FCFE7F3FC6 +:101530000000000000001C1F0F03030303070787C0 +:10154000070F0F0100000000000000000000000075 +:1015500080FFFFFF0000000000000000000000000E +:10156000000000040E0F07070F0E1E1E3F3F1F0F47 +:10157000000000000000E3E7E30101010183C3E391 +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A000000000000010F0F0E0C0C0C0F0F8FCFE49 +:1015B000000000000000000000000000000000002B +:1015C000000080C0E0E0E0C000000010181C9CF8A3 +:1015D000000000000000000000000000000000000B +:1015E000F8F0000000000000000000000000181FDC +:1015F000000000000000000000000000000060E0AB +:1016000000000000000000070000000000000000D3 +:1016100000000000000000E00000000000000000EA +:101620000000000010383E1F1F3D78F8F8FC7E1FB8 +:101630000000000000000083C180000101030303DB +:10164000000080808080C0C0F8FFFFFFFEFE7E3C6F +:10165000000000000000000000000000000000008A +:101660000C0000000000000000000000000000006E +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:1016900000000000000000001F000000000000002B +:1016A000000000000307070303070F1E3E3F1F0F44 +:1016B000000000000080C0E0F0F02000000080E0AA +:1016C000000000000000000080000000000000009A +:1016D000000000000000000000000000000000000A +:1016E0000000000000C3FFFE7C3838387C7EFFFF1E +:1016F000000000000000000000000000000000806A +:1017000001070F1F1F3F3F3D30391D1E0C071F3FB4 +:1017100000088890D0F0FBFCF8F0F86422201090CC +:101720003F7F7EF8F0F8F8F8FCFC7CFEEF03010048 +:10173000000000000000000000000000C0F8F838C1 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:101760000000000000063F3F1F1E1C1D1F3F3F3FA3 +:1017700000000000000080F0F0F0E0E0F0F8FCFE77 +:10178000010303070F0F1F1F1F3F3E3E7C7CFCFE23 +:10179000E0E0F0F0E0E080800000000000000000E9 +:1017A0004C000000000000000000000000000000ED +:1017B0000000000000000000000000000000000029 +:1017C000381F3F0F00000000000000000000000074 +:1017D0000000F0F0F0300000000000000000000009 +:1017E00000000000000000003F3F3F07070F0F0F01 +:1017F00000000000000000F0F0F0A0C0E0F0E0E029 +:101800000000000000000000000000000103070FBE +:101810000000000000000000000040FCFCFCFAE2B8 +:101820001F1F3F3F3E7E7C7C3D0101000000000009 +:10183000C3970F0703070709F0FCFF3F07010000EC +:101840000000000000000000000000000000000098 +:101850000000000000000000000000000000000088 +:1018600020204040C0ECF0E0C0E0908880C0C0C0C4 +:101870000000000000000000000000000000000068 +:101880000000000000000000000000000000000058 +:101890000000000000040000000000000000000044 +:1018A0000000000000000000717F3F7FF9F3FFFFA0 +:1018B0000000000000000000F0F8F8F8E0F0F8FC8C +:1018C000070F1F3F7F7CF8F8F8FCFCFC7EFEFC4015 +:1018D00080C0C0C080000000000000000001071FA1 +:1018E00000000000000000000000000000000000F8 +:1018F000F8E0000000000000000000000000000010 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:1019200000000000000000000000000000000000B7 +:101930000000000000000000000000000107070296 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000107073278F0F0F8BE3F3F1E1874 +:101970000020F1E3CFFEFC7C78300000C080000046 +:101980000000000000000000001C1E3E3E3E7E7C69 +:101990000F1F3F7F1E0C0000000000000000000130 +:1019A000F8F8F8FC7C7E7F3F3F7E3C18000000008A +:1019B0000101030307070E8E040000000000000071 +:1019C0000000000000000000000000000000000017 +:1019D0000000000000000000000000000000000007 +:1019E0000000000000081C1E1F3F7F7EFE0C080840 +:1019F0000000000000000000008000000000000067 +:101A00000000000000000000010307060E0C0C0897 +:101A10000000000000000000008000000000000046 +:101A200008080000000000000000000000000000A6 +:101A300000000000000000000000000000000000A6 +:101A40000000000000000307070F0F1F1D0C00001F +:101A500000000000000000808083FFFEFCF8F060C2 +:101A600000000000000303071F7F3F1F0901000063 +:101A700000000000000000800202FEFCF8F0E060C0 +:101A80000000000000000000000000000000000650 +:101A90000000000000000000000000000000000046 +:101AA0000F3F7D7FFFFFFD1F070301002630180059 +:101AB00080C0C0C0808C9CDFFFFFC280000000009F +:101AC000000000000000000000000000000E1F1BCE +:101AD00000000000000000000000000000000030D6 +:101AE0007F7FFAFFFF7E0C0E07000C0E0C04000037 +:101AF0007074640C080070DCF67E783830000000EA +:101B000000000000000000000000000000000001D4 +:101B10000000000000000000000000000000004085 +:101B20003B7BDEFC767FFFFEFC7931000003030285 +:101B300060662F9D97FE7F3F1E9E0C0000000000F8 +:101B40008080000000000000000000000080808015 +:101B50000000000000000000000000000000000085 +:101B6000C0C0C0C0C0C0C0C0C0C0000000000000F5 +:101B70000000000000000000000000000000000065 +:101B8000F8F0F0E000800080FFFFFFFFFFFFFFCFD5 +:101B9000000000000000000080C0E0E0E0E0E0C0E5 +:101BA000070303030303010100000101010000001A +:101BB000808080C0C0C0C0C0C0C2C3E1F0F838009F +:101BC00000000000000000000F0D1D193070F0FC37 +:101BD000000000000000000080C0D0F800000000FD +:101BE000FC7C3C3C7C7CFCFCFCFCFC7C3C00000069 +:101BF00000000000000000000000000000000000E5 +:101C000000000103070E041010180838FC00000043 +:101C10000000E0F078181808000000000000000044 +:101C200040E070787E7F3F1F0F0701000038F8E02A +:101C3000000000000080C0E0C08080800000000044 +:101C40000000000001030307060607070303010065 +:101C5000000000C0E080000000000000808000E084 +:101C600000000000000000001F0100000000011F34 +:101C7000000000000000000000F038183870C000BC +:101C8000000000000000000001070C1C3060000391 +:101C90000000000000000000E0F83C1C0C18F08080 +:101CA0000000000000000000071F38706060201076 +:101CB0000000000000000000C0F0381C0C0C0810F0 +:101CC0000000000001030A1F3D7F7F33000C60709D +:101CD00000000000C0ECDCDFFFFFC280000000005D +:101CE000000000000103030E1E357D787B73320077 +:101CF00000000000406060B8BCD6DF4F0F870300D3 +:101D000000070C181030303030180C0400000000B0 +:101D10000080000000000000000000000000000043 +:101D200000000000010101010101000000000000AD +:101D30000070F8DC8C0602020200000000000000C7 +:101D400000C0E0F8F8FCFEFFFFFBF1F1A1ECE0B011 +:101D50000000000000000080E0E0F0F0F0F0F07023 +:101D600000000003070F0D0A040000000000000F30 +:101D7000000000C0E0E0F0F0F0F0B0202000003003 +:101D80000000000000000001000000000000000052 +:101D9000000000000000008060351F060000000009 +:101DA0001F1F3E3E3E3F3F7FFFDF0F0F0F0F1F3FC6 +:101DB000F0000040E0F0F4F6E6628387E3E3C282DD +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000002020202083 +:101DE00000000000000000000000E0F8000000001B +:101DF00000000000303C1C5C2E1E3EFC3C7CF88049 +:101E0000314A0A0A12224279000000000000000054 +:101E10008C5252525252528C0000000000000000BE +:101E2000314A4A120A0A4A3100000000000000004C +:101E30008C5252525252528C00000000000000009E +:101E400020214949497D09080000000000000000E8 +:101E5000C6292929292929C6000000000000000000 +:101E6000794242720A0A0A71000000000000000074 +:101E70008C5252525252528C00000000000000005E +:101E8000192222427A4A4A3900000000000000006C +:101E90008C5252525252528C00000000000000003E +:101EA000314A4A324A4A4A3100000000000000002C +:101EB0008C5252525252528C00000000000000001E +:101EC000314A4A4A3A0A126100000000000000004C +:101ED0008C5252525252528C0000000000000000FE +:101EE000314A4A4A4A4A4A310000000000000000D4 +:101EF0008C5252525252528C0000000000000000DE +:101F0000081909090909091C000000000000000067 +:101F1000C6292929292929C600000000000000003F +:101F200000000000000000070F010000000000009A +:101F30000000000000000000E0E0000000000000E1 +:101F40000C0C09090F0F0F0F0F0F0F1F00000000DF +:101F5000C0E0E0F0F0E0C0C0808080C00000000081 +:101F600020206060E0E0E0000000000000000000D1 +:101F70000000000000000000000000000000000061 +:101F8000021E1E060000000000000000000000000D +:101F90000000000000000000000000000000000041 +:101FA0000000000000080404000105070502060700 +:101FB0000000000000000040E0A0F0E0E0C0008071 +:101FC0001F1E1C1C5D7DFFFFDFDFDF3F00000000E8 +:101FD0000080C0C0C0C0C0C0C0E0E0700000000011 +:101FE00000000000000000000202060600000000E1 +:101FF00000000040203010F0E080000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4m-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4m-.bin.hex new file mode 100644 index 00000000..b9e915b4 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4m-.bin.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000002030103E7 +:1000100000000000000000000040E0E080E000E0A0 +:10002000FFFFFFFFFFFFFFFF7F3F1F0F03010000E8 +:10003000800080C0C08000808080B8FCFEFFFF7E12 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:10006000FFFFFFFFFF7F7F1F1F0F0703010000003F +:10007000F8F8F0F8F8F0F0E0F0F0F0FFFF7F3F1F45 +:1000800000000020707C7E3F7F3F3F3F1F1F0F0F0F +:100090000000000004060707FEFCE8E0E0E0E0E006 +:1000A000000000000000383F7F7FFF7F3F1D0B03F3 +:1000B00000000000000000C0C0E0F0F0F8FCFEFF0F +:1000C0000001030307070F0F1F1F0F070F0F1F3F2D +:1000D000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E0BC +:1000E000F8FCFEFFFFFFFFFFFFFFFFFFFFC0E00088 +:1000F00000000080F0F8F8F8F8F8F8E000000000E0 +:10010000000000001FFFFFFFFFFFDE0000000000F7 +:10011000000000003FFFFFFFFE3E1C00000000004B +:100120000000000000000000010101010103070FB1 +:100130000404000000000000E0E0F0F0F0F0F0F057 +:100140000000000060F8FFFFFFFFFFFF6F0F0703D5 +:1001500000004040000080C0C0E0F0F8FCFEFEFF60 +:100160000000000000F3FFFFFFFFDFFFFF7F0C0038 +:100170000000000000F0F1FFFFFFFFFF8100000022 +:100180000307070F1E3E7EFCFCFCF8F8F8F87838F1 +:10019000000000000000000000000000000000005F +:1001A0000000000000000000003E3331180800008D +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:10020000000000000001000703070F0707030101BA +:10021000000000000080C0E0F0E0E0E0F0E0E080FE +:10022000000003070E081C1818303060707830305A +:10023000000000000000000000000000060F0E0695 +:100240000000010303030206060202030301010189 +:100250000000000000000000000000000000C0E0FE +:10026000000000010303010101000040F0F0600004 +:1002700000000000000000008080E07C3E1E1C0C9E +:100280000000000000081E0F010000000000000038 +:10029000000000000C091FBEFC4000000000000030 +:1002A0000000000107070E0C181C121008040007BC +:1002B000000000C0E0F0301000C0000000000000AE +:1002C000000000000000000000808080C0000000EE +:1002D000000000000000000000000000000000001E +:1002E0000000000181A1F9FFFFFF000000000000F5 +:1002F00018133FFEFEEC80808080000000000000AC +:1003000000000000000000010103030303070707CA +:100310003878FEFEFEFEFEFEFEFEFEFCF8FCFCF85B +:100320000000000003070F0F3EBFFFF3F260600004 +:10033000031F7FFFFFF7E180101F7F7FFF1F00007B +:10034000000000000000000000E0E060300000005D +:10035000000000000000000000000000000000009D +:1003600000000001010323777F3F3F7FE3E0E0408F +:100370003C71F8FCFEFFFFFFFFFFF7E3C000000049 +:10038000000000000000000000103C3474505800D1 +:10039000000000000000000000000000000000005D +:1003A0000000000000000103010404060202070F20 +:1003B0000000000078FCDE860682501800000080F5 +:1003C000202111121ABE7F3F1F3E3F4C84040202BF +:1003D000000000000000608000000000000000003D +:1003E00000000103070E041211180838FCFC00007D +:1003F0000000E0F0781818486000000000000000DD +:100400000001030307070F0F1F1F0F070F0F0F0F29 +:10041000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E078 +:100420001F3F3F7F7F7FFFFFFFFFFFFFFFFFFFFFBC +:10043000F0F8F8FCFCFEFEFEFEFEFEFEFCFCF8F80A +:100440000000000000000000C0C0C0C0404000002C +:10045000000000000000000000000000000000009C +:100460000000181C3F3F0F0F0703010301010100AB +:10047000001010000080C0E0E0F0F8FCFCFEFEFE82 +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000707070F0F1F1F3F3F5D +:1004B0000000000000000000808080E0F0F8FCFEFA +:1004C0007FFF7F7F3F1F1B070F0F0F1F1F0F0707A8 +:1004D000000000808080C0C0C0C0E0E0E0E0E0E05C +:1004E0000F0F1F1F0F0F0F07030F0F1F1F1F3F3F80 +:1004F000E0E0E0E0E0E0E0E0E00000C0F0F8FCFE7A +:100500000001030307070F0F1F1F0F070F0F0F0F28 +:10051000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E077 +:100520001F3F3F7F7F7F7FFFFFFFFFFFFFFF7FFFBB +:10053000F0E0F0F8F8FCFCFCFEFEFEFCFCF8F8F83D +:100540000000000000000000FFFFFFFF7E7F7F3FF4 +:100550000000000000000000E0F0F0F8781000E07B +:100560001F1F0F0F07030307070703030100010005 +:10057000F0F0F8F8F8FCFCFEFEFCFCFCFCFCFCFCDB +:100580000000000000000000000000000103030163 +:10059000FEFEFE7E3E5EFEFE7EFEFCFCFCFCFCFCE7 +:1005A000010301010303617B3B331307070F0F0FA7 +:1005B000FCF8F8F8F8F8F8F8C0C0C0F0F8FCFEFF56 +:1005C0000001030307070F0F1F1F0F070F0F0F0F68 +:1005D000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E0B7 +:1005E0001F3F3F7F7F7F7FFFFFFFFFFFFFFFFF7FFB +:1005F000F0F8F8F8FCFEFEFEFEFEFEFEFCFCFCF849 +:1006000000000000000000000000000000000000EA +:100610000103060F0F070F0F1F1F1F3F3F7F7F3F75 +:10062000000101000000030307070F0F1F1F3F3FDA +:100630007FFFFEFEFEFEFCDCC080C0E0F0F8FCFEAA +:10064000F0F0F0F0F0F0F0E0E0E0C0C080808080FA +:10065000000000000000000000000000000000009A +:10066000000000000000000007070F0F1F1F3F3FA2 +:100670000000000000000000808080C0E0F0FCFE70 +:100680000001030307070F0F1F1F0F070F0F1F3F67 +:10069000E0F0F8FCFCFCFCF8FCFCFCF8F8F8F8E0F6 +:1006A0007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:1006B000E0C0C0E0E0F0F0F8F8FEFFFFFFFFFFFE53 +:1006C0000000040C1C3C3C7C7CFCFCFC7C3C1C3C8A +:1006D000000000000000000000000000000000001A +:1006E0003F7F01000000000000000000000000004B +:1006F000FEFCF87C18000000000000000000000074 +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:100730000000000000303C7C7C3C0C00000000000D +:100740007F1F0F0F070503030301030303070707B9 +:10075000E0F0F0F0F8F8F878F8F8F8F8F8FCFCFCBD +:10076000030303070301010F0F1F1F1F3F3F7F7F7D +:10077000FCFCF8F8F8F8E080000080C0F0F8FCFC21 +:1007800000000103070F3F3F7FFFFF7F3F1F0F0761 +:100790003F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:1007A0000100000000000000000000000000000048 +:1007B000F83F0701000000000000000000000000FA +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E00000000000000000000000000101030707F6 +:1007F000000000000000000078F8F8FCFEFFFFFF9A +:100800000F070300000000000000000001010100CC +:10081000FCFCFEFE7E3E5C7CFEFEFEFEFEFEFEFE60 +:100820000000000000000000030707070F0F9FDF14 +:10083000FE7E3E3F7F3F1E1EC0C0C0E0F8FCFEFFB4 +:1008400000000101030307070F0F07030707070F46 +:1008500070F8FCFEFEFEFEFCFEFEFEFCFCFCFCF066 +:100860001F3F3F7FFFFFFFFFFFFFFFFFFFFFFFFF78 +:10087000F0F0F8F8F8FCFCFCFCFEFEFCFCFCF86078 +:10088000000000000008383878F8F8F8F8F8F87830 +:100890000000000000000000000000000000000058 +:1008A0007F3F3F3F3E1E1E1F0F0F0F0F0F07000021 +:1008B000FFFFFFFF7F0E0000C0C0C0C0C08000006F +:1008C000000000000000000000000000081C7CFE8A +:1008D00000000000000000000103070F2F377F7F9A +:1008E000FEFEFC7C3C3C3C181C1C0C0C0400000074 +:1008F000FFFEFEF8F0606000000000000000000055 +:10090000FEFE7F7FFF7F3F7FBFFF7FFEFEF8E0E0C0 +:1009100000000000000080808080000000000000D7 +:1009200080000000000000000F0F1F1F1F1F3F7FEF +:10093000000000000000000080008080E0F0F8FC73 +:100940000000000001010303070703010303070779 +:10095000387CFEFFFFFFFFFEFFFFFFFEFEFEFEFCFA +:100960000F0F3FFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:10097000FCF8F8F8FCFCFCFEFCFCFCF8F8F0E0806D +:10098000000000000C1C3C7CFCFCFCFCFCFC7C7CA7 +:100990000000000000000000000000000000000057 +:1009A0007F7F3F3E1E1E1F0F0F0F07070303000030 +:1009B000F3FFFF1E020080C0E0E0E0C08000000006 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000C0F0F0F070300000000C4 +:1009F00000000000000000808000000000000000F7 +:100A0000000000000000100C0707070F1F1F1F1F2A +:100A1000000000000000031FFFFFFFFFFEEFFEF8D5 +:100A20000E000000000000000000000000000000B8 +:100A300000000000000000000000000000000000B6 +:100A400000000001010307070707070F0F1F1F7FA3 +:100A5000387CFEFEFFFFFFFFFEFCFC3C1CC8E0E014 +:100A60007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD18 +:100A7000C0E0C0C0E0F0F8F8F8FCF8F0F0E000C02A +:100A8000010303070F0F1F1F1F3F3F7F7F7FFFFFE4 +:100A90000000000000000000000000000000FFFF58 +:100AA000FCF8FC7F7F7F3F3F1F1F0F0F0707070FDB +:100AB0007F1F0100F0FFFFFFFDFEFEFEFFFFFFFFB7 +:100AC0000000000000000000000101010000000023 +:100AD0000000000000000000000000000000000016 +:100AE0000101010101010001010101FF3F1F1F0F71 +:100AF00000C0C0E0E0F8F87C7EBF9FCFCFE7E7F70B +:100B000007070F070300010303070703030301039C +:100B1000F3F2F1F3FBFBF9F9F8F8F8F8F8F8FCFC5C +:100B2000030103030703010101010103030303039D +:100B3000FCFCFCFCFCF8E0F0F0F8F8FCFEFFFEE04A +:100B400000008080C0E0E0E0F0F0F8F8FCFCFEFE81 +:100B50000000000000000000000000000000000095 +:100B6000FF7F3F7F7F3E1F0F1F0F0707070707030A +:100B70000000808000000080F3FFFEFCF0E08000B9 +:100B8000E0F0F8F8FCFCFCFEFEFEFEFFFB8307FF36 +:100B9000000000000000000000000080E0FCFFFFFB +:100BA000FFFFEFFFEFF7F7F7F7F7F3E0E1C1CB9BBC +:100BB000FFFFFFFFFFFFFFFFEFE761C0C0C0E0E006 +:100BC000C0DF7FFFFFFCF0E040030F0F0F1F1FCFC0 +:100BD00000F8F80000070F3FFFFFCFF7FBF8FCFE1F +:100BE000EF2F030380808000000000000000000061 +:100BF000FFFFFFFFFF7F1F0F030703000000000040 +:100C000060E0C0C040800001000000000002070753 +:100C10000E0E0F0500000000808080406070F8F824 +:100C20000F0E0E1E1C1C181818183030100800006B +:100C3000F8F0707070707070303030303018000024 +:100C4000030100000000000000000000000001039C +:100C500080B0F8684000000000808080C0C0C08084 +:100C6000030303070707070F0F070303030300002E +:100C7000C0C0C08080808080000000000080000034 +:100C800060E0E0A040000000000001010103070750 +:100C90000C07030301000000000000808080A0F02A +:100CA0000F0F0E1E1E1C1C181838303010180000B4 +:100CB000F0F0F070707070707030303030380000CC +:100CC00000000000000000000000000001070F3FCE +:100CD000000000000C5ED87E7F7C7CFCF0F0F0FC15 +:100CE0007FFFFFFFFFE3E1E1E3F7C783070C1F1F6F +:100CF000FCFCFCFCFCFCF8F8F8F0E0E0E000C0E0F4 +:100D000040C0C0C040404000000000000000070795 +:100D10000000000000000000000000000000F8F8E3 +:100D200007030100000000000000000000000000B8 +:100D3000F8F8F0F8B8387838380000000000000003 +:100D4000030303010101070707070F0F0F0F0F0729 +:100D5000C0C0E0E0E0C0C0C0C0C0C0C08080808033 +:100D60000707070707030301010000000000000058 +:100D700080808080808080C0C06000000000000013 +:100D80000000000000000000000000000001000062 +:100D9000000000000000000030080418E000C0203F +:100DA0000000000007182020201C030000000000A5 +:100DB000180818608000000030CE0200000000001B +:100DC0000000000000000000000000000000000023 +:100DD0000000000000000000000000000000000013 +:100DE00000000000000001010303030300000000F5 +:100DF00000000000000080E0FCFFFFFF3F0000005B +:100E000000000000000000000000000000000000E2 +:100E100000000000000000000000000000000000D2 +:100E2000000000000000000010F0F0F0E000000002 +:100E300000000000000000000000000000000000B2 +:100E400000000000000000000000000000000000A2 +:100E50000000000000000000000000000000000092 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E80000000000000000000000000000000000062 +:100E90000000000000000000101008080808080901 +:100EA0000000000000000000000000000000000042 +:100EB0000F3F3E3E7E7E76766666E6C647000000C1 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000001000000000000000001 +:100EF00000000000000080008000002000000000D2 +:100F000000000000000000000000000000000000E1 +:100F1000000000000000000000000000667E77F383 +:100F2000000000000000000000011F0000000000A1 +:100F3000F3FB93871F3F3F3FFEFCFCF001071FFFC1 +:100F40003E3E3E3E3C7C7C787E3C3E3E3E1F1F1F2C +:100F50000000000000000000008080404040404051 +:100F60001F1F3F3E3E3E3E3E1E00000011397FFFE8 +:100F7000404040404040C08000004040C0C0C000F1 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:10100000000000000000000000000040C0E0F0F020 +:1010100000000000000000000000000000000000D0 +:10102000F8FCFEFFFFFF7E1E1F0F0F0F07030101DD +:101030000000008083071E3EFCFCF8F8F0F0C0C002 +:10104000000000000000000000000000000707078B +:1010500000000000000000000000000000C0E0E010 +:1010600007010000000000000000000070300000D8 +:10107000F0F8F87C7C3C3C3E3E3E3E3E38080000AA +:1010800000000000000000000000000000181C1E0E +:101090000000000000000000000000000000000050 +:1010A0000F07070707030707070F0F070F020000C7 +:1010B000E0C080C0C0C0C0C08080808080000000D0 +:1010C000000000000000000000000000080F0F07F3 +:1010D0000000000000000000000000000080C0C010 +:1010E0000707070F0F0F1F1F3F7E7E7C20000000A9 +:1010F000C0C0C0C08080800000000000180C00004C +:10110000000000000000283E1E34783C7E3C1C0895 +:1011100000000000000000000000000000000000CF +:101120000000000606060404040703030100000093 +:1011300000000000000000000000008080E0F0E0FF +:101140000000000000000000000008080C0C0C0764 +:10115000000000000000000000000000000000008F +:1011600003010101000000010101010E060301005D +:10117000E0E0E0E0F0F0F0F0F0F0F06030000000CF +:101180000000000000000000000000000007010750 +:10119000000000000000000000000000000080C00F +:1011A00001030010387CFE7E7CFD7F3E1C000000A9 +:1011B00080E060303010103060200000000000003F +:1011C0000000000000000000000001030101000019 +:1011D000000000000000000000000080000000008F +:1011E0000000000F1F3FFFFF7970703010000000FB +:1011F00000000000E0E0E0C0C000000000000000CF +:101200000000000000000000000000000000303E70 +:1012100000000000000000000000000000000000CE +:101220003F1F1F0F0F070F0F1F3F7F7F3E30000034 +:1012300000008080C0C0C08080000000000000006E +:101240000000000000000000030107030703030182 +:1012500000000000000000A0F0F0F0F0E0F080C01E +:1012600000001C1C30E0C0C0606020383C383800F2 +:10127000000000000000000000000000000000006E +:101280000000000000000000000000000007070F41 +:1012900000000000000000000000000000000080CE +:1012A00007070707020607070702040E00000000F1 +:1012B00080808080C0C0404000000000000000002E +:1012C000000000000000107C3C7CFC7EFC787E3836 +:1012D0000000000004151F0F0E0C081818303020F5 +:1012E00010030000000000000000000000000000EB +:1012F000E0C00000000000000000002020200000EE +:10130000000000000000000000000000000000409D +:1013100000000000000000000000000000000000CD +:101320007CFEFFFFFFCF070F0F0F0F0F0C00000019 +:1013300000000000081CB8808080808080000000D1 +:1013400000008080C0C0C08080C08000808080C0DD +:10135000000000000000000000000000000000008D +:101360008307070F1D0900000000000000000000B7 +:101370000060F0F0F0E0000000000000000000005D +:10138000000000000000A02030707878787C7EFE9D +:10139000000000000000000000000000000000004D +:1013A0007E3C7C7CFCF80000003030180800000017 +:1013B000000000000000000000000000000000002D +:1013C0000000060F0F1F1F0F06070707073F3F1EEE +:1013D000000000008080800000000000000080000D +:1013E0001E0F0F07030000000000000000000000B7 +:1013F0000180D9FFFFFF3F0F0F0F0F1F1F1F1F039C +:1014000080C0C0E0E0F0E0E0C0C0C0A0E0F0E0C01C +:1014100000000000000000000000000000000000CC +:10142000000101C3C7E2E0E0F0F0F0F0E0D0F0E04E +:10143000C0D8FCFC7C7838000000000000000000F0 +:1014400000000F0F0F0F0303010101000000030351 +:10145000000000000000000000000000000000008C +:10146000070F0F1B18180C0109091F3D3818080039 +:10147000E0E0C0C08000000080808080C0000000EC +:101480000000183C3E7E7E3C181C1C1C1CFCFE7898 +:10149000000000000000000000000000000000004C +:1014A000783E3F1E0F030000000000000000000017 +:1014B000060357FFFFFFFF3F3F3F3F3F1F3F7F7F39 +:1014C0000000808080C0C080800000008080C080DC +:1014D000000000000000000000000000000000000C +:1014E0000307070F1D8980C0E0E0F0E0F0F07868A6 +:1014F0000060F0F0F0E0E0000000000000000000FC +:101500000100040707070703030303030103070799 +:10151000E0000080E0E0E0E0E0E0E0E0E0E0E0E0EB +:101520000F1F1F1F070301183C3C38180000000064 +:10153000EEE6CFCFCF9E82800003030100000000C3 +:10154000000000020301000101010101000101018D +:1015500070000000F0F1F9F9F3F3FBF3F3E7A7C72C +:1015600001030703010000040F0E0606030000003C +:10157000E3C1C183830300000001010000000000FB +:1015800000000000000000008080C0E0E0F0F0F00B +:10159000000000000000000000000000000000004B +:1015A000F0E0E0E0F0E0000000C0C04030000000EB +:1015B000000000000000000000000000000000002B +:1015C00080C0C0C0E0C0000080C08040C00C0D0FD3 +:1015D000000000000000000000000000000080C0CB +:1015E0000F0783C1F0FCFE7F1E0D070F0E0E0600D5 +:1015F000C0C0C0800000000000000000000000002B +:1016000000000000000000080F1F1F0F0F0F07034E +:101610000000000000000000E0E0E0E0E0E0F0F0AA +:10162000030301070F070100181C18080800000039 +:10163000F0F0F8F8F0E0E0400000000000000000EA +:1016400000008000000000008043E3F7FEFE7F3FC3 +:10165000000000000000000000000000000060C06A +:101660000D0000000000000000000000000000006D +:10167000F0FCE0600000000000000000000000003E +:101680000000000000000000070707030100000041 +:10169000000000000000000080C3E3F8FCFC7E3C7A +:1016A000000000010000000203070706020000001E +:1016B0007A7EFCF8F060000000800000000000006E +:1016C000000000000000000000C0E0F0F87C7C7E1C +:1016D000000000000000000000000000000000000A +:1016E0007E7E3F7F7F3C0000003838180C000000F1 +:1016F00000000000000000000000000000000000EA +:1017000001010000000503030F07030307041E3E49 +:1017100000088890D0F0FBFCF8F0F8E4E2E0D0504C +:101720003C7871E7CFE7E7F7E7FF7FF9E0000A0BC6 +:10173000C0C0E0E0E0C080C080C0E08000000000E9 +:1017400000000000000F070707070707070703034C +:1017500000000000008080C0C0E080C0E0E0F0F049 +:101760000307070F0F0938381E1E1C1D1E3E3E3E84 +:10177000E0E0E0F0E0C040000080E0E0F060000069 +:10178000010303070F0F1F1E1A3C3D397373F8FE48 +:10179000FCF8E8CCDE1A7078FCE0D8F8F0F800002D +:1017A0007C7078FCA4B40000000000000000000081 +:1017B0000000000000000000000000000000000029 +:1017C000070000101F1F1F0F0F0F0707070707074E +:1017D000C0C0000000000080C0C0C0E0E0E0F0E059 +:1017E0000307070F0F1F1F1F3030300101080C0CBB +:1017F000E0E0C0C0C0008000000000C0E0C0000009 +:101800000000000000000000000000000103070FBE +:101810000000000000000000000040FFFFE7C71FBD +:101820001E1C3C383870707C3C3078FCA4A4B0009E +:101830003F7FFFFFFFFFFFFF1F030040F8FEFE7F1B +:101840000000000000000000000000000000008018 +:101850000000000000000000000000000000000088 +:10186000A0A0C0C0C0ECF0E0C0E090888040404044 +:101870000000000000000000000000000000000068 +:101880000000000000000000030303030101010148 +:101890000000000000000000F8F8F8FCFCFEEEDCA0 +:1018A0000103070F0F1F1F3F7E7818000191FCFCFA +:1018B000FCFCFCF8F8F0F0E0000000C0E0C0000024 +:1018C000060F1F3E7C6BF3F1E1F1F9F87EFEFC7828 +:1018D000783CBEBC7AFFFCFAFFFFFFFFFEFE78609B +:1018E0003C74E4A040000000000000000000000084 +:1018F000061F3F3F1F1F0F030000000000000000F5 +:1019000000000000000000000000000006070707BC +:10191000000000000000000000F0FE7F3F8FE3C1E8 +:1019200007070701000000000000000000000000A1 +:10193000F0F8F0FE5F1E1D0F0F0F070302000000FE +:10194000000000000000000080C0E0F0F8FCFF7F15 +:101950000000000000000000000000000000000087 +:101960007F3F1F0E800000000010383C1800000070 +:1019700080C0000000F8F02000000000000000001F +:1019800000000000000101031F1B19393D3D797360 +:101990000F1A3C7C1880C0E0C0E0F4F6EC9EFEFE1E +:1019A000F7F3E1D170787B3F3F7F3F1F03030300D4 +:1019B000FEFEFCFC7878318000E0C0E0F02080C0C2 +:1019C0000000000000000000000000000000010115 +:1019D0000000000000000000000000000000000007 +:1019E00005070703030F1F1E1F3F7F68E00000006D +:1019F00000A0E0C0800000000080000000000000A7 +:101A000000000000000000000000000101030000D1 +:101A10000000000103071F3F7F7EFEFEFEFC10005A +:101A200006070F0F0F0F0F0000000000000000005E +:101A300022F7FFFFFFFD8000000000000000000013 +:101A4000C0F0F8FCFC3EFCF878713303010000C0E4 +:101A500000000000000000000080F0E0E040000016 +:101A600080E0E8F8F0F8F0702001030301000000C6 +:101A700000000000000000000000E0C08000000046 +:101A80000000000000000000000000000000000056 +:101A9000000000000000000000000000000030789E +:101AA000000000103810000060F1FF7F3E7C78706D +:101AB00078303031624C5CDFFFFFC0A050508000B6 +:101AC0000000000000000000000000000000000016 +:101AD00000000000000000000000000000100830BE +:101AE000000020702001033F7FFEEECF0D050100B6 +:101AF000787E7D7CD8C080000020100080808080AF +:101B000000000000000000000000000000020101D1 +:101B10000000000000000000000000000020404025 +:101B200003030301010020712101070F1F1B0302A2 +:101B3000E0E0E0E0C08088DCC8C0C0E0F0B01000A9 +:101B40000000C0E0E0C08000000000000080808055 +:101B50000000000000000000000000000000000085 +:101B6000C0C0C0C0C0C0C0C0C0C0808080E0F0F8AD +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000003CCE060342 +:101B9000000000000000000000000000202060E0C5 +:101BA0000307070303030101000001000000000018 +:101BB000E0F0F0F0F0F8F8D8DCCCC0C06000000035 +:101BC00000000000000000000C0E1E1E3C7CFCF813 +:101BD0000000000000000000602020000000000065 +:101BE000F0400000000000000000000000000000C5 +:101BF00000000000000000000000000000000000E5 +:101C000000000103070E041211180838FC00000040 +:101C10000000E0F0781818486000000000000000A4 +:101C200040E070783E0F1B07030181800000000038 +:101C3000000000000080C0F0F8F4DCC8486000003C +:101C40000000000001030307060607070303010065 +:101C5000000000C0E080103030000060808000E0B4 +:101C600000000000000000001F0701000001071F26 +:101C7000000000000000000000F0F83878F0C0001C +:101C8000000000000000000001070F1C306000038E +:101C90000000000000000000E0F8FC3C1C78F08030 +:101CA0000000000000000000071F3F787060201057 +:101CB0000000000000000000C0F0F83C1C0C081000 +:101CC00000000000000000000818030F7EFC787080 +:101CD00000000001020C1C5F7FFFC0A0505080007C +:101CE0000000040201030303010103332303020084 +:101CF0000000102040E0E0E0C0C0C0C682800000CC +:101D000000070E1C18383838381C0E04000000007C +:101D10000080000000000000000000000000000043 +:101D200000000000010101010101000000000000AD +:101D30000070F8FCDC8E820202000000000000004F +:101D400000000000187C7EFEFCF8F0F4E0E0E0F219 +:101D50000000000000000000000000000000000083 +:101D60000000000000000000000200000000000F62 +:101D70000000000000000000000000000000003033 +:101D80000000000000000001000000000000000052 +:101D9000000000000101008060351F060000000007 +:101DA0001F3F7FFFFFFEDE9F9F9F0F0F0700183E24 +:101DB000F0F8F8B81C0C0C060682C3E78303024255 +:101DC0000000000000000000000000000000000013 +:101DD0000000000000000000000000002020202083 +:101DE00000000000000000000000003800000000BB +:101DF0000000000000000000800000000000000063 +:101E0000314A0A0A12224279000000000000000054 +:101E10008C5252525252528C0000000000000000BE +:101E2000314A4A120A0A4A3100000000000000004C +:101E30008C5252525252528C00000000000000009E +:101E400020214949497D09080000000000000000E8 +:101E5000C6292929292929C6000000000000000000 +:101E6000794242720A0A0A71000000000000000074 +:101E70008C5252525252528C00000000000000005E +:101E8000192222427A4A4A3900000000000000006C +:101E90008C5252525252528C00000000000000003E +:101EA000314A4A324A4A4A3100000000000000002C +:101EB0008C5252525252528C00000000000000001E +:101EC000314A4A4A3A0A126100000000000000004C +:101ED0008C5252525252528C0000000000000000FE +:101EE000314A4A4A4A4A4A310000000000000000D4 +:101EF0008C5252525252528C0000000000000000DE +:101F0000081909090909091C000000000000000067 +:101F1000C6292929292929C600000000000000003F +:101F200000000000000000070F010000000000009A +:101F30000000000000000000E0E0000000000000E1 +:101F4000030307070707070F0E0E07030000000033 +:101F500080C0C0C0808000000000000000000000C1 +:101F60000000000000021F7F7F7F3F1F0301000071 +:101F70000000181C1E1E0E06048080C0C0E0C0C0F9 +:101F8000000000000101000000000000000000004F +:101F90001E1E3E7EFCFCF0C00000020E3F1F0F061E +:101FA0000000000307173B7B73793D5727030300AD +:101FB00000000080E0E0F0F0E0A0F0E0A0C0000051 +:101FC000202123636363E1E1C1C0C0C000000000C1 +:101FD0000080C0C0C0C0C0C0C0E0E0700000000011 +:101FE0000000000000000000030B0E0600000000CF +:101FF00000000040203010F0E080000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4n-.bin.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4n-.bin.hex new file mode 100644 index 00000000..4b8f2dec --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/b-4n-.bin.hex @@ -0,0 +1,513 @@ +:10000000000000000000000000010B1B1A0F070F8A +:100010000000000000000000000080800080000060 +:10002000000000000101010303030707070707079A +:10003000000000C0E0E0E0E0E0C0C0C08080C0C0E0 +:10004000000404020203171F3F3F1F0F0D1000188A +:10005000000020204040C0ECF0E0C0E090888040EC +:100060000000000030247CF0FCF0D8C0000000004C +:100070000000000000000000000000000000000080 +:10008000000000000000000000000000030100006C +:1000900000000000000000000000000080000000E0 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C000000000000404040C0000040C1C1C1414A8 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:100100000000806070381808000001000000000046 +:1001100000000000000000000080C080000000001F +:10012000000000000000030207CFCFC5C0E0E0E000 +:100130000000000000000060E0C0C080000000007F +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000007072773F3E4 +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A0000000000000000000000000008080C0C0CF +:1001B000000000000000000000000000000000003F +:1001C000000206040C0C1C38797973F1E170000010 +:1001D0002878F8F87878F8F0F0F0E0E0E000000037 +:1001E0000000000000000003010101010100000007 +:1001F00000000040784C7478FCFCF8F0E06070700F +:10020000000000000000000000000000FF000000EF +:10021000000000000000000000000000E0000000FE +:100220000000000000000000010303030F0C0000A9 +:100230000000000000000063FEF8F0E0C0000000D5 +:1002400000000000C0E0E0F098CD67070300000068 +:1002500000000000000103036FFFFFFEF8D0000064 +:10026000000000000010381C0C0607070301000006 +:1002700000000000000000000040E0E0E0E4767EC6 +:100280000000000101010303030303030000000059 +:1002900000000180C0E0F4FEFFFFFFFFFF3F0F03FF +:1002A0007FFFFFFDD0000010F1F0E0E0E0C0C08073 +:1002B000F0F0F0F8B878F8F8F8F8F8F8786000009E +:1002C00000000000040E070301010100000000000F +:1002D0000000000000000090D8F8F8F8791D0F0F1A +:1002E0000000000000001F7FFFF8800000000000F9 +:1002F0000000001078F8FFFEBC10000000000000B5 +:10030000000000000FFCC000000000000000000022 +:1003100000000FFCC0000000000000000000000012 +:1003200000000000000000000000000000000000CD +:1003300000000202060C1C3C38383838181E190818 +:1003400000000000000000000107FFFFC7030100DC +:100350000000000000000000008080FFE0C00000FE +:10036000000000000000000000007FC0000000004E +:1003700000000000000000000000F000000000008D +:10038000000000181C1E3F3F3F3F3F3F0F0300008F +:10039000191F1F3F1F0440E1FFFFFEFEFEFCFC385B +:1003A0000000000000103071E3E1E0434703030167 +:1003B0001F1E5EFFF9F367E7E3F1FC3EFEFCF8FF6A +:1003C000000000000000000004DEFEFFBF0F04007C +:1003D0000000000000000000000000FF800000009E +:1003E000000000000000000000007FC000000000CE +:1003F000000000000000000000008000000000007D +:10040000040406060E0C0C070701010100000000A1 +:10041000000000000000000000008080C0C0C0009C +:100420000000000000000000000000163F090D055C +:100430000000000000000000000000008000C0C0BC +:100440003C3E3E1C1C0E02030000000000000000A9 +:1004500000000000000040E0F8FD7F1F0A000000DF +:100460000000000000000000000300000000000089 +:100470000000000000000000087D3F3F1400000065 +:10048000000000000000000001000000000000006B +:1004900000000000004040E0E0F0F0F63E3E1800B2 +:1004A000000000181C1E3F3F3F3F3F3F0F0300006E +:1004B0006F0F1F0F0F0440E0FFFFFEFEFEFCFC3835 +:1004C000FFFFFFFF3F170F1F1F1F0F0F0706000043 +:1004D000000000808080808080808080800000001C +:1004E000C0E0E0C8ECEE273731300000000000002B +:1004F000030F1F1F3FFEF8F0200000000000000067 +:10050000000001010000000107030F1F1F0F0F076C +:10051000604060E0C040006EFFFFFFFEF8F0F0E0DA +:1005200000000000000000000000000000000001CA +:100530000000000000000000000808080C0405048A +:1005400000001010D85C7C7C38303070E0E0E0C0F7 +:10055000000000000000000000000000000000009B +:100560000000000000000101030204000000000080 +:100570007F7F372743E3C1010102060E1F3F7FFF44 +:100580000002000008000000060702080002000048 +:1005900008040747C78F8F97630040E1C0943888ED +:1005A00000F2F8FCFEFEBEBD536DF7F7F3F090408D +:1005B00000100040000000100040604000100000EB +:1005C0001000800008000020000400C0E04818125D +:1005D0000080120602800402030363434548300092 +:1005E000004000100170C0B81D0088DC4EDCBC98D3 +:1005F0004100000008400200C0E0F07060E0C00070 +:10060000000000000000000000000000000006588C +:1006100000000000000000000000000FC0E81CF80F +:10062000000000000000000000000038E0425F0E03 +:10063000000000000000000000000000C0604080DA +:10064000377F7F3F3F1F0F071F3E7C787C7E3F1F19 +:100650000080C0C0C08080000000C060E0B0B4185E +:1006600000060F0F04040200000000030000000059 +:1006700000E0F0F8F8F8F0302060F070723E3F1FB4 +:1006800000000000000000000000000000227CD8F4 +:10069000000000000000000000000000000000005A +:1006A000070F1F3E3C78716367474F0F0F0F0F070F +:1006B000C0E0000078FCFCFCDC9C9C88C8C0C0C08A +:1006C0001C3E7F7FFFFFFF7F7F3F0F1F3F3F3F1F8E +:1006D00038FCFEFEFEFCF8FEFFFFFFF6F8FCFEFE17 +:1006E00000000000000000081076FF0D020000006E +:1006F00000000000000003163F7EFCDA8C000000C2 +:100700000000000000822DFFFD960A00000000009E +:10071000000000000000E09000801438000000009D +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:100740000100193F3F7F776363777F3E3C1E0F07B1 +:10075000C0E0F0F8980C9CFCF8F0F0783870E0C03D +:100760000000000000000000081C1E0F0F1E1C08E7 +:100770000000000000000000000000000000000079 +:10078000060F1F3F3970793F3F7F7F2703070F0612 +:1007900040E0E0C0E0FCFCFCFC9C0C98F8F0E04081 +:1007A0000000000000000000081C3E7F77220000CF +:1007B0000000000000000000000000000000000039 +:1007C000EDF9FFFFFFFFFFFEFEFEFE3F1F8CC0E1C5 +:1007D000C0E0F0F0F0F8F8FCF87870202030B0902D +:1007E0000000000000000102000000000000000105 +:1007F00000000000117DEC0000000000000000C0BF +:1008000007030301E1FEFEFFFFFFFFFFFFFBFBF914 +:10081000E0E0F0F8F8F06000008080C0C0C0E0E0E8 +:10082000F9F0F0F0E1C1C1C0C0C0C081000000001B +:1008300060E0F0F0F0F0F0F0F0F070C0C0400000C8 +:10084000030303010707070703010000000000007E +:10085000E0E0F0F0F0F8F8F0F8F8F8FCFCFCFC7CD4 +:100860000000000000010103030707010101030369 +:10087000FCFCFCF8F8F8F8F8F8F8F8E0E0F0F8FC20 +:10088000010101010101010000000000000101015E +:10089000000080C0C08000000000000000000000D8 +:1008A000010101010101010101010101010100003A +:1008B00080808080808080808080000000800000B8 +:1008C000000000000001030307070F0F0F070707D1 +:1008D00000000000F0F0F0F0E0C080008080808038 +:1008E00007030303030101010100000000000000F1 +:1008F00080C0C0C2CEFFFFFFFFFF3F0F0703030111 +:1009000000000000000000040404060707070707B2 +:100910000000000000000000000000000080808057 +:100920000F0F0707070707070703070F030000005C +:100930008080C0C0C0E0E0F0F0E0C0F8FFFEF0C092 +:1009400000000000000000000000000010303070C7 +:100950000000000000000000000000000000000097 +:100960007070F0F0F0F0F0F0F060F0F0E060301057 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000010130F8FC41 +:100990000000000000000000A0B8E8F0B080C00037 +:1009A000FDF9E0C0808D8301000101020400808018 +:1009B00000088890D0F0FBFCF8F0F86422201010BA +:1009C0000000000000181F1F1F1F0F030100000080 +:1009D000000000000000E0E0F0F0F8F8F8FC7C7E99 +:1009E0000000000000000000010103000F010103EE +:1009F0003E7E7C7C7CF8F8F8F0F0F0F0E0F0F8FE59 +:100A0000F0F8F070000080C0C0C0808000000000DE +:100A1000000000000000C0C060787F7F7F1F0600DC +:100A2000000000008081C7C7C7E3F3C1E0E0E040F9 +:100A3000001E3F7FFFFFFFFFFFFFFF9F030100003E +:100A4000000101070FDFFFFEFCF000000000010FB6 +:100A5000808020E0C0800000000000000000808056 +:100A60003F7FFFFFFFFFFFFFFFEF6100000000007F +:100A70008080808080808080808080800000000076 +:100A8000000000F0FCFEFFFFFFDF0F87C7E3F1F877 +:100A90000000000000000080C0E0E0C0E0F0E040A6 +:100AA000F8FCFC7E7E3F3F3F1F1F0F0F030100003D +:100AB00000000000000080C0C08080C080000000F6 +:100AC0000000020E1E3E3E7E7C78F8F8F0F0F0F05A +:100AD0000000000000000000000000000000000016 +:100AE000F060F0F8E8603212020000000000000040 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B1000000010181818100000000000000000006D +:100B200000000000000000000000000000000000C5 +:100B30000000000000000000000010100000000095 +:100B400000000000000000000000000000000000A5 +:100B5000000030383838300000000000000000008D +:100B60000000000000000000000000000000000085 +:100B70000000000000000000202020000000000015 +:100B80000000000000000000000000000000000164 +:100B90000000060D0000000000010101073F7FFF7B +:100BA0000303030707070F0000070F1E14140000BC +:100BB000FFFFFEEE8FC78F0E0F0F87878707070196 +:100BC000008000808000000000000000008080C0E5 +:100BD0000000000000000000000000000000000015 +:100BE00060380C06030300B0F0E0C0000000000015 +:100BF000000000C0C0000000000000000000000075 +:100C00000000000000000080C062663E3C0800005A +:100C100000000000000000000000000000000000D4 +:100C2000000000000080C0C0763E1C0800000000EC +:100C300000000000000000000000000000000000B4 +:100C4000030707070F1C38707080000000000000C9 +:100C5000F3818383030707070307070303010000EA +:100C60000000000000000000000000000000000084 +:100C70000000000000000004060F07000000000054 +:100C80000303FF070703000000000000000000004E +:100C9000F7C7FFC080C7436139383C1C1E3E3E7F0A +:100CA00000000001010303070F0F1F3F3F0000007A +:100CB0007FFFFEFEFEFCFCF8F8F0F0E0C000000054 +:100CC000BCDFFF0000E7E0E0F0F078F8787C3C7CE7 +:100CD0000000E00000000000000000000000000034 +:100CE0003C3C2C1E1E1E3E1F1F1F3F1F0E000000FF +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000010000000000000001E1 +:100D1000000000203C263ABCFEFEFCF8F0301838FB +:100D200001030F0F0F1F0E1C3818183D1C1C1C0848 +:100D3000FCFCFEFE7E7E7EFE5F3FFFFFFFFF7FFF2F +:100D400001030307070307070F060603030703034F +:100D500078F8FCFCFCFCFC7C5C387838383870E0B7 +:100D6000030101033F01010000000000000000003A +:100D7000F0F0F0F8FFE0E0F838783C7C7C3C3C1C7C +:100D80000000000000000000000000000000000063 +:100D90001C03001F00000307070F0F07070F0B07B7 +:100DA0000000000000000000000100000000000042 +:100DB0000F0F1E3E3C7C7878F8F0F0F00000000049 +:100DC000000000000000000603030303030000000E +:100DD00000000080F098E8F0F8F8F0E0C0C0E0E033 +:100DE0000101030303474743C1C3C1416120200000 +:100DF000F0F0F8F8F8F0F0F0E0E0F0F0F0F0F0707B +:100E00006060F0FFF0F0F0F0F8F8FCFCFEFE7F7F91 +:100E100000000000000000000000000000000000D2 +:100E20003F3F1F1F1F0F0F0F0F0F0F07070000007F +:100E300080808080C0C0C0C0E0E0E0F0F000000032 +:100E400000000000000000000000000000000000A2 +:100E50001F0F1F3F1F0F87C7737379393C7C7CFEC0 +:100E60000001010303070F0F1F1F3F7F7F000000DA +:100E7000FCFCF8F8F8F0F0E0E0C0C08000000000F2 +:100E80000000008286C7C7C3E0E0F0F0F0F878F811 +:100E900000000040C0C0C0000000000000000000D2 +:100EA000F878785C3C3C3C3E7E3E3E1E1C000000D8 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED00020207070F070707038783C3F1F07010060 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F00006030180C06030100000000000000000023 +:100F100000000000000080C06030180C06030101D2 +:100F200000000000000000000000000000000000C1 +:100F300003030100000000000000000000000000AA +:100F400002031B0F0F0F0F3F7FFFFFFFFFDFBF3FAE +:100F500060A0C0E0E0C08000008080C0C0E0E0E0B1 +:100F60001F170F1C1F3F1F1F0F073F0F1F3F1F0F94 +:100F7000E0E0E0F0F0F0F0F8F8FC9C8E8E87C2C064 +:100F80000000000000000000000000000603037BDA +:100F9000000000000000000080F098E8F0F8F8F091 +:100FA000FFFFFFFFFFFFFF7FFFCF3F77FFFE7E7F4B +:100FB000E0C0E0F0F0F0E0E0E0F0F0F0F0F878FC15 +:100FC0000000000000000000000000000000000021 +:100FD0000303070F060101101C1E1F0F0F1F3F3FC9 +:100FE00000000000010101030307070100000000E9 +:100FF0007F7FFEFEFCFCFCF8F8F8F8F00000000033 +:1010000000000000000000000000000000000000E0 +:1010100000000000000000000000000000000000D0 +:10102000000000000000040C080818181C3C3C38A4 +:10103000000000307878F8F8F878787C3C3C3E1F67 +:101040003838787C7C1C040000000004040404048C +:101050000000000000000000000000000000000090 +:10106000040C0C1C1C3C3C7C3C3C3C100000000074 +:101070000000000000000000000000000000000070 +:101080000000000000000000000000000000000060 +:101090000000000000000000000000000000000050 +:1010A00000000000010103070F0F0F1F1F3E3E3C11 +:1010B000000000C0E0F0F0F0E0C080840606070702 +:1010C0007C7C7CF0FBFF7707030100000000000040 +:1010D0000303030303C1F9F8FCFEFF7F7FFFFF6FEB +:1010E0000001030307070F0F071F3F380800000028 +:1010F000EFEFEFC7CF8F8F8F0F0F030301000000BB +:1011000000000000000000000000000000000002DD +:101110000000000000000000000000000040E0802F +:101120000603010000000000040C1C1C3C3C3C3C7D +:10113000E0C000000000000000000000000000000F +:101140003C7C78783C3C3C3C3C1C1C1C0404040467 +:10115000000000000000000000000000000000008F +:10116000040000000000000000000000000000007B +:10117000000000000000000000000000000000006F +:10118000000000000000000000000000000000005F +:10119000000000000000000000000000000000004F +:1011A0000000000000000000000000006040F8F0B7 +:1011B000000000000000000000000000000000002F +:1011C000F0E0000000E0F0F8FCFCFEFFFFFFFFFF96 +:1011D000000000000000000000000000008080C04F +:1011E000FFFFFFFF7F7F7E3F3E3E2F040000000099 +:1011F000C0F0E0C0F8E06040000000000000000027 +:1012000000000000000000000000000000000000DE +:1012100000000000000000000000000000000000CE +:1012200000060C0F07161C0D0706000000001C1E10 +:101230000000000000000000001C0F070301010077 +:101240003E3E3E3E3C3C3C3C3C1E1F1F0F0F0703F6 +:10125000000000000000000000000183C7E3F1F976 +:10126000010000000000000000000000000000007D +:10127000FC707C3C3C080000000000000000000006 +:10128000000000000000000000000000000000005E +:10129000000000000000000000000000000000004E +:1012A00000000000060F0F0F0707030000000000FA +:1012B00000000000000080C7FFFFFFFF7800000073 +:1012C00000000000207F7F7F3F3F1F1F0F070303A9 +:1012D0000000000000008080C0C0E0E0F0F0F0F00E +:1012E0000103030707070F0F1F1F1F0F0600000052 +:1012F000F0F0E0E0E0E0C0C0C0C08080000000008E +:101300000000000000000000000505070F0D84C666 +:1013100000000000000000000000C04080800000CD +:10132000E0E0C0000000000000000000000000003D +:1013300000000000000000000000000000000000AD +:10134000E0FCFEFEFEFE7F3F1F1F1F1F0F0F0F1F43 +:10135000000000000000000000808080808000000D +:101360001F1F3F3F3F7F7F3F3C7FFFFF0400000088 +:1013700000088890D0F0FBFCF8F0F8E42220101070 +:101380000000183C3E7E7E3C181C1C1C1CFCFE7899 +:10139000000000000000000000000000000000004D +:1013A0007C3C3F1F0F030000000000000000000015 +:1013B000070F7FBFFFFFFF3F3F3F3F3F1F3F7F7F45 +:1013C000000000000000000000000000000000001D +:1013D0000F0000203F3F1F1F1F3F3E3E3F1E3E3C71 +:1013E00000000000000000000101010000000000FA +:1013F0007CFCF87830000080C0C0C0800000000095 +:1014000000000000000000000103051E6943030105 +:10141000000000000000000080800000008000004C +:101420000001030F1F1F3F3F7F7F7F7F7E7F7F6312 +:10143000C08080C0C08080800000804000000080AC +:10144000030F1F3F3F2F2E07070303030101000077 +:10145000C0C0F8F8800000000080800080C0C06834 +:1014600000000000000000000C0F0700000000005A +:1014700030604060604060607878000000000000EC +:10148000000000000000000000000000000000005C +:101490000103070707070F1F1F1F1F0F070F0F1F4E +:1014A00000000103030307070F0F0F1F1F1F1F1F5C +:1014B0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCBF +:1014C0001F1F1F1F0F0F0F07070703030100000057 +:1014D000FCFCBC0C84C0E0E0E0F0F0F0F0F8FC7C38 +:1014E00000000000000000000000000000000000FC +:1014F0003C3C383C3C101808000000000000000094 +:10150000002030303038383C3C3E3F1F1F3F3F3FCB +:1015100000000000000000000000000000000000CB +:101520001F1E0EFEFFFFFFFFFFFFFFE58000000014 +:101530000000000080E0F0F8FCFCFCFCDCFC7C3CE3 +:1015400080C0C0E0F0D0D878FCFCFEFEFE7F7F3F7C +:101550000C0C0C0400000000000000000000808063 +:101560003F3F0F1F1F0F0707030301010101010187 +:10157000C0F0F0E0C0C0C0F8FFFEFCF8F0E0C0C072 +:101580000000010302000000000000000001030F42 +:10159000000000807C3F1F3E783E76F0F8C08080DF +:1015A0001F3F7F7FFFFEFEFFFEFCFE7F1F9F8FEF32 +:1015B00080800000000000408000000080F0F8788B +:1015C000EE2EA40607030301010100000000000045 +:1015D0000000000000008080C0E0A040C0C080800B +:1015E00000010101070700000000000000000000EA +:1015F00080808000E0C000000000000000000000CB +:10160000000000000000000000000000C0787E7EA6 +:1016100000000000000000000000000000000000CA +:101620007CF0FCECE0F006078303030100A0C80097 +:101630000000000000000080C0E0F0F8F8706207D1 +:10164000000081CFFFF8F0E0E0F0F0FD7F17000030 +:101650000607C4C640201008040201A1F4F850187F +:10166000000000000000000000000000000000007A +:10167000180C060303010100000000000000000038 +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A0000000000000000000000001070F0E1F37BF +:1016B00000000000000000000000000000C0C0802A +:1016C00043C7C5810303030307070707070F0F0F6E +:1016D000A3E7CF830100008080C0C0C8D1FBFEFC1F +:1016E0000F0F0F0F070707060000000000000000A3 +:1016F0007E3F8F8FC783014058F0F87C48603000F0 +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200002020A0F0707070E0C042070F8FCFCF8F1 +:1017300000000040C0800000000000000000000029 +:10174000F0E0E0C0800000000206068C1F18187050 +:1017500000000000000001000103060CDC3800005E +:10176000F0E0E0E0E2F7BF9F0000000000000000B2 +:1017700000000C5EFFFBE100000000000000000024 +:1017800000000000000000001F31210103030103DD +:101790000000000000000000F0F0F0D8F8F8F8F8C1 +:1017A000070E0C1E3E3E3E7C7CFCF8FCF060460FB3 +:1017B000F870303010100000000000000000000041 +:1017C000DFFF3F7F787038181C0E0603030101000D +:1017D00060E0F0F0600000000000000000A0C080A9 +:1017E00000000000000000006070301000000000E9 +:1017F00080C0C0C0E0606070707030000000000009 +:1018000000000000000000000F181000010100019E +:101810000000000000000000F8F870E0F8F8F0F0B8 +:1018200003070E0F1F1F1F3E3E7E7E7EFFFFFF71D0 +:1018300080001C1F0F0F0F0F010000004080800070 +:1018400001073F3F1F1F1F0F070303010000000098 +:1018500000F8FCFC00008080008080C0C0C06048B0 +:1018600000000000000000000030381800000000F8 +:10187000406060703020203030301C1C18000000A8 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0001F31200103030103073EFCFEFFFFFFFF82 +:1018B000F0F0F0E0C0F0F0E00000000000000000F8 +:1018C000FEFCFEFFFFFFFFFEFC800080D0F87E1FC5 +:1018D00000000000800000367F3F1E0C000080C02A +:1018E00000000000000000000000000000000000F8 +:1018F000F020207060606020383838100000000050 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:101920000000000000000000000001030707033171 +:101930001F312001030301030378FCFEFEFCF8F8CD +:101940003878F0E0F1F1E30300010101000000004C +:10195000F3FCF2E0F8FFFFE3C0C0C0C0783D0F0722 +:101960000000000000000002060703000000000065 +:101970000000000000000000000000000000000067 +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A000F0F0F0E0C0F0F0E00000000000000010F7 +:1019B0000000000000000000000000000000000027 +:1019C000001C3E3E7C7CF9F87000000000A0F0BADC +:1019D0000000000080D8F07C3F3E180000000000AE +:1019E0001C0818101018181010101C180000000007 +:1019F00000000000000000000000000000000000E7 +:101A000000000000000000000000000000000000D6 +:101A10000000000000000000000C1B00000000019E +:101A2000000000000003070F1F1F3F3E3C7C1C000E +:101A300003031F3CFCF8F8F8F8F04070F0E0C0E059 +:101A4000013179F8FCA4B40000000000000000009F +:101A5000F0E8FF7FF7E0F0707038181C0C0E0602FB +:101A6000000000000000000003070100000000006B +:101A7000070C0C0C0C1C181818B8BE000000000055 +:101A80000000000000000000000080F0FCFCF8E016 +:101A90000000000000000000000000000000000046 +:101AA000F8D8C0E0000000000000000000000000C6 +:101AB0000000000000000000000000000000000026 +:101AC000000000C0C0000000000000000000000096 +:101AD0000000000000000000000000000000000006 +:101AE00000000000000000000000000000000000F6 +:101AF00000000000000000000000000000000000E6 +:101B0000000000000000030E38E08000000000002C +:101B10000000000030E08000000000000000000035 +:101B2000000000020302031B0F0F0F0F0F7FFFFFC8 +:101B300000000000C060A0C0E0E0C0800000808025 +:101B4000FFBF7F3F3F3F1F1F0F253F7F1F0F0777BF +:101B5000C0C0E0E0E0E0E0E0F0F0F0F0D8D8DC8CED +:101B60000000000000000000000000000000000075 +:101B70000E0E070200000000000000000000000040 +:101B80000000000000000000000000010101010D44 +:101B9000000000000000000000000000E030D0E085 +:101BA00007070707070301030F0F1F1F0F07003F5A +:101BB000F0F0E0C0808080C0C0E0FDFFFFBE00000C +:101BC0001F0F37FE7F3F1EFC7FFF6F070301F0F002 +:101BD000800000000000000080E0F8F8FC7E6E3E0F +:101BE000F0E0E0E0C0C0C080800100000000000024 +:101BF0004C7C3C3878F87870F0F0F8F80000000081 +:101C000000000000010406030105070100000000B8 +:101C10000000000080A0A0E0C0C0C0C0C0E0F07024 +:101C20000000000080C040CD7F3F3F3F7F7EFFFF30 +:101C3000707038387070F0E0C08000000000000064 +:101C4000FFFFBF7F6F1D0981C3E0F8F04000000077 +:101C500080F8F8FFFFFFFFFFFFFF7678FD7D7D3BFB +:101C60000000000000000000000000000000000074 +:101C70000F03010000000000000000000000000051 +:101C80000000000003030302020604040C08081805 +:101C90000000000000000000000000000000000044 +:101CA0001010302020604040C080F0FEFFFFFFFF9A +:101CB0000000000000000000000000000080C0C024 +:101CC0005F050301000080C0E0F0F07838687C3CDC +:101CD000E0E0E0E0F0F070F0F8783C3C70200000CC +:101CE0001C1E0E1F0F0F0702020000000000000064 +:101CF00000000000808000000000000000000000E4 +:101D0000183D7D7830030F7FFFF6600604193F3FD2 +:101D1000D8FCFEDF1E1ECCE0E0C00000C6E7E2C03B +:101D20003F1F0703307C7E7E2C0000011B3F3F3F9E +:101D30008080983C3C7E7F3F1F0EC0E0F0F0F0E0DA +:101D40001F0F1F1E0C000000060F0F67FFFF6F061E +:101D5000C000003C7E7F3F7F3E0C00D8FCFC7E3FF5 +:101D600060F1F1600000030F1D1F0D010001000074 +:101D7000FFFEECC00000C0E0E0C00080C00000003A +:101D8000387D7D7D3C1F3F7FFFFFFF7F1F0F3F7F23 +:101D9000DCFEFFFFFFFEFEFCF0FCFEFFFFFFFFFE90 +:101DA0007F7F3F1F7FFFFFFFFF7F1F0F3F3F3F3FB3 +:101DB000F8F0FCFEFEFFFFFFFFFFFEFCF0F8F8F876 +:101DC0003F7F7F7F3F1F0301070F6FFFFFFF7F7F75 +:101DD000F0E0F8FCFEFFFFFFFFFFFEFCFEFEFFFF52 +:101DE0003F7F7F7F7F070F1F1F1F1F0F0703070FF7 +:101DF000FFFFFEFEFCE0F0F8F8F8F0E0000080C025 +:101E000000000000000000000000000000000307C8 +:101E1000000000000000000000000101023563CF57 +:101E2000CC3903140902170B000001000000000068 +:101E3000DEBC30DA9FDFB365E2F0F8FC3C7E361E94 +:101E4000000000010207030F0F070F0F050F4FA23D +:101E50007E7EBFFFFDF8F0E0C082C5F6DC88C8E4F6 +:101E600067B2781C5E3E1E020206040404060300EC +:101E7000F0F0F8F81C1C0C1C0C1C1C3878F0E0006E +:101E80000000010101010303070707070F0F0E1FE1 +:101E900000E0F0F0F0E0E0E0E0C0C0C08000000052 +:101EA0001F1F0F0F070707030301010000000000B9 +:101EB000008080C0E0F0F0F0F0E080000000000062 +:101EC00000000000070707070301000000000000F2 +:101ED0000000000103C1F9F8FCFEFF7F3F1F1F0F48 +:101EE000000000000000000000183C38080000005E +:101EF0000F0F0F070F0F0F0F0F0F03030307070736 +:101F00000000000000000101030303030707070F9F +:101F10000070F8F8F8F0F0F0F0E0E0E0C0C0808089 +:101F20000F0F07070303030101000000000000007A +:101F300080C0C0E0F0F0F0F0F0E000000000000031 +:101F40000030787C7F1F0703030303070707070799 +:101F50000000000080F8F8F0F0F0F0F0E0E0E0E0E1 +:101F6000070F0F0F1F3F3F7F3F3F3E7AF8FC7E3F3A +:101F7000E0C0C0C0800000000000000703010000B6 +:101F800000070F0F0F0F1F1F3F3E3E3E7C7C78F86F +:101F900000008080800000000000000000000000C1 +:101FA000F8FC7C7E3F3F3F1F1F0E0000000000003A +:101FB0000000000000000000000000000000000021 +:101FC000000000003F3F3F3F1F0F0F0707070703B9 +:101FD0000000000080808080C0C0C0E0E0E0E0E061 +:101FE000070707070F0F0F1F1F3F3F0F0F0F1F1F81 +:101FF000E0E0E0C0C0C0C0C0C0C0C0000080C0E021 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/battroad.zip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/battroad.zip new file mode 100644 index 00000000..297a78ea Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/battroad.zip differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4c-a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4c-a.hex new file mode 100644 index 00000000..e25956f5 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4c-a.hex @@ -0,0 +1,258 @@ +:020000040000FA +:200000000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFF0 +:200020000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFD0 +:20004000FF80808080808080FF0101010101010180808080808080FF01010101010101FF96 +:20006000FF80808080808081FF0101010101018181808080808080FF81010101010101FF74 +:20008000000000000000000000000000000000000000000000000000000000000000000060 +:2000A000000000000000000000000000000000000000000000000000000000000000000040 +:2000C000000000000000000000000000000000000000000000000000000000000000000020 +:2000E000000000000000000000000000000000000000000000000000000000000000000000 +:2001000000000000000000001010101000001000282828000000000028287C287C28280057 +:20012000103C50381478100060640810204C0C0030485020544834003010200000000000E3 +:200140000810202020100800201008080810200000105438541000000010107C10100000DB +:2001600000000000301020000000007C0000000000000000003030000004081020400000C7 +:20018000384CC6C6C6643800307030303030FC007CC60E3C78E0FE007E0C183C06C67C0089 +:2001A0001C3C6CCCFE0C0C00F8C0F80C0CCC78003C60C0FCC6C67C00FEC60C1830303000B5 +:2001C00078C4E4789E867C007CC6C67E060C78000030300030300000003030003010200057 +:2001E000FCF8F0F0F0F0F8FC00007E007E0000003F1F0F0F0F0F1F3F3844040810001000BB +:200200003C4299A1A199423C386CC6C6FEC6C600FCC6C6FCC6C6FC003C66C0C0C0663C0024 +:20022000F8CCC6C6C6CCF800FCC0C0F8C0C0FE00FEC0C0FCC0C0C0003E60C0CEC6663E00A2 +:20024000C6C6C6FEC6C6C600FC3030303030FC000606060606C67800C6CCD8F0F8DCCE00BC +:20026000C0C0C0C0C0C0FE00C6EEFEFED6C6C600C6E6F6FEDECEC6007CC6C6C6C6C67C0006 +:20028000FCC6C6C6FCC0C0007CC6C6C6DECC7A00FCC6C6CEF8DCCE0078CCC07C06C67C00E2 +:2002A000FC30303030303000C6C6C6C6C6C67C00C6C6C6EE7C381000C6C6D6FEFEEEC600EC +:2002C000C6EE7C387CEEC600CCCCCC7830303000FCFC183060FCFC00000000000030300022 +:2002E000C080D895D50305073808080808083800FFFF0000FFFF00FFFF00FFFF0000FFFFDF +:200300000000000000000000000000000000000000000000000000000000000000000000DD +:200320000000000000000000000000000000000000000000000000000000000000000000BD +:2003400000000000000000000000000000000000000000000000000000000000000000009D +:2003600000000000000000000000000000000000000000000000000000000000000000007D +:200380007F7F7F7F7F7F7F7F3F3F3F3F3F3F3F3F1F1F1F1F1F1F1F1F0F0F0F0F0F0F0F0FFD +:2003A0000707070707070707030303030303030301010101010101010000000000000000E5 +:2003C00000000000000000000000000000000000000000000000000000000000000000001D +:2003E000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFC08000FFFFFFFFFF000000CF +:2004000001000000000001110000103070E0C08001FEFEFE000000000103060C10204080F8 +:2004200000081C1F0F070302001030E0C0800000FFFFFFFFFFFFFFFF1F9F8F0F0787C3E376 +:20044000FFFFFFFFFFFFFFFFE3E3C7C7E7E7CFCFFFFFFEF7EFDFBF7F9F1F3FFFFFFFFFFFED +:20046000FFFFFFFFFFFFFFFFC0C08000FFFFFFFFE0C08000FFFFFFFFC0C08000FFFFFFFF70 +:200480001F3F7FFFFFFFFFFF9FFFFFFFFEFCF8F0E1C3870707070707000040C0C1C3C7CF9E +:2004A0001F3F7FFFFEFCF8F0E0C2860606060606E0C08000000040C00707070F1F3F7FFF18 +:2004C000FEFCF8F0E0C28606C1C3C7CFDFFFFFFFFEFCF8F0E0C08000060606060707070FD8 +:2004E00000000000FEFCF8F0E0C08009193979F90707070F9FFFFFFFFEFCF8F1E1C3870758 +:20050000F9FBFFFFFFFFFFFFE0C2870F1F3F7FFFFFC3C7CFDFFFFFFFFEFCF8F0E0C080089B +:20052000070606060707070FFF000000FEFCF8F0183878F8F9FBFFFF00000000008080C02B +:20054000E0000000000000000000000000001018181C1E1E1F1F1F1F1F1F1F1F1F1F1F1FAF +:20056000000000000000000000000000000000000000000000000000000000406060707893 +:200580007878787878787878787878787878787800000000000000000000000000000000DB +:2005A0000000000000000000000000FEFFFFFFFF00000000008080C000001018181C1E1EE9 +:2005C000000000000000000000000000000000000000000000000040606070787878787853 +:2005E000008080C0E0E0F0F81F1F1FFFFFFFFFFF0000003F3F3F3F3F787878F9F9F9F9F9BB +:20060000FFFFFFFFFFFFFFFF3F3F3F3F3F3F3F3FF9F9F9F9F9F9F9F90707050404040404FB +:20062000000000000000000000000000000000000103070F0F0F0F0F000000000000000064 +:200640000F0F0F0F0F0F0F0F00000000000000000000000000000000000000000000000022 +:2006600000000000000000000101010101010101F8F9FBF7EFDFBF7F1F3F7FFFFFFFBF3FAB +:200680003E3D3B372F1F3F7FFFFFFFFFFFFFFFFFFFFFFFF7EFDFBF7FFFFFFBF7EFDFBF7F6D +:2006A000E0E0E0E0E0E0E0E0FEFDFBF7EFDFFFFFE0E0E0E0E0C0A060FFFFFFFFFFFFFFFF69 +:2006C0008787FFFFFFFFFFFF0000000000000F0F000000000000FFFFFFFEFFFFFBF7F2F81F +:2006E0000F0F0F0F0F0F0F0FFCFFFFFFFDFCFCFE0F0F000000000000FEF0E0E1F3FFFFFFD9 +:20070000FFFFFFFFF9F8FCE4FFFFFFFFDF8FCFFF0C3EFEF8E0861E3FFF9F0F1FFFFF7F7F09 +:200720007FFB73A79F9F9F917F7F7F373B3B3B9B071F7FFFFFFFFFFF9981C1E3F3FFFFFF69 +:20074000F8F8F8F8F8F8F8F8FFFF000000000000F8F8000000000000000000000000F8F8FB +:20076000FBF9F8F0E1C181090000000000000000FBF9FCFEFFFFFFFFEFCF9F3F7FFFFFFF6F +:200780000301000000000000E0C0800000000000FFFFFFFEF10FFFFF808000008080C0C0BC +:2007A000FFFFFFFFFFFEFDE3C0C0C080800080801FFEFCE8102040800000000000000080AF +:2007C000000000000000000100000000000000000101000001010303FFFFFF7F8FF0FFFF15 +:2007E0000303030101000101FFFFFFFFFF7FBFC73C7E7E1E3E3C1C00FFFFFFFFFFFFFFFF08 +:2008000000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:20082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:2008400000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:20086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:2008A00001010101010101010404040404040404010000000000000004000000000000000B +:2008C000202020202020202080808080808080802000000000000000800000000000000078 +:2008E00000040404040400000020202020200000000000010101010100000004040404042B +:200900000000002020202020000000808080808000000000000000000000000000000000B7 +:20092000000000000000000000000000000E1E3E00F1FFFFFFFFFFFF7CFCFCF8F9F9F1F320 +:20094000FEFFFFFFFFE71FFF13E3E7E7C7C8CF8F0000071F3F3F1F1FFFFF1F0F0783C1C1CD +:200960004FEFFFFBF9F9F1F1E0E0F0F0F8F8FCFCF0F0E2E7C7C7CF8FF0EE5F5F3FBF9FDF36 +:20098000FFFFFFFFFFE71FFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFE3DFBFBF3F3F3F3F1F1EED +:2009A0000D0B07078383C1C1FEFCF8F0E0C08000FEFCF8F0E0C08107FFFEFCF8F0E0C0807C +:2009C0000000000000000000000000000000000000000103070E1C38302103070F1F3F7F63 +:2009E000BF3F7FFFFFFFFFFF00000000000000000000000000000000000000FCFCFCFCFC93 +:200A00000000000F0F0F0F0F00000001010101010101010101010101010101010101010176 +:200A20000101010101010307FCFCFCFCFCFCFCFC0F0F0F0F0F0F0F0F1F3FFFFFFFFFFFFFF6 +:200A4000FCFCFFFFFFFFFFFF393173E7C7CF9F1FFFFFFFFF00000000000000000000000090 +:200A60000000000000000000000000FF00000000FFFFFFFFFFFFFFFF0300FFFFFF00FFFF81 +:200A800080FFFFFFFE00FFFF01FFFFFF00FFFFFF010103010506060EC0C08080000000003D +:200AA0000E1C1C3C387830100000000000000000101F1F1F0F03FFFF01F0F0F0E080FFFF18 +:200AC000010103010506060EC0C08080000000000E1C1C3C387830100000000000000001FE +:200AE000111F1F1F0301FFFFF0F0F8C080FFFFFFFF00000000000000FF0000000000000073 +:200B00000103010506070E0EC0808000000000001E1C3C3C7838101100000000000001F06E +:200B20001F1F1F0301FFFFFFF0F8C080FFFFFFFFFF02020203030303FFA0A02060E0E0E0C3 +:200B400003010506060E0E1C80800000000000001C3C38783010111F000000000001F0F0EF +:200B60001F1F0301FFFFFFFFF8C080FFFFFFFFFFFF0000000000000006060E0E1C1C3C3831 +:200B8000010506060E0E1C1C80000000000000003C38783010111F1F0000000001F0F0F81B +:200BA0000106060E0E1C1C3C000000000000000038783010111F1F1F00000001F0F0F8C0A1 +:200BC000010000FFFFFFFF000000FFFFFFFFFF00783010111F1F1F03F87F3F070000000037 +:200BE0000102040810204080FFFFFFFFFFFFFFFFFEFDFBF7EFDFBF7F8685FBF7EFDFBF7FFC +:200C00000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFE4 +:200C20000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFC4 +:200C400000000000000000000000000000000000C0C08000FFFFFFFF800000000000000018 +:200C6000FFFFFFFFFFC78341FFFFFEFCFCF4E6E2F8E1C1C060301D0FE0F1FFFF7F3F1F8FED +:200C8000E3C3C1C1E1F3F3FF0F0180C0E0F0F8FF8FC70301010307FFF3E7CE9C393173E7E3 +:200CA000C0C0800000000000F8F9F3E3E7CE8C9C383070E0C0C080000000000000000000D8 +:200CC000FFFEFEFCF8F9F1E1E1C08080000000000000000000000000FFFFFFFFFFFEFEFCC6 +:200CE000F9F9F3E3E7CE8C9C383070E0C0C080000000000000000000FFFEFEFCF8F9F3E3D9 +:200D0000E7CE8C9C383070E0C0C0800000000000383070E0C0C08000E7CE8C9C383070E4ED +:200D2000C0C0800000000000F8F9F1E1E1C080800000000000000000E6CE8F9F3F3F7FFF71 +:200D40003F7FFFFFFFFFFFFFF8F9F3E3E7CF9FBF7F7F7F7F7F7F7F7FFFFFFFFFFFFFF3E13A +:200D6000FFFFFFFFFFFFFEF9C0E0E0800080C080F0F0FCF4E0F0F0D0000000000000000062 +:200D800080C0F0200000000000000000000000000000000000000000000000000000000003 +:200DA000000000000000000000000000000000000000000000000000000000000000000033 +:200DC000FFFFFFFFFFFFFFFF00000000000000000000000000000000FCF8F0F5FFFEFAF05B +:200DE00000C0C00000000000F8FCFEF4E0B0C0E00103030707070707F0E0C0E0C0C0808043 +:200E000000FFFF0000000000FEFEFEFEFEFEFEFE00FFFF0000000000FEFFFFFEFEFEFEFCF6 +:200E20000000010307060606F898980C0E0606060F0F0F0F0F0F0F0FFFFFFFFFFFFFFFFFD1 +:200E40000000000000000000030303030303030300FCF8000000000003030303030303036E +:200E600000000000000000000302060C1C181818FFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0FF +:200E8000F8F8F8F8F8F8F8F80000000000000000F8F8F8F8F8F8F8F00000000000000000DA +:200EA000E0606030381818181FFFFF1F1F1F1F1FC0C0C1C0C0C0C0801F133361E1C0C0C082 +:200EC00000000080C0C0C0C000000000000000000000000000000000000000000000000092 +:200EE0000000000000000000000000000000000000000000000000000000000000000000F2 +:200F00000000000000000000000000000000000000000000000000000000000000000000D1 +:200F2000000000000000000000F9F3000000000000C1E30000000000000000000000000021 +:200F4000000000000000000000000000000000000000000000000000000000000000000091 +:200F6000000000000000000000000000000000000000000000000000000000000000000071 +:200F8000C0C0C0C0C0C0C0C00000000000000000C0C0C0C0C0C0C08000FF7F000000000013 +:200FA000C0C0C0C0C0C0C0C00000000000000000C0C0C1C0C0C0C08000FF7F0000000000F2 +:200FC0001F1F1F1F1F1F1F1FC0C0C0C0C0C0C0C0FFFFFFFFFFFFFFF7C0CFC7C0C0C0C08053 +:200FE000EECC009EBBFE5C0C0103070F1F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +:20100000FFFFFFFFFFFFFFFFCFAF7F5F0F8FAFFFE0FF7F1038F0D8F0B0B81CB81C3C761EAA +:20102000FFFFFFFFFFFFFFFEFFFFFFFFFFFF8F07F8E0FFFFFFFFFFFFFFFFFFFFFFFFFF7FDF +:20104000000000040C1E3E7F00000103060C1830FFFBF1F3FFFCF8FD60C080808080C0C0D9 +:201060007FFFFF3F3F7FFFFFC0E0E0E0F0F0F0F87F7F3F3F3FFFFFFFF8F8FCFCFCFEFEFE3A +:2010800000000000000000007F7F3F3F3F1F1F1F00000000000000000F0F0F0707070303F0 +:2010A000FFFFFFFFFFFFFFFF03818181C0C0C0E0FFFF000000FFFFFFE0E0000000FFFFFFDA +:2010C000FFFFFFFBF3E3C383000103070F1F1F1E00000000000000000C0C0E060707030346 +:2010E000FFFEFCF8F0FFFFFF03010101000000000303000000FFFFFF00000103060C1810CB +:20110000C0E0F0F8FCFEFFFF00000000000080C0FFFFFF7F3F1F0F03E0F0F8FCFFFFFFFF63 +:201120000100000000FFFFFFFFFF7F3F3FFFFFFF0000000000000C1E0000000103070F1F56 +:201140003F7DF8FCFFFFFFFF00C0603078FCFEFFFF3F1FBFFF7F3F1FF8FC000000FFFFFF39 +:201160000F07030000000000FFFFFFFF7F3F1F0FE0F8FCFEFFFFFFFF070100000080C0F068 +:201180001E0C0603010000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:2011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF870FFFFFB7 +:2011C000FFFFFFFFFFFFFFFFFFF0E1FFFFFFFFFF00000001010101012060E0E0E0E0E0E087 +:2011E0000141C1C1C1C1C1C1E0E0F0F8ECC68301C0C0E0F0D8CC860300000000000000804C +:20120000C06030180C06030100000000000000800000000000000000C06030180C06030152 +:2012200080C06030180C06030100000000000000010000000000000080C060341C0C0607A6 +:201240000000000000000000010101010101000000000000000000000000040C183878F0C0 +:201260000000000000000000F0F0E0E0E0FFFFFF010101030303070700003070E0E0E0C0D7 +:20128000C0C080808000000000000000000000800000000000000000C060000000010307A3 +:2012A00080C06020000000000F1F3F7F7FFFFFFF0101010303030707FEFEFCFCFCF8F8F814 +:2012C000070F0F0F1F1F1F3FF0F0F0E0E0E0C0C03F3F7F7F7FFFFFFEC08080800000000017 +:2012E000070F0F0F1F1F1F3FFFFFFFFFFFFFFFFF3F3F7F4000FFFFFFFFFFFF0000FFFFFFF2 +:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFF6D +:20132000603010180800000018080C040000000000000000000000000000000000000000BD +:2013400000000000000000000000000000000000000000000000000000000000000000008D +:2013600000000000000000000000000000000000000000000000000000000000000000006D +:20138000800000000103070F0F1F7FFFFFFFFFFF3F7FFF0000FFFFFFFFFEFCF8F0E0C000D0 +:2013A000FEFCF8F0E0FFFFFF0000000000FFFFFF00000001010101012060E0E0E0E0E0E0AC +:2013C000E0E0E0E0E0C08000C0C0C0C0C0C080000103070F1F3F7FFFFFFFFFFFFFFFFFFF7F +:2013E000FFFFFFFFFFFFFFFF0777FFFFFFFFFFFFFFFFFFFFFFF8F0FFFFFFFFFFFFFFFFFFA3 +:20140000FFFFFFFFFEFCFFFFFFFFFFFF1F3FFFFFFFC387FFFFFFFFFFFFFFFFFFFFFFFFFF44 +:201420007FDF8F9F3F7DEF72BFFFFF7FFFBFFF5FFEFEFCFCFCF8F8F80000000101010101CE +:201440002060E0E0E0E0E0E000000080C06020300141C1C1C1C1C1C1E0E0E0E0F0D8880C38 +:20146000E0E0F0D8CCC4C683060301010000000001000000000000008080C0603010180C7B +:2014800030180C040603010000000000000080800C060203010000000000000484C44464DE +:2014A00060C0800000000000FFFFFFFF1F0F4FFFFFFFF8E0E0FFFFFFFF0F070777FFFFFFD1 +:2014C00000000000000000000000000000000000000000000000000000000000000000000C +:2014E0000000000000000000000000000000000000000000000000000000000000000000EC +:201500000000000000000000000000000000000000000000000000000000000000000000CB +:2015200000000000000000000000000000000000001C3E3E3E3E3E3E3E22000000000000BB +:201540000000000008007A04080000000000000000000103070E1C1C70E0C080103070E08C +:201560001D1F1F1E1C1C0C0CC080000000000000FCFCFCFCF8F8FFFF0F0000000000FFFF77 +:20158000FCF8F8FCFFFFFFFF03010103FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +:2015A000FF07030303030383FFFFFFFFFFFFFFFF878F9FBFFFFFFFFF0000000000000038F3 +:2015C00000000000000303070018204080C080C00F5EFBF3470C1800C08080000000000080 +:2015E000FFFFFFFFFCF0F9FFFFFFFF1F0F5FFF3FFCFEFFFEF4F9FFFF3FFF9F0F0FEFFFFF79 +:20160000FFFFFFFFEFF6F0F5FFFFFFFF9F0F6F6FF5F5F5F4F8FFFFFF6F6F2F8F1FFFFFFFFC +:20162000FFFFFFFFFCF8FEFEFFFFFF1F0FFF1F0FFCF8FCFCF8F1FFFF4FDF9F0F07EFFFFFC3 +:20164000FFFFFFFCF8FEFCF8FFFFFFFF5F0F2FFFE3FFFDF9F9FBFFFFBF4FE7E7C7EFFFFFB5 +:2016600000000000000000000080C0E0E0E0E0C00000000000000000C0C0808080000000EA +:2016800000000000000001010F3F3F7FFFFFFFFF03030707070F0D1EFFFFFFFFFFFFFEFEF5 +:2016A000173B7D7EFFFFFFFF7CB8F8F060C0C0C0FFFFFFFEFEFCFCF88000000000000000BC +:2016C000070F1F3FFFFFFFFF0000000000010307FFCFF7FBFAFC3EDE1F3FFFFFFFFFFFFF65 +:2016E000EFF7FBDD9EE7FBFD0000000000010307FEF0EFFFFFFFFFFF0F7FFFFFFFFFFFFF44 +:2017000000000001010303033F3F3F7F7F7F7FFF03070707070707070000000000010307C7 +:201720000707070F0F0F0F0FF0F0E0E0E0E0C0C00F0F0F1F1F1F1F3FC0C000808000000001 +:20174000FFFFFFFFFFFFFCFFFFFFFFFEFDE31FFEFFFFFFFFFFFFF8FFFEFCF8FCD838F0E0DD +:20176000FFFFFFFEFC7983FFE0C0800000000000FFFFFFFFFEFCE000FFFFFFFFFFFFFFFE8A +:20178000FFFFFFFFFFFFFEFEFEFCF8F8F0F0E0E0FCFCFCF8F8F8F0F0C0C08080000000008D +:2017A000F0E0E0E0C0808000000000000000FFFF0C0C1C1C18181F1F848C8C8C8E8E8480D5 +:2017C0001C18181C1E0E0E0E030101033B3323030E1C1C1800000000030301010000000057 +:2017E0000000000000000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:201800000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFD8 +:201820000000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFB8 +:2018400000000000000302020000007CC683000006041D09090909090000D1555555554AF9 +:201860000902020301000000CA000001C77C38000000000000808080000000000000000091 +:20188000C040304848784848488080800000000000000000000000000000000000000000B8 +:2018A000000000000000000000000000000000000000000000000000000000000000000028 +:2018C000C0C0C0800000000000000000000000000000000000000000000000000000000048 +:2018E0000000000000000000000000000000000000000000000000000000000000000000E8 +:2019000000000000000000000C0C18100060600000000000000000000000000000000000C7 +:20192000000000000000000000000000000000000000000000000000606020400000000087 +:20194000000000000000000000000000000000000000000000000000000000000000000087 +:2019600000000030301020000000007C7C000000000000000030300000000000000000007F +:20198000384CC6C6C6643800307030303030FC007CC60E3C78E0FE007E0C183C06C67C0071 +:2019A0001C3C6CCCFE0C0C00F8C0F80C0CCC78003C60C0FCC6C67C00FEC60C18303030009D +:2019C00078C4E4789E867C007CC6C67E060C780000000000000000000000000000000000BF +:2019E0000000000000000000000000000000000000000000000000000000000000000000E7 +:201A00000000000000000000386CC6C6FEC6C600FCC6C6FCC6C6FC003C66C0C0C0663C007C +:201A2000F8CCC6C6C6CCF800FCC0C0F8C0C0FE00FEC0C0FCC0C0C0003E60C0CEC6663E008A +:201A4000C6C6C6FEC6C6C600FC3030303030FC000606060606C67C00C6CCD8F0D8CCC600D8 +:201A6000C0C0C0C0C0C0FE00C6EEFEFED6C6C600C6E6F6FEDECEC6007CC6C6C6C6C67C00EE +:201A8000FCC6C6C6FCC0C0007CC6C6C6DECC7A00FCC6C6CEF8DCCE0078CCC07C06C67C00CA +:201AA000FC30303030303000C6C6C6C6C6C67C00C6C6C6EE7C381000C6C6D6FEFEEEC600D4 +:201AC000C6EE7C387CEEC600CCCCCC7830303000FE0E1C3870E0FE00000000000000000054 +:201AE0000000000000000000000000000000000000000000000000000000000000000000E6 +:201B00000000000000000000000000000000000000000000000000000000000000000000C5 +:201B20000000000000000000000000000000000000000000000000000000000000000000A5 +:201B4000000000000000000000000000000000000000000000000000000000000000000085 +:201B6000000000000000000000000000000000000000000000000000000000000000000065 +:201B8000E0E0C0C0C08080800303030303030101FFFFFFFFFFFFFEFEFFFFFFFFFFFFFF3F83 +:201BA000FFFFFFFFFFFFFFFFFFFEFEFEFCF8F0C07F3F3F3F3F3F3F3FC0C0C0C0C0C0C0C058 +:201BC0001F1F1F1F1F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:201BE000F0F0F0F8F8F8F8F83F1F1F0F07030301F0F8FCFCFEFFFFFF0000000000000000C8 +:201C0000000000000101010300000000C0C1C3C700000000EEEECE8E000000003B3B3B3B8F +:201C20000000000083838383000000008F9FBFBC00000000F8F8F8000000000007070707EB +:201C400000000000FEFEFE0000000000E3E3E3E300000000808080800303030303030707DE +:201C6000878E9EBCF8F0F8F81E1C1C1C1C1C1C1C3B3B3B3B7B73777783C3C3E3E3F7F77F37 +:201C8000B8B8B8B8B8B8387800000000F8F9F9390707070707E7E3E300000000FCFCFC80DD +:201CA000E3E1E1E1F1717171C0C0C0C0C0C0C0C0000000000000FFFF000000000000F0F07C +:201CC0000000000000003F3F07070707070FFEFEBC1C1E0F070707033C38383C3FBFFFFF57 +:201CE000777777F7F7F7E7C73F3F1F1F0F0F071F70707070797FFFFF383878F8F8F8F9FD70 +:201D0000030303030303FFFF808080808080FFFF71717070797FFFFFC0E0E0E0E0E0FFFFDF +:201D2000000000000000FFFF000000000000F3F3000000000000FCFF0001010103030707AD +:201D4000FFFFFFFFFFFFFFFFF0F0F0F0E0E1E1E17F7F7FFFFFFFFFFFFCFCFCFCF8F8F8F800 +:201D60000307070F0F0F1F1FFFFFFFFFFFFFFFFF8080C0C0C0C0C0C03F3F7F7F7F7F7F7FF7 +:201D8000FFFFFFFFFFFFC180FFFFFFFFFFFFFFFFFFFFFFFFFFFF0101FFFFFFFFFFFFFEFE1E +:201DA000FFFFFFFFFFFF0101FFFFFFFFFFFFFEFFFFFFFFFFFFFF0000F3F3FBFBFBF9010164 +:201DC000FFFFFFFFFFFF1F0F80C0E0E0F0F0F0F8070F0F0F1F1F3F3FFFFFFFFFFFFFFFFF2B +:201DE000E3E3C7C7C7CFCFDFFFFFFFFFFFFFFFFFF8F8F0F0F0F0F0F03F3F3F7F7FFFFFFF0B +:201E0000FFFFFFDFDF9F9F9FC0E0E0E0E0E0E0E0FFFFFFFFFFFFFFFF8080000080C0FFFF14 +:201E2000FFFF00000000E0F80101010000000000FEFEFFFFFFFFFFFF0100000000000000D2 +:201E4000FFFFFFFFFFFFFFFF000000000000FFFF010101000000E0E0FEFEFFFFFFFFFFFFD3 +:201E600007070303070FFFFFF8F8FCFCFCFCFCFC00000000000001013F7F7F7FFFFFFFFFA8 +:201E8000FFBFBFBFBF3F7F7F9FBFBFBFFFFFFFFFFFFFDFDFBFBFBF3FE1E1E3E3E3E7C7CF12 +:201EA000FFFFFFFEFEFEFCFF1F1F0F0F0F0F0FFFF0F0F0F0F0F0F0F87F7F7F3F1F0700003E +:201EC000FFFFFFFFFFFF0701FCFEFEFFFFFFFFFFFFFFFFFFFFFF7F7F000000008080808015 +:201EE0007F7F7F7F7F7F7F3FFFFFFFFFFFFFC0C0E0F0F0F0F0F00000FF7F7F7F7F7F7F3FE8 +:201F0000FFFFFFFFFFFFDFDFF8F8F8F0E0E0F0F80103030307070F0FFEFEFEFCFCFCFCF871 +:201F20007F7F7F7F7F7F7FFFFFFEFEFEFCFCF8F83F7F7F7F7F7FFFFFCFCFDFDFBFBFBFFFF8 +:201F4000FFFFFFFFFFFFFFE0FFFFFFFFFFFFFF07F8F8F8FFFFFFFFFF000000F8F8F8F8FCE9 +:201F60000000000000010103FFFFFFFFFFFFFFFF7F7F7F7F7F7F7F7F808080808080C0C0EC +:201F80003F3F3F3F3F3F1F1FC0C0C0C0E0E0E0E03F3F3F3F3F1F1F1FCFE7E7E3E1E0F0F050 +:201FA000FCFCFEFFFFFFFF7F0000000080C0C0E00F1F1F1F3F3F3F3FF8F8F0F0F0F0E0E0F8 +:201FC000FFFFFFFFFFFFFFFFF8F0F0E1E1E1C1C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +:201FE0000000000000000000000000000000000000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4d-a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4d-a.hex new file mode 100644 index 00000000..c57078fd --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4d-a.hex @@ -0,0 +1,258 @@ +:020000040000FA +:2000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:2000200000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:20004000FF80808080808080FF0101010101010180808080808080FF01010101010101FF96 +:20006000FF80808080808081FF0101010101018181808080808080FF81010101010101FF74 +:20008000000000000000000000000000000000000000000000000000000000000000000060 +:2000A000000000000000000000000000000000000000000000000000000000000000000040 +:2000C000000000000000000000000000000000000000000000000000000000000000000020 +:2000E000000000000000000000000000000000000000000000000000000000000000000000 +:200100000000000000000000000000000000000000000000000000000000000000000000DF +:200120000000000000000000000000000000000000000000000000000000000000000000BF +:2001400000000000000000000000000000000000000000000000000000000000000000009F +:2001600000000000000000000000000000000000000000000000000000000000000000007F +:2001800000000000000000000000000000000000000000000000000000000000000000005F +:2001A00000000000000000000000000000000000000000000000000000000000000000003F +:2001C00000000000000000000000000000000000000000000000000000000000000000001F +:2001E0000000000000000000000000000000000000000000000000000000000000000000FF +:200200000000000000000000000000000000000000000000000000000000000000000000DE +:200220000000000000000000000000000000000000000000000000000000000000000000BE +:2002400000000000000000000000000000000000000000000000000000000000000000009E +:2002600000000000000000000000000000000000000000000000000000000000000000007E +:2002800000000000000000000000000000000000000000000000000000000000000000005E +:2002A00000000000000000000000000000000000000000000000000000000000000000003E +:2002C00000000000000000000000000000000000000000000000000000000000000000001E +:2002E00000000000000000000000000000000000FFFF00000000FFFFFF000000FFFFFFFF07 +:200300000000000000000000000000000000000000000000000000000000000000000000DD +:200320000000000000000000000000000000000000000000000000000000000000000000BD +:2003400000000000000000000000000000000000000000000000000000000000000000009D +:2003600000000000000000000000000000000000000000000000000000000000000000007D +:20038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:2003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000055 +:2003C00000000000000000000000000000000000000000000000000000000000000000001D +:2003E000E0E0E0E0E0E0E0E00000000000000000E0E0E0E0E0C0800000000000000000005D +:2004000000070F1F3F7FFFEF00F0F0F0F0E0C080FF00000000000000010302040000000012 +:2004200000081C1F0F070303001038F8F0E0C0C0FFFFFFFFFFFFFFFFFFFFFFF7FBF9FCFCF5 +:20044000FFFFFFFF7F7F7F3FFCFCF8F8F8F8F0F01F0F070810204080E0E0C000000000007F +:20046000000000FFFFFFFFFFDFFFFFFF000000FFDFFFFFFF000000FFFFFFFFFF000000FFD0 +:20048000FFFFFFFFFEFCF8F080C080000103070F1F3F7FF7E7C78707E0C0C0C0C0C0C0C074 +:2004A000000000000103070F1E3E7EF6E6C686061E3C78F0E0C0C0C006040000000000002E +:2004C0000002060E1E3E7EF6C0C0C0C0C0C080000103070F1E3C78F0E6C686060604000018 +:2004E000000000000002060E1E3E7EF7E7C7C7C70604000080C080000002060F1F3F7FF724 +:20050000C6C4C0C0C0C080001E3E7FFFFFFFFFFFFEC0C0C0C0C080000103070F1E3E7EF6D3 +:20052000E7C6860606040000FF0000000002060EE6C6C6C6C6C4C0C000000000008080C061 +:20054000E000000000000000000000000000000000000000000000000000000000000000BB +:2005600000000000008080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C00000000000000000BB +:20058000000406060606060606060606060606060000000000000000000000000000000003 +:2005A0000000000000000000000000FEFFFFFFFF00000000008080C0000000000000000081 +:2005C000008080C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000000406064B +:2005E000008080C0E0E0F0F8000000E0E0E0E0E0C0C0C0FFFFFFFFFF060606878787878743 +:20060000E0E0E0E0E0E0E0E0FFFFFFFFFFFFFFFF8787878787878787F8FCFEFFFFFFFFFFBD +:20062000000000000103070F000040C0C0C0C0C01E3C78F0F0F0F0F0C0C0C0C0C0C0C0C01E +:20064000F0F0F0F0F0F0F0F0E1C3870F1E3C78F0C0C0800000000000E0C0800000000000FE +:200660000103070F1F3F7FFF0103070F1F3F7FFF060503F7EFDFBF7F0000040F1F3F7FFF8E +:20068000FEFDFBF7EFDFBF7F00000000008080C0E0E0F0F0E8DCBE7EF8FCFAF6EFDFBF7F11 +:2006A000FFFFFFFFFFFFFFFFFEFDFBF7EFDFFFFFFFFFFFFFFFDFBF7FFFFFFFFFFFFFFFFF79 +:2006C000FFFFFFFFFFFFFFFF00000000000000000000000000000000FFFFFFFFFFFFFFFF2A +:2006E0000303030303030303FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFFF2 +:20070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:20072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:20074000E0E0E0E0E0E0E0E000000000000000000000000000000000000000000000000099 +:20076000FCFEFFFFFFFDF9F1FEFCF8F0E0C08000FCFEFFFFFFFFFFFF1F3F7FFFFFFFFFFFCD +:200780000406030100000000103060C080000000FEFCE0010FFFFFFF000000008080C0C004 +:2007A000FFFFFFFFFFFFFEFCFFFFFFFFFFFF7F7FE00000000000000000000000000000006D +:2007C0000000000000000000FF0000000000000000000000010103037F3F0780F0FFFFFFE0 +:2007E000FFFFFFFFFFFFFEFEFFFFFFFFFFFF7F3F00002030343C1C00FFFFFFFFFFFFFFFF77 +:2008000000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +:20082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:2008400000FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:20086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +:2008A000FEFEFEFEFEFEFEFEFBFBFBFBFBFBFBFBFE00000000000000FBF8F8F8F8F8F8F8AF +:2008C000DFDFDFDFDFDFDFDF7F7F7F7F7F7F7F7FDF1F1F1F1F1F1F1F7F00000000000000F1 +:2008E000F8FBFBFBFBFBF8F81FDFDFDFDFDF1F1F000000FEFEFEFEFEF8F8F8FBFBFBFBFBAC +:200900001F1F1FDFDFDFDFDF0000007F7F7F7F7F000000FFFFFFFFFF1F1F1F1F1F1F1F1FB1 +:200920000000000000000080000000000000010180F1FFFFFFFFFEFE0383830707070F0F90 +:20094000FEFCFCFCF8E018F00F0F171F3F383F7F0000000000006060FFFFFFFFFF7F3F3F84 +:200960003090C08406060E0E1F1F0F0F070703030F0F1D1C3E3E3F7F00018080C0406020C9 +:20098000FEFCFCFCF8E018F0F9F0F0F0F0FCFFFFFFFFFFFF3F0F030000008080F0FCFFFE9C +:2009A000FD1BE7FF7F7F3F3FFEFCF8F0E0C08000FEFCF8F0E0C08000FFFFFFFFFFFFFFFFC1 +:2009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +:2009E00040C0800000000000C0C0C0C0C0C0C0C00303030303030303030303030303030347 +:200A0000C0C0C0C0C0C0C0C0F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F9F9F9F9F9F9F9F98E +:200A2000F9F9F9F9F9F9FBFF0303030303030303C0C0C0C0C0C0C0C0DFFFFFFFFFFFFFFFF6 +:200A4000FFFFFFFFFFFFFFFFC6CE8C18383060E0FFFFFFFFFFFFFF00FFFFFF0000000000C8 +:200A600000000000FFFFFF00000000FFFFFFFF00FFFFFFFF000000008000000000FFFFFF04 +:200A80000000000001FFFFFF00000000FFFFFFFF1E3E201C787878F000000000000000006C +:200AA000F0E0E0C0C080C0E0000101030307070FE0E0EEC78100FEFF0E0FEFC70300FFFFFA +:200AC0001E3E201C387878F00000000000000000F0E0E0C0C080C0E00001010307070F0EE6 +:200AE000E0E0EFC18000FFFF0FEF870301FFFFFFFF00000000000000FF7D370403000000C9 +:200B00001E201C38787870F00000000000000001E0E0C0C080C0E0E001030307070F0E0F71 +:200B2000E0EFC18000FFFFFFEF870301FFFFFFFFFF75DD95F43C0C00FF575DD4971E1800BC +:200B4000201C38787870F0E00000000000000101E0C0C080C0E0E0E0030307070F0E0FEF80 +:200B6000EFC18000FFFFFFFF870301FFFFFFFFFFFF5FF690C00000007878F0F0E0E0C0C00F +:200B80001C38787870F0E0E00000000000010103C0C080C0E0E0E0EF0307070F0E0FEF87EA +:200BA0007C7878F0F0E0E0C00000000001010303C080C0E0E0E0EFC107070F0E0FEF87035E +:200BC000DF8301000000FF00C38100000001FF0080C0E0E0E0EFC180070000000000000058 +:200BE0000000000000000000FFFFFFFFFFFFFFFFFEFDFBF7EFDFBF7FFEFDFBF7EFDFBF7F0B +:200C000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:200C200000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:200C4000F8F8F8F8F8F8F8F800FFFFFFFFFF0000DFFFFFFF000000FF80000000000000007E +:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F1E3C6CE8C186C +:200CA000383040C0C0C0C0C0FFFEFCFCF8F1F3E3C7CF8F1B3B3363E3C3838303030303034C +:200CC000FFFFFFFFFFFEF8F8F8F9F9F9F8F8F8F8F8F8F8F8F8F8F8F8FFFFFFFFFFFFFFFFB0 +:200CE000FEFEFCFCF8F1F3E3C6CE8C18383060E0C080800000000000FFFFFFFFFFFEFCFCB0 +:200D0000F8F1F3E3C6CE8C18383060E0C0808000C6CE8C18380040C0F8F1F3E3C7CF8F1B05 +:200D20003B3373E3C3C38303FFFEF8F8F8F9F9F9F9F8F8F8F8F8F8F8FFFFFFFFFFFFFFFF5A +:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0D7DCC7FDC1FFFFFFFFFFFFFFFFEFB5 +:200D6000FFFFFFFFFFFFFEFFF7F3E0F9DDFFFAB0FDFFFFFEFFFDFFFA80C080A070F95F56C7 +:200D8000FEFBF1F9FCBEF74EBBDF73ED5B010000970F070E2EFBEFDD00000000000000006B +:200DA00065AED8600000808382C60F1F7EFDDF8A0FDDEFF6EC7927BF86C00000E1F173DF05 +:200DC000FF41DF711DF505FFFFFFFFFFFFFFFFFFFFFFFFFDE8C0D0F803050E0A0001050FD6 +:200DE0009000000000000000070300081C0F3BDF0103030707070707CD9DB89D383C6E78C9 +:200E0000FF000000000000800707070707070707FF000000000000000704040606060707ED +:200E2000000001030707070707FFFFFFFFFFFFFEFFFAFAFBF8FFF8FFFF08FB8EE3BE20FF67 +:200E4000FFF3F9F8FDFBFFFFFCFCF0E0F0D00080FE00000000000000800000000000000033 +:200E6000C0C0C0C0C08000000003070F1F1F1F1FE020E020A0A0A0E0FFFFFFF7D7C3C5C1C9 +:200E80001F1F1F1D18181818FFDF8F773F7BF1381818181818181C1E3908000000000000A6 +:200EA0001FFFFFFFFFFEFCF8E000000000000000C1C0C0C0C0C0E0F0001F3F7FFFFFFFFF1B +:200EC000F8F8F8F8F8F0E0C0000000000000000000000000000000000000000000000000AA +:200EE0000000000000000000000000000000000000000000000000000000000000000000F2 +:200F0000000000000000000000000000000000000000000000000000FFFFFFFDF7E3D1C06C +:200F2000FFFFFFFFFAF8F4C0E00000000000000080000000000000000000000000000000AF +:200F4000000000000000000000000000000000000000000000000000000000000000000091 +:200F6000000000000000000000000000000000000000000000000000000000000000000071 +:200F8000FFFFDFDFCBC7C3C5FFFFFFFFDFFFB727C0C0C0C0C0C0E0F07F00000000000000F4 +:200FA000FFFFFFDFDBD1C3D7FFFFBF1783C5EFFFCBC0C0C0C0C0E0F07F000000000000002B +:200FC000E0E0E0E0E0E0E0E0FFF8FCF6E3C1C3C30000000000003078C7C0C0C0C0C0E0F0FF +:200FE000FDFBE7DFBBFF5F2DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:201000000000000080C0E0C0FFFAFAFBF8FFF8FFFFC00050F8F4F8F0F0F8BCF8BCFCFEFEE1 +:20102000BF87808080808081FDE10101010171F9879F80808080C0F8FFFFFFFFFFFFFF7FC7 +:20104000000000FFFFFFFFFF000000FCF9F3E7CFFFFFFEFCF9F3E7CF000000808080C0C05D +:201060009F3F7FFFFFFFFFFFC0E0E0E0F0F0F0F87D7B372F1FFFFFFFF8F8FCFCFCFEFEFE98 +:2010800000000000000000007F7F3F3F3F1F1F1FFCFCFCFEFEFEFFFF0F0F0F070707030304 +:2010A000FFFFFFFFFFFFFFFF03818181C0C0C0E0FFFF000000FFFFFFE0E0000000FFFFFFDA +:2010C000FFFFFFFBF3E3C383000103070F1F1F1F00000000000000000F0F0F07070703033D +:2010E000FFFEFCF8F0FFFFFF03010101000000000303000000FFFFFF000000000000000009 +:20110000C0E0F0F8FCFEFFFF00000000000080C0FFFFFF7F3F1F0F03FFFFFFFFFFFFFFFF2B +:201120000100000000FFFFFFFDFB772F1FFFFFFF0000000000000C1E0000000103070F1F94 +:201140003F7FFFFFFFFFFFFF00C0E0F0F8FCFEFFFFFFFFFFFF7F3F1FF8FC000000FFFFFF8D +:201160000F07030000000000FFFFFFFF7F3F1F0FE0F8FCFEFFFFFFFF070100000080C0F068 +:201180001F0F07030100000080C0E0F0FCFEFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFE1D +:2011A000FFFFFFFF00FFFFFFFDFBF7EF1FFFFFFFFFFFFCFBF7EFDFBFFFFF00FFFFFFFFFFCA +:2011C000FFFEFDFBF0FFFFFF7FFFFFFF00FFFFFFFFFFFFFEFEFEFEFEDF9F1F1F1F1F1F1F89 +:2011E000FEBE3E3E3E3E3E3E1F1F0F0713397CFE3F3F1F0F273379FCF8F8F8F8F8F8F878EA +:201200003898C8E0F0F8F8F80000000000000000F8F8F8F8F8F8F8F80000000000000000BE +:201220007F3F9FCFE7F3F9FCF8F8F8F8F8F8F8F8FEFFFFFFFFFFFFFF783898CFE7F3F9FC16 +:20124000F8F8F8F8F8F8F8F8FFFFFFFFFFFFFEFEF8F8F8F8F8F8F8F0FEFCFCFCF8F8F8F056 +:20126000F0F0E0E0E0C0C0C0F0F0E0E0E0FFFFFF808080000000000080E0C08F1F1F1F3F66 +:2012800000000000000000000000000000000006000000FFFFFFFFFF0F1F3FFFFFFEFCF8F0 +:2012A0000F03000000000000F0E0C00000000000000000000000000000000000000000008C +:2012C00000000000000000000000000000000000000000000000000000000000000000000E +:2012E0000000000000000103070F1F3F7FFFFFFF070F1F0000FFFFFFFFFFFF0000FFFFFFCE +:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFF6D +:20132000000000E7F7FFFFFFE0F0F0F8F8F8F8F80000000000000008000000808000000032 +:20134000000000000103070F1C3E7FFFFFFFFEFC1F3F1F0F07030000F8F0E0C08000000005 +:20136000070F1F3FFFFFFFFF0000000000000000FFFFFFFCF8F0E0C0C08000000001030731 +:20138000800000000103070F0F1F7FFFFFFFFFFF3F7FFF0000FFFFFFFFFEFCF8F0E0C000D0 +:2013A000FEFCF8F0E0FFFFFF0000000000FFFFFFFFFFFFFEFEFEFEFEDF9F1F1F1F1F1F1F46 +:2013C0001F1F1F1F1F3F7FFF3F3F3F3F3F3F7FFFFFFFFFFFFFFFFEFDFFFFE0DFBF7FFFFFCF +:2013E000FBF7EFDF80FFFFFFF98901010101031FBF87808080878F80FFFF3F7FFFFFFFFFF4 +:20140000FFFF00FFFFFFFFFFFFFF00FFFEFDFBF7FFFFFFFF00FFFFFFEFDFBF7FFFFFFFFFE8 +:20142000FEDC80FBFFFFFFFFFEFDFBF7FFFFFF7F0101030303070707FFFFFFFEFEFEFEFEDF +:20144000DF9F1F1F1F1F1F1FF8F8F8783898D8C8FEBE3E3E3E3E3E3E1F1F1F1F0F2777F338 +:201460001F1F0F27333B397CF9FCFEFEFFFFFFFFFEFFFFFFFFFFFFFF7F7F3F9FCFEFE7F37D +:20148000C8E0F0F8F8F8F8F80000000000000000F3F9FDFCFEFFFFFFF8F8F8FF7F3FBF9FF9 +:2014A0000000000000000000FDE10101E1F1B1018080879F9F80C0F801F1F9F98901031F3B +:2014C000007945454579414100020508080F08E8002222A29488888800F78484E78584F4BE +:2014E0000080404080008040007A42437242427A002F2828AE68282F00456D55544444442A +:2015000000101010A04040400000000000000000000000000000000000000000000000003B +:20152000000000000000000000000000000000000004060606060606061E3E000000000021 +:2015400000000008047E04080000000000000000000000000001030308183870E0C08818E6 +:2015600002000001030303033878F8F8F8F8F0E0F3F3E3E2E0E1E0E0CF9F3F7FFFFF0000A6 +:20158000E3E5E6E3E1F1F1F1FC56AAFCC4CCDCFCF1E3E3E7FFFFFFFFFCFCFEFEFFFFFFFF1C +:2015A000FFFFF7EFDFBF7F7F3F3F3F7FFFFFFFFF7B73737371717B7F0000000000000000C3 +:2015C000000000000000030200182040603C7220000002020100000030786CE278241000B9 +:2015E000BF878080838F8680FDE101E1F1A101C1838180818B86C0F8C10161F1F111031F73 +:20160000BF87808090898F8AFDE1010161F191918A8A8A8B8780C0F89191D171E101031FAE +:20162000BF87808083878181FDE101E1F101E1F183878383878EC0F8B12161F1F911031FA7 +:20164000BF87808387818387FDE10101A1F1D1019C8082868684C0F841B119193911031F75 +:2016600078787030303030200080C0E060606040040C0C0C0C0E1E1EC0C08080800000002C +:2016800000000000000001010F3F2160C080800003030707070F0F1F80E0F0F9FDFFFEFE20 +:2016A0001F3F7F7FFFFFFFFFFCF8F8F0E0C0C0C0FFFFFFFEFEFCFCF880000000000000006D +:2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:2016E000FFFFFFFFFFFFFFFF0000000000010307FFFFFFFFFFFFFFFF0F7FFFFFFFFFFFFF67 +:20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:20172000FFFFFFFFFFFFFFFFF0F0E0E0E0E0C0C0FFFFFFFFFFFFFFFFC0C0808080000000D9 +:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFCFCFCF8F8F0E0F0 +:20176000FFFFFFFFFFFFFFFFE0C0800000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:2017A000FFFFFFFFFFFFFFFFC09F3F7FFFFF00000303030200010000787060400000000082 +:2017C0000305060300000000FC56AAFC000000000000000000000000000000000000000000 +:2017E00000F8F4ECDCBC7C7CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:2018000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +:2018200000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:20184000000000010100050D387CFE83397CFFFF191B3F7FFF7F3F1FFFFFFFFFFFFFFFFFC6 +:201860001F0D050000000000FFFFFFFE3882C67C0000000000004060381010000000000048 +:2018800030B0F8FCFEFCF8F8F86040000000000000000000000010100000000000000000D2 +:2018A000000000000000000000000000000000000000000000000000000000000000000028 +:2018C000000000000000000000000000000000000000000000000000000000000000000008 +:2018E0000000000000000000000000000000000000000000000000000000000000000000E8 +:20190000FFFFFFFFFFFFFFFFFFFDF9F3F7FFEFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFCFDFFFFFFF37 +:20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:20196000FFFFFFFFF7F7E7EFFFFFFFFFFDC1FFFFFFFFFFFFFFFFF7E7FFFFFFFFFFFFFFFF1F +:20198000FFCFDFDEDEFCF9E3FFF7F7F7F7F7FF81FFC79EFCF9E3FF80FFCCF9FFFFFEFCC17C +:2019A000FFFDEDCDFF8CFDF9FFC3FF8FFDFDF9C3FFE1CFFFC7DEFCC1FEC69CF9F3F7F7E7B9 +:2019C000FFC5FDF99FBEFCC1FFC7DEFEC6FCF9C30000000000000000000000000000000013 +:2019E0000000000000000000000000000000000000000000000000000000000000000000E7 +:201A0000FFFFFFFFFFFFFFFFFFEFCFDEFEC6DE9CFFC7DEFCC7DEFC81FFE7CCDFDFFFFCE1E7 +:201A2000FFCFDFDEDEDCF983FFC1DFFFC3DFFF80FFC0DFFFC1DFDF9FFFE0CFDFDEFEFEE024 +:201A4000FFDEDEFEC6DEDE9CFFB1F7F7F7F7FF81FFFEFEFEFEFEFCC1FFDCD9F3DFDFDF9C11 +:201A6000FFDFDFDFDFDFFF80FFFEFEFED6D6DE9CFFFEFEFEDEDEDE9CFFC7DEDEDEDEFCC144 +:201A8000FFC7DEDEFCC1DF9FFFC7DEDEDEDCFBC2FFC7DEDEF8DFDF98FFCFD9FFC7FEFCC198 +:201AA000FFB1F7F7F7F7F7E7FFDEDEDEDEDEFCC1FFDEDEFEFCF9F3F7FFDEDEFEFEEECE9C03 +:201AC000FFFEFCF9FFEFCF9CFFDDDDF9F3F7F7E7FF8EFCF9F3E7FF80FFFFFFFFFFFFFFFF6E +:201AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:201B00000000000000000000000000000000000000000000000000000000000000000000C5 +:201B20000000000000000000000000000000000000000000000000000000000000000000A5 +:201B4000000000000000000000000000000000000000000000000000000000000000000085 +:201B6000000000000000000000000000000000000000000000000000000000000000000065 +:201B80003F7F7F7FFFFFFFFFFEFEFEFEFEFFFFFF04040606070303FF070000000080E0FF14 +:201BA000FE000000000000FF030303070F1F7FFFE0E0E0E0E0E0E0FF7F7F7F7F7F7F7FFFD5 +:201BC000F0F0F0F0F8F8F8FF3F000000000000FFFF000000000000FFF0101808080808FFEB +:201BE0001F1F1F1F0F0F0FFFF0F0F8FCFEFEFFFF30180C04060301FF00000000000000000E +:201C0000000000000101010300000000C0E1F3F700000000EEFFFFFF000000003B3F3FBFD0 +:201C20000000000083C3C3C3000000008FDFFFFC00000000F8F8F8F800000000070F0F0F5B +:201C400000000000FEFFFFFF00000000E3E3E7EF00000000808080800303030303030707CD +:201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFE3E3F3F3F3FFFFFF20 +:201C8000FFFFFFFFFFFFFFFFF8F8F0F0F8F9FBFB1F1F1F1F3FFFFFFFFFFFFFFFFFFFFFFFE5 +:201CA000EFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0000000000000FF80000000000000F018B5 +:201CC0000000000000003F2007070707070FFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FE5 +:201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFBFBFBFFFFFFBF3FF0 +:201D0000FFFFFFFFFFFFFF03FFFFFFFFFFFFFF80FFFFFFFFFFFFFF1FC0E0E0E0E0E0FF8097 +:201D2000000000000000FF00000000000000F316000000000000FC07000101010302060486 +:201D400080800000000000101E1F1F3F3F3F3F3F6040C0C0808000040707070F0F0F0F0F58 +:201D6000FEFEFCFCF8F8F8F00000000000000020FFFFFF7F7F7F7F7FF0E0E0C0C0C0C0C08F +:201D800000000000007FFFFF07030301010181810000000000FFFFFF0000000000030303AE +:201DA0000203010101FFFFFF00000000000303030000000000FFFFFF1E1E1E0E0FFFFFFFA4 +:201DC0000100000000F0F8FC80C0602030101018040C08081810302010303030307060605E +:201DE0003F7E7E7C7C7C78F8040C0C08181838380F1F1F1F1F1F1F3FF0E0E0E0C0C08080E8 +:201E000020607070F0F0F0F07F7F3F3F3F3F3F3FC0818181818080C0FFFFFFFFFFFF7F002D +:201E200081FFFFFFFFFFFF3FFFFFFFFFFFFFFFFF0303838181818181FFFFFFFFFFFFFFFFEA +:201E400081818181818181C0FFFFFFFFFFFFFF00FFFFFFFFFFFFFF3F0303838181818180FD +:201E6000FCFEFEFEFEFCF80008080C040404040C000000000000010120604040C18181037A +:201E8000E0E0E0E0E0E1E1C1F0F0F0E0E0C0C1C1307070F0F0E0E0E03F3F3F3E3E7E7C7C4E +:201EA0008101030303070707F0F8F8F8F8F8F8F83F1F1F1F1F1F1F1FC0C0E0F0FCFFFFFF69 +:201EC0000000000000FCFFFF0F070303010101818181818181C0C0C0FFFFFFFFFFFFFFFFAB +:201EE000C0C0C0C0C0C0E0E00000000000FF7F7F3F3F1F1F1FFFFFFFC0C0C0C0C0C0E0E08D +:201F0000000000000070707808081830602030180103020206040C080303070707070F0FE3 +:201F2000C1C1C1C3C3C2C2C083830307070F0F0FE0E0C0C0C0C0C080787878F0F0E0E0E068 +:201F40000000000000003F3F000000000000FCFE0F0F0F0F08080C04FFFFFFFF0F0F0F0F75 +:201F6000FFFFFFFFFFFFFFFF8181818181810101C0C0C0C0C0C0C0C0FFFFFFFFFFFFFF7FE9 +:201F8000E0E0E0E0E0F0F0F07F7F7F7F7F3F3F3FE0E0E0E0F0F0F0F07C7C3E3F3F3F3F1F48 +:201FA0000C0406038180C0E00000000080C04060081810103020203F0F1F1F1F1F3F3FFF90 +:201FC00080808080808080FF1F1F3F3F3F7F7FFF80818181010101FFC0C08080800000FF86 +:201FE0000000000000000000000000000000000000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4e-a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4e-a.hex new file mode 100644 index 00000000..19086346 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/g-4e-a.hex @@ -0,0 +1,258 @@ +:020000040000FA +:200000000000000000000000000000000000000000000000000000000000000000000000E0 +:20002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:20004000FF80808080808080FF0101010101010180808080808080FF01010101010101FF96 +:20006000FF80808080808081FF0101010101018181808080808080FF81010101010101FF74 +:20008000000000000000000000000000000000000000000000000000000000000000000060 +:2000A000000000000000000000000000000000000000000000000000000000000000000040 +:2000C000000000000000000000000000000000000000000000000000000000000000000020 +:2000E000000000000000000000000000000000000000000000000000000000000000000000 +:200100000000000000000000000000000000000000000000000000000000000000000000DF +:200120000000000000000000000000000000000000000000000000000000000000000000BF +:2001400000000000000000000000000000000000000000000000000000000000000000009F +:2001600000000000000000000000000000000000000000000000000000000000000000007F +:2001800000000000000000000000000000000000000000000000000000000000000000005F +:2001A00000000000000000000000000000000000000000000000000000000000000000003F +:2001C00000000000000000000000000000000000000000000000000000000000000000001F +:2001E0000000000000000000000000000000000000000000000000000000000000000000FF +:200200000000000000000000000000000000000000000000000000000000000000000000DE +:200220000000000000000000000000000000000000000000000000000000000000000000BE +:2002400000000000000000000000000000000000000000000000000000000000000000009E +:2002600000000000000000000000000000000000000000000000000000000000000000007E +:2002800000000000000000000000000000000000000000000000000000000000000000005E +:2002A00000000000000000000000000000000000000000000000000000000000000000003E +:2002C00000000000000000000000000000000000000000000000000000000000000000001E +:2002E000000000000000000000000000000000000000FFFFFFFFFFFF00FFFFFFFFFFFFFF0B +:200300000000000000000000000000000000000000000000000000000000000000000000DD +:200320000000000000000000000000000000000000000000000000000000000000000000BD +:2003400000000000000000000000000000000000000000000000000000000000000000009D +:2003600000000000000000000000000000000000000000000000000000000000000000007D +:2003800000000000000000000000000000000000000000000000000000000000000000005D +:2003A00000000000000000000000000000000000000000000000000000000000000000003D +:2003C00000000000000000000000000000000000000000000000000000000000000000001D +:2003E000E0E0E0E0E0E0E0E00000000000000000E0E0E0E0E0FFFFFF0000000000FFFFFFA3 +:2004000001070F1F3F7F001000F0E0C0801030700001110100000000E1C3860C10204080DF +:200420000707030000000000E0E0C00000000000F8F0E0C0800000001F1F0F0703010000CB +:2004400000000000808080C00000000001010103E0F0F8FFFFFFFFFF070F1FFFFFFFFFFF63 +:20046000000000FFFFFFFFFF20000000000000FF20000000000000FF20000000000000FF24 +:200480001F3F3F3F3E3C3830E0C080000000000001010109193979F90000000000000000AE +:2004A000600000000000000000000008183878F80101000000000000F8F8F8F060000000DA +:2004C000000000000000000800000000000000000000000001010000183878F8F8F8F8F07A +:2004E00000000000000000000103060F1F3F3F3FF8F8F8F0E0C08000000000010101010902 +:200500003E3C3830200000000103070F1F3F3F3F3E00000000000000000000000103060E8D +:20052000193878F8F8F8F8F0FF000000000000001E3E3E3E3E3C3830FFFFFFFFFFFFFFFF71 +:20054000FF1F0F0707030101FF7F7F3F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FB3 +:20056000FFFFFFFFFFFFFFFFDFDFCFC7C7C3C1C1C0C0C0C0C0C0C0C0FF7F7F7F7F7F7F7FAB +:200580007F7F7F7F7E7E7E7E7E7E7E7E7E7E7E7EFFFFFFFFFF7F7F3F1F1F0F0707030101DF +:2005A000FF7F7F3F1F1F0F07070301FFFFFFFFFFFFFFFFFFFFFFFFFF1F1F1F1F1F1F1F1FB5 +:2005C000FFFFFFFFDFDFCFC7C7C3C1C1C0C0C0C0FFFFFFFFFF7F7F7F7F7F7F7F7F7F7F7F4F +:2005E000FFFFFFFFFFFFFFFF1F1F1FFFFFFFFFFFC0C0C0FFFFFFFFFF7E7E7EFFFFFFFFFFFB +:20060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000F2 +:20062000000000000000000000000000000000000103070F1F3F7FFF0000000000000000C4 +:20064000FFFFFFFFFFFFFFFFFEFCF8F0E0C0800000000000000000000000000000000000A0 +:20066000000000000000000000000000000000000000000000000000FEFCF8F0E0C0800078 +:2006800000000000000000000000000000000000000000000000000000000000000000005A +:2006A0001F1F1F1F1F1F1F1FC0C0C0C0C0C0C0C01F1F1F1F1F1F1F1FC0C0C0C0C0C080004A +:2006C0007C78000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:2006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +:20070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +:20072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +:20074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:20076000F8F8FCFEFEFEFEFEFFFFFFFFFFFFFFFF000000000000000000000000000000009F +:20078000000000000000000000000000000000000000000000000000000000000000000059 +:2007A00000000000000000003F3F3F7F7FFF7F7F0001031FFFFFFFFF000000000000000062 +:2007C0000000000000000000FF00000000000000000000000000000000000000000000001A +:2007E000FCFCFCFEFEFFFEFE00000000000000003C7E7E3E3E3C1C00FFFFFFFFFFFFFFFF0A +:2008000000007777777077770000F7F7F7007F7F77777707777777707F00777777707777AF +:200820007777777707777777777777770777777777777077777707777777777077777700AD +:200840000000EFEFEF007E7E0000EEEEEE0EEEEE7E00EEEEEE0EEEEEEEEEEEE0EEEEEE0E67 +:20086000EEEEEEEEE0EEEEEEEEEEEEEEE0EEEEEEEEEEEE0EEEEEEE00EEEE0EEEEEEEE0EE90 +:2008800077777770777777007E7E7E00F7F7F700FEFEFE00EFEFEF00EEEEEE0EEEEEEE0056 +:2008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFF8F8F8F8F8F8F882 +:2008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F1F1F1F1F1F1FFF0000000000000051 +:2008E000F8FFFFFFFFFFF8F81FFFFFFFFFFF1F1F000000FFFFFFFFFFF8F8F8FFFFFFFFFFDF +:200900001F1F1FFFFFFFFFFF000000FFFFFFFFFF000000FFFFFFFFFF1F1F1F1F1F1F1F1F91 +:200920000000000000000000000000000000000000000000000000000000000000000000B7 +:20094000010000000018E000E0100800000700000000000000006060FFFF1F0F07030101A7 +:200960007070000000000002000000000000000003030303010100000F10A0A0C0C0E0E0E8 +:20098000000000000018E000F8F0F0F0F0F0E0E0C080000000001C2040404040000000017A +:2009A00002E4180000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF8F06B +:2009C000E0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C1C3C7CFDFFFFFFFFFFFFF44 +:2009E0003F3F7FFFFFFFFFFFF0F0F0F0F0F0F0F00303030303030303030303FFFFFFFFFF63 +:200A0000F0F0F0FFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:200A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +:200A4000FFFFFFFFFFFFFFFF01010307070F1F1FFFFFFFFF000000FF000000FFFFFFFFFF48 +:200A600000000000000000FF000000FF000000FF00000000FFFFFF007CFFFFFFFFFFFFFF07 +:200A80007FFFFFFFFFFF0000FEFFFFFFFF000000FFFFE3DD7DFEFFFFFFFFFFFFFCFB679FB2 +:200AA000FFFFFFFFFF7F3F9FFFFFFFFFFFFCF9F25F4080000000FEFFF40502010000FFFFE6 +:200AC000FFFFE3DD3DFEFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9FFFFFFFFFFCF9F2F4F7 +:200AE0005E4080000000FFFF0502010000FFFFFF00FFFFFFFFFFFFFF0082C8FBFCFFFFFF9E +:200B0000FFE3DDFD7EFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9F5EFFFFFFFCF9F2F40511 +:200B20004080000000FFFFFF02010000FFFFFFFF0088206808C0F0FC0008020B0801071FF1 +:200B4000E3DDFD7EFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9F5E40FFFFFCF9F2F405028D +:200B600080000000FFFFFFFF010000FFFFFFFE0000A0096F3FFFFFFF7EFFFFFFFFFFFFFF32 +:200B8000DDFD7EFFFFFFFFFFF8F7CF3FFFFFFFFFFFFF7F3F9F5E4080FFFCF9F2F4050201AE +:200BA0007DFEFFFFFFFFFFFFFCFB679FFFFFFFFFFF7F3F9F5E408000FCF9F2F4050201006A +:200BC000C08000FFFFFF00FF0301FFFFFFFE00FF7F3F9F5E408000000080C0F8FFFFFFFF2C +:200BE000FFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C080007C7800000000000009 +:200C00000000000000000000000000000000000000000000000000000000000000000000D4 +:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +:200C4000F8F8F8F8F8F8F8F800FFFFFFFFFF000000000000000000FF7FFFFFFFFFFFFFFF62 +:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000101030760 +:200CA000000070F0F0F0F0F0000000000001030303030303030303030303030303030303DD +:200CC0000000000000000E1E1E3E7E7EFEFEFEFEFEFEFEFEFEFEFEFE0000000000000000A8 +:200CE0000000000000000000000000000000000000000000000000000000000000000000F4 +:200D00000000000000000000000000000000000000000000003070F000010303030303072C +:200D2000030303030303030300000E1E1E3E7E7EFEFEFEFEFEFEFEFE060E0F1F3F3F7FFFE9 +:200D40003F7FFFFFFFFFFFFF00010303070F1F3F002F282338023E000000000000000C1E44 +:200D600000000000000001063F1F077BDD7F3A340F0F030B1F0F0F2EC8E8F1FBFFFF7F7F93 +:200D80007F3B01DFFFFFFFFFFFFFFFFF7BA58992FFFFE7CF2EFFFFFDC9C2908AE041733F31 +:200DA000FDFEF8660490C3C79FCF1F7FFFFFDFDFFFFFFFFFFFFFFFFFCFE6E491F3FBFFFFE6 +:200DC00000BE208EE20AFA000000000001030703000000000000000003070F0A0001050F7B +:200DE00000C0C000000000000703000A1F4F3FFF0103030707070707FFFFFDFFFDFFFFFF95 +:200E000000FFFF0000000080000000000000000000FFFF000000000000030300000001034C +:200E2000000001030707070707FFFFFFFFFFFFFE000505040700070000F704711C41DF00CF +:200E40000000000000000000000000000000000000FCF8000000000000000000000000009E +:200E6000C0C0C0C0C08000000003070F1F1F1F1F00C000C04040400000000000000000005D +:200E800000000000000000000000000000000000000000000000040E000000000000000040 +:200EA0001FFFFFFFFFFEFCF800E0E000000000000000010000002070001F3F7FFFFFFFFFFB +:200EC000F8F8F8F8F8F0E0C0000000000000000000000000000000000000000000000000AA +:200EE0000000000000000000000000000000000000000000000000000000000000000000F2 +:200F00000000000000000000000000000000000000000000000000000000000000000000D1 +:200F2000000000000000000000F9F3000000000000C1E30000000000000000000000000021 +:200F4000000000000000000000000000000000000000000000000000000000000000000091 +:200F6000000000000000000000000000000000000000000000000000000000000000000071 +:200F800000000000000000000000000000000000000000000000207000FF7F000000000043 +:200FA00000000000000000000000000000000000000001000000207000FF7F000000000022 +:200FC00000000000000000000000000000000000FFFFFFFFFFFFFFFF000F07000000207073 +:200FE000FEFCF8FEFFFEFCFE00000000000080E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:201000000000000080C0E0C0C0E5F5540780A7F0E0FFFFD0F8F4F8F0F0F8FCF8FCFCFEFE92 +:20102000000000000000000100000000000070F8071F0000000000000000000000000080A1 +:20104000000000000000000000000103060C183000040F0F060F1F3260C08000000000000A +:20106000E0C080C0C080000000000000000000008080C0C0C0000000000000000000000010 +:201080001F1F0F0F0F0707078080C0C0C0E0E0E00303030101010000F0F0F0F8F8F8FCFC34 +:2010A0000000FFFFFFFFFFFFFC7EFEFEFFFFFFFFFFFF000000000000FFFF0F0F0F0000009B +:2010C000000003070F1F3F7F00000000000060E10001030101010000F3F3F1F9F8F8FCFC1A +:2010E000000103070F000000FC7E7E7E3F3F3F1FFFFFFCF8F000000000000103060C181064 +:201100000000000000000000000000000000000000000080C0E0F0FC0000000000000000C3 +:20112000FEFFFF7F3F000000000080C0C000000000000000000000000000000000000000F5 +:201140000002070300000000000080C08000000000C0E0400080C0E0FFFF010000000000C4 +:20116000F0F8FCFFFFFFFFFF0000000080C0E0F01F07FFFFFFFFFFFFF8FEFFFFFFFFFFFF70 +:201180002133797C7EFFFFFF7F3F1F0F03010000000000000000000000000000000000009B +:2011A0000000000000000000000000000000000000000000000000000000000078F00000C7 +:2011C0000000000000000000000F1E0000000000FFFFFFFEFEFEFFFFDF9F1F1F1F1F1F9F35 +:2011E000FEBE3E3E3E3E3E3EDF7F3F1F1F3F7FFFBFFF7F3F3F3F7FFF00000000000000802F +:20120000C06030180C06030100000000000000800000000000000000C06030180C06030152 +:20122000FFFFFFFFFFFFFFFF0100000000000000FFFFFFFFFFFFFFFF80C060341C0C0607B4 +:201240000000000000000101FFFDF9F1E1C18101010303030707070F010303030707070F26 +:201260000F0F1F1F1F3F3F3F0F0F1F1F1F000000FEFEFEFCFCFCF8F880E0C080000000003D +:20128000000000000000000000000000000000860000000000010307CF7F3F7FFFFEFCF8C0 +:2012A0008FCF7F3F1F3F3F3FF0E0C080800000007E7E7EFCFCFCF8F8000000000000000048 +:2012C000F8F0F0F0E0E0E0C00000000000000000C0C08080800000000000000000000000E6 +:2012E000F8F0F0F0E0E0E1C300001F3F7FFFFFFFC7CF9F8080000000FFFFFF0000000000B6 +:201300000000FFFFFFFEFCF80000C08000000000F0E0C000000000000000FFFFFFFFFFFF14 +:20132000603010180800000018080C040000000000000000000000080000008080000000B5 +:20134000000000000103070F1C3E7FFFFFFFFEFC1F3F7FFFFFFFFEFCF8F0E0C080000000C7 +:20136000FFFFFFFFFFFFFFFF0000000001070F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:201380007FFFFFFFFFFFFFFFF0E0FFFFFFFFFFFFFFFFFF0000000000000103070F1F3FFF97 +:2013A0000103070F1F000000FFFFFFFEFC000000FFFFFFFEFEFEFEFEDF9F1F1F1F1F1F1FD2 +:2013C0001F1F1F1F1F3F7FFF3F3F3F3F3F3F7FFF00000000000000000000000000000000BD +:2013E0000000000000000000F8880000000000000000000000070F00000000000000000057 +:20140000000000000103000000000000E0C00000003C780000000000000000000000000074 +:20142000FEFCF0FBFFFFFFFFF0F0C0D0F8F0F0F40101030303070707FFFFFFFEFEFEFEFF7B +:20144000DF9F1F1F1F1F1F1F00000080C0602030FFBE3E3E3E3EBEFE9FDF5F7F3F3F7FFF9B +:201460007F3F3F3F3F3F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:2014800030180C04060301000000000000008080FFFFFFFFFFFFFFFF0000000484C44464FE +:2014A00060C080000000000000000000E0F0B0000000071F1F00000000F0F8F8880000005F +:2014C00000000000000000000000000000000000000000000000000000000000000000000C +:2014E0000000000000000000000000000000000000000000000000000000000000000000EC +:2015000000000000000000000027642624247400006794162444F4000067942614946400C4 +:20152000006784A6A4F4240000E784E61414E400001C3E3E3E3E3E3E3E3E3E0000000000B7 +:20154000000000000000000000000000000000000000000000001C1C000000000000081833 +:201560001C1818191F1F0F0F3878F8F8F8F8F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:201580001C18181C1C0C0C0C03010103333323030C1C1818000000000303010100000000AF +:2015A000FFFFFFFFFFFFFFFF0182848810204080F8F8E8C8880C040000000000000000007C +:2015C00000000000000000000000000000000000000000000000000000000000000000000B +:2015E00000000000030F0600000000E0F0A000C0030100010B060000C00060F0F01000007D +:201600000000000010090F0A0000000060F090900A0A0A0B070000009090D070E0000000B8 +:201620000000000003070101000000E0F000E0F003070303070E0000B02060F0F8100000B1 +:20164000000000030701030700000000A0F0D0001C0002060604000040B01818381000007F +:2016600000000000000000000080C0E0E0E0E0C00000000000000000C0C0808080000000EA +:2016800000000000000001010F3F3F7FFFFFFFFF03030707070F0F1FFFFFFFFFFFFFFEFEF2 +:2016A0001F3F7F7FFFFFFFFFFCF8F8F0E0C0C0C0FFFFFFFEFEFCFCF880000000000000006D +:2016C000070F1F3FFFFFFFFF0000000000010307FFFFFFFFFFFFFFFF1F3FFFFFFFFFFFFF3F +:2016E000FFFFFFFFFFFFFFFF0000000000010307FFFFFFFFFFFFFFFF0F7FFFFFFFFFFFFF67 +:2017000000000001010303033F3F3F7F7F7F7FFF03070707070707070000000000010307C7 +:201720000707070F0F0F0F0FF0F0E0E0E0E0C0C00F0F0F1F1F1F1F3FC0C080808000000081 +:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFCFCFCF8F8F0E0F0 +:20176000FFFFFFFFFFFFFFFFE0C0800000000000FFFFFFFFFEFCE000FFFFFFFFFFFFFFFE84 +:20178000FFFFFFFFFFFFFEFEFEFCF8F8F0F0E0E0FCFCFCF8F8F8F0F0C0C08080000000008D +:2017A000F0E0E0E0C0808000F0FFFFFFFFFFFFFF0F0F1F1F1F1F1F1FF8F8E8C8880C0400E0 +:2017C0001C18181C1C0C0C0C03010103333323030C1C18180000000003030101000000006D +:2017E00000F8FCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:201800000000000000000000000000000000000000000000000000000000000000000000C8 +:20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:20184000000000010103070F387CFEFFFFFFFFFF1F1F3F7FFF7F3F1FFFFFFFFFFFFFFFFFF0 +:201860001F0F070301000000FFFFFFFFFFFEFE7C000000000080C0E0381010000000000044 +:20188000F0F0F8FCFEFCF8F8F8E0C080000000000000000000001010000000000000000052 +:2018A000000000000000000000000000000000000000000000000000000000000000000028 +:2018C000008080800000000000000000000000000000000000000000000000000000000088 +:2018E0000000000000000000000000000000000000000000000000000000000000000000E8 +:2019000000000000000000000002060C08001030000000000000000000000000000000006B +:20192000000000000000000000000000000000000000000000000000001010302000000037 +:20194000000000000000000000000000000000000000000000000000000000000000000087 +:20196000000000000808181000000000023E000000000000000008180000000000000000CF +:20198000003020212103061C000808080808007E00386103061C007F003306000001033E32 +:2019A0000002123200730206003C00700202063C001E30003821033E013963060C080818B5 +:2019C000003A02066041033E003821013903063C000000000000000000000000000000000B +:2019E0000000000000000000000000000000000000000000000000000000000000000000E7 +:201A000000000000000000000010302101392163003821033821037E001833202000031EC5 +:201A2000003020212123067C003E20003C20007F003F20003E202060001F30202101011F48 +:201A40000021210139212163004E08080808007E000101010101033E0023260C202020631B +:201A6000002020202020007F00010101292921630001010121212163003821212121033EA8 +:201A800000382121033E2060003821212123043D0038212107202067003026003801033E14 +:201AA000004E080808080818002121212121033E0021210103060C08002121010111316369 +:201AC0000001030600103063002222060C080818007103060C18007F0000000000000000BE +:201AE0000000000000000000000000000000000000000000000000000000000000000000E6 +:201B000000000000040E1F1F0000000040E0F0F00F07030100000000E0C08000000000003B +:201B2000113B7F7F3F1F0E040080C0C080000000040E1F1F0F07030140E0F0F0E0C08000E1 +:201B4000000103030100000088DCFEFEFCF870200000000002070F0F000000002070F8F8F2 +:201B60000703010000000000F0E0C08000000000000000000000000000000000000000004A +:201B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:201BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:201BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:201BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F8FCFCFEFFFFFF00000000000000001A +:201C0000000000000101010300000000C0E1F3F700000000EEFFFFFF000000003B3F3FBFD0 +:201C20000000000083C3C3C3000000008FDFFFFC00000000F8F8F8F800000000070F0F0F5B +:201C400000000000FEFFFFFF00000000E3E3E7EF00000000808080800303030303030707CD +:201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFE3E3F3F3F3FFFFFF20 +:201C8000FFFFFFFFFFFFFFFFF8F8F0F0F8F9FBFB1F1F1F1F3FFFFFFFFFFFFFFFFFFFFFFFE5 +:201CA000EFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0000000000000FFFF000000000000F0F856 +:201CC0000000000000003F3F07070707070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFFFFFFFFFF10 +:201D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0E0E0E0E0E0FFFFBD +:201D2000000000000000FFFF000000000000F3F7000000000000FCFF0001010103030707A9 +:201D4000FFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:201D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:201D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:201DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:201DC000FFFFFFFFFFFFFFFF80C0E0E0F0F0F0F8070F0F0F1F1F3F3FFFFFFFFFFFFFFFFF5B +:201DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:201E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:201E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:201E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:201E6000FFFFFFFFFFFFFFFFF8F8FCFCFCFCFCFC00000000000001013F7F7F7FFFFFFFFFD8 +:201E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:201EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:201EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:201EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:201F0000FFFFFFFFFFFFFFFFF8F8F8F0E0E0F0F80103030307070F0FFFFFFFFFFFFFFFFF1B +:201F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:201F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:201F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:201F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:201FA000FCFCFEFFFFFFFFFF0000000080C0C0E00F1F1F1F3F3F3F3FFFFFFFFFFFFFFFFFF0 +:201FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:201FE0000000000000000000000000000000000000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum.zip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum.zip new file mode 100644 index 00000000..278f6ac1 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum.zip differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3e-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3e-.bin new file mode 100644 index 00000000..83d7dbcd Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3e-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3f-.bin new file mode 100644 index 00000000..8bb0025e Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3f-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3h-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3h-.bin new file mode 100644 index 00000000..c0dfcdfa Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-3h-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4d-c.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4d-c.bin new file mode 100644 index 00000000..551c1c77 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4d-c.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4e-c.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4e-c.bin new file mode 100644 index 00000000..e3906dd4 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/a-4e-c.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1l-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1l-.bin new file mode 100644 index 00000000..922551d2 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1l-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1m-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1m-.bin new file mode 100644 index 00000000..e982e9d4 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1m-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1n-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1n-.bin new file mode 100644 index 00000000..0d0c3682 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-1n-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3m-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3m-.bin new file mode 100644 index 00000000..eede9a79 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3m-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3n-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3n-.bin new file mode 100644 index 00000000..83f95582 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-3n-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4a-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4a-.bin new file mode 100644 index 00000000..a79651cc Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4a-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4c-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4c-.bin new file mode 100644 index 00000000..d0a3cbfc Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4c-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4d-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4d-.bin new file mode 100644 index 00000000..50f5b62b Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4d-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4e-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4e-.bin new file mode 100644 index 00000000..f5d9b13b Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4e-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4f-.bin new file mode 100644 index 00000000..a646cd88 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4f-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4h-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4h-.bin new file mode 100644 index 00000000..04d425c5 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4h-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4k-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4k-.bin new file mode 100644 index 00000000..02b59b34 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4k-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4l-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4l-.bin new file mode 100644 index 00000000..5b9db67f Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4l-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4m-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4m-.bin new file mode 100644 index 00000000..440f1b5b Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4m-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4n-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4n-.bin new file mode 100644 index 00000000..a672b274 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-4n-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-5f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-5f-.bin new file mode 100644 index 00000000..9998b185 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-5f-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-6f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-6f-.bin new file mode 100644 index 00000000..9b9dcba0 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/b-6f-.bin @@ -0,0 +1 @@ +   \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1f-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1f-.bin new file mode 100644 index 00000000..06590b34 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1f-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1h-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1h-.bin new file mode 100644 index 00000000..39abc7d5 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1h-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1j-.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1j-.bin new file mode 100644 index 00000000..7f7e332c Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-1j-.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4c-a.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4c-a.bin new file mode 100644 index 00000000..e46a2f0a Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4c-a.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4d-a.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4d-a.bin new file mode 100644 index 00000000..8f443fad Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4d-a.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4e-a.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4e-a.bin new file mode 100644 index 00000000..c616242e Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/g-4e-a.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_proms.bat b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_proms.bat new file mode 100644 index 00000000..d22c0b3d --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_proms.bat @@ -0,0 +1,15 @@ +copy /b a-4e-c.bin + a-4d-c.bin prog.bin +make_vhdl_prom.exe prog.bin prog.vhd + + +copy /b a-3e-.bin + a-3f-.bin + a-3h-.bin snd.bin +make_vhdl_prom.exe snd.bin snd_prg.vhd + +copy /b prog.bin + snd.bin KUNGFUM.ROM + + + +copy /b b-4k-.bin + b-4f-.bin + b-4l-.bin + b-4h-.bin spr1.bin +copy /b b-3n-.bin + b-4n-.bin + b-4m-.bin + b-3m-.bin spr2.bin +copy /b b-4c-.bin + b-4e-.bin + b-4d-.bin + b-4a-.bin spr3.bin +pause \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_vhdl_prom.exe b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_vhdl_prom.exe new file mode 100644 index 00000000..1e5618bf Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/make_vhdl_prom.exe differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.bin new file mode 100644 index 00000000..30f0e057 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.vhd new file mode 100644 index 00000000..f95fd9cf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/prog.vhd @@ -0,0 +1,2070 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity prog is +port ( + clk : in std_logic; + addr : in std_logic_vector(14 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of prog is + type rom is array(0 to 32767) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"F3",X"ED",X"56",X"31",X"00",X"F0",X"21",X"00",X"E0",X"11",X"01",X"E0",X"01",X"FF",X"0F",X"36", + X"00",X"ED",X"B0",X"21",X"25",X"EB",X"22",X"03",X"EB",X"DB",X"04",X"CB",X"7F",X"CA",X"66",X"76", + X"CD",X"8F",X"05",X"21",X"CC",X"05",X"11",X"06",X"EA",X"01",X"78",X"00",X"ED",X"B0",X"2A",X"3F", + X"06",X"7D",X"6C",X"67",X"18",X"4C",X"C7",X"C7",X"08",X"D9",X"2A",X"03",X"EB",X"11",X"20",X"C0", + X"01",X"C0",X"00",X"ED",X"B0",X"3A",X"02",X"E9",X"32",X"00",X"A0",X"3A",X"03",X"E9",X"32",X"00", + X"B0",X"FD",X"E5",X"DD",X"E5",X"C3",X"8D",X"00",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"ED",X"45",X"63",X"AD",X"9C",X"52",X"72",X"CF",X"87",X"41", + X"54",X"37",X"A7",X"43",X"91",X"51",X"A7",X"43",X"91",X"51",X"9F",X"B8",X"E5",X"D6",X"85",X"56", + X"35",X"23",X"22",X"80",X"E9",X"21",X"17",X"E9",X"34",X"FB",X"C3",X"7E",X"48",X"3A",X"00",X"E0", + X"A7",X"FA",X"F8",X"01",X"DB",X"04",X"CB",X"67",X"20",X"1D",X"21",X"05",X"E0",X"CB",X"7E",X"20", + X"16",X"CB",X"46",X"DB",X"00",X"20",X"09",X"E6",X"02",X"20",X"0C",X"CB",X"C6",X"C3",X"F0",X"01", + X"E6",X"01",X"C2",X"F0",X"01",X"CB",X"86",X"DB",X"04",X"CB",X"5F",X"20",X"10",X"21",X"04",X"E9", + X"CB",X"4E",X"28",X"09",X"21",X"0E",X"E8",X"35",X"F2",X"F0",X"01",X"36",X"08",X"3A",X"00",X"E0", + X"FE",X"06",X"3E",X"47",X"28",X"02",X"ED",X"5F",X"21",X"10",X"E0",X"86",X"77",X"23",X"86",X"77", + X"21",X"14",X"E0",X"34",X"7E",X"E6",X"03",X"16",X"00",X"5F",X"3A",X"00",X"E0",X"21",X"7E",X"00", + X"FE",X"06",X"28",X"13",X"21",X"6E",X"00",X"3A",X"80",X"E0",X"E6",X"38",X"FE",X"20",X"38",X"02", + X"3E",X"18",X"0F",X"4F",X"06",X"00",X"09",X"19",X"7E",X"21",X"15",X"E0",X"86",X"77",X"23",X"86", + X"77",X"23",X"86",X"77",X"CD",X"05",X"0D",X"CD",X"48",X"0D",X"CD",X"2F",X"48",X"CD",X"E5",X"0D", + X"3A",X"01",X"E0",X"A7",X"20",X"07",X"3A",X"13",X"E9",X"A7",X"C2",X"17",X"02",X"CD",X"F8",X"03", + X"3A",X"00",X"E0",X"FE",X"0B",X"D2",X"DD",X"01",X"3E",X"18",X"32",X"00",X"EB",X"21",X"25",X"EB", + X"22",X"03",X"EB",X"22",X"01",X"EB",X"3A",X"00",X"E0",X"87",X"5F",X"16",X"00",X"21",X"56",X"01", + X"19",X"5E",X"23",X"56",X"EB",X"E9",X"C4",X"01",X"C4",X"01",X"BE",X"01",X"68",X"01",X"68",X"01", + X"B4",X"01",X"68",X"01",X"B9",X"01",X"BE",X"01",X"CD",X"3F",X"41",X"CD",X"2C",X"40",X"3A",X"80", + X"E0",X"E6",X"07",X"FE",X"04",X"28",X"08",X"CD",X"E5",X"40",X"CD",X"B3",X"1C",X"18",X"06",X"CD", + X"B3",X"1C",X"CD",X"E5",X"40",X"CD",X"B6",X"47",X"3A",X"00",X"E1",X"A7",X"28",X"0E",X"FE",X"0A", + X"38",X"05",X"CD",X"DE",X"37",X"18",X"08",X"CD",X"95",X"35",X"18",X"03",X"CD",X"AC",X"12",X"CD", + X"C7",X"2F",X"3A",X"3F",X"E3",X"A7",X"C4",X"C1",X"2E",X"CD",X"C0",X"39",X"CD",X"72",X"2D",X"CD", + X"06",X"2F",X"18",X"10",X"CD",X"24",X"4D",X"18",X"0B",X"CD",X"36",X"54",X"18",X"06",X"CD",X"00", + X"40",X"CD",X"E5",X"40",X"3A",X"00",X"EB",X"A7",X"28",X"13",X"47",X"FD",X"2A",X"01",X"EB",X"AF", + X"11",X"08",X"00",X"FD",X"77",X"04",X"FD",X"77",X"05",X"FD",X"19",X"10",X"F6",X"3A",X"00",X"E0", + X"FE",X"06",X"3E",X"37",X"28",X"02",X"ED",X"5F",X"21",X"12",X"E0",X"86",X"77",X"23",X"86",X"77", + X"DD",X"E1",X"FD",X"E1",X"D9",X"08",X"FB",X"C9",X"F5",X"3E",X"18",X"32",X"00",X"EB",X"21",X"25", + X"EB",X"22",X"03",X"EB",X"22",X"01",X"EB",X"F1",X"3C",X"C4",X"AE",X"7A",X"CD",X"F8",X"03",X"CD", + X"05",X"0D",X"CD",X"E5",X"0D",X"18",X"AD",X"31",X"00",X"F0",X"3E",X"01",X"32",X"01",X"E0",X"AF", + X"32",X"00",X"E0",X"FB",X"CD",X"78",X"51",X"3E",X"FF",X"32",X"06",X"E0",X"21",X"80",X"E0",X"11", + X"81",X"E0",X"01",X"1F",X"00",X"36",X"00",X"ED",X"B0",X"DB",X"03",X"E6",X"01",X"20",X"08",X"3E", + X"08",X"32",X"80",X"E0",X"32",X"90",X"E0",X"CD",X"6F",X"05",X"32",X"84",X"E0",X"32",X"94",X"E0", + X"21",X"05",X"E0",X"CB",X"BE",X"AF",X"32",X"00",X"E0",X"DB",X"04",X"E6",X"02",X"21",X"10",X"E9", + X"28",X"0B",X"3A",X"02",X"E0",X"E6",X"01",X"28",X"04",X"CB",X"C6",X"18",X"02",X"CB",X"86",X"21", + X"85",X"E0",X"CB",X"4E",X"20",X"0F",X"CB",X"CE",X"CD",X"0D",X"52",X"3E",X"E1",X"CD",X"0F",X"57", + X"3E",X"70",X"CD",X"0F",X"57",X"CD",X"57",X"11",X"AF",X"32",X"07",X"E0",X"32",X"08",X"E0",X"CD", + X"49",X"04",X"3E",X"04",X"32",X"00",X"E0",X"3E",X"24",X"CD",X"FE",X"0D",X"DB",X"04",X"CB",X"67", + X"28",X"0C",X"CB",X"6F",X"20",X"08",X"21",X"04",X"E9",X"CB",X"46",X"C2",X"9C",X"03",X"3A",X"00", + X"E0",X"FE",X"0B",X"CA",X"3A",X"03",X"FE",X"0C",X"CA",X"C0",X"02",X"CD",X"B8",X"0F",X"18",X"DC", + X"3E",X"00",X"CD",X"FE",X"0D",X"3E",X"22",X"CD",X"FE",X"0D",X"3E",X"E1",X"CD",X"82",X"05",X"3E", + X"38",X"CD",X"82",X"05",X"3E",X"01",X"CD",X"82",X"05",X"21",X"09",X"E7",X"7E",X"A7",X"FA",X"EA", + X"02",X"35",X"CD",X"97",X"2F",X"CD",X"5F",X"05",X"18",X"EA",X"11",X"00",X"00",X"D5",X"3E",X"03", + X"CD",X"82",X"05",X"D1",X"2A",X"03",X"E0",X"7D",X"B4",X"28",X"22",X"7B",X"C6",X"01",X"27",X"5F", + X"ED",X"52",X"19",X"30",X"02",X"5D",X"54",X"7D",X"93",X"27",X"6F",X"7C",X"9A",X"27",X"67",X"22", + X"03",X"E0",X"D5",X"CD",X"9A",X"2F",X"3E",X"16",X"CD",X"FE",X"0D",X"18",X"D1",X"3E",X"38",X"CD", + X"82",X"05",X"3A",X"80",X"E0",X"E6",X"01",X"C4",X"C2",X"53",X"3A",X"80",X"E0",X"E6",X"07",X"FE", + X"04",X"CC",X"E9",X"4F",X"CD",X"32",X"04",X"CD",X"50",X"02",X"3E",X"2D",X"CD",X"0F",X"57",X"2A", + X"03",X"E0",X"7D",X"B4",X"CC",X"B5",X"56",X"21",X"84",X"E0",X"35",X"28",X"10",X"3A",X"07",X"E0", + X"A7",X"28",X"0D",X"CD",X"FE",X"0D",X"3E",X"A9",X"CD",X"0F",X"57",X"18",X"03",X"CD",X"F4",X"54", + X"21",X"02",X"E0",X"CB",X"4E",X"28",X"1B",X"3A",X"94",X"E0",X"A7",X"28",X"15",X"7E",X"EE",X"01", + X"77",X"06",X"10",X"21",X"80",X"E0",X"11",X"90",X"E0",X"4E",X"1A",X"EB",X"71",X"12",X"23",X"13", + X"10",X"F7",X"3A",X"84",X"E0",X"A7",X"C2",X"50",X"02",X"21",X"10",X"E9",X"CB",X"86",X"AF",X"32", + X"06",X"E0",X"3A",X"13",X"E9",X"A7",X"C2",X"17",X"02",X"C3",X"7E",X"48",X"21",X"05",X"E0",X"CB", + X"FE",X"3E",X"00",X"CD",X"FE",X"0D",X"AF",X"32",X"00",X"E0",X"CD",X"57",X"11",X"21",X"00",X"00", + X"22",X"02",X"E9",X"CD",X"0D",X"57",X"21",X"5B",X"59",X"CD",X"1C",X"11",X"0E",X"14",X"11",X"A7", + X"D3",X"3A",X"80",X"E0",X"E6",X"F8",X"0F",X"0F",X"0F",X"CD",X"5B",X"05",X"11",X"27",X"D4",X"CD", + X"56",X"05",X"3A",X"06",X"E9",X"E6",X"A0",X"20",X"F9",X"21",X"04",X"E9",X"CB",X"4E",X"C2",X"50", + X"02",X"21",X"06",X"E9",X"CB",X"7E",X"20",X"06",X"CB",X"6E",X"20",X"07",X"18",X"EB",X"CD",X"1B", + X"04",X"18",X"C9",X"CD",X"32",X"04",X"18",X"C4",X"21",X"80",X"E8",X"35",X"23",X"7E",X"A7",X"28", + X"01",X"35",X"23",X"7E",X"A7",X"28",X"01",X"35",X"23",X"7E",X"A7",X"28",X"01",X"35",X"23",X"7E", + X"A7",X"28",X"01",X"35",X"23",X"7E",X"A7",X"28",X"01",X"35",X"C9",X"21",X"80",X"E0",X"35",X"7E", + X"E6",X"07",X"FE",X"07",X"C0",X"7E",X"E6",X"F8",X"FE",X"F8",X"20",X"02",X"3E",X"28",X"F6",X"04", + X"77",X"C9",X"21",X"80",X"E0",X"34",X"7E",X"E6",X"07",X"FE",X"05",X"C0",X"7E",X"E6",X"F8",X"C6", + X"08",X"FE",X"30",X"20",X"02",X"3E",X"28",X"77",X"C9",X"32",X"1C",X"E8",X"3E",X"01",X"32",X"00", + X"E0",X"CD",X"44",X"06",X"3A",X"80",X"E0",X"E6",X"01",X"21",X"21",X"00",X"20",X"03",X"21",X"E0", + X"BF",X"E5",X"22",X"17",X"E8",X"CD",X"9B",X"0E",X"AF",X"32",X"15",X"E9",X"CD",X"56",X"57",X"3A", + X"1C",X"E8",X"A7",X"CC",X"E5",X"04",X"3E",X"02",X"32",X"00",X"E0",X"3E",X"27",X"CD",X"0F",X"57", + X"21",X"07",X"00",X"22",X"17",X"E8",X"21",X"15",X"E9",X"34",X"21",X"A1",X"5A",X"CD",X"BF",X"04", + X"3E",X"0B",X"CD",X"0F",X"57",X"21",X"15",X"E9",X"34",X"21",X"F0",X"5A",X"CD",X"BF",X"04",X"3A", + X"1C",X"E8",X"A7",X"21",X"3F",X"05",X"CC",X"1C",X"11",X"3E",X"54",X"CD",X"0F",X"57",X"E1",X"22", + X"17",X"E8",X"CD",X"56",X"57",X"21",X"00",X"00",X"22",X"14",X"E0",X"22",X"16",X"E0",X"C9",X"3A", + X"80",X"E0",X"E6",X"07",X"C8",X"E6",X"01",X"CA",X"1C",X"11",X"CD",X"56",X"57",X"3A",X"15",X"E9", + X"FE",X"02",X"C0",X"21",X"D9",X"04",X"C3",X"1C",X"11",X"FD",X"67",X"D6",X"FE",X"92",X"81",X"7F", + X"FD",X"A7",X"D6",X"83",X"FF",X"21",X"FD",X"04",X"CD",X"1C",X"11",X"3A",X"02",X"E0",X"E6",X"01", + X"3C",X"CD",X"08",X"11",X"CD",X"1C",X"11",X"CD",X"56",X"05",X"C3",X"1C",X"11",X"FD",X"67",X"D3", + X"FE",X"DB",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"FD",X"A7",X"D3",X"20",X"FF",X"2D",X"50",X"4C",X"41",X"59",X"45",X"52", + X"20",X"FF",X"2D",X"46",X"4C",X"4F",X"4F",X"52",X"20",X"FD",X"E7",X"D3",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"FF",X"FE", + X"DB",X"FD",X"2C",X"D4",X"20",X"52",X"45",X"41",X"44",X"59",X"20",X"FD",X"6C",X"D4",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"FF",X"3A",X"80",X"E0",X"E6",X"07",X"3C",X"C3",X"08",X"11",X"3A", + X"83",X"E8",X"A7",X"C0",X"3E",X"03",X"32",X"83",X"E8",X"3E",X"16",X"CD",X"FE",X"0D",X"C9",X"DB", + X"03",X"2F",X"E6",X"0C",X"0F",X"0F",X"C6",X"02",X"FE",X"04",X"D0",X"3C",X"FE",X"03",X"C8",X"3E", + X"02",X"C9",X"32",X"82",X"E8",X"CD",X"E3",X"0F",X"3A",X"82",X"E8",X"A7",X"20",X"F7",X"C9",X"DB", + X"03",X"2F",X"1F",X"1F",X"1F",X"1F",X"47",X"21",X"0A",X"E9",X"DB",X"04",X"CB",X"57",X"20",X"11", + X"78",X"3C",X"E6",X"03",X"77",X"23",X"78",X"1F",X"1F",X"E6",X"03",X"FE",X"02",X"DE",X"F5",X"77", + X"C9",X"78",X"3C",X"E6",X"0F",X"FE",X"07",X"38",X"0A",X"FE",X"09",X"38",X"04",X"FE",X"0E",X"38", + X"02",X"3E",X"01",X"CB",X"5F",X"28",X"01",X"3C",X"77",X"23",X"77",X"C9",X"00",X"14",X"95",X"54", + X"41",X"2E",X"00",X"15",X"38",X"41",X"41",X"41",X"00",X"15",X"72",X"4E",X"4E",X"49",X"00",X"16", + X"52",X"41",X"41",X"41",X"00",X"18",X"21",X"49",X"4B",X"4F",X"00",X"19",X"85",X"41",X"49",X"2E", + X"00",X"20",X"07",X"41",X"4E",X"4F",X"00",X"21",X"01",X"4D",X"2E",X"4B",X"00",X"25",X"51",X"49", + X"49",X"41",X"00",X"25",X"70",X"48",X"41",X"54",X"00",X"26",X"35",X"41",X"2E",X"54",X"00",X"28", + X"11",X"59",X"45",X"2E",X"00",X"30",X"21",X"53",X"41",X"49",X"00",X"35",X"50",X"49",X"48",X"4D", + X"00",X"38",X"10",X"41",X"4E",X"49",X"00",X"39",X"18",X"54",X"53",X"49",X"00",X"39",X"75",X"42", + X"41",X"48",X"00",X"40",X"10",X"54",X"2E",X"4B",X"00",X"43",X"15",X"53",X"55",X"49",X"00",X"48", + X"52",X"4E",X"2E",X"41",X"21",X"80",X"00",X"22",X"02",X"E9",X"21",X"25",X"EB",X"11",X"26",X"EB", + X"01",X"BF",X"00",X"36",X"00",X"ED",X"B0",X"CD",X"4D",X"07",X"CD",X"BE",X"06",X"21",X"80",X"E3", + X"11",X"81",X"E3",X"01",X"31",X"01",X"36",X"00",X"ED",X"B0",X"CD",X"66",X"08",X"21",X"8A",X"08", + X"09",X"7E",X"32",X"00",X"E1",X"A7",X"28",X"11",X"21",X"B0",X"08",X"11",X"60",X"E3",X"01",X"18", + X"00",X"CD",X"B2",X"06",X"3E",X"01",X"32",X"80",X"E3",X"21",X"20",X"E5",X"11",X"21",X"E5",X"01", + X"43",X"01",X"36",X"00",X"ED",X"B0",X"CD",X"66",X"08",X"21",X"9E",X"08",X"09",X"7E",X"A7",X"C8", + X"32",X"00",X"E1",X"21",X"20",X"09",X"11",X"00",X"E5",X"01",X"11",X"00",X"CD",X"B2",X"06",X"C3", + X"53",X"3D",X"87",X"C5",X"4F",X"09",X"C1",X"7E",X"23",X"66",X"6F",X"ED",X"B0",X"C9",X"21",X"00", + X"E7",X"11",X"01",X"E7",X"01",X"23",X"00",X"36",X"00",X"ED",X"B0",X"3A",X"80",X"E0",X"E6",X"07", + X"87",X"4F",X"21",X"80",X"08",X"09",X"7E",X"23",X"66",X"6F",X"22",X"03",X"E0",X"3E",X"3F",X"32", + X"09",X"E7",X"21",X"00",X"50",X"22",X"10",X"E7",X"3A",X"80",X"E0",X"E6",X"01",X"32",X"01",X"E1", + X"28",X"2B",X"21",X"00",X"E7",X"36",X"20",X"23",X"36",X"40",X"21",X"40",X"CE",X"22",X"02",X"E1", + X"21",X"00",X"09",X"22",X"12",X"E7",X"21",X"00",X"10",X"22",X"07",X"E7",X"21",X"00",X"CD",X"22", + X"06",X"E1",X"21",X"C0",X"02",X"22",X"04",X"E1",X"3E",X"01",X"C3",X"49",X"07",X"3A",X"80",X"E0", + X"E6",X"07",X"21",X"E0",X"10",X"FE",X"04",X"20",X"03",X"21",X"00",X"10",X"22",X"02",X"E1",X"21", + X"60",X"D5",X"22",X"12",X"E7",X"21",X"00",X"D0",X"22",X"07",X"E7",X"21",X"40",X"DC",X"22",X"06", + X"E1",X"21",X"C0",X"11",X"22",X"04",X"E1",X"3E",X"DF",X"32",X"14",X"E7",X"C9",X"21",X"00",X"E2", + X"11",X"01",X"E2",X"01",X"52",X"01",X"36",X"00",X"ED",X"B0",X"3A",X"80",X"E0",X"E6",X"07",X"FE", + X"04",X"20",X"2E",X"21",X"00",X"06",X"22",X"42",X"E3",X"21",X"80",X"07",X"22",X"4E",X"E3",X"21", + X"00",X"50",X"22",X"44",X"E3",X"22",X"50",X"E3",X"3E",X"04",X"32",X"46",X"E3",X"3E",X"07",X"32", + X"52",X"E3",X"3E",X"40",X"32",X"4C",X"E3",X"3E",X"50",X"32",X"40",X"E3",X"3E",X"05",X"32",X"47", + X"E3",X"DD",X"21",X"D8",X"E2",X"DD",X"36",X"0A",X"3F",X"DD",X"36",X"07",X"07",X"21",X"00",X"50", + X"22",X"DC",X"E2",X"3A",X"80",X"E0",X"E6",X"01",X"21",X"00",X"15",X"11",X"00",X"31",X"28",X"06", + X"21",X"00",X"CC",X"11",X"00",X"B0",X"22",X"DA",X"E2",X"ED",X"53",X"D3",X"E2",X"CD",X"66",X"08", + X"C5",X"CB",X"21",X"C5",X"C5",X"21",X"B0",X"09",X"09",X"7E",X"23",X"66",X"6F",X"11",X"9C",X"E1", + X"01",X"1D",X"00",X"ED",X"B0",X"21",X"80",X"09",X"C1",X"09",X"7E",X"23",X"66",X"6F",X"B4",X"28", + X"05",X"01",X"08",X"00",X"ED",X"B0",X"C1",X"21",X"E0",X"0B",X"09",X"11",X"96",X"E1",X"ED",X"A0", + X"ED",X"A0",X"AF",X"12",X"C1",X"21",X"18",X"0B",X"09",X"7E",X"32",X"C1",X"E1",X"21",X"08",X"0C", + X"09",X"7E",X"32",X"99",X"E1",X"32",X"9A",X"E1",X"32",X"9B",X"E1",X"FD",X"21",X"00",X"00",X"21", + X"2E",X"0C",X"09",X"09",X"5E",X"23",X"56",X"FD",X"19",X"DD",X"21",X"0A",X"E1",X"11",X"1C",X"0C", + X"06",X"23",X"CD",X"45",X"08",X"FD",X"23",X"10",X"F9",X"21",X"FF",X"E1",X"22",X"08",X"E1",X"CD", + X"66",X"08",X"50",X"59",X"21",X"2C",X"0B",X"19",X"EB",X"29",X"29",X"29",X"19",X"11",X"F0",X"E1", + X"0E",X"09",X"ED",X"B0",X"C9",X"FD",X"7E",X"00",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD",X"51",X"08", + X"F1",X"E6",X"0F",X"87",X"26",X"00",X"6F",X"19",X"7E",X"DD",X"77",X"00",X"23",X"7E",X"DD",X"77", + X"01",X"DD",X"23",X"DD",X"23",X"C9",X"3A",X"80",X"E0",X"6F",X"E6",X"07",X"67",X"7D",X"E6",X"38", + X"FE",X"20",X"38",X"02",X"3E",X"18",X"0F",X"6F",X"0F",X"0F",X"85",X"84",X"4F",X"06",X"00",X"C9", + X"00",X"20",X"00",X"20",X"00",X"20",X"00",X"20",X"00",X"20",X"00",X"01",X"00",X"02",X"00",X"00", + X"03",X"00",X"02",X"00",X"00",X"04",X"00",X"02",X"00",X"00",X"05",X"00",X"02",X"00",X"00",X"00", + X"00",X"0A",X"00",X"00",X"00",X"00",X"0B",X"00",X"00",X"00",X"00",X"0C",X"00",X"00",X"00",X"00", + X"0D",X"00",X"BC",X"08",X"1C",X"09",X"D4",X"08",X"EC",X"08",X"04",X"09",X"00",X"00",X"70",X"00", + X"0D",X"54",X"A8",X"43",X"5A",X"70",X"66",X"CC",X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01", + X"4B",X"01",X"7C",X"00",X"00",X"00",X"70",X"00",X"0D",X"54",X"A8",X"2D",X"43",X"5A",X"66",X"CC", + X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01",X"4B",X"01",X"7C",X"00",X"00",X"00",X"70",X"00", + X"0D",X"54",X"A8",X"1C",X"38",X"43",X"66",X"CC",X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01", + X"4B",X"01",X"7C",X"00",X"00",X"00",X"70",X"00",X"0D",X"54",X"A8",X"1C",X"2D",X"38",X"66",X"CC", + X"00",X"00",X"36",X"00",X"16",X"A9",X"B6",X"01",X"4B",X"01",X"7C",X"00",X"00",X"00",X"00",X"36", + X"00",X"30",X"49",X"00",X"00",X"00",X"61",X"00",X"A4",X"00",X"36",X"00",X"16",X"00",X"52",X"00", + X"49",X"00",X"2D",X"00",X"3C",X"09",X"4D",X"09",X"5E",X"09",X"6F",X"09",X"20",X"00",X"32",X"00", + X"28",X"00",X"33",X"00",X"23",X"00",X"6B",X"07",X"7F",X"3F",X"3F",X"38",X"70",X"32",X"00",X"3B", + X"00",X"3F",X"00",X"50",X"00",X"38",X"00",X"6B",X"07",X"B2",X"3F",X"66",X"38",X"70",X"32",X"00", + X"3B",X"00",X"3F",X"00",X"50",X"00",X"38",X"00",X"38",X"04",X"7F",X"66",X"66",X"1C",X"38",X"3B", + X"00",X"44",X"00",X"4A",X"00",X"5F",X"00",X"44",X"00",X"38",X"04",X"B2",X"66",X"7F",X"1C",X"38", + X"00",X"00",X"A8",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"A8",X"09",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"A8",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"A8",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"B3",X"FF",X"07",X"00",X"2E",X"00",X"D7",X"00", + X"D8",X"09",X"E1",X"09",X"EF",X"09",X"FD",X"09",X"0B",X"0A",X"28",X"0A",X"31",X"0A",X"3F",X"0A", + X"4D",X"0A",X"5B",X"0A",X"78",X"0A",X"81",X"0A",X"8F",X"0A",X"9D",X"0A",X"AB",X"0A",X"C8",X"0A", + X"D1",X"0A",X"DF",X"0A",X"ED",X"0A",X"FB",X"0A",X"99",X"E5",X"66",X"99",X"54",X"A8",X"21",X"16", + X"0B",X"66",X"7F",X"CC",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"1C",X"2D",X"38",X"CC", + X"E5",X"A8",X"FC",X"54",X"A8",X"2D",X"5A",X"70",X"00",X"00",X"00",X"00",X"16",X"54",X"A8",X"99", + X"B7",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"38",X"70",X"A9",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"99",X"7F",X"66",X"7F", + X"CC",X"66",X"4C",X"7F",X"99",X"7F",X"7F",X"4C",X"7F",X"BF",X"33",X"66",X"54",X"A8",X"1F",X"15", + X"0B",X"4C",X"66",X"B2",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"1C",X"2D",X"38",X"B2", + X"E5",X"A8",X"FC",X"54",X"A8",X"21",X"38",X"5A",X"00",X"00",X"00",X"00",X"10",X"54",X"A8",X"7F", + X"B2",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"1C",X"38",X"70",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"99",X"7F",X"7F",X"7F", + X"CC",X"7F",X"66",X"7F",X"99",X"7F",X"7F",X"7F",X"4C",X"B2",X"33",X"66",X"54",X"A8",X"1C",X"13", + X"0B",X"33",X"7F",X"CC",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"10",X"1C",X"2D",X"99", + X"E5",X"7F",X"FC",X"54",X"A8",X"16",X"2D",X"43",X"00",X"00",X"00",X"00",X"0B",X"54",X"A8",X"66", + X"B2",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"1C",X"38",X"70",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"CC",X"CC",X"7F",X"CC", + X"CC",X"7F",X"4C",X"7F",X"CC",X"CC",X"CC",X"4C",X"4C",X"99",X"33",X"66",X"54",X"A8",X"19",X"13", + X"0B",X"19",X"7F",X"E5",X"03",X"54",X"A8",X"2D",X"5A",X"70",X"54",X"A8",X"10",X"1C",X"2D",X"7F", + X"CC",X"54",X"FC",X"54",X"A8",X"16",X"2D",X"43",X"00",X"00",X"00",X"00",X"0B",X"54",X"A8",X"54", + X"A8",X"7F",X"FC",X"70",X"A9",X"A9",X"54",X"54",X"1C",X"1C",X"70",X"66",X"CC",X"54",X"A8",X"54", + X"A8",X"0B",X"16",X"21",X"54",X"A8",X"05",X"08",X"0B",X"03",X"80",X"00",X"E5",X"CC",X"7F",X"CC", + X"E5",X"99",X"7F",X"7F",X"E5",X"CC",X"CC",X"7F",X"00",X"00",X"26",X"33",X"4C",X"00",X"19",X"26", + X"33",X"4C",X"00",X"19",X"33",X"4C",X"66",X"00",X"19",X"4C",X"66",X"7F",X"04",X"3F",X"5A",X"B4", + X"E1",X"1A",X"01",X"49",X"00",X"04",X"3F",X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00",X"04",X"55", + X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00",X"04",X"55",X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00", + X"04",X"66",X"5A",X"B4",X"E1",X"1A",X"01",X"49",X"00",X"04",X"66",X"5A",X"B4",X"E1",X"E1",X"00", + X"52",X"00",X"04",X"66",X"5A",X"B4",X"E1",X"E1",X"00",X"52",X"00",X"04",X"66",X"5A",X"B4",X"E1", + X"E1",X"00",X"52",X"00",X"04",X"66",X"5A",X"B4",X"E1",X"E1",X"00",X"52",X"00",X"04",X"66",X"5A", + X"B4",X"E1",X"E1",X"00",X"52",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04", + X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B", + X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9", + X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4", + X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F", + X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00",X"04",X"7F",X"5A",X"B4",X"E1",X"A9",X"00",X"5B",X"00", + X"03",X"03",X"04",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03", + X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"03",X"05",X"04",X"05",X"04",X"05",X"03", + X"05",X"03",X"05",X"03",X"05",X"05",X"05",X"05",X"0D",X"0C",X"0B",X"0A",X"09",X"0B",X"0A",X"09", + X"08",X"08",X"0A",X"09",X"09",X"08",X"07",X"09",X"08",X"08",X"07",X"07",X"80",X"00",X"00",X"1C", + X"00",X"38",X"00",X"70",X"00",X"E1",X"04",X"1C",X"04",X"38",X"04",X"70",X"04",X"E1",X"56",X"0C", + X"79",X"0C",X"9C",X"0C",X"BF",X"0C",X"E2",X"0C",X"56",X"0C",X"79",X"0C",X"9C",X"0C",X"BF",X"0C", + X"E2",X"0C",X"56",X"0C",X"79",X"0C",X"9C",X"0C",X"BF",X"0C",X"E2",X"0C",X"56",X"0C",X"79",X"0C", + X"9C",X"0C",X"BF",X"0C",X"E2",X"0C",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"03",X"00",X"04",X"42",X"43",X"43",X"42",X"44",X"23",X"34",X"43",X"43",X"43",X"33",X"34", + X"34",X"43",X"43",X"33",X"43",X"34",X"43",X"30",X"00",X"00",X"61",X"03",X"22",X"00",X"30",X"32", + X"40",X"27",X"23",X"00",X"23",X"12",X"73",X"32",X"03",X"27",X"20",X"73",X"32",X"71",X"03",X"02", + X"52",X"32",X"75",X"21",X"63",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"34",X"45",X"13",X"17",X"17",X"73",X"21", + X"37",X"27",X"32",X"63",X"37",X"34",X"32",X"43",X"22",X"32",X"42",X"23",X"23",X"20",X"00",X"01", + X"23",X"03",X"25",X"00",X"70",X"16",X"31",X"06",X"31",X"00",X"25",X"13",X"54",X"23",X"00",X"07", + X"12",X"63",X"61",X"61",X"27",X"12",X"56",X"72",X"16",X"21",X"52",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"06",X"00",X"03", + X"31",X"21",X"23",X"17",X"63",X"61",X"32",X"25",X"72",X"53",X"27",X"32",X"15",X"31",X"06",X"21", + X"73",X"16",X"13",X"50",X"00",X"3A",X"10",X"E9",X"E6",X"01",X"DB",X"01",X"28",X"02",X"DB",X"02", + X"2A",X"06",X"E9",X"CD",X"3B",X"0D",X"22",X"06",X"E9",X"21",X"08",X"E9",X"17",X"CB",X"16",X"17", + X"17",X"CB",X"16",X"17",X"17",X"CB",X"16",X"DB",X"00",X"E6",X"0F",X"47",X"DB",X"02",X"E6",X"10", + X"B0",X"2A",X"04",X"E9",X"CD",X"3B",X"0D",X"22",X"04",X"E9",X"C9",X"2F",X"47",X"AC",X"4F",X"A5", + X"6F",X"79",X"2F",X"A4",X"B5",X"6F",X"60",X"C9",X"0F",X"0F",X"0F",X"47",X"3A",X"11",X"E9",X"17", + X"4F",X"E6",X"49",X"FE",X"49",X"20",X"0A",X"21",X"14",X"E9",X"34",X"7E",X"E6",X"0F",X"CC",X"D6", + X"0D",X"21",X"0C",X"E9",X"11",X"0A",X"E9",X"CD",X"B1",X"0D",X"21",X"0E",X"E9",X"13",X"CD",X"B1", + X"0D",X"21",X"11",X"E9",X"71",X"2B",X"4E",X"2B",X"06",X"04",X"CD",X"A2",X"0D",X"21",X"0D",X"E9", + X"06",X"02",X"CD",X"A2",X"0D",X"79",X"32",X"10",X"E9",X"D3",X"01",X"DB",X"04",X"2F",X"A9",X"E6", + X"01",X"28",X"01",X"3C",X"32",X"16",X"E9",X"3A",X"0A",X"E9",X"A7",X"C0",X"3E",X"02",X"32",X"13", + X"E9",X"C9",X"35",X"F0",X"36",X"0C",X"2B",X"7E",X"A7",X"C8",X"78",X"A9",X"4F",X"A0",X"C0",X"35", + X"C9",X"CB",X"08",X"CB",X"11",X"79",X"E6",X"49",X"FE",X"01",X"C0",X"34",X"3A",X"06",X"E0",X"A7", + X"3E",X"01",X"CC",X"FE",X"0D",X"1A",X"FE",X"01",X"28",X"10",X"FE",X"08",X"30",X"0A",X"21",X"12", + X"E9",X"34",X"BE",X"C0",X"36",X"00",X"3E",X"09",X"D6",X"08",X"21",X"13",X"E9",X"86",X"27",X"30", + X"02",X"3E",X"99",X"77",X"C9",X"21",X"17",X"E9",X"7E",X"A7",X"C8",X"35",X"23",X"7E",X"D3",X"00", + X"F6",X"80",X"D3",X"00",X"23",X"11",X"18",X"E9",X"01",X"0F",X"00",X"ED",X"B0",X"C9",X"E5",X"D5", + X"57",X"CB",X"7A",X"28",X"08",X"3A",X"06",X"E0",X"A7",X"28",X"12",X"CB",X"BA",X"21",X"17",X"E9", + X"7E",X"FE",X"10",X"30",X"08",X"34",X"23",X"5F",X"7A",X"16",X"00",X"19",X"77",X"D1",X"E1",X"C9", + X"E5",X"4F",X"3A",X"00",X"EB",X"47",X"FD",X"2A",X"01",X"EB",X"CB",X"71",X"21",X"20",X"00",X"20", + X"03",X"21",X"D0",X"FF",X"19",X"22",X"05",X"E8",X"E1",X"05",X"04",X"C8",X"7E",X"3C",X"28",X"52", + X"3A",X"05",X"E8",X"CB",X"71",X"20",X"0B",X"86",X"FD",X"77",X"06",X"3A",X"06",X"E8",X"CE",X"00", + X"18",X"09",X"96",X"FD",X"77",X"06",X"3A",X"06",X"E8",X"DE",X"00",X"FD",X"77",X"07",X"23",X"3A", + X"16",X"E9",X"5F",X"7E",X"93",X"5F",X"3A",X"07",X"E8",X"83",X"FD",X"77",X"02",X"3A",X"08",X"E8", + X"CE",X"00",X"FD",X"77",X"03",X"23",X"7E",X"E6",X"1F",X"FD",X"77",X"00",X"7E",X"07",X"07",X"E6", + X"03",X"B1",X"FD",X"77",X"05",X"23",X"7E",X"FD",X"77",X"04",X"11",X"08",X"00",X"FD",X"19",X"23", + X"10",X"AA",X"FD",X"22",X"01",X"EB",X"78",X"32",X"00",X"EB",X"C9",X"21",X"A7",X"59",X"CD",X"1C", + X"11",X"CD",X"A5",X"10",X"CD",X"AB",X"10",X"CD",X"CF",X"10",X"CD",X"D9",X"10",X"CD",X"E6",X"10", + X"3A",X"1C",X"E8",X"A7",X"CC",X"1A",X"0F",X"3E",X"03",X"32",X"81",X"E8",X"3A",X"09",X"E7",X"32", + X"1A",X"E8",X"3A",X"E2",X"E2",X"32",X"19",X"E8",X"CD",X"78",X"0F",X"CD",X"6B",X"0F",X"11",X"A0", + X"D0",X"01",X"94",X"05",X"3E",X"A1",X"CD",X"10",X"11",X"3C",X"13",X"10",X"F9",X"3A",X"80",X"E0", + X"E6",X"07",X"3C",X"67",X"3E",X"A6",X"11",X"E0",X"D0",X"CD",X"0A",X"0F",X"3C",X"11",X"20",X"D1", + X"CD",X"0A",X"0F",X"11",X"E1",X"D0",X"0E",X"94",X"3E",X"A8",X"CD",X"01",X"0F",X"11",X"21",X"D1", + X"3C",X"06",X"04",X"CD",X"10",X"11",X"13",X"10",X"FA",X"C9",X"6C",X"06",X"05",X"0E",X"94",X"CD", + X"10",X"11",X"13",X"2D",X"20",X"01",X"0C",X"10",X"F6",X"C9",X"3A",X"80",X"E0",X"E6",X"F8",X"0F", + X"0F",X"0F",X"47",X"DB",X"03",X"E6",X"01",X"20",X"01",X"05",X"78",X"A7",X"C8",X"FE",X"03",X"38", + X"02",X"3E",X"03",X"47",X"0E",X"80",X"11",X"29",X"D1",X"CD",X"3F",X"0F",X"10",X"FB",X"C9",X"3E", + X"B8",X"CD",X"4F",X"0F",X"D5",X"21",X"3E",X"00",X"19",X"EB",X"CD",X"4F",X"0F",X"D1",X"C9",X"CD", + X"10",X"11",X"3C",X"CD",X"10",X"11",X"3C",X"C9",X"11",X"29",X"D1",X"AF",X"4F",X"CD",X"63",X"0F", + X"11",X"69",X"D1",X"06",X"06",X"CD",X"10",X"11",X"10",X"FB",X"C9",X"11",X"16",X"D1",X"21",X"19", + X"E8",X"3A",X"E2",X"E2",X"0E",X"15",X"18",X"0B",X"11",X"96",X"D0",X"21",X"1A",X"E8",X"3A",X"09", + X"E7",X"0E",X"14",X"96",X"FA",X"8F",X"0F",X"FE",X"03",X"38",X"0A",X"3E",X"03",X"18",X"06",X"FE", + X"FD",X"30",X"02",X"3E",X"FD",X"86",X"77",X"06",X"08",X"D6",X"08",X"6F",X"38",X"05",X"FA",X"AD", + X"0F",X"3E",X"8A",X"C6",X"78",X"FE",X"77",X"20",X"08",X"3E",X"02",X"18",X"04",X"2E",X"FF",X"3E", + X"03",X"CD",X"10",X"11",X"7D",X"10",X"E2",X"C9",X"3A",X"00",X"E0",X"FE",X"03",X"28",X"24",X"2A", + X"03",X"E0",X"11",X"CD",X"FC",X"19",X"38",X"1B",X"21",X"08",X"E0",X"7E",X"A7",X"20",X"06",X"3E", + X"00",X"CD",X"FE",X"0D",X"34",X"21",X"85",X"E8",X"7E",X"A7",X"20",X"07",X"36",X"38",X"3E",X"97", + X"CD",X"FE",X"0D",X"21",X"1B",X"E8",X"3A",X"80",X"E8",X"BE",X"28",X"4E",X"77",X"CD",X"78",X"0F", + X"CD",X"6B",X"0F",X"21",X"E0",X"D0",X"3A",X"80",X"E0",X"E6",X"07",X"87",X"5F",X"16",X"00",X"19", + X"3A",X"80",X"E8",X"CB",X"DC",X"3A",X"80",X"E8",X"E6",X"18",X"3E",X"95",X"28",X"01",X"3D",X"77", + X"11",X"40",X"00",X"19",X"77",X"3A",X"1C",X"E8",X"A7",X"20",X"3F",X"47",X"DB",X"03",X"E6",X"01", + X"3A",X"80",X"E0",X"20",X"02",X"D6",X"08",X"FE",X"20",X"38",X"0F",X"3A",X"80",X"E8",X"E6",X"18", + X"28",X"05",X"CD",X"1A",X"0F",X"18",X"03",X"CD",X"58",X"0F",X"3A",X"85",X"E0",X"E6",X"01",X"20", + X"19",X"2A",X"81",X"E0",X"11",X"00",X"50",X"ED",X"52",X"38",X"0F",X"21",X"85",X"E0",X"CB",X"C6", + X"2B",X"34",X"3E",X"98",X"CD",X"FE",X"0D",X"CD",X"E6",X"10",X"3A",X"00",X"E0",X"FE",X"03",X"28", + X"1F",X"FE",X"0C",X"28",X"1B",X"21",X"81",X"E8",X"7E",X"A7",X"20",X"14",X"36",X"03",X"2A",X"03", + X"E0",X"7D",X"D6",X"01",X"27",X"6F",X"7C",X"DE",X"00",X"27",X"67",X"38",X"03",X"22",X"03",X"E0", + X"CD",X"D9",X"10",X"3A",X"83",X"E0",X"4F",X"ED",X"5B",X"81",X"E0",X"3A",X"82",X"E9",X"2A",X"80", + X"E9",X"91",X"38",X"06",X"20",X"0F",X"ED",X"52",X"30",X"0B",X"79",X"32",X"82",X"E9",X"ED",X"53", + X"80",X"E9",X"CD",X"CF",X"10",X"AF",X"11",X"83",X"E0",X"18",X"05",X"3E",X"01",X"11",X"93",X"E0", + X"21",X"02",X"E0",X"AE",X"EB",X"E6",X"01",X"11",X"29",X"D0",X"20",X"03",X"11",X"14",X"D0",X"0E", + X"15",X"7E",X"2B",X"CD",X"08",X"11",X"CD",X"FD",X"10",X"CD",X"FD",X"10",X"AF",X"18",X"39",X"21", + X"82",X"E9",X"11",X"1F",X"D0",X"0E",X"00",X"18",X"E8",X"0E",X"14",X"21",X"04",X"E0",X"11",X"EA", + X"D0",X"CD",X"FD",X"10",X"18",X"17",X"3A",X"84",X"E0",X"11",X"62",X"D1",X"6F",X"06",X"07",X"0E", + X"03",X"3E",X"FE",X"2D",X"20",X"01",X"AF",X"CD",X"10",X"11",X"10",X"F7",X"C9",X"7E",X"2B",X"F5", + X"0F",X"0F",X"0F",X"0F",X"CD",X"08",X"11",X"F1",X"E6",X"0F",X"C6",X"90",X"27",X"CE",X"40",X"27", + X"EB",X"77",X"CB",X"DC",X"71",X"CB",X"9C",X"23",X"EB",X"C9",X"4E",X"23",X"7E",X"23",X"3C",X"C8", + X"3C",X"28",X"F7",X"3C",X"28",X"07",X"D6",X"03",X"CD",X"10",X"11",X"18",X"EF",X"5E",X"23",X"56", + X"18",X"E9",X"4E",X"23",X"7E",X"23",X"3C",X"C8",X"3C",X"28",X"F7",X"3C",X"28",X"10",X"D6",X"03", + X"CD",X"10",X"11",X"FE",X"20",X"20",X"ED",X"3E",X"0B",X"CD",X"0F",X"57",X"18",X"E6",X"5E",X"23", + X"56",X"18",X"E0",X"16",X"01",X"18",X"02",X"16",X"DB",X"1E",X"20",X"01",X"00",X"08",X"21",X"00", + X"D0",X"FD",X"21",X"00",X"D8",X"73",X"FD",X"72",X"00",X"23",X"FD",X"23",X"0B",X"78",X"B1",X"20", + X"F4",X"C9",X"AF",X"29",X"17",X"6C",X"67",X"D5",X"11",X"10",X"00",X"19",X"D1",X"22",X"15",X"E8", + X"19",X"22",X"13",X"E8",X"3A",X"06",X"E7",X"87",X"5F",X"16",X"00",X"21",X"4D",X"66",X"19",X"5E", + X"23",X"56",X"FD",X"21",X"00",X"00",X"FD",X"19",X"2A",X"17",X"E7",X"FD",X"7E",X"00",X"FE",X"FF", + X"C8",X"5F",X"16",X"00",X"19",X"ED",X"5B",X"13",X"E8",X"ED",X"52",X"30",X"54",X"2A",X"17",X"E7", + X"FD",X"5E",X"01",X"16",X"00",X"19",X"ED",X"5B",X"15",X"E8",X"ED",X"52",X"38",X"43",X"2A",X"12", + X"E7",X"3A",X"01",X"E7",X"E6",X"40",X"28",X"0A",X"FD",X"5E",X"04",X"FD",X"56",X"05",X"ED",X"52", + X"18",X"07",X"FD",X"5E",X"02",X"FD",X"56",X"03",X"19",X"A7",X"ED",X"5B",X"0F",X"E8",X"ED",X"52", + X"38",X"1F",X"2A",X"12",X"E7",X"A7",X"28",X"0A",X"FD",X"5E",X"02",X"FD",X"56",X"03",X"ED",X"52", + X"18",X"07",X"FD",X"5E",X"04",X"FD",X"56",X"05",X"19",X"A7",X"ED",X"5B",X"11",X"E8",X"ED",X"52", + X"D8",X"11",X"06",X"00",X"FD",X"19",X"18",X"90",X"3A",X"00",X"E0",X"FE",X"06",X"C8",X"DB",X"04", + X"2F",X"CB",X"77",X"C9",X"BE",X"38",X"05",X"23",X"BE",X"38",X"01",X"23",X"23",X"23",X"7E",X"C9", + X"22",X"05",X"E8",X"3A",X"06",X"E7",X"21",X"6E",X"12",X"16",X"00",X"5F",X"19",X"7E",X"A7",X"C8", + X"FD",X"21",X"90",X"12",X"87",X"87",X"5F",X"FD",X"19",X"2A",X"10",X"E7",X"FD",X"5E",X"02",X"FD", + X"56",X"03",X"19",X"E5",X"FD",X"5E",X"00",X"FD",X"56",X"01",X"2A",X"12",X"E7",X"3A",X"01",X"E7", + X"E6",X"40",X"28",X"03",X"19",X"18",X"02",X"ED",X"52",X"DD",X"5E",X"02",X"DD",X"56",X"03",X"ED", + X"52",X"ED",X"5B",X"05",X"E8",X"38",X"04",X"ED",X"52",X"18",X"01",X"19",X"D1",X"C9",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"01",X"01",X"00",X"03",X"00",X"02",X"02",X"00",X"00", + X"00",X"00",X"00",X"01",X"01",X"01",X"05",X"05",X"00",X"06",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"02",X"80",X"18",X"00",X"02",X"80",X"13",X"80",X"03",X"00",X"04", + X"80",X"03",X"80",X"18",X"A0",X"02",X"00",X"18",X"20",X"03",X"80",X"0F",X"21",X"00",X"E7",X"CB", + X"4E",X"20",X"12",X"21",X"00",X"E2",X"CD",X"CB",X"12",X"CD",X"FE",X"12",X"CD",X"8F",X"13",X"CD", + X"EE",X"13",X"CD",X"3F",X"14",X"CD",X"3D",X"15",X"C9",X"23",X"23",X"7E",X"A7",X"C8",X"35",X"C2", + X"C9",X"12",X"23",X"4E",X"06",X"00",X"EB",X"21",X"0A",X"E1",X"09",X"09",X"CB",X"BE",X"2A",X"08", + X"E1",X"ED",X"A8",X"ED",X"A8",X"22",X"08",X"E1",X"23",X"36",X"00",X"EB",X"C3",X"CA",X"12",X"00", + X"00",X"00",X"01",X"01",X"01",X"02",X"02",X"02",X"03",X"03",X"03",X"04",X"04",X"04",X"3A",X"01", + X"E7",X"E6",X"80",X"0E",X"E4",X"28",X"02",X"0E",X"1C",X"3A",X"13",X"E7",X"81",X"FE",X"E0",X"D0", + X"32",X"09",X"E8",X"5F",X"E6",X"0F",X"3D",X"F8",X"21",X"EF",X"12",X"06",X"00",X"4F",X"09",X"4E", + X"7B",X"E6",X"F0",X"0F",X"0F",X"5F",X"0F",X"0F",X"83",X"81",X"4F",X"DD",X"21",X"0A",X"E1",X"DD", + X"09",X"DD",X"09",X"DD",X"CB",X"00",X"7E",X"C0",X"2A",X"08",X"E1",X"11",X"13",X"E2",X"ED",X"52", + X"C8",X"47",X"3A",X"01",X"E7",X"E6",X"80",X"21",X"35",X"E2",X"11",X"9A",X"E1",X"28",X"04",X"21", + X"15",X"E2",X"13",X"7E",X"A7",X"C0",X"23",X"7E",X"FE",X"0A",X"D0",X"E5",X"D5",X"34",X"23",X"5F", + X"87",X"83",X"16",X"00",X"5F",X"19",X"72",X"23",X"3A",X"09",X"E8",X"77",X"23",X"DD",X"7E",X"00", + X"77",X"DD",X"7E",X"01",X"2A",X"08",X"E1",X"23",X"77",X"23",X"71",X"22",X"08",X"E1",X"DD",X"CB", + X"00",X"FE",X"E1",X"D1",X"35",X"C0",X"3A",X"99",X"E1",X"77",X"EB",X"2B",X"36",X"01",X"C9",X"21", + X"36",X"E2",X"7E",X"A7",X"C8",X"47",X"16",X"00",X"23",X"7E",X"C6",X"36",X"77",X"23",X"7E",X"8A", + X"D2",X"A4",X"13",X"3D",X"77",X"23",X"23",X"10",X"F0",X"2A",X"37",X"E2",X"7C",X"FE",X"BE",X"30", + X"0B",X"01",X"00",X"12",X"09",X"ED",X"4B",X"12",X"E7",X"ED",X"42",X"D8",X"21",X"55",X"E2",X"7E", + X"FE",X"0A",X"D0",X"34",X"5F",X"21",X"56",X"E2",X"19",X"3A",X"39",X"E2",X"F6",X"58",X"77",X"EB", + X"21",X"36",X"E2",X"35",X"28",X"10",X"7E",X"11",X"37",X"E2",X"21",X"3A",X"E2",X"4F",X"87",X"81", + X"4F",X"06",X"00",X"ED",X"B0",X"C9",X"2B",X"7E",X"A7",X"C8",X"EB",X"CB",X"C6",X"C9",X"21",X"16", + X"E2",X"7E",X"A7",X"C8",X"47",X"16",X"00",X"23",X"7E",X"D6",X"36",X"77",X"23",X"7E",X"9A",X"D2", + X"03",X"14",X"3C",X"77",X"23",X"23",X"10",X"F0",X"2A",X"17",X"E2",X"7C",X"FE",X"22",X"38",X"0C", + X"01",X"00",X"12",X"ED",X"42",X"ED",X"4B",X"12",X"E7",X"ED",X"42",X"D0",X"21",X"55",X"E2",X"7E", + X"FE",X"0A",X"D0",X"34",X"5F",X"21",X"56",X"E2",X"19",X"3A",X"19",X"E2",X"F6",X"30",X"77",X"EB", + X"21",X"16",X"E2",X"35",X"28",X"B0",X"7E",X"11",X"17",X"E2",X"21",X"1A",X"E2",X"18",X"9E",X"3A", + X"60",X"E2",X"47",X"EE",X"28",X"C8",X"3A",X"D8",X"E2",X"E6",X"10",X"3A",X"96",X"E1",X"28",X"03", + X"3A",X"97",X"E1",X"A7",X"28",X"06",X"4F",X"3A",X"61",X"E2",X"B9",X"D0",X"21",X"55",X"E2",X"7E", + X"A7",X"C8",X"4F",X"23",X"CB",X"76",X"20",X"0D",X"CB",X"68",X"28",X"53",X"0D",X"C8",X"23",X"CB", + X"76",X"28",X"F9",X"18",X"04",X"CB",X"58",X"20",X"3F",X"CD",X"24",X"15",X"F5",X"2A",X"12",X"E7", + X"11",X"00",X"12",X"ED",X"52",X"11",X"00",X"BE",X"ED",X"52",X"30",X"02",X"19",X"EB",X"3A",X"D8", + X"E2",X"6F",X"CB",X"65",X"28",X"1B",X"3A",X"97",X"E1",X"A7",X"28",X"0B",X"CB",X"75",X"28",X"11", + X"2A",X"DA",X"E2",X"ED",X"52",X"38",X"0A",X"21",X"35",X"E2",X"F1",X"E6",X"01",X"C8",X"36",X"00", + X"C9",X"21",X"60",X"E2",X"CB",X"DE",X"18",X"3E",X"0D",X"C8",X"23",X"CB",X"76",X"20",X"F9",X"CD", + X"24",X"15",X"F5",X"2A",X"12",X"E7",X"11",X"00",X"12",X"19",X"11",X"00",X"22",X"ED",X"52",X"38", + X"02",X"19",X"EB",X"3A",X"D8",X"E2",X"6F",X"CB",X"65",X"28",X"16",X"3A",X"97",X"E1",X"A7",X"28", + X"0B",X"CB",X"75",X"20",X"0C",X"2A",X"DA",X"E2",X"ED",X"52",X"30",X"05",X"21",X"15",X"E2",X"18", + X"B9",X"21",X"60",X"E2",X"CB",X"EE",X"21",X"61",X"E2",X"34",X"23",X"01",X"10",X"00",X"7E",X"A7", + X"28",X"03",X"09",X"18",X"F9",X"F1",X"77",X"AF",X"23",X"36",X"00",X"23",X"73",X"23",X"72",X"23", + X"36",X"00",X"23",X"36",X"50",X"23",X"77",X"23",X"36",X"07",X"23",X"77",X"23",X"77",X"23",X"36", + X"02",X"23",X"77",X"C9",X"7E",X"0D",X"28",X"07",X"54",X"5D",X"23",X"06",X"00",X"ED",X"B0",X"21", + X"55",X"E2",X"35",X"C9",X"C1",X"11",X"10",X"00",X"DD",X"19",X"10",X"1A",X"C9",X"3A",X"01",X"E7", + X"E6",X"03",X"20",X"03",X"32",X"D2",X"E2",X"21",X"01",X"01",X"22",X"1B",X"E7",X"22",X"1D",X"E7", + X"DD",X"21",X"62",X"E2",X"06",X"05",X"C5",X"21",X"34",X"15",X"E5",X"DD",X"4E",X"00",X"CB",X"61", + X"C8",X"CB",X"69",X"C4",X"26",X"1C",X"CB",X"59",X"C4",X"3D",X"1C",X"CB",X"41",X"DD",X"7E",X"01", + X"C2",X"6E",X"18",X"CB",X"51",X"C2",X"8A",X"16",X"21",X"2F",X"16",X"E5",X"21",X"00",X"E7",X"CB", + X"4E",X"C2",X"E2",X"1B",X"FE",X"01",X"CA",X"AA",X"1B",X"38",X"47",X"FE",X"09",X"CA",X"DD",X"15", + X"30",X"16",X"CD",X"EF",X"1B",X"11",X"00",X"EF",X"19",X"D0",X"CD",X"7A",X"1B",X"79",X"E6",X"28", + X"2F",X"21",X"60",X"E2",X"A6",X"77",X"E1",X"C9",X"CD",X"E7",X"1B",X"DD",X"7E",X"06",X"FE",X"0A", + X"30",X"04",X"DD",X"36",X"06",X"0D",X"CD",X"3E",X"16",X"D8",X"11",X"00",X"FF",X"2A",X"0C",X"E8", + X"19",X"D2",X"20",X"1B",X"C9",X"3E",X"0A",X"DD",X"86",X"06",X"DD",X"77",X"06",X"DD",X"36",X"01", + X"0A",X"C9",X"CD",X"E7",X"1B",X"11",X"00",X"F8",X"19",X"D2",X"C5",X"15",X"C9",X"CD",X"54",X"1B", + X"CD",X"61",X"1C",X"DD",X"BE",X"0F",X"28",X"0A",X"DD",X"35",X"0B",X"28",X"39",X"DD",X"77",X"0F", + X"18",X"09",X"DD",X"35",X"0E",X"20",X"08",X"DD",X"36",X"0B",X"06",X"DD",X"36",X"0E",X"05",X"DD", + X"35",X"07",X"C0",X"3A",X"1C",X"E8",X"A7",X"3E",X"02",X"20",X"0A",X"DB",X"03",X"E6",X"02",X"3E", + X"04",X"20",X"02",X"3E",X"03",X"DD",X"77",X"07",X"21",X"09",X"E7",X"7E",X"A7",X"F8",X"35",X"F0", + X"21",X"1F",X"E7",X"CB",X"CE",X"C9",X"21",X"1A",X"E7",X"35",X"3E",X"09",X"C3",X"90",X"1B",X"21", + X"7B",X"6A",X"DD",X"7E",X"01",X"FE",X"05",X"C2",X"7D",X"1A",X"79",X"C3",X"80",X"1A",X"11",X"80", + X"16",X"CD",X"D2",X"1A",X"D0",X"F5",X"3E",X"91",X"CD",X"FE",X"0D",X"F1",X"FA",X"53",X"16",X"3E", + X"80",X"18",X"24",X"21",X"D2",X"E2",X"34",X"CD",X"C9",X"1A",X"7E",X"20",X"0E",X"FE",X"02",X"3E", + X"80",X"38",X"14",X"3E",X"82",X"28",X"10",X"3E",X"85",X"18",X"0C",X"FE",X"02",X"3E",X"8C",X"38", + X"06",X"3E",X"80",X"28",X"02",X"3E",X"82",X"21",X"D2",X"00",X"EB",X"CD",X"60",X"2F",X"37",X"C9", + X"F2",X"F0",X"F2",X"F2",X"F2",X"02",X"01",X"FF",X"FF",X"FF",X"21",X"22",X"18",X"E5",X"21",X"00", + X"E7",X"CB",X"4E",X"C2",X"E2",X"1B",X"FE",X"09",X"CA",X"DD",X"15",X"D2",X"0B",X"17",X"FE",X"01", + X"CA",X"AA",X"1B",X"D2",X"92",X"15",X"CD",X"E7",X"1B",X"CD",X"28",X"18",X"D8",X"2A",X"0C",X"E8", + X"11",X"00",X"E1",X"19",X"DA",X"7A",X"1B",X"DD",X"CB",X"0B",X"46",X"20",X"26",X"2A",X"0C",X"E8", + X"11",X"00",X"FA",X"19",X"38",X"1D",X"DD",X"CB",X"0B",X"C6",X"3A",X"02",X"E7",X"FE",X"03",X"28", + X"08",X"FE",X"06",X"28",X"04",X"FE",X"07",X"20",X"0A",X"3A",X"13",X"E0",X"21",X"C1",X"E1",X"BE", + X"DA",X"E5",X"17",X"2A",X"10",X"E7",X"11",X"80",X"A1",X"19",X"D8",X"2A",X"0A",X"E8",X"11",X"C0", + X"00",X"CB",X"71",X"28",X"03",X"19",X"18",X"02",X"ED",X"52",X"DA",X"20",X"1B",X"C9",X"DD",X"36", + X"01",X"00",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07",X"C9",X"DD",X"5E",X"0E",X"DD",X"56", + X"0F",X"DD",X"7E",X"06",X"FE",X"0A",X"F5",X"C4",X"70",X"1C",X"CD",X"E2",X"1B",X"F1",X"28",X"1D", + X"11",X"D6",X"FF",X"CD",X"AC",X"1C",X"19",X"CD",X"A5",X"1C",X"EB",X"CD",X"9E",X"1C",X"19",X"11", + X"00",X"50",X"ED",X"52",X"19",X"30",X"01",X"EB",X"CD",X"97",X"1C",X"38",X"C1",X"DD",X"CB",X"0B", + X"4E",X"20",X"1C",X"CD",X"8A",X"1C",X"11",X"60",X"FF",X"19",X"22",X"0F",X"E8",X"11",X"40",X"01", + X"19",X"22",X"11",X"E8",X"CD",X"9E",X"1C",X"11",X"14",X"00",X"CD",X"72",X"11",X"38",X"28",X"DD", + X"35",X"07",X"20",X"18",X"DD",X"7E",X"0A",X"3C",X"DD",X"77",X"0A",X"87",X"5F",X"16",X"00",X"21", + X"FC",X"17",X"19",X"7E",X"DD",X"77",X"07",X"23",X"7E",X"DD",X"77",X"06",X"DD",X"7E",X"06",X"FE", + X"0F",X"D8",X"79",X"EE",X"C0",X"4F",X"C9",X"3A",X"02",X"E7",X"FE",X"03",X"28",X"08",X"FE",X"06", + X"28",X"04",X"FE",X"07",X"20",X"24",X"CD",X"9E",X"1C",X"11",X"0C",X"01",X"3E",X"91",X"CD",X"FE", + X"0D",X"CD",X"E2",X"2E",X"3E",X"07",X"F5",X"CD",X"AC",X"1C",X"EB",X"21",X"00",X"00",X"ED",X"52", + X"CD",X"A5",X"1C",X"DD",X"CB",X"0B",X"CE",X"F1",X"18",X"AE",X"DD",X"36",X"06",X"09",X"CD",X"9E", + X"1C",X"11",X"00",X"0A",X"19",X"AF",X"29",X"07",X"6C",X"67",X"EB",X"CD",X"8A",X"1C",X"CD",X"C9", + X"1A",X"3E",X"80",X"20",X"02",X"3E",X"82",X"CD",X"60",X"2F",X"3E",X"91",X"CD",X"FE",X"0D",X"21", + X"5B",X"1C",X"C3",X"96",X"1B",X"DD",X"36",X"01",X"0A",X"21",X"A0",X"03",X"CD",X"A5",X"1C",X"21", + X"28",X"00",X"DD",X"75",X"0E",X"DD",X"74",X"0F",X"AF",X"C3",X"68",X"17",X"03",X"0A",X"07",X"0C", + X"07",X"0D",X"07",X"0E",X"07",X"0F",X"07",X"10",X"FF",X"0B",X"03",X"0A",X"07",X"0D",X"07",X"0E", + X"07",X"0F",X"07",X"10",X"FF",X"0B",X"03",X"0A",X"07",X"10",X"07",X"0F",X"07",X"0E",X"07",X"0D", + X"FF",X"0B",X"21",X"2F",X"6B",X"C3",X"32",X"16",X"11",X"64",X"18",X"CD",X"D2",X"1A",X"D0",X"F5", + X"3A",X"0B",X"E8",X"E6",X"80",X"CB",X"B1",X"28",X"02",X"CB",X"F1",X"DD",X"71",X"00",X"3E",X"91", + X"CD",X"FE",X"0D",X"F1",X"FA",X"4B",X"18",X"3E",X"81",X"18",X"13",X"21",X"D2",X"E2",X"34",X"7E", + X"FE",X"02",X"3E",X"80",X"DA",X"77",X"16",X"3E",X"81",X"CA",X"77",X"16",X"3E",X"84",X"21",X"BE", + X"00",X"C3",X"7A",X"16",X"FF",X"F0",X"FF",X"FF",X"FF",X"FF",X"01",X"FF",X"FF",X"FF",X"21",X"72", + X"1A",X"E5",X"21",X"00",X"E7",X"CB",X"4E",X"20",X"2A",X"DD",X"6E",X"08",X"DD",X"66",X"09",X"2B", + X"CB",X"7C",X"20",X"06",X"DD",X"75",X"08",X"DD",X"74",X"09",X"87",X"16",X"00",X"5F",X"21",X"97", + X"18",X"19",X"7E",X"23",X"66",X"6F",X"E9",X"28",X"1A",X"AA",X"1B",X"6C",X"19",X"C2",X"19",X"AE", + X"18",X"99",X"19",X"F5",X"CD",X"E2",X"1B",X"F1",X"FE",X"05",X"CA",X"BD",X"19",X"C9",X"CD",X"E2", + X"1B",X"CD",X"49",X"1A",X"30",X"20",X"DD",X"35",X"0A",X"F5",X"3E",X"91",X"CD",X"FE",X"0D",X"F1", + X"28",X"04",X"DD",X"34",X"01",X"C9",X"CD",X"77",X"16",X"21",X"15",X"E2",X"CB",X"71",X"28",X"03", + X"21",X"35",X"E2",X"36",X"00",X"C9",X"11",X"00",X"FF",X"2A",X"0C",X"E8",X"19",X"38",X"0B",X"3E", + X"05",X"21",X"5A",X"00",X"DD",X"36",X"06",X"02",X"18",X"65",X"DD",X"7E",X"08",X"A7",X"CA",X"FD", + X"19",X"DD",X"7E",X"06",X"FE",X"02",X"28",X"65",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"0E",X"A7", + X"C2",X"42",X"19",X"21",X"2B",X"E3",X"7E",X"FE",X"03",X"DD",X"34",X"07",X"D0",X"87",X"86",X"34", + X"23",X"16",X"00",X"5F",X"19",X"E5",X"CD",X"8A",X"1C",X"11",X"C0",X"00",X"79",X"E6",X"40",X"28", + X"03",X"19",X"18",X"02",X"ED",X"52",X"EB",X"E1",X"47",X"DD",X"7E",X"06",X"D6",X"09",X"B0",X"77", + X"23",X"73",X"23",X"72",X"CD",X"BF",X"1D",X"DD",X"35",X"0E",X"DD",X"36",X"07",X"10",X"DD",X"34", + X"06",X"C9",X"DD",X"36",X"06",X"02",X"DD",X"35",X"0B",X"C0",X"2A",X"F5",X"E1",X"3E",X"03",X"DD", + X"75",X"08",X"DD",X"74",X"09",X"DD",X"77",X"01",X"DD",X"36",X"07",X"02",X"C9",X"2A",X"0C",X"E8", + X"11",X"A0",X"F5",X"19",X"21",X"5A",X"00",X"3E",X"00",X"38",X"E4",X"C9",X"CD",X"E2",X"1B",X"3E", + X"02",X"DD",X"BE",X"06",X"28",X"0C",X"DD",X"35",X"07",X"C0",X"DD",X"77",X"06",X"DD",X"36",X"07", + X"03",X"C9",X"CD",X"49",X"1A",X"DA",X"B6",X"18",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"08",X"04", + X"DD",X"36",X"09",X"00",X"DD",X"36",X"01",X"03",X"C9",X"CD",X"EF",X"1B",X"CD",X"49",X"1A",X"DA", + X"B6",X"18",X"DD",X"7E",X"08",X"A7",X"20",X"06",X"DD",X"7E",X"09",X"A7",X"28",X"45",X"11",X"00", + X"F6",X"2A",X"0C",X"E8",X"19",X"DA",X"3C",X"1A",X"CD",X"B8",X"1A",X"38",X"7F",X"79",X"EE",X"40", + X"4F",X"C9",X"CD",X"E2",X"1B",X"CD",X"49",X"1A",X"DA",X"B6",X"18",X"DD",X"7E",X"08",X"A7",X"20", + X"06",X"DD",X"7E",X"09",X"A7",X"28",X"1C",X"11",X"00",X"F7",X"2A",X"0C",X"E8",X"19",X"30",X"0A", + X"11",X"00",X"FE",X"19",X"D0",X"DD",X"36",X"01",X"00",X"C9",X"CD",X"B8",X"1A",X"D8",X"DD",X"36", + X"01",X"05",X"C9",X"DD",X"36",X"01",X"04",X"3A",X"F0",X"E1",X"DD",X"77",X"0B",X"21",X"F1",X"E1", + X"3A",X"10",X"E0",X"BE",X"3E",X"09",X"38",X"02",X"3E",X"0B",X"DD",X"77",X"06",X"23",X"3A",X"11", + X"E0",X"FE",X"55",X"38",X"06",X"23",X"FE",X"AA",X"38",X"01",X"23",X"7E",X"DD",X"77",X"08",X"DD", + X"36",X"0E",X"00",X"DD",X"36",X"07",X"0B",X"C9",X"CD",X"E7",X"1B",X"11",X"00",X"F6",X"19",X"D8", + X"DD",X"7E",X"08",X"A7",X"20",X"06",X"DD",X"7E",X"09",X"A7",X"28",X"B7",X"DD",X"36",X"01",X"03", + X"DD",X"36",X"06",X"02",X"DD",X"36",X"07",X"02",X"C9",X"3A",X"01",X"E7",X"E6",X"03",X"20",X"04", + X"DD",X"CB",X"00",X"96",X"DD",X"CB",X"00",X"56",X"C0",X"11",X"80",X"16",X"CD",X"D2",X"1A",X"D0", + X"DD",X"CB",X"00",X"D6",X"3E",X"85",X"F0",X"CD",X"C9",X"1A",X"3E",X"83",X"20",X"02",X"3E",X"87", + X"37",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"E4",X"19",X"D8",X"21",X"E7",X"6B",X"79",X"EE",X"40", + X"E6",X"C0",X"DD",X"CB",X"00",X"66",X"C8",X"EB",X"CD",X"9E",X"1C",X"29",X"6C",X"26",X"00",X"CB", + X"14",X"22",X"07",X"E8",X"2A",X"0A",X"E8",X"DD",X"4E",X"06",X"D5",X"06",X"00",X"16",X"FF",X"29", + X"38",X"01",X"50",X"29",X"29",X"5C",X"2A",X"15",X"E7",X"19",X"22",X"03",X"E8",X"EB",X"E1",X"09", + X"09",X"4E",X"23",X"66",X"69",X"C3",X"20",X"0E",X"CD",X"91",X"1C",X"2A",X"06",X"E1",X"CB",X"71", + X"28",X"04",X"2A",X"04",X"E1",X"EB",X"ED",X"52",X"C9",X"3A",X"02",X"E7",X"FE",X"08",X"C8",X"FE", + X"09",X"C9",X"D5",X"CD",X"E7",X"1A",X"E1",X"D0",X"CD",X"18",X"1B",X"D0",X"F5",X"E6",X"0F",X"CD", + X"8E",X"1B",X"CD",X"91",X"1C",X"F1",X"C9",X"3A",X"0B",X"E8",X"47",X"3A",X"01",X"E7",X"07",X"A8", + X"E6",X"80",X"C8",X"3A",X"01",X"E7",X"E6",X"03",X"C8",X"E6",X"02",X"11",X"C0",X"02",X"06",X"05", + X"20",X"04",X"11",X"00",X"04",X"47",X"ED",X"52",X"D0",X"3A",X"02",X"E7",X"FE",X"06",X"D8",X"04", + X"D6",X"08",X"D8",X"04",X"80",X"47",X"37",X"C9",X"58",X"16",X"00",X"19",X"7E",X"FE",X"FF",X"C9", + X"CD",X"08",X"12",X"20",X"55",X"3A",X"1C",X"E8",X"A7",X"3E",X"02",X"20",X"0A",X"DB",X"03",X"E6", + X"02",X"3E",X"04",X"20",X"02",X"3E",X"03",X"DD",X"77",X"07",X"DD",X"36",X"06",X"09",X"DD",X"36", + X"01",X"09",X"21",X"1A",X"E7",X"34",X"CD",X"61",X"1C",X"DD",X"77",X"0F",X"DD",X"36",X"0B",X"06", + X"DD",X"36",X"0E",X"05",X"DD",X"CB",X"00",X"56",X"21",X"1B",X"E7",X"28",X"02",X"23",X"23",X"DD", + X"CB",X"00",X"76",X"11",X"80",X"FF",X"20",X"04",X"23",X"11",X"80",X"00",X"34",X"46",X"2A",X"12", + X"E7",X"19",X"10",X"FD",X"CD",X"83",X"1C",X"C3",X"E2",X"1B",X"DD",X"CB",X"00",X"4E",X"20",X"09", + X"DD",X"36",X"00",X"00",X"21",X"61",X"E2",X"35",X"C9",X"DD",X"CB",X"00",X"A6",X"C9",X"C6",X"04", + X"DD",X"77",X"06",X"21",X"55",X"1C",X"DD",X"36",X"01",X"01",X"7E",X"23",X"DD",X"77",X"07",X"CD", + X"A5",X"1C",X"AF",X"DD",X"77",X"0E",X"DD",X"77",X"0F",X"C9",X"DD",X"35",X"07",X"C2",X"C4",X"1B", + X"CD",X"AC",X"1C",X"7E",X"A7",X"FA",X"7A",X"1B",X"23",X"DD",X"77",X"06",X"7E",X"23",X"DD",X"77", + X"07",X"CD",X"A5",X"1C",X"DD",X"5E",X"0E",X"DD",X"56",X"0F",X"21",X"16",X"00",X"19",X"DD",X"75", + X"0E",X"DD",X"74",X"0F",X"CD",X"9E",X"1C",X"ED",X"52",X"CD",X"97",X"1C",X"11",X"39",X"00",X"CD", + X"7A",X"1C",X"CD",X"8A",X"1C",X"18",X"21",X"11",X"36",X"00",X"CD",X"70",X"1C",X"18",X"06",X"11", + X"36",X"00",X"CD",X"7A",X"1C",X"DD",X"35",X"07",X"20",X"0E",X"DD",X"36",X"07",X"07",X"DD",X"35", + X"06",X"F2",X"08",X"1C",X"DD",X"36",X"06",X"03",X"ED",X"5B",X"12",X"E7",X"7B",X"E6",X"E0",X"5F", + X"7D",X"E6",X"E0",X"6F",X"ED",X"52",X"22",X"0A",X"E8",X"30",X"06",X"11",X"01",X"00",X"EB",X"ED", + X"52",X"22",X"0C",X"E8",X"A7",X"C9",X"2A",X"12",X"E7",X"11",X"00",X"10",X"19",X"CD",X"91",X"1C", + X"ED",X"52",X"D8",X"DD",X"CB",X"00",X"AE",X"21",X"60",X"E2",X"CB",X"AE",X"C9",X"CD",X"8A",X"1C", + X"11",X"00",X"10",X"19",X"ED",X"5B",X"12",X"E7",X"ED",X"52",X"D8",X"DD",X"CB",X"00",X"9E",X"21", + X"60",X"E2",X"CB",X"9E",X"C9",X"05",X"07",X"07",X"08",X"11",X"FF",X"05",X"07",X"0A",X"08",X"17", + X"FF",X"3A",X"00",X"E0",X"FE",X"06",X"3A",X"09",X"E9",X"C8",X"3A",X"07",X"E9",X"E6",X"0F",X"C9", + X"CD",X"8A",X"1C",X"CB",X"71",X"28",X"0A",X"19",X"18",X"09",X"CD",X"8A",X"1C",X"CB",X"71",X"28", + X"F6",X"ED",X"52",X"DD",X"75",X"02",X"DD",X"74",X"03",X"C9",X"DD",X"6E",X"02",X"DD",X"66",X"03", + X"C9",X"EB",X"CD",X"8A",X"1C",X"EB",X"C9",X"DD",X"75",X"04",X"DD",X"74",X"05",X"C9",X"DD",X"6E", + X"04",X"DD",X"66",X"05",X"C9",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"C9",X"DD",X"6E",X"0C",X"DD", + X"66",X"0D",X"C9",X"CD",X"4A",X"1E",X"CD",X"FD",X"1D",X"DD",X"21",X"FB",X"E2",X"CD",X"C4",X"1C", + X"DD",X"21",X"0B",X"E3",X"DD",X"7E",X"00",X"4F",X"E6",X"10",X"C8",X"3A",X"00",X"E7",X"E6",X"02", + X"C2",X"A7",X"1D",X"DD",X"7E",X"01",X"FE",X"01",X"DA",X"4B",X"1D",X"28",X"26",X"CD",X"E9",X"1D", + X"3A",X"D9",X"E2",X"FE",X"01",X"28",X"07",X"3A",X"D8",X"E2",X"E6",X"10",X"20",X"6D",X"ED",X"5B", + X"12",X"E7",X"ED",X"52",X"DA",X"5B",X"1D",X"11",X"00",X"EC",X"19",X"30",X"5E",X"DD",X"36",X"00", + X"00",X"18",X"58",X"DD",X"7E",X"0B",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"CB",X"47",X"28",X"0C", + X"ED",X"5B",X"BF",X"E1",X"FE",X"03",X"28",X"08",X"ED",X"52",X"18",X"05",X"ED",X"5B",X"BD",X"E1", + X"19",X"DD",X"75",X"04",X"DD",X"74",X"05",X"DD",X"6E",X"0C",X"DD",X"66",X"0D",X"ED",X"5B",X"BB", + X"E1",X"19",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"CD",X"EF",X"1D",X"DD",X"5E",X"0E",X"DD",X"56", + X"0F",X"ED",X"52",X"38",X"16",X"DD",X"CB",X"00",X"AE",X"18",X"0D",X"CD",X"E9",X"1D",X"DD",X"5E", + X"0E",X"DD",X"56",X"0F",X"ED",X"52",X"30",X"03",X"DD",X"34",X"01",X"DD",X"CB",X"00",X"6E",X"20", + X"2E",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"40",X"FF",X"19",X"22",X"0F",X"E8",X"11",X"80", + X"01",X"19",X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"08",X"00",X"E5",X"CD", + X"72",X"11",X"E1",X"30",X"0A",X"11",X"18",X"01",X"CD",X"9A",X"2C",X"DD",X"CB",X"00",X"EE",X"DD", + X"35",X"07",X"20",X"13",X"DD",X"36",X"07",X"02",X"DD",X"7E",X"06",X"3C",X"FE",X"06",X"38",X"04", + X"CD",X"BF",X"1D",X"AF",X"DD",X"77",X"06",X"CD",X"E2",X"1B",X"11",X"00",X"E8",X"19",X"D8",X"DD", + X"7E",X"06",X"FE",X"03",X"3E",X"40",X"38",X"01",X"AF",X"21",X"A5",X"75",X"C3",X"7E",X"1A",X"E5", + X"D5",X"2A",X"03",X"E0",X"11",X"CD",X"FC",X"19",X"3E",X"95",X"38",X"02",X"3E",X"99",X"CD",X"FE", + X"0D",X"D1",X"E1",X"C9",X"E5",X"D5",X"2A",X"03",X"E0",X"11",X"CD",X"FC",X"19",X"3E",X"92",X"38", + X"02",X"3E",X"9A",X"CD",X"FE",X"0D",X"D1",X"E1",X"C9",X"DD",X"6E",X"0C",X"DD",X"66",X"0D",X"DD", + X"5E",X"02",X"DD",X"56",X"03",X"19",X"DD",X"75",X"02",X"DD",X"74",X"03",X"C9",X"DD",X"21",X"1B", + X"E3",X"DD",X"4E",X"00",X"CB",X"61",X"C8",X"DD",X"35",X"07",X"20",X"14",X"DD",X"36",X"07",X"05", + X"DD",X"34",X"06",X"3A",X"21",X"E3",X"FE",X"04",X"38",X"06",X"20",X"29",X"DD",X"CB",X"00",X"FE", + X"11",X"72",X"00",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B",X"2A",X"27",X"E3",X"11",X"1B",X"00",X"19", + X"22",X"27",X"E3",X"EB",X"2A",X"1F",X"E3",X"ED",X"52",X"22",X"1F",X"E3",X"21",X"D2",X"73",X"3A", + X"1B",X"E3",X"C3",X"7E",X"1A",X"DD",X"36",X"00",X"00",X"C9",X"3A",X"D8",X"E2",X"4F",X"A7",X"28", + X"3D",X"E6",X"10",X"C8",X"2A",X"E0",X"E2",X"2B",X"CB",X"7C",X"20",X"03",X"22",X"E0",X"E2",X"DD", + X"21",X"D8",X"E2",X"3A",X"E2",X"E2",X"21",X"FA",X"E2",X"A7",X"FA",X"77",X"1E",X"FE",X"3F",X"28", + X"06",X"35",X"20",X"05",X"DD",X"34",X"0A",X"36",X"70",X"3A",X"80",X"E0",X"E6",X"07",X"21",X"84", + X"1E",X"C3",X"26",X"1F",X"19",X"1F",X"98",X"22",X"3E",X"21",X"F0",X"24",X"F2",X"28",X"3A",X"80", + X"E0",X"E6",X"07",X"2A",X"D3",X"E2",X"ED",X"5B",X"12",X"E7",X"ED",X"52",X"CB",X"47",X"28",X"01", + X"3F",X"D8",X"FE",X"03",X"20",X"06",X"21",X"4F",X"03",X"22",X"F8",X"E2",X"CB",X"47",X"4F",X"3E", + X"12",X"20",X"02",X"3E",X"52",X"32",X"D8",X"E2",X"3E",X"70",X"32",X"FA",X"E2",X"3A",X"61",X"E2", + X"21",X"97",X"E1",X"96",X"D8",X"C8",X"06",X"05",X"DD",X"21",X"62",X"E2",X"DD",X"CB",X"00",X"46", + X"20",X"31",X"2A",X"12",X"E7",X"DD",X"5E",X"02",X"DD",X"56",X"03",X"CB",X"41",X"28",X"0C",X"DD", + X"CB",X"00",X"76",X"28",X"1E",X"ED",X"52",X"38",X"1A",X"18",X"0A",X"DD",X"CB",X"00",X"76",X"20", + X"12",X"ED",X"52",X"30",X"0E",X"6F",X"DD",X"7E",X"01",X"A7",X"7D",X"20",X"06",X"DD",X"36",X"01", + X"05",X"3D",X"C8",X"11",X"10",X"00",X"DD",X"19",X"10",X"C2",X"C9",X"30",X"1F",X"F9",X"1F",X"11", + X"20",X"45",X"1F",X"59",X"1F",X"64",X"20",X"1B",X"20",X"CD",X"6F",X"2C",X"21",X"96",X"20",X"E5", + X"21",X"0B",X"1F",X"DD",X"7E",X"01",X"87",X"16",X"00",X"5F",X"19",X"7E",X"23",X"66",X"6F",X"E9", + X"CD",X"0D",X"2D",X"11",X"00",X"FA",X"19",X"D2",X"CF",X"1F",X"11",X"00",X"C0",X"2A",X"DA",X"E2", + X"19",X"DA",X"50",X"1F",X"C9",X"CD",X"E2",X"1B",X"11",X"00",X"FA",X"19",X"D2",X"CF",X"1F",X"C9", + X"DD",X"36",X"01",X"03",X"DD",X"36",X"06",X"00",X"C9",X"CD",X"E2",X"1B",X"CD",X"E3",X"20",X"DA", + X"36",X"20",X"DD",X"35",X"07",X"C0",X"DD",X"35",X"0E",X"FA",X"85",X"20",X"28",X"54",X"DD",X"34", + X"06",X"DD",X"36",X"07",X"05",X"3A",X"E6",X"E2",X"FE",X"02",X"C0",X"CD",X"D4",X"1D",X"ED",X"5B", + X"0C",X"E8",X"21",X"60",X"FA",X"19",X"D8",X"21",X"00",X"FE",X"19",X"D0",X"2A",X"DA",X"E2",X"11", + X"00",X"02",X"19",X"22",X"0F",X"E8",X"11",X"C0",X"02",X"19",X"22",X"11",X"E8",X"3A",X"DE",X"E2", + X"FE",X"0B",X"38",X"0C",X"28",X"05",X"21",X"00",X"69",X"18",X"08",X"21",X"80",X"61",X"18",X"03", + X"21",X"80",X"59",X"11",X"05",X"00",X"E5",X"CD",X"72",X"11",X"E1",X"D0",X"11",X"10",X"01",X"C3", + X"95",X"2C",X"DD",X"35",X"0B",X"20",X"0B",X"DD",X"34",X"06",X"DD",X"36",X"07",X"05",X"C9",X"CD", + X"E8",X"2C",X"3A",X"11",X"E0",X"21",X"9E",X"E1",X"06",X"04",X"BE",X"38",X"08",X"23",X"06",X"09", + X"BE",X"38",X"02",X"06",X"0E",X"DD",X"70",X"06",X"DD",X"36",X"0E",X"04",X"3A",X"12",X"E0",X"21", + X"A0",X"E1",X"CD",X"14",X"12",X"32",X"DF",X"E2",X"C9",X"CD",X"AA",X"1B",X"DD",X"CB",X"00",X"66", + X"C0",X"E1",X"21",X"D8",X"E2",X"CB",X"A6",X"21",X"E8",X"E2",X"CB",X"A6",X"C9",X"DD",X"36",X"01", + X"02",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"CA",X"CF",X"1F",X"C9",X"ED",X"5B",X"04",X"E1",X"DD", + X"6E",X"02",X"DD",X"66",X"03",X"ED",X"52",X"38",X"E4",X"11",X"55",X"00",X"CD",X"7A",X"1C",X"18", + X"E0",X"DD",X"36",X"01",X"06",X"C9",X"C6",X"13",X"32",X"DE",X"E2",X"FE",X"16",X"21",X"26",X"21", + X"38",X"03",X"21",X"2C",X"21",X"CD",X"96",X"1B",X"21",X"67",X"2D",X"11",X"D8",X"00",X"CD",X"19", + X"2D",X"3E",X"08",X"DA",X"7A",X"24",X"DD",X"7E",X"FE",X"DD",X"36",X"FE",X"1C",X"A7",X"20",X"D1", + X"DD",X"34",X"01",X"C9",X"CD",X"13",X"2D",X"CD",X"E3",X"20",X"DA",X"36",X"20",X"ED",X"5B",X"04", + X"E1",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"ED",X"52",X"38",X"05",X"DD",X"7E",X"08",X"A7",X"C0", + X"DD",X"36",X"01",X"00",X"C9",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07",X"DD",X"36",X"01", + X"05",X"DD",X"36",X"08",X"25",X"C9",X"CD",X"B9",X"2C",X"CD",X"78",X"2C",X"21",X"8D",X"6C",X"11", + X"A0",X"FE",X"3A",X"01",X"E7",X"E6",X"03",X"20",X"04",X"DD",X"CB",X"00",X"AE",X"E5",X"DD",X"7E", + X"01",X"FE",X"01",X"28",X"1D",X"2A",X"0C",X"E8",X"19",X"21",X"01",X"E7",X"DD",X"CB",X"00",X"76", + X"28",X"0A",X"38",X"04",X"CB",X"E6",X"18",X"11",X"CB",X"A6",X"18",X"0D",X"38",X"09",X"CB",X"EE", + X"18",X"07",X"21",X"01",X"E7",X"CB",X"A6",X"CB",X"AE",X"E1",X"CD",X"01",X"2D",X"DD",X"7E",X"00", + X"C3",X"7E",X"1A",X"CD",X"09",X"21",X"D0",X"2A",X"0C",X"E8",X"11",X"60",X"FE",X"19",X"D0",X"3A", + X"DE",X"E2",X"FE",X"04",X"38",X"07",X"FE",X"09",X"21",X"12",X"21",X"38",X"03",X"21",X"1C",X"21", + X"CD",X"18",X"1B",X"D0",X"DD",X"CB",X"00",X"EE",X"C9",X"DD",X"7E",X"00",X"E6",X"20",X"C0",X"C3", + X"E7",X"1A",X"04",X"03",X"FF",X"FF",X"FF",X"FF",X"04",X"FF",X"FF",X"FF",X"02",X"00",X"02",X"02", + X"02",X"02",X"01",X"FF",X"FF",X"FF",X"06",X"18",X"08",X"19",X"11",X"FF",X"06",X"1A",X"08",X"1B", + X"11",X"FF",X"48",X"21",X"F9",X"1F",X"00",X"22",X"5D",X"21",X"67",X"21",X"17",X"22",X"21",X"39", + X"22",X"E5",X"21",X"32",X"21",X"C3",X"23",X"1F",X"CD",X"0D",X"2D",X"11",X"00",X"FB",X"19",X"D2", + X"DC",X"21",X"11",X"00",X"C0",X"2A",X"DA",X"E2",X"19",X"DA",X"50",X"1F",X"C9",X"CD",X"E2",X"1B", + X"11",X"00",X"FB",X"19",X"30",X"76",X"C9",X"CD",X"E2",X"1B",X"CD",X"4B",X"22",X"DA",X"0A",X"22", + X"DD",X"35",X"07",X"C0",X"DD",X"35",X"0E",X"28",X"5B",X"DD",X"34",X"06",X"DD",X"36",X"07",X"0B", + X"3A",X"E6",X"E2",X"FE",X"02",X"C0",X"CD",X"D4",X"1D",X"2A",X"DA",X"E2",X"3A",X"DE",X"E2",X"FE", + X"07",X"38",X"16",X"11",X"E0",X"01",X"19",X"22",X"0F",X"E8",X"11",X"20",X"02",X"19",X"22",X"11", + X"E8",X"21",X"00",X"5E",X"11",X"11",X"00",X"18",X"14",X"11",X"40",X"02",X"19",X"22",X"0F",X"E8", + X"11",X"E0",X"01",X"19",X"22",X"11",X"E8",X"21",X"00",X"6A",X"11",X"0A",X"00",X"CD",X"72",X"11", + X"D0",X"3A",X"DE",X"E2",X"FE",X"07",X"21",X"80",X"6C",X"38",X"03",X"21",X"80",X"60",X"11",X"18", + X"00",X"C3",X"95",X"2C",X"DD",X"35",X"0B",X"20",X"06",X"C3",X"20",X"22",X"CD",X"E8",X"2C",X"3A", + X"11",X"E0",X"21",X"9E",X"E1",X"06",X"04",X"BE",X"38",X"02",X"06",X"07",X"DD",X"70",X"06",X"3A", + X"12",X"E0",X"21",X"A5",X"E1",X"CD",X"14",X"12",X"32",X"DF",X"E2",X"DD",X"36",X"0E",X"03",X"C9", + X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"CA",X"50",X"1F",X"C9",X"DD",X"36",X"06",X"00",X"DD",X"36", + X"07",X"0B",X"DD",X"36",X"01",X"02",X"C9",X"CD",X"13",X"2D",X"CD",X"4B",X"22",X"C3",X"6D",X"20", + X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07",X"DD",X"36",X"01",X"05",X"3A",X"13",X"E0",X"21", + X"A0",X"E1",X"CD",X"14",X"12",X"DD",X"77",X"08",X"C9",X"CD",X"B9",X"2C",X"CD",X"78",X"2C",X"21", + X"65",X"6E",X"11",X"20",X"FE",X"CD",X"A2",X"20",X"C3",X"70",X"2E",X"3A",X"D8",X"E2",X"E6",X"20", + X"C0",X"21",X"E0",X"00",X"CD",X"20",X"12",X"D0",X"DD",X"CB",X"00",X"EE",X"D5",X"21",X"05",X"00", + X"CD",X"5C",X"2E",X"21",X"6A",X"2D",X"CD",X"19",X"2D",X"D1",X"38",X"05",X"21",X"00",X"90",X"19", + X"C9",X"F1",X"11",X"EE",X"00",X"3E",X"09",X"CD",X"7A",X"24",X"DD",X"36",X"06",X"00",X"21",X"84", + X"22",X"C3",X"96",X"1B",X"06",X"0A",X"08",X"0B",X"13",X"FF",X"A5",X"22",X"F9",X"1F",X"09",X"24", + X"C7",X"22",X"D2",X"22",X"80",X"24",X"32",X"24",X"CD",X"6F",X"2C",X"21",X"9F",X"24",X"E5",X"21", + X"8A",X"22",X"C3",X"23",X"1F",X"CD",X"0D",X"2D",X"11",X"00",X"F6",X"19",X"D2",X"C6",X"23",X"11", + X"00",X"5F",X"2A",X"DA",X"E2",X"19",X"D2",X"50",X"1F",X"C9",X"DD",X"36",X"01",X"00",X"DD",X"36", + X"06",X"00",X"DD",X"36",X"07",X"02",X"C9",X"CD",X"E2",X"1B",X"11",X"00",X"F6",X"19",X"D2",X"C6", + X"23",X"C9",X"CD",X"E2",X"1B",X"CD",X"B0",X"24",X"DA",X"48",X"24",X"DD",X"35",X"07",X"C0",X"DD", + X"35",X"0E",X"28",X"60",X"FA",X"B4",X"23",X"DD",X"34",X"06",X"DD",X"36",X"07",X"0B",X"FD",X"21", + X"FB",X"E2",X"FD",X"CB",X"00",X"66",X"28",X"04",X"FD",X"21",X"0B",X"E3",X"3A",X"E7",X"E2",X"FE", + X"02",X"21",X"00",X"69",X"38",X"03",X"21",X"80",X"56",X"FD",X"75",X"04",X"FD",X"74",X"05",X"FD", + X"77",X"0B",X"2A",X"DA",X"E2",X"11",X"00",X"FF",X"19",X"FD",X"75",X"02",X"FD",X"74",X"03",X"11", + X"00",X"ED",X"19",X"FD",X"75",X"0E",X"FD",X"74",X"0F",X"2A",X"B9",X"E1",X"FD",X"75",X"0C",X"FD", + X"74",X"0D",X"3E",X"50",X"FD",X"77",X"00",X"AF",X"FD",X"77",X"01",X"FD",X"77",X"06",X"3E",X"02", + X"FD",X"77",X"07",X"C9",X"DD",X"34",X"0E",X"DD",X"34",X"07",X"FD",X"21",X"FB",X"E2",X"FD",X"CB", + X"00",X"66",X"28",X"14",X"FD",X"CB",X"0D",X"7E",X"C0",X"DD",X"CB",X"FF",X"46",X"28",X"12",X"FD", + X"CB",X"10",X"66",X"20",X"0C",X"C3",X"D3",X"23",X"FD",X"21",X"0B",X"E3",X"FD",X"CB",X"0D",X"7E", + X"C0",X"FD",X"7E",X"0B",X"A7",X"28",X"08",X"FE",X"03",X"28",X"04",X"3E",X"0A",X"18",X"02",X"3E", + X"0C",X"DD",X"77",X"06",X"2A",X"DA",X"E2",X"11",X"C0",X"FE",X"19",X"FD",X"5E",X"02",X"FD",X"56", + X"03",X"ED",X"52",X"D0",X"FD",X"36",X"00",X"00",X"DD",X"35",X"06",X"3A",X"0B",X"E3",X"E6",X"10", + X"3E",X"0B",X"20",X"0C",X"DD",X"35",X"0E",X"3A",X"11",X"E0",X"21",X"A5",X"E1",X"CD",X"14",X"12", + X"32",X"DF",X"E2",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"F5",X"19",X"DA",X"BA",X"22",X"DD",X"35", + X"0B",X"20",X"09",X"C3",X"20",X"22",X"3A",X"9F",X"E1",X"32",X"E3",X"E2",X"ED",X"5F",X"E6",X"01", + X"DD",X"77",X"FF",X"DD",X"36",X"01",X"04",X"3A",X"10",X"E0",X"21",X"9C",X"E1",X"06",X"00",X"BE", + X"38",X"0B",X"23",X"04",X"BE",X"38",X"06",X"23",X"04",X"BE",X"38",X"01",X"04",X"DD",X"70",X"0F", + X"78",X"06",X"09",X"FE",X"02",X"30",X"02",X"06",X"0B",X"DD",X"70",X"06",X"DD",X"36",X"07",X"0B", + X"DD",X"36",X"0E",X"02",X"C9",X"DD",X"36",X"01",X"02",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0", + X"DD",X"34",X"07",X"3A",X"0B",X"E3",X"E6",X"10",X"20",X"0D",X"3A",X"FB",X"E2",X"E6",X"10",X"28", + X"A5",X"DD",X"CB",X"FF",X"46",X"20",X"AC",X"3A",X"E4",X"E2",X"32",X"DE",X"E2",X"DD",X"36",X"01", + X"04",X"C9",X"ED",X"5B",X"06",X"E1",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"ED",X"52",X"30",X"C5", + X"11",X"55",X"00",X"CD",X"7A",X"1C",X"18",X"C1",X"DD",X"46",X"06",X"C6",X"04",X"32",X"DE",X"E2", + X"21",X"6D",X"2D",X"CD",X"19",X"2D",X"38",X"17",X"DD",X"70",X"0C",X"DD",X"36",X"07",X"06",X"DD", + X"7E",X"FE",X"DD",X"36",X"FE",X"1C",X"A7",X"C2",X"31",X"20",X"DD",X"36",X"01",X"02",X"C9",X"21", + X"CC",X"24",X"CD",X"96",X"1B",X"11",X"DC",X"00",X"3E",X"09",X"2A",X"DA",X"E2",X"C3",X"60",X"2F", + X"CD",X"13",X"2D",X"CD",X"B0",X"24",X"38",X"C0",X"ED",X"5B",X"06",X"E1",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"ED",X"52",X"D2",X"80",X"20",X"DD",X"7E",X"08",X"A7",X"CA",X"80",X"20",X"C9",X"21", + X"00",X"E7",X"CB",X"F6",X"CD",X"B9",X"2C",X"CD",X"78",X"2C",X"21",X"4E",X"6F",X"C3",X"9F",X"20", + X"CD",X"09",X"21",X"D0",X"2A",X"0C",X"E8",X"11",X"60",X"FE",X"19",X"D0",X"21",X"C2",X"24",X"C3", + X"00",X"21",X"02",X"00",X"02",X"02",X"02",X"02",X"01",X"FF",X"FF",X"FF",X"06",X"07",X"08",X"08", + X"11",X"FF",X"18",X"25",X"F9",X"1F",X"C3",X"25",X"35",X"25",X"40",X"25",X"1B",X"27",X"7F",X"26", + X"D6",X"26",X"E2",X"1B",X"03",X"28",X"BA",X"27",X"37",X"27",X"84",X"27",X"E3",X"25",X"2F",X"26", + X"2A",X"F8",X"E2",X"7D",X"B4",X"28",X"04",X"2B",X"22",X"F8",X"E2",X"21",X"D6",X"E2",X"7E",X"A7", + X"28",X"01",X"35",X"CD",X"0F",X"25",X"DD",X"21",X"E8",X"E2",X"DD",X"CB",X"00",X"66",X"C8",X"21", + X"D2",X"24",X"CD",X"23",X"1F",X"C3",X"93",X"28",X"CD",X"0D",X"2D",X"11",X"00",X"F8",X"19",X"D2", + X"89",X"25",X"DD",X"CB",X"00",X"76",X"C0",X"11",X"00",X"5F",X"DD",X"6E",X"02",X"DD",X"66",X"03", + X"19",X"D2",X"50",X"1F",X"C9",X"CD",X"E2",X"1B",X"11",X"00",X"F8",X"19",X"D2",X"89",X"25",X"C9", + X"CD",X"E2",X"1B",X"CD",X"BA",X"28",X"DA",X"4B",X"26",X"DD",X"7E",X"0E",X"A7",X"FC",X"AF",X"25", + X"DD",X"35",X"07",X"C0",X"A7",X"28",X"15",X"FA",X"8C",X"25",X"DD",X"86",X"06",X"DD",X"77",X"06", + X"CD",X"DD",X"34",X"DD",X"36",X"07",X"0B",X"DD",X"36",X"0E",X"00",X"C9",X"DD",X"35",X"0B",X"CA", + X"20",X"22",X"CD",X"AF",X"25",X"DD",X"36",X"06",X"00",X"DD",X"35",X"0E",X"3A",X"11",X"E0",X"21", + X"A5",X"E1",X"CD",X"14",X"12",X"DD",X"77",X"07",X"C9",X"CD",X"E8",X"2C",X"CD",X"D4",X"2C",X"CA", + X"DF",X"27",X"3A",X"12",X"E0",X"21",X"9E",X"E1",X"06",X"01",X"BE",X"38",X"06",X"04",X"23",X"BE", + X"38",X"01",X"04",X"DD",X"70",X"0E",X"DD",X"36",X"06",X"04",X"DD",X"36",X"07",X"0B",X"C9",X"2A", + X"0C",X"E8",X"11",X"80",X"F3",X"19",X"D0",X"F1",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"07", + X"C3",X"80",X"20",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"3A",X"D7",X"E2",X"A7",X"CA",X"50", + X"1F",X"DD",X"36",X"01",X"0D",X"DD",X"36",X"06",X"1A",X"DD",X"36",X"07",X"08",X"21",X"00",X"E7", + X"CB",X"C6",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34", + X"06",X"DD",X"7E",X"06",X"FE",X"22",X"C0",X"DD",X"34",X"01",X"DD",X"36",X"06",X"1E",X"DD",X"6E", + X"02",X"DD",X"66",X"03",X"DD",X"CB",X"00",X"76",X"28",X"0E",X"11",X"00",X"A1",X"ED",X"52",X"19", + X"38",X"14",X"11",X"80",X"FD",X"19",X"18",X"0E",X"11",X"80",X"02",X"19",X"ED",X"5B",X"06",X"E1", + X"ED",X"52",X"19",X"38",X"01",X"EB",X"DD",X"75",X"02",X"DD",X"74",X"03",X"C3",X"E2",X"1B",X"CD", + X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34",X"06",X"DD",X"7E",X"06", + X"FE",X"26",X"C0",X"21",X"00",X"E7",X"CB",X"86",X"C3",X"50",X"1F",X"A7",X"28",X"4A",X"DD",X"36", + X"06",X"08",X"21",X"70",X"2D",X"CD",X"19",X"2D",X"21",X"D6",X"28",X"38",X"11",X"7E",X"DD",X"77", + X"07",X"DD",X"36",X"01",X"02",X"21",X"D6",X"E2",X"7E",X"36",X"1C",X"23",X"77",X"C9",X"CD",X"96", + X"1B",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"D7",X"00",X"3E",X"0A",X"C3",X"60",X"2F",X"CD", + X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"06",X"3C",X"FE",X"13",X"38",X"40",X"20",X"5D", + X"DD",X"36",X"07",X"1C",X"3E",X"26",X"18",X"3A",X"3E",X"91",X"CD",X"FE",X"0D",X"DD",X"6E",X"02", + X"DD",X"66",X"03",X"22",X"1D",X"E3",X"DD",X"7E",X"00",X"E6",X"50",X"32",X"1B",X"E3",X"21",X"00", + X"65",X"22",X"1F",X"E3",X"21",X"5B",X"00",X"22",X"27",X"E3",X"3E",X"05",X"32",X"22",X"E3",X"AF", + X"32",X"21",X"E3",X"21",X"00",X"E7",X"CB",X"C6",X"DD",X"36",X"01",X"06",X"3E",X"0B",X"DD",X"36", + X"07",X"08",X"DD",X"77",X"06",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"06", + X"3C",X"FE",X"1A",X"38",X"E9",X"21",X"00",X"E7",X"CB",X"86",X"C3",X"89",X"25",X"DD",X"34",X"01", + X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"80",X"02",X"DD",X"CB",X"00",X"76",X"20",X"0D",X"19", + X"EB",X"2A",X"06",X"E1",X"ED",X"52",X"19",X"38",X"05",X"EB",X"18",X"02",X"ED",X"52",X"DD",X"75", + X"02",X"DD",X"74",X"03",X"CD",X"E2",X"1B",X"3E",X"0F",X"18",X"B3",X"CD",X"13",X"2D",X"CD",X"BA", + X"28",X"DA",X"4B",X"26",X"CD",X"D4",X"2C",X"CA",X"80",X"20",X"DD",X"CB",X"00",X"76",X"CA",X"88", + X"24",X"11",X"00",X"A1",X"C3",X"71",X"20",X"DD",X"35",X"07",X"20",X"16",X"DD",X"34",X"07",X"CD", + X"87",X"28",X"20",X"6C",X"DD",X"36",X"07",X"07",X"DD",X"35",X"06",X"F2",X"52",X"27",X"DD",X"36", + X"06",X"03",X"2A",X"12",X"E7",X"DD",X"5E",X"0C",X"DD",X"56",X"0D",X"ED",X"52",X"EB",X"DD",X"CB", + X"00",X"76",X"20",X"0D",X"2A",X"06",X"E1",X"ED",X"52",X"30",X"04",X"ED",X"5B",X"06",X"E1",X"18", + X"0A",X"21",X"80",X"85",X"ED",X"52",X"38",X"03",X"11",X"80",X"85",X"DD",X"73",X"02",X"DD",X"72", + X"03",X"C3",X"E2",X"1B",X"CD",X"E2",X"1B",X"CD",X"87",X"28",X"28",X"17",X"DD",X"35",X"07",X"C0", + X"DD",X"7E",X"0E",X"A7",X"CA",X"75",X"25",X"FA",X"92",X"25",X"DD",X"86",X"06",X"DD",X"77",X"06", + X"C3",X"63",X"25",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"02",X"DD",X"36",X"01",X"0B",X"C9", + X"DD",X"36",X"01",X"0C",X"CD",X"92",X"25",X"C3",X"E2",X"1B",X"CD",X"E2",X"1B",X"DD",X"35",X"07", + X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE",X"22",X"C0",X"21",X"8B", + X"01",X"22",X"F8",X"E2",X"DD",X"36",X"00",X"00",X"21",X"01",X"E7",X"CB",X"A6",X"18",X"5E",X"21", + X"00",X"E7",X"CB",X"C6",X"3A",X"E8",X"E2",X"E6",X"10",X"28",X"64",X"DD",X"E5",X"DD",X"21",X"D8", + X"E2",X"CD",X"7E",X"28",X"DD",X"36",X"17",X"08",X"DD",X"36",X"16",X"1A",X"DD",X"36",X"11",X"0A", + X"DD",X"E1",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"08",X"DD",X"34", + X"06",X"DD",X"7E",X"06",X"FE",X"26",X"C0",X"21",X"1A",X"01",X"22",X"F8",X"E2",X"CD",X"A3",X"27", + X"CD",X"3D",X"28",X"ED",X"5F",X"E6",X"01",X"C8",X"DD",X"36",X"F1",X"0B",X"DD",X"36",X"01",X"00", + X"21",X"00",X"00",X"ED",X"5B",X"F4",X"E2",X"ED",X"52",X"22",X"E4",X"E2",X"C9",X"DD",X"36",X"F6", + X"00",X"DD",X"36",X"F7",X"02",X"DD",X"36",X"F1",X"00",X"21",X"00",X"E7",X"CB",X"86",X"C9",X"ED", + X"5B",X"0A",X"E8",X"21",X"60",X"FD",X"19",X"38",X"03",X"11",X"A0",X"02",X"2A",X"12",X"E7",X"ED", + X"53",X"F4",X"E2",X"ED",X"52",X"22",X"EA",X"E2",X"21",X"00",X"50",X"22",X"EC",X"E2",X"DD",X"36", + X"10",X"50",X"DD",X"36",X"17",X"08",X"DD",X"36",X"16",X"1E",X"DD",X"36",X"11",X"09",X"DD",X"36", + X"01",X"08",X"DD",X"36",X"06",X"1A",X"C9",X"3A",X"02",X"E7",X"FE",X"01",X"C8",X"FE",X"09",X"C8", + X"FE",X"0A",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"E8",X"19",X"21",X"97",X"E1",X"11",X"98",X"E1", + X"30",X"08",X"3A",X"E8",X"E2",X"E6",X"10",X"20",X"01",X"EB",X"7E",X"A7",X"28",X"03",X"12",X"36", + X"00",X"21",X"47",X"70",X"11",X"00",X"FE",X"C3",X"AD",X"20",X"CD",X"E7",X"1A",X"D0",X"2A",X"0C", + X"E8",X"11",X"60",X"FE",X"19",X"D0",X"21",X"CC",X"28",X"C3",X"18",X"1B",X"00",X"FF",X"00",X"00", + X"00",X"00",X"01",X"FF",X"FF",X"FF",X"06",X"09",X"08",X"0A",X"13",X"FF",X"FC",X"28",X"F9",X"1F", + X"EE",X"2A",X"56",X"29",X"CC",X"29",X"8C",X"2A",X"14",X"29",X"8F",X"29",X"C8",X"2A",X"28",X"2B", + X"32",X"2B",X"21",X"5A",X"2C",X"E5",X"21",X"DC",X"28",X"C3",X"23",X"1F",X"CD",X"0D",X"2D",X"11", + X"60",X"F7",X"19",X"30",X"2A",X"18",X"1C",X"DD",X"36",X"07",X"07",X"DD",X"36",X"01",X"00",X"DD", + X"36",X"06",X"00",X"C9",X"CD",X"3C",X"29",X"CD",X"70",X"1C",X"CD",X"E2",X"1B",X"11",X"60",X"F7", + X"19",X"38",X"E4",X"11",X"00",X"C0",X"2A",X"DA",X"E2",X"19",X"DA",X"50",X"1F",X"18",X"36",X"DD", + X"36",X"07",X"09",X"DD",X"36",X"06",X"04",X"DD",X"36",X"01",X"06",X"C9",X"DD",X"35",X"07",X"20", + X"11",X"DD",X"36",X"07",X"09",X"DD",X"7E",X"06",X"3C",X"FE",X"05",X"28",X"02",X"3E",X"04",X"DD", + X"77",X"06",X"11",X"12",X"00",X"C9",X"CD",X"E2",X"1B",X"11",X"60",X"F7",X"19",X"3E",X"04",X"30", + X"01",X"AF",X"DD",X"77",X"06",X"CD",X"A0",X"2B",X"2A",X"0C",X"E8",X"11",X"80",X"FB",X"19",X"D8", + X"DD",X"7E",X"08",X"A7",X"C2",X"E9",X"2A",X"DD",X"36",X"06",X"04",X"2A",X"0C",X"E8",X"11",X"00", + X"FD",X"19",X"30",X"1C",X"3A",X"AA",X"E1",X"DD",X"77",X"07",X"DD",X"36",X"01",X"07",X"C9",X"ED", + X"5B",X"AB",X"E1",X"CD",X"70",X"1C",X"CD",X"E2",X"1B",X"CD",X"A0",X"2B",X"DD",X"35",X"07",X"C0", + X"CD",X"E8",X"2C",X"2A",X"0C",X"E8",X"11",X"80",X"FC",X"19",X"DA",X"55",X"2A",X"3A",X"11",X"E0", + X"21",X"9E",X"E1",X"06",X"06",X"BE",X"38",X"08",X"23",X"06",X"0B",X"BE",X"38",X"02",X"06",X"10", + X"DD",X"70",X"06",X"DD",X"36",X"07",X"05",X"DD",X"36",X"0E",X"05",X"C9",X"CD",X"E2",X"1B",X"CD", + X"A0",X"2B",X"DD",X"35",X"07",X"C0",X"DD",X"35",X"0E",X"28",X"62",X"FA",X"A3",X"29",X"DD",X"7E", + X"0E",X"FE",X"03",X"20",X"47",X"DD",X"7E",X"06",X"FE",X"0C",X"21",X"73",X"2A",X"38",X"08",X"21", + X"7A",X"2A",X"28",X"03",X"21",X"81",X"2A",X"DD",X"7E",X"02",X"86",X"23",X"5F",X"DD",X"7E",X"03", + X"8E",X"23",X"57",X"ED",X"53",X"0F",X"E8",X"7B",X"86",X"23",X"5F",X"7A",X"8E",X"23",X"57",X"ED", + X"53",X"11",X"E8",X"5E",X"23",X"56",X"23",X"6E",X"26",X"00",X"EB",X"E5",X"CD",X"72",X"11",X"E1", + X"30",X"0A",X"11",X"00",X"04",X"19",X"11",X"18",X"00",X"CD",X"95",X"2C",X"DD",X"34",X"06",X"DD", + X"5E",X"0E",X"16",X"00",X"21",X"87",X"2A",X"19",X"7E",X"DD",X"77",X"07",X"C9",X"DD",X"35",X"0B", + X"28",X"13",X"3A",X"12",X"E0",X"21",X"A5",X"E1",X"CD",X"14",X"12",X"DD",X"77",X"07",X"C9",X"21", + X"00",X"50",X"22",X"DC",X"E2",X"DD",X"36",X"06",X"04",X"2A",X"DA",X"E2",X"11",X"00",X"FE",X"19", + X"ED",X"5B",X"04",X"E1",X"ED",X"52",X"38",X"71",X"DD",X"36",X"01",X"08",X"3A",X"AA",X"E1",X"DD", + X"77",X"07",X"C9",X"20",X"01",X"60",X"01",X"80",X"67",X"07",X"40",X"01",X"20",X"02",X"00",X"66", + X"0E",X"80",X"01",X"00",X"02",X"00",X"50",X"0A",X"01",X"10",X"0B",X"10",X"CD",X"3C",X"29",X"CD", + X"7A",X"1C",X"CD",X"B6",X"2A",X"CD",X"A0",X"2B",X"DD",X"7E",X"08",X"A7",X"CA",X"77",X"29",X"2A", + X"0C",X"E8",X"11",X"00",X"FB",X"19",X"DA",X"37",X"29",X"2A",X"DA",X"E2",X"ED",X"5B",X"04",X"E1", + X"ED",X"52",X"DA",X"77",X"29",X"C9",X"2A",X"DA",X"E2",X"ED",X"5B",X"04",X"E1",X"ED",X"52",X"30", + X"04",X"ED",X"53",X"DA",X"E2",X"C3",X"E2",X"1B",X"ED",X"5B",X"AB",X"E1",X"CD",X"7A",X"1C",X"CD", + X"B6",X"2A",X"CD",X"A0",X"2B",X"DD",X"35",X"07",X"C0",X"3A",X"12",X"E0",X"21",X"A0",X"E1",X"CD", + X"14",X"12",X"DD",X"77",X"08",X"DD",X"36",X"07",X"09",X"DD",X"36",X"01",X"05",X"C9",X"CD",X"E2", + X"1B",X"DD",X"35",X"07",X"CA",X"4F",X"2A",X"C9",X"E1",X"78",X"FE",X"02",X"3E",X"1B",X"38",X"04", + X"28",X"01",X"3D",X"3D",X"DD",X"77",X"06",X"78",X"FE",X"03",X"28",X"04",X"AF",X"32",X"D6",X"E2", + X"21",X"69",X"2C",X"CD",X"96",X"1B",X"21",X"67",X"2D",X"11",X"DE",X"00",X"CD",X"19",X"2D",X"3E", + X"0B",X"DA",X"7A",X"24",X"DD",X"34",X"01",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"CA",X"55", + X"2A",X"C9",X"CD",X"E2",X"1B",X"21",X"D7",X"E2",X"7E",X"A7",X"20",X"12",X"3A",X"DE",X"E2",X"FE", + X"1E",X"20",X"0B",X"36",X"01",X"21",X"00",X"60",X"11",X"18",X"00",X"CD",X"95",X"2C",X"2A",X"E4", + X"E2",X"DD",X"35",X"07",X"20",X"14",X"23",X"23",X"7E",X"FE",X"FF",X"CA",X"4F",X"2A",X"DD",X"77", + X"06",X"23",X"7E",X"DD",X"77",X"07",X"23",X"22",X"E4",X"E2",X"7E",X"DD",X"86",X"04",X"DD",X"77", + X"04",X"23",X"7E",X"DD",X"8E",X"05",X"DD",X"77",X"05",X"C9",X"20",X"01",X"18",X"03",X"AA",X"00", + X"18",X"02",X"00",X"00",X"18",X"03",X"56",X"FF",X"17",X"04",X"E0",X"FE",X"FF",X"20",X"01",X"1E", + X"03",X"AA",X"00",X"1E",X"02",X"00",X"00",X"1E",X"03",X"56",X"FF",X"17",X"04",X"E0",X"FE",X"FF", + X"CD",X"E7",X"1A",X"D0",X"21",X"36",X"2C",X"CD",X"18",X"1B",X"D0",X"47",X"DD",X"5E",X"06",X"16", + X"00",X"21",X"40",X"2C",X"19",X"7E",X"FE",X"FF",X"C8",X"21",X"D6",X"E2",X"34",X"FE",X"FE",X"28", + X"1C",X"FE",X"08",X"38",X"0B",X"5F",X"78",X"FE",X"02",X"38",X"62",X"7B",X"FE",X"09",X"28",X"0D", + X"80",X"5F",X"21",X"AD",X"E1",X"19",X"3A",X"13",X"E0",X"BE",X"D2",X"F8",X"2A",X"E1",X"78",X"FE", + X"02",X"28",X"38",X"38",X"32",X"DD",X"36",X"07",X"05",X"DD",X"36",X"01",X"0A",X"DD",X"36",X"06", + X"17",X"3A",X"80",X"E0",X"0F",X"0F",X"0F",X"E6",X"03",X"5F",X"16",X"00",X"21",X"32",X"2C",X"19", + X"3A",X"D6",X"E2",X"BE",X"21",X"7A",X"2B",X"38",X"0A",X"21",X"8D",X"2B",X"AF",X"32",X"D7",X"E2", + X"32",X"D6",X"E2",X"22",X"E4",X"E2",X"C9",X"3E",X"15",X"18",X"02",X"3E",X"16",X"DD",X"77",X"06", + X"DD",X"36",X"01",X"09",X"DD",X"36",X"07",X"0B",X"3E",X"91",X"CD",X"FE",X"0D",X"AF",X"32",X"D6", + X"E2",X"C9",X"04",X"03",X"02",X"02",X"00",X"03",X"00",X"00",X"00",X"01",X"02",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FE",X"FE",X"FE",X"00",X"00",X"00",X"FE",X"FE",X"04",X"04",X"04",X"FE", + X"09",X"08",X"08",X"08",X"09",X"FF",X"FF",X"FF",X"FF",X"FF",X"CD",X"B9",X"2C",X"CD",X"7E",X"2C", + X"11",X"00",X"FE",X"21",X"FA",X"71",X"C3",X"AD",X"20",X"0B",X"1C",X"08",X"1D",X"13",X"FF",X"DD", + X"7E",X"FE",X"A7",X"C8",X"DD",X"35",X"FE",X"C9",X"3A",X"80",X"E0",X"E6",X"FC",X"C0",X"2A",X"0C", + X"E8",X"11",X"00",X"E8",X"19",X"21",X"98",X"E1",X"11",X"97",X"E1",X"38",X"01",X"EB",X"7E",X"A7", + X"C8",X"12",X"36",X"00",X"C9",X"3E",X"91",X"CD",X"FE",X"0D",X"3A",X"09",X"E7",X"93",X"F2",X"B6", + X"2C",X"CD",X"08",X"12",X"20",X"10",X"3A",X"80",X"E0",X"E6",X"07",X"FE",X"02",X"3E",X"04",X"20", + X"02",X"3E",X"05",X"32",X"07",X"E0",X"C3",X"E2",X"2E",X"2A",X"0C",X"E8",X"11",X"60",X"F7",X"19", + X"21",X"00",X"E7",X"CB",X"A6",X"D8",X"DD",X"7E",X"01",X"FE",X"01",X"C8",X"3A",X"61",X"E2",X"A7", + X"C0",X"CB",X"E6",X"C9",X"2A",X"F8",X"E2",X"7D",X"B4",X"C0",X"3A",X"02",X"E7",X"FE",X"09",X"28", + X"05",X"FE",X"0A",X"28",X"01",X"7C",X"A7",X"C9",X"3A",X"10",X"E0",X"21",X"9C",X"E1",X"06",X"01", + X"BE",X"38",X"06",X"23",X"04",X"BE",X"38",X"01",X"04",X"DD",X"70",X"0B",X"DD",X"36",X"01",X"04", + X"C9",X"E5",X"2A",X"0C",X"E8",X"11",X"00",X"EE",X"19",X"E1",X"D0",X"F1",X"C9",X"11",X"1B",X"00", + X"C3",X"EA",X"1B",X"11",X"1B",X"00",X"C3",X"F2",X"1B",X"3E",X"83",X"CD",X"FE",X"0D",X"3E",X"91", + X"CD",X"FE",X"0D",X"D5",X"3A",X"06",X"E7",X"E5",X"21",X"42",X"2D",X"5F",X"16",X"00",X"19",X"5E", + X"E1",X"19",X"3A",X"E2",X"E2",X"96",X"32",X"E2",X"E2",X"D1",X"D0",X"3E",X"87",X"CD",X"FE",X"0D", + X"37",X"C9",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"00",X"01",X"01",X"00",X"02",X"00", + X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00",X"03",X"03",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"0C",X"20",X"0C",X"08",X"18",X"10",X"10", + X"20",X"10",X"21",X"2B",X"E3",X"7E",X"A7",X"C8",X"47",X"23",X"C5",X"4E",X"11",X"B4",X"00",X"CB", + X"49",X"28",X"03",X"11",X"D2",X"00",X"CB",X"61",X"28",X"07",X"E5",X"21",X"18",X"00",X"19",X"EB", + X"E1",X"ED",X"53",X"07",X"E8",X"23",X"5E",X"E5",X"23",X"56",X"3A",X"00",X"E7",X"2A",X"F7",X"E1", + X"CB",X"71",X"28",X"1A",X"EB",X"CB",X"4F",X"20",X"01",X"19",X"E5",X"ED",X"5B",X"12",X"E7",X"ED", + X"52",X"22",X"0A",X"E8",X"38",X"26",X"11",X"00",X"F0",X"19",X"38",X"5E",X"18",X"1B",X"EB",X"CB", + X"4F",X"20",X"02",X"ED",X"52",X"E5",X"38",X"52",X"ED",X"5B",X"12",X"E7",X"ED",X"52",X"22",X"0A", + X"E8",X"30",X"09",X"11",X"00",X"10",X"19",X"30",X"41",X"2A",X"0A",X"E8",X"CB",X"4F",X"20",X"10", + X"CB",X"61",X"20",X"0C",X"11",X"60",X"00",X"19",X"11",X"C0",X"00",X"ED",X"52",X"DC",X"31",X"2E", + X"2A",X"0A",X"E8",X"16",X"FF",X"29",X"38",X"02",X"16",X"00",X"29",X"29",X"5C",X"2A",X"15",X"E7", + X"19",X"EB",X"21",X"A0",X"75",X"79",X"EE",X"40",X"E6",X"40",X"CD",X"20",X"0E",X"D1",X"E1",X"73", + X"23",X"72",X"23",X"C1",X"05",X"C2",X"7A",X"2D",X"C9",X"E1",X"21",X"2B",X"E3",X"7E",X"35",X"87", + X"86",X"23",X"16",X"00",X"5F",X"19",X"D1",X"D1",X"13",X"01",X"03",X"00",X"ED",X"B8",X"EB",X"18", + X"E1",X"CB",X"49",X"20",X"0D",X"2A",X"10",X"E7",X"11",X"00",X"A6",X"19",X"D8",X"21",X"00",X"5A", + X"18",X"12",X"3A",X"02",X"E7",X"FE",X"06",X"C8",X"FE",X"07",X"C8",X"3A",X"06",X"E7",X"FE",X"05", + X"C8",X"21",X"00",X"69",X"11",X"18",X"01",X"CD",X"E2",X"2E",X"18",X"BD",X"22",X"38",X"E3",X"EB", + X"29",X"6C",X"26",X"00",X"30",X"01",X"24",X"22",X"36",X"E3",X"3E",X"07",X"32",X"35",X"E3",X"C9", + X"21",X"35",X"E3",X"7E",X"A7",X"C8",X"35",X"C8",X"2A",X"36",X"E3",X"C5",X"22",X"07",X"E8",X"2A", + X"38",X"E3",X"ED",X"5B",X"03",X"E8",X"19",X"EB",X"AF",X"21",X"84",X"74",X"CD",X"20",X"0E",X"C1", + X"C9",X"3A",X"20",X"E7",X"FE",X"03",X"3E",X"01",X"28",X"01",X"AF",X"32",X"3F",X"E3",X"3A",X"01", + X"E7",X"CB",X"77",X"21",X"FE",X"FF",X"28",X"03",X"21",X"02",X"00",X"22",X"3D",X"E3",X"2A",X"22", + X"E7",X"29",X"6C",X"26",X"00",X"30",X"01",X"24",X"22",X"3B",X"E3",X"3E",X"0E",X"32",X"3A",X"E3", + X"C9",X"21",X"3A",X"E3",X"7E",X"A7",X"C8",X"35",X"C8",X"2A",X"3B",X"E3",X"C5",X"22",X"07",X"E8", + X"2A",X"3D",X"E3",X"ED",X"5B",X"15",X"E7",X"19",X"EB",X"AF",X"21",X"89",X"74",X"CD",X"20",X"0E", + X"C1",X"C9",X"3A",X"1F",X"E7",X"E6",X"01",X"20",X"12",X"22",X"22",X"E7",X"21",X"1F",X"E7",X"CB", + X"C6",X"23",X"72",X"23",X"73",X"3E",X"83",X"CD",X"FE",X"0D",X"C9",X"3A",X"09",X"E7",X"93",X"30", + X"01",X"AF",X"32",X"09",X"E7",X"C9",X"21",X"4C",X"E6",X"06",X"04",X"7E",X"A7",X"C8",X"35",X"28", + X"35",X"C5",X"23",X"5E",X"23",X"56",X"ED",X"53",X"07",X"E8",X"23",X"5E",X"23",X"56",X"23",X"4E", + X"23",X"E5",X"2A",X"12",X"E7",X"7D",X"E6",X"E0",X"6F",X"EB",X"ED",X"52",X"E5",X"11",X"00",X"1C", + X"38",X"04",X"ED",X"52",X"18",X"01",X"19",X"E1",X"30",X"07",X"11",X"F7",X"75",X"AF",X"CD",X"9A", + X"1A",X"E1",X"C1",X"10",X"C6",X"C9",X"05",X"28",X"14",X"C5",X"E5",X"EB",X"21",X"06",X"00",X"19", + X"78",X"87",X"80",X"87",X"4F",X"06",X"00",X"ED",X"B0",X"AF",X"12",X"18",X"E4",X"36",X"00",X"C9", + X"C5",X"D5",X"E5",X"11",X"63",X"E6",X"21",X"5D",X"E6",X"01",X"12",X"00",X"ED",X"B8",X"57",X"E6", + X"7F",X"5F",X"32",X"51",X"E6",X"E1",X"22",X"4F",X"E6",X"E1",X"22",X"4D",X"E6",X"3E",X"A9",X"CB", + X"7A",X"28",X"02",X"3E",X"0B",X"32",X"4C",X"E6",X"16",X"00",X"21",X"AD",X"2F",X"19",X"19",X"5E", + X"23",X"56",X"CD",X"9A",X"2F",X"C1",X"C9",X"11",X"10",X"00",X"21",X"81",X"E0",X"7E",X"83",X"27", + X"77",X"23",X"7E",X"8A",X"27",X"77",X"23",X"7E",X"CE",X"00",X"27",X"77",X"C9",X"20",X"00",X"30", + X"00",X"40",X"00",X"50",X"00",X"60",X"00",X"80",X"00",X"90",X"00",X"00",X"01",X"00",X"02",X"00", + X"03",X"00",X"05",X"00",X"10",X"10",X"00",X"3A",X"81",X"E3",X"A7",X"C8",X"DD",X"21",X"82",X"E3", + X"06",X"10",X"C5",X"DD",X"4E",X"00",X"CB",X"61",X"C4",X"E4",X"2F",X"C1",X"11",X"13",X"00",X"DD", + X"19",X"10",X"EF",X"C9",X"21",X"E7",X"36",X"E5",X"21",X"F7",X"2F",X"DD",X"5E",X"01",X"16",X"00", + X"19",X"19",X"7E",X"23",X"66",X"6F",X"E9",X"7F",X"33",X"D4",X"31",X"19",X"30",X"98",X"33",X"D4", + X"33",X"C8",X"32",X"49",X"30",X"EE",X"31",X"25",X"32",X"8B",X"32",X"54",X"31",X"5D",X"31",X"66", + X"31",X"44",X"34",X"78",X"34",X"84",X"34",X"37",X"35",X"CD",X"E2",X"1B",X"21",X"00",X"70",X"CD", + X"1D",X"37",X"DA",X"CD",X"30",X"CD",X"73",X"37",X"DA",X"1E",X"33",X"CD",X"46",X"37",X"3E",X"91", + X"DA",X"27",X"33",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"03",X"DD",X"7E",X"06",X"3C",X"FE", + X"04",X"20",X"02",X"3E",X"02",X"DD",X"77",X"06",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"08",X"CA", + X"06",X"31",X"DD",X"6E",X"0E",X"DD",X"66",X"0F",X"11",X"20",X"00",X"DD",X"CB",X"00",X"56",X"28", + X"0D",X"ED",X"52",X"30",X"16",X"DD",X"CB",X"00",X"96",X"21",X"00",X"00",X"18",X"0D",X"19",X"E5", + X"11",X"80",X"FF",X"19",X"E1",X"30",X"04",X"DD",X"CB",X"00",X"D6",X"DD",X"75",X"0E",X"DD",X"74", + X"0F",X"DD",X"5E",X"0A",X"DD",X"56",X"0B",X"19",X"DD",X"75",X"02",X"DD",X"74",X"03",X"DD",X"6E", + X"10",X"DD",X"66",X"11",X"11",X"49",X"00",X"DD",X"CB",X"00",X"46",X"28",X"0D",X"ED",X"52",X"30", + X"16",X"DD",X"CB",X"00",X"86",X"21",X"00",X"00",X"18",X"0D",X"19",X"E5",X"11",X"00",X"FE",X"19", + X"E1",X"30",X"04",X"DD",X"CB",X"00",X"C6",X"DD",X"75",X"10",X"DD",X"74",X"11",X"DD",X"5E",X"0C", + X"DD",X"56",X"0D",X"19",X"DD",X"75",X"04",X"DD",X"74",X"05",X"C3",X"25",X"30",X"DD",X"36",X"01", + X"06",X"3A",X"71",X"E3",X"DD",X"77",X"08",X"11",X"40",X"00",X"DD",X"6E",X"02",X"DD",X"66",X"03", + X"ED",X"52",X"DD",X"75",X"0A",X"DD",X"74",X"0B",X"DD",X"73",X"0E",X"DD",X"72",X"0F",X"11",X"00", + X"01",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"ED",X"52",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"DD", + X"73",X"10",X"DD",X"72",X"11",X"C9",X"CD",X"3A",X"33",X"3E",X"86",X"CD",X"FE",X"0D",X"FD",X"21", + X"82",X"E3",X"06",X"10",X"0E",X"0A",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"FD",X"CB",X"00",X"66", + X"20",X"2A",X"FD",X"CB",X"00",X"E6",X"FD",X"36",X"07",X"07",X"FD",X"36",X"06",X"14",X"FD",X"75", + X"02",X"FD",X"74",X"03",X"11",X"00",X"74",X"FD",X"73",X"04",X"FD",X"72",X"05",X"FD",X"71",X"01", + X"3A",X"81",X"E3",X"3C",X"32",X"81",X"E3",X"79",X"0C",X"FE",X"0C",X"C8",X"11",X"13",X"00",X"FD", + X"19",X"10",X"C9",X"C9",X"ED",X"5B",X"76",X"E3",X"CD",X"70",X"1C",X"18",X"10",X"CD",X"E2",X"1B", + X"ED",X"5B",X"72",X"E3",X"18",X"0E",X"ED",X"5B",X"76",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B", + X"ED",X"5B",X"74",X"E3",X"21",X"00",X"50",X"CD",X"32",X"37",X"DA",X"13",X"37",X"2A",X"0C",X"E8", + X"11",X"00",X"03",X"ED",X"52",X"30",X"23",X"DD",X"5E",X"02",X"DD",X"56",X"03",X"21",X"E0",X"FF", + X"19",X"22",X"0F",X"E8",X"21",X"20",X"00",X"19",X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"11",X"01",X"00",X"CD",X"72",X"11",X"DA",X"C0",X"31",X"DD",X"35",X"07",X"C0",X"DD",X"36", + X"07",X"03",X"DD",X"7E",X"06",X"3C",X"FE",X"16",X"20",X"02",X"3E",X"14",X"DD",X"77",X"06",X"C9", + X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"20",X"01",X"3E",X"91",X"CD",X"FE",X"0D",X"CD",X"E2", + X"2E",X"C3",X"13",X"37",X"CD",X"E2",X"1B",X"CD",X"73",X"37",X"DA",X"ED",X"32",X"CD",X"46",X"37", + X"3E",X"91",X"DA",X"27",X"33",X"21",X"00",X"50",X"CD",X"1D",X"37",X"38",X"26",X"C9",X"CD",X"E2", + X"1B",X"DD",X"35",X"07",X"C0",X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE",X"10",X"20",X"21",X"DD", + X"34",X"01",X"3A",X"0B",X"E8",X"CB",X"7F",X"DD",X"CB",X"00",X"F6",X"20",X"13",X"DD",X"CB",X"00", + X"B6",X"18",X"0D",X"3E",X"86",X"CD",X"FE",X"0D",X"DD",X"36",X"01",X"07",X"DD",X"36",X"06",X"0D", + X"DD",X"36",X"07",X"07",X"C9",X"CD",X"E2",X"1B",X"21",X"40",X"01",X"CD",X"20",X"12",X"3A",X"02", + X"E7",X"30",X"0A",X"FE",X"04",X"CA",X"A8",X"32",X"FE",X"05",X"CA",X"A8",X"32",X"FE",X"06",X"28", + X"34",X"FE",X"07",X"28",X"30",X"3A",X"06",X"E7",X"FE",X"05",X"28",X"29",X"CB",X"69",X"20",X"25", + X"DD",X"7E",X"06",X"FE",X"12",X"20",X"1E",X"2A",X"0A",X"E8",X"11",X"80",X"06",X"CB",X"71",X"20", + X"04",X"ED",X"52",X"18",X"01",X"19",X"30",X"0D",X"21",X"00",X"6B",X"11",X"20",X"01",X"CD",X"CA", + X"36",X"DD",X"CB",X"00",X"EE",X"DD",X"35",X"07",X"C0",X"DD",X"7E",X"06",X"FE",X"13",X"CA",X"A2", + X"32",X"DD",X"34",X"06",X"3A",X"70",X"E3",X"DD",X"77",X"07",X"C9",X"CD",X"E2",X"1B",X"DD",X"35", + X"07",X"C0",X"DD",X"7E",X"06",X"FE",X"18",X"CA",X"13",X"37",X"DD",X"34",X"06",X"DD",X"36",X"07", + X"07",X"C9",X"DD",X"36",X"06",X"17",X"18",X"17",X"3E",X"86",X"CD",X"FE",X"0D",X"DD",X"6E",X"02", + X"DD",X"66",X"03",X"11",X"DC",X"00",X"3E",X"88",X"CD",X"60",X"2F",X"DD",X"36",X"06",X"16",X"DD", + X"36",X"01",X"09",X"DD",X"36",X"07",X"07",X"C9",X"CD",X"E2",X"1B",X"DD",X"35",X"07",X"C0",X"DD", + X"7E",X"06",X"DD",X"34",X"06",X"DD",X"36",X"07",X"07",X"FE",X"0C",X"C0",X"DD",X"7E",X"0E",X"A7", + X"FC",X"BA",X"3C",X"C3",X"13",X"37",X"3E",X"93",X"CD",X"FE",X"0D",X"18",X"05",X"3E",X"86",X"CD", + X"FE",X"0D",X"3A",X"01",X"E7",X"E6",X"01",X"20",X"07",X"06",X"84",X"11",X"81",X"80",X"18",X"05", + X"06",X"82",X"11",X"80",X"8C",X"ED",X"5F",X"E6",X"7F",X"FE",X"2A",X"38",X"2F",X"43",X"FE",X"55", + X"38",X"2A",X"42",X"18",X"27",X"06",X"88",X"3E",X"86",X"CD",X"FE",X"0D",X"18",X"1E",X"06",X"87", + X"3E",X"86",X"CD",X"FE",X"0D",X"18",X"15",X"CD",X"FE",X"0D",X"DD",X"6E",X"04",X"DD",X"66",X"05", + X"11",X"80",X"02",X"19",X"11",X"20",X"01",X"CD",X"CA",X"36",X"06",X"00",X"DD",X"70",X"0E",X"DD", + X"36",X"07",X"07",X"DD",X"36",X"01",X"05",X"DD",X"36",X"06",X"0A",X"C9",X"3E",X"86",X"CD",X"FE", + X"0D",X"18",X"E7",X"CD",X"F6",X"36",X"DD",X"7E",X"02",X"FD",X"77",X"02",X"DD",X"7E",X"03",X"FD", + X"77",X"03",X"DD",X"7E",X"04",X"FD",X"77",X"04",X"DD",X"7E",X"05",X"FD",X"77",X"05",X"FD",X"CB", + X"00",X"E6",X"FD",X"36",X"07",X"07",X"FD",X"36",X"01",X"05",X"FD",X"36",X"06",X"0A",X"C9",X"CD", + X"E2",X"1B",X"CD",X"73",X"37",X"DA",X"E6",X"32",X"CD",X"46",X"37",X"3E",X"93",X"38",X"98",X"21", + X"00",X"50",X"CD",X"1D",X"37",X"38",X"2B",X"C9",X"CD",X"E2",X"1B",X"CD",X"73",X"37",X"DA",X"F2", + X"32",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"05",X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE", + X"07",X"20",X"7F",X"3A",X"0B",X"E8",X"CB",X"7F",X"DD",X"CB",X"00",X"F6",X"C8",X"DD",X"CB",X"00", + X"B6",X"C9",X"DD",X"36",X"01",X"03",X"DD",X"36",X"07",X"05",X"DD",X"36",X"06",X"04",X"3E",X"93", + X"CD",X"FE",X"0D",X"C9",X"ED",X"5B",X"6E",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B",X"11",X"00", + X"E4",X"19",X"DA",X"13",X"37",X"CB",X"69",X"20",X"33",X"3A",X"02",X"E7",X"FE",X"0C",X"28",X"2C", + X"2A",X"0A",X"E8",X"11",X"E0",X"00",X"CB",X"71",X"28",X"04",X"ED",X"52",X"18",X"01",X"19",X"30", + X"1B",X"2A",X"10",X"E7",X"11",X"00",X"AD",X"19",X"38",X"12",X"21",X"00",X"56",X"11",X"20",X"03", + X"3E",X"94",X"CD",X"FE",X"0D",X"CD",X"CA",X"36",X"DD",X"CB",X"00",X"EE",X"DD",X"35",X"07",X"C0", + X"DD",X"36",X"07",X"09",X"DD",X"7E",X"06",X"3C",X"FE",X"0A",X"20",X"02",X"3E",X"08",X"DD",X"77", + X"06",X"C9",X"FE",X"08",X"C0",X"DD",X"36",X"01",X"04",X"DD",X"36",X"06",X"08",X"DD",X"36",X"07", + X"09",X"C3",X"B3",X"33",X"ED",X"5B",X"72",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2",X"1B",X"CD",X"BF", + X"37",X"DA",X"15",X"33",X"CD",X"92",X"37",X"3E",X"91",X"DA",X"27",X"33",X"DD",X"35",X"08",X"CA", + X"6B",X"35",X"DD",X"35",X"07",X"C8",X"DD",X"36",X"07",X"0B",X"DD",X"7E",X"06",X"3C",X"FE",X"1B", + X"38",X"02",X"3E",X"19",X"DD",X"77",X"06",X"C9",X"ED",X"5B",X"74",X"E3",X"CD",X"7A",X"1C",X"2A", + X"6A",X"E3",X"18",X"0A",X"ED",X"5B",X"76",X"E3",X"CD",X"7A",X"1C",X"2A",X"6C",X"E3",X"22",X"00", + X"E8",X"CD",X"E2",X"1B",X"CD",X"BF",X"37",X"DA",X"15",X"33",X"CD",X"92",X"37",X"3E",X"91",X"DA", + X"27",X"33",X"ED",X"5B",X"00",X"E8",X"21",X"00",X"50",X"CD",X"32",X"37",X"38",X"16",X"DD",X"35", + X"07",X"C8",X"DD",X"36",X"07",X"0B",X"DD",X"7E",X"06",X"3C",X"FE",X"1D",X"38",X"02",X"3E",X"1B", + X"DD",X"77",X"06",X"C9",X"3E",X"86",X"CD",X"FE",X"0D",X"ED",X"5F",X"E6",X"03",X"CA",X"18",X"32", + X"F5",X"CD",X"53",X"33",X"F1",X"FE",X"01",X"CA",X"35",X"34",X"C3",X"13",X"37",X"CD",X"F6",X"36", + X"DD",X"6E",X"02",X"DD",X"66",X"03",X"11",X"00",X"02",X"DD",X"7E",X"00",X"E6",X"40",X"28",X"03", + X"19",X"18",X"02",X"ED",X"52",X"FD",X"75",X"02",X"FD",X"74",X"03",X"EE",X"50",X"FD",X"77",X"00", + X"DD",X"7E",X"0E",X"C6",X"0C",X"FD",X"77",X"01",X"87",X"5F",X"16",X"00",X"21",X"17",X"35",X"19", + X"5E",X"FD",X"73",X"04",X"23",X"5E",X"FD",X"73",X"05",X"FD",X"36",X"07",X"0B",X"FE",X"1A",X"20", + X"0B",X"FD",X"36",X"06",X"19",X"3A",X"65",X"E3",X"FD",X"77",X"08",X"C9",X"FD",X"36",X"06",X"1B", + X"C9",X"00",X"66",X"00",X"5F",X"00",X"5A",X"ED",X"5B",X"63",X"E3",X"CD",X"7A",X"1C",X"CD",X"E2", + X"1B",X"CD",X"73",X"37",X"DA",X"15",X"33",X"CD",X"46",X"37",X"3E",X"94",X"DA",X"27",X"33",X"DD", + X"35",X"08",X"CA",X"4C",X"33",X"DD",X"35",X"07",X"C0",X"DD",X"36",X"07",X"0B",X"DD",X"7E",X"06", + X"3C",X"FE",X"1F",X"38",X"02",X"3E",X"1D",X"DD",X"77",X"06",X"C9",X"CD",X"53",X"33",X"3E",X"86", + X"CD",X"FE",X"0D",X"ED",X"5F",X"E6",X"01",X"CA",X"13",X"37",X"3E",X"40",X"DD",X"AE",X"00",X"DD", + X"77",X"00",X"DD",X"36",X"01",X"10",X"DD",X"36",X"06",X"1D",X"DD",X"36",X"07",X"0B",X"3A",X"66", + X"E3",X"DD",X"77",X"08",X"C9",X"3A",X"60",X"E3",X"ED",X"5B",X"12",X"E7",X"2A",X"61",X"E3",X"ED", + X"52",X"38",X"0B",X"2A",X"63",X"E3",X"ED",X"52",X"38",X"0B",X"FE",X"01",X"18",X"01",X"A7",X"C0", + X"AF",X"32",X"00",X"E1",X"C9",X"21",X"80",X"E3",X"35",X"C0",X"34",X"23",X"7E",X"FE",X"10",X"D0", + X"3A",X"17",X"E0",X"21",X"6A",X"E3",X"1E",X"00",X"BE",X"38",X"1D",X"23",X"1C",X"BE",X"38",X"18", + X"1C",X"3A",X"16",X"E0",X"FE",X"7F",X"3E",X"F8",X"38",X"02",X"3E",X"06",X"21",X"01",X"E7",X"CB", + X"76",X"20",X"02",X"ED",X"44",X"57",X"18",X"23",X"3A",X"16",X"E0",X"16",X"F7",X"FE",X"2A",X"38", + X"1A",X"16",X"FA",X"FE",X"55",X"38",X"14",X"16",X"FD",X"FE",X"7F",X"38",X"0E",X"16",X"03",X"FE", + X"AA",X"38",X"08",X"16",X"06",X"FE",X"D4",X"38",X"02",X"16",X"09",X"3A",X"02",X"E7",X"FE",X"01", + X"28",X"06",X"FE",X"09",X"3E",X"03",X"20",X"02",X"3E",X"06",X"21",X"01",X"E7",X"CB",X"76",X"28", + X"02",X"ED",X"44",X"BA",X"20",X"02",X"16",X"00",X"3A",X"02",X"E7",X"FE",X"01",X"28",X"06",X"FE", + X"09",X"3E",X"03",X"20",X"02",X"3E",X"09",X"CB",X"76",X"20",X"02",X"ED",X"44",X"82",X"57",X"3A", + X"13",X"E7",X"82",X"57",X"CB",X"C2",X"EB",X"DD",X"21",X"6F",X"E3",X"11",X"13",X"00",X"06",X"10", + X"DD",X"19",X"DD",X"CB",X"00",X"66",X"28",X"14",X"DD",X"7E",X"01",X"FE",X"03",X"38",X"08",X"FE", + X"06",X"38",X"09",X"FE",X"09",X"30",X"05",X"DD",X"7E",X"12",X"BC",X"C8",X"10",X"E2",X"EB",X"3A", + X"15",X"E0",X"21",X"65",X"E3",X"CD",X"14",X"12",X"21",X"80",X"E3",X"77",X"23",X"34",X"DD",X"21", + X"6F",X"E3",X"01",X"13",X"00",X"DD",X"09",X"DD",X"CB",X"00",X"66",X"20",X"F8",X"ED",X"5F",X"E6", + X"40",X"F6",X"10",X"DD",X"77",X"00",X"DD",X"73",X"01",X"DD",X"73",X"06",X"DD",X"72",X"12",X"DD", + X"72",X"03",X"DD",X"36",X"02",X"00",X"21",X"00",X"90",X"DD",X"75",X"04",X"DD",X"74",X"05",X"DD", + X"36",X"07",X"03",X"21",X"0A",X"00",X"11",X"7D",X"00",X"DD",X"75",X"0A",X"DD",X"74",X"0B",X"2A", + X"6C",X"E3",X"19",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"C9",X"3A",X"80",X"E0",X"E6",X"07",X"FE", + X"03",X"20",X"11",X"3A",X"09",X"E7",X"93",X"F2",X"E4",X"36",X"CD",X"08",X"12",X"20",X"05",X"3E", + X"05",X"32",X"07",X"E0",X"C3",X"E2",X"2E",X"2A",X"0C",X"E8",X"11",X"00",X"E4",X"19",X"D8",X"21", + X"8E",X"74",X"79",X"C3",X"7E",X"1A",X"3A",X"81",X"E3",X"FE",X"10",X"30",X"14",X"3C",X"32",X"81", + X"E3",X"FD",X"21",X"6F",X"E3",X"11",X"13",X"00",X"FD",X"19",X"FD",X"CB",X"00",X"66",X"20",X"F8", + X"C9",X"F1",X"C9",X"DD",X"36",X"00",X"00",X"21",X"81",X"E3",X"35",X"F1",X"C9",X"E5",X"DD",X"6E", + X"0A",X"DD",X"66",X"0B",X"DD",X"5E",X"0C",X"DD",X"56",X"0D",X"19",X"DD",X"75",X"0C",X"DD",X"74", + X"0D",X"E1",X"E5",X"A7",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"ED",X"52",X"DD",X"75",X"04",X"DD", + X"74",X"05",X"D1",X"ED",X"52",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"03",X"ED",X"52",X"D0",X"DD", + X"5E",X"02",X"DD",X"56",X"03",X"21",X"80",X"FF",X"19",X"22",X"0F",X"E8",X"21",X"80",X"00",X"19", + X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"80",X"00",X"19",X"11",X"08",X"00", + X"C3",X"72",X"11",X"21",X"40",X"01",X"CD",X"20",X"12",X"D0",X"A7",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"ED",X"52",X"D0",X"21",X"00",X"F8",X"19",X"DD",X"5E",X"04",X"DD",X"56",X"05",X"A7",X"ED", + X"52",X"C9",X"2A",X"0C",X"E8",X"11",X"00",X"03",X"ED",X"52",X"D0",X"DD",X"5E",X"02",X"DD",X"56", + X"03",X"21",X"C0",X"FF",X"19",X"22",X"0F",X"E8",X"21",X"40",X"00",X"19",X"22",X"11",X"E8",X"DD", + X"6E",X"04",X"DD",X"66",X"05",X"11",X"80",X"00",X"19",X"11",X"04",X"00",X"C3",X"72",X"11",X"21", + X"E0",X"00",X"CD",X"20",X"12",X"D0",X"A7",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"ED",X"52",X"D0", + X"21",X"80",X"FB",X"19",X"DD",X"5E",X"04",X"DD",X"56",X"05",X"A7",X"ED",X"52",X"C9",X"2A",X"12", + X"E7",X"11",X"00",X"80",X"19",X"38",X"0A",X"CD",X"F6",X"37",X"CD",X"FF",X"38",X"CD",X"60",X"39", + X"C9",X"AF",X"32",X"00",X"E1",X"C9",X"06",X"04",X"21",X"72",X"E5",X"7E",X"A7",X"28",X"05",X"35", + X"23",X"10",X"F8",X"C9",X"C5",X"E5",X"3A",X"80",X"E0",X"FE",X"10",X"21",X"DB",X"38",X"38",X"03", + X"21",X"EB",X"38",X"16",X"00",X"58",X"CB",X"03",X"CB",X"03",X"19",X"5E",X"23",X"56",X"E5",X"ED", + X"4B",X"12",X"E7",X"21",X"40",X"0F",X"09",X"ED",X"52",X"DA",X"D9",X"38",X"21",X"C0",X"F0",X"09", + X"ED",X"52",X"D2",X"D9",X"38",X"21",X"76",X"E5",X"3A",X"0B",X"E5",X"BE",X"DA",X"D9",X"38",X"34", + X"FD",X"21",X"62",X"E5",X"01",X"15",X"00",X"FD",X"09",X"FD",X"CB",X"00",X"66",X"20",X"F8",X"FD", + X"73",X"02",X"FD",X"72",X"03",X"2A",X"12",X"E7",X"3E",X"10",X"ED",X"52",X"38",X"02",X"3E",X"50", + X"FD",X"77",X"00",X"CD",X"C5",X"3D",X"D5",X"3A",X"12",X"E0",X"21",X"0D",X"E5",X"BE",X"30",X"0F", + X"FD",X"CB",X"14",X"CE",X"E6",X"02",X"3E",X"38",X"28",X"02",X"3E",X"A9",X"FD",X"77",X"13",X"3A", + X"13",X"E0",X"21",X"0E",X"E5",X"BE",X"30",X"0E",X"FD",X"CB",X"14",X"C6",X"E6",X"02",X"23",X"28", + X"01",X"23",X"7E",X"FD",X"77",X"12",X"D1",X"E1",X"23",X"7E",X"23",X"66",X"6F",X"FD",X"75",X"04", + X"FD",X"74",X"05",X"ED",X"52",X"FD",X"75",X"0C",X"FD",X"74",X"0D",X"F5",X"FD",X"7E",X"01",X"C6", + X"04",X"FD",X"77",X"01",X"FE",X"04",X"28",X"09",X"F1",X"ED",X"5F",X"CB",X"47",X"28",X"05",X"18", + X"07",X"F1",X"38",X"04",X"FD",X"CB",X"00",X"DE",X"FD",X"36",X"06",X"06",X"FD",X"36",X"07",X"10", + X"3A",X"0A",X"E5",X"E1",X"77",X"C1",X"C3",X"00",X"38",X"E1",X"E1",X"C1",X"C3",X"00",X"38",X"00", + X"71",X"00",X"80",X"00",X"5B",X"00",X"54",X"00",X"3D",X"00",X"70",X"00",X"23",X"00",X"80",X"00", + X"71",X"00",X"80",X"00",X"5B",X"00",X"70",X"00",X"3D",X"00",X"70",X"00",X"23",X"00",X"80",X"3A", + X"20",X"E5",X"A7",X"C8",X"47",X"DD",X"21",X"21",X"E5",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"11", + X"29",X"00",X"ED",X"52",X"EB",X"21",X"00",X"08",X"ED",X"52",X"38",X"05",X"CD",X"0E",X"3D",X"18", + X"24",X"DD",X"73",X"00",X"DD",X"72",X"01",X"2A",X"12",X"E7",X"ED",X"52",X"38",X"0A",X"11",X"00", + X"F0",X"19",X"38",X"25",X"0E",X"FF",X"18",X"08",X"11",X"00",X"10",X"19",X"30",X"1B",X"0E",X"00", + X"C5",X"CD",X"55",X"3D",X"C1",X"21",X"20",X"E5",X"35",X"C8",X"05",X"C8",X"7E",X"23",X"07",X"16", + X"00",X"5F",X"19",X"7E",X"23",X"66",X"6F",X"18",X"B6",X"DD",X"23",X"DD",X"23",X"10",X"AA",X"C9", + X"3A",X"49",X"E5",X"A7",X"C8",X"47",X"DD",X"21",X"4A",X"E5",X"DD",X"6E",X"00",X"DD",X"66",X"01", + X"11",X"29",X"00",X"19",X"EB",X"21",X"00",X"80",X"ED",X"52",X"30",X"05",X"CD",X"09",X"3D",X"18", + X"24",X"DD",X"73",X"00",X"DD",X"72",X"01",X"2A",X"12",X"E7",X"ED",X"52",X"38",X"0A",X"11",X"00", + X"F0",X"19",X"38",X"25",X"0E",X"FF",X"18",X"08",X"11",X"00",X"10",X"19",X"30",X"1B",X"0E",X"00", + X"C5",X"CD",X"59",X"3D",X"C1",X"21",X"49",X"E5",X"35",X"C8",X"05",X"C8",X"7E",X"23",X"07",X"16", + X"00",X"5F",X"19",X"7E",X"23",X"66",X"6F",X"18",X"B7",X"DD",X"23",X"DD",X"23",X"10",X"AB",X"C9", + X"3A",X"76",X"E5",X"A7",X"C8",X"DD",X"21",X"77",X"E5",X"3A",X"0B",X"E5",X"47",X"C5",X"DD",X"4E", + X"00",X"CB",X"61",X"C4",X"DF",X"39",X"C1",X"11",X"15",X"00",X"DD",X"19",X"10",X"EF",X"C9",X"DD", + X"7E",X"01",X"FE",X"04",X"38",X"0B",X"FE",X"07",X"DA",X"3B",X"3C",X"CA",X"E9",X"3B",X"C3",X"1F", + X"3B",X"DD",X"35",X"07",X"20",X"0D",X"DD",X"36",X"07",X"05",X"DD",X"35",X"06",X"28",X"04",X"DD", + X"36",X"06",X"01",X"DD",X"CB",X"14",X"4E",X"28",X"1D",X"DD",X"35",X"13",X"20",X"18",X"DD",X"CB", + X"14",X"56",X"20",X"0A",X"DD",X"CB",X"14",X"D6",X"DD",X"36",X"13",X"A9",X"18",X"08",X"DD",X"CB", + X"14",X"96",X"DD",X"CB",X"14",X"8E",X"DD",X"CB",X"14",X"46",X"28",X"06",X"DD",X"35",X"12",X"CA", + X"92",X"3B",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"DD",X"5E",X"10",X"DD",X"56",X"11",X"DD",X"CB", + X"14",X"56",X"28",X"03",X"11",X"00",X"00",X"CB",X"71",X"20",X"13",X"ED",X"52",X"EB",X"21",X"00", + X"F4",X"19",X"38",X"1C",X"DD",X"CB",X"00",X"F6",X"21",X"AB",X"3E",X"C3",X"AA",X"3B",X"19",X"EB", + X"21",X"00",X"84",X"19",X"30",X"0A",X"DD",X"CB",X"00",X"B6",X"21",X"7F",X"3E",X"C3",X"AA",X"3B", + X"DD",X"73",X"02",X"DD",X"72",X"03",X"D5",X"2A",X"12",X"E7",X"ED",X"52",X"11",X"00",X"11",X"38", + X"08",X"ED",X"52",X"D1",X"38",X"0E",X"C3",X"FB",X"3C",X"19",X"D1",X"38",X"07",X"21",X"00",X"DF", + X"19",X"DA",X"FB",X"3C",X"FE",X"03",X"28",X"5C",X"CD",X"22",X"3D",X"3D",X"FA",X"E4",X"3A",X"D5", + X"DD",X"6E",X"0C",X"DD",X"66",X"0D",X"28",X"06",X"ED",X"5B",X"04",X"E5",X"18",X"04",X"ED",X"5B", + X"06",X"E5",X"CB",X"59",X"28",X"0D",X"ED",X"52",X"EB",X"CB",X"7A",X"28",X"1E",X"DD",X"CB",X"00", + X"9E",X"18",X"18",X"19",X"EB",X"CB",X"7A",X"20",X"12",X"A7",X"28",X"05",X"21",X"00",X"EC",X"18", + X"03",X"21",X"00",X"F0",X"19",X"30",X"04",X"DD",X"CB",X"00",X"DE",X"DD",X"73",X"0C",X"DD",X"72", + X"0D",X"E1",X"19",X"EB",X"DD",X"6E",X"08",X"DD",X"66",X"09",X"19",X"DD",X"75",X"04",X"DD",X"74", + X"05",X"C3",X"7A",X"3C",X"CD",X"22",X"3D",X"D5",X"ED",X"5B",X"04",X"E5",X"DD",X"6E",X"0C",X"DD", + X"66",X"0D",X"CB",X"59",X"28",X"04",X"ED",X"52",X"18",X"01",X"19",X"30",X"07",X"DD",X"36",X"01", + X"00",X"21",X"00",X"00",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"D1",X"19",X"EB",X"18",X"C5",X"DD", + X"6E",X"0E",X"DD",X"66",X"0F",X"DD",X"35",X"07",X"20",X"09",X"11",X"05",X"00",X"19",X"CD",X"D5", + X"3B",X"28",X"24",X"7E",X"DD",X"86",X"02",X"DD",X"77",X"02",X"23",X"7E",X"DD",X"8E",X"03",X"DD", + X"77",X"03",X"23",X"7E",X"DD",X"86",X"04",X"DD",X"77",X"04",X"23",X"7E",X"DD",X"8E",X"05",X"DD", + X"77",X"05",X"23",X"4E",X"C3",X"7A",X"3C",X"DD",X"36",X"0A",X"00",X"DD",X"36",X"06",X"00",X"DD", + X"36",X"07",X"05",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"DD",X"5E",X"08",X"DD",X"56",X"09",X"ED", + X"52",X"DD",X"75",X"0C",X"DD",X"74",X"0D",X"DD",X"7E",X"01",X"D6",X"08",X"20",X"0E",X"3E",X"03", + X"DD",X"CB",X"00",X"9E",X"CB",X"7C",X"20",X"04",X"DD",X"CB",X"00",X"DE",X"DD",X"77",X"01",X"C3", + X"7A",X"3C",X"DD",X"CB",X"14",X"86",X"DD",X"CB",X"00",X"76",X"21",X"7F",X"3E",X"DD",X"CB",X"00", + X"B6",X"20",X"07",X"DD",X"CB",X"00",X"F6",X"21",X"AB",X"3E",X"E5",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"11",X"00",X"98",X"19",X"E1",X"30",X"04",X"11",X"16",X"00",X"19",X"CD",X"D5",X"3B",X"11", + X"04",X"00",X"19",X"4E",X"DD",X"7E",X"01",X"C6",X"08",X"FE",X"0B",X"20",X"02",X"3E",X"08",X"DD", + X"77",X"01",X"C3",X"7A",X"3C",X"7E",X"FE",X"FF",X"C8",X"DD",X"77",X"07",X"23",X"7E",X"DD",X"77", + X"06",X"23",X"DD",X"75",X"0E",X"DD",X"74",X"0F",X"C9",X"DD",X"35",X"07",X"C2",X"A9",X"3C",X"DD", + X"7E",X"06",X"FE",X"09",X"28",X"0A",X"DD",X"36",X"07",X"05",X"DD",X"34",X"06",X"C3",X"A9",X"3C", + X"DD",X"7E",X"0E",X"A7",X"CA",X"F2",X"3C",X"CD",X"BA",X"3C",X"C3",X"F2",X"3C",X"3E",X"86",X"CD", + X"FE",X"0D",X"3A",X"01",X"E7",X"E6",X"01",X"3E",X"83",X"20",X"0F",X"3C",X"18",X"0C",X"11",X"15", + X"01",X"CD",X"E2",X"2E",X"3E",X"94",X"CD",X"FE",X"0D",X"AF",X"DD",X"77",X"0E",X"DD",X"36",X"07", + X"05",X"DD",X"36",X"06",X"07",X"DD",X"36",X"01",X"07",X"18",X"6E",X"DD",X"35",X"07",X"28",X"26", + X"3A",X"00",X"EB",X"F5",X"3E",X"01",X"32",X"00",X"EB",X"2A",X"01",X"EB",X"E5",X"2A",X"03",X"EB", + X"11",X"F8",X"FF",X"19",X"22",X"01",X"EB",X"22",X"03",X"EB",X"CD",X"A9",X"3C",X"E1",X"22",X"01", + X"EB",X"F1",X"32",X"00",X"EB",X"C9",X"DD",X"36",X"06",X"00",X"DD",X"36",X"07",X"05",X"DD",X"7E", + X"01",X"D6",X"04",X"20",X"02",X"3E",X"03",X"DD",X"77",X"01",X"CD",X"CF",X"3C",X"DA",X"0D",X"3C", + X"DD",X"5E",X"02",X"DD",X"56",X"03",X"21",X"C0",X"FF",X"19",X"22",X"0F",X"E8",X"21",X"80",X"00", + X"19",X"22",X"11",X"E8",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"11",X"00",X"02",X"19",X"11",X"06", + X"00",X"E5",X"CD",X"72",X"11",X"E1",X"DA",X"1E",X"3C",X"CD",X"E2",X"1B",X"11",X"00",X"E4",X"19", + X"D8",X"21",X"C0",X"75",X"79",X"EE",X"40",X"C3",X"80",X"1A",X"DD",X"6E",X"04",X"DD",X"66",X"05", + X"29",X"16",X"00",X"CB",X"12",X"5C",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"C3",X"60",X"2F",X"21", + X"40",X"01",X"CD",X"20",X"12",X"D0",X"21",X"80",X"01",X"19",X"EB",X"DD",X"6E",X"04",X"DD",X"66", + X"05",X"ED",X"52",X"D0",X"21",X"80",X"F3",X"19",X"DD",X"5E",X"04",X"DD",X"56",X"05",X"A7",X"ED", + X"52",X"C9",X"21",X"76",X"E5",X"35",X"DD",X"36",X"00",X"00",X"C9",X"21",X"76",X"E5",X"35",X"DD", + X"CB",X"00",X"76",X"DD",X"36",X"00",X"00",X"20",X"05",X"21",X"20",X"E5",X"18",X"03",X"21",X"49", + X"E5",X"7E",X"FE",X"14",X"C8",X"34",X"23",X"C5",X"07",X"06",X"00",X"4F",X"09",X"73",X"23",X"72", + X"C1",X"C9",X"DD",X"6E",X"0A",X"DD",X"66",X"0B",X"ED",X"5B",X"08",X"E5",X"DD",X"CB",X"00",X"56", + X"28",X"0E",X"ED",X"52",X"EB",X"30",X"15",X"DD",X"CB",X"00",X"96",X"11",X"00",X"00",X"18",X"0C", + X"19",X"EB",X"21",X"00",X"FC",X"19",X"30",X"04",X"DD",X"CB",X"00",X"D6",X"DD",X"73",X"0A",X"DD", + X"72",X"0B",X"C9",X"0E",X"00",X"06",X"10",X"18",X"02",X"06",X"50",X"21",X"76",X"E5",X"3A",X"0B", + X"E5",X"BE",X"D8",X"34",X"FD",X"21",X"62",X"E5",X"11",X"15",X"00",X"FD",X"19",X"FD",X"CB",X"00", + X"66",X"20",X"F8",X"ED",X"5F",X"E6",X"0C",X"B0",X"FD",X"77",X"00",X"2A",X"12",X"E7",X"11",X"80", + X"10",X"CB",X"41",X"28",X"04",X"ED",X"52",X"18",X"0A",X"19",X"11",X"80",X"20",X"ED",X"52",X"19", + X"30",X"01",X"EB",X"FD",X"75",X"02",X"FD",X"74",X"03",X"FD",X"36",X"07",X"05",X"FD",X"36",X"06", + X"00",X"CD",X"C5",X"3D",X"FD",X"7E",X"01",X"FE",X"01",X"D8",X"21",X"5F",X"3E",X"28",X"03",X"21", + X"6F",X"3E",X"3A",X"10",X"E0",X"E6",X"0E",X"16",X"00",X"5F",X"19",X"7E",X"FD",X"77",X"0C",X"23", + X"7E",X"FD",X"77",X"0D",X"C9",X"21",X"49",X"E6",X"7E",X"A7",X"20",X"0F",X"36",X"03",X"ED",X"5F", + X"E6",X"1C",X"21",X"1F",X"3E",X"16",X"00",X"5F",X"19",X"18",X"04",X"35",X"2A",X"4A",X"E6",X"7E", + X"23",X"22",X"4A",X"E6",X"FD",X"77",X"01",X"FD",X"36",X"14",X"00",X"21",X"3F",X"3E",X"A7",X"28", + X"03",X"21",X"4F",X"3E",X"ED",X"5F",X"E6",X"0E",X"16",X"00",X"5F",X"19",X"5E",X"23",X"56",X"FD", + X"73",X"08",X"FD",X"72",X"09",X"FD",X"36",X"0B",X"02",X"3A",X"11",X"E0",X"21",X"0C",X"E5",X"BE", + X"2A",X"00",X"E5",X"38",X"03",X"2A",X"02",X"E5",X"FD",X"75",X"10",X"FD",X"74",X"11",X"C9",X"02", + X"00",X"01",X"00",X"01",X"02",X"00",X"00",X"00",X"00",X"02",X"01",X"00",X"01",X"00",X"02",X"02", + X"00",X"00",X"01",X"00",X"02",X"01",X"00",X"00",X"01",X"02",X"00",X"01",X"00",X"00",X"02",X"00", + X"50",X"80",X"54",X"00",X"59",X"80",X"5D",X"00",X"62",X"80",X"66",X"00",X"6B",X"80",X"6F",X"00", + X"4E",X"80",X"51",X"00",X"55",X"80",X"58",X"00",X"5C",X"80",X"5F",X"00",X"63",X"80",X"66",X"00", + X"00",X"80",X"02",X"00",X"05",X"00",X"07",X"80",X"09",X"80",X"0B",X"00",X"0E",X"00",X"10",X"00", + X"00",X"00",X"03",X"00",X"06",X"80",X"08",X"80",X"0B",X"00",X"0E",X"00",X"0C",X"00",X"14",X"12", + X"02",X"2A",X"00",X"47",X"00",X"40",X"12",X"03",X"00",X"00",X"8E",X"00",X"40",X"12",X"02",X"D6", + X"FF",X"47",X"00",X"00",X"FF",X"12",X"04",X"2A",X"00",X"B9",X"FF",X"C0",X"12",X"05",X"00",X"00", + X"72",X"FF",X"C0",X"12",X"04",X"D6",X"FF",X"B9",X"FF",X"80",X"FF",X"12",X"02",X"D6",X"FF",X"47", + X"00",X"00",X"12",X"03",X"00",X"00",X"8E",X"00",X"00",X"12",X"02",X"2A",X"00",X"47",X"00",X"40", + X"FF",X"12",X"04",X"D6",X"FF",X"B9",X"FF",X"80",X"12",X"05",X"00",X"00",X"72",X"FF",X"80",X"12", + X"04",X"2A",X"00",X"B9",X"FF",X"C0",X"FF",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"2A",X"12",X"E7",X"ED",X"5B",X"07",X"E7",X"3A",X"80",X"E0",X"E6",X"01",X"28",X"01",X"EB",X"ED", + X"52",X"3E",X"01",X"30",X"02",X"3E",X"00",X"32",X"02",X"E7",X"38",X"10",X"21",X"03",X"E7",X"7E", + X"35",X"A7",X"20",X"08",X"CD",X"3F",X"43",X"3E",X"90",X"CD",X"FE",X"0D",X"2A",X"12",X"E7",X"3A", + X"1A",X"E7",X"A7",X"C2",X"AD",X"40",X"3A",X"00",X"E0",X"FE",X"03",X"28",X"70",X"3A",X"02",X"E7", + X"FE",X"0B",X"28",X"69",X"30",X"3A",X"FE",X"09",X"30",X"0B",X"FE",X"01",X"20",X"5F",X"3A",X"06", + X"E7",X"FE",X"04",X"28",X"58",X"3A",X"00",X"E7",X"CB",X"6F",X"3A",X"01",X"E7",X"11",X"29",X"00", + X"28",X"27",X"E6",X"20",X"20",X"47",X"19",X"11",X"00",X"DB",X"ED",X"52",X"19",X"38",X"01",X"EB", + X"E5",X"7C",X"D6",X"0F",X"21",X"14",X"E7",X"BE",X"20",X"2F",X"34",X"7E",X"C6",X"1F",X"18",X"26", + X"3A",X"00",X"E7",X"E6",X"20",X"20",X"11",X"18",X"E7",X"E6",X"10",X"20",X"20",X"ED",X"52",X"11", + X"00",X"04",X"ED",X"52",X"19",X"30",X"01",X"EB",X"E5",X"3E",X"10",X"84",X"21",X"14",X"E7",X"BE", + X"20",X"07",X"35",X"7E",X"C6",X"E0",X"CD",X"65",X"57",X"E1",X"22",X"12",X"E7",X"AF",X"29",X"17", + X"29",X"17",X"29",X"17",X"6C",X"67",X"11",X"80",X"00",X"ED",X"52",X"38",X"11",X"19",X"11",X"80", + X"06",X"ED",X"52",X"30",X"09",X"19",X"22",X"00",X"E9",X"21",X"00",X"01",X"18",X"08",X"ED",X"53", + X"00",X"E9",X"11",X"00",X"01",X"19",X"22",X"15",X"E7",X"AF",X"2A",X"10",X"E7",X"29",X"17",X"6C", + X"67",X"22",X"17",X"E7",X"C9",X"2A",X"17",X"E7",X"22",X"07",X"E8",X"3A",X"06",X"E7",X"87",X"21", + X"FF",X"65",X"06",X"00",X"4F",X"09",X"7E",X"23",X"66",X"6F",X"3A",X"01",X"E7",X"E6",X"40",X"ED", + X"5B",X"15",X"E7",X"CD",X"20",X"0E",X"3A",X"00",X"E0",X"FE",X"05",X"C8",X"FE",X"07",X"C8",X"FE", + X"03",X"2A",X"00",X"E9",X"20",X"1E",X"EB",X"2A",X"02",X"E9",X"3A",X"01",X"E1",X"01",X"02",X"00", + X"A7",X"20",X"08",X"ED",X"42",X"ED",X"52",X"30",X"07",X"18",X"08",X"09",X"ED",X"52",X"30",X"03", + X"19",X"18",X"01",X"EB",X"22",X"02",X"E9",X"3A",X"3F",X"E3",X"A7",X"CC",X"C1",X"2E",X"C9",X"CD", + X"08",X"12",X"20",X"0C",X"2A",X"03",X"E0",X"7C",X"B5",X"20",X"05",X"21",X"1F",X"E7",X"CB",X"CE", + X"CD",X"74",X"41",X"21",X"00",X"E7",X"CB",X"66",X"28",X"0E",X"CB",X"6E",X"28",X"05",X"CB",X"76", + X"20",X"0E",X"C9",X"CB",X"76",X"28",X"05",X"C9",X"CB",X"6E",X"20",X"04",X"23",X"CB",X"B6",X"C9", + X"23",X"CB",X"F6",X"C9",X"21",X"19",X"E7",X"35",X"C2",X"9A",X"41",X"3A",X"80",X"E0",X"E6",X"18", + X"FE",X"08",X"16",X"00",X"38",X"0C",X"16",X"A9",X"28",X"08",X"FE",X"10",X"16",X"70",X"28",X"02", + X"16",X"38",X"72",X"21",X"01",X"E7",X"7E",X"EE",X"80",X"77",X"3A",X"00",X"E0",X"FE",X"03",X"CA", + X"A0",X"46",X"CD",X"04",X"47",X"21",X"02",X"E7",X"7E",X"FE",X"0D",X"CA",X"F6",X"45",X"FE",X"04", + X"DA",X"89",X"42",X"FE",X"0B",X"CA",X"DE",X"44",X"D2",X"02",X"45",X"FE",X"08",X"D2",X"06",X"44", + X"3A",X"1F",X"E7",X"E6",X"01",X"C2",X"51",X"45",X"3A",X"09",X"E9",X"57",X"7E",X"FE",X"06",X"30", + X"05",X"CB",X"52",X"C2",X"87",X"43",X"CB",X"5A",X"C2",X"B5",X"43",X"21",X"00",X"E7",X"CB",X"4A", + X"28",X"02",X"CB",X"AE",X"CB",X"42",X"28",X"02",X"CB",X"EE",X"21",X"03",X"E7",X"35",X"20",X"39", + X"3A",X"04",X"E7",X"3C",X"28",X"4A",X"3D",X"20",X"19",X"3C",X"32",X"04",X"E7",X"2A",X"0A",X"E7", + X"7E",X"32",X"03",X"E7",X"23",X"3A",X"01",X"E7",X"A6",X"32",X"01",X"E7",X"23",X"7E",X"32",X"06", + X"E7",X"C9",X"21",X"02",X"E7",X"7E",X"FE",X"06",X"01",X"00",X"04",X"38",X"03",X"01",X"03",X"05", + X"71",X"78",X"32",X"06",X"E7",X"23",X"36",X"05",X"C9",X"3A",X"04",X"E7",X"3D",X"C0",X"2A",X"0A", + X"E7",X"23",X"CB",X"4E",X"28",X"05",X"CB",X"6A",X"20",X"0A",X"C9",X"CB",X"62",X"20",X"05",X"C9", + X"AF",X"32",X"05",X"E7",X"AF",X"32",X"04",X"E7",X"57",X"3A",X"02",X"E7",X"D6",X"04",X"87",X"5F", + X"87",X"83",X"5F",X"21",X"8D",X"65",X"19",X"7E",X"32",X"03",X"E7",X"23",X"3A",X"01",X"E7",X"B6", + X"32",X"01",X"E7",X"23",X"CB",X"4F",X"7E",X"23",X"22",X"0A",X"E7",X"21",X"05",X"E7",X"28",X"05", + X"CB",X"46",X"28",X"01",X"3C",X"32",X"06",X"E7",X"34",X"3A",X"84",X"E8",X"A7",X"C0",X"3E",X"0B", + X"32",X"84",X"E8",X"3E",X"82",X"CD",X"FE",X"0D",X"C9",X"3A",X"1F",X"E7",X"CB",X"4F",X"C2",X"36", + X"46",X"CB",X"47",X"C2",X"5A",X"45",X"3A",X"03",X"E7",X"3D",X"FA",X"A0",X"42",X"32",X"03",X"E7", + X"3A",X"09",X"E9",X"CB",X"6F",X"C2",X"65",X"43",X"CB",X"67",X"C2",X"52",X"43",X"CB",X"5F",X"C2", + X"BD",X"43",X"CB",X"57",X"C2",X"87",X"43",X"CB",X"4F",X"20",X"4C",X"CB",X"47",X"20",X"20",X"21", + X"02",X"E7",X"7E",X"FE",X"02",X"36",X"00",X"D2",X"47",X"43",X"FE",X"00",X"3A",X"05",X"E7",X"28", + X"02",X"3E",X"05",X"3D",X"32",X"05",X"E7",X"C0",X"2A",X"12",X"E7",X"22",X"07",X"E7",X"C9",X"2A", + X"12",X"E7",X"11",X"00",X"DB",X"ED",X"52",X"28",X"D6",X"21",X"01",X"E7",X"CB",X"6E",X"2B",X"20", + X"08",X"CB",X"6E",X"20",X"3C",X"CB",X"EE",X"18",X"26",X"CB",X"EE",X"18",X"02",X"CB",X"AE",X"2A", + X"12",X"E7",X"22",X"07",X"E7",X"18",X"B8",X"2A",X"12",X"E7",X"11",X"00",X"04",X"ED",X"52",X"28", + X"AE",X"21",X"01",X"E7",X"CB",X"66",X"2B",X"20",X"E4",X"CB",X"6E",X"28",X"14",X"CB",X"AE",X"3A", + X"02",X"E7",X"FE",X"04",X"20",X"05",X"3E",X"05",X"32",X"03",X"E7",X"2A",X"12",X"E7",X"22",X"07", + X"E7",X"21",X"02",X"E7",X"3E",X"01",X"BE",X"77",X"38",X"0D",X"3A",X"03",X"E7",X"A7",X"C0",X"3A", + X"06",X"E7",X"3C",X"FE",X"04",X"38",X"02",X"3E",X"00",X"32",X"06",X"E7",X"3E",X"05",X"32",X"03", + X"E7",X"C9",X"7E",X"FE",X"03",X"3E",X"05",X"20",X"02",X"3E",X"07",X"77",X"2A",X"12",X"E7",X"22", + X"07",X"E7",X"C3",X"40",X"42",X"3E",X"01",X"32",X"03",X"E7",X"7E",X"FE",X"03",X"0E",X"04",X"3E", + X"06",X"20",X"04",X"0E",X"06",X"3E",X"0B",X"71",X"32",X"06",X"E7",X"3E",X"FF",X"32",X"04",X"E7", + X"2A",X"12",X"E7",X"22",X"07",X"E7",X"C9",X"7E",X"FE",X"02",X"28",X"19",X"FE",X"03",X"C8",X"36", + X"02",X"2A",X"12",X"E7",X"22",X"07",X"E7",X"3E",X"02",X"32",X"03",X"E7",X"3A",X"01",X"E7",X"E6", + X"FC",X"32",X"01",X"E7",X"C9",X"3A",X"03",X"E7",X"A7",X"C0",X"3E",X"03",X"32",X"02",X"E7",X"3E", + X"05",X"32",X"06",X"E7",X"C9",X"3A",X"01",X"E7",X"E6",X"FC",X"32",X"01",X"E7",X"2A",X"12",X"E7", + X"ED",X"5B",X"07",X"E7",X"3A",X"00",X"E7",X"E6",X"20",X"20",X"01",X"EB",X"ED",X"52",X"3E",X"08", + X"11",X"00",X"04",X"ED",X"52",X"38",X"01",X"3C",X"32",X"02",X"E7",X"D6",X"08",X"87",X"06",X"00", + X"4F",X"11",X"03",X"E7",X"21",X"A5",X"65",X"09",X"7E",X"23",X"66",X"6F",X"ED",X"A0",X"03",X"22", + X"0C",X"E7",X"21",X"A9",X"65",X"09",X"7E",X"23",X"66",X"6F",X"ED",X"A0",X"22",X"0E",X"E7",X"AF", + X"12",X"7E",X"32",X"06",X"E7",X"C9",X"21",X"1F",X"E7",X"CB",X"46",X"C2",X"4B",X"46",X"3A",X"1A", + X"E7",X"A7",X"C2",X"56",X"46",X"2A",X"0C",X"E7",X"5E",X"23",X"56",X"E5",X"2A",X"10",X"E7",X"19", + X"22",X"10",X"E7",X"E1",X"3A",X"03",X"E7",X"3D",X"20",X"06",X"23",X"7E",X"23",X"22",X"0C",X"E7", + X"32",X"03",X"E7",X"2A",X"0E",X"E7",X"3A",X"04",X"E7",X"3D",X"20",X"09",X"23",X"7E",X"A7",X"28", + X"2D",X"23",X"22",X"0E",X"E7",X"32",X"04",X"E7",X"4E",X"3A",X"05",X"E7",X"A7",X"28",X"58",X"2A", + X"0A",X"E7",X"3A",X"05",X"E7",X"3D",X"20",X"2E",X"CB",X"7E",X"28",X"04",X"CB",X"79",X"20",X"29", + X"23",X"7E",X"32",X"05",X"E7",X"23",X"A7",X"28",X"21",X"22",X"0A",X"E7",X"18",X"1B",X"21",X"00", + X"05",X"22",X"02",X"E7",X"3E",X"04",X"32",X"06",X"E7",X"21",X"00",X"50",X"22",X"10",X"E7",X"2A", + X"12",X"E7",X"22",X"07",X"E7",X"C9",X"32",X"05",X"E7",X"4E",X"3A",X"01",X"E7",X"CB",X"CF",X"CB", + X"71",X"20",X"0A",X"CB",X"8F",X"CB",X"C7",X"CB",X"69",X"20",X"02",X"CB",X"87",X"32",X"01",X"E7", + X"79",X"E6",X"1F",X"32",X"06",X"E7",X"C9",X"CB",X"79",X"28",X"F5",X"3A",X"09",X"E9",X"E6",X"30", + X"28",X"EE",X"06",X"F8",X"CB",X"67",X"20",X"09",X"06",X"FB",X"3E",X"81",X"CD",X"FE",X"0D",X"18", + X"03",X"CD",X"79",X"42",X"3A",X"02",X"E7",X"80",X"87",X"16",X"00",X"5F",X"21",X"AD",X"65",X"19", + X"7E",X"23",X"66",X"6F",X"7E",X"32",X"05",X"E7",X"23",X"22",X"0A",X"E7",X"18",X"AB",X"3A",X"1F", + X"E7",X"E6",X"01",X"20",X"75",X"21",X"03",X"E7",X"35",X"C0",X"21",X"02",X"E7",X"3A",X"06",X"E7", + X"FE",X"05",X"36",X"03",X"C8",X"36",X"00",X"3E",X"00",X"32",X"06",X"E7",X"3E",X"05",X"32",X"03", + X"E7",X"C9",X"21",X"03",X"E7",X"35",X"20",X"19",X"2A",X"0A",X"E7",X"7E",X"FE",X"FF",X"28",X"3B", + X"32",X"06",X"E7",X"23",X"7E",X"23",X"32",X"03",X"E7",X"22",X"0A",X"E7",X"21",X"00",X"E7",X"CB", + X"CE",X"ED",X"5B",X"0E",X"E7",X"2A",X"07",X"E7",X"19",X"22",X"0E",X"E7",X"2A",X"10",X"E7",X"ED", + X"52",X"22",X"10",X"E7",X"2A",X"12",X"E7",X"ED",X"5B",X"0C",X"E7",X"3A",X"00",X"E7",X"E6",X"20", + X"28",X"04",X"ED",X"52",X"18",X"01",X"19",X"22",X"12",X"E7",X"C9",X"3E",X"0B",X"32",X"00",X"E0", + X"C9",X"7E",X"FE",X"06",X"3E",X"05",X"30",X"0C",X"18",X"07",X"3A",X"06",X"E7",X"FE",X"05",X"28", + X"06",X"CD",X"8E",X"46",X"32",X"06",X"E7",X"CD",X"91",X"2E",X"2A",X"12",X"E7",X"22",X"07",X"E7", + X"3A",X"01",X"E7",X"E6",X"FC",X"32",X"01",X"E7",X"21",X"1F",X"E7",X"CB",X"86",X"3E",X"08",X"32", + X"03",X"E7",X"21",X"21",X"E7",X"3A",X"09",X"E7",X"A7",X"37",X"FA",X"91",X"45",X"96",X"32",X"09", + X"E7",X"21",X"02",X"E7",X"36",X"0B",X"D0",X"CD",X"08",X"12",X"C0",X"34",X"3A",X"20",X"E7",X"A7", + X"F5",X"3E",X"00",X"CD",X"FE",X"0D",X"3E",X"87",X"CD",X"FE",X"0D",X"F1",X"21",X"EC",X"45",X"11", + X"0C",X"00",X"01",X"12",X"00",X"20",X"23",X"2A",X"12",X"E7",X"ED",X"5B",X"DA",X"E2",X"ED",X"52", + X"21",X"01",X"E7",X"38",X"07",X"CB",X"B6",X"2B",X"CB",X"AE",X"18",X"05",X"CB",X"F6",X"2B",X"CB", + X"EE",X"21",X"F1",X"45",X"11",X"39",X"00",X"01",X"1B",X"00",X"22",X"0A",X"E7",X"ED",X"53",X"0C", + X"E7",X"ED",X"43",X"07",X"E7",X"21",X"00",X"00",X"22",X"0E",X"E7",X"C9",X"22",X"0A",X"23",X"18", + X"FF",X"24",X"08",X"25",X"16",X"FF",X"21",X"1F",X"E7",X"CB",X"46",X"28",X"0C",X"CD",X"91",X"2E", + X"CD",X"75",X"46",X"CD",X"8E",X"46",X"32",X"06",X"E7",X"ED",X"5B",X"0E",X"E7",X"21",X"12",X"00", + X"19",X"22",X"0E",X"E7",X"2A",X"10",X"E7",X"ED",X"52",X"EB",X"21",X"00",X"B0",X"19",X"30",X"05", + X"ED",X"53",X"10",X"E7",X"C9",X"21",X"00",X"50",X"21",X"1F",X"E7",X"CB",X"4E",X"28",X"14",X"CB", + X"8E",X"CD",X"08",X"12",X"20",X"0D",X"3E",X"0C",X"32",X"02",X"E7",X"3E",X"05",X"32",X"03",X"E7", + X"C3",X"9F",X"45",X"21",X"02",X"E7",X"36",X"00",X"C3",X"47",X"43",X"CD",X"91",X"2E",X"CD",X"75", + X"46",X"CD",X"8E",X"46",X"18",X"02",X"3E",X"10",X"32",X"06",X"E7",X"3E",X"0D",X"32",X"02",X"E7", + X"21",X"80",X"00",X"22",X"0E",X"E7",X"2A",X"12",X"E7",X"22",X"07",X"E7",X"3A",X"01",X"E7",X"E6", + X"FC",X"32",X"01",X"E7",X"C9",X"21",X"21",X"E7",X"3A",X"09",X"E7",X"A7",X"FA",X"84",X"46",X"96", + X"0E",X"00",X"30",X"02",X"0E",X"02",X"32",X"09",X"E7",X"21",X"1F",X"E7",X"71",X"C9",X"2A",X"10", + X"E7",X"11",X"00",X"18",X"19",X"ED",X"5B",X"22",X"E7",X"ED",X"52",X"3E",X"20",X"D8",X"3C",X"C9", + X"CD",X"03",X"59",X"FE",X"04",X"28",X"4D",X"21",X"03",X"E7",X"35",X"C0",X"36",X"08",X"21",X"05", + X"E7",X"35",X"20",X"24",X"36",X"02",X"2B",X"35",X"28",X"34",X"2A",X"12",X"E7",X"11",X"00",X"01", + X"3A",X"01",X"E1",X"A7",X"28",X"03",X"19",X"18",X"02",X"ED",X"52",X"22",X"12",X"E7",X"2A",X"10", + X"E7",X"11",X"00",X"06",X"19",X"22",X"10",X"E7",X"3A",X"06",X"E7",X"3C",X"FE",X"20",X"20",X"02", + X"3E",X"1C",X"32",X"06",X"E7",X"E6",X"01",X"C0",X"3E",X"90",X"CD",X"FE",X"0D",X"C9",X"3E",X"0C", + X"32",X"00",X"E0",X"C9",X"3A",X"06",X"E7",X"FE",X"26",X"C0",X"3E",X"0C",X"32",X"00",X"E0",X"AF", + X"32",X"40",X"E3",X"C9",X"2A",X"02",X"E1",X"ED",X"5B",X"12",X"E7",X"CD",X"03",X"59",X"FE",X"04", + X"28",X"72",X"3A",X"01",X"E1",X"FE",X"01",X"FD",X"21",X"00",X"50",X"38",X"06",X"C0",X"FD",X"21", + X"00",X"52",X"EB",X"A7",X"ED",X"52",X"D8",X"E5",X"2A",X"10",X"E7",X"11",X"00",X"50",X"ED",X"52", + X"38",X"50",X"29",X"7C",X"E1",X"06",X"0C",X"D6",X"0C",X"38",X"0E",X"11",X"00",X"01",X"ED",X"52", + X"D8",X"11",X"00",X"06",X"FD",X"19",X"05",X"18",X"EE",X"FD",X"22",X"10",X"E7",X"3E",X"00",X"CD", + X"FE",X"0D",X"3E",X"03",X"32",X"00",X"E0",X"EB",X"2A",X"12",X"E7",X"3A",X"01",X"E1",X"A7",X"28", + X"05",X"ED",X"52",X"11",X"00",X"01",X"19",X"22",X"12",X"E7",X"21",X"00",X"E7",X"CB",X"CE",X"3E", + X"1C",X"32",X"06",X"E7",X"3E",X"08",X"32",X"03",X"E7",X"3E",X"01",X"32",X"05",X"E7",X"78",X"32", + X"04",X"E7",X"F1",X"C9",X"ED",X"52",X"D8",X"3A",X"02",X"E7",X"FE",X"02",X"D0",X"21",X"41",X"E3", + X"34",X"3E",X"05",X"32",X"46",X"E3",X"3E",X"05",X"32",X"47",X"E3",X"3E",X"03",X"21",X"01",X"E7", + X"CB",X"B6",X"2B",X"CB",X"AE",X"CB",X"CE",X"32",X"00",X"E0",X"3E",X"00",X"CD",X"FE",X"0D",X"F1", + X"3E",X"03",X"32",X"06",X"E7",X"C9",X"DD",X"21",X"4C",X"E3",X"DD",X"CB",X"00",X"66",X"C4",X"21", + X"48",X"DD",X"21",X"40",X"E3",X"DD",X"4E",X"00",X"CB",X"61",X"C8",X"DD",X"7E",X"01",X"FE",X"01", + X"38",X"39",X"28",X"13",X"11",X"1B",X"00",X"CD",X"EA",X"1B",X"11",X"20",X"FF",X"19",X"38",X"41", + X"3E",X"26",X"32",X"06",X"E7",X"18",X"3A",X"DD",X"35",X"07",X"20",X"35",X"DD",X"36",X"07",X"0B", + X"DD",X"34",X"06",X"DD",X"7E",X"06",X"FE",X"07",X"38",X"27",X"DD",X"36",X"07",X"07",X"DD",X"34", + X"01",X"DD",X"36",X"06",X"01",X"DD",X"CB",X"0C",X"E6",X"18",X"16",X"DD",X"35",X"07",X"20",X"11", + X"DD",X"36",X"07",X"08",X"DD",X"7E",X"06",X"3C",X"FE",X"05",X"28",X"02",X"3E",X"04",X"DD",X"77", + X"06",X"CD",X"E2",X"1B",X"11",X"00",X"EE",X"19",X"D8",X"21",X"F0",X"73",X"C3",X"7D",X"1A",X"3A", + X"00",X"E0",X"FE",X"06",X"20",X"17",X"21",X"22",X"E0",X"35",X"C0",X"EB",X"2A",X"23",X"E0",X"7E", + X"FE",X"FF",X"28",X"34",X"23",X"12",X"7E",X"23",X"22",X"23",X"E0",X"18",X"27",X"3A",X"06",X"E9", + X"E6",X"04",X"21",X"00",X"E7",X"CB",X"46",X"20",X"1B",X"3A",X"06",X"E9",X"E6",X"07",X"4F",X"3A", + X"1A",X"E7",X"A7",X"79",X"20",X"0E",X"3A",X"08",X"E9",X"2F",X"47",X"2F",X"07",X"07",X"07",X"A0", + X"E6",X"38",X"47",X"B1",X"32",X"09",X"E9",X"C9",X"3E",X"0B",X"32",X"00",X"E0",X"C9",X"F3",X"31", + X"00",X"F0",X"AF",X"32",X"01",X"E0",X"32",X"20",X"E0",X"32",X"21",X"E0",X"32",X"80",X"E0",X"FB", + X"CD",X"00",X"57",X"CD",X"4A",X"06",X"21",X"6D",X"4B",X"CD",X"1C",X"11",X"21",X"01",X"4F",X"22", + X"0E",X"E7",X"3E",X"9C",X"32",X"05",X"E7",X"21",X"A0",X"30",X"22",X"12",X"E7",X"21",X"00",X"5C", + X"22",X"10",X"E7",X"22",X"44",X"E3",X"21",X"A0",X"34",X"22",X"42",X"E3",X"3E",X"10",X"32",X"40", + X"E3",X"3E",X"05",X"32",X"47",X"E3",X"DD",X"21",X"62",X"E2",X"01",X"50",X"07",X"21",X"00",X"0F", + X"06",X"07",X"DD",X"36",X"04",X"00",X"DD",X"36",X"05",X"5C",X"DD",X"36",X"07",X"07",X"DD",X"36", + X"0E",X"38",X"DD",X"70",X"0F",X"DD",X"71",X"00",X"DD",X"75",X"02",X"DD",X"74",X"03",X"78",X"FE", + X"07",X"28",X"08",X"FE",X"04",X"38",X"04",X"DD",X"36",X"06",X"0A",X"FE",X"05",X"30",X"05",X"21", + X"00",X"31",X"0E",X"10",X"11",X"10",X"00",X"DD",X"19",X"10",X"C7",X"3E",X"05",X"32",X"00",X"E0", + X"11",X"52",X"D1",X"0E",X"0B",X"21",X"86",X"4B",X"CD",X"34",X"11",X"3A",X"20",X"E0",X"FE",X"08", + X"20",X"F9",X"CD",X"1C",X"11",X"3A",X"20",X"E0",X"FE",X"0B",X"20",X"F9",X"CD",X"AE",X"49",X"21", + X"0E",X"4C",X"CD",X"34",X"11",X"3E",X"E1",X"CD",X"0F",X"57",X"CD",X"AE",X"49",X"21",X"71",X"4C", + X"CD",X"1C",X"11",X"CD",X"C0",X"49",X"3A",X"00",X"E0",X"FE",X"0B",X"20",X"F6",X"AF",X"21",X"00", + X"00",X"32",X"81",X"E0",X"22",X"82",X"E0",X"3C",X"32",X"84",X"E0",X"32",X"22",X"E0",X"21",X"25", + X"E0",X"7E",X"36",X"09",X"11",X"55",X"4A",X"A7",X"28",X"05",X"11",X"0A",X"4B",X"36",X"00",X"32", + X"80",X"E0",X"ED",X"53",X"23",X"E0",X"CD",X"57",X"11",X"3E",X"01",X"CD",X"49",X"04",X"F3",X"3E", + X"06",X"32",X"00",X"E0",X"21",X"00",X"00",X"22",X"81",X"E0",X"22",X"82",X"E0",X"22",X"10",X"E0", + X"22",X"12",X"E0",X"FB",X"CD",X"B8",X"0F",X"3A",X"00",X"E0",X"FE",X"0B",X"20",X"F6",X"3E",X"38", + X"CD",X"0F",X"57",X"CD",X"20",X"56",X"3E",X"E1",X"CD",X"0F",X"57",X"C3",X"7E",X"48",X"11",X"50", + X"D1",X"06",X"04",X"D5",X"CD",X"2A",X"57",X"E1",X"11",X"80",X"00",X"19",X"EB",X"10",X"F4",X"C9", + X"11",X"16",X"D3",X"01",X"0B",X"19",X"3A",X"80",X"E8",X"E6",X"30",X"CA",X"1F",X"57",X"2A",X"0A", + X"E9",X"7D",X"AC",X"20",X"14",X"13",X"CD",X"F7",X"49",X"CB",X"5D",X"C0",X"11",X"97",X"D3",X"7D", + X"87",X"27",X"CD",X"10",X"4A",X"3E",X"02",X"18",X"21",X"3E",X"41",X"CD",X"F4",X"49",X"6C",X"11", + X"96",X"D3",X"3E",X"42",X"CD",X"2C",X"4A",X"CB",X"5D",X"3E",X"01",X"20",X"01",X"7D",X"CD",X"10", + X"4A",X"CB",X"5D",X"3E",X"01",X"28",X"03",X"7D",X"E6",X"07",X"E5",X"21",X"39",X"4A",X"18",X"04", + X"E5",X"21",X"34",X"4A",X"F5",X"C5",X"48",X"CD",X"F7",X"56",X"C1",X"13",X"CD",X"1C",X"11",X"F1", + X"D5",X"FE",X"01",X"3E",X"53",X"C4",X"10",X"11",X"D1",X"13",X"E1",X"C9",X"CD",X"10",X"11",X"3E", + X"2D",X"C3",X"10",X"11",X"43",X"4F",X"49",X"4E",X"FF",X"50",X"4C",X"41",X"59",X"45",X"52",X"FF", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"FF",X"42",X"02",X"01",X"20",X"28",X"02",X"02",X"10",X"18",X"02",X"03", + X"10",X"18",X"02",X"02",X"10",X"24",X"02",X"02",X"20",X"38",X"02",X"10",X"04",X"02",X"20",X"1E", + X"02",X"10",X"08",X"02",X"20",X"2C",X"01",X"04",X"20",X"28",X"02",X"08",X"01",X"02",X"10",X"28", + X"01",X"10",X"08",X"18",X"20",X"08",X"01",X"40",X"02",X"08",X"08",X"08",X"20",X"48",X"02",X"03", + X"01",X"03",X"02",X"03",X"01",X"03",X"06",X"03",X"05",X"03",X"06",X"03",X"01",X"03",X"02",X"03", + X"01",X"03",X"01",X"03",X"02",X"03",X"01",X"03",X"06",X"03",X"05",X"03",X"06",X"03",X"01",X"03", + X"02",X"03",X"01",X"03",X"02",X"03",X"01",X"03",X"06",X"03",X"05",X"03",X"06",X"03",X"01",X"18", + X"02",X"02",X"08",X"48",X"02",X"02",X"10",X"18",X"00",X"02",X"10",X"18",X"00",X"0A",X"01",X"0A", + X"04",X"02",X"10",X"18",X"04",X"02",X"20",X"18",X"04",X"02",X"10",X"10",X"04",X"28",X"01",X"03", + X"20",X"20",X"01",X"03",X"20",X"18",X"01",X"03",X"20",X"08",X"00",X"28",X"02",X"08",X"04",X"03", + X"20",X"10",X"10",X"34",X"02",X"04",X"08",X"10",X"20",X"28",X"02",X"05",X"01",X"05",X"02",X"05", + X"01",X"05",X"06",X"05",X"05",X"05",X"06",X"80",X"00",X"FF",X"1C",X"01",X"04",X"00",X"01",X"10", + X"44",X"01",X"10",X"00",X"28",X"01",X"02",X"20",X"10",X"02",X"20",X"01",X"02",X"08",X"50",X"01", + X"02",X"08",X"36",X"01",X"0A",X"02",X"30",X"00",X"10",X"10",X"20",X"00",X"1B",X"02",X"02",X"08", + X"10",X"10",X"48",X"02",X"02",X"08",X"10",X"20",X"28",X"04",X"02",X"20",X"20",X"04",X"68",X"01", + X"0A",X"00",X"04",X"20",X"10",X"02",X"10",X"00",X"28",X"01",X"01",X"02",X"60",X"04",X"38",X"01", + X"02",X"08",X"10",X"10",X"30",X"00",X"50",X"01",X"20",X"02",X"02",X"08",X"10",X"20",X"20",X"00", + X"18",X"02",X"10",X"08",X"10",X"20",X"10",X"00",X"40",X"01",X"A0",X"04",X"FF",X"FE",X"1D",X"FD", + X"D8",X"D6",X"40",X"20",X"31",X"39",X"38",X"34",X"20",X"FE",X"DA",X"49",X"52",X"45",X"4D",X"20", + X"43",X"4F",X"52",X"50",X"2E",X"FF",X"41",X"20",X"4B",X"55",X"4E",X"47",X"2D",X"46",X"55",X"20", + X"4D",X"41",X"53",X"54",X"45",X"52",X"2C",X"FE",X"1A",X"54",X"48",X"4F",X"4D",X"41",X"53",X"FE", + X"0B",X"20",X"41",X"4E",X"44",X"20",X"FD",X"D2",X"D1",X"FE",X"1A",X"53",X"49",X"4C",X"56",X"49", + X"41",X"FE",X"0B",X"20",X"57",X"45",X"52",X"45",X"20",X"53",X"55",X"44",X"44",X"45",X"4E",X"4C", + X"59",X"20",X"41",X"54",X"54",X"41",X"43",X"4B",X"45",X"44",X"20",X"FD",X"52",X"D2",X"42",X"59", + X"20",X"53",X"45",X"56",X"45",X"52",X"41",X"4C",X"20",X"55",X"4E",X"4B",X"4E",X"4F",X"57",X"4E", + X"20",X"47",X"55",X"59",X"53",X"2E",X"FF",X"FD",X"D0",X"D2",X"28",X"FE",X"1A",X"53",X"49",X"4C", + X"56",X"49",X"41",X"FE",X"0B",X"20",X"57",X"41",X"53",X"20",X"4B",X"49",X"44",X"4E",X"41",X"50", + X"50",X"45",X"44",X"20",X"42",X"59",X"20",X"54",X"48",X"45",X"4D",X"2E",X"29",X"FF",X"FD",X"53", + X"D1",X"4C",X"41",X"54",X"45",X"52",X"20",X"FE",X"1A",X"54",X"48",X"4F",X"4D",X"41",X"53",X"FE", + X"0B",X"20",X"46",X"4F",X"55",X"4E",X"44",X"20",X"41",X"20",X"4C",X"45",X"54",X"54",X"45",X"52", + X"20",X"FD",X"D3",X"D1",X"46",X"52",X"4F",X"4D",X"20",X"FE",X"1A",X"58",X"FE",X"0B",X"2E",X"20", + X"FD",X"53",X"D2",X"48",X"45",X"20",X"49",X"53",X"20",X"41",X"4E",X"20",X"49",X"4E",X"48",X"41", + X"42",X"49",X"54",X"41",X"4E",X"54",X"20",X"4F",X"46",X"20",X"54",X"48",X"45",X"20",X"FD",X"D3", + X"D2",X"44",X"45",X"56",X"49",X"4C",X"27",X"53",X"20",X"54",X"45",X"4D",X"50",X"4C",X"45",X"2E", + X"FF",X"FE",X"DA",X"FD",X"DA",X"D0",X"80",X"81",X"82",X"83",X"84",X"85",X"86",X"87",X"88",X"89", + X"8A",X"FD",X"1A",X"D1",X"8B",X"8C",X"8D",X"8E",X"8F",X"90",X"91",X"92",X"93",X"94",X"95",X"FD", + X"57",X"D1",X"96",X"97",X"98",X"99",X"9A",X"9B",X"9C",X"9D",X"9E",X"9F",X"A0",X"A1",X"A2",X"A3", + X"A4",X"A5",X"A4",X"A6",X"FD",X"96",X"D1",X"A7",X"A8",X"A9",X"AA",X"AB",X"AC",X"AD",X"AE",X"AF", + X"B0",X"B1",X"B2",X"B3",X"B4",X"B5",X"B6",X"B7",X"B3",X"B8",X"B9",X"FD",X"D6",X"D1",X"BA",X"BB", + X"BC",X"BD",X"BE",X"BF",X"C0",X"C1",X"C2",X"C3",X"C4",X"C5",X"C6",X"C7",X"C8",X"C9",X"CA",X"CB", + X"CC",X"CD",X"FD",X"15",X"D2",X"CE",X"CF",X"D0",X"D1",X"D2",X"D3",X"D4",X"D5",X"D6",X"D7",X"D8", + X"D9",X"06",X"DA",X"DB",X"DC",X"DD",X"DE",X"DF",X"E0",X"E1",X"FD",X"55",X"D2",X"E2",X"E3",X"E4", + X"E5",X"E6",X"E7",X"E8",X"E9",X"EA",X"EB",X"EC",X"ED",X"06",X"EE",X"EF",X"F0",X"F1",X"06",X"F2", + X"F3",X"F4",X"F5",X"FD",X"95",X"D2",X"F6",X"F7",X"F8",X"F9",X"FA",X"FB",X"70",X"71",X"72",X"73", + X"74",X"75",X"06",X"76",X"77",X"78",X"79",X"7A",X"7B",X"7C",X"7D",X"7E",X"FF",X"3E",X"0B",X"32", + X"00",X"E0",X"18",X"30",X"21",X"03",X"E7",X"7E",X"A7",X"28",X"01",X"35",X"21",X"05",X"E7",X"35", + X"20",X"4D",X"ED",X"5B",X"0E",X"E7",X"1A",X"A7",X"FA",X"1D",X"4D",X"CB",X"77",X"28",X"04",X"21", + X"20",X"E0",X"34",X"CB",X"6F",X"28",X"0D",X"F5",X"21",X"B7",X"65",X"7E",X"23",X"22",X"0C",X"E7", + X"32",X"03",X"E7",X"F1",X"6F",X"CB",X"65",X"28",X"05",X"3E",X"02",X"32",X"03",X"E7",X"CB",X"5D", + X"28",X"08",X"3A",X"01",X"E7",X"EE",X"40",X"32",X"01",X"E7",X"7D",X"E6",X"03",X"32",X"21",X"E0", + X"13",X"1A",X"32",X"05",X"E7",X"13",X"1A",X"32",X"06",X"E7",X"13",X"ED",X"53",X"0E",X"E7",X"3A", + X"21",X"E0",X"21",X"BC",X"4D",X"CD",X"26",X"1F",X"3A",X"20",X"E0",X"DD",X"21",X"40",X"E3",X"DD", + X"4E",X"00",X"FE",X"0A",X"28",X"0A",X"30",X"11",X"A7",X"20",X"0B",X"CD",X"D4",X"47",X"18",X"09", + X"11",X"36",X"00",X"CD",X"7A",X"1C",X"CD",X"21",X"48",X"3A",X"20",X"E0",X"DD",X"21",X"62",X"E2", + X"DD",X"4E",X"00",X"21",X"C2",X"4D",X"CD",X"26",X"1F",X"C3",X"72",X"2D",X"FA",X"4D",X"12",X"4E", + X"DA",X"4D",X"24",X"4E",X"25",X"4E",X"3A",X"4E",X"71",X"4E",X"AF",X"4E",X"A8",X"4E",X"A1",X"4E", + X"9A",X"4E",X"93",X"4E",X"8C",X"4E",X"7F",X"4E",X"24",X"4E",X"2A",X"0C",X"E7",X"5E",X"23",X"56", + X"E5",X"2A",X"10",X"E7",X"19",X"22",X"10",X"E7",X"E1",X"3A",X"03",X"E7",X"A7",X"20",X"23",X"23", + X"7E",X"23",X"22",X"0C",X"E7",X"32",X"03",X"E7",X"18",X"18",X"CD",X"1F",X"43",X"2A",X"12",X"E7", + X"11",X"E5",X"FF",X"3A",X"01",X"E7",X"E6",X"40",X"20",X"03",X"19",X"18",X"02",X"ED",X"52",X"22", + X"12",X"E7",X"2A",X"12",X"E7",X"AF",X"29",X"17",X"29",X"17",X"29",X"17",X"6C",X"67",X"CD",X"D6", + X"40",X"CD",X"E5",X"40",X"C9",X"CD",X"E7",X"1B",X"2A",X"64",X"E2",X"11",X"00",X"E7",X"19",X"30", + X"3A",X"21",X"20",X"E0",X"34",X"21",X"E5",X"4E",X"18",X"09",X"21",X"69",X"E2",X"35",X"20",X"28", + X"2A",X"6E",X"E2",X"7E",X"FE",X"FF",X"28",X"2E",X"32",X"68",X"E2",X"23",X"7E",X"32",X"69",X"E2", + X"23",X"7E",X"A7",X"28",X"0F",X"E5",X"21",X"2B",X"E3",X"36",X"01",X"23",X"77",X"23",X"36",X"40", + X"23",X"36",X"1A",X"E1",X"23",X"22",X"6E",X"E2",X"CD",X"E2",X"1B",X"CB",X"61",X"C2",X"72",X"1A", + X"C9",X"CD",X"DF",X"4E",X"18",X"F5",X"21",X"20",X"E0",X"34",X"CD",X"DF",X"17",X"18",X"E9",X"21", + X"A2",X"E2",X"11",X"10",X"00",X"06",X"03",X"CB",X"F6",X"19",X"10",X"FB",X"DD",X"21",X"C2",X"E2", + X"CD",X"D7",X"4E",X"DD",X"21",X"B2",X"E2",X"CD",X"D7",X"4E",X"DD",X"21",X"A2",X"E2",X"CD",X"D7", + X"4E",X"DD",X"21",X"82",X"E2",X"CD",X"B3",X"4E",X"DD",X"21",X"92",X"E2",X"CD",X"B3",X"4E",X"DD", + X"21",X"72",X"E2",X"DD",X"4E",X"00",X"21",X"D1",X"4E",X"E5",X"DD",X"7E",X"01",X"FE",X"01",X"28", + X"1E",X"CD",X"A8",X"15",X"DD",X"35",X"0E",X"C0",X"DD",X"7E",X"0F",X"DD",X"77",X"06",X"C3",X"DF", + X"17",X"CB",X"61",X"C8",X"C3",X"2F",X"16",X"DD",X"4E",X"00",X"CD",X"E7",X"1B",X"18",X"F2",X"CB", + X"61",X"C2",X"AA",X"1B",X"C9",X"0B",X"0B",X"00",X"0C",X"38",X"52",X"00",X"0B",X"00",X"09",X"0B", + X"00",X"0A",X"38",X"50",X"00",X"2B",X"00",X"06",X"0A",X"00",X"00",X"18",X"00",X"06",X"01",X"00", + X"FF",X"41",X"16",X"00",X"01",X"32",X"04",X"01",X"1C",X"05",X"01",X"2D",X"04",X"22",X"04",X"10", + X"02",X"06",X"12",X"02",X"10",X"13",X"02",X"06",X"14",X"02",X"04",X"10",X"10",X"21",X"00",X"01", + X"0B",X"04",X"22",X"04",X"10",X"02",X"06",X"12",X"02",X"10",X"18",X"02",X"06",X"14",X"02",X"04", + X"10",X"01",X"08",X"06",X"01",X"08",X"07",X"01",X"08",X"06",X"01",X"13",X"04",X"41",X"21",X"04", + X"41",X"0E",X"04",X"01",X"08",X"08",X"01",X"08",X"09",X"01",X"02",X"08",X"41",X"05",X"08",X"41", + X"08",X"05",X"41",X"08",X"0B",X"41",X"08",X"0C",X"01",X"08",X"0B",X"01",X"08",X"05",X"01",X"08", + X"0D",X"01",X"08",X"0E",X"01",X"09",X"0D",X"41",X"08",X"05",X"01",X"1C",X"04",X"09",X"10",X"00", + X"10",X"27",X"00",X"41",X"E1",X"03",X"01",X"A9",X"03",X"01",X"16",X"04",X"01",X"08",X"06",X"01", + X"08",X"07",X"01",X"08",X"06",X"01",X"08",X"04",X"01",X"08",X"08",X"01",X"08",X"09",X"01",X"08", + X"08",X"09",X"08",X"04",X"01",X"08",X"06",X"01",X"08",X"07",X"01",X"08",X"06",X"01",X"08",X"04", + X"01",X"08",X"05",X"01",X"08",X"0B",X"01",X"08",X"0C",X"01",X"08",X"0B",X"01",X"08",X"05",X"01", + X"08",X"04",X"01",X"08",X"08",X"01",X"08",X"09",X"01",X"08",X"08",X"09",X"08",X"05",X"01",X"08", + X"0B",X"01",X"08",X"0C",X"01",X"08",X"0B",X"01",X"08",X"05",X"22",X"04",X"10",X"02",X"06",X"12", + X"02",X"10",X"18",X"02",X"06",X"14",X"02",X"04",X"10",X"09",X"08",X"04",X"01",X"08",X"06",X"01", + X"08",X"07",X"01",X"08",X"06",X"01",X"A9",X"04",X"FF",X"3E",X"23",X"CD",X"FE",X"0D",X"AF",X"32", + X"02",X"E7",X"32",X"20",X"E0",X"32",X"83",X"E8",X"3E",X"08",X"32",X"00",X"E0",X"CD",X"95",X"50", + X"0E",X"D9",X"21",X"32",X"51",X"CD",X"1C",X"11",X"21",X"47",X"51",X"CD",X"1C",X"11",X"21",X"57", + X"51",X"CD",X"1C",X"11",X"21",X"62",X"51",X"CD",X"1C",X"11",X"21",X"6D",X"51",X"CD",X"1C",X"11", + X"21",X"A7",X"50",X"CD",X"79",X"50",X"3E",X"F8",X"CD",X"38",X"50",X"CD",X"91",X"50",X"21",X"FF", + X"50",X"0E",X"D9",X"CD",X"79",X"50",X"3E",X"F8",X"E5",X"C5",X"D5",X"32",X"82",X"E8",X"0E",X"D9", + X"21",X"83",X"E8",X"7E",X"A7",X"20",X"1A",X"36",X"0B",X"21",X"20",X"E0",X"35",X"35",X"F2",X"53", + X"50",X"36",X"08",X"5E",X"16",X"00",X"21",X"6B",X"50",X"19",X"7E",X"23",X"66",X"6F",X"CD",X"1C", + X"11",X"3A",X"82",X"E8",X"A7",X"20",X"D9",X"D1",X"C1",X"E1",X"C9",X"5D",X"51",X"68",X"51",X"4D", + X"51",X"2D",X"51",X"3D",X"51",X"5E",X"23",X"56",X"23",X"7E",X"23",X"3C",X"C8",X"3C",X"3C",X"28", + X"F4",X"D6",X"03",X"CD",X"10",X"11",X"FE",X"20",X"20",X"EF",X"3E",X"0B",X"CD",X"38",X"50",X"18", + X"E8",X"06",X"08",X"18",X"02",X"06",X"19",X"0E",X"0B",X"11",X"9F",X"D1",X"CD",X"1A",X"57",X"21", + X"1F",X"00",X"19",X"EB",X"10",X"F6",X"C9",X"FD",X"63",X"D2",X"41",X"20",X"4B",X"55",X"4E",X"47", + X"2D",X"46",X"55",X"20",X"4D",X"41",X"53",X"54",X"45",X"52",X"2C",X"54",X"48",X"4F",X"4D",X"41", + X"53",X"20",X"41",X"4E",X"44",X"20",X"FD",X"E3",X"D2",X"53",X"49",X"4C",X"56",X"49",X"41",X"20", + X"45",X"4E",X"4A",X"4F",X"59",X"45",X"44",X"20",X"48",X"41",X"50",X"50",X"49",X"4E",X"45",X"53", + X"53",X"20",X"FD",X"63",X"D3",X"41",X"47",X"41",X"49",X"4E",X"20",X"46",X"4F",X"52",X"20",X"41", + X"20",X"4C",X"49",X"54",X"54",X"4C",X"45",X"20",X"57",X"48",X"49",X"4C",X"45",X"2E",X"FF",X"FD", + X"A6",X"D2",X"42",X"55",X"54",X"20",X"54",X"48",X"45",X"49",X"52",X"20",X"48",X"41",X"50",X"50", + X"59",X"20",X"44",X"41",X"59",X"53",X"20",X"FD",X"28",X"D3",X"44",X"49",X"44",X"20",X"4E",X"4F", + X"54",X"20",X"4C",X"41",X"53",X"54",X"20",X"4C",X"4F",X"4E",X"47",X"2E",X"FF",X"FD",X"2E",X"D4", + X"00",X"00",X"FD",X"AC",X"D4",X"60",X"61",X"FD",X"EC",X"D4",X"62",X"63",X"FF",X"FD",X"AC",X"D4", + X"00",X"00",X"FD",X"EC",X"D4",X"00",X"00",X"FD",X"6D",X"D4",X"64",X"65",X"FF",X"FD",X"B0",X"D4", + X"00",X"00",X"FD",X"F0",X"D4",X"00",X"00",X"FD",X"2E",X"D4",X"66",X"67",X"FF",X"FD",X"6D",X"D4", + X"00",X"00",X"FD",X"6F",X"D4",X"68",X"69",X"FF",X"FD",X"6F",X"D4",X"00",X"00",X"FD",X"B0",X"D4", + X"6A",X"6B",X"FD",X"F0",X"D4",X"6C",X"6D",X"FF",X"21",X"05",X"E0",X"CB",X"FE",X"CD",X"57",X"11", + X"CD",X"03",X"57",X"11",X"5A",X"D2",X"0E",X"14",X"3A",X"80",X"E8",X"E6",X"18",X"28",X"08",X"21", + X"D8",X"51",X"CD",X"1C",X"11",X"18",X"03",X"CD",X"25",X"57",X"11",X"19",X"D3",X"3A",X"13",X"E9", + X"F5",X"FE",X"01",X"21",X"E5",X"51",X"28",X"03",X"21",X"F3",X"51",X"CD",X"1C",X"11",X"21",X"02", + X"52",X"CD",X"1C",X"11",X"F1",X"CD",X"FF",X"10",X"3A",X"04",X"E9",X"E6",X"03",X"28",X"C4",X"E6", + X"02",X"32",X"02",X"E0",X"06",X"01",X"28",X"01",X"04",X"21",X"13",X"E9",X"7E",X"90",X"38",X"B3", + X"27",X"77",X"21",X"05",X"E0",X"CB",X"BE",X"C9",X"50",X"55",X"53",X"48",X"20",X"20",X"42",X"55", + X"54",X"54",X"4F",X"4E",X"FF",X"4F",X"4E",X"4C",X"59",X"20",X"31",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"FF",X"31",X"20",X"4F",X"52",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"53",X"FF",X"FD",X"E1",X"D5",X"43",X"52",X"45",X"44",X"49",X"54",X"20",X"FF",X"CD",X"57",X"11", + X"CD",X"03",X"57",X"3E",X"20",X"CD",X"FE",X"0D",X"0E",X"1B",X"11",X"53",X"D1",X"06",X"17",X"CD", + X"25",X"57",X"21",X"26",X"00",X"19",X"EB",X"10",X"F6",X"21",X"32",X"52",X"CD",X"39",X"57",X"C3", + X"1C",X"11",X"FD",X"55",X"D1",X"CC",X"FD",X"60",X"D1",X"CC",X"FD",X"67",X"D1",X"CC",X"FD",X"92", + X"D3",X"E3",X"FD",X"D1",X"D3",X"D9",X"D8",X"00",X"D0",X"D1",X"CD",X"FD",X"10",X"D4",X"E0",X"DB", + X"DA",X"00",X"D2",X"D3",X"CF",X"FD",X"50",X"D4",X"E2",X"07",X"DC",X"DD",X"D4",X"D5",X"FD",X"90", + X"D4",X"E4",X"07",X"DE",X"DF",X"D6",X"D7",X"FD",X"D0",X"D4",X"E6",X"07",X"07",X"07",X"E5",X"FD", + X"10",X"D5",X"E1",X"07",X"E8",X"E9",X"E7",X"FD",X"50",X"D5",X"07",X"07",X"EA",X"EB",X"FD",X"90", + X"D5",X"07",X"07",X"EC",X"ED",X"FD",X"D0",X"D5",X"07",X"EF",X"EE",X"FD",X"10",X"D6",X"07",X"F1", + X"FD",X"50",X"D6",X"F0",X"F3",X"FD",X"90",X"D6",X"F2",X"FD",X"D0",X"D6",X"F4",X"FD",X"D6",X"D6", + X"CE",X"FD",X"E4",X"D6",X"CE",X"FE",X"FD",X"AD",X"D3",X"E3",X"FD",X"E9",X"D3",X"CD",X"D1",X"D0", + X"00",X"D8",X"D9",X"FD",X"29",X"D4",X"CF",X"D3",X"D2",X"00",X"DA",X"DB",X"E0",X"FD",X"6A",X"D4", + X"D5",X"D4",X"DD",X"DC",X"07",X"E2",X"FD",X"AA",X"D4",X"D7",X"D6",X"DF",X"DE",X"07",X"E4",X"FD", + X"EB",X"D4",X"E5",X"07",X"07",X"07",X"E6",X"FD",X"2B",X"D5",X"E7",X"E9",X"E8",X"07",X"E1",X"FD", + X"6C",X"D5",X"EB",X"EA",X"07",X"07",X"FD",X"AC",X"D5",X"ED",X"EC",X"07",X"07",X"FD",X"ED",X"D5", + X"EE",X"EF",X"07",X"FD",X"2E",X"D6",X"F1",X"07",X"FD",X"6E",X"D6",X"F3",X"F0",X"FD",X"AF",X"D6", + X"F2",X"FD",X"EF",X"D6",X"F4",X"FF",X"FE",X"1B",X"FD",X"17",X"D2",X"59",X"4F",X"55",X"52",X"20", + X"4C",X"4F",X"56",X"45",X"20",X"FE",X"1F",X"53",X"49",X"4C",X"56",X"49",X"41",X"FE",X"1B",X"FD", + X"97",X"D2",X"49",X"53",X"20",X"49",X"4E",X"20",X"43",X"55",X"53",X"54",X"4F",X"44",X"59",X"20", + X"4E",X"4F",X"57",X"2E",X"FD",X"16",X"D3",X"49",X"46",X"20",X"59",X"4F",X"55",X"20",X"57",X"41", + X"4E",X"54",X"20",X"54",X"4F",X"20",X"53",X"41",X"56",X"45",X"FD",X"97",X"D3",X"59",X"4F",X"55", + X"52",X"20",X"44",X"45",X"41",X"52",X"20",X"FE",X"1F",X"53",X"49",X"4C",X"56",X"49",X"41",X"27", + X"53",X"FD",X"19",X"D4",X"FE",X"1F",X"4C",X"49",X"46",X"45",X"FE",X"1B",X"2C",X"20",X"43",X"4F", + X"4D",X"45",X"20",X"54",X"4F",X"FD",X"97",X"D4",X"54",X"48",X"45",X"20",X"44",X"45",X"56",X"49", + X"4C",X"27",X"53",X"20",X"54",X"45",X"4D",X"50",X"4C",X"45",X"FD",X"17",X"D5",X"41",X"54",X"20", + X"4F",X"4E",X"43",X"45",X"2E",X"FD",X"96",X"D5",X"35",X"20",X"53",X"4F",X"4E",X"53",X"20",X"4F", + X"46",X"20",X"54",X"48",X"45",X"20",X"44",X"45",X"56",X"49",X"4C",X"FD",X"17",X"D6",X"57",X"49", + X"4C",X"4C",X"20",X"45",X"4E",X"54",X"45",X"52",X"54",X"41",X"49",X"4E",X"20",X"59",X"4F",X"55", + X"2E",X"FF",X"CD",X"00",X"57",X"3E",X"05",X"CD",X"FE",X"0D",X"3A",X"80",X"E0",X"F5",X"3E",X"04", + X"32",X"80",X"E0",X"CD",X"4A",X"06",X"21",X"00",X"54",X"22",X"10",X"E7",X"22",X"44",X"E3",X"21", + X"00",X"27",X"22",X"12",X"E7",X"21",X"00",X"1A",X"22",X"42",X"E3",X"F1",X"32",X"80",X"E0",X"21", + X"47",X"54",X"CD",X"1C",X"11",X"3E",X"07",X"32",X"00",X"E0",X"3E",X"70",X"CD",X"16",X"54",X"21", + X"AB",X"54",X"CD",X"1C",X"11",X"3E",X"05",X"CD",X"FE",X"0D",X"3E",X"70",X"CD",X"16",X"54",X"3E", + X"05",X"CD",X"FE",X"0D",X"3E",X"C0",X"32",X"82",X"E8",X"3A",X"80",X"E8",X"11",X"95",X"D2",X"0E", + X"D9",X"21",X"85",X"54",X"E6",X"18",X"20",X"03",X"21",X"98",X"54",X"CD",X"1C",X"11",X"21",X"82", + X"E8",X"7E",X"A7",X"20",X"E4",X"C9",X"21",X"03",X"E7",X"7E",X"A7",X"28",X"01",X"35",X"CD",X"1F", + X"43",X"CD",X"12",X"4E",X"C3",X"B6",X"47",X"FE",X"96",X"FD",X"18",X"D5",X"B7",X"FD",X"57",X"D5", + X"AA",X"AB",X"FD",X"97",X"D5",X"AC",X"AD",X"FD",X"D7",X"D5",X"F6",X"F5",X"FC",X"FD",X"17",X"D6", + X"F8",X"F9",X"F7",X"FD",X"57",X"D6",X"FA",X"FB",X"FE",X"D6",X"18",X"FD",X"56",X"D1",X"FE",X"D7", + X"4C",X"45",X"54",X"27",X"53",X"20",X"54",X"52",X"59",X"20",X"4E",X"45",X"58",X"54",X"20",X"46", + X"4C",X"4F",X"4F",X"52",X"FF",X"48",X"45",X"4C",X"50",X"20",X"4D",X"45",X"2C",X"FD",X"15",X"D3", + X"54",X"48",X"4F",X"4D",X"41",X"53",X"21",X"FF",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"FD",X"15",X"D3",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"FF",X"FE",X"DA",X"FD",X"A3",X"D2", + X"49",X"27",X"4D",X"20",X"43",X"4F",X"4D",X"49",X"4E",X"47",X"FD",X"23",X"D3",X"52",X"49",X"47", + X"48",X"54",X"20",X"41",X"57",X"41",X"59",X"2C",X"FD",X"A5",X"D3",X"53",X"49",X"4C",X"56",X"49", + X"41",X"21",X"FF",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"47", + X"41",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"3E",X"21",X"CD",X"FE",X"0D",X"11",X"40",X"D3",X"0E",X"DB",X"DD",X"21", + X"D3",X"54",X"CD",X"C3",X"56",X"3E",X"E1",X"CD",X"0F",X"57",X"3E",X"38",X"CD",X"0F",X"57",X"AF", + X"32",X"00",X"E7",X"32",X"1A",X"E7",X"11",X"83",X"E0",X"21",X"00",X"EA",X"06",X"03",X"1A",X"77", + X"23",X"1B",X"10",X"FA",X"06",X"03",X"36",X"20",X"23",X"10",X"FB",X"0E",X"14",X"11",X"00",X"EA", + X"06",X"03",X"1A",X"BE",X"38",X"1C",X"20",X"06",X"13",X"23",X"10",X"F6",X"18",X"14",X"78",X"C6", + X"03",X"47",X"7E",X"F5",X"1A",X"77",X"F1",X"12",X"23",X"13",X"10",X"F6",X"0D",X"20",X"E1",X"13", + X"13",X"13",X"79",X"FE",X"14",X"C8",X"04",X"05",X"28",X"03",X"13",X"10",X"FD",X"D5",X"F5",X"3E", + X"24",X"CD",X"FE",X"0D",X"CD",X"20",X"56",X"21",X"8A",X"56",X"CD",X"1C",X"11",X"F1",X"11",X"11", + X"DA",X"FE",X"0A",X"38",X"05",X"D6",X"0A",X"11",X"21",X"DA",X"2E",X"00",X"CB",X"3F",X"CB",X"1D", + X"67",X"19",X"D1",X"06",X"0D",X"36",X"00",X"23",X"10",X"FB",X"01",X"FD",X"F7",X"09",X"06",X"03", + X"3E",X"41",X"77",X"12",X"3E",X"20",X"32",X"26",X"E0",X"D5",X"11",X"60",X"D1",X"0E",X"00",X"CD", + X"FF",X"10",X"D1",X"3E",X"38",X"32",X"81",X"E8",X"CD",X"0D",X"57",X"3A",X"04",X"E9",X"E6",X"03", + X"20",X"69",X"3A",X"06",X"E9",X"E6",X"03",X"28",X"25",X"3A",X"83",X"E8",X"A7",X"20",X"23",X"3E", + X"0B",X"32",X"83",X"E8",X"3A",X"06",X"E9",X"CB",X"47",X"7E",X"20",X"09",X"3D",X"FE",X"41",X"30", + X"24",X"3E",X"5C",X"18",X"20",X"3C",X"FE",X"5D",X"38",X"1B",X"3E",X"41",X"18",X"17",X"AF",X"32", + X"83",X"E8",X"3A",X"09",X"E9",X"E6",X"30",X"28",X"0E",X"7E",X"FE",X"5C",X"28",X"2D",X"13",X"23", + X"05",X"28",X"1A",X"3E",X"41",X"77",X"12",X"3A",X"81",X"E8",X"A7",X"20",X"AB",X"3A",X"26",X"E0", + X"D6",X"01",X"27",X"20",X"91",X"11",X"60",X"D1",X"0E",X"00",X"CD",X"FF",X"10",X"CD",X"2C",X"56", + X"3E",X"1C",X"CD",X"0F",X"57",X"3E",X"00",X"CD",X"FE",X"0D",X"C9",X"3E",X"20",X"12",X"18",X"ED", + X"CD",X"57",X"11",X"CD",X"03",X"57",X"21",X"75",X"56",X"CD",X"1C",X"11",X"21",X"06",X"EA",X"11", + X"A1",X"D6",X"3E",X"20",X"F5",X"0E",X"D8",X"CD",X"F7",X"56",X"0E",X"15",X"13",X"7E",X"23",X"A7", + X"D5",X"C4",X"08",X"11",X"D1",X"13",X"06",X"02",X"7E",X"23",X"CD",X"FF",X"10",X"10",X"F9",X"3E", + X"30",X"CD",X"10",X"11",X"0E",X"00",X"13",X"06",X"03",X"7E",X"23",X"CD",X"10",X"11",X"10",X"F9", + X"F1",X"D6",X"01",X"27",X"C8",X"E5",X"21",X"73",X"FF",X"19",X"EB",X"E1",X"FE",X"10",X"20",X"C4", + X"11",X"91",X"D6",X"18",X"BF",X"FE",X"DB",X"FD",X"D8",X"D0",X"42",X"45",X"53",X"54",X"20",X"32", + X"30",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"FF",X"FD",X"5A",X"D1",X"FE",X"14",X"54", + X"49",X"4D",X"45",X"FF",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"54",X"49",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"0E",X"D8",X"DD",X"21",X"94",X"56",X"CD",X"C3",X"56",X"3E",X"70", + X"C3",X"0F",X"57",X"2A",X"02",X"E9",X"11",X"04",X"00",X"19",X"29",X"29",X"29",X"29",X"29",X"7C", + X"C6",X"1A",X"11",X"40",X"D3",X"6F",X"26",X"03",X"E5",X"06",X"0B",X"D5",X"7D",X"2C",X"E6",X"3F", + X"B3",X"5F",X"DD",X"7E",X"00",X"DD",X"23",X"CD",X"10",X"11",X"D1",X"10",X"EE",X"21",X"40",X"00", + X"19",X"EB",X"E1",X"25",X"20",X"E2",X"C9",X"FE",X"10",X"D2",X"FF",X"10",X"13",X"C3",X"08",X"11", + X"CD",X"53",X"11",X"AF",X"32",X"00",X"E0",X"21",X"00",X"00",X"22",X"02",X"E9",X"3E",X"01",X"E5", + X"21",X"82",X"E8",X"77",X"7E",X"A7",X"20",X"FC",X"E1",X"C9",X"C5",X"06",X"21",X"18",X"0E",X"CD", + X"25",X"57",X"11",X"96",X"D3",X"C5",X"06",X"1A",X"18",X"03",X"C5",X"06",X"20",X"AF",X"CD",X"10", + X"11",X"10",X"FB",X"C1",X"C9",X"5E",X"23",X"56",X"23",X"7E",X"23",X"3C",X"C8",X"3C",X"20",X"04", + X"CB",X"E9",X"18",X"F5",X"3C",X"28",X"EE",X"D6",X"03",X"CB",X"B9",X"FE",X"08",X"38",X"02",X"CB", + X"F9",X"CD",X"10",X"11",X"18",X"E3",X"2A",X"17",X"E8",X"7C",X"E5",X"CD",X"65",X"57",X"E1",X"24", + X"7C",X"BD",X"20",X"F6",X"C9",X"FE",X"E0",X"D0",X"32",X"02",X"E8",X"C6",X"20",X"E6",X"3F",X"21", + X"80",X"D1",X"B5",X"6F",X"3A",X"02",X"E8",X"CD",X"00",X"58",X"3A",X"80",X"E0",X"E6",X"01",X"20", + X"05",X"CD",X"5F",X"58",X"18",X"03",X"CD",X"35",X"58",X"CD",X"03",X"59",X"20",X"05",X"CD",X"D3", + X"58",X"18",X"03",X"CD",X"F1",X"58",X"CD",X"D4",X"57",X"CD",X"03",X"59",X"FE",X"03",X"C0",X"3A", + X"02",X"E8",X"01",X"08",X"00",X"21",X"30",X"5A",X"ED",X"B9",X"C0",X"CB",X"01",X"CB",X"01",X"3A", + X"80",X"E0",X"FE",X"10",X"21",X"31",X"5A",X"38",X"03",X"21",X"51",X"5A",X"09",X"5E",X"23",X"56", + X"23",X"EB",X"0E",X"11",X"1A",X"13",X"77",X"CB",X"DC",X"71",X"1A",X"11",X"40",X"F8",X"19",X"77", + X"CB",X"DC",X"71",X"C9",X"3A",X"80",X"E0",X"E6",X"01",X"21",X"7C",X"5A",X"20",X"03",X"21",X"88", + X"5A",X"3A",X"02",X"E8",X"01",X"0C",X"00",X"ED",X"B9",X"C0",X"21",X"89",X"5A",X"09",X"09",X"3A", + X"02",X"E8",X"EB",X"C6",X"20",X"E6",X"3F",X"21",X"80",X"D3",X"B5",X"6F",X"0E",X"8B",X"18",X"C4", + X"11",X"E7",X"61",X"FE",X"DA",X"D2",X"18",X"59",X"D6",X"D5",X"38",X"0C",X"E5",X"21",X"DB",X"59", + X"5F",X"16",X"00",X"19",X"7E",X"E1",X"18",X"04",X"E6",X"01",X"C6",X"52",X"0E",X"5C",X"CD",X"09", + X"59",X"3A",X"02",X"E8",X"E6",X"07",X"E5",X"21",X"E1",X"59",X"4F",X"09",X"7E",X"E1",X"77",X"CB", + X"DC",X"36",X"5E",X"19",X"C9",X"3A",X"02",X"E8",X"FE",X"DD",X"D0",X"FE",X"0D",X"38",X"0A",X"FE", + X"CF",X"38",X"2A",X"11",X"83",X"5F",X"C3",X"C5",X"58",X"47",X"3A",X"15",X"E9",X"FE",X"01",X"78", + X"11",X"48",X"5D",X"28",X"70",X"11",X"18",X"5E",X"30",X"6B",X"11",X"8E",X"5C",X"18",X"66",X"3A", + X"02",X"E8",X"FE",X"DD",X"D0",X"FE",X"13",X"38",X"36",X"FE",X"D3",X"30",X"19",X"E6",X"1F",X"F5", + X"E5",X"87",X"4F",X"21",X"E9",X"59",X"09",X"7E",X"23",X"4E",X"E1",X"77",X"CB",X"DC",X"71",X"19", + X"F1",X"11",X"6A",X"5B",X"18",X"3F",X"47",X"11",X"CB",X"61",X"CD",X"03",X"59",X"28",X"0D",X"3A", + X"15",X"E9",X"FE",X"01",X"11",X"76",X"61",X"30",X"03",X"11",X"F5",X"60",X"78",X"18",X"26",X"5F", + X"CD",X"03",X"59",X"FE",X"04",X"7B",X"11",X"B3",X"60",X"28",X"1A",X"11",X"A9",X"5E",X"CD",X"18", + X"59",X"CD",X"03",X"59",X"3A",X"02",X"E8",X"20",X"05",X"FE",X"03",X"30",X"0B",X"C9",X"FE",X"02", + X"30",X"06",X"11",X"54",X"65",X"CD",X"18",X"59",X"36",X"05",X"CB",X"DC",X"36",X"01",X"11",X"40", + X"F8",X"19",X"C9",X"0E",X"4F",X"3A",X"02",X"E8",X"FE",X"C0",X"30",X"10",X"FE",X"20",X"38",X"07", + X"E6",X"1F",X"11",X"0C",X"65",X"18",X"31",X"11",X"02",X"64",X"18",X"2C",X"11",X"F8",X"62",X"18", + X"27",X"3A",X"02",X"E8",X"11",X"A7",X"63",X"FE",X"DC",X"30",X"1D",X"E6",X"01",X"C6",X"24",X"0E", + X"42",X"18",X"06",X"3A",X"80",X"E0",X"E6",X"07",X"C9",X"06",X"03",X"11",X"40",X"F8",X"77",X"CB", + X"DC",X"71",X"19",X"C6",X"02",X"10",X"F7",X"C9",X"EB",X"C5",X"06",X"00",X"4F",X"09",X"09",X"C1", + X"7E",X"23",X"66",X"6F",X"EB",X"06",X"01",X"1A",X"13",X"3C",X"28",X"13",X"3C",X"28",X"17",X"C6", + X"FE",X"77",X"CB",X"DC",X"71",X"3E",X"40",X"85",X"6F",X"3E",X"F8",X"8C",X"67",X"18",X"E8",X"05", + X"C8",X"D1",X"13",X"13",X"18",X"E1",X"1A",X"13",X"FE",X"FC",X"38",X"0C",X"28",X"02",X"D5",X"04", + X"EB",X"7E",X"23",X"66",X"6F",X"EB",X"18",X"CF",X"4F",X"18",X"CC",X"FE",X"15",X"FD",X"D8",X"D2", + X"53",X"45",X"4C",X"45",X"43",X"54",X"20",X"47",X"41",X"4D",X"45",X"20",X"46",X"4C",X"4F",X"4F", + X"52",X"FD",X"9A",X"D3",X"48",X"4F",X"55",X"53",X"45",X"20",X"4E",X"55",X"4D",X"42",X"45",X"52", + X"2D",X"FD",X"1A",X"D4",X"46",X"4C",X"4F",X"4F",X"52",X"20",X"4E",X"55",X"4D",X"42",X"45",X"52", + X"2D",X"FD",X"98",X"D4",X"50",X"55",X"4E",X"43",X"48",X"2D",X"55",X"50",X"20",X"4B",X"49",X"43", + X"4B",X"2D",X"44",X"4F",X"57",X"4E",X"FF",X"FE",X"15",X"FD",X"11",X"D0",X"31",X"50",X"2D",X"FD", + X"26",X"D0",X"32",X"50",X"2D",X"FE",X"00",X"FD",X"1B",X"D0",X"54",X"4F",X"50",X"2D",X"FE",X"14", + X"FD",X"AA",X"D0",X"54",X"49",X"4D",X"45",X"FE",X"94",X"FD",X"91",X"D0",X"98",X"99",X"9A",X"9B", + X"9C",X"FE",X"95",X"FD",X"11",X"D1",X"9D",X"9E",X"9F",X"A0",X"FF",X"58",X"59",X"60",X"61",X"68", + X"69",X"67",X"6E",X"5E",X"5E",X"5E",X"5E",X"5F",X"66",X"F1",X"08",X"06",X"01",X"06",X"01",X"06", + X"01",X"06",X"01",X"14",X"41",X"15",X"41",X"EE",X"08",X"EF",X"08",X"06",X"01",X"06",X"01",X"18", + X"41",X"19",X"41",X"06",X"01",X"06",X"01",X"EE",X"08",X"EF",X"08",X"06",X"01",X"06",X"01",X"14", + X"41",X"15",X"41",X"06",X"01",X"06",X"01",X"EE",X"08",X"EF",X"08",X"18",X"41",X"19",X"41",X"06", + X"01",X"06",X"01",X"06",X"01",X"06",X"01",X"F0",X"08",X"22",X"23",X"3C",X"3D",X"5A",X"5B",X"70", + X"71",X"02",X"D3",X"7C",X"7E",X"03",X"D3",X"01",X"7F",X"1C",X"D4",X"7C",X"7E",X"1D",X"D4",X"01", + X"7F",X"FA",X"D5",X"7C",X"7E",X"FB",X"D5",X"01",X"7F",X"10",X"D3",X"7C",X"7E",X"11",X"D3",X"01", + X"7F",X"02",X"D3",X"7C",X"7E",X"03",X"D3",X"01",X"7F",X"1C",X"D4",X"7C",X"7E",X"1D",X"D4",X"01", + X"7F",X"3A",X"D4",X"7C",X"7E",X"3B",X"D4",X"01",X"7F",X"10",X"D3",X"7C",X"7E",X"11",X"D3",X"01", + X"7F",X"1F",X"20",X"3F",X"40",X"5F",X"60",X"7F",X"80",X"9F",X"A0",X"BF",X"C0",X"BF",X"C0",X"9F", + X"A0",X"7F",X"80",X"5F",X"60",X"3F",X"40",X"1F",X"20",X"04",X"06",X"05",X"7D",X"7E",X"96",X"95", + X"97",X"BC",X"BE",X"BD",X"BF",X"C0",X"C2",X"C1",X"C3",X"C4",X"C6",X"C5",X"C7",X"C8",X"CA",X"C9", + X"CB",X"FD",X"FB",X"D4",X"FE",X"41",X"22",X"FD",X"3A",X"D5",X"80",X"FE",X"91",X"1F",X"94",X"FD", + X"79",X"D5",X"26",X"FE",X"11",X"00",X"00",X"00",X"FD",X"B8",X"D5",X"FE",X"91",X"27",X"28",X"29", + X"FE",X"11",X"00",X"00",X"FD",X"F8",X"D5",X"FE",X"91",X"30",X"2A",X"FE",X"11",X"03",X"FE",X"91", + X"20",X"21",X"FD",X"38",X"D6",X"31",X"2C",X"2D",X"FE",X"11",X"03",X"FE",X"91",X"23",X"FD",X"79", + X"D6",X"2E",X"2F",X"22",X"FE",X"11",X"03",X"FD",X"BA",X"D6",X"FE",X"91",X"2B",X"24",X"25",X"FF", + X"FD",X"FC",X"D4",X"FE",X"41",X"22",X"FD",X"3B",X"D5",X"80",X"80",X"FD",X"79",X"D5",X"80",X"FD", + X"B8",X"D5",X"80",X"80",X"80",X"FD",X"F8",X"D5",X"80",X"80",X"80",X"80",X"80",X"FD",X"38",X"D6", + X"86",X"86",X"86",X"86",X"86",X"FD",X"77",X"D6",X"FE",X"91",X"36",X"37",X"32",X"32",X"32",X"33", + X"FD",X"B6",X"D6",X"38",X"39",X"34",X"34",X"34",X"34",X"35",X"FF",X"FE",X"01",X"06",X"FE",X"FD", + X"39",X"5B",X"80",X"80",X"86",X"FF",X"FE",X"01",X"06",X"FE",X"01",X"FE",X"FD",X"52",X"5B",X"FE", + X"41",X"22",X"80",X"80",X"FF",X"FE",X"09",X"FE",X"FD",X"53",X"5B",X"FE",X"FC",X"53",X"5B",X"FE", + X"01",X"06",X"F9",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FE",X"01",X"03",X"03",X"03", + X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"03",X"FF",X"AA",X"5B",X"B3",X"5B",X"C4",X"5B", + X"CE",X"5B",X"C4",X"5B",X"D5",X"5B",X"E8",X"5B",X"FB",X"5B",X"10",X"5C",X"25",X"5C",X"3A",X"5C", + X"4F",X"5C",X"62",X"5C",X"CE",X"5B",X"C4",X"5B",X"CE",X"5B",X"C4",X"5B",X"CE",X"5B",X"C4",X"5B", + X"D5",X"5B",X"E8",X"5B",X"FB",X"5B",X"10",X"5C",X"25",X"5C",X"3A",X"5C",X"4F",X"5C",X"62",X"5C", + X"CE",X"5B",X"C4",X"5B",X"CE",X"5B",X"75",X"5C",X"83",X"5C",X"FE",X"FD",X"5B",X"5B",X"F2",X"F4", + X"F6",X"04",X"FF",X"FE",X"FD",X"39",X"5B",X"FE",X"01",X"F7",X"F3",X"F5",X"FE",X"41",X"84",X"7C", + X"FF",X"FE",X"01",X"06",X"FE",X"FD",X"2E",X"5B",X"7C",X"84",X"FF",X"FE",X"01",X"06",X"FE",X"FD", + X"2E",X"5B",X"84",X"7C",X"FF",X"FE",X"41",X"16",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"1E", + X"80",X"80",X"80",X"80",X"14",X"84",X"7C",X"FF",X"FE",X"41",X"17",X"88",X"1C",X"88",X"88",X"88", + X"88",X"88",X"1F",X"88",X"88",X"88",X"88",X"15",X"7C",X"84",X"FF",X"FE",X"01",X"F9",X"FE",X"41", + X"80",X"89",X"00",X"02",X"04",X"06",X"10",X"22",X"80",X"80",X"80",X"80",X"86",X"84",X"7C",X"FF", + X"FE",X"01",X"F9",X"FE",X"41",X"80",X"89",X"01",X"03",X"05",X"07",X"11",X"22",X"80",X"80",X"80", + X"80",X"86",X"7C",X"84",X"FF",X"FE",X"01",X"F9",X"FE",X"41",X"80",X"89",X"08",X"0A",X"0C",X"0E", + X"12",X"22",X"80",X"80",X"80",X"80",X"86",X"84",X"7C",X"FF",X"FE",X"01",X"F9",X"FE",X"41",X"80", + X"89",X"09",X"0B",X"0D",X"0F",X"13",X"22",X"80",X"80",X"80",X"80",X"86",X"7C",X"84",X"FF",X"FE", + X"41",X"1A",X"23",X"1D",X"23",X"23",X"23",X"23",X"23",X"20",X"23",X"23",X"23",X"23",X"18",X"84", + X"7C",X"FF",X"FE",X"41",X"1B",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"21",X"80",X"80",X"80", + X"80",X"19",X"7C",X"84",X"FF",X"FE",X"FD",X"39",X"5B",X"FE",X"01",X"F8",X"FA",X"FC",X"FE",X"41", + X"7C",X"84",X"FF",X"FE",X"FD",X"5B",X"5B",X"FB",X"FD",X"FE",X"41",X"7B",X"7C",X"FF",X"A8",X"5C", + X"C2",X"5C",X"DD",X"5C",X"F3",X"5C",X"08",X"5D",X"20",X"5D",X"33",X"5D",X"3C",X"5D",X"0A",X"5E", + X"CB",X"5B",X"C1",X"5B",X"CB",X"5B",X"C1",X"5B",X"FE",X"03",X"EF",X"FE",X"09",X"00",X"00",X"00", + X"00",X"FE",X"92",X"3A",X"3C",X"3E",X"8E",X"FE",X"09",X"FE",X"FD",X"54",X"5B",X"CC",X"FE",X"01", + X"ED",X"FF",X"FE",X"09",X"FE",X"FD",X"55",X"5B",X"FE",X"92",X"3B",X"3D",X"46",X"44",X"46",X"FE", + X"09",X"00",X"00",X"00",X"00",X"FE",X"92",X"49",X"FE",X"93",X"4B",X"4D",X"FF",X"FE",X"41",X"15", + X"17",X"88",X"88",X"88",X"88",X"FE",X"93",X"3F",X"40",X"42",X"47",X"45",X"48",X"4A",X"4C",X"4E", + X"5C",X"5E",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"55",X"5B",X"FE",X"93",X"41",X"43",X"52", + X"54",X"56",X"58",X"5A",X"86",X"5D",X"5F",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"54",X"5B", + X"FE",X"93",X"51",X"53",X"55",X"57",X"59",X"5B",X"FE",X"01",X"06",X"FE",X"93",X"63",X"5F",X"FF", + X"FE",X"FD",X"4F",X"5B",X"FE",X"93",X"4F",X"50",X"FE",X"13",X"00",X"00",X"00",X"06",X"FE",X"93", + X"63",X"5F",X"FF",X"FE",X"FD",X"2B",X"5B",X"FE",X"93",X"63",X"5F",X"FF",X"FE",X"08",X"EE",X"FE", + X"FD",X"2E",X"5B",X"FE",X"93",X"60",X"62",X"FF",X"62",X"5D",X"7D",X"5D",X"98",X"5D",X"B2",X"5D", + X"CA",X"5D",X"D6",X"5D",X"E2",X"5D",X"F7",X"5D",X"0A",X"5E",X"CB",X"5B",X"C1",X"5B",X"CB",X"5B", + X"C1",X"5B",X"FE",X"03",X"EF",X"FE",X"09",X"00",X"00",X"00",X"00",X"FE",X"92",X"87",X"8A",X"8C", + X"8E",X"FE",X"09",X"FE",X"FD",X"55",X"5B",X"00",X"CC",X"FE",X"01",X"ED",X"FF",X"FE",X"09",X"FE", + X"FD",X"55",X"5B",X"FE",X"92",X"88",X"8B",X"8D",X"8F",X"92",X"FE",X"09",X"00",X"00",X"00",X"00", + X"CD",X"FE",X"01",X"ED",X"FE",X"92",X"74",X"FF",X"FE",X"41",X"15",X"17",X"88",X"88",X"88",X"88", + X"88",X"FE",X"93",X"89",X"90",X"93",X"65",X"FE",X"41",X"88",X"88",X"88",X"15",X"FE",X"93",X"73", + X"75",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"54",X"5B",X"FE",X"93",X"91",X"64",X"FE",X"41", + X"80",X"80",X"80",X"80",X"FE",X"93",X"6E",X"70",X"72",X"FF",X"FE",X"FD",X"36",X"5B",X"80",X"FE", + X"93",X"6D",X"6F",X"71",X"5F",X"FF",X"FE",X"FD",X"36",X"5B",X"FE",X"93",X"68",X"6A",X"6C",X"63", + X"5F",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"80",X"FE",X"93",X"66",X"69",X"6B",X"FE", + X"13",X"02",X"FE",X"93",X"63",X"5F",X"FF",X"FE",X"08",X"EE",X"FE",X"FD",X"39",X"5B",X"FE",X"93", + X"67",X"FE",X"41",X"80",X"86",X"FE",X"93",X"60",X"62",X"FF",X"FE",X"08",X"EF",X"FE",X"FD",X"2E", + X"5B",X"FE",X"93",X"61",X"FE",X"41",X"84",X"FF",X"32",X"5E",X"4C",X"5E",X"74",X"5E",X"7D",X"5E", + X"7D",X"5E",X"7D",X"5E",X"86",X"5E",X"8F",X"5E",X"9B",X"5E",X"CB",X"5B",X"C1",X"5B",X"CB",X"5B", + X"C1",X"5B",X"FE",X"03",X"EF",X"FE",X"09",X"00",X"00",X"00",X"00",X"FE",X"92",X"76",X"3C",X"79", + X"FE",X"09",X"FE",X"FD",X"54",X"5B",X"00",X"CC",X"FE",X"01",X"ED",X"FF",X"FE",X"09",X"FE",X"FD", + X"55",X"5B",X"FE",X"92",X"77",X"78",X"FE",X"09",X"FE",X"FD",X"53",X"5B",X"CD",X"FE",X"92",X"7A", + X"7C",X"FF",X"FE",X"41",X"15",X"17",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"1F",X"88",X"88", + X"88",X"88",X"15",X"FF",X"FE",X"FD",X"62",X"5E",X"FE",X"92",X"7B",X"34",X"FF",X"FE",X"FD",X"2B", + X"5B",X"FE",X"91",X"32",X"34",X"FF",X"FE",X"FD",X"2B",X"5B",X"FE",X"91",X"80",X"82",X"FF",X"FE", + X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE",X"91",X"81",X"83",X"FF",X"FE",X"08",X"EF",X"FE",X"FD", + X"2E",X"5B",X"FE",X"91",X"7F",X"FE",X"41",X"84",X"FF",X"CF",X"5E",X"E2",X"5E",X"F4",X"5E",X"0C", + X"5F",X"21",X"5F",X"39",X"5F",X"53",X"5F",X"6D",X"5F",X"8B",X"5F",X"A7",X"5F",X"C3",X"5F",X"DF", + X"5F",X"FD",X"5F",X"18",X"60",X"2B",X"60",X"47",X"60",X"65",X"60",X"83",X"60",X"9B",X"60",X"FE", + X"03",X"EF",X"FE",X"09",X"00",X"00",X"00",X"C4",X"C6",X"C8",X"C8",X"C8",X"C9",X"CB",X"00",X"00", + X"00",X"FF",X"FE",X"09",X"00",X"00",X"00",X"00",X"C5",X"C7",X"C7",X"C7",X"C7",X"CA",X"00",X"00", + X"00",X"00",X"CD",X"FF",X"FE",X"09",X"C3",X"FE",X"41",X"17",X"88",X"88",X"88",X"88",X"88",X"88", + X"88",X"1F",X"88",X"88",X"88",X"88",X"15",X"FE",X"07",X"80",X"82",X"FF",X"FE",X"06",X"A7",X"A8", + X"FE",X"FD",X"53",X"5B",X"FE",X"41",X"22",X"80",X"80",X"80",X"80",X"86",X"FE",X"07",X"81",X"83", + X"FF",X"FE",X"45",X"8A",X"FE",X"06",X"04",X"A9",X"AA",X"AB",X"AB",X"AB",X"AB",X"AB",X"BD",X"AB", + X"AB",X"AB",X"AB",X"C0",X"FE",X"0A",X"D6",X"D4",X"FF",X"FE",X"06",X"A1",X"A2",X"FE",X"05",X"8C", + X"FE",X"06",X"AC",X"AD",X"AE",X"AE",X"AE",X"AE",X"BE",X"AE",X"AE",X"AE",X"AE",X"C1",X"FE",X"4A", + X"7D",X"7E",X"FF",X"FE",X"06",X"9E",X"A3",X"A6",X"FE",X"05",X"8F",X"FE",X"06",X"04",X"AF",X"B0", + X"B1",X"B1",X"BF",X"B1",X"B1",X"B1",X"B1",X"C2",X"FE",X"4A",X"7F",X"83",X"FF",X"FE",X"08",X"EC", + X"FE",X"06",X"A4",X"94",X"96",X"99",X"FE",X"05",X"8C",X"FE",X"06",X"B2",X"B3",X"00",X"FE",X"41", + X"22",X"80",X"80",X"80",X"FE",X"04",X"84",X"86",X"88",X"8A",X"FF",X"FE",X"08",X"EF",X"FE",X"06", + X"A5",X"95",X"97",X"9A",X"93",X"FE",X"05",X"8E",X"FE",X"06",X"04",X"B4",X"B5",X"00",X"00",X"00", + X"FE",X"04",X"85",X"87",X"89",X"8B",X"FF",X"FE",X"01",X"06",X"F9",X"00",X"FE",X"06",X"98",X"9B", + X"94",X"96",X"99",X"FE",X"05",X"8C",X"FE",X"06",X"B6",X"B7",X"AB",X"AB",X"AB",X"C0",X"FE",X"0A", + X"D4",X"D6",X"FF",X"FE",X"01",X"06",X"F9",X"00",X"00",X"FE",X"06",X"9C",X"95",X"97",X"9A",X"93", + X"FE",X"05",X"8E",X"FE",X"06",X"04",X"B8",X"B9",X"AE",X"C1",X"FE",X"0A",X"D5",X"D7",X"FF",X"FE", + X"01",X"06",X"F9",X"00",X"00",X"00",X"00",X"FE",X"06",X"98",X"9B",X"94",X"9D",X"A0",X"FE",X"05", + X"8C",X"FE",X"06",X"BA",X"BB",X"C2",X"FE",X"0A",X"D8",X"FE",X"41",X"7C",X"FF",X"FE",X"01",X"06", + X"F9",X"FE",X"FD",X"55",X"5B",X"FE",X"06",X"9C",X"95",X"9E",X"9A",X"93",X"FE",X"05",X"8E",X"FE", + X"06",X"04",X"BC",X"FE",X"0A",X"D3",X"03",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"06",X"9F",X"9B", + X"94",X"96",X"99",X"FE",X"05",X"8C",X"FE",X"0A",X"D1",X"D2",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"D9",X"DC",X"DC",X"DC",X"DC",X"DE",X"FE",X"41",X"80",X"22",X"FE",X"06",X"9C",X"95",X"97", + X"9A",X"90",X"FE",X"05",X"8D",X"07",X"FF",X"FE",X"08",X"EE",X"FE",X"01",X"F9",X"FE",X"0B",X"DA", + X"07",X"DB",X"DD",X"DF",X"E9",X"FE",X"41",X"80",X"22",X"80",X"80",X"FE",X"06",X"98",X"9B",X"91", + X"FE",X"0A",X"CF",X"D0",X"FF",X"FE",X"08",X"EF",X"FE",X"01",X"F9",X"FE",X"0B",X"DA",X"E0",X"E2", + X"E4",X"E6",X"E9",X"FE",X"41",X"80",X"22",X"80",X"80",X"80",X"FE",X"06",X"9C",X"92",X"FE",X"0A", + X"CE",X"03",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"0B",X"DA",X"E1",X"E3",X"E5",X"E7",X"E9",X"FE", + X"41",X"80",X"22",X"80",X"80",X"80",X"80",X"86",X"84",X"7C",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"EB",X"E8",X"E8",X"E8",X"E8",X"EA",X"FE",X"41",X"80",X"22",X"80",X"80",X"80",X"80",X"86", + X"7C",X"84",X"FF",X"15",X"61",X"09",X"61",X"02",X"61",X"F6",X"60",X"E5",X"60",X"D9",X"60",X"37", + X"63",X"85",X"63",X"90",X"63",X"30",X"63",X"37",X"63",X"30",X"63",X"37",X"63",X"30",X"63",X"37", + X"63",X"85",X"63",X"90",X"63",X"30",X"63",X"37",X"63",X"FE",X"FD",X"36",X"5B",X"80",X"80",X"FE", + X"96",X"B4",X"B6",X"B5",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"80",X"FE",X"96",X"B7", + X"AB",X"AD",X"AF",X"B1",X"B3",X"FF",X"FE",X"FD",X"36",X"5B",X"FE",X"96",X"AA",X"AC",X"AE",X"B0", + X"B2",X"FF",X"FE",X"FD",X"62",X"5E",X"84",X"84",X"FF",X"FE",X"FD",X"45",X"5B",X"FE",X"92",X"49", + X"FE",X"01",X"ED",X"04",X"FF",X"FE",X"03",X"EF",X"FE",X"FD",X"45",X"5B",X"CC",X"FE",X"01",X"ED", + X"FF",X"3D",X"61",X"59",X"61",X"7B",X"61",X"9B",X"61",X"BB",X"61",X"D5",X"61",X"EB",X"61",X"03", + X"62",X"1B",X"62",X"37",X"62",X"53",X"62",X"69",X"62",X"7D",X"62",X"91",X"62",X"FE",X"08",X"EE", + X"FE",X"01",X"F9",X"FE",X"0B",X"D9",X"DC",X"DC",X"DC",X"DC",X"DE",X"04",X"FE",X"41",X"22",X"80", + X"80",X"80",X"80",X"86",X"FE",X"4A",X"4E",X"81",X"FF",X"FE",X"08",X"EF",X"FE",X"01",X"F9",X"FE", + X"0B",X"DA",X"FE",X"4B",X"87",X"8D",X"90",X"FE",X"0B",X"07",X"E9",X"04",X"FE",X"41",X"22",X"80", + X"80",X"80",X"80",X"FE",X"46",X"4B",X"FE",X"4C",X"9B",X"A9",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"DA",X"FE",X"4B",X"87",X"8E",X"91",X"FE",X"0B",X"07",X"E9",X"04",X"FE",X"41",X"22",X"80", + X"80",X"FE",X"46",X"4C",X"FE",X"4C",X"83",X"9F",X"A7",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"DA",X"FE",X"4B",X"8C",X"8F",X"92",X"FE",X"0B",X"07",X"E9",X"04",X"FE",X"41",X"22",X"80", + X"FE",X"46",X"4B",X"FE",X"4C",X"9B",X"9C",X"49",X"A8",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"FE", + X"0B",X"EB",X"E8",X"E8",X"E8",X"E8",X"EA",X"04",X"FE",X"46",X"4D",X"FE",X"4C",X"83",X"9F",X"A0", + X"A1",X"85",X"87",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"FE",X"FD",X"54",X"5B",X"FE",X"46",X"4B", + X"FE",X"4C",X"9B",X"A5",X"A6",X"9A",X"9A",X"42",X"43",X"44",X"FF",X"FE",X"01",X"06",X"F9",X"00", + X"00",X"00",X"00",X"FE",X"46",X"4C",X"FE",X"4C",X"83",X"9F",X"A3",X"A4",X"3E",X"3E",X"3E",X"45", + X"48",X"87",X"FF",X"FE",X"01",X"06",X"F9",X"00",X"00",X"00",X"FE",X"46",X"4B",X"FE",X"4C",X"9B", + X"9C",X"A2",X"40",X"3D",X"3D",X"3D",X"3D",X"46",X"47",X"87",X"FF",X"FE",X"08",X"EE",X"FE",X"01", + X"F9",X"00",X"FE",X"46",X"4C",X"FE",X"4C",X"83",X"9F",X"A0",X"A1",X"80",X"FE",X"41",X"22",X"80", + X"80",X"80",X"80",X"86",X"84",X"84",X"FF",X"FE",X"08",X"EF",X"FE",X"01",X"F9",X"FE",X"46",X"4B", + X"FE",X"4C",X"9B",X"9C",X"9D",X"9E",X"80",X"80",X"FE",X"41",X"22",X"80",X"80",X"80",X"80",X"86", + X"84",X"84",X"FF",X"FE",X"46",X"4A",X"FE",X"4C",X"83",X"98",X"99",X"9A",X"9A",X"9A",X"9A",X"9A", + X"41",X"9A",X"9A",X"9A",X"9A",X"42",X"43",X"44",X"FF",X"FE",X"4C",X"9B",X"95",X"96",X"97",X"3E", + X"3E",X"3E",X"3E",X"3E",X"3F",X"3E",X"3E",X"3E",X"3E",X"45",X"48",X"87",X"FF",X"FE",X"4C",X"93", + X"94",X"3D",X"3D",X"3D",X"3D",X"3D",X"3D",X"3D",X"40",X"3D",X"3D",X"3D",X"3D",X"46",X"47",X"87", + X"FF",X"FE",X"4C",X"3C",X"FE",X"FD",X"2E",X"5B",X"84",X"84",X"FF",X"30",X"63",X"37",X"63",X"30", + X"63",X"AF",X"62",X"B8",X"62",X"C4",X"62",X"D0",X"62",X"E5",X"62",X"F6",X"62",X"09",X"63",X"FE", + X"FD",X"2B",X"5B",X"7C",X"FE",X"91",X"1C",X"FF",X"FE",X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE", + X"91",X"18",X"1E",X"FF",X"FE",X"08",X"EF",X"FE",X"FD",X"2E",X"5B",X"FE",X"91",X"14",X"16",X"FF", + X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"80",X"FE",X"91",X"1A",X"FE",X"41",X"80",X"80",X"86", + X"FE",X"91",X"14",X"16",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"41",X"22",X"FE",X"91",X"19",X"1B", + X"1D",X"10",X"12",X"14",X"16",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"91",X"08",X"0A",X"0C",X"FE", + X"11",X"03",X"FE",X"91",X"11",X"13",X"15",X"17",X"FF",X"FE",X"FD",X"4F",X"5B",X"FE",X"91",X"09", + X"0B",X"0D",X"0F",X"FE",X"11",X"03",X"03",X"FE",X"91",X"07",X"0E",X"FF",X"30",X"63",X"37",X"63", + X"30",X"63",X"3E",X"63",X"47",X"63",X"53",X"63",X"5F",X"63",X"5F",X"63",X"5F",X"63",X"68",X"63", + X"FE",X"FD",X"2B",X"5B",X"84",X"7C",X"FF",X"FE",X"FD",X"2B",X"5B",X"7C",X"84",X"FF",X"FE",X"FD", + X"2B",X"5B",X"7C",X"FE",X"91",X"38",X"FF",X"FE",X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE",X"91", + X"36",X"39",X"FF",X"FE",X"08",X"EF",X"FE",X"FD",X"2E",X"5B",X"FE",X"91",X"37",X"34",X"FF",X"FE", + X"FD",X"2B",X"5B",X"FE",X"91",X"32",X"34",X"FF",X"FE",X"FD",X"2B",X"5B",X"FE",X"91",X"33",X"35", + X"FF",X"30",X"63",X"37",X"63",X"30",X"63",X"37",X"63",X"85",X"63",X"90",X"63",X"30",X"63",X"37", + X"63",X"30",X"63",X"37",X"63",X"FE",X"08",X"EE",X"FE",X"FD",X"2E",X"5B",X"FE",X"FC",X"34",X"63", + X"FE",X"08",X"EF",X"FE",X"FD",X"2E",X"5B",X"FE",X"FC",X"3B",X"63",X"A7",X"63",X"B0",X"63",X"B9", + X"63",X"C2",X"63",X"CF",X"63",X"E9",X"63",X"FE",X"5C",X"69",X"6B",X"6D",X"FE",X"5E",X"8B",X"FF", + X"FE",X"5C",X"70",X"72",X"FE",X"5E",X"78",X"84",X"FF",X"FE",X"5C",X"71",X"73",X"FE",X"5E",X"79", + X"84",X"FF",X"FE",X"5C",X"74",X"76",X"FE",X"5D",X"4F",X"87",X"87",X"FE",X"FC",X"D8",X"63",X"FE", + X"5C",X"75",X"77",X"FE",X"5D",X"50",X"FE",X"5F",X"87",X"87",X"87",X"87",X"87",X"87",X"87",X"87", + X"87",X"87",X"87",X"87",X"87",X"87",X"87",X"87",X"FF",X"FE",X"5C",X"6F",X"7A",X"FE",X"5D",X"51", + X"FE",X"5F",X"87",X"87",X"87",X"87",X"87",X"37",X"38",X"39",X"39",X"3A",X"3B",X"87",X"87",X"87", + X"87",X"FF",X"42",X"64",X"4E",X"64",X"5D",X"64",X"BC",X"64",X"C0",X"64",X"64",X"64",X"68",X"64", + X"D8",X"64",X"E8",X"64",X"74",X"64",X"6C",X"64",X"70",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64", + X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64", + X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"C8",X"64",X"CC",X"64",X"D0",X"64", + X"D4",X"64",X"FE",X"4D",X"FA",X"FC",X"FE",X"70",X"AF",X"B1",X"B3",X"B5",X"B7",X"FF",X"FE",X"4D", + X"FD",X"FE",X"8D",X"85",X"FE",X"8E",X"84",X"FE",X"50",X"B2",X"B4",X"B6",X"FF",X"FE",X"8E",X"00", + X"01",X"02",X"03",X"FF",X"F4",X"F6",X"D8",X"FF",X"F5",X"F7",X"80",X"FF",X"F0",X"F2",X"D8",X"FF", + X"F1",X"F3",X"80",X"FF",X"F8",X"D5",X"D7",X"FF",X"D8",X"64",X"E8",X"64",X"B8",X"64",X"BC",X"64", + X"C0",X"64",X"C4",X"64",X"D8",X"64",X"E8",X"64",X"C8",X"64",X"CC",X"64",X"D0",X"64",X"D4",X"64", + X"D8",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64", + X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64",X"E4",X"64",X"E8",X"64", + X"EC",X"64",X"F2",X"64",X"F9",X"64",X"02",X"65",X"C6",X"C2",X"80",X"FF",X"C7",X"C2",X"80",X"FF", + X"CE",X"D5",X"D7",X"FF",X"CF",X"D6",X"D8",X"FF",X"C8",X"CA",X"80",X"FF",X"C9",X"CB",X"CD",X"FF", + X"D0",X"D2",X"D4",X"FF",X"D1",X"D3",X"80",X"FF",X"AA",X"C2",X"80",X"FF",X"B8",X"C2",X"C4",X"FF", + X"C1",X"C3",X"C5",X"FF",X"AA",X"C0",X"CC",X"FF",X"B8",X"C2",X"80",X"FF",X"BA",X"BC",X"FE",X"50", + X"BE",X"FF",X"FE",X"50",X"B9",X"BB",X"BD",X"BF",X"FF",X"FE",X"50",X"AC",X"AE",X"B0",X"B2",X"B4", + X"B6",X"FF",X"FE",X"50",X"AB",X"AD",X"AF",X"B1",X"B3",X"B5",X"B7",X"FF",X"4C",X"65",X"D8",X"64", + X"E8",X"64",X"50",X"65",X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64", + X"E4",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64", + X"E0",X"64",X"E4",X"64",X"E8",X"64",X"D8",X"64",X"DC",X"64",X"E0",X"64",X"E4",X"64",X"E8",X"64", + X"D8",X"64",X"E8",X"64",X"C8",X"64",X"CC",X"64",X"D0",X"64",X"D4",X"64",X"E3",X"E5",X"80",X"FF", + X"E4",X"E6",X"C4",X"FF",X"46",X"5E",X"58",X"65",X"FE",X"01",X"ED",X"FE",X"41",X"7C",X"FF",X"67", + X"65",X"6D",X"65",X"76",X"65",X"81",X"65",X"FE",X"42",X"24",X"26",X"30",X"FF",X"FE",X"5D",X"87", + X"FE",X"42",X"2A",X"2C",X"2E",X"FF",X"FE",X"5F",X"87",X"87",X"35",X"FE",X"42",X"2B",X"2D",X"2F", + X"FF",X"FE",X"5F",X"87",X"87",X"36",X"FE",X"42",X"31",X"32",X"33",X"34",X"FF",X"05",X"01",X"07", + X"0B",X"FE",X"06",X"05",X"02",X"09",X"0B",X"FD",X"08",X"05",X"01",X"0C",X"0B",X"FE",X"0B",X"05", + X"02",X"0E",X"0B",X"FD",X"0D",X"B7",X"65",X"B7",X"65",X"D5",X"65",X"E0",X"65",X"EB",X"65",X"F1", + X"65",X"00",X"00",X"F7",X"65",X"FB",X"65",X"02",X"00",X"00",X"02",X"00",X"03",X"05",X"19",X"01", + X"05",X"B3",X"00",X"05",X"00",X"00",X"05",X"4D",X"FF",X"05",X"E7",X"FE",X"02",X"00",X"FD",X"02", + X"00",X"00",X"FF",X"00",X"00",X"04",X"10",X"06",X"12",X"10",X"93",X"06",X"14",X"04",X"10",X"00", + X"04",X"11",X"06",X"12",X"10",X"93",X"06",X"14",X"04",X"10",X"00",X"05",X"55",X"01",X"88",X"00", + X"00",X"05",X"56",X"01",X"88",X"00",X"00",X"05",X"B8",X"00",X"00",X"05",X"B9",X"00",X"00",X"9B", + X"66",X"BF",X"66",X"D9",X"66",X"FD",X"66",X"1D",X"67",X"45",X"67",X"93",X"68",X"BD",X"68",X"47", + X"68",X"6B",X"68",X"1F",X"68",X"77",X"69",X"A1",X"69",X"2B",X"69",X"4F",X"69",X"03",X"69",X"9F", + X"67",X"C9",X"69",X"B9",X"67",X"D9",X"67",X"FF",X"67",X"6B",X"68",X"6B",X"68",X"6B",X"68",X"E5", + X"68",X"E5",X"68",X"00",X"00",X"00",X"00",X"63",X"67",X"74",X"67",X"81",X"67",X"92",X"67",X"F3", + X"69",X"07",X"6A",X"27",X"6A",X"3C",X"6A",X"51",X"6A",X"66",X"6A",X"66",X"74",X"AC",X"66",X"CC", + X"66",X"EA",X"66",X"0A",X"67",X"32",X"67",X"56",X"67",X"A4",X"68",X"D2",X"68",X"58",X"68",X"80", + X"68",X"34",X"68",X"88",X"69",X"B6",X"69",X"3C",X"69",X"64",X"69",X"18",X"69",X"AC",X"67",X"DA", + X"69",X"C6",X"67",X"E6",X"67",X"0C",X"68",X"80",X"68",X"80",X"68",X"80",X"68",X"F6",X"68",X"F6", + X"68",X"00",X"00",X"00",X"00",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"00",X"6A",X"14", + X"6A",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"BE",X"66",X"27",X"10",X"02",X"80",X"2D", + X"10",X"02",X"82",X"23",X"2C",X"00",X"84",X"28",X"30",X"01",X"02",X"FF",X"3D",X"4A",X"A0",X"FF", + X"20",X"FF",X"0F",X"3F",X"40",X"00",X"40",X"FF",X"0F",X"38",X"A0",X"00",X"00",X"00",X"FF",X"29", + X"10",X"02",X"86",X"28",X"30",X"01",X"03",X"28",X"40",X"00",X"04",X"FF",X"42",X"4B",X"C0",X"FF", + X"40",X"FF",X"0F",X"42",X"60",X"00",X"60",X"FF",X"FF",X"26",X"10",X"02",X"8E",X"2D",X"10",X"02", + X"90",X"22",X"2C",X"00",X"92",X"28",X"2F",X"01",X"0B",X"FF",X"30",X"49",X"C0",X"FF",X"40",X"FF", + X"0F",X"3E",X"A0",X"00",X"C0",X"FF",X"0F",X"28",X"00",X"00",X"00",X"FF",X"FF",X"27",X"3F",X"00", + X"04",X"28",X"10",X"02",X"94",X"28",X"30",X"01",X"0D",X"FF",X"40",X"4B",X"C0",X"FF",X"20",X"FF", + X"0F",X"41",X"40",X"00",X"60",X"FF",X"0F",X"1C",X"A0",X"00",X"00",X"00",X"FF",X"2A",X"3B",X"00", + X"2A",X"22",X"10",X"02",X"88",X"2A",X"10",X"02",X"8A",X"22",X"30",X"01",X"05",X"29",X"2D",X"01", + X"06",X"FF",X"0F",X"45",X"40",X"00",X"E0",X"FF",X"0F",X"3A",X"E0",X"00",X"A0",X"FF",X"0F",X"26", + X"00",X"00",X"40",X"FF",X"FF",X"25",X"10",X"02",X"8C",X"2E",X"10",X"02",X"08",X"28",X"20",X"01", + X"09",X"27",X"2D",X"00",X"0A",X"FF",X"0F",X"35",X"A0",X"FF",X"20",X"FF",X"0F",X"2C",X"80",X"00", + X"A0",X"FF",X"FF",X"1F",X"1D",X"02",X"9A",X"24",X"12",X"02",X"9C",X"25",X"32",X"01",X"17",X"25", + X"42",X"00",X"16",X"FF",X"2A",X"10",X"02",X"9E",X"2A",X"30",X"01",X"19",X"28",X"40",X"00",X"1C", + X"FF",X"20",X"1D",X"02",X"A0",X"25",X"12",X"02",X"A2",X"25",X"32",X"01",X"1B",X"24",X"42",X"00", + X"1A",X"FF",X"2A",X"10",X"02",X"A4",X"2A",X"30",X"01",X"1D",X"28",X"40",X"00",X"1C",X"FF",X"2A", + X"3C",X"00",X"21",X"28",X"10",X"02",X"A6",X"28",X"2E",X"01",X"1F",X"FF",X"0F",X"46",X"00",X"00", + X"80",X"FF",X"0F",X"37",X"A0",X"00",X"00",X"00",X"FF",X"29",X"49",X"00",X"21",X"28",X"10",X"02", + X"A8",X"28",X"2B",X"01",X"AA",X"FF",X"46",X"50",X"E0",X"FF",X"60",X"FF",X"39",X"46",X"60",X"00", + X"A0",X"FF",X"14",X"39",X"60",X"00",X"C0",X"FF",X"FF",X"28",X"17",X"02",X"AC",X"29",X"31",X"01", + X"22",X"28",X"41",X"00",X"21",X"FF",X"36",X"4A",X"C0",X"FF",X"40",X"FF",X"2B",X"3F",X"C0",X"00", + X"E0",X"FF",X"1E",X"2C",X"20",X"00",X"40",X"FF",X"1A",X"1E",X"40",X"00",X"00",X"00",X"FF",X"28", + X"49",X"00",X"21",X"28",X"10",X"02",X"A8",X"29",X"2B",X"01",X"AE",X"FF",X"48",X"53",X"C0",X"FF", + X"40",X"FF",X"2F",X"48",X"60",X"00",X"A0",X"FF",X"14",X"2F",X"40",X"00",X"C0",X"FF",X"FF",X"25", + X"10",X"02",X"B0",X"2A",X"10",X"02",X"B2",X"1C",X"38",X"01",X"24",X"2A",X"30",X"01",X"25",X"2C", + X"40",X"00",X"26",X"FF",X"0F",X"4B",X"40",X"01",X"C0",X"FF",X"0F",X"29",X"80",X"01",X"00",X"FF", + X"0F",X"2F",X"80",X"01",X"A0",X"FF",X"FF",X"25",X"10",X"02",X"B0",X"2A",X"10",X"02",X"B2",X"29", + X"30",X"01",X"28",X"29",X"40",X"00",X"27",X"FF",X"0F",X"4B",X"40",X"00",X"C0",X"FF",X"0F",X"2A", + X"80",X"00",X"00",X"FF",X"32",X"40",X"A0",X"00",X"20",X"00",X"FF",X"25",X"10",X"02",X"B0",X"2A", + X"10",X"02",X"B2",X"1C",X"38",X"01",X"29",X"28",X"30",X"01",X"2B",X"28",X"40",X"00",X"2A",X"FF", + X"0F",X"4A",X"40",X"00",X"A0",X"FF",X"0F",X"29",X"80",X"00",X"00",X"FF",X"29",X"3F",X"80",X"00", + X"C0",X"FF",X"FF",X"1D",X"24",X"02",X"B4",X"2D",X"10",X"02",X"B8",X"2D",X"30",X"01",X"B6",X"2D", + X"40",X"00",X"2C",X"FF",X"27",X"4B",X"80",X"00",X"00",X"00",X"0F",X"27",X"C0",X"00",X"40",X"00", + X"30",X"3F",X"E0",X"00",X"A0",X"00",X"2F",X"37",X"00",X"00",X"40",X"FF",X"FF",X"0E",X"38",X"02", + X"2D",X"1E",X"30",X"02",X"32",X"28",X"10",X"02",X"C4",X"2E",X"30",X"01",X"34",X"2E",X"40",X"00", + X"33",X"FF",X"37",X"4A",X"A0",X"00",X"20",X"00",X"35",X"3F",X"20",X"01",X"20",X"FF",X"13",X"38", + X"40",X"00",X"A0",X"FF",X"FF",X"27",X"46",X"00",X"27",X"28",X"10",X"02",X"C6",X"28",X"28",X"01", + X"CA",X"18",X"37",X"02",X"C8",X"FF",X"13",X"51",X"00",X"00",X"80",X"FF",X"31",X"47",X"80",X"00", + X"00",X"00",X"FF",X"25",X"10",X"02",X"96",X"35",X"10",X"02",X"98",X"1E",X"28",X"01",X"11",X"2E", + X"23",X"01",X"0F",X"2D",X"33",X"00",X"0E",X"FF",X"0F",X"3A",X"60",X"00",X"E0",X"FF",X"0F",X"31", + X"C0",X"00",X"00",X"00",X"0F",X"22",X"40",X"00",X"20",X"FF",X"FF",X"25",X"10",X"02",X"96",X"35", + X"10",X"02",X"98",X"2A",X"23",X"01",X"13",X"2A",X"33",X"00",X"12",X"FF",X"0F",X"3A",X"60",X"00", + X"E0",X"FF",X"0F",X"32",X"C0",X"00",X"20",X"00",X"0F",X"22",X"20",X"00",X"20",X"FF",X"FF",X"25", + X"10",X"02",X"96",X"35",X"10",X"02",X"98",X"1F",X"28",X"01",X"10",X"28",X"23",X"01",X"15",X"28", + X"33",X"00",X"14",X"FF",X"0F",X"3A",X"40",X"00",X"C0",X"FF",X"0F",X"30",X"C0",X"00",X"E0",X"FF", + X"0F",X"22",X"E0",X"FF",X"00",X"FF",X"FF",X"20",X"10",X"02",X"CC",X"28",X"20",X"00",X"CE",X"30", + X"10",X"02",X"37",X"30",X"20",X"01",X"36",X"FF",X"1D",X"38",X"80",X"00",X"00",X"00",X"0F",X"2C", + X"40",X"01",X"A0",X"00",X"1F",X"2B",X"00",X"00",X"40",X"FF",X"0F",X"1F",X"40",X"FF",X"C0",X"FE", + X"FF",X"0F",X"10",X"02",X"3B",X"1F",X"10",X"02",X"D4",X"26",X"1A",X"00",X"D8",X"30",X"10",X"02", + X"D6",X"2D",X"23",X"01",X"3C",X"FF",X"1A",X"38",X"20",X"00",X"A0",X"FF",X"19",X"2D",X"00",X"01", + X"E0",X"FE",X"0F",X"1F",X"C0",X"01",X"E0",X"00",X"FF",X"18",X"39",X"00",X"21",X"12",X"1B",X"02", + X"2E",X"22",X"10",X"02",X"C2",X"1B",X"2B",X"01",X"31",X"FF",X"39",X"42",X"C0",X"FD",X"40",X"FD", + X"2A",X"39",X"A0",X"FE",X"C0",X"FD",X"1F",X"2F",X"40",X"FF",X"40",X"FE",X"0F",X"20",X"A0",X"FF", + X"00",X"FF",X"FF",X"29",X"40",X"00",X"3E",X"29",X"30",X"01",X"3F",X"29",X"10",X"02",X"42",X"FF", + X"0F",X"4B",X"20",X"00",X"A0",X"FF",X"FF",X"25",X"3F",X"00",X"07",X"2B",X"2F",X"01",X"35",X"2C", + X"10",X"02",X"44",X"FF",X"40",X"48",X"A0",X"FF",X"20",X"FF",X"34",X"3F",X"60",X"00",X"C0",X"FF", + X"0F",X"3A",X"C0",X"00",X"20",X"00",X"FF",X"2A",X"40",X"00",X"3D",X"20",X"30",X"41",X"2B",X"30", + X"30",X"41",X"3E",X"20",X"10",X"02",X"46",X"30",X"10",X"02",X"48",X"FF",X"26",X"33",X"41",X"3F", + X"36",X"31",X"80",X"EA",X"1C",X"14",X"02",X"4A",X"2C",X"13",X"02",X"4C",X"3C",X"19",X"00",X"4E", + X"FF",X"2E",X"40",X"80",X"EB",X"1E",X"30",X"81",X"EC",X"2E",X"30",X"81",X"ED",X"1E",X"10",X"02", + X"50",X"2E",X"10",X"02",X"52",X"FF",X"27",X"36",X"81",X"EE",X"37",X"2C",X"80",X"EF",X"17",X"10", + X"02",X"54",X"27",X"16",X"01",X"56",X"37",X"10",X"01",X"58",X"FF",X"97",X"6A",X"A4",X"6A",X"B1", + X"6A",X"A4",X"6A",X"D8",X"6A",X"CB",X"6A",X"BE",X"6A",X"E5",X"6A",X"F2",X"6A",X"FF",X"6A",X"22", + X"6B",X"19",X"6B",X"0C",X"6B",X"19",X"6B",X"2D",X"40",X"45",X"00",X"27",X"10",X"44",X"80",X"2D", + X"10",X"44",X"40",X"FF",X"2D",X"40",X"45",X"00",X"29",X"30",X"44",X"01",X"29",X"10",X"44",X"42", + X"FF",X"2D",X"40",X"45",X"00",X"28",X"10",X"44",X"84",X"31",X"10",X"44",X"44",X"FF",X"27",X"3C", + X"45",X"02",X"21",X"20",X"44",X"46",X"2C",X"10",X"44",X"48",X"FF",X"24",X"28",X"44",X"4A",X"28", + X"2B",X"45",X"4C",X"28",X"10",X"44",X"4E",X"FF",X"2C",X"0C",X"45",X"98",X"25",X"20",X"44",X"56", + X"25",X"10",X"44",X"04",X"FF",X"19",X"0D",X"45",X"88",X"1F",X"1A",X"44",X"50",X"2F",X"0D",X"44", + X"8C",X"FF",X"1C",X"0D",X"45",X"90",X"2C",X"17",X"44",X"52",X"35",X"0D",X"44",X"54",X"FF",X"28", + X"3F",X"45",X"00",X"26",X"10",X"44",X"94",X"36",X"30",X"44",X"03",X"FF",X"29",X"40",X"85",X"00", + X"26",X"10",X"44",X"F6",X"36",X"10",X"84",X"DA",X"FF",X"2A",X"40",X"85",X"00",X"2A",X"10",X"44", + X"FC",X"FF",X"2A",X"40",X"85",X"00",X"26",X"10",X"44",X"FA",X"36",X"10",X"C4",X"F2",X"FF",X"51", + X"6B",X"5E",X"6B",X"6B",X"6B",X"5E",X"6B",X"85",X"6B",X"78",X"6B",X"00",X"00",X"92",X"6B",X"9B", + X"6B",X"A4",X"6B",X"B1",X"6B",X"B1",X"6B",X"BA",X"6B",X"C3",X"6B",X"CC",X"6B",X"D5",X"6B",X"DE", + X"6B",X"28",X"30",X"91",X"10",X"28",X"20",X"91",X"11",X"28",X"10",X"92",X"82",X"FF",X"28",X"30", + X"91",X"10",X"28",X"20",X"91",X"12",X"28",X"10",X"92",X"84",X"FF",X"27",X"30",X"91",X"10",X"28", + X"20",X"91",X"13",X"28",X"10",X"92",X"86",X"FF",X"28",X"20",X"91",X"88",X"28",X"10",X"92",X"8A", + X"2B",X"2E",X"47",X"0C",X"FF",X"28",X"20",X"91",X"92",X"28",X"10",X"92",X"94",X"2C",X"0C",X"47", + X"0C",X"FF",X"22",X"18",X"91",X"96",X"2D",X"10",X"92",X"98",X"FF",X"1E",X"12",X"91",X"8C",X"2E", + X"12",X"92",X"8E",X"FF",X"27",X"2D",X"91",X"10",X"29",X"10",X"92",X"90",X"2C",X"20",X"91",X"14", + X"FF",X"2A",X"18",X"D1",X"F4",X"2A",X"10",X"D2",X"F6",X"FF",X"2C",X"1E",X"D1",X"F8",X"2A",X"0A", + X"D2",X"FA",X"FF",X"29",X"0D",X"D1",X"FC",X"26",X"12",X"92",X"FB",X"FF",X"27",X"0D",X"D1",X"FE", + X"20",X"16",X"92",X"FC",X"FF",X"27",X"0D",X"D1",X"FC",X"24",X"18",X"92",X"FB",X"FF",X"28",X"0A", + X"D1",X"FE",X"21",X"11",X"92",X"FC",X"FF",X"01",X"6C",X"0E",X"6C",X"17",X"6C",X"0E",X"6C",X"2D", + X"6C",X"3A",X"6C",X"24",X"6C",X"47",X"6C",X"54",X"6C",X"77",X"6C",X"84",X"6C",X"61",X"6C",X"6A", + X"6C",X"25",X"30",X"06",X"BE",X"25",X"10",X"06",X"C0",X"2A",X"10",X"46",X"58",X"FF",X"25",X"30", + X"06",X"BA",X"25",X"10",X"06",X"BC",X"FF",X"25",X"30",X"06",X"D0",X"25",X"10",X"06",X"D2",X"2B", + X"10",X"46",X"5A",X"FF",X"27",X"10",X"46",X"A0",X"2D",X"3E",X"47",X"05",X"FF",X"20",X"29",X"46", + X"06",X"26",X"0C",X"46",X"AC",X"30",X"0C",X"47",X"07",X"FF",X"20",X"10",X"46",X"D0",X"2A",X"2D", + X"47",X"0C",X"30",X"10",X"46",X"D4",X"FF",X"17",X"25",X"46",X"5C",X"27",X"0E",X"46",X"B0",X"37", + X"10",X"46",X"5E",X"FF",X"17",X"0A",X"46",X"B4",X"27",X"0A",X"46",X"B8",X"37",X"0A",X"46",X"60", + X"FF",X"27",X"10",X"46",X"BC",X"27",X"48",X"47",X"08",X"FF",X"26",X"10",X"46",X"C0",X"36",X"37", + X"46",X"09",X"36",X"10",X"46",X"0A",X"FF",X"17",X"30",X"46",X"0B",X"17",X"10",X"46",X"62",X"27", + X"10",X"46",X"C4",X"FF",X"1F",X"10",X"46",X"C8",X"2F",X"10",X"46",X"CC",X"FF",X"C5",X"6C",X"D6", + X"6C",X"E7",X"6C",X"D6",X"6C",X"26",X"6D",X"50",X"6D",X"93",X"6D",X"50",X"6D",X"26",X"6D",X"0D", + X"6D",X"3B",X"6D",X"7E",X"6D",X"3B",X"6D",X"0D",X"6D",X"F8",X"6C",X"3B",X"6D",X"65",X"6D",X"3B", + X"6D",X"F8",X"6C",X"DA",X"6D",X"C5",X"6D",X"AC",X"6D",X"0C",X"6E",X"F3",X"6D",X"25",X"6E",X"36", + X"6E",X"43",X"6E",X"58",X"6E",X"20",X"10",X"48",X"64",X"30",X"10",X"49",X"66",X"24",X"30",X"49", + X"68",X"34",X"30",X"49",X"0D",X"FF",X"26",X"10",X"48",X"0E",X"26",X"20",X"49",X"6A",X"26",X"40", + X"49",X"0F",X"36",X"28",X"49",X"10",X"FF",X"20",X"10",X"49",X"6C",X"27",X"30",X"49",X"6E",X"30", + X"10",X"48",X"70",X"38",X"29",X"49",X"10",X"FF",X"21",X"10",X"48",X"72",X"31",X"10",X"48",X"74", + X"18",X"2D",X"49",X"76",X"28",X"20",X"49",X"D8",X"18",X"4C",X"48",X"11",X"FF",X"25",X"40",X"49", + X"0F",X"08",X"30",X"49",X"78",X"18",X"36",X"49",X"12",X"21",X"10",X"48",X"72",X"30",X"10",X"48", + X"74",X"28",X"2B",X"49",X"7A",X"FF",X"20",X"10",X"48",X"25",X"30",X"10",X"49",X"26",X"14",X"28", + X"09",X"FC",X"1A",X"20",X"49",X"27",X"2A",X"20",X"49",X"7C",X"FF",X"29",X"3C",X"49",X"0F",X"1D", + X"10",X"48",X"7E",X"2D",X"10",X"08",X"DA",X"1D",X"40",X"49",X"13",X"25",X"2A",X"09",X"DC",X"FF", + X"2B",X"2B",X"49",X"0F",X"1C",X"10",X"48",X"14",X"2C",X"10",X"49",X"15",X"1C",X"2C",X"49",X"16", + X"28",X"20",X"09",X"DE",X"FF",X"27",X"40",X"49",X"0F",X"23",X"10",X"08",X"E0",X"33",X"10",X"09", + X"E2",X"25",X"30",X"09",X"E4",X"35",X"38",X"49",X"17",X"45",X"38",X"49",X"18",X"FF",X"1C",X"08", + X"08",X"E6",X"1C",X"28",X"49",X"19",X"2C",X"10",X"49",X"DC",X"3C",X"30",X"49",X"1A",X"4B",X"30", + X"49",X"1B",X"FF",X"2A",X"2B",X"49",X"0F",X"1F",X"10",X"48",X"1C",X"2F",X"10",X"09",X"E8",X"26", + X"20",X"49",X"1D",X"3E",X"20",X"49",X"1E",X"4E",X"20",X"49",X"1F",X"FF",X"18",X"38",X"09",X"EA", + X"18",X"30",X"48",X"20",X"25",X"10",X"08",X"EC",X"28",X"28",X"09",X"EE",X"28",X"48",X"49",X"21", + X"2B",X"3C",X"47",X"0C",X"FF",X"0F",X"48",X"09",X"F0",X"17",X"38",X"49",X"22",X"27",X"10",X"08", + X"F2",X"27",X"2E",X"09",X"F4",X"2D",X"2B",X"47",X"07",X"FF",X"12",X"3F",X"09",X"F6",X"16",X"38", + X"49",X"23",X"26",X"30",X"09",X"F8",X"28",X"28",X"49",X"24",X"25",X"10",X"08",X"FA",X"2C",X"0E", + X"47",X"0C",X"FF",X"20",X"10",X"48",X"25",X"30",X"10",X"49",X"26",X"14",X"28",X"09",X"FC",X"1A", + X"20",X"49",X"27",X"28",X"20",X"09",X"FE",X"2D",X"2B",X"47",X"0C",X"FF",X"20",X"10",X"48",X"25", + X"30",X"10",X"49",X"26",X"14",X"28",X"09",X"FC",X"1A",X"20",X"49",X"27",X"2A",X"20",X"09",X"60", + X"33",X"0D",X"47",X"0C",X"FF",X"26",X"10",X"09",X"62",X"30",X"18",X"09",X"64",X"20",X"30",X"08", + X"66",X"2C",X"38",X"09",X"68",X"FF",X"17",X"28",X"09",X"6A",X"1F",X"18",X"49",X"E0",X"2F",X"10", + X"49",X"E4",X"FF",X"20",X"11",X"08",X"6C",X"1F",X"31",X"49",X"28",X"22",X"41",X"49",X"29",X"2F", + X"15",X"09",X"6E",X"2F",X"35",X"49",X"2A",X"FF",X"17",X"22",X"09",X"6A",X"1F",X"12",X"49",X"E0", + X"2F",X"0A",X"49",X"E4",X"FF",X"7D",X"6E",X"92",X"6E",X"A3",X"6E",X"92",X"6E",X"B8",X"6E",X"CD", + X"6E",X"7D",X"6E",X"EA",X"6E",X"FF",X"6E",X"7D",X"6E",X"18",X"6F",X"31",X"6F",X"28",X"48",X"8E", + X"20",X"29",X"30",X"8F",X"22",X"2B",X"38",X"8E",X"01",X"21",X"10",X"8F",X"24",X"31",X"10",X"8F", + X"26",X"FF",X"28",X"48",X"8E",X"28",X"28",X"30",X"90",X"2A",X"28",X"10",X"8F",X"2C",X"18",X"10", + X"8F",X"02",X"FF",X"28",X"48",X"8E",X"2E",X"28",X"38",X"8E",X"03",X"2B",X"30",X"8F",X"04",X"21", + X"10",X"8F",X"30",X"31",X"10",X"8F",X"32",X"FF",X"2C",X"40",X"8E",X"34",X"26",X"30",X"8E",X"36", + X"28",X"30",X"8F",X"05",X"1D",X"10",X"8F",X"38",X"2D",X"10",X"8F",X"3A",X"FF",X"2B",X"50",X"8E", + X"06",X"23",X"30",X"8E",X"3C",X"32",X"40",X"8E",X"07",X"3F",X"40",X"8E",X"08",X"29",X"30",X"8F", + X"0A",X"1B",X"10",X"8F",X"3E",X"2B",X"10",X"8F",X"40",X"FF",X"29",X"40",X"8E",X"42",X"24",X"30", + X"8E",X"44",X"27",X"30",X"8F",X"09",X"1C",X"10",X"8F",X"46",X"2C",X"10",X"8F",X"48",X"FF",X"29", + X"40",X"8E",X"4A",X"23",X"30",X"8E",X"4C",X"21",X"10",X"8F",X"4E",X"29",X"20",X"8F",X"50",X"39", + X"30",X"8F",X"0B",X"49",X"31",X"8F",X"0C",X"FF",X"2B",X"45",X"8E",X"52",X"23",X"33",X"90",X"54", + X"2C",X"2E",X"90",X"56",X"25",X"2D",X"8F",X"0D",X"2C",X"0E",X"8F",X"58",X"3C",X"15",X"8F",X"5A", + X"FF",X"2B",X"3C",X"8E",X"5C",X"29",X"1D",X"8F",X"5E",X"1B",X"1C",X"4E",X"A6",X"39",X"0C",X"4F", + X"AA",X"47",X"1C",X"8F",X"80",X"2B",X"4C",X"8F",X"0F",X"29",X"2D",X"8E",X"0E",X"FF",X"68",X"6F", + X"7D",X"6F",X"92",X"6F",X"7D",X"6F",X"FB",X"6F",X"0C",X"70",X"EE",X"6F",X"1D",X"70",X"32",X"70", + X"C0",X"6F",X"D9",X"6F",X"92",X"6F",X"AB",X"6F",X"1D",X"48",X"83",X"E8",X"28",X"40",X"87",X"15", + X"21",X"10",X"53",X"9C",X"31",X"20",X"93",X"9A",X"31",X"10",X"94",X"9C",X"FF",X"1D",X"48",X"83", + X"E8",X"28",X"40",X"87",X"15",X"1F",X"30",X"93",X"9E",X"2F",X"20",X"93",X"A0",X"27",X"10",X"94", + X"A2",X"FF",X"1D",X"48",X"83",X"E8",X"28",X"40",X"87",X"15",X"21",X"30",X"93",X"A4",X"31",X"20", + X"93",X"A6",X"26",X"10",X"94",X"A8",X"36",X"10",X"94",X"16",X"FF",X"29",X"3F",X"87",X"15",X"24", + X"30",X"93",X"18",X"33",X"31",X"93",X"17",X"24",X"10",X"94",X"AA",X"34",X"10",X"94",X"AC",X"FF", + X"13",X"28",X"83",X"E9",X"2A",X"37",X"87",X"15",X"20",X"29",X"93",X"19",X"30",X"19",X"93",X"AE", + X"25",X"10",X"94",X"B0",X"35",X"10",X"94",X"1A",X"FF",X"2A",X"37",X"87",X"15",X"24",X"28",X"93", + X"1B",X"34",X"18",X"93",X"B2",X"23",X"10",X"94",X"B4",X"33",X"10",X"94",X"B6",X"FF",X"28",X"2B", + X"93",X"B8",X"28",X"28",X"93",X"1C",X"28",X"10",X"94",X"BA",X"FF",X"28",X"3E",X"87",X"1D",X"24", + X"1E",X"93",X"BC",X"28",X"10",X"94",X"BE",X"31",X"0B",X"93",X"1E",X"FF",X"2B",X"3B",X"87",X"1F", + X"21",X"28",X"93",X"C0",X"31",X"2B",X"93",X"C2",X"24",X"10",X"94",X"C4",X"FF",X"26",X"35",X"87", + X"E0",X"20",X"19",X"93",X"C6",X"30",X"29",X"93",X"E1",X"2B",X"13",X"94",X"C8",X"3B",X"10",X"94", + X"CA",X"FF",X"18",X"2A",X"87",X"E2",X"20",X"14",X"93",X"CC",X"2C",X"31",X"93",X"CE",X"2C",X"13", + X"94",X"D0",X"3C",X"10",X"94",X"D2",X"FF",X"BB",X"70",X"AA",X"70",X"95",X"70",X"AA",X"70",X"D0", + X"70",X"E9",X"70",X"02",X"71",X"1B",X"71",X"BB",X"71",X"D0",X"71",X"E5",X"71",X"8B",X"71",X"70", + X"71",X"79",X"71",X"82",X"71",X"0D",X"75",X"12",X"75",X"1B",X"75",X"2D",X"75",X"82",X"71",X"79", + X"71",X"70",X"71",X"8B",X"71",X"94",X"71",X"A1",X"71",X"AE",X"71",X"34",X"71",X"49",X"71",X"56", + X"71",X"63",X"71",X"0D",X"75",X"12",X"75",X"1B",X"75",X"2D",X"75",X"63",X"71",X"56",X"71",X"49", + X"71",X"34",X"71",X"BE",X"66",X"26",X"38",X"D6",X"00",X"1E",X"20",X"D7",X"20",X"2E",X"20",X"D7", + X"22",X"1E",X"10",X"D6",X"02",X"2E",X"10",X"D6",X"03",X"FF",X"26",X"38",X"D6",X"00",X"1D",X"20", + X"D7",X"24",X"2D",X"20",X"D7",X"26",X"21",X"10",X"D6",X"01",X"FF",X"26",X"38",X"D6",X"00",X"1E", + X"20",X"D7",X"20",X"2E",X"20",X"D7",X"22",X"1E",X"10",X"D6",X"28",X"2E",X"10",X"D6",X"2A",X"FF", + X"2C",X"38",X"D6",X"00",X"24",X"20",X"D7",X"2C",X"2B",X"30",X"D6",X"2E",X"34",X"20",X"D6",X"05", + X"1C",X"10",X"D6",X"0A",X"2C",X"10",X"D6",X"07",X"FF",X"2E",X"38",X"D6",X"00",X"23",X"20",X"D7", + X"30",X"2F",X"20",X"D7",X"32",X"3F",X"30",X"D6",X"09",X"1C",X"10",X"D6",X"0A",X"2C",X"10",X"D6", + X"07",X"FF",X"2E",X"38",X"D6",X"00",X"23",X"20",X"D7",X"30",X"2F",X"20",X"D7",X"34",X"3F",X"28", + X"D6",X"09",X"1C",X"10",X"D6",X"0A",X"2C",X"10",X"D6",X"07",X"FF",X"2E",X"38",X"D6",X"00",X"23", + X"20",X"D7",X"30",X"2F",X"20",X"D7",X"36",X"3F",X"20",X"D6",X"0C",X"1C",X"10",X"D6",X"0A",X"2C", + X"10",X"D6",X"07",X"FF",X"28",X"38",X"D6",X"00",X"22",X"20",X"D7",X"38",X"2E",X"32",X"D6",X"14", + X"2E",X"22",X"D7",X"15",X"26",X"10",X"D6",X"13",X"FF",X"1E",X"28",X"D8",X"3A",X"2E",X"28",X"D8", + X"3C",X"24",X"10",X"D8",X"3E",X"FF",X"1E",X"28",X"D8",X"40",X"2E",X"28",X"D8",X"42",X"24",X"10", + X"D8",X"44",X"FF",X"1E",X"28",X"D8",X"46",X"2E",X"28",X"D8",X"48",X"24",X"10",X"D8",X"4A",X"FF", + X"22",X"30",X"D8",X"16",X"22",X"10",X"D8",X"4C",X"FF",X"22",X"30",X"D8",X"17",X"22",X"10",X"D8", + X"4E",X"FF",X"22",X"30",X"D8",X"18",X"22",X"10",X"D8",X"50",X"FF",X"22",X"20",X"D7",X"52",X"22", + X"10",X"D6",X"19",X"FF",X"25",X"31",X"D6",X"1A",X"22",X"20",X"D7",X"52",X"22",X"10",X"D6",X"19", + X"FF",X"27",X"34",X"D6",X"00",X"22",X"20",X"D7",X"52",X"22",X"10",X"D6",X"19",X"FF",X"28",X"38", + X"D6",X"00",X"22",X"20",X"D7",X"52",X"22",X"10",X"D6",X"19",X"FF",X"27",X"38",X"D6",X"1B",X"23", + X"20",X"D7",X"54",X"33",X"20",X"D7",X"1C",X"29",X"10",X"D6",X"1D",X"2A",X"27",X"D8",X"1E",X"FF", + X"23",X"30",X"D6",X"1F",X"1C",X"18",X"D7",X"56",X"29",X"15",X"D7",X"58",X"39",X"10",X"D6",X"5A", + X"39",X"28",X"D6",X"60",X"FF",X"1E",X"27",X"D6",X"61",X"20",X"16",X"D7",X"5C",X"30",X"13",X"D7", + X"5E",X"3E",X"10",X"D6",X"80",X"2E",X"30",X"D6",X"62",X"FF",X"38",X"72",X"4D",X"72",X"5A",X"72", + X"4D",X"72",X"6B",X"72",X"80",X"72",X"6B",X"72",X"C3",X"72",X"D8",X"72",X"C3",X"72",X"6B",X"72", + X"6B",X"72",X"95",X"72",X"AA",X"72",X"95",X"72",X"6B",X"72",X"ED",X"72",X"FE",X"72",X"13",X"73", + X"FE",X"72",X"ED",X"72",X"46",X"73",X"57",X"73",X"2C",X"73",X"39",X"73",X"8A",X"73",X"68",X"73", + X"75",X"73",X"9B",X"73",X"AC",X"73",X"BD",X"73",X"26",X"47",X"D9",X"68",X"24",X"30",X"D9",X"82", + X"2C",X"27",X"D9",X"69",X"20",X"10",X"DA",X"84",X"30",X"10",X"DA",X"86",X"FF",X"26",X"48",X"D9", + X"04",X"26",X"28",X"D9",X"88",X"26",X"10",X"DA",X"8A",X"FF",X"26",X"47",X"D9",X"04",X"26",X"27", + X"D9",X"8C",X"1D",X"10",X"DA",X"8E",X"2D",X"10",X"DA",X"90",X"FF",X"25",X"45",X"D9",X"06",X"24", + X"26",X"D9",X"92",X"34",X"30",X"D9",X"94",X"21",X"10",X"DA",X"96",X"31",X"10",X"DA",X"98",X"FF", + X"25",X"47",X"D9",X"06",X"24",X"28",X"D9",X"9A",X"24",X"10",X"DA",X"9E",X"34",X"10",X"DA",X"0B", + X"34",X"3A",X"D9",X"9C",X"FF",X"23",X"47",X"D9",X"04",X"22",X"27",X"D9",X"A0",X"32",X"36",X"D9", + X"67",X"1C",X"10",X"DA",X"A2",X"2C",X"1E",X"DA",X"A4",X"FF",X"1D",X"48",X"D9",X"06",X"1C",X"28", + X"D9",X"A6",X"2C",X"28",X"D9",X"A8",X"3A",X"3C",X"DA",X"6A",X"4A",X"3C",X"DA",X"6B",X"1F",X"10", + X"DA",X"AA",X"FF",X"25",X"46",X"D9",X"04",X"24",X"26",X"D9",X"AC",X"34",X"38",X"D9",X"6C",X"25", + X"10",X"DA",X"AE",X"35",X"10",X"DA",X"6D",X"FF",X"28",X"47",X"D9",X"04",X"26",X"27",X"D9",X"B0", + X"36",X"38",X"D9",X"6E",X"21",X"10",X"DA",X"B2",X"31",X"10",X"DA",X"B4",X"FF",X"1C",X"20",X"D9", + X"B6",X"2C",X"20",X"D9",X"B8",X"1C",X"10",X"DA",X"6F",X"2C",X"10",X"DA",X"70",X"FF",X"2A",X"30", + X"D9",X"71",X"20",X"1C",X"D9",X"BA",X"30",X"1A",X"D9",X"BC",X"1F",X"10",X"DA",X"72",X"33",X"10", + X"DA",X"73",X"FF",X"25",X"2C",X"D9",X"74",X"1F",X"10",X"D9",X"BE",X"2F",X"10",X"D9",X"C0",X"1D", + X"10",X"DA",X"75",X"3D",X"10",X"DA",X"76",X"4D",X"10",X"DA",X"6D",X"FF",X"29",X"50",X"D9",X"68", + X"25",X"30",X"D9",X"C2",X"25",X"10",X"DA",X"C4",X"FF",X"28",X"44",X"D9",X"77",X"22",X"24",X"D9", + X"C6",X"24",X"14",X"DA",X"C8",X"FF",X"26",X"30",X"D9",X"CA",X"2D",X"33",X"D9",X"CC",X"1F",X"10", + X"DA",X"CE",X"2F",X"10",X"DA",X"D0",X"FF",X"26",X"31",X"D9",X"D2",X"25",X"28",X"D9",X"78",X"1D", + X"10",X"DA",X"79",X"27",X"10",X"DA",X"D4",X"FF",X"29",X"30",X"D9",X"D6",X"19",X"27",X"D9",X"D8", + X"26",X"10",X"DA",X"DA",X"FF",X"23",X"33",X"D9",X"DC",X"23",X"23",X"D9",X"7A",X"27",X"10",X"DA", + X"DE",X"37",X"10",X"DA",X"7C",X"33",X"3E",X"DA",X"7B",X"FF",X"2B",X"30",X"D9",X"E0",X"20",X"28", + X"D9",X"E2",X"25",X"10",X"DA",X"E4",X"31",X"0C",X"DA",X"7D",X"FF",X"28",X"29",X"D9",X"E6",X"23", + X"23",X"D9",X"E8",X"2E",X"10",X"DA",X"EA",X"3E",X"10",X"DA",X"7E",X"FF",X"1D",X"1B",X"D9",X"EC", + X"18",X"10",X"D9",X"7F",X"28",X"10",X"D9",X"EE",X"38",X"11",X"DA",X"F0",X"FF",X"24",X"3A",X"99", + X"66",X"22",X"28",X"99",X"68",X"26",X"0F",X"9A",X"6A",X"32",X"2F",X"9A",X"6E",X"42",X"2F",X"9A", + X"70",X"FF",X"DC",X"73",X"E1",X"73",X"E6",X"73",X"EB",X"73",X"DC",X"73",X"28",X"10",X"D6",X"63", + X"FF",X"28",X"10",X"D6",X"64",X"FF",X"28",X"10",X"D6",X"65",X"FF",X"28",X"10",X"D6",X"66",X"FF", + X"00",X"74",X"0D",X"74",X"1A",X"74",X"0D",X"74",X"27",X"74",X"38",X"74",X"4D",X"74",X"7F",X"74", + X"28",X"3B",X"1B",X"39",X"27",X"2B",X"1C",X"3A",X"28",X"10",X"9C",X"60",X"FF",X"28",X"3C",X"1B", + X"39",X"28",X"2C",X"9C",X"FA",X"28",X"10",X"9C",X"62",X"FF",X"28",X"3C",X"9B",X"FD",X"29",X"2C", + X"9C",X"FE",X"27",X"10",X"9C",X"64",X"FF",X"1F",X"32",X"1B",X"2F",X"1E",X"1A",X"1C",X"5E",X"25", + X"0E",X"9C",X"DC",X"1E",X"26",X"1D",X"20",X"FF",X"23",X"32",X"1B",X"38",X"1F",X"1A",X"9C",X"DE", + X"25",X"0E",X"1C",X"5A",X"23",X"2E",X"9D",X"F9",X"1C",X"23",X"1D",X"1E",X"FF",X"23",X"32",X"1B", + X"38",X"1F",X"1A",X"9C",X"DE",X"25",X"0E",X"1C",X"5A",X"17",X"20",X"1D",X"0C",X"27",X"20",X"1D", + X"18",X"29",X"2B",X"9D",X"FF",X"FF",X"23",X"38",X"1B",X"23",X"25",X"30",X"1C",X"30",X"1E",X"10", + X"9C",X"74",X"25",X"40",X"80",X"76",X"25",X"30",X"81",X"78",X"2B",X"10",X"82",X"7A",X"FF",X"28", + X"04",X"9D",X"6C",X"FF",X"2B",X"0A",X"47",X"0C",X"FF",X"2B",X"0A",X"4B",X"0C",X"FF",X"CC",X"74", + X"D1",X"74",X"D6",X"74",X"DB",X"74",X"CC",X"74",X"E0",X"74",X"E9",X"74",X"F2",X"74",X"FF",X"74", + X"04",X"75",X"61",X"75",X"6A",X"75",X"73",X"75",X"0D",X"75",X"12",X"75",X"1B",X"75",X"20",X"75", + X"43",X"75",X"4C",X"75",X"43",X"75",X"78",X"75",X"7D",X"75",X"32",X"75",X"20",X"75",X"2D",X"75", + X"82",X"75",X"87",X"75",X"8C",X"75",X"91",X"75",X"96",X"75",X"9B",X"75",X"28",X"10",X"0A",X"70", + X"FF",X"28",X"10",X"4D",X"35",X"FF",X"28",X"10",X"4B",X"3A",X"FF",X"28",X"10",X"4B",X"3C",X"FF", + X"20",X"10",X"4A",X"2C",X"30",X"10",X"4A",X"2D",X"FF",X"20",X"10",X"4A",X"2E",X"30",X"10",X"4A", + X"2F",X"FF",X"28",X"10",X"4B",X"32",X"20",X"10",X"4A",X"30",X"30",X"10",X"4A",X"31",X"FF",X"28", + X"10",X"4B",X"32",X"FF",X"21",X"10",X"4B",X"33",X"31",X"10",X"4B",X"34",X"FF",X"28",X"10",X"0C", + X"72",X"FF",X"28",X"10",X"0C",X"74",X"28",X"30",X"4C",X"36",X"FF",X"28",X"10",X"4C",X"EC",X"FF", + X"26",X"17",X"4C",X"F0",X"36",X"2F",X"0C",X"76",X"28",X"0F",X"4C",X"E8",X"FF",X"28",X"0F",X"4C", + X"E8",X"FF",X"26",X"17",X"4C",X"F0",X"36",X"2F",X"0C",X"76",X"21",X"35",X"0C",X"78",X"31",X"35", + X"0C",X"7A",X"FF",X"26",X"17",X"4C",X"F0",X"36",X"2F",X"0C",X"76",X"FF",X"26",X"17",X"4C",X"F0", + X"36",X"2F",X"0C",X"76",X"38",X"3F",X"4C",X"37",X"48",X"3F",X"4C",X"38",X"58",X"3F",X"4C",X"39", + X"FF",X"20",X"08",X"0C",X"78",X"30",X"08",X"0C",X"7A",X"FF",X"20",X"08",X"0C",X"7C",X"30",X"08", + X"0C",X"7E",X"FF",X"28",X"08",X"0C",X"40",X"FF",X"2B",X"0D",X"4B",X"3B",X"FF",X"2B",X"0D",X"4B", + X"3D",X"FF",X"2C",X"0E",X"D8",X"0D",X"FF",X"2C",X"0E",X"D8",X"0E",X"FF",X"2C",X"0D",X"D8",X"0F", + X"FF",X"2C",X"0D",X"D8",X"10",X"FF",X"28",X"10",X"D8",X"11",X"FF",X"28",X"10",X"D8",X"12",X"FF", + X"24",X"09",X"01",X"01",X"FF",X"B1",X"75",X"B6",X"75",X"BB",X"75",X"B6",X"75",X"B1",X"75",X"BB", + X"75",X"28",X"10",X"83",X"E3",X"FF",X"28",X"10",X"83",X"E4",X"FF",X"28",X"10",X"83",X"E5",X"FF", + X"D4",X"75",X"D9",X"75",X"DE",X"75",X"E3",X"75",X"E8",X"75",X"ED",X"75",X"F2",X"75",X"61",X"75", + X"6A",X"75",X"73",X"75",X"28",X"10",X"95",X"D4",X"FF",X"28",X"10",X"95",X"E6",X"FF",X"28",X"10", + X"95",X"D6",X"FF",X"28",X"10",X"95",X"D8",X"FF",X"28",X"03",X"95",X"D6",X"FF",X"28",X"03",X"95", + X"D8",X"FF",X"28",X"10",X"95",X"E7",X"FF",X"11",X"76",X"16",X"76",X"1B",X"76",X"20",X"76",X"25", + X"76",X"2A",X"76",X"2F",X"76",X"34",X"76",X"3D",X"76",X"46",X"76",X"4F",X"76",X"58",X"76",X"61", + X"76",X"28",X"10",X"8C",X"F0",X"FF",X"28",X"10",X"8C",X"F1",X"FF",X"27",X"10",X"8C",X"F2",X"FF", + X"28",X"10",X"8C",X"F3",X"FF",X"28",X"10",X"8C",X"F4",X"FF",X"28",X"10",X"8C",X"F5",X"FF",X"28", + X"10",X"8C",X"F6",X"FF",X"24",X"10",X"8C",X"F8",X"2A",X"10",X"8C",X"F7",X"FF",X"25",X"10",X"8C", + X"F0",X"2A",X"10",X"8C",X"F7",X"FF",X"25",X"10",X"8C",X"F1",X"2A",X"10",X"8C",X"F7",X"FF",X"25", + X"10",X"8C",X"F3",X"2A",X"10",X"8C",X"F7",X"FF",X"21",X"10",X"8C",X"F8",X"2C",X"10",X"8C",X"F7", + X"FF",X"28",X"10",X"8C",X"F8",X"FF",X"3E",X"FF",X"32",X"00",X"E0",X"FB",X"CD",X"0D",X"57",X"CD", + X"57",X"11",X"F3",X"DD",X"21",X"00",X"00",X"06",X"00",X"3E",X"00",X"5F",X"16",X"0D",X"0E",X"10", + X"21",X"00",X"E0",X"77",X"23",X"3C",X"15",X"20",X"03",X"16",X"0D",X"3C",X"10",X"F5",X"0D",X"20", + X"F2",X"7B",X"21",X"00",X"E0",X"16",X"0D",X"0E",X"10",X"BE",X"C2",X"F6",X"77",X"23",X"3C",X"15", + X"20",X"03",X"16",X"0D",X"3C",X"10",X"F2",X"0D",X"20",X"EF",X"7B",X"3C",X"FE",X"14",X"20",X"CB", + X"3E",X"00",X"5F",X"16",X"0D",X"0E",X"10",X"21",X"00",X"D0",X"77",X"23",X"3C",X"15",X"20",X"03", + X"16",X"0D",X"3C",X"10",X"F5",X"0D",X"20",X"F2",X"7B",X"21",X"00",X"D0",X"16",X"0D",X"0E",X"10", + X"BE",X"C2",X"BD",X"77",X"23",X"3C",X"15",X"20",X"03",X"16",X"0D",X"3C",X"10",X"F2",X"0D",X"20", + X"EF",X"7B",X"3C",X"FE",X"14",X"20",X"CB",X"CD",X"57",X"11",X"21",X"00",X"E0",X"11",X"01",X"E0", + X"01",X"FF",X"0F",X"36",X"00",X"ED",X"B0",X"21",X"25",X"EB",X"22",X"03",X"EB",X"3E",X"FF",X"32", + X"00",X"E0",X"11",X"00",X"00",X"CD",X"10",X"7C",X"ED",X"4B",X"6A",X"00",X"AF",X"ED",X"42",X"28", + X"01",X"3C",X"CD",X"10",X"7C",X"ED",X"4B",X"6C",X"00",X"ED",X"42",X"28",X"02",X"CB",X"CF",X"F5", + X"47",X"0E",X"14",X"11",X"D5",X"D1",X"3E",X"31",X"CD",X"F7",X"7B",X"11",X"55",X"D2",X"3E",X"32", + X"CD",X"F7",X"7B",X"DD",X"E5",X"E1",X"7D",X"B4",X"11",X"55",X"D1",X"21",X"89",X"78",X"20",X"03", + X"21",X"91",X"78",X"CD",X"1C",X"11",X"FB",X"3E",X"70",X"CD",X"0F",X"57",X"78",X"A7",X"C4",X"E8", + X"7B",X"CD",X"57",X"11",X"21",X"F7",X"7C",X"CD",X"1C",X"11",X"AF",X"32",X"82",X"E8",X"3A",X"1D", + X"E8",X"32",X"1D",X"E8",X"0E",X"00",X"CD",X"D7",X"7B",X"3A",X"06",X"E9",X"E6",X"03",X"21",X"82", + X"E8",X"28",X"25",X"47",X"7E",X"A7",X"20",X"22",X"36",X"10",X"0E",X"14",X"3A",X"1D",X"E8",X"F5", + X"CD",X"D7",X"7B",X"F1",X"CB",X"48",X"20",X"08",X"3D",X"F2",X"61",X"77",X"3E",X"05",X"18",X"D1", + X"3C",X"FE",X"06",X"38",X"CC",X"AF",X"18",X"C9",X"36",X"00",X"3A",X"04",X"E9",X"CB",X"47",X"28", + X"C8",X"CD",X"57",X"11",X"21",X"51",X"77",X"E5",X"3A",X"1D",X"E8",X"21",X"B1",X"77",X"C3",X"26", + X"1F",X"99",X"78",X"3E",X"79",X"BA",X"79",X"8B",X"7A",X"10",X"7B",X"78",X"7B",X"08",X"D9",X"11", + X"00",X"E0",X"21",X"55",X"D1",X"01",X"20",X"00",X"ED",X"B0",X"11",X"20",X"E0",X"21",X"55",X"D9", + X"01",X"20",X"00",X"ED",X"B0",X"DD",X"21",X"DB",X"77",X"18",X"21",X"D9",X"21",X"00",X"E0",X"11", + X"55",X"D1",X"01",X"20",X"00",X"ED",X"B0",X"21",X"20",X"E0",X"11",X"55",X"D9",X"01",X"20",X"00", + X"ED",X"B0",X"D9",X"C3",X"D4",X"76",X"DD",X"21",X"9D",X"76",X"08",X"D9",X"21",X"55",X"D1",X"11", + X"89",X"78",X"06",X"07",X"1A",X"13",X"FD",X"21",X"0C",X"78",X"18",X"73",X"10",X"F6",X"3E",X"3A", + X"FD",X"21",X"16",X"78",X"18",X"69",X"D9",X"7C",X"D9",X"FD",X"21",X"1F",X"78",X"18",X"42",X"D9", + X"7D",X"D9",X"FD",X"21",X"28",X"78",X"18",X"39",X"3E",X"3A",X"FD",X"21",X"30",X"78",X"18",X"4F", + X"08",X"5F",X"08",X"7B",X"FD",X"21",X"3A",X"78",X"18",X"27",X"23",X"D9",X"7E",X"D9",X"FD",X"21", + X"44",X"78",X"18",X"1D",X"DB",X"00",X"CB",X"47",X"CA",X"E7",X"76",X"CB",X"4F",X"20",X"F5",X"01", + X"00",X"10",X"0B",X"79",X"B0",X"20",X"FB",X"DB",X"00",X"CB",X"4F",X"28",X"FA",X"D9",X"08",X"DD", + X"E9",X"5F",X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"C6",X"90",X"27",X"CE",X"40",X"27",X"77",X"CB", + X"DC",X"36",X"14",X"CB",X"9C",X"23",X"7B",X"E6",X"0F",X"C6",X"90",X"27",X"CE",X"40",X"27",X"77", + X"CB",X"DC",X"36",X"14",X"CB",X"9C",X"23",X"FD",X"E9",X"52",X"41",X"4D",X"20",X"20",X"4E",X"47", + X"FF",X"52",X"41",X"4D",X"20",X"20",X"4F",X"4B",X"FF",X"21",X"30",X"7C",X"CD",X"1C",X"11",X"CD", + X"C1",X"7B",X"CD",X"1C",X"11",X"11",X"99",X"D1",X"DB",X"03",X"CD",X"B2",X"7B",X"11",X"D9",X"D1", + X"DB",X"04",X"CD",X"B2",X"7B",X"DB",X"04",X"CB",X"4F",X"21",X"96",X"7C",X"20",X"03",X"21",X"9E", + X"7C",X"11",X"5D",X"D3",X"CD",X"1C",X"11",X"DB",X"03",X"E6",X"01",X"21",X"A6",X"7C",X"20",X"03", + X"21",X"B0",X"7C",X"11",X"9E",X"D3",X"CD",X"1C",X"11",X"DB",X"03",X"E6",X"02",X"21",X"BA",X"7C", + X"20",X"03",X"21",X"BF",X"7C",X"11",X"DE",X"D3",X"CD",X"1C",X"11",X"CD",X"6F",X"05",X"11",X"1F", + X"D4",X"CD",X"08",X"11",X"CD",X"8F",X"05",X"41",X"11",X"9A",X"D2",X"2A",X"0A",X"E9",X"7D",X"A7", + X"28",X"28",X"BC",X"F5",X"3E",X"20",X"28",X"02",X"3E",X"41",X"CD",X"10",X"11",X"CD",X"F7",X"49", + X"F1",X"11",X"D0",X"D2",X"28",X"1D",X"E5",X"21",X"8C",X"7C",X"CD",X"1C",X"11",X"13",X"3E",X"42", + X"CD",X"10",X"11",X"E1",X"6C",X"CD",X"F7",X"49",X"18",X"0C",X"21",X"C4",X"7C",X"CD",X"1C",X"11", + X"11",X"D0",X"D2",X"CD",X"1A",X"57",X"DB",X"00",X"CB",X"4F",X"C2",X"A5",X"78",X"C9",X"01",X"14", + X"03",X"11",X"55",X"D4",X"C5",X"21",X"D8",X"7C",X"CD",X"1C",X"11",X"E5",X"13",X"78",X"CD",X"08", + X"11",X"CD",X"C1",X"7B",X"21",X"2C",X"00",X"19",X"EB",X"E1",X"CD",X"1C",X"11",X"21",X"B6",X"FE", + X"19",X"EB",X"C1",X"10",X"DF",X"21",X"EC",X"7C",X"CD",X"1C",X"11",X"21",X"99",X"99",X"22",X"03", + X"E0",X"3E",X"38",X"32",X"82",X"E8",X"21",X"03",X"E0",X"7E",X"C6",X"01",X"27",X"77",X"23",X"7E", + X"CE",X"00",X"27",X"77",X"11",X"62",X"D5",X"CD",X"FD",X"10",X"CD",X"FD",X"10",X"DB",X"00",X"11", + X"A2",X"D2",X"CD",X"B2",X"7B",X"DB",X"01",X"11",X"A2",X"D3",X"CD",X"B2",X"7B",X"DB",X"02",X"11", + X"A2",X"D4",X"CD",X"B2",X"7B",X"3A",X"82",X"E8",X"A7",X"28",X"C6",X"3A",X"04",X"E9",X"CB",X"4F", + X"28",X"DB",X"3A",X"06",X"E9",X"CB",X"4F",X"28",X"D4",X"C9",X"AF",X"32",X"82",X"E8",X"F5",X"21", + X"61",X"7A",X"5F",X"16",X"00",X"19",X"19",X"3A",X"04",X"E9",X"CB",X"47",X"20",X"F9",X"7E",X"32", + X"83",X"E8",X"32",X"1F",X"E8",X"23",X"3E",X"00",X"CD",X"FE",X"0D",X"7E",X"CD",X"FE",X"0D",X"21", + X"56",X"7D",X"CD",X"1C",X"11",X"F1",X"32",X"1E",X"E8",X"0E",X"00",X"CD",X"CE",X"7B",X"3A",X"06", + X"E9",X"E6",X"03",X"21",X"82",X"E8",X"28",X"2E",X"47",X"7E",X"A7",X"20",X"F1",X"3E",X"00",X"CD", + X"FE",X"0D",X"AF",X"32",X"1F",X"E8",X"36",X"10",X"0E",X"14",X"3A",X"1E",X"E8",X"F5",X"CD",X"CE", + X"7B",X"F1",X"CB",X"48",X"20",X"08",X"3D",X"F2",X"E6",X"79",X"3E",X"14",X"18",X"C8",X"3C",X"FE", + X"15",X"38",X"C3",X"AF",X"18",X"C0",X"36",X"00",X"3A",X"1F",X"E8",X"A7",X"28",X"12",X"47",X"3A", + X"83",X"E8",X"A7",X"28",X"11",X"3A",X"04",X"E9",X"E6",X"03",X"28",X"B2",X"CB",X"4F",X"20",X"1B", + X"3A",X"1E",X"E8",X"C3",X"BE",X"79",X"78",X"FE",X"BA",X"32",X"83",X"E8",X"3E",X"01",X"32",X"1F", + X"E8",X"30",X"9B",X"3A",X"1E",X"E8",X"3C",X"FE",X"15",X"38",X"E8",X"3E",X"00",X"CD",X"FE",X"0D", + X"C9",X"2D",X"01",X"2D",X"02",X"2D",X"03",X"B4",X"05",X"9E",X"04",X"2D",X"06",X"2D",X"07",X"2D", + X"10",X"2D",X"11",X"2D",X"12",X"2D",X"13",X"2D",X"14",X"2D",X"15",X"2D",X"16",X"BA",X"20",X"FF", + X"24",X"BA",X"22",X"FF",X"23",X"BA",X"21",X"2D",X"17",X"2D",X"18",X"CD",X"53",X"11",X"21",X"00", + X"E0",X"36",X"FE",X"3A",X"06",X"E9",X"E6",X"03",X"28",X"0A",X"CB",X"4F",X"28",X"04",X"36",X"FD", + X"18",X"02",X"36",X"FE",X"3A",X"04",X"E9",X"CB",X"4F",X"28",X"E8",X"36",X"FF",X"C9",X"0E",X"00", + X"3C",X"20",X"32",X"21",X"10",X"01",X"11",X"E0",X"00",X"3E",X"00",X"CD",X"DC",X"7A",X"21",X"10", + X"01",X"11",X"20",X"01",X"3E",X"40",X"CD",X"DC",X"7A",X"21",X"D0",X"00",X"11",X"E0",X"00",X"3E", + X"80",X"CD",X"DC",X"7A",X"21",X"D0",X"00",X"11",X"20",X"01",X"3E",X"C0",X"22",X"07",X"E8",X"21", + X"DE",X"75",X"C3",X"20",X"0E",X"21",X"C0",X"00",X"22",X"07",X"E8",X"11",X"D0",X"00",X"21",X"9B", + X"66",X"CD",X"0C",X"7B",X"11",X"F0",X"00",X"21",X"6A",X"6C",X"CD",X"0C",X"7B",X"11",X"10",X"01", + X"21",X"7D",X"6E",X"CD",X"0C",X"7B",X"11",X"30",X"01",X"21",X"6B",X"72",X"AF",X"C3",X"20",X"0E", + X"11",X"D0",X"D1",X"0E",X"14",X"3E",X"41",X"06",X"1A",X"CD",X"C7",X"7B",X"11",X"10",X"D2",X"3E", + X"30",X"06",X"0A",X"CD",X"C7",X"7B",X"CD",X"E8",X"7B",X"3E",X"04",X"11",X"04",X"00",X"CD",X"5B", + X"11",X"CD",X"E8",X"7B",X"1E",X"01",X"CD",X"5B",X"11",X"CD",X"E8",X"7B",X"1E",X"02",X"CD",X"5B", + X"11",X"CD",X"E8",X"7B",X"01",X"00",X"02",X"1E",X"06",X"CD",X"5E",X"11",X"01",X"00",X"04",X"1E", + X"00",X"CD",X"65",X"11",X"01",X"00",X"02",X"1E",X"07",X"CD",X"65",X"11",X"21",X"10",X"D4",X"0E", + X"08",X"3E",X"00",X"06",X"04",X"77",X"23",X"10",X"FC",X"3C",X"E6",X"07",X"20",X"F5",X"11",X"20", + X"00",X"19",X"0D",X"20",X"EC",X"C3",X"E8",X"7B",X"0E",X"00",X"11",X"10",X"D0",X"3E",X"0B",X"2E", + X"20",X"E5",X"06",X"10",X"CD",X"10",X"11",X"3D",X"CD",X"10",X"11",X"3C",X"10",X"F6",X"21",X"20", + X"00",X"19",X"EB",X"FE",X"0B",X"3E",X"0B",X"20",X"02",X"3E",X"09",X"E1",X"2D",X"20",X"E2",X"21", + X"DF",X"D3",X"36",X"0C",X"23",X"36",X"0D",X"21",X"1F",X"D4",X"36",X"0E",X"23",X"36",X"0F",X"C3", + X"E8",X"7B",X"2F",X"6F",X"06",X"08",X"AF",X"CB",X"0D",X"CB",X"17",X"CD",X"08",X"11",X"10",X"F6", + X"C9",X"13",X"13",X"3E",X"31",X"06",X"08",X"CD",X"10",X"11",X"3C",X"10",X"FA",X"C9",X"FE",X"06", + X"38",X"01",X"3C",X"A7",X"28",X"01",X"3C",X"6F",X"26",X"00",X"29",X"29",X"29",X"29",X"29",X"29", + X"11",X"50",X"D9",X"19",X"71",X"23",X"71",X"C9",X"3A",X"04",X"E9",X"CB",X"4F",X"28",X"F9",X"3A", + X"04",X"E9",X"CB",X"4F",X"20",X"F9",X"C9",X"F5",X"21",X"2C",X"7C",X"CD",X"1C",X"11",X"F1",X"CD", + X"10",X"11",X"13",X"21",X"29",X"7C",X"CB",X"08",X"38",X"03",X"21",X"26",X"7C",X"C3",X"1C",X"11", + X"F5",X"01",X"00",X"40",X"21",X"00",X"00",X"1A",X"85",X"6F",X"3E",X"00",X"8C",X"67",X"13",X"0B", + X"79",X"B0",X"20",X"F3",X"F1",X"C9",X"4F",X"4B",X"FF",X"4E",X"47",X"FF",X"52",X"4F",X"4D",X"FF", + X"FE",X"14",X"FD",X"50",X"D1",X"44",X"49",X"50",X"20",X"53",X"57",X"20",X"FF",X"FD",X"94",X"D1", + X"44",X"53",X"57",X"31",X"FD",X"D4",X"D1",X"44",X"53",X"57",X"32",X"FD",X"A3",X"D1",X"31",X"2E", + X"4F",X"4E",X"FD",X"E3",X"D1",X"30",X"2E",X"4F",X"46",X"46",X"FD",X"50",X"D3",X"42",X"4F",X"44", + X"59",X"20",X"54",X"59",X"50",X"45",X"FD",X"90",X"D3",X"44",X"49",X"46",X"46",X"49",X"43",X"55", + X"4C",X"54",X"59",X"FD",X"D0",X"D3",X"44",X"45",X"43",X"52",X"45",X"41",X"53",X"45",X"FD",X"10", + X"D4",X"46",X"49",X"47",X"48",X"54",X"45",X"52",X"53",X"FD",X"90",X"D2",X"43",X"4F",X"49",X"4E", + X"20",X"4D",X"4F",X"44",X"45",X"FF",X"54",X"41",X"42",X"4C",X"45",X"20",X"20",X"FF",X"55",X"50", + X"52",X"49",X"47",X"48",X"54",X"FF",X"45",X"41",X"53",X"59",X"20",X"20",X"20",X"20",X"20",X"FF", + X"44",X"49",X"46",X"46",X"49",X"43",X"55",X"4C",X"54",X"FF",X"53",X"4C",X"4F",X"57",X"FF",X"46", + X"41",X"53",X"54",X"FF",X"20",X"20",X"20",X"20",X"20",X"46",X"52",X"45",X"45",X"20",X"20",X"20", + X"50",X"4C",X"41",X"59",X"20",X"20",X"20",X"FF",X"49",X"4E",X"54",X"45",X"52",X"46",X"41",X"43", + X"45",X"FF",X"52",X"45",X"41",X"44",X"20",X"44",X"41",X"54",X"41",X"FF",X"FD",X"57",X"D5",X"54", + X"49",X"4D",X"4D",X"49",X"4E",X"47",X"FF",X"FE",X"14",X"FD",X"50",X"D1",X"30",X"31",X"20",X"44", + X"49",X"50",X"20",X"53",X"57",X"49",X"54",X"43",X"48",X"FD",X"90",X"D1",X"30",X"32",X"20",X"49", + X"2F",X"4F",X"20",X"50",X"4F",X"52",X"54",X"FD",X"D0",X"D1",X"30",X"33",X"20",X"53",X"4F",X"55", + X"4E",X"44",X"FD",X"10",X"D2",X"30",X"34",X"20",X"43",X"48",X"41",X"52",X"41",X"43",X"54",X"45", + X"52",X"FD",X"50",X"D2",X"30",X"35",X"20",X"43",X"4F",X"4C",X"4F",X"52",X"FD",X"90",X"D2",X"30", + X"36",X"20",X"43",X"52",X"4F",X"53",X"53",X"20",X"48",X"41",X"54",X"43",X"48",X"20",X"50",X"41", + X"54",X"54",X"45",X"52",X"4E",X"FF",X"FE",X"14",X"FD",X"15",X"D1",X"53",X"4F",X"55",X"4E",X"44", + X"FD",X"50",X"D1",X"30",X"31",X"20",X"59",X"45",X"4C",X"4C",X"20",X"4F",X"46",X"20",X"50",X"4C", + X"41",X"59",X"45",X"52",X"28",X"4A",X"55",X"4D",X"50",X"2D",X"4B",X"49",X"43",X"4B",X"53",X"29", + X"FD",X"93",X"D1",X"43",X"52",X"45",X"44",X"49",X"54",X"20",X"41",X"44",X"44",X"49",X"4E",X"47", + X"20",X"53",X"4F",X"55",X"4E",X"44",X"FD",X"D0",X"D1",X"30",X"32",X"20",X"59",X"45",X"4C",X"4C", + X"20",X"4F",X"46",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"28",X"50",X"55",X"4E",X"43",X"48", + X"45",X"53",X"2C",X"4B",X"49",X"43",X"4B",X"53",X"29",X"FD",X"10",X"D2",X"30",X"33",X"20",X"47", + X"52",X"4F",X"41",X"4E",X"20",X"4F",X"46",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"20",X"4F", + X"52",X"20",X"45",X"4E",X"45",X"4D",X"59",X"FD",X"50",X"D2",X"30",X"34",X"20",X"4C",X"41",X"55", + X"47",X"48",X"49",X"4E",X"47",X"20",X"56",X"4F",X"49",X"43",X"45",X"20",X"4F",X"46",X"20",X"45", + X"4E",X"45",X"4D",X"49",X"45",X"53",X"2D",X"31",X"FD",X"90",X"D2",X"30",X"35",X"20",X"4C",X"41", + X"55",X"47",X"48",X"49",X"4E",X"47",X"20",X"56",X"4F",X"49",X"43",X"45",X"20",X"4F",X"46",X"20", + X"45",X"4E",X"45",X"4D",X"49",X"45",X"53",X"2D",X"32",X"FD",X"D0",X"D2",X"30",X"36",X"20",X"42", + X"55",X"52",X"53",X"54",X"49",X"4E",X"47",X"20",X"4F",X"46",X"20",X"50",X"41",X"50",X"45",X"52", + X"20",X"42",X"41",X"4C",X"4C",X"FD",X"13",X"D3",X"42",X"55",X"52",X"53",X"54",X"49",X"4E",X"47", + X"20",X"4F",X"46",X"20",X"44",X"52",X"41",X"47",X"4F",X"4E",X"27",X"53",X"20",X"45",X"47",X"47", + X"FD",X"50",X"D3",X"30",X"37",X"20",X"53",X"48",X"52",X"49",X"45",X"4B",X"20",X"4F",X"46",X"20", + X"50",X"4C",X"41",X"59",X"45",X"52",X"FD",X"90",X"D3",X"30",X"38",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"20",X"52",X"55",X"4E",X"4E",X"49",X"4E",X"47",X"FD",X"D0",X"D3",X"30",X"39",X"20", + X"48",X"49",X"54",X"54",X"49",X"4E",X"47",X"20",X"53",X"4F",X"55",X"4E",X"44",X"FD",X"10",X"D4", + X"31",X"30",X"20",X"53",X"57",X"49",X"53",X"48",X"49",X"4E",X"47",X"20",X"53",X"4F",X"55",X"4E", + X"44",X"FD",X"50",X"D4",X"31",X"31",X"20",X"42",X"55",X"52",X"53",X"54",X"49",X"4E",X"47",X"20", + X"4F",X"46",X"20",X"53",X"4E",X"41",X"4B",X"45",X"20",X"50",X"4F",X"54",X"FD",X"90",X"D4",X"31", + X"32",X"20",X"42",X"49",X"54",X"49",X"4E",X"47",X"20",X"53",X"4F",X"55",X"4E",X"44",X"FD",X"D0", + X"D4",X"31",X"33",X"20",X"53",X"4F",X"55",X"4E",X"44",X"20",X"4F",X"46",X"20",X"4B",X"4E",X"49", + X"56",X"45",X"53",X"2C",X"42",X"4F",X"4F",X"4D",X"45",X"52",X"41",X"4E",X"47",X"53",X"FD",X"10", + X"D5",X"31",X"34",X"20",X"43",X"4F",X"55",X"4E",X"54",X"49",X"4E",X"47",X"20",X"50",X"4F",X"49", + X"4E",X"54",X"53",X"FD",X"50",X"D5",X"31",X"35",X"20",X"47",X"41",X"4D",X"45",X"20",X"53",X"54", + X"41",X"52",X"54",X"FD",X"90",X"D5",X"31",X"36",X"20",X"42",X"47",X"4D",X"FD",X"D0",X"D5",X"31", + X"37",X"20",X"43",X"4F",X"4D",X"50",X"4C",X"45",X"54",X"49",X"4F",X"4E",X"20",X"4F",X"46",X"20", + X"45",X"41",X"43",X"48",X"20",X"50",X"41",X"54",X"54",X"45",X"52",X"4E",X"FD",X"10",X"D6",X"31", + X"38",X"20",X"43",X"4F",X"4D",X"50",X"4C",X"45",X"54",X"49",X"4F",X"4E",X"20",X"4F",X"46",X"20", + X"47",X"41",X"4D",X"45",X"FD",X"50",X"D6",X"31",X"39",X"20",X"47",X"41",X"4D",X"45",X"20",X"4F", + X"56",X"45",X"52",X"FD",X"90",X"D6",X"32",X"30",X"20",X"54",X"49",X"4D",X"45",X"20",X"55",X"50", + X"20",X"57",X"41",X"52",X"4E",X"49",X"4E",X"47",X"FD",X"D0",X"D6",X"32",X"31",X"20",X"41",X"44", + X"44",X"49",X"54",X"49",X"4F",X"4E",X"41",X"4C",X"20",X"46",X"49",X"47",X"48",X"54",X"45",X"52", + X"FD",X"16",X"D7",X"4D",X"55",X"53",X"49",X"43",X"20",X"45",X"4E",X"44",X"FF",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd.bin new file mode 100644 index 00000000..2bca2930 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd_prg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd_prg.vhd new file mode 100644 index 00000000..c3748bca --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/snd_prg.vhd @@ -0,0 +1,1558 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity snd_prg is +port ( + clk : in std_logic; + addr : in std_logic_vector(14 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of snd_prg is + type rom is array(0 to 24575) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"00",X"00",X"00",X"01",X"80",X"40",X"02",X"B0",X"82",X"F0",X"01",X"B0",X"84",X"A0",X"01",X"50", + X"85",X"F0",X"10",X"00",X"95",X"F0",X"18",X"80",X"AE",X"70",X"03",X"A0",X"B2",X"10",X"08",X"00", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"AA",X"98",X"26",X"10",X"80",X"28",X"8B",X"BA",X"10",X"0A",X"8B",X"AA",X"22",X"71",X"19",X"10", + X"10",X"AC",X"B1",X"00",X"CB",X"E9",X"25",X"31",X"80",X"01",X"0A",X"C8",X"00",X"AD",X"DA",X"04", + X"42",X"18",X"00",X"08",X"D9",X"88",X"9E",X"A8",X"17",X"21",X"98",X"11",X"0B",X"C8",X"AB",X"E9", + X"14",X"71",X"89",X"81",X"19",X"B9",X"9B",X"E9",X"25",X"51",X"99",X"82",X"0B",X"BC",X"AB",X"25", + X"53",X"09",X"98",X"0A",X"CB",X"AD",X"05",X"53",X"8A",X"A0",X"19",X"CA",X"BB",X"37",X"61",X"99", + X"A1",X"09",X"AB",X"C2",X"73",X"08",X"AA",X"88",X"89",X"CA",X"47",X"20",X"AA",X"89",X"98",X"AA", + X"37",X"78",X"99",X"89",X"80",X"A8",X"46",X"19",X"A9",X"89",X"88",X"A2",X"73",X"9A",X"99",X"A1", + X"2E",X"06",X"29",X"99",X"99",X"11",X"D0",X"71",X"99",X"89",X"81",X"0C",X"17",X"0A",X"88",X"98", + X"49",X"B3",X"69",X"A0",X"0B",X"14",X"C8",X"50",X"A8",X"0A",X"84",X"8B",X"62",X"C9",X"18",X"A3", + X"1E",X"25",X"AA",X"10",X"B2",X"3E",X"05",X"8C",X"10",X"A1",X"2B",X"87",X"8B",X"11",X"B0",X"3C", + X"06",X"8B",X"10",X"A1",X"1C",X"35",X"C9",X"39",X"A3",X"AB",X"72",X"D0",X"2A",X"03",X"F0",X"58", + X"C2",X"8A",X"48",X"D4",X"2D",X"03",X"C0",X"3E",X"05",X"9B",X"49",X"96",X"CB",X"51",X"C3",X"A9", + X"7B",X"C4",X"1B",X"3C",X"96",X"8D",X"11",X"12",X"DB",X"51",X"B8",X"02",X"00",X"F0",X"48",X"B0", + X"18",X"5B",X"B6",X"8B",X"03",X"A3",X"9F",X"31",X"B8",X"4A",X"11",X"E1",X"2A",X"81",X"09",X"4D", + X"03",X"A9",X"84",X"80",X"9B",X"58",X"A8",X"59",X"81",X"D2",X"1A",X"A7",X"A0",X"0A",X"20",X"9C", + X"7A",X"82",X"B2",X"92",X"D5",X"A8",X"3C",X"19",X"2B",X"31",X"C5",X"C2",X"A2",X"90",X"2C",X"5C", + X"3C",X"3A",X"3A",X"83",X"D4",X"C2",X"93",X"B1",X"1B",X"3B",X"3C",X"2A",X"31",X"C1",X"A6",X"C2", + X"A3",X"89",X"89",X"4A",X"81",X"4C",X"1B",X"86",X"98",X"3C",X"2C",X"01",X"39",X"9C",X"3B",X"26", + X"A1",X"D1",X"95",X"88",X"A8",X"11",X"82",X"A0",X"E1",X"A7",X"91",X"B2",X"A8",X"97",X"91",X"D3", + X"90",X"87",X"C0",X"A1",X"88",X"41",X"BA",X"18",X"2C",X"7B",X"3D",X"39",X"09",X"7D",X"18",X"82", + X"B5",X"88",X"D4",X"A2",X"C5",X"B1",X"99",X"2C",X"7A",X"1E",X"4A",X"3C",X"5B",X"91",X"A4",X"C2", + X"2A",X"A2",X"01",X"C2",X"3B",X"B1",X"22",X"F4",X"B3",X"D3",X"A2",X"D5",X"B1",X"A2",X"08",X"A7", + X"9B",X"3A",X"4E",X"49",X"2D",X"4B",X"3E",X"5A",X"2C",X"20",X"99",X"6B",X"80",X"04",X"C9",X"59", + X"99",X"13",X"C8",X"30",X"C2",X"A4",X"D1",X"28",X"B3",X"92",X"F0",X"30",X"C1",X"01",X"D2",X"01", + X"C2",X"81",X"BA",X"78",X"A0",X"12",X"C8",X"15",X"BA",X"6B",X"1D",X"33",X"9C",X"28",X"1E",X"15", + X"AA",X"01",X"2D",X"85",X"89",X"C4",X"88",X"B0",X"7A",X"9A",X"51",X"D0",X"06",X"D8",X"06",X"BB", + X"21",X"6D",X"94",X"0D",X"84",X"3C",X"C3",X"5B",X"D2",X"25",X"DA",X"34",X"CB",X"48",X"5D",X"82", + X"3F",X"85",X"B5",X"D1",X"28",X"F2",X"5D",X"4D",X"5A",X"0C",X"40",X"C1",X"10",X"A0",X"A7",X"B8", + X"97",X"AA",X"05",X"AA",X"04",X"B5",X"D2",X"81",X"98",X"1C",X"7A",X"98",X"39",X"B2",X"0A",X"7D", + X"4A",X"2B",X"3A",X"12",X"9D",X"22",X"9C",X"13",X"D5",X"B0",X"02",X"B8",X"12",X"AE",X"7C",X"01", + X"19",X"A2",X"09",X"95",X"B3",X"A8",X"81",X"3F",X"A7",X"99",X"11",X"A8",X"3B",X"A0",X"7E",X"32", + X"8D",X"15",X"D0",X"2A",X"5D",X"48",X"A8",X"21",X"D1",X"19",X"00",X"B3",X"80",X"A2",X"2C",X"A5", + X"9D",X"7B",X"02",X"90",X"B7",X"A8",X"01",X"B2",X"2F",X"39",X"09",X"12",X"F2",X"09",X"84",X"D3", + X"88",X"91",X"3E",X"10",X"89",X"10",X"2E",X"12",X"C1",X"01",X"A9",X"5A",X"08",X"08",X"4C",X"95", + X"A0",X"82",X"8C",X"38",X"90",X"83",X"9F",X"5A",X"93",X"90",X"A2",X"0A",X"03",X"AA",X"23",X"F2", + X"0B",X"20",X"8A",X"25",X"E0",X"29",X"80",X"97",X"D2",X"1B",X"10",X"88",X"83",X"C8",X"5A",X"92", + X"83",X"F1",X"3E",X"12",X"A0",X"82",X"B0",X"3B",X"02",X"C1",X"2A",X"93",X"9A",X"4A",X"18",X"81", + X"99",X"49",X"A3",X"A1",X"99",X"2B",X"7F",X"32",X"E0",X"28",X"A2",X"90",X"09",X"18",X"1A",X"89", + X"7B",X"B7",X"A1",X"1B",X"49",X"81",X"A2",X"90",X"00",X"A1",X"80",X"0A",X"42",X"F6",X"AA",X"4A", + X"00",X"91",X"08",X"92",X"A1",X"80",X"91",X"93",X"D3",X"B9",X"7F",X"41",X"F2",X"0A",X"10",X"88", + X"00",X"91",X"09",X"81",X"88",X"82",X"A8",X"6B",X"97",X"B8",X"39",X"90",X"2A",X"00",X"09",X"18", + X"00",X"B3",X"91",X"99",X"7B",X"81",X"87",X"F4",X"0E",X"38",X"A1",X"08",X"88",X"29",X"92",X"89", + X"10",X"99",X"38",X"C4",X"90",X"89",X"16",X"F1",X"3E",X"11",X"A1",X"09",X"18",X"80",X"80",X"80", + X"E7",X"F0",X"79",X"F3",X"1B",X"18",X"83",X"AA",X"39",X"82",X"93",X"F0",X"5B",X"93",X"91",X"9A", + X"48",X"98",X"7A",X"D5",X"8A",X"18",X"10",X"B1",X"2A",X"97",X"AB",X"68",X"A1",X"81",X"8A",X"49", + X"A3",X"4F",X"03",X"B0",X"80",X"2C",X"11",X"B5",X"8E",X"38",X"80",X"A3",X"99",X"2A",X"59",X"F4", + X"89",X"1A",X"28",X"A3",X"82",X"F0",X"28",X"8A",X"22",X"D1",X"4E",X"11",X"91",X"C3",X"0B",X"22", + X"E1",X"00",X"0C",X"38",X"92",X"9B",X"40",X"8A",X"97",X"A8",X"4D",X"28",X"00",X"B4",X"91",X"9C", + X"59",X"1A",X"01",X"82",X"E2",X"92",X"99",X"3A",X"88",X"12",X"D1",X"01",X"0E",X"29",X"3B",X"82", + X"2C",X"81",X"82",X"E2",X"02",X"E1",X"93",X"99",X"11",X"98",X"93",X"A0",X"1B",X"3A",X"4B",X"95", + X"0D",X"95",X"88",X"A2",X"2A",X"8A",X"22",X"AA",X"24",X"B9",X"03",X"B0",X"91",X"7A",X"92",X"89", + X"D4",X"19",X"A0",X"49",X"8C",X"22",X"8C",X"22",X"8B",X"81",X"08",X"A1",X"27",X"BC",X"34",X"CA", + X"15",X"98",X"90",X"20",X"BD",X"41",X"8B",X"13",X"AB",X"28",X"29",X"18",X"2B",X"A1",X"5E",X"08", + X"78",X"A9",X"14",X"BA",X"38",X"5D",X"01",X"80",X"A1",X"03",X"BE",X"58",X"8D",X"59",X"1B",X"10", + X"2B",X"01",X"0B",X"A1",X"79",X"00",X"A9",X"A5",X"7C",X"2B",X"2B",X"17",X"8A",X"90",X"1A",X"70", + X"B9",X"03",X"B3",X"6E",X"09",X"4A",X"21",X"E0",X"02",X"B2",X"2C",X"88",X"3A",X"05",X"B9",X"85", + X"A8",X"5C",X"1A",X"39",X"83",X"9C",X"85",X"99",X"39",X"B1",X"38",X"AC",X"7B",X"19",X"6B",X"02", + X"C2",X"80",X"A0",X"7C",X"A4",X"1B",X"97",X"C0",X"84",X"A9",X"23",X"F0",X"38",X"E5",X"A1",X"A0", + X"2A",X"5B",X"B7",X"8B",X"06",X"AB",X"05",X"AA",X"6D",X"20",X"8A",X"25",X"D9",X"58",X"A8",X"30", + X"E3",X"89",X"96",X"8D",X"31",X"AB",X"44",X"D9",X"5A",X"94",X"8D",X"30",X"0D",X"5B",X"A6",X"9A", + X"32",X"F3",X"8A",X"01",X"7D",X"95",X"AB",X"69",X"D5",X"98",X"97",X"AD",X"42",X"CA",X"50",X"D1", + X"39",X"E5",X"1D",X"38",X"9B",X"7A",X"B4",X"3D",X"A5",X"2D",X"95",X"A9",X"5D",X"5D",X"29",X"69", + X"D2",X"5D",X"B5",X"0C",X"85",X"8D",X"59",X"89",X"39",X"A7",X"D3",X"81",X"F5",X"3D",X"A5",X"8D", + X"41",X"D1",X"18",X"B4",X"2F",X"12",X"0E",X"5A",X"80",X"08",X"97",X"BA",X"33",X"DA",X"5A",X"0A", + X"7B",X"B6",X"8A",X"94",X"0B",X"4D",X"4A",X"3E",X"42",X"D8",X"23",X"F3",X"1C",X"81",X"3E",X"13", + X"C0",X"02",X"D4",X"9A",X"03",X"8E",X"59",X"A8",X"20",X"C7",X"B9",X"84",X"A9",X"59",X"A1",X"19", + X"A7",X"A9",X"83",X"9A",X"7B",X"08",X"2A",X"87",X"B0",X"92",X"98",X"5C",X"00",X"1A",X"03",X"B1", + X"A2",X"A1",X"4E",X"28",X"0A",X"11",X"A2",X"89",X"95",X"9B",X"30",X"8C",X"59",X"93",X"99",X"96", + X"A9",X"38",X"99",X"4B",X"84",X"8B",X"05",X"A9",X"11",X"A0",X"3D",X"02",X"0A",X"A4",X"88",X"08", + X"01",X"9D",X"31",X"8D",X"12",X"A1",X"80",X"A4",X"0C",X"18",X"3B",X"8B",X"63",X"CC",X"41",X"C1", + X"81",X"91",X"80",X"91",X"91",X"80",X"00",X"81",X"80",X"81",X"90",X"80",X"80",X"81",X"80",X"08", + X"A9",X"2A",X"57",X"CD",X"5A",X"94",X"92",X"2F",X"00",X"B2",X"28",X"4C",X"93",X"D0",X"39",X"21", + X"F2",X"AA",X"50",X"83",X"F0",X"1B",X"13",X"A4",X"8E",X"29",X"A3",X"00",X"6A",X"B3",X"BB",X"58", + X"16",X"AA",X"2B",X"A2",X"83",X"78",X"A0",X"A9",X"98",X"25",X"40",X"B8",X"AC",X"98",X"15",X"51", + X"99",X"9D",X"89",X"93",X"43",X"5A",X"88",X"DA",X"89",X"03",X"44",X"3B",X"88",X"EA",X"90",X"91", + X"62",X"20",X"A0",X"BD",X"A8",X"88",X"36",X"22",X"89",X"8C",X"BA",X"A0",X"12",X"74",X"00",X"0A", + X"AB",X"C9",X"91",X"03",X"72",X"00",X"8B",X"AB",X"BA",X"82",X"25",X"72",X"01",X"0B",X"BB",X"CA", + X"91",X"22",X"65",X"18",X"09",X"CA",X"B9",X"98",X"24",X"35",X"30",X"A9",X"AD",X"BA",X"99",X"14", + X"34",X"35",X"89",X"9A",X"CB",X"A8",X"90",X"33",X"36",X"48",X"90",X"9A",X"C9",X"89",X"14",X"32", + X"46",X"89",X"89",X"BC",X"B9",X"98",X"13",X"33",X"73",X"88",X"89",X"CB",X"A9",X"B1",X"33",X"46", + X"40",X"08",X"AB",X"BC",X"C9",X"81",X"22",X"44",X"31",X"88",X"BC",X"BC",X"A9",X"91",X"42",X"34", + X"41",X"88",X"9C",X"C8",X"BB",X"08",X"13",X"43",X"43",X"30",X"9A",X"CC",X"CA",X"A8",X"09",X"25", + X"21",X"44",X"18",X"08",X"BD",X"99",X"BA",X"00",X"04",X"42",X"24",X"28",X"99",X"BD",X"B9",X"9A", + X"02",X"0A",X"43",X"19",X"43",X"9B",X"89",X"FB",X"18",X"D2",X"2A",X"14",X"01",X"42",X"12",X"18", + X"9C",X"BC",X"B9",X"BA",X"89",X"B9",X"9A",X"A2",X"51",X"55",X"34",X"22",X"41",X"11",X"19",X"9C", + X"CB",X"CB",X"AA",X"99",X"01",X"11",X"12",X"1B",X"98",X"9A",X"82",X"26",X"23",X"42",X"20",X"1A", + X"CA",X"CB",X"B1",X"13",X"53",X"43",X"10",X"9A",X"BB",X"BA",X"92",X"23",X"34",X"11",X"9A",X"CC", + X"BB",X"AA",X"03",X"31",X"43",X"18",X"18",X"9A",X"9A",X"8A",X"98",X"08",X"08",X"08",X"19",X"00", + X"10",X"08",X"18",X"8A",X"08",X"89",X"08",X"08",X"10",X"80",X"08",X"8A",X"88",X"00",X"11",X"11", + X"08",X"09",X"9A",X"89",X"00",X"00",X"30",X"20",X"18",X"0A",X"8A",X"8A",X"08",X"02",X"10",X"30", + X"19",X"89",X"9A",X"89",X"80",X"00",X"11",X"18",X"08",X"09",X"88",X"09",X"08",X"89",X"18",X"08", + X"98",X"91",X"91",X"88",X"10",X"08",X"80",X"90",X"00",X"01",X"01",X"00",X"B8",X"A9",X"90",X"A0", + X"89",X"80",X"81",X"72",X"48",X"8D",X"0C",X"88",X"29",X"50",X"08",X"0C",X"89",X"88",X"40",X"22", + X"3D",X"1B",X"B9",X"1B",X"10",X"E9",X"99",X"76",X"12",X"0B",X"AB",X"C9",X"20",X"34",X"29",X"1C", + X"BB",X"8B",X"44",X"41",X"29",X"CC",X"BC",X"8A",X"16",X"70",X"38",X"AB",X"9C",X"80",X"11",X"51", + X"88",X"8D",X"98",X"81",X"52",X"81",X"AD",X"AA",X"B1",X"27",X"34",X"09",X"B9",X"E8",X"81",X"14", + X"10",X"98",X"C9",X"98",X"32",X"31",X"0F",X"BB",X"99",X"73",X"31",X"1D",X"8B",X"AA",X"20",X"43", + X"28",X"8B",X"E9",X"00",X"14",X"89",X"BC",X"B4",X"23",X"72",X"A9",X"9C",X"A1",X"81",X"25",X"81", + X"9A",X"B3",X"C0",X"21",X"E0",X"BB",X"71",X"22",X"1D",X"0A",X"A9",X"29",X"34",X"19",X"19",X"D0", + X"88",X"92",X"D9",X"C4",X"22",X"62",X"C8",X"9A",X"B2",X"82",X"26",X"90",X"89",X"A0",X"99",X"09", + X"EA",X"70",X"23",X"2E",X"0A",X"9A",X"39",X"23",X"2A",X"28",X"E8",X"89",X"B3",X"DA",X"71",X"03", + X"2E",X"09",X"A9",X"39",X"14",X"09",X"29",X"D0",X"8A",X"91",X"C5",X"21",X"15",X"C9",X"89",X"B3", + X"01",X"23",X"98",X"0D",X"98",X"9D",X"0A",X"71",X"21",X"2D",X"8A",X"A8",X"11",X"16",X"88",X"80", + X"C8",X"8A",X"8A",X"61",X"23",X"4F",X"09",X"8A",X"20",X"02",X"00",X"90",X"E0",X"89",X"A9",X"70", + X"21",X"3F",X"0A",X"09",X"28",X"13",X"90",X"A0",X"E1",X"99",X"98",X"70",X"20",X"0C",X"0B",X"93", + X"82",X"06",X"A0",X"9A",X"89",X"9C",X"17",X"01",X"30",X"F0",X"A8",X"11",X"82",X"3C",X"08",X"AA", + X"1A",X"B0",X"71",X"23",X"8F",X"89",X"93",X"10",X"23",X"E8",X"0B",X"81",X"AB",X"47",X"82",X"1E", + X"80",X"A8",X"40",X"83",X"A9",X"88",X"C1",X"1C",X"87",X"80",X"29",X"B0",X"9C",X"51",X"92",X"0A", + X"A1",X"B8",X"1A",X"B7",X"48",X"2B",X"B8",X"0C",X"53",X"A1",X"0A",X"B2",X"BB",X"3D",X"70",X"10", + X"1D",X"A1",X"92",X"21",X"88",X"0F",X"00",X"98",X"96",X"93",X"01",X"E9",X"09",X"31",X"00",X"0A", + X"D2",X"99",X"8A",X"71",X"10",X"C8",X"90",X"95",X"2A",X"3C",X"A1",X"89",X"B1",X"70",X"10",X"BA", + X"09",X"87",X"19",X"1B",X"B3",X"8C",X"96",X"10",X"28",X"F8",X"19",X"22",X"A1",X"8B",X"B3",X"AD", + X"54",X"91",X"1F",X"93",X"A1",X"39",X"A1",X"AB",X"38",X"E7",X"09",X"18",X"D0",X"29",X"24",X"C9", + X"19",X"80",X"93",X"48",X"A2",X"EA",X"40",X"02",X"AB",X"00",X"A8",X"87",X"29",X"0D",X"81",X"01", + X"28",X"C8",X"8A",X"09",X"73",X"C1",X"9A",X"11",X"12",X"2F",X"90",X"90",X"87",X"0A",X"1C",X"82", + X"01",X"29",X"E0",X"0A",X"03",X"49",X"80",X"F8",X"48",X"11",X"D9",X"29",X"A0",X"71",X"C3",X"D9", + X"58",X"02",X"BC",X"10",X"B8",X"73",X"D4",X"DA",X"41",X"82",X"AE",X"11",X"B8",X"72",X"D4",X"D9", + X"42",X"A3",X"BE",X"11",X"B2",X"79",X"B4",X"D8",X"52",X"C4",X"DA",X"29",X"97",X"3D",X"2A",X"C0", + X"58",X"01",X"F9",X"4B",X"16",X"9C",X"3D",X"85",X"4C",X"3D",X"B1",X"09",X"73",X"D0",X"9B",X"54", + X"B0",X"AC",X"02",X"B7",X"3D",X"09",X"B1",X"79",X"08",X"E0",X"1A",X"73",X"C8",X"AA",X"27",X"08", + X"AE",X"10",X"91",X"78",X"C4",X"CA",X"54",X"D2",X"CA",X"10",X"97",X"3D",X"19",X"C4",X"4D",X"19", + X"C1",X"08",X"44",X"B9",X"0B",X"15",X"99",X"0C",X"83",X"18",X"18",X"D2",X"5A",X"92",X"A9",X"30", + X"C1",X"9C",X"21",X"07",X"2E",X"80",X"A2",X"3C",X"30",X"D1",X"29",X"99",X"C8",X"37",X"2A",X"B9", + X"92",X"48",X"8C",X"93",X"39",X"3C",X"C8",X"81",X"58",X"B0",X"58",X"18",X"A8",X"0A",X"83",X"C9", + X"3C",X"14",X"90",X"11",X"C2",X"88",X"A9",X"5A",X"82",X"01",X"B0",X"F4",X"8B",X"10",X"8A",X"72", + X"08",X"B0",X"8D",X"10",X"90",X"05",X"8C",X"10",X"C1",X"59",X"3A",X"C2",X"89",X"12",X"D0",X"08", + X"38",X"B4",X"AD",X"32",X"D2",X"18",X"91",X"81",X"B9",X"48",X"B9",X"83",X"A9",X"79",X"03",X"82", + X"A0",X"AA",X"AA",X"86",X"8B",X"25",X"08",X"A0",X"B8",X"93",X"4D",X"4A",X"23",X"C2",X"0A",X"0A", + X"0B",X"88",X"B4",X"B1",X"49",X"55",X"1D",X"20",X"B0",X"90",X"AD",X"94",X"88",X"68",X"09",X"03", + X"B9",X"19",X"98",X"3A",X"1E",X"B7",X"8A",X"78",X"90",X"08",X"80",X"80",X"9E",X"28",X"B6",X"08", + X"20",X"90",X"89",X"19",X"D2",X"9A",X"09",X"8A",X"44",X"23",X"99",X"6E",X"02",X"A1",X"A9",X"08", + X"B1",X"5B",X"84",X"10",X"81",X"09",X"B1",X"3D",X"81",X"C8",X"90",X"6A",X"95",X"92",X"92",X"09", + X"99",X"19",X"89",X"9A",X"D1",X"28",X"87",X"2A",X"30",X"91",X"92",X"9F",X"90",X"1C",X"02",X"C1", + X"93",X"40",X"F3",X"1D",X"21",X"98",X"91",X"88",X"91",X"1C",X"12",X"B9",X"4B",X"40",X"B3",X"1E", + X"28",X"92",X"98",X"20",X"D5",X"9B",X"49",X"92",X"99",X"29",X"94",X"99",X"4B",X"01",X"82",X"A8", + X"1B",X"10",X"2A",X"2A",X"F2",X"80",X"5A",X"91",X"B4",X"29",X"A8",X"D2",X"1A",X"48",X"A8",X"81", + X"30",X"91",X"F3",X"2B",X"2D",X"88",X"5A",X"01",X"C2",X"09",X"12",X"F8",X"3B",X"59",X"A3",X"9A", + X"48",X"B0",X"19",X"5A",X"11",X"B1",X"82",X"A0",X"0A",X"89",X"78",X"98",X"80",X"82",X"04",X"D8", + X"89",X"5A",X"00",X"D0",X"22",X"91",X"AA",X"A3",X"28",X"2C",X"2A",X"B3",X"01",X"0C",X"2A",X"30", + X"98",X"4B",X"91",X"09",X"18",X"92",X"88",X"2A",X"93",X"89",X"5C",X"92",X"A3",X"89",X"A3",X"89", + X"30",X"A3",X"B9",X"4B",X"20",X"D1",X"1A",X"93",X"88",X"4B",X"21",X"D1",X"3B",X"4A",X"E2",X"98", + X"38",X"88",X"AA",X"48",X"11",X"8A",X"0B",X"35",X"BB",X"48",X"B0",X"22",X"99",X"00",X"10",X"18", + X"BB",X"69",X"81",X"80",X"9D",X"79",X"92",X"9A",X"6B",X"11",X"9A",X"30",X"95",X"F1",X"09",X"20", + X"8B",X"39",X"90",X"32",X"E1",X"D2",X"1A",X"10",X"1C",X"83",X"00",X"A6",X"AB",X"14",X"92",X"99", + X"B9",X"27",X"0B",X"0A",X"81",X"5C",X"4B",X"84",X"C0",X"3B",X"02",X"91",X"99",X"97",X"C1",X"3F", + X"21",X"A8",X"3B",X"00",X"08",X"89",X"02",X"3E",X"88",X"39",X"11",X"D1",X"81",X"84",X"E1",X"91", + X"2D",X"22",X"E3",X"0B",X"94",X"C4",X"0C",X"29",X"95",X"89",X"90",X"83",X"0E",X"3A",X"02",X"89", + X"8A",X"17",X"B0",X"81",X"08",X"B8",X"51",X"B0",X"8D",X"68",X"B6",X"A8",X"29",X"90",X"02",X"08", + X"E1",X"19",X"10",X"08",X"AB",X"7A",X"11",X"A0",X"83",X"BB",X"7A",X"11",X"B3",X"9A",X"A7",X"91", + X"08",X"A8",X"28",X"F7",X"A8",X"3D",X"29",X"18",X"82",X"C3",X"98",X"0A",X"5C",X"38",X"91",X"D4", + X"A2",X"8B",X"49",X"88",X"2A",X"39",X"D4",X"91",X"8D",X"48",X"90",X"10",X"9A",X"83",X"2A",X"A0", + X"49",X"B8",X"43",X"A9",X"F4",X"2E",X"1A",X"48",X"B1",X"21",X"D0",X"93",X"1B",X"19",X"4A",X"C2", + X"31",X"F0",X"10",X"09",X"A1",X"3D",X"04",X"B3",X"AA",X"28",X"3B",X"2B",X"94",X"92",X"E4",X"8A", + X"81",X"85",X"9B",X"A7",X"89",X"80",X"5D",X"02",X"A3",X"AA",X"15",X"A9",X"82",X"08",X"A8",X"20", + X"9A",X"58",X"93",X"B4",X"99",X"18",X"0A",X"00",X"3F",X"E9",X"30",X"9A",X"37",X"21",X"41",X"C0", + X"CA",X"0A",X"9D",X"DB",X"27",X"63",X"9C",X"98",X"02",X"09",X"AB",X"A0",X"83",X"77",X"A8",X"98", + X"22",X"99",X"9D",X"9A",X"87",X"7A",X"9A",X"B4",X"69",X"99",X"C8",X"80",X"73",X"C0",X"C9",X"45", + X"B0",X"AD",X"08",X"07",X"3D",X"0C",X"84",X"4A",X"1D",X"A8",X"19",X"73",X"D0",X"B9",X"55",X"B3", + X"DC",X"03",X"C1",X"50",X"D5",X"D9",X"58",X"13",X"FA",X"3A",X"A1",X"70",X"A3",X"F9",X"58",X"23", + X"FA",X"2B",X"85",X"5C",X"00",X"E0",X"59",X"30",X"F9",X"3C",X"85",X"4D",X"1A",X"B5",X"3B",X"4A", + X"D0",X"2C",X"05",X"2D",X"3D",X"95",X"19",X"5C",X"C3",X"9A",X"17",X"0B",X"4D",X"95",X"88",X"5D", + X"B4",X"A9",X"37",X"C0",X"1E",X"05",X"A1",X"4D",X"B5",X"B9",X"63",X"D0",X"0D",X"34",X"C3",X"1E", + X"A4",X"B9",X"64",X"D2",X"BB",X"52",X"A4",X"9D",X"01",X"C0",X"53",X"D2",X"D9",X"51",X"95",X"AD", + X"00",X"A0",X"71",X"D2",X"BA",X"61",X"94",X"AD",X"10",X"A0",X"70",X"B1",X"9B",X"25",X"A3",X"8F", + X"01",X"A0",X"17",X"9A",X"1C",X"95",X"82",X"2F",X"91",X"90",X"01",X"69",X"A3",X"C8",X"40",X"98", + X"B9",X"28",X"80",X"71",X"B0",X"B8",X"61",X"89",X"AA",X"00",X"88",X"72",X"C1",X"9A",X"34",X"99", + X"8C",X"10",X"98",X"97",X"2C",X"28",X"B2",X"2B",X"28",X"E1",X"08",X"19",X"93",X"2A",X"38",X"C1", + X"8A",X"48",X"A1",X"B1",X"4C",X"82",X"F0",X"11",X"84",X"01",X"9C",X"08",X"90",X"0A",X"8A",X"17", + X"3C",X"10",X"B8",X"1A",X"01",X"92",X"2A",X"72",X"B0",X"88",X"A8",X"8B",X"99",X"25",X"AB",X"11", + X"22",X"75",X"99",X"99",X"81",X"1A",X"9D",X"92",X"81",X"02",X"90",X"13",X"1E",X"40",X"A2",X"9B", + X"19",X"A6",X"8A",X"1A",X"90",X"93",X"71",X"A8",X"9A",X"24",X"C0",X"09",X"0A",X"A6",X"2A",X"10", + X"B0",X"10",X"29",X"C1",X"82",X"E8",X"2B",X"72",X"D0",X"80",X"38",X"B1",X"BE",X"51",X"90",X"8C", + X"40",X"A0",X"89",X"78",X"98",X"98",X"40",X"B2",X"AC",X"60",X"91",X"9A",X"31",X"A0",X"9D",X"60", + X"A0",X"89",X"21",X"90",X"9B",X"40",X"82",X"C8",X"3A",X"10",X"D8",X"58",X"80",X"C0",X"59",X"81", + X"B0",X"3B",X"10",X"98",X"4C",X"14",X"D1",X"2B",X"01",X"B1",X"5C",X"83",X"C2",X"4C",X"81",X"91", + X"3D",X"82",X"A1",X"3B",X"C2",X"00",X"5A",X"B2",X"B2",X"59",X"A9",X"81",X"78",X"B1",X"A3",X"4A", + X"B9",X"95",X"5A",X"B1",X"91",X"59",X"98",X"B3",X"69",X"99",X"B2",X"78",X"A0",X"B2",X"79",X"90", + X"A1",X"49",X"90",X"B0",X"79",X"81",X"C0",X"49",X"80",X"A0",X"30",X"A9",X"90",X"50",X"A8",X"B3", + X"38",X"8A",X"B0",X"69",X"10",X"F2",X"09",X"3B",X"B5",X"81",X"0B",X"A5",X"0A",X"3C",X"96",X"A0", + X"2C",X"12",X"C0",X"29",X"83",X"D0",X"3C",X"12",X"C2",X"0C",X"30",X"C2",X"1C",X"40",X"D2",X"98", + X"5A",X"91",X"91",X"2B",X"94",X"A1",X"3E",X"82",X"92",X"0B",X"88",X"14",X"8C",X"80",X"17",X"AA", + X"1A",X"51",X"D1",X"90",X"49",X"A1",X"99",X"78",X"B2",X"98",X"49",X"90",X"A2",X"39",X"B8",X"82", + X"5A",X"A0",X"C5",X"2B",X"8A",X"06",X"0A",X"0A",X"04",X"89",X"0B",X"B6",X"1B",X"3A",X"B7",X"39", + X"0A",X"B9",X"2A",X"CD",X"B1",X"67",X"18",X"8B",X"02",X"19",X"89",X"E8",X"8B",X"A9",X"87",X"72", + X"9A",X"C2",X"11",X"1A",X"D8",X"8A",X"08",X"76",X"A8",X"8A",X"13",X"00",X"AD",X"81",X"B9",X"75", + X"B0",X"8B",X"26",X"98",X"0C",X"82",X"9A",X"37",X"A9",X"2D",X"85",X"89",X"2C",X"A4",X"89",X"86", + X"9A",X"2A",X"A3",X"3A",X"28",X"F0",X"19",X"0A",X"17",X"98",X"2C",X"94",X"89",X"3B",X"A3",X"89", + X"90",X"78",X"92",X"C9",X"48",X"82",X"AB",X"49",X"89",X"B7",X"2A",X"2B",X"C3",X"19",X"49",X"C1", + X"09",X"98",X"70",X"92",X"CA",X"48",X"83",X"AC",X"20",X"A8",X"33",X"B0",X"2F",X"84",X"90",X"2D", + X"82",X"99",X"84",X"1A",X"08",X"C1",X"59",X"02",X"E8",X"29",X"98",X"78",X"A1",X"AA",X"34",X"91", + X"0F",X"82",X"98",X"97",X"0A",X"0A",X"A3",X"30",X"2A",X"F8",X"19",X"0A",X"71",X"A8",X"9A",X"25", + X"00",X"9D",X"81",X"80",X"93",X"4A",X"90",X"B0",X"70",X"90",X"D8",X"18",X"08",X"70",X"C0",X"09", + X"23",X"AA",X"0C",X"01",X"A9",X"63",X"B1",X"1C",X"83",X"99",X"3E",X"91",X"01",X"48",X"B9",X"00", + X"28",X"99",X"A0",X"63",X"09",X"BB",X"05",X"09",X"99",X"A0",X"D3",X"6C",X"24",X"B1",X"1B",X"82", + X"D8",X"3C",X"04",X"A0",X"39",X"B2",X"8A",X"39",X"B2",X"20",X"83",X"AA",X"4C",X"08",X"97",X"89", + X"89",X"01",X"B1",X"0A",X"40",X"B8",X"50",X"24",X"9C",X"09",X"A0",X"29",X"99",X"A9",X"61",X"11", + X"BA",X"10",X"25",X"99",X"1A",X"91",X"B9",X"69",X"1A",X"D8",X"25",X"2B",X"B8",X"25",X"A9",X"09", + X"15",X"AA",X"91",X"71",X"D9",X"01",X"3A",X"90",X"03",X"9D",X"01",X"84",X"8B",X"8B",X"63",X"AA", + X"0B",X"51",X"D0",X"81",X"4A",X"99",X"85",X"0A",X"01",X"D3",X"1D",X"10",X"B6",X"8A",X"2A",X"84", + X"0A",X"90",X"96",X"0D",X"18",X"03",X"A8",X"98",X"13",X"9C",X"2A",X"97",X"99",X"2B",X"04",X"99", + X"1C",X"05",X"09",X"9A",X"97",X"1A",X"89",X"95",X"1A",X"89",X"82",X"28",X"C0",X"90",X"78",X"B2", + X"9A",X"68",X"90",X"A0",X"21",X"89",X"90",X"82",X"59",X"C8",X"88",X"60",X"B8",X"8A",X"62",X"A9", + X"8A",X"33",X"8A",X"BB",X"16",X"18",X"9C",X"84",X"28",X"8A",X"C2",X"49",X"09",X"B0",X"22",X"19", + X"AC",X"42",X"98",X"AA",X"33",X"C1",X"88",X"94",X"1C",X"09",X"11",X"90",X"29",X"90",X"1B",X"20", + X"A1",X"1C",X"33",X"F8",X"29",X"01",X"8A",X"09",X"41",X"8A",X"98",X"40",X"C4",X"99",X"89",X"02", + X"29",X"81",X"A8",X"3B",X"01",X"0A",X"10",X"81",X"99",X"4A",X"90",X"A2",X"2B",X"83",X"9A",X"49", + X"80",X"A0",X"3A",X"88",X"80",X"82",X"99",X"01",X"0B",X"04",X"9B",X"11",X"98",X"29",X"80",X"19", + X"3B",X"A4",X"98",X"11",X"99",X"09",X"39",X"19",X"08",X"92",X"92",X"8A",X"19",X"82",X"0A",X"29", + X"92",X"1B",X"91",X"90",X"5A",X"81",X"80",X"88",X"1A",X"00",X"8A",X"5A",X"A3",X"89",X"29",X"00", + X"09",X"2A",X"92",X"80",X"2D",X"20",X"90",X"2D",X"03",X"A9",X"38",X"B4",X"8A",X"11",X"82",X"C0", + X"09",X"11",X"A4",X"AC",X"15",X"A8",X"1B",X"12",X"90",X"A6",X"8A",X"89",X"03",X"30",X"B0",X"AF", + X"00",X"A9",X"E2",X"74",X"18",X"99",X"80",X"BA",X"9F",X"C9",X"A3",X"77",X"88",X"A9",X"22",X"29", + X"BC",X"00",X"19",X"DD",X"97",X"58",X"A8",X"A0",X"42",X"9A",X"A9",X"22",X"0A",X"FB",X"47",X"88", + X"8B",X"84",X"18",X"0C",X"91",X"20",X"1D",X"C1",X"78",X"80",X"C8",X"30",X"83",X"DA",X"21",X"82", + X"AF",X"85",X"08",X"0B",X"B3",X"31",X"1B",X"F8",X"30",X"18",X"DA",X"16",X"00",X"9D",X"83",X"10", + X"1C",X"B3",X"10",X"2D",X"C0",X"50",X"01",X"E9",X"30",X"03",X"CB",X"21",X"83",X"BF",X"13",X"92", + X"0F",X"83",X"81",X"2D",X"A3",X"88",X"3D",X"A7",X"8A",X"4B",X"B3",X"2A",X"48",X"D1",X"1A",X"18", + X"D4",X"3C",X"18",X"D1",X"48",X"82",X"D8",X"28",X"80",X"E2",X"4A",X"01",X"D8",X"40",X"92",X"C9", + X"20",X"80",X"E2",X"3A",X"01",X"D8",X"48",X"82",X"C9",X"28",X"80",X"C6",X"1B",X"3B",X"C3",X"19", + X"39",X"D1",X"08",X"0C",X"15",X"98",X"3C",X"A5",X"09",X"1B",X"A3",X"08",X"8D",X"70",X"B3",X"AB", + X"32",X"B3",X"9E",X"21",X"A0",X"C4",X"4A",X"92",X"BA",X"70",X"B2",X"AA",X"28",X"B7",X"3C",X"82", + X"B0",X"39",X"92",X"C8",X"2A",X"04",X"A9",X"68",X"B2",X"1B",X"01",X"92",X"8B",X"11",X"B1",X"1B", + X"01",X"09",X"42",X"00",X"82",X"3D",X"E1",X"0A",X"90",X"9B",X"4A",X"A4",X"15",X"41",X"91",X"BD", + X"00",X"A9",X"89",X"04",X"80",X"39",X"A4",X"28",X"0A",X"F8",X"20",X"80",X"82",X"8B",X"03",X"C2", + X"3C",X"81",X"AA",X"34",X"B9",X"2C",X"90",X"24",X"10",X"98",X"0B",X"E2",X"31",X"9F",X"91",X"12", + X"09",X"99",X"14",X"3F",X"92",X"82",X"0D",X"A1",X"86",X"1D",X"01",X"A2",X"3C",X"92",X"08",X"2B", + X"B3",X"88",X"5C",X"83",X"90",X"88",X"91",X"38",X"A2",X"9C",X"19",X"B6",X"1B",X"5A",X"A4",X"B3", + X"1A",X"10",X"F0",X"2A",X"12",X"A9",X"1C",X"40",X"A5",X"98",X"1A",X"89",X"1A",X"25",X"B9",X"2E", + X"13",X"89",X"10",X"C8",X"95",X"0B",X"31",X"BD",X"50",X"C1",X"3B",X"84",X"AA",X"3A",X"22",X"BB", + X"01",X"B7",X"0A",X"19",X"81",X"9A",X"69",X"94",X"9A",X"81",X"A0",X"31",X"9B",X"03",X"81",X"0A", + X"90",X"81",X"3C",X"A4",X"98",X"1E",X"13",X"08",X"1C",X"82",X"09",X"8B",X"03",X"08",X"0C",X"12", + X"38",X"9B",X"11",X"08",X"0C",X"02",X"80",X"1C",X"21",X"81",X"80",X"91",X"A9",X"19",X"3A",X"88", + X"2B",X"58",X"A3",X"AD",X"40",X"A3",X"9C",X"30",X"B4",X"8C",X"58",X"A2",X"0C",X"03",X"A8",X"88", + X"21",X"98",X"89",X"83",X"1A",X"08",X"19",X"08",X"91",X"18",X"88",X"A1",X"29",X"00",X"99",X"29", + X"20",X"8A",X"29",X"80",X"8A",X"39",X"81",X"0B",X"31",X"A2",X"0D",X"20",X"B1",X"2A",X"83",X"B8", + X"4A",X"82",X"98",X"19",X"01",X"89",X"28",X"91",X"19",X"1B",X"00",X"80",X"1C",X"13",X"90",X"09", + X"09",X"00",X"09",X"08",X"19",X"82",X"88",X"88",X"81",X"08",X"09",X"92",X"09",X"18",X"09",X"20", + X"C2",X"0A",X"00",X"08",X"11",X"A0",X"80",X"1A",X"91",X"88",X"18",X"92",X"99",X"11",X"A1",X"01", + X"90",X"91",X"88",X"1A",X"03",X"98",X"88",X"18",X"A3",X"90",X"00",X"A0",X"81",X"09",X"92",X"91", + X"08",X"80",X"80",X"90",X"98",X"28",X"93",X"AA",X"3A",X"84",X"99",X"3A",X"B6",X"99",X"18",X"82", + X"80",X"1A",X"18",X"08",X"19",X"A1",X"8A",X"68",X"90",X"1B",X"81",X"02",X"8A",X"31",X"C1",X"68", + X"C9",X"BF",X"C9",X"96",X"73",X"C0",X"BA",X"63",X"8A",X"BA",X"12",X"9A",X"FA",X"74",X"B2",X"BB", + X"52",X"91",X"9D",X"12",X"80",X"9C",X"B0",X"74",X"A0",X"C9",X"33",X"80",X"BC",X"13",X"81",X"AF", + X"A7",X"19",X"1B",X"B2",X"40",X"19",X"F0",X"28",X"01",X"DA",X"51",X"92",X"BC",X"22",X"82",X"0F", + X"82",X"80",X"1D",X"96",X"89",X"3C",X"B4",X"08",X"39",X"D1",X"19",X"00",X"D1",X"49",X"83",X"D9", + X"38",X"84",X"BB",X"40",X"91",X"9E",X"33",X"B1",X"0E",X"04",X"90",X"2D",X"94",X"89",X"2C",X"A6", + X"1B",X"3B",X"D2",X"28",X"20",X"F0",X"3A",X"82",X"F0",X"58",X"93",X"DA",X"58",X"94",X"AB",X"30", + X"A3",X"CB",X"72",X"C2",X"9D",X"23",X"91",X"1F",X"12",X"A0",X"1F",X"05",X"89",X"4D",X"94",X"09", + X"3B",X"B4",X"0A",X"3C",X"B6",X"2B",X"28",X"F1",X"49",X"02",X"D8",X"29",X"01",X"CA",X"71",X"B4", + X"BB",X"32",X"94",X"9E",X"11",X"90",X"8C",X"61",X"B1",X"8C",X"23",X"A1",X"0D",X"82",X"98",X"8B", + X"73",X"B0",X"8C",X"14",X"89",X"0B",X"83",X"89",X"0C",X"17",X"08",X"8A",X"92",X"10",X"0A",X"C1", + X"08",X"20",X"C0",X"20",X"31",X"BA",X"0A",X"22",X"B9",X"09",X"B3",X"1B",X"63",X"A3",X"0E",X"01", + X"B1",X"9A",X"21",X"95",X"1B",X"A5",X"29",X"8A",X"A8",X"11",X"88",X"C9",X"40",X"28",X"F9",X"41", + X"02",X"8D",X"82",X"90",X"3C",X"92",X"A9",X"9C",X"27",X"09",X"29",X"A2",X"8B",X"13",X"B3",X"8C", + X"BB",X"07",X"38",X"08",X"A8",X"18",X"B1",X"20",X"3A",X"FC",X"03",X"78",X"91",X"AA",X"31",X"99", + X"2B",X"31",X"F8",X"0A",X"45",X"B1",X"1D",X"02",X"99",X"1A",X"23",X"B8",X"9D",X"16",X"89",X"3B", + X"B6",X"8A",X"18",X"93",X"8A",X"1B",X"B7",X"2B",X"00",X"A4",X"3D",X"A3",X"A2",X"3C",X"90",X"A3", + X"7A",X"B2",X"91",X"69",X"B1",X"80",X"39",X"91",X"D8",X"59",X"A1",X"88",X"58",X"A1",X"89",X"29", + X"B4",X"0D",X"31",X"C0",X"3B",X"22",X"BA",X"49",X"94",X"BA",X"5A",X"94",X"9D",X"30",X"A3",X"0B", + X"10",X"C2",X"2C",X"21",X"C1",X"3A",X"A3",X"C8",X"50",X"80",X"0B",X"18",X"92",X"8D",X"23",X"A2", + X"0E",X"11",X"93",X"0A",X"A0",X"92",X"1C",X"94",X"A1",X"28",X"00",X"AA",X"58",X"A1",X"99",X"20", + X"A1",X"89",X"21",X"A2",X"0A",X"02",X"B8",X"08",X"01",X"99",X"10",X"01",X"98",X"00",X"93",X"9A", + X"01",X"92",X"0A",X"92",X"A2",X"08",X"91",X"91",X"19",X"98",X"01",X"08",X"80",X"00",X"91",X"80", + X"89",X"01",X"A0",X"08",X"83",X"B0",X"81",X"90",X"82",X"98",X"91",X"08",X"00",X"A3",X"9A",X"20", + X"90",X"92",X"08",X"80",X"81",X"89",X"91",X"80",X"01",X"98",X"01",X"09",X"91",X"92",X"88",X"80", + X"08",X"80",X"91",X"91",X"08",X"88",X"81",X"91",X"A0",X"01",X"80",X"98",X"00",X"00",X"90",X"90", + X"18",X"88",X"02",X"90",X"90",X"80",X"18",X"88",X"81",X"00",X"80",X"80",X"09",X"90",X"80",X"11", + X"90",X"90",X"88",X"08",X"98",X"10",X"00",X"90",X"92",X"00",X"99",X"08",X"02",X"9A",X"10",X"91", + X"81",X"80",X"88",X"81",X"90",X"08",X"81",X"90",X"08",X"00",X"90",X"18",X"08",X"91",X"92",X"A1", + X"99",X"38",X"92",X"A8",X"3A",X"93",X"88",X"80",X"82",X"89",X"08",X"A1",X"0A",X"11",X"91",X"90", + X"08",X"91",X"80",X"81",X"88",X"82",X"80",X"08",X"80",X"AA",X"AE",X"91",X"E7",X"78",X"A8",X"A1", + X"50",X"99",X"BB",X"0A",X"D4",X"72",X"C2",X"D8",X"40",X"91",X"BA",X"42",X"88",X"BD",X"98",X"75", + X"A9",X"8A",X"06",X"09",X"8A",X"94",X"11",X"9D",X"98",X"07",X"2B",X"8A",X"93",X"48",X"8A",X"C1", + X"32",X"0B",X"F8",X"05",X"2A",X"9B",X"92",X"60",X"8A",X"B0",X"32",X"3C",X"D9",X"05",X"28",X"AB", + X"A2",X"51",X"0B",X"B8",X"24",X"2B",X"D9",X"05",X"39",X"9D",X"92",X"22",X"0C",X"B0",X"25",X"0B", + X"BA",X"36",X"18",X"AC",X"83",X"21",X"8E",X"91",X"13",X"8C",X"A9",X"61",X"08",X"C9",X"12",X"12", + X"AD",X"81",X"21",X"AC",X"A2",X"61",X"89",X"C8",X"22",X"10",X"E9",X"11",X"28",X"BC",X"97",X"18", + X"0B",X"B2",X"31",X"3B",X"F8",X"20",X"18",X"BC",X"07",X"18",X"8C",X"92",X"21",X"1C",X"B1",X"28", + X"28",X"F8",X"84",X"39",X"AA",X"B2",X"61",X"89",X"C8",X"20",X"10",X"CA",X"02",X"70",X"A9",X"89", + X"42",X"99",X"9A",X"11",X"00",X"BB",X"97",X"48",X"89",X"A8",X"22",X"09",X"C9",X"10",X"00",X"AA", + X"07",X"31",X"AA",X"89",X"02",X"8C",X"99",X"01",X"11",X"1A",X"26",X"89",X"19",X"90",X"A9",X"0A", + X"85",X"80",X"08",X"21",X"09",X"8B",X"A7",X"1A",X"8C",X"91",X"10",X"08",X"92",X"03",X"38",X"8B", + X"A2",X"22",X"DF",X"81",X"11",X"98",X"99",X"14",X"40",X"99",X"CA",X"12",X"9B",X"98",X"41",X"82", + X"8A",X"23",X"18",X"2D",X"9B",X"A0",X"28",X"11",X"1A",X"11",X"02",X"91",X"8A",X"10",X"0D",X"9A", + X"23",X"05",X"9A",X"2A",X"11",X"8A",X"3E",X"04",X"9B",X"99",X"35",X"82",X"9B",X"A2",X"93",X"8A", + X"89",X"84",X"0C",X"99",X"26",X"01",X"9D",X"01",X"82",X"0C",X"19",X"14",X"9B",X"88",X"24",X"8A", + X"8C",X"96",X"19",X"09",X"88",X"80",X"09",X"29",X"21",X"9B",X"1B",X"04",X"08",X"98",X"09",X"19", + X"88",X"21",X"28",X"B9",X"89",X"41",X"9A",X"00",X"03",X"9E",X"00",X"04",X"2C",X"09",X"91",X"30", + X"AB",X"80",X"40",X"8A",X"98",X"51",X"88",X"BB",X"03",X"00",X"0C",X"82",X"01",X"99",X"A2",X"04", + X"0A",X"99",X"A2",X"38",X"99",X"B4",X"11",X"98",X"B8",X"33",X"88",X"BA",X"04",X"80",X"8C",X"83", + X"02",X"89",X"B0",X"22",X"08",X"AA",X"95",X"19",X"99",X"A3",X"20",X"09",X"A9",X"04",X"89",X"99", + X"82",X"39",X"0A",X"A3",X"00",X"08",X"B0",X"02",X"89",X"A0",X"82",X"01",X"88",X"90",X"01",X"A0", + X"80",X"94",X"89",X"08",X"90",X"29",X"92",X"A1",X"18",X"90",X"98",X"01",X"81",X"98",X"80",X"01", + X"89",X"80",X"82",X"98",X"08",X"80",X"00",X"88",X"80",X"00",X"90",X"80",X"80",X"01",X"98",X"81", + X"A2",X"88",X"80",X"00",X"00",X"90",X"80",X"81",X"90",X"88",X"81",X"90",X"09",X"10",X"00",X"80", + X"A0",X"81",X"90",X"80",X"00",X"81",X"90",X"88",X"81",X"89",X"18",X"08",X"81",X"90",X"80",X"80", + X"08",X"00",X"90",X"08",X"00",X"A2",X"80",X"08",X"88",X"81",X"92",X"89",X"00",X"91",X"08",X"80", + X"92",X"80",X"90",X"88",X"01",X"88",X"90",X"81",X"91",X"91",X"A1",X"00",X"88",X"90",X"81",X"80", + X"90",X"81",X"18",X"91",X"88",X"00",X"88",X"80",X"00",X"00",X"98",X"00",X"01",X"99",X"00",X"01", + X"A8",X"80",X"00",X"08",X"89",X"02",X"A1",X"98",X"10",X"92",X"A8",X"00",X"81",X"90",X"80",X"81", + X"80",X"90",X"80",X"80",X"00",X"80",X"08",X"88",X"80",X"82",X"80",X"90",X"00",X"90",X"91",X"80", + X"08",X"A2",X"89",X"18",X"81",X"98",X"10",X"91",X"88",X"81",X"88",X"09",X"81",X"80",X"90",X"82", + X"01",X"89",X"88",X"82",X"98",X"08",X"10",X"A2",X"89",X"88",X"A0",X"BC",X"F2",X"77",X"A9",X"99", + X"35",X"89",X"BA",X"88",X"B0",X"77",X"B1",X"AA",X"43",X"90",X"AE",X"13",X"00",X"8D",X"02",X"A8", + X"AA",X"74",X"A0",X"AC",X"42",X"80",X"AC",X"03",X"11",X"9B",X"A9",X"BA",X"77",X"A1",X"BA",X"52", + X"90",X"9C",X"03",X"00",X"1C",X"90",X"AA",X"74",X"C1",X"A9",X"41",X"91",X"9C",X"03",X"80",X"1C", + X"80",X"A9",X"72",X"C2",X"BA",X"51",X"91",X"9C",X"13",X"90",X"1C",X"80",X"99",X"71",X"B2",X"BB", + X"61",X"90",X"8C",X"13",X"88",X"1C",X"92",X"AA",X"72",X"C1",X"9A",X"42",X"A0",X"8C",X"04",X"88", + X"1B",X"A2",X"9B",X"73",X"D1",X"8A",X"24",X"A8",X"0C",X"04",X"88",X"1B",X"A3",X"9B",X"64",X"B8", + X"1C",X"05",X"99",X"2B",X"95",X"89",X"2A",X"A2",X"8A",X"15",X"19",X"99",X"A2",X"41",X"9B",X"C1", + X"21",X"29",X"E9",X"18",X"02",X"1A",X"48",X"B3",X"1C",X"21",X"C0",X"2D",X"82",X"A0",X"2C",X"82", + X"99",X"53",X"82",X"AC",X"28",X"83",X"9E",X"98",X"02",X"09",X"B9",X"11",X"25",X"31",X"AB",X"18", + X"37",X"9C",X"A9",X"83",X"08",X"9C",X"83",X"02",X"21",X"A8",X"98",X"43",X"19",X"E9",X"2B",X"13", + X"8E",X"80",X"91",X"40",X"80",X"D8",X"20",X"20",X"B9",X"39",X"B4",X"1D",X"81",X"A0",X"39",X"01", + X"89",X"30",X"88",X"D8",X"60",X"88",X"B9",X"04",X"08",X"1C",X"A1",X"21",X"28",X"09",X"C9",X"33", + X"19",X"8A",X"A3",X"18",X"2A",X"A9",X"18",X"21",X"18",X"AC",X"12",X"80",X"2B",X"B3",X"18",X"29", + X"90",X"19",X"89",X"12",X"0D",X"01",X"92",X"29",X"C1",X"20",X"19",X"D0",X"12",X"0A",X"80",X"19", + X"11",X"0B",X"00",X"90",X"18",X"89",X"19",X"21",X"09",X"A8",X"29",X"08",X"09",X"11",X"80",X"89", + X"09",X"00",X"18",X"09",X"81",X"18",X"A1",X"8A",X"20",X"91",X"00",X"09",X"88",X"18",X"08",X"89", + X"10",X"08",X"08",X"08",X"08",X"08",X"19",X"09",X"00",X"09",X"18",X"00",X"0A",X"08",X"19",X"19", + X"08",X"00",X"89",X"10",X"09",X"08",X"10",X"08",X"B8",X"10",X"20",X"99",X"88",X"20",X"89",X"89", + X"10",X"28",X"19",X"90",X"80",X"18",X"98",X"29",X"18",X"08",X"90",X"88",X"00",X"00",X"89",X"09", + X"10",X"09",X"19",X"08",X"00",X"88",X"08",X"18",X"10",X"90",X"98",X"19",X"09",X"28",X"18",X"89", + X"00",X"08",X"88",X"29",X"08",X"00",X"09",X"08",X"80",X"19",X"88",X"00",X"08",X"80",X"08",X"09", + X"08",X"19",X"08",X"08",X"18",X"80",X"88",X"00",X"08",X"88",X"18",X"00",X"09",X"88",X"10",X"08", + X"88",X"09",X"19",X"80",X"08",X"10",X"09",X"09",X"80",X"08",X"18",X"09",X"19",X"18",X"89",X"18", + X"00",X"80",X"09",X"00",X"09",X"28",X"0A",X"00",X"19",X"1A",X"08",X"10",X"88",X"09",X"00",X"08", + X"08",X"08",X"19",X"08",X"88",X"08",X"09",X"18",X"18",X"88",X"00",X"08",X"08",X"88",X"00",X"08", + X"19",X"08",X"08",X"09",X"00",X"88",X"08",X"08",X"19",X"18",X"08",X"09",X"19",X"00",X"08",X"18", + X"88",X"88",X"08",X"00",X"08",X"09",X"19",X"18",X"88",X"00",X"08",X"18",X"88",X"88",X"10",X"08", + X"89",X"00",X"08",X"88",X"08",X"10",X"09",X"88",X"09",X"39",X"08",X"08",X"19",X"80",X"88",X"10", + X"09",X"08",X"09",X"19",X"08",X"08",X"00",X"80",X"88",X"08",X"00",X"08",X"08",X"88",X"08",X"00", + X"80",X"91",X"08",X"08",X"08",X"08",X"80",X"08",X"09",X"18",X"08",X"88",X"18",X"08",X"80",X"88", + X"08",X"00",X"00",X"08",X"88",X"08",X"08",X"89",X"18",X"18",X"88",X"08",X"18",X"08",X"08",X"08", + X"09",X"00",X"80",X"08",X"08",X"88",X"19",X"00",X"08",X"19",X"08",X"88",X"18",X"08",X"88",X"18", + X"80",X"88",X"19",X"00",X"09",X"29",X"08",X"08",X"80",X"08",X"09",X"18",X"08",X"09",X"18",X"08", + X"88",X"99",X"B9",X"B7",X"71",X"B0",X"BB",X"72",X"90",X"8D",X"82",X"89",X"E9",X"72",X"90",X"AC", + X"14",X"00",X"8C",X"92",X"10",X"3B",X"D1",X"00",X"39",X"CA",X"D9",X"75",X"A1",X"BB",X"34",X"92", + X"9E",X"82",X"01",X"2C",X"A2",X"88",X"4A",X"F4",X"0A",X"20",X"C0",X"29",X"03",X"CA",X"38",X"95", + X"8B",X"11",X"B2",X"1E",X"93",X"38",X"19",X"F0",X"10",X"11",X"C9",X"18",X"14",X"9B",X"08",X"02", + X"9E",X"A3",X"70",X"88",X"C9",X"31",X"02",X"CB",X"11",X"04",X"0C",X"80",X"91",X"0D",X"97",X"1A", + X"18",X"C1",X"39",X"01",X"D9",X"38",X"04",X"BA",X"2A",X"83",X"AF",X"27",X"98",X"1C",X"83",X"80", + X"1A",X"B2",X"19",X"21",X"D8",X"19",X"02",X"D9",X"37",X"88",X"8B",X"82",X"11",X"0B",X"B0",X"10", + X"31",X"CB",X"88",X"22",X"A9",X"85",X"70",X"80",X"AA",X"10",X"01",X"BC",X"08",X"83",X"0C",X"90", + X"83",X"3A",X"06",X"19",X"51",X"A8",X"8B",X"92",X"89",X"9F",X"92",X"98",X"38",X"93",X"09",X"51", + X"91",X"00",X"38",X"CB",X"A0",X"40",X"A9",X"98",X"89",X"28",X"20",X"9A",X"21",X"19",X"08",X"0A", + X"08",X"A1",X"49",X"9A",X"19",X"2A",X"30",X"90",X"09",X"10",X"89",X"00",X"09",X"88",X"80",X"38", + X"8A",X"2C",X"4A",X"3A",X"88",X"85",X"B2",X"2E",X"80",X"11",X"B6",X"C1",X"90",X"88",X"48",X"9A", + X"11",X"8D",X"32",X"2F",X"10",X"82",X"0C",X"10",X"8A",X"01",X"88",X"0C",X"94",X"2D",X"19",X"92", + X"12",X"B4",X"A9",X"3B",X"31",X"C1",X"A3",X"A5",X"E1",X"19",X"10",X"91",X"93",X"BC",X"A2",X"79", + X"91",X"D4",X"A2",X"08",X"91",X"B4",X"03",X"9E",X"1A",X"11",X"83",X"9B",X"3E",X"3B",X"20",X"59", + X"B0",X"97",X"B3",X"C0",X"21",X"B1",X"C5",X"D1",X"1A",X"3A",X"11",X"8B",X"20",X"2C",X"58",X"D1", + X"A4",X"90",X"A4",X"D1",X"92",X"28",X"88",X"A9",X"30",X"3C",X"9A",X"59",X"08",X"95",X"B0",X"91", + X"2D",X"5F",X"11",X"08",X"A8",X"2A",X"20",X"38",X"CA",X"10",X"A7",X"82",X"9D",X"28",X"12",X"0A", + X"CC",X"03",X"28",X"08",X"F9",X"22",X"3B",X"2F",X"2A",X"2E",X"48",X"92",X"92",X"19",X"1D",X"20", + X"00",X"8E",X"A9",X"06",X"12",X"AA",X"A3",X"56",X"89",X"EB",X"90",X"13",X"90",X"D0",X"84",X"12", + X"88",X"80",X"12",X"3A",X"1B",X"05",X"73",X"93",X"80",X"80",X"88",X"FF",X"F8",X"08",X"08",X"08", + X"00",X"73",X"AA",X"99",X"17",X"90",X"B9",X"03",X"78",X"80",X"88",X"E2",X"92",X"AA",X"08",X"01", + X"07",X"B1",X"A3",X"11",X"99",X"E1",X"32",X"90",X"80",X"80",X"F3",X"88",X"F8",X"08",X"08",X"60", + X"8C",X"80",X"06",X"90",X"C1",X"80",X"38",X"08",X"A9",X"A2",X"80",X"B1",X"88",X"07",X"30",X"A0", + X"F5",X"88",X"08",X"08",X"BB",X"70",X"80",X"D0",X"08",X"31",X"88",X"F1",X"80",X"49",X"0C",X"08", + X"04",X"80",X"C8",X"08",X"03",X"B8",X"00",X"70",X"88",X"08",X"08",X"08",X"BF",X"13",X"19",X"AB", + X"80",X"62",X"91",X"F8",X"08",X"24",X"D8",X"08",X"04",X"80",X"C8",X"08",X"12",X"A1",X"D2",X"48", + X"08",X"08",X"E8",X"14",X"90",X"E1",X"82",X"18",X"80",X"F1",X"80",X"49",X"8B",X"18",X"15",X"99", + X"B1",X"80",X"7B",X"80",X"83",X"29",X"08",X"0D",X"A1",X"33",X"AE",X"91",X"24",X"90",X"8F",X"00", + X"84",X"80",X"C8",X"08",X"31",X"F1",X"80",X"12",X"D1",X"02",X"90",X"80",X"8F",X"10",X"39",X"0A", + X"C5",X"08",X"08",X"D0",X"08",X"48",X"0C",X"08",X"08",X"19",X"08",X"03",X"59",X"00",X"80",X"88", + X"8F",X"89",X"78",X"08",X"C4",X"80",X"89",X"B1",X"80",X"41",X"8F",X"00",X"80",X"80",X"80",X"41", + X"D2",X"18",X"08",X"8A",X"E1",X"14",X"90",X"8E",X"13",X"90",X"AB",X"18",X"07",X"08",X"C8",X"00", + X"80",X"1A",X"01",X"97",X"00",X"80",X"80",X"9F",X"01",X"49",X"08",X"80",X"80",X"8F",X"08",X"80", + X"07",X"B8",X"08",X"08",X"08",X"83",X"59",X"18",X"80",X"80",X"8D",X"D1",X"50",X"88",X"08",X"81", + X"AF",X"08",X"00",X"80",X"80",X"84",X"59",X"E0",X"08",X"23",X"90",X"80",X"88",X"08",X"0D",X"48", + X"80",X"80",X"80",X"FB",X"19",X"00",X"80",X"80",X"80",X"47",X"E0",X"08",X"06",X"88",X"08",X"08", + X"08",X"08",X"0F",X"48",X"80",X"80",X"8F",X"00",X"80",X"80",X"80",X"80",X"80",X"7B",X"80",X"84", + X"83",X"90",X"80",X"80",X"80",X"80",X"88",X"08",X"08",X"08",X"FF",X"A0",X"80",X"80",X"80",X"80", + X"80",X"08",X"7B",X"70",X"18",X"4A",X"18",X"08",X"80",X"80",X"80",X"88",X"08",X"0A",X"FF",X"A4", + X"C0",X"08",X"08",X"08",X"08",X"08",X"08",X"27",X"78",X"0F",X"03",X"80",X"88",X"08",X"08",X"08", + X"08",X"08",X"08",X"F2",X"F5",X"98",X"B2",X"90",X"08",X"08",X"08",X"08",X"02",X"97",X"B6",X"98", + X"02",X"90",X"08",X"80",X"F4",X"88",X"A9",X"15",X"90",X"80",X"F3",X"A3",X"C1",X"B2",X"90",X"08", + X"08",X"08",X"08",X"08",X"65",X"B9",X"20",X"3A",X"18",X"A1",X"F1",X"49",X"08",X"BA",X"7D",X"49", + X"00",X"88",X"A8",X"84",X"82",X"E0",X"88",X"08",X"19",X"08",X"08",X"03",X"3E",X"12",X"82",X"E2", + X"28",X"08",X"90",X"19",X"D1",X"B7",X"8B",X"3C",X"14",X"99",X"0F",X"11",X"29",X"0E",X"18",X"2B", + X"19",X"01",X"0A",X"3C",X"6A",X"18",X"3B",X"2C",X"39",X"1B",X"79",X"00",X"9C",X"20",X"2A",X"1A", + X"3E",X"1A",X"59",X"1C",X"09",X"49",X"10",X"AA",X"58",X"10",X"CA",X"18",X"39",X"09",X"79",X"99", + X"80",X"32",X"0D",X"A8",X"25",X"18",X"AA",X"00",X"28",X"09",X"80",X"89",X"41",X"3A",X"1F",X"9D", + X"11",X"3A",X"08",X"04",X"B9",X"BC",X"32",X"8B",X"0B",X"61",X"14",X"9C",X"8A",X"48",X"08",X"40", + X"49",X"99",X"98",X"83",X"90",X"C8",X"32",X"0E",X"AA",X"19",X"41",X"A0",X"A8",X"14",X"21",X"BB", + X"9B",X"87",X"00",X"A5",X"87",X"8A",X"B0",X"17",X"91",X"A0",X"B3",X"C2",X"8A",X"0B",X"21",X"8E", + X"02",X"61",X"0B",X"A9",X"11",X"13",X"B0",X"92",X"68",X"8E",X"00",X"02",X"B2",X"91",X"80",X"B2", + X"DB",X"96",X"B8",X"D1",X"17",X"00",X"A0",X"A4",X"A2",X"B2",X"93",X"04",X"AA",X"0B",X"28",X"2F", + X"28",X"08",X"A4",X"B2",X"A1",X"98",X"8F",X"1B",X"4A",X"68",X"2B",X"0B",X"01",X"58",X"09",X"82", + X"12",X"4D",X"AC",X"28",X"69",X"1B",X"1C",X"2A",X"82",X"93",X"C1",X"B1",X"10",X"0A",X"4A",X"29", + X"E2",X"16",X"00",X"8A",X"8C",X"48",X"49",X"A9",X"08",X"69",X"0A",X"88",X"A9",X"83",X"80",X"08", + X"32",X"C2",X"6C",X"1F",X"91",X"22",X"28",X"0A",X"0B",X"80",X"97",X"A1",X"2B",X"2C",X"49",X"3D", + X"0B",X"89",X"21",X"83",X"D4",X"92",X"A2",X"B2",X"E5",X"88",X"1C",X"29",X"11",X"19",X"C1",X"A2", + X"84",X"82",X"DA",X"81",X"F7",X"B4",X"B1",X"99",X"4B",X"5A",X"88",X"01",X"28",X"0A",X"AA",X"50", + X"28",X"9B",X"88",X"71",X"0B",X"A9",X"20",X"20",X"B8",X"A0",X"11",X"0C",X"8C",X"50",X"1B",X"93", + X"04",X"A0",X"4A",X"29",X"BF",X"3C",X"7A",X"5B",X"0A",X"21",X"10",X"D9",X"00",X"68",X"99",X"80", + X"18",X"69",X"BC",X"10",X"59",X"00",X"80",X"BB",X"25",X"11",X"BB",X"08",X"84",X"11",X"D8",X"B3", + X"04",X"83",X"AA",X"97",X"79",X"20",X"88",X"8F",X"C9",X"13",X"19",X"9C",X"90",X"80",X"08",X"00", + X"62",X"18",X"4E",X"0C",X"71",X"90",X"0C",X"A7",X"88",X"08",X"00",X"9B",X"91",X"08",X"18",X"B2", + X"23",X"02",X"FA",X"84",X"18",X"E0",X"07",X"80",X"88",X"D1",X"21",X"90",X"80",X"80",X"8F",X"80", + X"81",X"3E",X"5A",X"1A",X"09",X"2A",X"2B",X"18",X"52",X"90",X"8F",X"00",X"49",X"00",X"80",X"80", + X"F0",X"80",X"48",X"A1",X"C1",X"91",X"85",X"B1",X"B1",X"87",X"80",X"8A",X"A1",X"32",X"90",X"80", + X"08",X"AF",X"88",X"78",X"0D",X"18",X"80",X"10",X"2F",X"18",X"84",X"80",X"8A",X"A1",X"06",X"90", + X"08",X"08",X"D8",X"01",X"49",X"0E",X"18",X"80",X"5B",X"3D",X"18",X"85",X"90",X"8C",X"18",X"13", + X"90",X"80",X"BD",X"18",X"50",X"90",X"C0",X"80",X"86",X"80",X"D1",X"88",X"59",X"00",X"B8",X"03", + X"18",X"08",X"8E",X"90",X"16",X"D0",X"00",X"91",X"93",X"29",X"B9",X"80",X"27",X"80",X"8E",X"08", + X"69",X"08",X"08",X"9B",X"18",X"4A",X"3C",X"91",X"81",X"79",X"8B",X"19",X"17",X"90",X"09",X"C1", + X"04",X"90",X"80",X"9D",X"18",X"14",X"9B",X"91",X"80",X"78",X"0A",X"B1",X"87",X"80",X"89",X"B1", + X"58",X"80",X"08",X"9E",X"18",X"40",X"9C",X"18",X"80",X"58",X"0C",X"80",X"05",X"90",X"08",X"E1", + X"11",X"80",X"88",X"BA",X"18",X"78",X"0D",X"18",X"80",X"58",X"8B",X"80",X"87",X"88",X"08",X"B8", + X"04",X"08",X"08",X"9F",X"18",X"31",X"99",X"C1",X"88",X"35",X"90",X"F0",X"02",X"19",X"08",X"08", + X"F3",X"08",X"08",X"08",X"F0",X"08",X"48",X"C1",X"80",X"80",X"30",X"8C",X"88",X"17",X"90",X"80", + X"80",X"91",X"08",X"08",X"80",X"FA",X"08",X"18",X"80",X"80",X"80",X"07",X"28",X"D8",X"16",X"88", + X"08",X"08",X"08",X"08",X"08",X"08",X"0F",X"D0",X"87",X"99",X"91",X"88",X"01",X"7A",X"98",X"00", + X"22",X"88",X"92",X"88",X"08",X"08",X"92",X"90",X"9F",X"F8",X"81",X"90",X"08",X"08",X"00",X"70", + X"A8",X"B7",X"20",X"80",X"C4",X"90",X"08",X"08",X"80",X"80",X"91",X"F6",X"F1",X"80",X"80",X"90", + X"08",X"08",X"06",X"C1",X"93",X"84",X"90",X"A1",X"A4",X"A2",X"80",X"88",X"08",X"08",X"A8",X"4F", + X"2F",X"09",X"15",X"8C",X"08",X"08",X"2A",X"08",X"03",X"4F",X"2A",X"20",X"19",X"99",X"05",X"80", + X"89",X"C6",X"90",X"08",X"9A",X"A7",X"0B",X"80",X"02",X"B9",X"18",X"02",X"C3",X"99",X"40",X"33", + X"E2",X"09",X"2B",X"86",X"90",X"8E",X"12",X"80",X"8A",X"A3",X"09",X"F0",X"85",X"1B",X"B0",X"80", + X"01",X"31",X"E2",X"91",X"3D",X"20",X"B2",X"94",X"20",X"8A",X"AE",X"98",X"70",X"0A",X"0A",X"3C", + X"02",X"92",X"80",X"08",X"D0",X"AB",X"73",X"90",X"D2",X"29",X"BA",X"80",X"78",X"28",X"B0",X"99", + X"95",X"83",X"92",X"B9",X"03",X"80",X"FA",X"22",X"41",X"9A",X"C9",X"C2",X"02",X"52",X"9C",X"AC", + X"13",X"11",X"B0",X"97",X"80",X"B1",X"A9",X"83",X"37",X"08",X"BB",X"E1",X"05",X"01",X"99",X"B9", + X"82",X"41",X"8A",X"B1",X"23",X"00",X"CF",X"98",X"51",X"38",X"BA",X"C8",X"20",X"51",X"99",X"98", + X"A0",X"94",X"21",X"C0",X"A1",X"83",X"08",X"9D",X"94",X"51",X"9B",X"A2",X"90",X"A8",X"71",X"2C", + X"BA",X"02",X"50",X"0C",X"90",X"31",X"8A",X"A9",X"20",X"12",X"4A",X"3F",X"A0",X"82",X"06",X"A0", + X"D0",X"01",X"01",X"90",X"99",X"10",X"51",X"BA",X"9C",X"04",X"40",X"08",X"D9",X"81",X"52",X"8A", + X"F8",X"01",X"28",X"0A",X"89",X"A1",X"53",X"89",X"C8",X"A4",X"05",X"18",X"CB",X"A8",X"53",X"38", + X"8E",X"AA",X"12",X"40",X"89",X"AB",X"81",X"50",X"0C",X"98",X"43",X"29",X"9C",X"B9",X"34",X"70", + X"89",X"99",X"C8",X"86",X"10",X"B9",X"A2",X"08",X"92",X"8A",X"39",X"35",X"1C",X"0D",X"00",X"27", + X"01",X"C8",X"A0",X"91",X"41",X"0E",X"80",X"0A",X"88",X"13",X"A0",X"A2",X"25",X"A9",X"C9",X"46", + X"10",X"A9",X"A2",X"98",X"20",X"80",X"B2",X"1D",X"F0",X"13",X"9A",X"A3",X"59",X"A9",X"92",X"13", + X"41",X"0F",X"99",X"30",X"6B",X"01",X"C8",X"10",X"19",X"98",X"1C",X"1A",X"70",X"2E",X"09",X"02", + X"28",X"3E",X"2C",X"88",X"32",X"0A",X"AC",X"11",X"81",X"38",X"8D",X"2F",X"3C",X"59",X"1A",X"18", + X"88",X"31",X"1D",X"BA",X"52",X"18",X"AB",X"98",X"33",X"9C",X"09",X"32",X"BC",X"F4",X"20",X"BC", + X"95",X"31",X"9A",X"9D",X"40",X"00",X"9A",X"40",X"4B",X"99",X"13",X"13",X"C9",X"C9",X"88",X"EB", + X"19",X"21",X"C8",X"A8",X"09",X"F7",X"30",X"9D",X"82",X"63",X"90",X"8E",X"D2",X"59",X"00",X"80", + X"9E",X"18",X"1A",X"08",X"02",X"59",X"A8",X"A0",X"80",X"4A",X"92",X"70",X"08",X"F0",X"85",X"88", + X"08",X"08",X"0A",X"D1",X"05",X"B9",X"02",X"28",X"0D",X"90",X"08",X"08",X"04",X"59",X"0A",X"E1", + X"05",X"90",X"80",X"80",X"89",X"E1",X"84",X"0A",X"80",X"20",X"D9",X"08",X"08",X"00",X"83",X"78", + X"09",X"F1",X"03",X"90",X"81",X"90",X"0B",X"F1",X"84",X"08",X"98",X"82",X"F0",X"00",X"09",X"80", + X"85",X"29",X"0B",X"D1",X"24",X"98",X"82",X"90",X"0F",X"A1",X"87",X"89",X"92",X"18",X"D0",X"80", + X"80",X"80",X"07",X"80",X"8D",X"00",X"48",X"89",X"28",X"80",X"8F",X"08",X"31",X"BA",X"78",X"8A", + X"91",X"88",X"08",X"00",X"78",X"00",X"F1",X"83",X"08",X"08",X"80",X"80",X"F0",X"88",X"19",X"17", + X"90",X"C0",X"08",X"81",X"90",X"07",X"91",X"8D",X"18",X"38",X"08",X"08",X"08",X"CB",X"18",X"07", + X"B4",X"08",X"9B",X"08",X"87",X"B0",X"83",X"29",X"0B",X"D1",X"07",X"90",X"80",X"0D",X"08",X"59", + X"0A",X"88",X"1A",X"78",X"8C",X"2A",X"2A",X"18",X"58",X"08",X"8D",X"10",X"49",X"08",X"09",X"E1", + X"85",X"90",X"9A",X"08",X"06",X"89",X"92",X"C1",X"90",X"15",X"90",X"0D",X"80",X"59",X"00",X"80", + X"D0",X"80",X"48",X"09",X"C1",X"88",X"41",X"A2",X"F0",X"08",X"14",X"90",X"89",X"D1",X"22",X"90", + X"80",X"BE",X"18",X"33",X"9A",X"E1",X"80",X"86",X"80",X"9B",X"08",X"26",X"90",X"80",X"8E",X"04", + X"88",X"08",X"0B",X"B2",X"96",X"19",X"C0",X"80",X"80",X"78",X"0A",X"A1",X"10",X"39",X"00",X"80", + X"88",X"E3",X"00",X"88",X"0F",X"B1",X"80",X"78",X"C0",X"08",X"08",X"34",X"99",X"E1",X"83",X"18", + X"81",X"88",X"08",X"08",X"9F",X"82",X"12",X"99",X"EA",X"00",X"80",X"80",X"80",X"08",X"43",X"4F", + X"08",X"41",X"09",X"8A",X"40",X"80",X"80",X"8A",X"AF",X"78",X"80",X"8E",X"00",X"80",X"59",X"B0", + X"08",X"08",X"10",X"29",X"D2",X"84",X"28",X"89",X"9A",X"78",X"08",X"08",X"08",X"0D",X"C1",X"79", + X"1D",X"00",X"88",X"08",X"00",X"91",X"01",X"0B",X"84",X"12",X"09",X"48",X"A2",X"1B",X"2E",X"B2", + X"25",X"90",X"AF",X"00",X"20",X"9E",X"1A",X"59",X"1A",X"0A",X"08",X"22",X"2A",X"2E",X"01",X"12", + X"3D",X"09",X"04",X"8E",X"00",X"12",X"9A",X"A9",X"24",X"01",X"D9",X"1A",X"3B",X"48",X"3F",X"08", + X"00",X"18",X"3D",X"88",X"82",X"1A",X"38",X"A1",X"A0",X"2A",X"72",X"E0",X"89",X"21",X"23",X"E9", + X"91",X"20",X"A4",X"A0",X"AE",X"14",X"A2",X"8B",X"A8",X"87",X"80",X"08",X"91",X"B1",X"C3",X"32", + X"02",X"DA",X"9A",X"36",X"13",X"BF",X"A1",X"04",X"08",X"A9",X"A2",X"01",X"01",X"21",X"CC",X"A8", + X"50",X"40",X"8B",X"A9",X"84",X"14",X"8A",X"CC",X"11",X"59",X"2C",X"0A",X"08",X"30",X"4B",X"1B", + X"4B",X"8B",X"14",X"52",X"BB",X"A0",X"51",X"00",X"FA",X"81",X"34",X"80",X"D9",X"A2",X"83",X"20", + X"89",X"A3",X"C8",X"90",X"52",X"B9",X"10",X"51",X"99",X"DA",X"C8",X"37",X"20",X"D9",X"90",X"21", + X"00",X"98",X"20",X"0D",X"A8",X"43",X"0B",X"B2",X"07",X"1A",X"AB",X"B9",X"14",X"72",X"0C",X"C9", + X"01",X"31",X"91",X"92",X"08",X"BC",X"03",X"69",X"B9",X"32",X"7A",X"9A",X"89",X"8A",X"33",X"71", + X"9E",X"98",X"02",X"10",X"00",X"10",X"BB",X"A4",X"44",X"AE",X"00",X"40",X"89",X"AB",X"81",X"02", + X"23",X"9C",X"D9",X"03",X"83",X"A3",X"13",X"CA",X"D1",X"42",X"0C",X"C3",X"14",X"91",X"F0",X"91", + X"81",X"93",X"01",X"DC",X"98",X"41",X"00",X"81",X"8C",X"A8",X"45",X"19",X"C9",X"13",X"38",X"CC", + X"98",X"43",X"09",X"90",X"9A",X"E0",X"14",X"1B",X"18",X"38",X"E8",X"91",X"59",X"0A",X"02",X"38", + X"1E",X"9B",X"96",X"11",X"89",X"0B",X"A9",X"07",X"81",X"90",X"11",X"AB",X"A0",X"71",X"A8",X"A2", + X"20",X"2A",X"FA",X"93",X"50",X"1B",X"1B",X"0A",X"93",X"79",X"1D",X"81",X"48",X"1D",X"88",X"92", + X"10",X"20",X"B0",X"1F",X"0B",X"30",X"78",X"0B",X"88",X"29",X"31",X"BA",X"F2",X"22",X"90",X"E3", + X"C0",X"A1",X"16",X"B8",X"A1",X"11",X"A0",X"10",X"9E",X"DA",X"52",X"73",X"90",X"09",X"FC",X"03", + X"48",X"08",X"0A",X"F8",X"80",X"83",X"18",X"8A",X"B0",X"08",X"04",X"72",X"80",X"8F",X"90",X"50", + X"80",X"88",X"08",X"DA",X"18",X"85",X"02",X"88",X"08",X"F8",X"80",X"79",X"09",X"81",X"9A",X"08", + X"42",X"90",X"19",X"18",X"9D",X"C0",X"33",X"A3",X"D2",X"02",X"9F",X"90",X"80",X"60",X"B8",X"90", + X"80",X"08",X"08",X"72",X"80",X"BF",X"18",X"40",X"A3",X"88",X"08",X"F0",X"88",X"08",X"34",X"90", + X"8F",X"08",X"04",X"88",X"08",X"A8",X"A1",X"87",X"08",X"0C",X"80",X"6A",X"2E",X"48",X"00",X"8D", + X"00",X"21",X"9C",X"30",X"08",X"F1",X"00",X"2A",X"B2",X"90",X"27",X"90",X"8E",X"10",X"11",X"99", + X"59",X"08",X"AB",X"18",X"51",X"91",X"89",X"2F",X"90",X"02",X"3F",X"08",X"03",X"08",X"0C",X"A1", + X"05",X"8D",X"31",X"90",X"0F",X"18",X"85",X"98",X"18",X"08",X"E1",X"82",X"0D",X"18",X"01",X"39", + X"08",X"F1",X"91",X"4B",X"84",X"90",X"8A",X"A1",X"86",X"0A",X"02",X"88",X"D8",X"00",X"1B",X"18", + X"81",X"70",X"08",X"F0",X"00",X"39",X"A5",X"90",X"89",X"C1",X"86",X"9A",X"05",X"90",X"9C",X"18", + X"00",X"88",X"00",X"78",X"08",X"D0",X"02",X"19",X"B7",X"90",X"89",X"C1",X"85",X"8C",X"14",X"90", + X"AA",X"18",X"31",X"F1",X"91",X"49",X"08",X"D1",X"84",X"98",X"A5",X"90",X"0B",X"90",X"86",X"C3", + X"19",X"08",X"D1",X"82",X"B1",X"90",X"07",X"80",X"8D",X"18",X"38",X"0D",X"5A",X"18",X"8D",X"18", + X"80",X"13",X"80",X"8F",X"08",X"3C",X"4C",X"18",X"59",X"08",X"C1",X"85",X"90",X"80",X"80",X"88", + X"F1",X"88",X"31",X"90",X"0F",X"08",X"04",X"9B",X"00",X"15",X"90",X"8C",X"80",X"32",X"90",X"80", + X"9F",X"48",X"0D",X"00",X"80",X"38",X"19",X"8D",X"08",X"08",X"08",X"05",X"39",X"08",X"CD",X"14", + X"19",X"18",X"8D",X"A1",X"07",X"8C",X"00",X"80",X"30",X"08",X"AE",X"18",X"19",X"50",X"80",X"80", + X"9F",X"31",X"90",X"08",X"0F",X"08",X"48",X"8C",X"18",X"08",X"23",X"90",X"D9",X"02",X"2A",X"59", + X"08",X"08",X"0F",X"49",X"00",X"80",X"8E",X"08",X"11",X"9A",X"18",X"08",X"37",X"9A",X"A0",X"06", + X"08",X"88",X"18",X"08",X"08",X"08",X"EC",X"51",X"88",X"09",X"E1",X"88",X"08",X"08",X"08",X"00", + X"58",X"0C",X"15",X"81",X"9A",X"81",X"04",X"90",X"80",X"80",X"80",X"BB",X"78",X"BF",X"08",X"08", + X"01",X"A8",X"08",X"08",X"75",X"AA",X"A1",X"83",X"51",X"88",X"8A",X"04",X"90",X"08",X"88",X"D4", + X"91",X"88",X"FA",X"91",X"85",X"98",X"B1",X"80",X"08",X"12",X"92",X"18",X"73",X"98",X"29",X"18", + X"4A",X"9E",X"80",X"79",X"8B",X"10",X"39",X"8B",X"9F",X"08",X"35",X"9A",X"AA",X"20",X"3B",X"83", + X"58",X"2E",X"11",X"92",X"91",X"0C",X"81",X"42",X"19",X"BE",X"AA",X"16",X"48",X"8B",X"89",X"2A", + X"8B",X"52",X"3B",X"8F",X"0A",X"22",X"10",X"9F",X"00",X"13",X"29",X"C9",X"B0",X"14",X"60",X"8A", + X"C0",X"02",X"81",X"19",X"98",X"99",X"91",X"44",X"A9",X"BB",X"88",X"53",X"2A",X"8D",X"AB",X"14", + X"70",X"8B",X"80",X"21",X"89",X"90",X"80",X"8A",X"B7",X"23",X"B9",X"B9",X"E0",X"05",X"15",X"99", + X"CA",X"83",X"60",X"0B",X"09",X"28",X"8E",X"00",X"32",X"AB",X"B1",X"13",X"0A",X"8A",X"78",X"1B", + X"0B",X"49",X"29",X"38",X"19",X"B2",X"52",X"0C",X"FC",X"30",X"69",X"8B",X"90",X"43",X"0C",X"AA", + X"52",X"A8",X"A1",X"28",X"39",X"9C",X"A1",X"30",X"23",X"29",X"FF",X"01",X"20",X"98",X"A8",X"29", + X"28",X"84",X"79",X"AB",X"B3",X"26",X"1A",X"A8",X"80",X"80",X"12",X"2D",X"CA",X"31",X"39",X"C9", + X"B0",X"22",X"70",X"20",X"0F",X"8B",X"32",X"59",X"88",X"00",X"8C",X"A9",X"21",X"22",X"08",X"AC", + X"C9",X"91",X"94",X"87",X"04",X"98",X"D9",X"92",X"38",X"03",X"30",X"2D",X"AF",X"88",X"83",X"42", + X"09",X"E9",X"A8",X"20",X"82",X"33",X"4E",X"9B",X"01",X"39",X"88",X"44",X"1A",X"BB",X"A0",X"92", + X"15",X"42",X"9B",X"E8",X"A2",X"91",X"B6",X"13",X"8C",X"A8",X"09",X"00",X"22",X"11",X"33",X"D3", + X"F8",X"CA",X"15",X"11",X"2D",X"0B",X"89",X"49",X"39",X"39",X"8C",X"12",X"90",X"F9",X"32",X"29", + X"90",X"28",X"0F",X"99",X"86",X"11",X"8A",X"B9",X"A2",X"07",X"00",X"A1",X"90",X"29",X"BC",X"B7", + X"03",X"B2",X"E2",X"80",X"1A",X"9B",X"35",X"18",X"0B",X"B0",X"93",X"27",X"B9",X"A2",X"35",X"99", + X"D8",X"02",X"89",X"1A",X"12",X"07",X"AC",X"9A",X"42",X"90",X"89",X"29",X"87",X"8A",X"0B",X"24", + X"00",X"11",X"C3",X"D9",X"83",X"04",X"88",X"1B",X"0F",X"80",X"1D",X"89",X"B3",X"C5",X"08",X"99", + X"A2",X"83",X"29",X"FF",X"51",X"17",X"08",X"08",X"EE",X"10",X"59",X"19",X"18",X"8E",X"08",X"08", + X"30",X"09",X"3A",X"BC",X"18",X"52",X"89",X"90",X"2A",X"8A",X"83",X"40",X"8C",X"83",X"22",X"CE", + X"98",X"10",X"08",X"18",X"98",X"C8",X"42",X"08",X"A2",X"21",X"10",X"81",X"5A",X"1E",X"88",X"88", + X"2B",X"99",X"29",X"4C",X"19",X"9C",X"B0",X"07",X"32",X"9A",X"90",X"85",X"C1",X"02",X"58",X"88", + X"94",X"7E",X"9D",X"11",X"3B",X"24",X"29",X"18",X"FD",X"00",X"48",X"1A",X"49",X"0A",X"F1",X"80", + X"22",X"B9",X"28",X"B8",X"81",X"54",X"F8",X"31",X"90",X"AC",X"18",X"68",X"B5",X"90",X"08",X"D0", + X"00",X"20",X"08",X"0B",X"C0",X"08",X"52",X"B9",X"A1",X"60",X"88",X"C2",X"B8",X"27",X"90",X"0E", + X"00",X"20",X"0B",X"59",X"00",X"9E",X"18",X"08",X"21",X"08",X"1E",X"80",X"01",X"2E",X"08",X"01", + X"59",X"08",X"C8",X"02",X"39",X"80",X"08",X"0D",X"D1",X"82",X"5A",X"80",X"28",X"BD",X"18",X"42", + X"AD",X"00",X"80",X"07",X"80",X"8A",X"B1",X"84",X"28",X"80",X"80",X"8F",X"90",X"81",X"68",X"08", + X"09",X"F1",X"81",X"28",X"D0",X"08",X"08",X"07",X"90",X"0A",X"B1",X"87",X"88",X"08",X"08",X"0F", + X"18",X"82",X"3A",X"18",X"8B",X"C0",X"80",X"68",X"C1",X"88",X"08",X"70",X"80",X"8E",X"18",X"13", + X"90",X"80",X"80",X"F8",X"08",X"06",X"88",X"08",X"0D",X"80",X"01",X"3E",X"08",X"08",X"00",X"69", + X"08",X"B8",X"08",X"60",X"80",X"88",X"08",X"F0",X"80",X"31",X"91",X"88",X"F0",X"80",X"48",X"C0", + X"08",X"08",X"16",X"90",X"8D",X"00",X"02",X"18",X"08",X"08",X"8F",X"09",X"07",X"90",X"80",X"8A", + X"B2",X"92",X"7D",X"00",X"80",X"13",X"80",X"88",X"F0",X"80",X"58",X"80",X"80",X"8C",X"90",X"80", + X"60",X"80",X"8A",X"C1",X"84",X"9A",X"80",X"08",X"17",X"00",X"80",X"F0",X"84",X"80",X"80",X"80", + X"89",X"F1",X"88",X"01",X"30",X"B4",X"98",X"A9",X"B1",X"80",X"80",X"74",X"90",X"08",X"0F",X"88", + X"41",X"90",X"80",X"8F",X"09",X"18",X"19",X"00",X"68",X"19",X"0A",X"B9",X"18",X"82",X"71",X"80", + X"80",X"80",X"CF",X"10",X"59",X"08",X"08",X"E0",X"08",X"00",X"88",X"80",X"36",X"90",X"9C",X"80", + X"82",X"68",X"80",X"80",X"80",X"80",X"F9",X"24",X"90",X"80",X"0F",X"80",X"82",X"A8",X"08",X"01", + X"70",X"8A",X"B0",X"00",X"70",X"88",X"00",X"88",X"08",X"08",X"8F",X"95",X"08",X"08",X"8F",X"00", + X"80",X"18",X"A0",X"08",X"04",X"28",X"E8",X"00",X"60",X"88",X"08",X"91",X"80",X"08",X"00",X"80", + X"8D",X"1F",X"3B",X"4D",X"09",X"00",X"80",X"09",X"00",X"80",X"82",X"71",X"8D",X"21",X"28",X"0C", + X"93",X"02",X"90",X"B4",X"F2",X"82",X"99",X"C1",X"28",X"1F",X"98",X"00",X"7C",X"19",X"08",X"00", + X"00",X"03",X"A8",X"90",X"61",X"89",X"89",X"28",X"81",X"B0",X"18",X"2B",X"F1",X"93",X"04",X"92", + X"FB",X"91",X"28",X"88",X"7B",X"A8",X"84",X"19",X"88",X"82",X"58",X"1A",X"18",X"88",X"A3",X"23", + X"3F",X"A8",X"35",X"B1",X"D9",X"82",X"01",X"96",X"98",X"B8",X"B2",X"A4",X"80",X"30",X"F9",X"B5", + X"81",X"94",X"B1",X"A1",X"11",X"20",X"06",X"C8",X"9B",X"68",X"01",X"89",X"2C",X"94",X"B3",X"9C", + X"21",X"95",X"B1",X"9C",X"12",X"81",X"C9",X"10",X"20",X"D2",X"7A",X"0A",X"A0",X"18",X"51",X"01", + X"C8",X"9A",X"50",X"80",X"A8",X"20",X"3A",X"D2",X"80",X"B1",X"B4",X"B4",X"14",X"01",X"DA",X"C0", + X"04",X"93",X"C3",X"9A",X"02",X"89",X"E0",X"01",X"29",X"11",X"A8",X"05",X"9A",X"90",X"68",X"AB", + X"45",X"39",X"BE",X"80",X"20",X"09",X"28",X"00",X"F8",X"83",X"18",X"E8",X"82",X"19",X"A2",X"13", + X"E8",X"91",X"82",X"31",X"03",X"AD",X"BA",X"60",X"59",X"8A",X"88",X"49",X"1C",X"09",X"1A",X"29", + X"2E",X"01",X"42",X"9D",X"98",X"21",X"1C",X"10",X"50",X"A9",X"A9",X"13",X"1A",X"6A",X"2B",X"2A", + X"3C",X"0F",X"2A",X"12",X"0A",X"29",X"5C",X"0B",X"58",X"2B",X"90",X"29",X"52",X"C8",X"B1",X"11", + X"E3",X"83",X"09",X"A0",X"B0",X"A9",X"09",X"28",X"34",X"8C",X"B8",X"23",X"B2",X"23",X"B3",X"95", + X"2C",X"7A",X"2E",X"09",X"00",X"70",X"1A",X"9A",X"B9",X"34",X"00",X"A9",X"09",X"8C",X"86",X"03", + X"0F",X"0A",X"22",X"01",X"89",X"80",X"0C",X"A2",X"36",X"A5",X"98",X"AD",X"18",X"10",X"2B",X"1C", + X"49",X"2D",X"29",X"2A",X"A8",X"96",X"22",X"C9",X"90",X"58",X"8A",X"A2",X"18",X"51",X"A2",X"A9", + X"BC",X"B8",X"73",X"19",X"AD",X"22",X"11",X"DB",X"01",X"32",X"22",X"9F",X"C8",X"03",X"B3",X"B2", + X"A3",X"91",X"B1",X"C3",X"B1",X"E3",X"17",X"89",X"B3",X"30",X"0B",X"04",X"74",X"18",X"8D",X"BA", + X"98",X"1A",X"4A",X"C8",X"99",X"AB",X"22",X"43",X"9D",X"E8",X"73",X"2C",X"87",X"11",X"8B",X"F9", + X"87",X"00",X"91",X"90",X"E8",X"08",X"03",X"18",X"81",X"89",X"F8",X"00",X"50",X"09",X"88",X"0A", + X"A9",X"14",X"21",X"9A",X"00",X"8A",X"BA",X"36",X"30",X"AB",X"08",X"1A",X"B9",X"23",X"58",X"AB", + X"01",X"3E",X"09",X"43",X"09",X"AD",X"08",X"40",X"88",X"08",X"0A",X"AC",X"30",X"69",X"0C",X"28", + X"2B",X"18",X"39",X"91",X"40",X"0A",X"AD",X"03",X"09",X"D1",X"13",X"5A",X"A9",X"E0",X"03",X"80", + X"86",X"90",X"A0",X"8A",X"8D",X"24",X"A2",X"03",X"20",X"FA",X"B5",X"11",X"8B",X"A7",X"0F",X"9C", + X"71",X"89",X"98",X"10",X"02",X"C6",X"9A",X"BA",X"14",X"70",X"08",X"8B",X"E1",X"81",X"58",X"08", + X"0A",X"BA",X"03",X"7C",X"1B",X"12",X"4A",X"0E",X"10",X"09",X"88",X"06",X"08",X"0D",X"80",X"30", + X"1D",X"49",X"08",X"0E",X"18",X"01",X"1B",X"59",X"08",X"C0",X"08",X"58",X"8A",X"0A",X"2A",X"00", + X"07",X"80",X"8E",X"18",X"21",X"A8",X"49",X"08",X"AC",X"18",X"13",X"01",X"08",X"0F",X"98",X"87", + X"08",X"8D",X"18",X"80",X"40",X"80",X"9E",X"18",X"31",X"90",X"08",X"80",X"F8",X"08",X"03",X"29", + X"18",X"CD",X"18",X"07",X"80",X"C8",X"00",X"83",X"29",X"08",X"F0",X"80",X"48",X"08",X"08",X"0C", + X"B2",X"90",X"17",X"80",X"89",X"D1",X"80",X"69",X"0C",X"18",X"80",X"05",X"90",X"0B",X"A1",X"82", + X"69",X"08",X"08",X"0F",X"08",X"00",X"59",X"08",X"C0",X"80",X"06",X"90",X"C0",X"08",X"08",X"68", + X"80",X"9B",X"18",X"24",X"90",X"80",X"80",X"F8",X"80",X"50",X"88",X"8B",X"90",X"80",X"70",X"8E", + X"18",X"08",X"11",X"29",X"08",X"F0",X"80",X"58",X"80",X"80",X"8C",X"80",X"87",X"88",X"0A",X"A2", + X"A1",X"07",X"99",X"A1",X"80",X"12",X"D6",X"90",X"0C",X"00",X"84",X"88",X"08",X"08",X"C8",X"08", + X"50",X"80",X"C9",X"19",X"51",X"9B",X"91",X"88",X"17",X"09",X"18",X"08",X"9F",X"08",X"58",X"08", + X"08",X"E1",X"80",X"20",X"B9",X"19",X"07",X"80",X"8D",X"18",X"00",X"49",X"0A",X"84",X"88",X"08", + X"D8",X"04",X"08",X"08",X"0E",X"80",X"87",X"9A",X"08",X"08",X"32",X"99",X"D1",X"88",X"50",X"89", + X"91",X"39",X"08",X"00",X"FA",X"06",X"08",X"80",X"AC",X"18",X"33",X"CC",X"18",X"08",X"78",X"0C", + X"00",X"82",X"29",X"1A",X"B8",X"51",X"80",X"80",X"80",X"DD",X"23",X"08",X"08",X"F8",X"80",X"03", + X"C0",X"80",X"80",X"07",X"98",X"A8",X"25",X"08",X"08",X"B0",X"13",X"90",X"88",X"08",X"08",X"0E", + X"BF",X"16",X"80",X"8F",X"00",X"80",X"81",X"89",X"00",X"80",X"68",X"0C",X"81",X"13",X"19",X"08", + X"E3",X"89",X"38",X"89",X"F1",X"03",X"91",X"E1",X"A4",X"A3",X"D1",X"A0",X"80",X"05",X"98",X"A9", + X"18",X"13",X"1C",X"19",X"38",X"89",X"23",X"2C",X"A8",X"61",X"9A",X"A7",X"A2",X"A2",X"C9",X"B3", + X"32",X"11",X"A0",X"FD",X"81",X"50",X"88",X"C8",X"00",X"20",X"98",X"B1",X"69",X"09",X"12",X"10", + X"8D",X"19",X"3A",X"80",X"24",X"01",X"F9",X"91",X"83",X"93",X"D2",X"B3",X"A1",X"82",X"C0",X"F1", + X"00",X"00",X"B5",X"02",X"0F",X"99",X"03",X"09",X"12",X"31",X"CC",X"AA",X"25",X"30",X"AB",X"11", + X"28",X"A9",X"8B",X"32",X"8E",X"95",X"35",X"AA",X"B9",X"A2",X"94",X"04",X"A1",X"A1",X"BB",X"88", + X"33",X"B8",X"DC",X"38",X"76",X"0B",X"9B",X"10",X"B4",X"34",X"5A",X"9B",X"C0",X"22",X"08",X"A3", + X"82",X"8A",X"F2",X"B2",X"A0",X"14",X"BA",X"E1",X"44",X"0A",X"D8",X"91",X"12",X"13",X"29",X"DE", + X"80",X"30",X"3B",X"89",X"11",X"2F",X"09",X"00",X"11",X"1C",X"AB",X"36",X"20",X"9E",X"98",X"20", + X"29",X"20",X"2C",X"99",X"09",X"58",X"00",X"39",X"0E",X"89",X"20",X"0D",X"90",X"20",X"00",X"6A", + X"1C",X"09",X"10",X"21",X"B2",X"05",X"1B",X"E9",X"B3",X"13",X"36",X"88",X"F8",X"93",X"02",X"B0", + X"C1",X"C1",X"86",X"02",X"B9",X"C1",X"11",X"09",X"A4",X"31",X"9E",X"0A",X"19",X"20",X"30",X"28", + X"8E",X"89",X"8A",X"13",X"49",X"DC",X"83",X"40",X"A0",X"93",X"BA",X"C3",X"17",X"48",X"C9",X"92", + X"81",X"90",X"12",X"02",X"C9",X"BA",X"39",X"06",X"09",X"8D",X"28",X"5C",X"29",X"82",X"D9",X"01", + X"60",X"89",X"98",X"19",X"09",X"82",X"58",X"81",X"0C",X"8E",X"91",X"42",X"8A",X"C8",X"24",X"18", + X"C1",X"A1",X"B5",X"91",X"11",X"BB",X"93",X"80",X"4D",X"5B",X"19",X"19",X"38",X"4B",X"B4",X"B8", + X"D3",X"03",X"B6",X"99",X"89",X"0A",X"04",X"93",X"08",X"83",X"9F",X"09",X"31",X"69",X"1F",X"0A", + X"49",X"1A",X"82",X"90",X"9A",X"01",X"39",X"7A",X"08",X"2B",X"28",X"6A",X"8D",X"39",X"5B",X"8A", + X"31",X"39",X"AF",X"98",X"70",X"1B",X"92",X"98",X"A8",X"12",X"59",X"9B",X"84",X"01",X"91",X"B4", + X"B1",X"41",X"11",X"B1",X"71",X"8D",X"D9",X"82",X"2A",X"9A",X"08",X"9C",X"B2",X"17",X"09",X"99", + X"CD",X"47",X"10",X"78",X"08",X"0F",X"B0",X"36",X"90",X"80",X"AB",X"A1",X"90",X"47",X"91",X"A1", + X"C8",X"91",X"87",X"08",X"08",X"A0",X"9A",X"80",X"53",X"80",X"AC",X"09",X"08",X"02",X"51",X"0B", + X"C9",X"00",X"10",X"20",X"2A",X"AD",X"90",X"21",X"10",X"20",X"1B",X"EA",X"84",X"02",X"01",X"89", + X"9F",X"90",X"14",X"0A",X"88",X"10",X"0B",X"8B",X"71",X"2D",X"09",X"31",X"0B",X"0A",X"08",X"1A", + X"31",X"50",X"CA",X"9A",X"4D",X"48",X"11",X"A9",X"81",X"83",X"90",X"E0",X"21",X"AA",X"27",X"80", + X"8C",X"A2",X"01",X"B6",X"B3",X"B3",X"B7",X"A9",X"FA",X"44",X"81",X"B0",X"71",X"FA",X"08",X"53", + X"A1",X"88",X"0C",X"E1",X"82",X"59",X"09",X"A9",X"90",X"08",X"17",X"00",X"0D",X"90",X"80",X"16", + X"80",X"9C",X"08",X"12",X"B9",X"71",X"90",X"C9",X"18",X"41",X"91",X"80",X"8A",X"F0",X"85",X"08", + X"92",X"91",X"BD",X"18",X"07",X"90",X"C1",X"81",X"A1",X"88",X"07",X"88",X"0D",X"18",X"03",X"88", + X"08",X"08",X"E8",X"08",X"68",X"80",X"08",X"0E",X"00",X"84",X"88",X"0D",X"18",X"80",X"80",X"40", + X"80",X"AD",X"18",X"16",X"90",X"80",X"88",X"E1",X"80",X"59",X"08",X"08",X"8E",X"18",X"04",X"90", + X"9B",X"18",X"08",X"00",X"61",X"90",X"8F",X"19",X"05",X"88",X"08",X"09",X"D1",X"80",X"48",X"08", + X"08",X"C9",X"08",X"43",X"90",X"F8",X"08",X"01",X"98",X"27",X"90",X"9C",X"18",X"40",X"80",X"80", + X"8A",X"E1",X"80",X"69",X"00",X"89",X"C1",X"80",X"79",X"0A",X"91",X"88",X"21",X"C0",X"87",X"88", + X"0D",X"18",X"38",X"80",X"08",X"08",X"F0",X"80",X"59",X"00",X"8D",X"18",X"03",X"09",X"0F",X"18", + X"01",X"29",X"D1",X"84",X"88",X"0D",X"18",X"38",X"80",X"80",X"0D",X"90",X"80",X"78",X"08",X"D1", + X"80",X"12",X"91",X"E0",X"80",X"30",X"88",X"E1",X"83",X"08",X"08",X"F2",X"82",X"88",X"08",X"08", + X"F0",X"80",X"22",X"D2",X"B0",X"80",X"25",X"99",X"C1",X"81",X"11",X"08",X"BA",X"04",X"A0",X"4F", + X"69",X"08",X"B1",X"03",X"88",X"08",X"F0",X"80",X"58",X"9B",X"18",X"00",X"69",X"0C",X"00",X"82", + X"39",X"0A",X"B9",X"70",X"80",X"80",X"08",X"88",X"F0",X"49",X"18",X"80",X"F0",X"08",X"10",X"B1", + X"80",X"82",X"40",X"E8",X"08",X"34",X"90",X"89",X"9A",X"24",X"08",X"0D",X"85",X"90",X"09",X"F1", + X"20",X"80",X"BB",X"08",X"00",X"17",X"B9",X"08",X"00",X"30",X"8D",X"83",X"61",X"88",X"D0",X"02", + X"08",X"10",X"89",X"F9",X"13",X"10",X"8A",X"8F",X"19",X"21",X"11",X"A9",X"F8",X"80",X"31",X"AC", + X"00",X"41",X"2E",X"88",X"01",X"21",X"39",X"8A",X"F8",X"12",X"49",X"0B",X"D1",X"39",X"8A",X"97", + X"00",X"98",X"99",X"A0",X"50",X"3A",X"A8",X"98",X"C3",X"18",X"9C",X"A7",X"28",X"9E",X"11",X"11", + X"98",X"2A",X"18",X"C0",X"01",X"53",X"C2",X"E0",X"A0",X"05",X"81",X"A9",X"00",X"98",X"19",X"1A", + X"25",X"98",X"AE",X"19",X"13",X"94",X"9B",X"1A",X"8B",X"97",X"48",X"1C",X"09",X"90",X"20",X"68", + X"00",X"BA",X"09",X"38",X"09",X"79",X"2C",X"AA",X"81",X"62",X"80",X"9B",X"0D",X"81",X"04",X"12", + X"8D",X"AB",X"83",X"25",X"01",X"98",X"D8",X"A2",X"13",X"02",X"F3",X"A2",X"BA",X"E1",X"05",X"20", + X"0B",X"CA",X"A2",X"42",X"39",X"0A",X"BD",X"99",X"34",X"41",X"8A",X"BA",X"80",X"3A",X"38",X"72", + X"8C",X"BD",X"82",X"23",X"10",X"8A",X"CB",X"82",X"31",X"10",X"43",X"AE",X"EA",X"83",X"63",X"0B", + X"D9",X"82",X"38",X"09",X"02",X"10",X"FA",X"A2",X"34",X"0A",X"B9",X"12",X"A3",X"A3",X"09",X"B5", + X"A2",X"BC",X"A4",X"37",X"0A",X"CB",X"02",X"40",X"09",X"32",X"9D",X"D9",X"14",X"22",X"CB",X"B0", + X"43",X"93",X"F0",X"80",X"01",X"91",X"8A",X"03",X"05",X"A9",X"D8",X"01",X"11",X"88",X"10",X"88", + X"FA",X"83",X"72",X"AB",X"B9",X"32",X"12",X"A2",X"8C",X"98",X"A1",X"07",X"31",X"C9",X"9A",X"08", + X"48",X"49",X"B2",X"41",X"AF",X"A8",X"36",X"00",X"B9",X"C2",X"02",X"A0",X"15",X"88",X"C9",X"91", + X"15",X"10",X"8A",X"CA",X"93",X"23",X"0A",X"2F",X"29",X"81",X"8B",X"03",X"73",X"B0",X"F0",X"88", + X"A3",X"97",X"18",X"9C",X"98",X"13",X"30",X"AA",X"91",X"8B",X"00",X"01",X"59",X"3C",X"1B",X"1E", + X"88",X"61",X"2A",X"A8",X"90",X"E2",X"05",X"01",X"AA",X"BB",X"13",X"53",X"9A",X"8B",X"49",X"AC", + X"02",X"40",X"0D",X"90",X"19",X"3B",X"43",X"21",X"D8",X"D1",X"90",X"05",X"40",X"AB",X"CA",X"02", + X"44",X"8A",X"1B",X"1A",X"2C",X"98",X"71",X"0A",X"9B",X"8A",X"30",X"54",X"90",X"C1",X"D2",X"A5", + X"95",X"88",X"A8",X"90",X"82",X"A3",X"82",X"88",X"E8",X"B2",X"04",X"40",X"0D",X"89",X"B2",X"20", + X"51",X"91",X"BC",X"AC",X"61",X"81",X"A1",X"99",X"A8",X"86",X"82",X"9A",X"91",X"84",X"C0",X"02", + X"39",X"2A",X"EA",X"39",X"68",X"29",X"2C",X"8E",X"03",X"11",X"99",X"0B",X"C8",X"01",X"49",X"01", + X"90",X"FB",X"04",X"01",X"00",X"88",X"99",X"0B",X"24",X"77",X"23",X"FA",X"B0",X"86",X"82",X"90", + X"BA",X"C0",X"04",X"11",X"08",X"90",X"AA",X"11",X"44",X"09",X"9A",X"02",X"9A",X"0B",X"23",X"25", + X"BB",X"F9",X"03",X"11",X"A6",X"A0",X"DA",X"12",X"48",X"3C",X"0A",X"99",X"20",X"4A",X"19",X"A2", + X"B0",X"71",X"99",X"F8",X"12",X"39",X"89",X"B2",X"92",X"02",X"19",X"CA",X"A4",X"44",X"99",X"B9", + X"C2",X"32",X"0A",X"F2",X"E1",X"11",X"30",X"CA",X"80",X"11",X"91",X"E2",X"38",X"BA",X"88",X"79", + X"1B",X"16",X"99",X"90",X"23",X"89",X"9C",X"01",X"07",X"B9",X"08",X"79",X"80",X"A0",X"0A",X"40", + X"79",X"AB",X"C3",X"23",X"0C",X"9C",X"81",X"42",X"F5",X"E3",X"88",X"D4",X"03",X"90",X"DD",X"10", + X"32",X"88",X"99",X"9D",X"08",X"06",X"29",X"0E",X"80",X"80",X"41",X"9A",X"9A",X"18",X"08",X"64", + X"90",X"9F",X"19",X"58",X"08",X"08",X"88",X"E1",X"80",X"59",X"08",X"9B",X"4B",X"11",X"49",X"0D", + X"80",X"04",X"89",X"0C",X"18",X"08",X"87",X"80",X"8C",X"00",X"05",X"90",X"80",X"80",X"D8",X"08", + X"24",X"90",X"89",X"A9",X"90",X"87",X"29",X"0E",X"80",X"80",X"08",X"08",X"70",X"80",X"AC",X"18", + X"68",X"08",X"08",X"0C",X"A1",X"81",X"79",X"00",X"B1",X"8C",X"29",X"25",X"90",X"AB",X"19",X"06", + X"9A",X"08",X"78",X"08",X"AA",X"18",X"78",X"80",X"80",X"8C",X"80",X"83",X"4A",X"18",X"BB",X"08", + X"03",X"78",X"0B",X"C1",X"82",X"79",X"A9",X"08",X"78",X"80",X"C0",X"01",X"28",X"08",X"80",X"8F", + X"08",X"85",X"80",X"88",X"D1",X"80",X"30",X"80",X"F0",X"08",X"30",X"80",X"F1",X"88",X"48",X"80", + X"D1",X"82",X"18",X"88",X"E1",X"10",X"B1",X"86",X"88",X"0B",X"91",X"86",X"88",X"0D",X"00",X"03", + X"88",X"0E",X"00",X"49",X"00",X"88",X"BA",X"15",X"19",X"00",X"E8",X"02",X"10",X"80",X"AF",X"18", + X"05",X"88",X"AA",X"18",X"25",X"9B",X"82",X"03",X"D8",X"01",X"12",X"AC",X"06",X"90",X"09",X"F1", + X"03",X"90",X"8C",X"91",X"84",X"A9",X"80",X"80",X"60",X"89",X"B0",X"80",X"71",X"80",X"C9",X"23", + X"08",X"88",X"CA",X"07",X"08",X"08",X"9F",X"01",X"20",X"80",X"8F",X"00",X"82",X"2D",X"80",X"80", + X"18",X"1A",X"38",X"00",X"08",X"3B",X"28",X"83",X"9F",X"21",X"10",X"F9",X"08",X"10",X"86",X"08", + X"8F",X"91",X"11",X"2B",X"2C",X"A8",X"00",X"09",X"11",X"A0",X"03",X"7B",X"3C",X"00",X"18",X"43", + X"08",X"EA",X"01",X"32",X"B3",X"F1",X"B0",X"04",X"09",X"9D",X"85",X"84",X"AA",X"98",X"30",X"98", + X"B2",X"4A",X"2C",X"1C",X"0B",X"40",X"49",X"00",X"B3",X"E1",X"11",X"20",X"A0",X"A2",X"2A",X"1F", + X"82",X"50",X"BC",X"00",X"12",X"BA",X"A0",X"52",X"68",X"8E",X"99",X"20",X"22",X"89",X"89",X"BB", + X"B1",X"55",X"01",X"A1",X"A9",X"C8",X"27",X"02",X"B9",X"A1",X"84",X"99",X"C1",X"17",X"18",X"AC", + X"89",X"13",X"02",X"29",X"8C",X"E9",X"92",X"44",X"09",X"99",X"99",X"89",X"33",X"71",X"BA",X"C8", + X"21",X"00",X"90",X"05",X"10",X"DA",X"98",X"31",X"22",X"48",X"DB",X"D8",X"12",X"52",X"9A",X"9A", + X"09",X"10",X"41",X"4C",X"8B",X"00",X"3D",X"88",X"25",X"01",X"BA",X"AA",X"84",X"23",X"41",X"1F", + X"D9",X"83",X"25",X"09",X"BC",X"00",X"31",X"80",X"89",X"1A",X"08",X"A8",X"8B",X"02",X"57",X"10", + X"EA",X"90",X"33",X"81",X"20",X"AD",X"E9",X"23",X"23",X"99",X"F9",X"01",X"18",X"90",X"22",X"2D", + X"B0",X"92",X"01",X"89",X"26",X"9A",X"9A",X"20",X"90",X"13",X"74",X"8F",X"B8",X"13",X"31",X"9D", + X"98",X"22",X"9B",X"A2",X"63",X"1D",X"BA",X"15",X"1A",X"99",X"24",X"2B",X"D9",X"82",X"20",X"18", + X"39",X"1F",X"AA",X"26",X"28",X"9D",X"90",X"22",X"1A",X"B9",X"33",X"2D",X"90",X"01",X"CA",X"86", + X"42",X"9D",X"B9",X"13",X"38",X"08",X"88",X"8B",X"D9",X"37",X"19",X"B8",X"95",X"10",X"9D",X"90", + X"23",X"29",X"CA",X"11",X"8A",X"1A",X"73",X"0B",X"E9",X"11",X"31",X"08",X"B1",X"AB",X"D0",X"46", + X"0A",X"B9",X"14",X"1A",X"9B",X"13",X"32",X"FA",X"20",X"19",X"B2",X"15",X"1B",X"AE",X"92",X"13", + X"59",X"A9",X"93",X"8C",X"01",X"17",X"B0",X"A9",X"12",X"4A",X"0D",X"3B",X"38",X"A9",X"23",X"93", + X"96",X"C9",X"93",X"BA",X"A6",X"23",X"1E",X"C9",X"03",X"10",X"08",X"33",X"DC",X"90",X"42",X"88", + X"C1",X"21",X"AC",X"A9",X"24",X"43",X"AB",X"D0",X"11",X"9A",X"B5",X"32",X"CD",X"80",X"28",X"89", + X"08",X"40",X"3D",X"89",X"21",X"08",X"1A",X"70",X"51",X"0C",X"B8",X"31",X"DB",X"A4",X"50",X"9F", + X"98",X"12",X"08",X"00",X"18",X"B9",X"34",X"05",X"98",X"A8",X"12",X"80",X"92",X"2B",X"8F",X"B0", + X"22",X"AB",X"F0",X"94",X"99",X"9B",X"84",X"35",X"A8",X"13",X"03",X"E0",X"A2",X"31",X"28",X"89", + X"AB",X"AE",X"41",X"29",X"EB",X"BA",X"35",X"29",X"B8",X"10",X"90",X"09",X"74",X"30",X"CB",X"02", + X"50",X"99",X"D8",X"20",X"32",X"8B",X"F9",X"B0",X"84",X"13",X"BB",X"E8",X"12",X"20",X"91",X"52", + X"28",X"B9",X"B9",X"83",X"73",X"B0",X"46",X"AE",X"F8",X"84",X"12",X"9A",X"A3",X"89",X"AF",X"01", + X"51",X"0C",X"0B",X"28",X"21",X"28",X"1D",X"A7",X"00",X"9F",X"08",X"23",X"98",X"9B",X"08",X"99", + X"30",X"71",X"8A",X"A9",X"28",X"82",X"87",X"18",X"AB",X"C2",X"27",X"AB",X"90",X"27",X"88",X"D0", + X"01",X"00",X"93",X"00",X"9F",X"03",X"08",X"8D",X"82",X"21",X"AC",X"90",X"31",X"A9",X"83",X"78", + X"AE",X"18",X"22",X"0B",X"99",X"00",X"5D",X"19",X"02",X"31",X"80",X"DE",X"18",X"79",X"00",X"80", + X"8C",X"80",X"08",X"79",X"00",X"A9",X"08",X"08",X"17",X"90",X"80",X"D0",X"00",X"21",X"88",X"8B", + X"B1",X"84",X"48",X"99",X"84",X"09",X"C1",X"03",X"80",X"F9",X"32",X"89",X"F8",X"00",X"5A",X"88", + X"83",X"88",X"9A",X"84",X"82",X"8A",X"18",X"09",X"AA",X"78",X"19",X"D8",X"80",X"17",X"10",X"0E", + X"A1",X"07",X"90",X"08",X"08",X"E0",X"08",X"14",X"90",X"9B",X"08",X"08",X"07",X"80",X"8E",X"18", + X"59",X"08",X"99",X"00",X"88",X"09",X"07",X"08",X"09",X"D1",X"85",X"88",X"08",X"08",X"AC",X"18", + X"07",X"88",X"0B",X"88",X"08",X"22",X"39",X"08",X"F9",X"05",X"08",X"0A",X"9A",X"09",X"00",X"82", + X"71",X"08",X"0F",X"90",X"15",X"90",X"08",X"09",X"F1",X"88",X"31",X"80",X"BC",X"19",X"00",X"37", + X"90",X"8F",X"18",X"21",X"90",X"9B",X"08",X"04",X"0B",X"95",X"3A",X"1B",X"F1",X"86",X"90",X"08", + X"08",X"C8",X"08",X"07",X"90",X"8B",X"18",X"84",X"19",X"09",X"E1",X"83",X"18",X"0B",X"D1",X"05", + X"80",X"C8",X"05",X"90",X"8D",X"18",X"22",X"90",X"AC",X"10",X"04",X"D0",X"38",X"00",X"E1",X"81", + X"29",X"A2",X"C1",X"09",X"23",X"91",X"EB",X"22",X"21",X"E9",X"80",X"41",X"08",X"08",X"F8",X"84", + X"19",X"00",X"CA",X"18",X"14",X"0A",X"AA",X"18",X"63",X"98",X"D9",X"00",X"40",X"09",X"90",X"80", + X"30",X"0E",X"AA",X"22",X"43",X"90",X"C1",X"39",X"0F",X"D0",X"23",X"19",X"0E",X"A1",X"80",X"58", + X"AA",X"00",X"06",X"18",X"B9",X"A1",X"06",X"18",X"A8",X"88",X"21",X"29",X"E9",X"03",X"31",X"AA", + X"C9",X"20",X"49",X"81",X"A0",X"C1",X"13",X"CB",X"BA",X"07",X"83",X"CA",X"08",X"41",X"99",X"A1", + X"43",X"08",X"B8",X"58",X"9A",X"B4",X"71",X"1C",X"B9",X"12",X"48",X"98",X"A8",X"A5",X"82",X"0D", + X"89",X"18",X"21",X"89",X"A9",X"19",X"94",X"DA",X"03",X"15",X"8D",X"9A",X"62",X"8A",X"B8",X"53", + X"18",X"D9",X"11",X"20",X"B2",X"92",X"0D",X"90",X"12",X"20",X"BF",X"B8",X"41",X"19",X"A8",X"31", + X"CA",X"D0",X"43",X"38",X"FA",X"82",X"20",X"A9",X"83",X"4B",X"A8",X"06",X"0A",X"89",X"59",X"19", + X"00",X"99",X"38",X"3B",X"1B",X"0D",X"1A",X"13",X"53",X"2F",X"D9",X"82",X"40",X"08",X"B0",X"91", + X"A8",X"A7",X"15",X"AA",X"B8",X"14",X"01",X"09",X"E8",X"11",X"00",X"B1",X"10",X"69",X"1B",X"9E", + X"81",X"33",X"4A",X"9F",X"91",X"21",X"00",X"B0",X"11",X"0A",X"CD",X"03",X"33",X"2A",X"BF",X"99", + X"13",X"24",X"18",X"DA",X"B1",X"23",X"39",X"B9",X"C0",X"90",X"84",X"83",X"81",X"BA",X"09",X"00", + X"41",X"6A",X"8D",X"A1",X"96",X"91",X"83",X"80",X"E9",X"00",X"23",X"00",X"4C",X"BC",X"03",X"38", + X"2E",X"9A",X"84",X"30",X"BB",X"B0",X"45",X"2A",X"AE",X"11",X"21",X"9B",X"A0",X"52",X"99",X"B0", + X"30",X"90",X"B2",X"24",X"D8",X"91",X"21",X"AA",X"96",X"08",X"AE",X"81",X"58",X"9A",X"08",X"22", + X"8C",X"08",X"38",X"20",X"D9",X"05",X"28",X"BF",X"00",X"31",X"8C",X"80",X"21",X"9A",X"80",X"41", + X"1D",X"09",X"10",X"2D",X"11",X"30",X"EA",X"93",X"34",X"AB",X"AB",X"15",X"28",X"BB",X"22",X"81", + X"B8",X"C5",X"18",X"0A",X"02",X"19",X"AA",X"14",X"21",X"AC",X"0D",X"4A",X"3A",X"09",X"20",X"2B", + X"D0",X"14",X"92",X"C1",X"A0",X"38",X"8B",X"12",X"08",X"0C",X"80",X"33",X"A9",X"91",X"28",X"A0", + X"C3",X"23",X"98",X"C9",X"31",X"80",X"98",X"21",X"AE",X"10",X"10",X"11",X"AC",X"1A",X"38",X"40", + X"8A",X"80",X"8B",X"19",X"43",X"92",X"BA",X"A8",X"81",X"12",X"29",X"0A",X"C1",X"83",X"2B",X"02", + X"A4",X"A9",X"8B",X"02",X"28",X"91",X"91",X"A9",X"91",X"51",X"8A",X"D9",X"00",X"60",X"80",X"88", + X"B9",X"82",X"30",X"2B",X"2A",X"18",X"C8",X"12",X"01",X"B2",X"00",X"B8",X"91",X"01",X"82",X"81", + X"C8",X"B3",X"14",X"90",X"F1",X"A3",X"80",X"A1",X"30",X"0C",X"B9",X"33",X"32",X"AB",X"88",X"91", + X"2A",X"A8",X"41",X"39",X"CB",X"A1",X"25",X"80",X"A8",X"88",X"B3",X"12",X"0A",X"AA",X"21",X"08", + X"1D",X"20",X"19",X"A9",X"03",X"00",X"A2",X"89",X"09",X"2A",X"29",X"80",X"30",X"8C",X"80",X"02", + X"0A",X"18",X"82",X"D8",X"12",X"11",X"B8",X"A0",X"13",X"98",X"91",X"29",X"9A",X"A3",X"13",X"A8", + X"B1",X"00",X"19",X"09",X"A3",X"02",X"98",X"99",X"20",X"00",X"A1",X"81",X"8A",X"91",X"32",X"A0", + X"B2",X"A1",X"92",X"D3",X"02",X"A9",X"99",X"12",X"09",X"01",X"98",X"A3",X"88",X"80",X"10",X"88", + X"B0",X"95",X"81",X"A1",X"A0",X"B2",X"81",X"38",X"88",X"D3",X"A3",X"88",X"91",X"80",X"90",X"19", + X"80",X"80",X"91",X"80",X"80",X"80",X"80",X"01",X"D8",X"12",X"34",X"52",X"13",X"77",X"20",X"11", + X"47",X"50",X"CE",X"DB",X"01",X"13",X"43",X"8B",X"99",X"89",X"00",X"44",X"8D",X"B9",X"01",X"12", + X"22",X"10",X"99",X"84",X"49",X"DC",X"BA",X"A8",X"13",X"33",X"42",X"0A",X"9A",X"37",X"61",X"8A", + X"AB",X"BA",X"98",X"11",X"21",X"B1",X"76",X"08",X"89",X"AA",X"C9",X"14",X"29",X"C8",X"23",X"33", + X"21",X"8A",X"83",X"8F",X"FE",X"80",X"13",X"21",X"99",X"AB",X"AB",X"C9",X"27",X"62",X"09",X"A8", + X"90",X"80",X"10",X"00",X"89",X"99",X"9A",X"89",X"80",X"01",X"57",X"19",X"EB",X"81",X"18",X"00", + X"08",X"01",X"0B",X"D8",X"47",X"33",X"32",X"9E",X"C9",X"08",X"AB",X"03",X"30",X"90",X"23",X"58", + X"DA",X"99",X"80",X"02",X"12",X"00",X"08",X"99",X"98",X"90",X"02",X"77",X"50",X"BE",X"B0",X"11", + X"01",X"08",X"CB",X"16",X"42",X"10",X"9A",X"AB",X"BB",X"99",X"B8",X"73",X"03",X"61",X"88",X"9E", + X"A9",X"81",X"33",X"9B",X"A9",X"00",X"24",X"32",X"20",X"0A",X"AB",X"05",X"AF",X"D8",X"80",X"02", + X"22",X"21",X"10",X"89",X"80",X"82",X"BF",X"AE",X"B0",X"54",X"09",X"CB",X"90",X"13",X"43",X"54", + X"28",X"9C",X"DC",X"A8",X"21",X"18",X"01",X"25",X"31",X"8A",X"DD",X"A8",X"00",X"35",X"21",X"09", + X"BB",X"AA",X"99",X"81",X"12",X"32",X"32",X"12",X"00",X"88",X"99",X"99",X"99",X"A8",X"98",X"90", + X"98",X"88",X"89",X"9F",X"F1",X"32",X"DC",X"80",X"23",X"53",X"22",X"09",X"9B",X"DA",X"BB",X"AA", + X"88",X"00",X"22",X"22",X"23",X"13",X"11",X"11",X"01",X"07",X"75",X"19",X"AC",X"BC",X"AA",X"88", + X"22",X"43",X"33",X"2A",X"B3",X"2B",X"B1",X"53",X"44",X"21",X"8A",X"BD",X"DA",X"BB",X"BA",X"A8", + X"88",X"11",X"13",X"23",X"32",X"46",X"76",X"08",X"9A",X"BC",X"9A",X"AB",X"A2",X"64",X"44",X"23", + X"18",X"80",X"BD",X"BA",X"B9",X"98",X"80",X"01",X"12",X"42",X"20",X"BE",X"CC",X"AA",X"98",X"03", + X"20",X"92",X"75",X"43",X"51",X"01",X"8A",X"DB",X"89",X"99",X"89",X"88",X"80",X"80",X"00",X"11", + X"20",X"20",X"11",X"00",X"0C",X"FC",X"16",X"22",X"11",X"89",X"AD",X"CC",X"A0",X"26",X"42",X"11", + X"99",X"BB",X"CA",X"AA",X"88",X"08",X"AA",X"25",X"53",X"53",X"21",X"18",X"8A",X"BB",X"CB",X"BA", + X"B9",X"A8",X"80",X"10",X"21",X"21",X"20",X"21",X"11",X"28",X"20",X"10",X"00",X"11",X"32",X"76", + X"19",X"BD",X"BA",X"EA",X"98",X"13",X"73",X"21",X"18",X"9A",X"AB",X"BA",X"A9",X"00",X"8A",X"36", + X"41",X"19",X"AB",X"B9",X"37",X"22",X"12",X"20",X"82",X"9F",X"BB",X"AB",X"AA",X"91",X"29",X"17", + X"61",X"09",X"AB",X"CA",X"BD",X"BA",X"45",X"20",X"45",X"21",X"8A",X"99",X"98",X"80",X"10",X"10", + X"08",X"A0",X"42",X"AF",X"BD",X"CA",X"BA",X"99",X"B8",X"55",X"33",X"23",X"11",X"00",X"89",X"98", + X"98",X"80",X"8B",X"FD",X"91",X"13",X"64",X"30",X"9A",X"BB",X"CA",X"9A",X"88",X"02",X"34",X"0D", + X"DB",X"99",X"90",X"23",X"43",X"43",X"22",X"23",X"15",X"30",X"9A",X"FE",X"BA",X"98",X"11",X"44", + X"21",X"33",X"1B",X"BA",X"BF",X"A9",X"89",X"98",X"8B",X"E9",X"02",X"64",X"22",X"20",X"89",X"AB", + X"BB",X"A9",X"98",X"01",X"21",X"30",X"88",X"A8",X"02",X"71",X"35",X"21",X"89",X"BC",X"CA",X"BD", + X"CA",X"98",X"23",X"43",X"43",X"31",X"10",X"89",X"9B",X"CB",X"AB",X"AA",X"A8",X"98",X"80",X"81", + X"01",X"81",X"01",X"01",X"10",X"01",X"81",X"81",X"83",X"73",X"08",X"9B",X"FA",X"BA",X"BA",X"91", + X"14",X"43",X"41",X"21",X"8A",X"83",X"01",X"81",X"98",X"99",X"A9",X"99",X"99",X"90",X"90",X"80", + X"90",X"A9",X"00",X"13",X"23",X"01",X"80",X"AA",X"FB",X"03",X"33",X"33",X"AE",X"BA",X"80",X"13", + X"53",X"43",X"41",X"AB",X"CA",X"BB",X"B9",X"98",X"80",X"81",X"80",X"81",X"80",X"81",X"81",X"81", + X"82",X"46",X"0A",X"BA",X"88",X"AB",X"80",X"21",X"32",X"32",X"21",X"10",X"88",X"89",X"8A",X"99", + X"8A",X"8A",X"89",X"88",X"09",X"08",X"08",X"00",X"13",X"62",X"08",X"9B",X"FC",X"B9",X"81",X"31", + X"24",X"33",X"23",X"31",X"38",X"12",X"38",X"AC",X"CC",X"CB",X"AB",X"B9",X"99",X"10",X"31",X"32", + X"39",X"9A",X"12",X"34",X"62",X"33",X"53",X"19",X"9B",X"CD",X"BA",X"CB",X"A8",X"00",X"11",X"9B", + X"01",X"23",X"53",X"44",X"12",X"11",X"00",X"03",X"00",X"BB",X"DC",X"BC",X"AA",X"99",X"98",X"11", + X"22",X"32",X"22",X"22",X"11",X"20",X"10",X"00",X"08",X"88",X"89",X"09",X"89",X"89",X"89",X"89", + X"89",X"BD",X"99",X"23",X"23",X"13",X"12",X"35",X"12",X"9D",X"BC",X"BB",X"A8",X"02",X"35",X"10", + X"13",X"29",X"BB",X"9A",X"00",X"41",X"09",X"11",X"32",X"28",X"8A",X"9A",X"BB",X"AA",X"8A",X"08", + X"09",X"A9",X"02",X"54",X"42",X"10",X"9A",X"A9",X"A9",X"18",X"20",X"18",X"18",X"01",X"29",X"AE", + X"A8",X"89",X"99",X"BB",X"91",X"09",X"91",X"12",X"24",X"33",X"44",X"32",X"18",X"9A",X"9A",X"AA", + X"9A",X"00",X"29",X"0A",X"99",X"BA",X"9A",X"89",X"08",X"10",X"18",X"00",X"01",X"10",X"22",X"51", + X"00",X"10",X"81",X"80",X"88",X"90",X"A8",X"99",X"A8",X"A8",X"A8",X"98",X"90",X"80",X"80",X"81", + X"81",X"01",X"81",X"01",X"01",X"00",X"01",X"80",X"00",X"81",X"13",X"8A",X"A8",X"81",X"98",X"99", + X"98",X"AA",X"BA",X"82",X"11",X"21",X"01",X"01",X"88",X"B9",X"91",X"02",X"25",X"33",X"11",X"0A", + X"AA",X"BB",X"9B",X"9A",X"98",X"88",X"88",X"18",X"10",X"10",X"18",X"10",X"10",X"18",X"18",X"18", + X"00",X"08",X"08",X"88",X"09",X"08",X"88",X"09",X"08",X"88",X"09",X"08",X"88",X"09",X"80",X"18", + X"8A",X"09",X"10",X"21",X"21",X"20",X"10",X"08",X"89",X"89",X"88",X"99",X"09",X"89",X"88",X"88", + X"08",X"08",X"08",X"00",X"00",X"08",X"10",X"00",X"08",X"18",X"18",X"08",X"08",X"08",X"10",X"10", + X"08",X"09",X"9C",X"BB",X"9A",X"02",X"32",X"31",X"18",X"0B",X"A8",X"00",X"10",X"18",X"0A",X"9A", + X"09",X"10",X"21",X"21",X"10",X"18",X"08",X"89",X"89",X"88",X"89",X"98",X"89",X"09",X"08",X"09", + X"00",X"08",X"18",X"02",X"21",X"18",X"9A",X"AA",X"89",X"01",X"11",X"20",X"20",X"10",X"08",X"08", + X"09",X"09",X"88",X"10",X"09",X"89",X"9B",X"99",X"99",X"89",X"89",X"01",X"21",X"31",X"10",X"10", + X"08",X"10",X"08",X"08",X"08",X"88",X"08",X"09",X"08",X"09",X"08",X"09",X"08",X"88",X"08",X"08", + X"81",X"A8",X"00",X"81",X"A2",X"B0",X"09",X"28",X"00",X"81",X"80",X"3A",X"A2",X"B3",X"B0",X"18", + X"98",X"01",X"A2",X"89",X"92",X"92",X"A2",X"89",X"28",X"94",X"A8",X"89",X"91",X"09",X"11",X"90", + X"84",X"89",X"80",X"0A",X"10",X"B1",X"88",X"80",X"02",X"88",X"1A",X"19",X"03",X"A9",X"18",X"09", + X"29",X"A1",X"A1",X"93",X"88",X"A1",X"18",X"80",X"19",X"92",X"89",X"30",X"A8",X"A1",X"89",X"81", + X"3A",X"82",X"4C",X"92",X"0C",X"27",X"DA",X"68",X"C1",X"49",X"80",X"88",X"98",X"15",X"1F",X"03", + X"BC",X"52",X"BC",X"41",X"C8",X"58",X"C1",X"29",X"B4",X"2D",X"83",X"8C",X"24",X"BB",X"41",X"D0", + X"49",X"B2",X"2B",X"96",X"8C",X"13",X"B9",X"40",X"D1",X"2A",X"94",X"8C",X"22",X"B9",X"69",X"B3", + X"2D",X"04",X"AB",X"58",X"B2",X"3D",X"84",X"9A",X"30",X"E1",X"3B",X"84",X"9D",X"32",X"D1",X"3C", + X"95",X"9B",X"40",X"D2",X"3C",X"84",X"AC",X"41",X"C2",X"2C",X"94",X"99",X"30",X"C0",X"08",X"11", + X"98",X"A0",X"49",X"02",X"F8",X"5A",X"02",X"BC",X"41",X"B3",X"1D",X"93",X"1A",X"39",X"D8",X"22", + X"08",X"8D",X"B6",X"2A",X"00",X"D0",X"59",X"92",X"BC",X"51",X"A1",X"8E",X"05",X"88",X"0B",X"A1", + X"61",X"AA",X"09",X"87",X"1D",X"00",X"B4",X"5C",X"A1",X"A8",X"72",X"D9",X"09",X"37",X"BC",X"19", + X"87",X"2D",X"B3",X"98",X"71",X"DB",X"48",X"03",X"BE",X"21",X"01",X"0E",X"82",X"94",X"2E",X"A5", + X"A8",X"68",X"D0",X"11",X"8A",X"28",X"D3",X"3C",X"B1",X"79",X"B2",X"80",X"0F",X"35",X"DA",X"59", + X"81",X"E3",X"5D",X"94",X"A0",X"2F",X"35",X"D8",X"5D",X"13",X"E8",X"50",X"A3",X"E0",X"5D",X"95", + X"9C",X"5A",X"84",X"BB",X"63",X"D8",X"19",X"28",X"98",X"7D",X"85",X"C1",X"4D",X"95",X"0B",X"18", + X"81",X"88",X"E6",X"2D",X"A5",X"99",X"2E",X"15",X"AC",X"5A",X"85",X"CA",X"42",X"B9",X"10",X"08", + X"0F",X"15",X"BA",X"38",X"83",X"B8",X"07",X"D9",X"59",X"83",X"CA",X"32",X"1D",X"A3",X"3B",X"8A", + X"C7",X"4D",X"B5",X"81",X"8F",X"05",X"3D",X"B3",X"20",X"9C",X"A6",X"00",X"BB",X"62",X"AA",X"89", + X"34",X"2F",X"84",X"0C",X"08",X"91",X"26",X"D1",X"12",X"F0",X"09",X"49",X"A3",X"B1",X"5B",X"A4", + X"0C",X"84",X"0C",X"12",X"A0",X"3A",X"E8",X"53",X"D5",X"D3",X"A8",X"B9",X"78",X"92",X"C9",X"60", + X"C8",X"28",X"98",X"69",X"D3",X"4B",X"A2",X"19",X"B9",X"71",X"2E",X"4C",X"82",X"B0",X"5B",X"95", + X"A9",X"49",X"A2",X"1A",X"98",X"35",X"CA",X"31",X"A1",X"8B",X"88",X"73",X"F9",X"58",X"B2",X"98", + X"39",X"C4",X"1C",X"11",X"B1",X"3B",X"A0",X"87",X"3F",X"A5",X"1B",X"80",X"00",X"A2",X"3F",X"85", + X"9B",X"20",X"A4",X"8D",X"14",X"AB",X"30",X"91",X"1C",X"01",X"C4",X"4D",X"A5",X"0C",X"11",X"91", + X"A8",X"30",X"A0",X"88",X"49",X"C2",X"3D",X"92",X"4B",X"A4",X"0A",X"08",X"06",X"AD",X"13",X"0C", + X"81",X"20",X"BA",X"33",X"B8",X"D0",X"70",X"C0",X"29",X"82",X"8A",X"1B",X"87",X"8B",X"31",X"B0", + X"89",X"60",X"C8",X"13",X"8E",X"03",X"A9",X"30",X"B2",X"9F",X"35",X"BA",X"20",X"80",X"80",X"2C", + X"90",X"97",X"2F",X"02",X"90",X"3B",X"B4",X"0E",X"25",X"CB",X"40",X"93",X"9E",X"21",X"90",X"81", + X"0D",X"03",X"08",X"0E",X"84",X"09",X"90",X"08",X"84",X"0B",X"A8",X"33",X"19",X"FB",X"45",X"A8", + X"0A",X"A7",X"0B",X"11",X"D0",X"4A",X"01",X"B9",X"51",X"A8",X"98",X"23",X"AC",X"20",X"B3",X"2B", + X"12",X"F9",X"78",X"98",X"88",X"14",X"AD",X"22",X"88",X"C0",X"48",X"98",X"82",X"0C",X"11",X"A1", + X"18",X"1E",X"85",X"8B",X"18",X"34",X"F9",X"5A",X"93",X"B9",X"79",X"B4",X"8C",X"59",X"D4",X"2D", + X"12",X"D2",X"2B",X"12",X"D9",X"69",X"B2",X"19",X"3C",X"D5",X"1D",X"11",X"A1",X"4B",X"C3",X"2A", + X"81",X"A0",X"7B",X"A5",X"8B",X"30",X"D3",X"1E",X"22",X"C1",X"2B",X"03",X"AC",X"34",X"C9",X"38", + X"A3",X"0F",X"22",X"C1",X"0A",X"06",X"AD",X"42",X"C1",X"0A",X"14",X"AB",X"12",X"0B",X"10",X"A5", + X"3F",X"A5",X"8A",X"19",X"04",X"9C",X"84",X"1B",X"80",X"01",X"1C",X"80",X"23",X"DA",X"03",X"4A", + X"C0",X"84",X"3F",X"92",X"18",X"80",X"AD",X"62",X"DA",X"58",X"80",X"A8",X"49",X"88",X"92",X"2B", + X"10",X"99",X"04",X"AB",X"33",X"F0",X"51",X"EB",X"53",X"CA",X"20",X"10",X"B9",X"38",X"10",X"C9", + X"31",X"09",X"A2",X"C1",X"7A",X"D3",X"2A",X"92",X"19",X"F1",X"6B",X"B4",X"09",X"18",X"A3",X"0D", + X"20",X"B1",X"28",X"A0",X"31",X"DB",X"51",X"A8",X"08",X"11",X"89",X"D2",X"7A",X"A2",X"09",X"19", + X"83",X"0D",X"02",X"A9",X"69",X"C2",X"49",X"9A",X"97",X"1C",X"93",X"09",X"88",X"39",X"D4",X"0C", + X"12",X"A8",X"2B",X"15",X"AC",X"31",X"98",X"90",X"10",X"88",X"1B",X"C7",X"1D",X"02",X"99",X"39", + X"92",X"0B",X"11",X"90",X"09",X"28",X"E4",X"0C",X"12",X"B9",X"58",X"92",X"BB",X"71",X"AA",X"84", + X"1C",X"82",X"80",X"1B",X"83",X"2B",X"E0",X"50",X"C1",X"1C",X"05",X"A8",X"3B",X"94",X"9A",X"38", + X"92",X"BA",X"70",X"B1",X"88",X"3A",X"82",X"AC",X"68",X"95",X"AE",X"23",X"B8",X"3C",X"83",X"A0", + X"39",X"8D",X"86",X"0A",X"81",X"A0",X"59",X"B5",X"8E",X"23",X"B9",X"2A",X"04",X"9A",X"18",X"91", + X"01",X"0B",X"A1",X"07",X"1D",X"92",X"18",X"80",X"8D",X"04",X"08",X"8A",X"A2",X"52",X"BF",X"11", + X"81",X"2E",X"93",X"0B",X"40",X"C1",X"09",X"22",X"CA",X"21",X"01",X"BD",X"25",X"A9",X"39",X"B2", + X"88",X"68",X"D0",X"28",X"00",X"9C",X"34",X"B9",X"09",X"51",X"D0",X"18",X"09",X"94",X"8A",X"10", + X"8A",X"06",X"0D",X"02",X"80",X"AC",X"61",X"D1",X"1A",X"12",X"F1",X"3B",X"83",X"C0",X"4A",X"A4", + X"9A",X"49",X"91",X"09",X"11",X"C0",X"39",X"A1",X"A3",X"7D",X"82",X"88",X"19",X"A3",X"3C",X"91", + X"08",X"18",X"E3",X"3E",X"83",X"9A",X"4A",X"A7",X"9A",X"38",X"A2",X"89",X"12",X"AC",X"32",X"B8", + X"2C",X"07",X"AA",X"30",X"A2",X"0F",X"15",X"B9",X"38",X"92",X"9B",X"23",X"9A",X"93",X"09",X"1C", + X"C7",X"2E",X"02",X"90",X"89",X"03",X"1D",X"93",X"09",X"09",X"A4",X"19",X"9B",X"43",X"9B",X"C2", + X"59",X"1C",X"B7",X"1A",X"91",X"88",X"14",X"DB",X"61",X"B8",X"18",X"10",X"A0",X"00",X"1A",X"A4", + X"99",X"21",X"8C",X"13",X"AA",X"40",X"F8",X"44",X"CB",X"33",X"B8",X"89",X"32",X"C0",X"89",X"41", + X"B9",X"00",X"2A",X"21",X"F0",X"6A",X"A1",X"2A",X"90",X"78",X"E1",X"3A",X"92",X"98",X"3B",X"95", + X"A9",X"48",X"A0",X"10",X"AA",X"35",X"BB",X"40",X"91",X"9A",X"11",X"49",X"F1",X"3A",X"91",X"91", + X"2C",X"94",X"0A",X"11",X"C8",X"79",X"B0",X"30",X"2F",X"A5",X"1A",X"90",X"10",X"A8",X"5A",X"A5", + X"8B",X"21",X"B2",X"1E",X"05",X"9A",X"10",X"08",X"88",X"81",X"80",X"4D",X"95",X"8A",X"02",X"B0", + X"3B",X"83",X"8A",X"10",X"81",X"9A",X"7A",X"B5",X"0B",X"13",X"AB",X"38",X"87",X"BC",X"32",X"0B", + X"B4",X"3B",X"90",X"93",X"2D",X"A1",X"70",X"C9",X"30",X"B3",X"3F",X"01",X"A1",X"3D",X"03",X"AA", + X"3A",X"13",X"E8",X"38",X"80",X"B1",X"2A",X"06",X"BA",X"4D",X"07",X"8C",X"11",X"90",X"1A",X"10", + X"B1",X"04",X"1E",X"93",X"0A",X"30",X"E8",X"4A",X"97",X"8C",X"11",X"91",X"0B",X"03",X"A0",X"19", + X"89",X"02",X"29",X"8D",X"B7",X"19",X"90",X"08",X"84",X"0D",X"80",X"11",X"2B",X"BC",X"37",X"8A", + X"08",X"B6",X"2C",X"82",X"AA",X"68",X"91",X"9A",X"33",X"B9",X"98",X"35",X"AD",X"22",X"C1",X"29", + X"91",X"B9",X"70",X"A8",X"08",X"13",X"AF",X"12",X"81",X"C9",X"40",X"A0",X"81",X"2C",X"83",X"99", + X"02",X"0E",X"96",X"8A",X"00",X"14",X"DA",X"68",X"A2",X"9A",X"68",X"D2",X"1A",X"20",X"D2",X"1B", + X"12",X"B0",X"3B",X"82",X"AA",X"60",X"C1",X"18",X"08",X"E3",X"2C",X"01",X"90",X"3B",X"C3",X"2A", + X"81",X"A8",X"6A",X"C4",X"1C",X"12",X"B1",X"3F",X"03",X"B8",X"3A",X"83",X"AB",X"35",X"BB",X"40", + X"A3",X"0F",X"13",X"B9",X"3A",X"85",X"9E",X"22",X"B0",X"19",X"04",X"AB",X"12",X"1B",X"82",X"A3", + X"4F",X"A7",X"8A",X"18",X"01",X"8B",X"95",X"1B",X"80",X"10",X"1B",X"A2",X"14",X"CB",X"23",X"3B", + X"E1",X"83",X"4E",X"A3",X"2A",X"08",X"9D",X"53",X"E9",X"30",X"90",X"98",X"38",X"98",X"92",X"2B", + X"02",X"B9",X"05",X"9B",X"23",X"C9",X"71",X"DB",X"45",X"BA",X"21",X"81",X"B9",X"38",X"01",X"CA", + X"41",X"89",X"91",X"98",X"79",X"C1",X"49",X"A2",X"08",X"D0",X"79",X"B3",X"1A",X"00",X"A2",X"2E", + X"11",X"B1",X"28",X"A8",X"31",X"CB",X"52",X"B9",X"18",X"21",X"A9",X"C1",X"79",X"B2",X"2A",X"18", + X"B4",X"1D",X"83",X"8A",X"40",X"E1",X"39",X"AA",X"97",X"2D",X"93",X"19",X"98",X"20",X"D2",X"3E", + X"02",X"99",X"29",X"95",X"9C",X"13",X"99",X"80",X"02",X"8A",X"19",X"C7",X"1D",X"02",X"8A",X"20", + X"B2",X"1C",X"02",X"98",X"19",X"11",X"D2",X"3D",X"83",X"9B",X"23",X"C0",X"0C",X"53",X"CA",X"83", + X"3C",X"A3",X"08",X"1B",X"93",X"3A",X"F9",X"60",X"A8",X"2A",X"A7",X"8A",X"3A",X"B6",X"8A",X"20", + X"A1",X"99",X"41",X"C0",X"80",X"29",X"A3",X"8D",X"32",X"B6",X"AF",X"14",X"9A",X"29",X"93",X"98", + X"39",X"8C",X"A7",X"2C",X"81",X"98",X"40",X"C2",X"1F",X"04",X"9A",X"18",X"84",X"9A",X"10",X"91", + X"00",X"0A",X"A1",X"14",X"2F",X"91",X"29",X"80",X"0B",X"86",X"08",X"9A",X"93",X"41",X"BF",X"03", + X"90",X"4D",X"A4",X"1A",X"11",X"D0",X"19",X"22",X"CA",X"21",X"01",X"BC",X"25",X"9B",X"30",X"C1", + X"19",X"31",X"F8",X"20",X"88",X"8B",X"17",X"9A",X"19",X"33",X"F8",X"28",X"09",X"93",X"0B",X"02", + X"8B",X"05",X"2F",X"83",X"98",X"0C",X"36",X"D8",X"3A",X"03",X"E8",X"59",X"A3",X"A9",X"59",X"A3", + X"8B",X"48",X"A1",X"09",X"12",X"C9",X"58",X"A0",X"80",X"5B",X"B5",X"0A",X"18",X"A2",X"4B",X"A2", + X"08",X"18",X"C2",X"6C",X"83",X"9A",X"4A",X"A7",X"9A",X"38",X"A2",X"8A",X"22",X"BC",X"34",X"B9", + X"3B",X"87",X"9B",X"31",X"B2",X"0E",X"16",X"AA",X"38",X"91",X"8C",X"23",X"9A",X"82",X"0A",X"1A", + X"B7",X"3F",X"83",X"98",X"0A",X"13",X"1E",X"93",X"19",X"98",X"94",X"19",X"AA",X"43",X"AC",X"A3", + X"59",X"0C",X"A7",X"1B",X"92",X"80",X"13",X"FA",X"50",X"B0",X"18",X"10",X"B0",X"11",X"0B",X"94", + X"99",X"21",X"9C",X"13",X"BA",X"58",X"C8",X"73",X"EA",X"32",X"A9",X"08",X"30",X"B0",X"89",X"41", + X"C9",X"02",X"09",X"28",X"F1",X"5A",X"B3",X"1A",X"80",X"69",X"F2",X"2A",X"92",X"90",X"2B",X"95", + X"A9",X"49",X"A1",X"18",X"A8",X"34",X"D9",X"30",X"90",X"99",X"21",X"3A",X"F1",X"4A",X"A2",X"90", + X"2B",X"96",X"0B",X"02",X"C8",X"59",X"C2",X"20",X"1F",X"95",X"0A",X"91",X"01",X"A8",X"5A",X"B6", + X"8A",X"10",X"91",X"0C",X"15",X"AA",X"11",X"08",X"98",X"01",X"81",X"3F",X"95",X"8B",X"12",X"B0", + X"3A",X"A4",X"8A",X"18",X"81",X"A9",X"69",X"B5",X"0B",X"13",X"BA",X"38",X"85",X"DB",X"51",X"89", + X"B4",X"2B",X"80",X"82",X"0A",X"B2",X"70",X"D9",X"30",X"B4",X"0D",X"12",X"B2",X"2D",X"03",X"B9", + X"3A",X"13",X"F8",X"38",X"08",X"A0",X"2B",X"14",X"C9",X"3D",X"27",X"9D",X"12",X"A1",X"1B",X"01", + X"A0",X"23",X"2F",X"B5",X"09",X"18",X"C0",X"4A",X"97",X"9C",X"21",X"91",X"8B",X"13",X"A0",X"19", + X"98",X"03",X"2B",X"9E",X"97",X"1A",X"A1",X"19",X"03",X"8F",X"00",X"11",X"0A",X"B8",X"54",X"9C", + X"08",X"A6",X"1B",X"93",X"B8",X"78",X"90",X"9A",X"42",X"AA",X"09",X"33",X"BE",X"21",X"A0",X"4A", + X"81",X"B8",X"70",X"B8",X"00",X"03",X"AF",X"21",X"80",X"BA",X"70",X"A0",X"81",X"1B",X"84",X"99", + X"01",X"0C",X"97",X"8A",X"10",X"02",X"BF",X"58",X"A2",X"8B",X"58",X"D2",X"2B",X"20",X"D2",X"2C", + X"02",X"B1",X"3A",X"91",X"9A",X"50",X"B0",X"39",X"09",X"F4",X"1B",X"82",X"A1",X"3B",X"D3",X"2A", + X"81",X"89",X"4A",X"F4",X"0B",X"12",X"B1",X"2F",X"13",X"B8",X"3A",X"93",X"AA",X"25",X"BB",X"41", + X"B2",X"0F",X"23",X"B9",X"3A",X"84",X"9F",X"23",X"C0",X"1A",X"03",X"AB",X"13",X"1B",X"93",X"91", + X"4F",X"A7",X"0B",X"01",X"92",X"8B",X"95",X"1B",X"91",X"28",X"1B",X"A3",X"13",X"DC",X"23",X"1A", + X"E1",X"83",X"4E",X"A3",X"29",X"88",X"9B",X"64",X"D9",X"30",X"90",X"99",X"38",X"98",X"82",X"3C", + X"83",X"B8",X"13",X"8D",X"12",X"BB",X"71",X"EA",X"44",X"BB",X"22",X"08",X"A9",X"30",X"81",X"BA", + X"35",X"9B",X"82",X"99",X"78",X"E2",X"3A",X"A1",X"18",X"E1",X"59",X"D2",X"19",X"00",X"A1",X"2C", + X"12",X"B0",X"38",X"A8",X"21",X"BF",X"23",X"C9",X"28",X"01",X"9A",X"90",X"78",X"C3",X"1A",X"18", + X"B4",X"0C",X"94",X"89",X"22",X"F1",X"28",X"B0",X"95",X"2E",X"93",X"19",X"A0",X"11",X"C1",X"4D", + X"83",X"9A",X"39",X"95",X"8D",X"13",X"99",X"80",X"00",X"0A",X"08",X"C6",X"2D",X"84",X"8A",X"28", + X"A0",X"2B",X"83",X"98",X"10",X"01",X"B2",X"4D",X"94",X"0D",X"12",X"A8",X"8B",X"62",X"D8",X"82", + X"19",X"B2",X"10",X"0C",X"03",X"2A",X"E8",X"52",X"C8",X"19",X"A6",X"8B",X"28",X"B5",X"89",X"21", + X"B1",X"8B",X"42",X"E8",X"08",X"38",X"A3",X"8A",X"41",X"B3",X"9F",X"06",X"9B",X"28",X"B5",X"99", + X"3A",X"9A",X"87",X"2C",X"81",X"98",X"40",X"D1",X"2E",X"14",X"AA",X"29",X"03",X"9B",X"10",X"91", + X"38",X"99",X"B3",X"23",X"4F",X"C2",X"29",X"91",X"8B",X"07",X"09",X"98",X"82",X"31",X"EC",X"05", + X"89",X"3C",X"A4",X"1A",X"11",X"E0",X"29",X"11",X"BB",X"41",X"01",X"BD",X"24",X"AA",X"38",X"C2", + X"08",X"13",X"F9",X"31",X"89",X"8A",X"17",X"AA",X"18",X"23",X"F8",X"20",X"88",X"94",X"8B",X"02", + X"9A",X"05",X"8D",X"02",X"88",X"8A",X"37",X"C8",X"3A",X"03",X"E9",X"79",X"91",X"89",X"39",X"C3", + X"1C",X"30",X"C1",X"19",X"01",X"A9",X"48",X"A8",X"18",X"6B",X"C4",X"09",X"18",X"A2",X"4B",X"A2", + X"09",X"10",X"B0",X"7A",X"B5",X"8B",X"30",X"C5",X"8C",X"21",X"B1",X"1A",X"12",X"9C",X"24",X"B9", + X"29",X"A7",X"9C",X"30",X"91",X"0B",X"17",X"AB",X"40",X"A1",X"8B",X"24",X"9B",X"83",X"1A",X"00", + X"A7",X"2F",X"83",X"99",X"19",X"83",X"2F",X"82",X"1A",X"90",X"82",X"19",X"9A",X"36",X"BA",X"01", + X"4A",X"99",X"C6",X"2B",X"B3",X"01",X"12",X"ED",X"51",X"B8",X"18",X"10",X"B8",X"10",X"2B",X"94", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"C3",X"87",X"E0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"E0",X"04", + X"ED",X"00",X"7C",X"BA",X"C0",X"7D",X"BB",X"C9",X"A7",X"ED",X"52",X"23",X"C9",X"23",X"7C",X"B5", + X"2B",X"C9",X"7D",X"02",X"03",X"7C",X"02",X"03",X"C9",X"1A",X"6F",X"13",X"1A",X"67",X"C9",X"DB", + X"04",X"E6",X"80",X"32",X"FD",X"FE",X"C9",X"31",X"00",X"F6",X"CD",X"60",X"F0",X"CD",X"23",X"EB", + X"31",X"00",X"F6",X"21",X"03",X"E0",X"06",X"5F",X"AF",X"77",X"23",X"10",X"FC",X"CD",X"CA",X"E0", + X"AF",X"32",X"FD",X"FE",X"32",X"FE",X"FE",X"3A",X"04",X"E0",X"A7",X"CC",X"84",X"F2",X"06",X"01", + X"CD",X"43",X"F3",X"CD",X"B8",X"F2",X"06",X"01",X"CD",X"43",X"F3",X"CD",X"B8",X"F2",X"0E",X"00", + X"CD",X"86",X"F3",X"0E",X"00",X"CD",X"86",X"F3",X"18",X"C6",X"AF",X"32",X"03",X"E0",X"32",X"FD", + X"FE",X"32",X"01",X"F6",X"21",X"05",X"E0",X"22",X"5D",X"E0",X"21",X"04",X"ED",X"22",X"5F",X"E0", + X"06",X"4D",X"36",X"20",X"23",X"10",X"FB",X"21",X"3D",X"EB",X"CD",X"50",X"F2",X"CD",X"1E",X"F1", + X"FE",X"01",X"CA",X"36",X"E1",X"FE",X"02",X"CA",X"96",X"E1",X"FE",X"03",X"CA",X"36",X"E2",X"FE", + X"04",X"CA",X"47",X"E2",X"FE",X"06",X"CA",X"D0",X"F0",X"FE",X"07",X"20",X"BD",X"21",X"85",X"EB", + X"CD",X"50",X"F2",X"CD",X"1E",X"F1",X"FE",X"01",X"CA",X"C3",X"EE",X"FE",X"02",X"CA",X"00",X"F7", + X"FE",X"03",X"CA",X"00",X"F4",X"FE",X"04",X"CA",X"94",X"ED",X"FE",X"05",X"CA",X"00",X"FB",X"FE", + X"07",X"C2",X"0D",X"E1",X"18",X"94",X"21",X"3F",X"EB",X"0E",X"05",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"84",X"F2",X"21",X"20",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"D3",X"EA", + X"20",X"F8",X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"2D",X"EC", + X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"26",X"21",X"2F",X"EC", + X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"47",X"EC",X"CD",X"50",X"F2",X"CD",X"45", + X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"0B",X"21",X"4F",X"EC",X"0E",X"02",X"CD",X"FE",X"EA", + X"CD",X"12",X"EB",X"C3",X"19",X"E9",X"21",X"49",X"EB",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"84",X"F2",X"21",X"5C",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"D3",X"EA", + X"20",X"EF",X"21",X"5E",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"69",X"EC", + X"CD",X"50",X"F2",X"CD",X"1E",X"F1",X"FE",X"01",X"28",X"5F",X"FE",X"03",X"20",X"F5",X"21",X"7D", + X"EC",X"0E",X"0C",X"CD",X"FE",X"EA",X"CD",X"84",X"F2",X"21",X"8A",X"EC",X"CD",X"50",X"F2",X"CD", + X"45",X"F1",X"CD",X"D3",X"EA",X"20",X"F8",X"CD",X"12",X"EB",X"CD",X"84",X"F2",X"21",X"93",X"EC", + X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"3A",X"04",X"F8",X"CD",X"DD",X"EA",X"20",X"F5",X"38",X"26", + X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"A9",X"EC",X"CD",X"50", + X"F2",X"CD",X"45",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"0B",X"21",X"2F",X"EC",X"0E",X"04", + X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"C3",X"99",X"E8",X"21",X"6B",X"EC",X"0E",X"0A",X"CD",X"FE", + X"EA",X"CD",X"04",X"E3",X"18",X"B4",X"21",X"52",X"EB",X"0E",X"0A",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"04",X"E3",X"C3",X"19",X"E9",X"21",X"5D",X"EB",X"0E",X"07",X"CD",X"FE",X"EA",X"CD", + X"75",X"E2",X"CD",X"04",X"E3",X"CD",X"84",X"F2",X"21",X"8A",X"EC",X"CD",X"50",X"F2",X"CD",X"45", + X"F1",X"CD",X"D3",X"EA",X"20",X"F8",X"21",X"7D",X"EC",X"01",X"0C",X"00",X"CD",X"FE",X"EA",X"CD", + X"12",X"EB",X"C3",X"EA",X"E1",X"21",X"CD",X"EB",X"CD",X"50",X"F2",X"CD",X"1E",X"F1",X"FE",X"07", + X"28",X"1A",X"FE",X"06",X"28",X"23",X"FE",X"05",X"28",X"2C",X"FE",X"04",X"28",X"35",X"FE",X"03", + X"28",X"3E",X"FE",X"02",X"28",X"47",X"FE",X"01",X"28",X"50",X"18",X"D9",X"3E",X"00",X"01",X"09", + X"00",X"11",X"0B",X"EC",X"21",X"00",X"08",X"18",X"4C",X"3E",X"32",X"01",X"06",X"00",X"11",X"02", + X"EC",X"21",X"20",X"00",X"18",X"3F",X"3E",X"34",X"01",X"06",X"00",X"11",X"F8",X"EB",X"21",X"00", + X"02",X"18",X"32",X"3E",X"54",X"01",X"04",X"00",X"11",X"EE",X"EB",X"21",X"00",X"10",X"18",X"25", + X"3E",X"54",X"01",X"04",X"10",X"11",X"E4",X"EB",X"21",X"00",X"20",X"18",X"18",X"3E",X"49",X"01", + X"04",X"00",X"11",X"DA",X"EB",X"21",X"00",X"10",X"18",X"0B",X"3E",X"49",X"01",X"04",X"10",X"11", + X"D0",X"EB",X"21",X"00",X"20",X"32",X"41",X"E0",X"22",X"45",X"E0",X"21",X"40",X"E0",X"70",X"EB", + X"CD",X"FE",X"EA",X"C9",X"11",X"FF",X"FF",X"2A",X"5D",X"E0",X"73",X"23",X"72",X"23",X"22",X"5D", + X"E0",X"21",X"03",X"E0",X"34",X"C9",X"21",X"00",X"00",X"22",X"4D",X"E0",X"7D",X"32",X"3F",X"E0", + X"2A",X"05",X"E0",X"22",X"49",X"E0",X"22",X"4F",X"E0",X"3A",X"03",X"E0",X"C9",X"CD",X"33",X"E3", + X"C3",X"B8",X"E3",X"CD",X"16",X"E3",X"FE",X"01",X"20",X"23",X"2A",X"49",X"E0",X"11",X"00",X"E0", + X"CD",X"62",X"E0",X"38",X"07",X"21",X"FF",X"FF",X"22",X"49",X"E0",X"23",X"EB",X"2A",X"45",X"E0", + X"22",X"47",X"E0",X"2B",X"19",X"22",X"4B",X"E0",X"3E",X"01",X"D8",X"AF",X"C9",X"FE",X"02",X"20", + X"21",X"EB",X"2A",X"07",X"E0",X"22",X"4B",X"E0",X"CD",X"68",X"E0",X"38",X"EB",X"22",X"47",X"E0", + X"EB",X"2A",X"45",X"E0",X"1B",X"CD",X"62",X"E0",X"3E",X"00",X"30",X"01",X"3C",X"32",X"3F",X"E0", + X"AF",X"C9",X"EB",X"2A",X"07",X"E0",X"22",X"4B",X"E0",X"CD",X"68",X"E0",X"38",X"CA",X"22",X"47", + X"E0",X"2A",X"09",X"E0",X"22",X"4D",X"E0",X"EB",X"2A",X"45",X"E0",X"2B",X"CD",X"62",X"E0",X"3E", + X"01",X"38",X"DA",X"2A",X"47",X"E0",X"19",X"EB",X"2A",X"45",X"E0",X"CD",X"62",X"E0",X"3E",X"00", + X"30",X"CB",X"3C",X"18",X"C8",X"CD",X"92",X"E4",X"A7",X"C0",X"21",X"05",X"E0",X"06",X"3A",X"36", + X"00",X"23",X"10",X"FB",X"3A",X"3F",X"E0",X"A7",X"28",X"2E",X"2A",X"45",X"E0",X"11",X"00",X"10", + X"CD",X"62",X"E0",X"3E",X"00",X"30",X"61",X"ED",X"5B",X"45",X"E0",X"2A",X"47",X"E0",X"2B",X"CD", + X"62",X"E0",X"D2",X"F9",X"E4",X"44",X"4D",X"2A",X"4D",X"E0",X"09",X"DA",X"58",X"E3",X"CD",X"62", + X"E0",X"3E",X"01",X"D0",X"AF",X"32",X"3F",X"E0",X"D5",X"2A",X"45",X"E0",X"11",X"00",X"10",X"CD", + X"62",X"E0",X"D1",X"21",X"56",X"E0",X"3E",X"01",X"38",X"02",X"3E",X"07",X"77",X"01",X"05",X"E0", + X"2A",X"47",X"E0",X"CD",X"72",X"E0",X"2A",X"4D",X"E0",X"CD",X"72",X"E0",X"EB",X"2A",X"45",X"E0", + X"19",X"22",X"4D",X"E0",X"2A",X"49",X"E0",X"CD",X"72",X"E0",X"2A",X"4F",X"E0",X"CD",X"72",X"E0", + X"21",X"56",X"E0",X"35",X"20",X"DA",X"AF",X"C9",X"01",X"05",X"E0",X"ED",X"5B",X"45",X"E0",X"2A", + X"4D",X"E0",X"A7",X"ED",X"52",X"30",X"FC",X"7D",X"2F",X"5F",X"7C",X"2F",X"57",X"13",X"2A",X"47", + X"E0",X"CD",X"62",X"E0",X"F5",X"28",X"08",X"38",X"06",X"ED",X"52",X"22",X"47",X"E0",X"EB",X"CD", + X"72",X"E0",X"EB",X"2A",X"4D",X"E0",X"CD",X"72",X"E0",X"19",X"22",X"4D",X"E0",X"2A",X"49",X"E0", + X"CD",X"72",X"E0",X"CD",X"6D",X"E0",X"28",X"01",X"19",X"22",X"49",X"E0",X"2A",X"4F",X"E0",X"CD", + X"72",X"E0",X"CD",X"6D",X"E0",X"28",X"01",X"19",X"22",X"4F",X"E0",X"F1",X"3E",X"00",X"C8",X"30", + X"AA",X"C9",X"CD",X"16",X"E3",X"11",X"FF",X"FF",X"ED",X"53",X"4F",X"E0",X"FE",X"01",X"20",X"0C", + X"11",X"00",X"E0",X"CD",X"62",X"E0",X"DA",X"4C",X"E3",X"3E",X"01",X"C9",X"47",X"11",X"00",X"E0", + X"CD",X"62",X"E0",X"38",X"07",X"21",X"FF",X"FF",X"22",X"49",X"E0",X"23",X"78",X"FE",X"02",X"EB", + X"2A",X"07",X"E0",X"22",X"4F",X"E0",X"CA",X"4D",X"E3",X"2A",X"09",X"E0",X"22",X"4D",X"E0",X"3E", + X"01",X"32",X"3F",X"E0",X"78",X"FE",X"03",X"CA",X"4D",X"E3",X"EB",X"2A",X"0B",X"E0",X"CD",X"68", + X"E0",X"DA",X"58",X"E3",X"22",X"47",X"E0",X"EB",X"2A",X"49",X"E0",X"CD",X"6D",X"E0",X"C8",X"19", + X"22",X"4B",X"E0",X"11",X"00",X"E0",X"CD",X"62",X"E0",X"3E",X"01",X"D0",X"AF",X"C9",X"3A",X"41", + X"E0",X"FE",X"32",X"28",X"04",X"FE",X"34",X"20",X"03",X"AF",X"18",X"10",X"A7",X"20",X"04",X"3E", + X"10",X"18",X"09",X"06",X"30",X"FE",X"49",X"28",X"02",X"06",X"20",X"78",X"32",X"43",X"E0",X"C9", + X"3A",X"3F",X"E0",X"A7",X"28",X"14",X"21",X"07",X"E0",X"7E",X"23",X"66",X"6F",X"ED",X"5B",X"45", + X"E0",X"06",X"FF",X"A7",X"ED",X"52",X"04",X"30",X"FA",X"78",X"32",X"51",X"E0",X"C9",X"CD",X"5E", + X"E5",X"D5",X"11",X"10",X"27",X"1B",X"7A",X"B3",X"20",X"FB",X"D1",X"C9",X"11",X"C0",X"C0",X"3A", + X"43",X"E0",X"E6",X"30",X"FE",X"20",X"30",X"03",X"50",X"18",X"01",X"58",X"B2",X"C9",X"F5",X"32", + X"44",X"E0",X"06",X"82",X"FE",X"00",X"20",X"02",X"06",X"80",X"78",X"D3",X"03",X"F1",X"E6",X"C0", + X"47",X"D5",X"CD",X"4C",X"E5",X"D3",X"02",X"3A",X"3F",X"E0",X"A7",X"3E",X"0E",X"28",X"01",X"AF", + X"47",X"3A",X"40",X"E0",X"E6",X"10",X"B0",X"32",X"40",X"E0",X"B3",X"D3",X"05",X"D1",X"C9",X"3A", + X"44",X"E0",X"E6",X"C0",X"47",X"D5",X"CD",X"4C",X"E5",X"47",X"7C",X"E6",X"0F",X"B0",X"D3",X"02", + X"7D",X"D3",X"00",X"3A",X"40",X"E0",X"E6",X"0E",X"FE",X"0E",X"7C",X"28",X"17",X"E6",X"F0",X"47", + X"3A",X"43",X"E0",X"E6",X"20",X"28",X"0A",X"3A",X"40",X"E0",X"E6",X"10",X"20",X"03",X"78",X"17", + X"47",X"78",X"18",X"04",X"E6",X"10",X"F6",X"E0",X"0F",X"0F",X"0F",X"0F",X"47",X"3A",X"40",X"E0", + X"E6",X"10",X"B0",X"E6",X"1F",X"32",X"40",X"E0",X"B3",X"D1",X"D3",X"05",X"C9",X"D5",X"C5",X"06", + X"80",X"CD",X"4C",X"E5",X"47",X"7C",X"E6",X"0F",X"B0",X"D3",X"02",X"47",X"3A",X"40",X"E0",X"B3", + X"D3",X"05",X"4F",X"ED",X"5B",X"58",X"E0",X"1B",X"7A",X"B3",X"20",X"FB",X"78",X"CD",X"0B",X"E6", + X"D3",X"02",X"79",X"CD",X"0B",X"E6",X"D3",X"05",X"C1",X"D1",X"C9",X"CB",X"77",X"C0",X"E6",X"7F", + X"C9",X"21",X"05",X"E0",X"4E",X"23",X"46",X"23",X"5E",X"23",X"56",X"23",X"7E",X"23",X"66",X"6F", + X"EB",X"C9",X"3A",X"03",X"E0",X"FE",X"03",X"3E",X"00",X"C8",X"D5",X"E5",X"2A",X"45",X"E0",X"11", + X"00",X"10",X"CD",X"62",X"E0",X"E1",X"D1",X"01",X"01",X"01",X"38",X"02",X"0E",X"07",X"C5",X"3E", + X"40",X"CD",X"3E",X"E5",X"3A",X"40",X"E0",X"E6",X"10",X"32",X"40",X"E0",X"11",X"00",X"00",X"C1", + X"3E",X"00",X"F5",X"C5",X"D5",X"CD",X"8B",X"E6",X"D1",X"C1",X"28",X"01",X"C5",X"04",X"0D",X"28", + X"07",X"2A",X"45",X"E0",X"19",X"EB",X"18",X"EB",X"3E",X"C0",X"CD",X"3E",X"E5",X"F1",X"A7",X"C8", + X"CD",X"DB",X"E7",X"21",X"C5",X"EC",X"CD",X"54",X"F2",X"F1",X"A7",X"28",X"0B",X"CD",X"DB",X"E7", + X"21",X"C5",X"EC",X"CD",X"54",X"F2",X"18",X"F1",X"3E",X"80",X"C9",X"ED",X"4B",X"45",X"E0",X"EB", + X"50",X"59",X"CD",X"8F",X"E5",X"23",X"3A",X"43",X"E0",X"E6",X"30",X"06",X"FF",X"20",X"01",X"04", + X"DB",X"01",X"B8",X"C0",X"1B",X"7A",X"B3",X"20",X"E9",X"C9",X"3E",X"C0",X"CD",X"3E",X"E5",X"3E", + X"40",X"CD",X"3E",X"E5",X"3A",X"40",X"E0",X"E6",X"10",X"32",X"40",X"E0",X"AF",X"32",X"5B",X"E0", + X"21",X"00",X"00",X"22",X"56",X"E0",X"22",X"52",X"E0",X"21",X"51",X"E0",X"34",X"2A",X"4B",X"E0", + X"7E",X"4F",X"23",X"B6",X"F5",X"3E",X"C0",X"CC",X"3E",X"E5",X"F1",X"C8",X"46",X"23",X"EB",X"CD", + X"79",X"E0",X"22",X"4D",X"E0",X"13",X"CD",X"79",X"E0",X"22",X"49",X"E0",X"13",X"CD",X"79",X"E0", + X"22",X"4F",X"E0",X"13",X"EB",X"22",X"4B",X"E0",X"C5",X"2A",X"4D",X"E0",X"CD",X"8F",X"E5",X"EB", + X"2A",X"49",X"E0",X"CD",X"6D",X"E0",X"DB",X"01",X"28",X"0D",X"47",X"3A",X"54",X"E0",X"A7",X"78", + X"28",X"05",X"77",X"23",X"22",X"49",X"E0",X"21",X"5B",X"E0",X"FE",X"FF",X"28",X"05",X"35",X"28", + X"01",X"34",X"34",X"F5",X"2A",X"52",X"E0",X"85",X"6F",X"7C",X"CE",X"00",X"67",X"22",X"52",X"E0", + X"F1",X"2A",X"4F",X"E0",X"BE",X"C4",X"19",X"E8",X"C1",X"28",X"04",X"AF",X"32",X"55",X"E0",X"2A", + X"4D",X"E0",X"23",X"22",X"4D",X"E0",X"2A",X"4F",X"E0",X"CD",X"6D",X"E0",X"28",X"04",X"23",X"22", + X"4F",X"E0",X"0B",X"78",X"B1",X"20",X"A1",X"3E",X"C0",X"CD",X"3E",X"E5",X"3A",X"5C",X"E0",X"A7", + X"20",X"05",X"3A",X"5B",X"E0",X"A7",X"C0",X"F5",X"F5",X"CD",X"D8",X"E7",X"F1",X"21",X"BF",X"EC", + X"CC",X"54",X"F2",X"F1",X"C8",X"3A",X"61",X"E0",X"A7",X"28",X"2B",X"06",X"02",X"CD",X"43",X"F3", + X"CD",X"B8",X"F2",X"06",X"02",X"CD",X"43",X"F3",X"CD",X"B8",X"F2",X"06",X"02",X"CD",X"43",X"F3", + X"CD",X"B8",X"F2",X"AF",X"32",X"61",X"E0",X"0E",X"80",X"CD",X"86",X"F3",X"0E",X"80",X"CD",X"86", + X"F3",X"0E",X"80",X"CD",X"86",X"F3",X"CD",X"D8",X"E7",X"CD",X"0E",X"F2",X"2A",X"4F",X"E0",X"CD", + X"6D",X"E0",X"28",X"12",X"2A",X"56",X"E0",X"7C",X"B5",X"28",X"0B",X"21",X"CE",X"EC",X"CD",X"57", + X"F2",X"2A",X"56",X"E0",X"18",X"09",X"21",X"D3",X"EC",X"CD",X"57",X"F2",X"2A",X"52",X"E0",X"CD", + X"E6",X"E7",X"2A",X"56",X"E0",X"7C",X"B5",X"C9",X"3A",X"51",X"E0",X"47",X"3E",X"F8",X"C6",X"0A", + X"10",X"FC",X"57",X"1E",X"11",X"C9",X"7C",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD",X"0D",X"E8",X"CD", + X"2C",X"F2",X"F1",X"CD",X"0D",X"E8",X"CD",X"2C",X"F2",X"7D",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD", + X"0D",X"E8",X"CD",X"2C",X"F2",X"F1",X"CD",X"0D",X"E8",X"CD",X"2C",X"F2",X"C9",X"E6",X"0F",X"FE", + X"0A",X"30",X"03",X"F6",X"30",X"C9",X"C6",X"37",X"C9",X"4F",X"2A",X"4F",X"E0",X"CD",X"6D",X"E0", + X"C8",X"2A",X"56",X"E0",X"23",X"22",X"56",X"E0",X"3A",X"55",X"E0",X"A7",X"C8",X"C5",X"3E",X"01", + X"32",X"61",X"E0",X"3A",X"FE",X"FE",X"FE",X"12",X"38",X"23",X"CD",X"45",X"F1",X"C1",X"3A",X"04", + X"F8",X"FE",X"0D",X"28",X"52",X"C5",X"AF",X"32",X"FE",X"FE",X"21",X"D8",X"EC",X"CD",X"74",X"F1", + X"3A",X"51",X"E0",X"F6",X"30",X"CD",X"BA",X"F2",X"CD",X"B8",X"F2",X"18",X"0A",X"2B",X"7C",X"B5", + X"20",X"05",X"CD",X"B8",X"F2",X"18",X"E3",X"06",X"02",X"CD",X"43",X"F3",X"2A",X"4D",X"E0",X"CD", + X"26",X"F3",X"06",X"02",X"CD",X"43",X"F3",X"C1",X"79",X"CD",X"2B",X"F3",X"06",X"03",X"CD",X"43", + X"F3",X"2A",X"4F",X"E0",X"7E",X"F5",X"CD",X"26",X"F3",X"06",X"02",X"CD",X"43",X"F3",X"F1",X"CD", + X"2B",X"F3",X"CD",X"B8",X"F2",X"AF",X"C9",X"A7",X"C9",X"CD",X"B5",X"E3",X"A7",X"C0",X"CD",X"FE", + X"E4",X"11",X"11",X"01",X"CD",X"87",X"F2",X"11",X"12",X"01",X"CD",X"87",X"F2",X"3E",X"01",X"32", + X"5C",X"E0",X"32",X"54",X"E0",X"32",X"55",X"E0",X"21",X"05",X"E0",X"22",X"4B",X"E0",X"CD",X"20", + X"E5",X"3A",X"3F",X"E0",X"A7",X"28",X"0C",X"2A",X"4B",X"E0",X"7E",X"23",X"B6",X"C8",X"CD",X"AA", + X"E6",X"18",X"F4",X"06",X"07",X"D5",X"E5",X"2A",X"45",X"E0",X"11",X"00",X"10",X"CD",X"62",X"E0", + X"E1",X"D1",X"30",X"02",X"06",X"01",X"C5",X"AF",X"32",X"5C",X"E0",X"32",X"54",X"E0",X"32",X"55", + X"E0",X"CD",X"AA",X"E6",X"3A",X"5B",X"E0",X"A7",X"28",X"1A",X"32",X"5C",X"E0",X"32",X"54",X"E0", + X"00",X"00",X"00",X"01",X"A0",X"40",X"02",X"B0",X"A2",X"F0",X"01",X"B0",X"A4",X"A0",X"01",X"50", + X"A5",X"F0",X"10",X"00",X"B5",X"F0",X"18",X"80",X"CE",X"70",X"03",X"A0",X"D2",X"10",X"08",X"00", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"F0",X"E5",X"F1",X"0A",X"F1",X"AF",X"F1",X"DD",X"F2",X"6D",X"F2",X"C8", + X"F3",X"FE",X"F4",X"1C",X"F4",X"36",X"F3",X"63",X"F1",X"81",X"E9",X"D9",X"E9",X"D9",X"E9",X"D9", + X"E9",X"D9",X"E9",X"D9",X"E9",X"7E",X"EA",X"2F",X"EA",X"F2",X"EB",X"CB",X"ED",X"26",X"40",X"00", + X"41",X"00",X"42",X"00",X"43",X"00",X"44",X"00",X"48",X"00",X"49",X"00",X"4A",X"00",X"45",X"00", + X"4B",X"00",X"4C",X"00",X"4D",X"00",X"6C",X"00",X"6D",X"00",X"6E",X"00",X"66",X"BC",X"6C",X"14", + X"6D",X"14",X"FE",X"E9",X"DA",X"FE",X"EA",X"1B",X"FE",X"E9",X"DA",X"FE",X"EA",X"1B",X"FE",X"E9", + X"DA",X"40",X"8E",X"48",X"0D",X"69",X"0D",X"02",X"7A",X"40",X"69",X"0D",X"02",X"7A",X"20",X"48", + X"00",X"40",X"9F",X"68",X"0D",X"69",X"0D",X"02",X"1C",X"40",X"40",X"8E",X"68",X"0D",X"69",X"0D", + X"02",X"1C",X"20",X"6C",X"00",X"6D",X"00",X"67",X"03",X"FF",X"42",X"38",X"43",X"02",X"49",X"0D", + X"68",X"0D",X"00",X"47",X"20",X"68",X"0D",X"00",X"4F",X"20",X"49",X"00",X"68",X"0D",X"69",X"0D", + X"00",X"5E",X"20",X"42",X"DD",X"43",X"01",X"49",X"0D",X"68",X"0D",X"00",X"6A",X"20",X"68",X"0D", + X"00",X"77",X"20",X"49",X"00",X"68",X"0D",X"69",X"0D",X"00",X"8E",X"20",X"40",X"77",X"48",X"0D", + X"69",X"0D",X"02",X"A9",X"40",X"69",X"0D",X"02",X"A9",X"20",X"FD",X"40",X"8E",X"48",X"0D",X"69", + X"0D",X"02",X"7A",X"20",X"69",X"0D",X"02",X"3E",X"20",X"69",X"0D",X"02",X"1C",X"20",X"FD",X"66", + X"BC",X"6C",X"10",X"6D",X"10",X"41",X"00",X"43",X"01",X"40",X"6A",X"68",X"0D",X"69",X"0D",X"02", + X"7A",X"20",X"40",X"5E",X"68",X"0D",X"69",X"0D",X"02",X"7A",X"20",X"40",X"4F",X"48",X"0D",X"69", + X"0D",X"02",X"C1",X"20",X"69",X"0D",X"02",X"C1",X"20",X"48",X"00",X"40",X"5E",X"68",X"0D",X"69", + X"0D",X"02",X"A9",X"20",X"40",X"6A",X"68",X"0D",X"69",X"0D",X"02",X"A9",X"20",X"40",X"7E",X"48", + X"0D",X"69",X"0D",X"02",X"90",X"20",X"69",X"0D",X"02",X"90",X"20",X"40",X"6A",X"48",X"0D",X"69", + X"0D",X"02",X"7A",X"20",X"69",X"0D",X"02",X"7A",X"20",X"40",X"7E",X"48",X"0D",X"69",X"0D",X"02", + X"C1",X"20",X"69",X"0D",X"02",X"C1",X"20",X"40",X"8E",X"48",X"0D",X"69",X"0D",X"02",X"A9",X"20", + X"69",X"0D",X"02",X"A9",X"20",X"40",X"9F",X"48",X"0D",X"69",X"0D",X"02",X"90",X"20",X"69",X"0D", + X"02",X"90",X"20",X"42",X"7A",X"49",X"0D",X"68",X"0D",X"00",X"8E",X"20",X"68",X"0D",X"00",X"9F", + X"20",X"49",X"00",X"40",X"BD",X"68",X"0D",X"69",X"0D",X"02",X"C1",X"40",X"40",X"D4",X"43",X"01", + X"68",X"0D",X"69",X"0D",X"02",X"1C",X"20",X"40",X"C8",X"68",X"0D",X"69",X"0D",X"02",X"0C",X"20", + X"40",X"BD",X"43",X"00",X"68",X"0D",X"69",X"0D",X"02",X"FD",X"80",X"67",X"03",X"6C",X"00",X"6D", + X"00",X"FF",X"66",X"BC",X"6C",X"10",X"6D",X"10",X"40",X"38",X"41",X"02",X"48",X"0D",X"43",X"00", + X"69",X"0D",X"02",X"EE",X"20",X"69",X"0D",X"02",X"E1",X"20",X"48",X"00",X"40",X"C1",X"41",X"01", + X"68",X"0D",X"69",X"0D",X"02",X"8E",X"40",X"40",X"7A",X"68",X"0D",X"69",X"0D",X"02",X"9F",X"40", + X"40",X"51",X"68",X"0D",X"69",X"0D",X"02",X"A8",X"40",X"40",X"3E",X"48",X"0D",X"69",X"0D",X"02", + X"BD",X"20",X"69",X"0D",X"02",X"D4",X"20",X"48",X"00",X"40",X"51",X"68",X"0D",X"69",X"0D",X"02", + X"EE",X"40",X"40",X"7A",X"48",X"0D",X"69",X"0D",X"02",X"EE",X"20",X"69",X"0D",X"02",X"E1",X"20", + X"48",X"00",X"40",X"C1",X"68",X"0D",X"69",X"0D",X"02",X"D4",X"40",X"40",X"A7",X"41",X"02",X"68", + X"0D",X"69",X"0D",X"02",X"E1",X"20",X"40",X"51",X"41",X"01",X"68",X"0D",X"69",X"0D",X"02",X"8E", + X"20",X"40",X"7D",X"41",X"02",X"68",X"0D",X"69",X"0D",X"02",X"D4",X"20",X"40",X"3E",X"41",X"01", + X"68",X"0D",X"69",X"0D",X"02",X"7E",X"20",X"40",X"58",X"41",X"02",X"68",X"0D",X"69",X"0D",X"02", + X"C8",X"20",X"40",X"2C",X"41",X"01",X"68",X"0D",X"69",X"0D",X"02",X"77",X"20",X"40",X"38",X"41", + X"02",X"68",X"0D",X"69",X"0D",X"02",X"BD",X"20",X"40",X"1C",X"41",X"01",X"68",X"0D",X"69",X"0D", + X"02",X"70",X"20",X"40",X"38",X"41",X"02",X"68",X"0D",X"69",X"0D",X"02",X"70",X"40",X"67",X"03", + X"6C",X"00",X"6D",X"00",X"48",X"00",X"49",X"00",X"4A",X"00",X"FF",X"66",X"B8",X"6C",X"14",X"6D", + X"14",X"6E",X"14",X"FE",X"EC",X"62",X"FE",X"EC",X"62",X"FE",X"EC",X"62",X"40",X"3F",X"42",X"54", + X"45",X"01",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A", + X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69", + X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68", + X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A", + X"2D",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"40",X"3C",X"42",X"4F",X"68",X"0D", + X"69",X"0D",X"6A",X"0D",X"04",X"A9",X"5A",X"40",X"3F",X"42",X"54",X"68",X"0D",X"69",X"0D",X"6A", + X"0D",X"04",X"C1",X"2D",X"40",X"47",X"42",X"5E",X"45",X"02",X"68",X"0D",X"69",X"0D",X"6A",X"0D", + X"04",X"38",X"5A",X"67",X"07",X"6C",X"00",X"6D",X"00",X"6E",X"00",X"48",X"00",X"49",X"00",X"4A", + X"00",X"FF",X"4A",X"00",X"41",X"00",X"43",X"00",X"45",X"02",X"40",X"8E",X"42",X"BD",X"48",X"0D", + X"49",X"0D",X"6A",X"0D",X"04",X"38",X"2D",X"45",X"01",X"6A",X"0D",X"04",X"C1",X"2D",X"48",X"00", + X"49",X"00",X"40",X"70",X"42",X"8E",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"7A",X"2D",X"40", + X"5E",X"44",X"38",X"45",X"02",X"4A",X"0D",X"68",X"0D",X"69",X"0D",X"02",X"70",X"2D",X"40",X"6A", + X"68",X"0D",X"69",X"0D",X"02",X"8E",X"2D",X"4A",X"00",X"40",X"54",X"42",X"6A",X"45",X"01",X"68", + X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"C1",X"2D",X"6A",X"0D",X"04",X"7A",X"2D",X"40",X"4F",X"42", + X"6A",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"A9",X"5A",X"40",X"54",X"42",X"6A",X"68",X"0D", + X"69",X"0D",X"6A",X"0D",X"04",X"51",X"2D",X"40",X"5E",X"42",X"70",X"68",X"0D",X"69",X"0D",X"6A", + X"0D",X"04",X"1C",X"2D",X"40",X"77",X"44",X"EE",X"45",X"00",X"4A",X"0D",X"68",X"0D",X"69",X"0D", + X"02",X"9F",X"2D",X"40",X"70",X"68",X"0D",X"69",X"0D",X"02",X"8E",X"2D",X"4A",X"00",X"40",X"9F", + X"42",X"D4",X"68",X"0D",X"69",X"0D",X"6A",X"0D",X"04",X"FD",X"2D",X"40",X"9F",X"44",X"1C",X"45", + X"01",X"4A",X"0D",X"68",X"0D",X"69",X"0D",X"02",X"D4",X"2D",X"40",X"8E",X"68",X"0D",X"69",X"0D", + X"02",X"BD",X"2D",X"4A",X"00",X"FD",X"66",X"B5",X"6D",X"14",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"46",X"01",X"43",X"02",X"FE",X"EF",X"27",X"FE",X"EF",X"27",X"FE",X"EF",X"27",X"FE",X"EF",X"27", + X"43",X"00",X"FE",X"F0",X"09",X"FE",X"F0",X"09",X"43",X"01",X"FE",X"EF",X"27",X"FE",X"EF",X"27", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"7A",X"30",X"4B", + X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E",X"02",X"7A",X"16",X"43",X"00",X"02",X"00", + X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16", + X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69", + X"0E",X"02",X"7A",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E",X"02",X"7A", + X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01", + X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"7A",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48", + X"10",X"69",X"0E",X"02",X"7A",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D", + X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B", + X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E",X"43",X"01",X"02",X"7A",X"16",X"43",X"00", + X"02",X"00",X"02",X"43",X"01",X"69",X"0E",X"02",X"3E",X"16",X"43",X"00",X"02",X"00",X"02",X"4B", + X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"7A",X"16",X"43",X"00", + X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02", + X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43", + X"01",X"69",X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01", + X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03", + X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C", + X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00", + X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16", + X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69", + X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E", + X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01", + X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"43",X"01",X"69",X"0E",X"02",X"65",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"43",X"01",X"69",X"0E",X"02",X"DD",X"16",X"43", + X"00",X"02",X"00",X"02",X"FE",X"ED",X"26",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48", + X"10",X"69",X"0E",X"02",X"38",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69",X"0E", + X"02",X"38",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02", + X"48",X"10",X"69",X"0E",X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"30",X"48",X"10",X"69",X"0E",X"02", + X"38",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48", + X"10",X"69",X"0E",X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D", + X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09", + X"48",X"10",X"69",X"0E",X"02",X"38",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"16",X"43", + X"00",X"02",X"00",X"02",X"43",X"01",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E",X"02",X"38",X"16",X"43", + X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"02",X"48",X"10",X"69",X"0E", + X"02",X"7D",X"16",X"43",X"00",X"02",X"00",X"02",X"FD",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43", + X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"30",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43", + X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E", + X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01", + X"48",X"10",X"69",X"0E",X"02",X"A9",X"30",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"69", + X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43", + X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C", + X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"30",X"48",X"10",X"69",X"0E", + X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01", + X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"43",X"01",X"69",X"0E",X"02",X"65",X"16",X"43",X"00",X"02",X"00",X"02",X"4B",X"03",X"4C",X"02", + X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"A9",X"16",X"43",X"00",X"02",X"00",X"02", + X"4B",X"03",X"4C",X"02",X"4D",X"09",X"43",X"01",X"48",X"10",X"69",X"0E",X"02",X"DD",X"16",X"43", + X"00",X"02",X"00",X"02",X"FD",X"76",X"AE",X"50",X"00",X"51",X"00",X"52",X"00",X"53",X"00",X"58", + X"10",X"59",X"10",X"5B",X"00",X"5C",X"02",X"5D",X"00",X"70",X"00",X"08",X"16",X"0C",X"10",X"58", + X"00",X"59",X"00",X"5B",X"00",X"5C",X"00",X"77",X"11",X"FF",X"76",X"A7",X"58",X"0F",X"59",X"0F", + X"51",X"01",X"53",X"01",X"16",X"16",X"05",X"58",X"05",X"59",X"00",X"30",X"00",X"00",X"04",X"58", + X"0F",X"59",X"0F",X"16",X"08",X"05",X"58",X"0E",X"59",X"0E",X"16",X"07",X"05",X"58",X"0D",X"59", + X"0D",X"16",X"09",X"05",X"58",X"0C",X"59",X"0C",X"16",X"0A",X"05",X"58",X"0B",X"59",X"0B",X"16", + X"08",X"05",X"58",X"0A",X"59",X"0A",X"16",X"09",X"05",X"58",X"09",X"59",X"09",X"16",X"06",X"05", + X"58",X"08",X"59",X"09",X"16",X"07",X"05",X"58",X"07",X"59",X"07",X"16",X"0A",X"05",X"58",X"06", + X"59",X"06",X"16",X"08",X"05",X"58",X"05",X"59",X"05",X"16",X"06",X"05",X"58",X"04",X"59",X"04", + X"16",X"08",X"05",X"58",X"02",X"59",X"02",X"16",X"0A",X"05",X"58",X"00",X"59",X"00",X"77",X"18", + X"FF",X"66",X"AF",X"46",X"09",X"89",X"20",X"01",X"09",X"0A",X"0B",X"0D",X"0D",X"0E",X"0F",X"0F", + X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0E",X"0D",X"0C",X"0B",X"0A",X"09",X"08", + X"07",X"06",X"05",X"04",X"03",X"02",X"01",X"00",X"49",X"00",X"67",X"10",X"46",X"00",X"FF",X"66", + X"97",X"46",X"09",X"8A",X"20",X"01",X"09",X"0A",X"0B",X"0D",X"0D",X"0E",X"0F",X"0F",X"0F",X"0F", + X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0F",X"0E",X"0D",X"0C",X"0B",X"0A",X"09",X"08",X"07",X"06", + X"05",X"04",X"03",X"02",X"01",X"00",X"4A",X"00",X"67",X"20",X"46",X"01",X"FF",X"76",X"A4",X"58", + X"0F",X"59",X"0F",X"56",X"18",X"70",X"12",X"00",X"31",X"25",X"01",X"02",X"70",X"18",X"00",X"31", + X"28",X"00",X"02",X"70",X"1A",X"00",X"31",X"22",X"02",X"03",X"70",X"2C",X"00",X"31",X"2A",X"01", + X"03",X"70",X"2D",X"00",X"31",X"22",X"00",X"02",X"70",X"2F",X"00",X"31",X"25",X"00",X"01",X"59", + X"03",X"18",X"03",X"02",X"76",X"AC",X"58",X"0F",X"59",X"0F",X"56",X"02",X"5B",X"F0",X"5C",X"0A", + X"FE",X"F2",X"34",X"58",X"10",X"59",X"10",X"FE",X"F2",X"34",X"FE",X"F2",X"34",X"58",X"00",X"59", + X"00",X"77",X"1B",X"FF",X"70",X"18",X"00",X"31",X"10",X"00",X"05",X"70",X"1D",X"00",X"31",X"13", + X"00",X"04",X"70",X"1C",X"00",X"31",X"0E",X"00",X"05",X"70",X"0A",X"00",X"31",X"10",X"00",X"04", + X"70",X"08",X"00",X"31",X"10",X"00",X"04",X"70",X"0E",X"00",X"31",X"13",X"00",X"05",X"70",X"15", + X"00",X"31",X"0E",X"00",X"04",X"70",X"1A",X"00",X"31",X"0A",X"00",X"04",X"FD",X"76",X"BB",X"66", + X"B3",X"4A",X"0F",X"5A",X"0F",X"FE",X"F2",X"8F",X"0A",X"00",X"08",X"FE",X"F2",X"8F",X"44",X"00", + X"45",X"00",X"55",X"00",X"54",X"00",X"48",X"A0",X"5A",X"00",X"77",X"04",X"67",X"04",X"FF",X"62", + X"20",X"00",X"32",X"18",X"00",X"02",X"62",X"25",X"00",X"32",X"1A",X"00",X"01",X"62",X"23",X"00", + X"32",X"15",X"00",X"02",X"62",X"0B",X"00",X"32",X"12",X"00",X"01",X"62",X"09",X"00",X"32",X"16", + X"00",X"01",X"62",X"0E",X"00",X"32",X"1A",X"00",X"02",X"62",X"20",X"00",X"32",X"0E",X"00",X"01", + X"62",X"29",X"00",X"32",X"0D",X"00",X"01",X"FD",X"66",X"97",X"46",X"00",X"4A",X"05",X"5A",X"05", + X"76",X"BB",X"14",X"60",X"01",X"4A",X"07",X"5A",X"06",X"14",X"5C",X"01",X"4A",X"08",X"5A",X"07", + X"14",X"58",X"01",X"4A",X"09",X"5A",X"08",X"14",X"54",X"01",X"4A",X"0A",X"5A",X"09",X"14",X"50", + X"01",X"4A",X"0B",X"5A",X"0A",X"14",X"4C",X"01",X"4A",X"0C",X"5A",X"0B",X"14",X"48",X"01",X"4A", + X"0D",X"5A",X"0C",X"14",X"44",X"01",X"4A",X"0E",X"5A",X"0D",X"14",X"40",X"01",X"4A",X"0F",X"5A", + X"0E",X"14",X"3C",X"01",X"4A",X"0F",X"5A",X"0E",X"14",X"38",X"01",X"4A",X"0E",X"5A",X"0E",X"14", + X"34",X"01",X"4A",X"0D",X"5A",X"0E",X"14",X"30",X"01",X"4A",X"0B",X"5A",X"0D",X"14",X"40",X"01", + X"5A",X"0B",X"14",X"45",X"01",X"5A",X"09",X"14",X"4A",X"01",X"5A",X"08",X"14",X"4F",X"01",X"5A", + X"06",X"14",X"53",X"01",X"5A",X"05",X"14",X"57",X"01",X"5A",X"04",X"14",X"5B",X"01",X"5A",X"03", + X"14",X"60",X"01",X"5A",X"02",X"14",X"64",X"01",X"4A",X"00",X"5A",X"00",X"77",X"20",X"67",X"20", + X"46",X"01",X"FF",X"66",X"9F",X"46",X"00",X"4A",X"05",X"5A",X"05",X"76",X"BB",X"14",X"60",X"01", + X"4A",X"07",X"5A",X"06",X"14",X"5C",X"01",X"4A",X"08",X"5A",X"07",X"14",X"58",X"01",X"4A",X"09", + X"5A",X"08",X"14",X"54",X"01",X"4A",X"0A",X"5A",X"09",X"14",X"50",X"01",X"4A",X"0B",X"5A",X"0A", + X"14",X"4C",X"01",X"4A",X"0C",X"5A",X"0B",X"14",X"48",X"01",X"4A",X"0D",X"5A",X"0C",X"14",X"44", + X"01",X"4A",X"0E",X"5A",X"0D",X"14",X"40",X"01",X"4A",X"0F",X"5A",X"0E",X"14",X"3C",X"01",X"4A", + X"0F",X"5A",X"0E",X"14",X"38",X"01",X"4A",X"0E",X"5A",X"0E",X"14",X"34",X"01",X"4A",X"0D",X"5A", + X"0E",X"14",X"30",X"01",X"4A",X"0B",X"5A",X"0D",X"14",X"40",X"01",X"5A",X"0B",X"14",X"45",X"01", + X"5A",X"09",X"14",X"4A",X"01",X"5A",X"08",X"14",X"4F",X"01",X"5A",X"06",X"14",X"53",X"01",X"5A", + X"05",X"14",X"57",X"01",X"5A",X"04",X"14",X"5B",X"01",X"5A",X"03",X"14",X"60",X"01",X"5A",X"02", + X"14",X"64",X"01",X"4A",X"00",X"5A",X"00",X"77",X"04",X"67",X"20",X"46",X"00",X"FF",X"76",X"BC", + X"58",X"10",X"59",X"10",X"5B",X"80",X"5C",X"02",X"5D",X"00",X"70",X"30",X"00",X"31",X"60",X"00", + X"0C",X"30",X"30",X"00",X"04",X"58",X"00",X"59",X"00",X"77",X"03",X"FF",X"66",X"BE",X"41",X"00", + X"6C",X"09",X"68",X"0F",X"00",X"77",X"22",X"68",X"0F",X"00",X"77",X"22",X"68",X"0F",X"00",X"77", + X"22",X"6C",X"00",X"67",X"01",X"FF",X"66",X"B3",X"45",X"00",X"6E",X"14",X"6A",X"0F",X"04",X"43", + X"30",X"6A",X"0F",X"04",X"53",X"E0",X"67",X"04",X"6E",X"00",X"FF",X"47",X"BF",X"57",X"BF",X"40", + X"00",X"41",X"00",X"42",X"00",X"43",X"00",X"44",X"00",X"45",X"00",X"46",X"00",X"48",X"00",X"49", + X"00",X"4A",X"00",X"4B",X"00",X"4C",X"00",X"4D",X"00",X"51",X"00",X"50",X"00",X"52",X"00",X"53", + X"00",X"54",X"00",X"55",X"00",X"56",X"00",X"58",X"00",X"59",X"00",X"5A",X"00",X"5B",X"00",X"5C", + X"00",X"5D",X"00",X"FF",X"73",X"F4",X"2A",X"07",X"E0",X"ED",X"5B",X"05",X"E0",X"09",X"2B",X"EB", + X"09",X"2B",X"EB",X"ED",X"B8",X"C9",X"21",X"46",X"FF",X"CD",X"74",X"F1",X"C9",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"F7",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"08",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FD",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"99",X"E5",X"01",X"00",X"75",X"E5",X"75",X"E5",X"05",X"E8", + X"0C",X"E8",X"D2",X"E7",X"80",X"EA",X"00",X"01",X"00",X"20",X"00",X"00",X"F0",X"E0",X"A0",X"E0", + X"00",X"45",X"77",X"72",X"69",X"74",X"65",X"20",X"20",X"20",X"20",X"20",X"72",X"65",X"61",X"64", + X"20",X"20",X"20",X"20",X"20",X"65",X"72",X"61",X"73",X"65",X"63",X"68",X"65",X"63",X"6B",X"20", + X"63",X"6F",X"6D",X"70",X"61",X"72",X"65",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"65",X"6E",X"64",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"2D",X"2D", + X"2D",X"45",X"54",X"43",X"2D",X"2D",X"2D",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"0D",X"0A",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"40",X"01",X"00", + X"00",X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FE",X"00",X"FE",X"00",X"FE",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"02",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"F7",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"01",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"01",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"3E",X"01",X"32",X"FD",X"FE",X"21",X"91",X"EB",X"0E",X"05",X"CD",X"FE",X"EA",X"CD",X"5F",X"F7", + X"CD",X"CE",X"EE",X"C3",X"4B",X"F3",X"D9",X"01",X"4B",X"00",X"11",X"89",X"FF",X"21",X"88",X"FF", + X"3E",X"20",X"77",X"ED",X"B0",X"3E",X"0D",X"77",X"23",X"3E",X"00",X"77",X"D9",X"C9",X"13",X"79", + X"1F",X"1F",X"1F",X"1F",X"CD",X"38",X"F7",X"79",X"E6",X"0F",X"FE",X"0A",X"38",X"02",X"C6",X"07", + X"C6",X"30",X"12",X"13",X"C9",X"13",X"CD",X"4E",X"F7",X"3E",X"2D",X"12",X"13",X"C9",X"4C",X"CD", + X"2F",X"F7",X"4D",X"C3",X"2F",X"F7",X"7E",X"E6",X"7F",X"FE",X"20",X"D0",X"3E",X"20",X"C9",X"CD", + X"84",X"F2",X"21",X"20",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"D3",X"EA",X"20",X"F8", + X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"2D",X"EC",X"CD",X"50", + X"F2",X"CD",X"45",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"D8",X"21",X"2F",X"EC",X"0E",X"04",X"CD", + X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"3A",X"EC",X"CD",X"50",X"F2",X"CD",X"45",X"F1",X"CD",X"DD", + X"EA",X"20",X"F8",X"D8",X"21",X"3C",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"C9", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"06",X"20",X"00",X"0D",X"46",X"46",X"46",X"0D",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"EF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"EF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"BF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FE",X"00",X"FF",X"00",X"EE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FD",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF", + X"EF",X"00",X"FF",X"00",X"EF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"7F",X"00", + X"0F",X"8E",X"00",X"FF",X"BD",X"FA",X"93",X"86",X"BF",X"C6",X"07",X"BD",X"FA",X"D5",X"86",X"13", + X"C6",X"0F",X"BD",X"FA",X"D5",X"86",X"3F",X"C6",X"17",X"BD",X"FA",X"D5",X"BD",X"FA",X"A8",X"7F", + X"08",X"00",X"0F",X"BD",X"FA",X"43",X"96",X"BC",X"2B",X"07",X"BD",X"FC",X"C7",X"86",X"FF",X"97", + X"BC",X"0E",X"CE",X"00",X"00",X"DF",X"D1",X"96",X"80",X"26",X"0B",X"DE",X"84",X"D6",X"8C",X"BD", + X"FB",X"DB",X"DF",X"84",X"97",X"80",X"7C",X"00",X"D2",X"96",X"81",X"26",X"0B",X"DE",X"86",X"D6", + X"8D",X"BD",X"FB",X"DB",X"DF",X"86",X"97",X"81",X"7C",X"00",X"D2",X"96",X"82",X"26",X"0B",X"DE", + X"88",X"D6",X"8E",X"BD",X"FB",X"DB",X"DF",X"88",X"97",X"82",X"7C",X"00",X"D2",X"96",X"83",X"26", + X"0B",X"DE",X"8A",X"D6",X"8F",X"BD",X"FB",X"DB",X"DF",X"8A",X"97",X"83",X"96",X"A8",X"27",X"08", + X"7F",X"00",X"A8",X"C6",X"08",X"BD",X"FB",X"37",X"96",X"A9",X"27",X"08",X"7F",X"00",X"A9",X"C6", + X"09",X"BD",X"FB",X"37",X"96",X"AA",X"27",X"08",X"7F",X"00",X"AA",X"C6",X"0A",X"BD",X"FB",X"37", + X"96",X"AB",X"27",X"08",X"7F",X"00",X"AB",X"C6",X"18",X"BD",X"FB",X"50",X"96",X"AC",X"27",X"08", + X"7F",X"00",X"AC",X"C6",X"19",X"BD",X"FB",X"50",X"96",X"AD",X"27",X"08",X"7F",X"00",X"AD",X"C6", + X"1A",X"BD",X"FB",X"50",X"96",X"BE",X"16",X"9A",X"D8",X"0F",X"97",X"D8",X"C6",X"0F",X"BD",X"FA", + X"DB",X"7E",X"F9",X"22",X"96",X"C1",X"B7",X"08",X"01",X"96",X"C2",X"B7",X"08",X"02",X"7C",X"00", + X"BD",X"96",X"BF",X"4C",X"97",X"BF",X"44",X"24",X"32",X"DE",X"C3",X"09",X"27",X"1E",X"DF",X"C3", + X"DE",X"C7",X"A6",X"00",X"44",X"44",X"44",X"44",X"97",X"C1",X"DE",X"C5",X"09",X"27",X"15",X"DF", + X"C5",X"DE",X"C9",X"A6",X"00",X"44",X"44",X"44",X"44",X"97",X"C2",X"3B",X"86",X"01",X"9A",X"BE", + X"97",X"BE",X"20",X"E6",X"86",X"02",X"9A",X"BE",X"97",X"BE",X"3B",X"96",X"C7",X"81",X"20",X"25", + X"09",X"DE",X"C7",X"A6",X"00",X"97",X"C1",X"08",X"DF",X"C7",X"96",X"C9",X"81",X"20",X"25",X"09", + X"DE",X"C9",X"A6",X"00",X"97",X"C2",X"08",X"DF",X"C9",X"96",X"BF",X"84",X"0E",X"26",X"CC",X"7C", + X"00",X"C0",X"3B",X"96",X"C0",X"27",X"3E",X"7A",X"00",X"C0",X"96",X"80",X"27",X"06",X"4C",X"27", + X"03",X"7A",X"00",X"80",X"96",X"81",X"27",X"06",X"4C",X"27",X"03",X"7A",X"00",X"81",X"96",X"82", + X"27",X"06",X"4C",X"27",X"03",X"7A",X"00",X"82",X"96",X"83",X"27",X"06",X"4C",X"27",X"03",X"7A", + X"00",X"83",X"CE",X"00",X"06",X"A6",X"AD",X"27",X"09",X"4A",X"26",X"04",X"6C",X"A7",X"A6",X"B3", + X"A7",X"AD",X"09",X"26",X"F0",X"39",X"B7",X"08",X"00",X"C6",X"0E",X"BD",X"FB",X"1D",X"84",X"3F", + X"97",X"BC",X"3B",X"CE",X"FF",X"FF",X"DF",X"00",X"C6",X"4F",X"08",X"86",X"00",X"A7",X"80",X"08", + X"5A",X"26",X"FA",X"86",X"13",X"97",X"D8",X"39",X"BD",X"FA",X"C0",X"86",X"BF",X"97",X"BB",X"C6", + X"FF",X"D7",X"82",X"D7",X"83",X"D7",X"B1",X"D7",X"B2",X"D7",X"B3",X"C6",X"17",X"7E",X"FA",X"DB", + X"86",X"BF",X"97",X"BA",X"C6",X"FF",X"D7",X"80",X"D7",X"81",X"D7",X"AE",X"D7",X"AF",X"D7",X"B0", + X"C6",X"07",X"7E",X"FA",X"DB",X"7C",X"00",X"BD",X"20",X"04",X"0F",X"7F",X"00",X"BD",X"37",X"36", + X"C1",X"10",X"2A",X"19",X"86",X"0D",X"97",X"03",X"D7",X"02",X"C6",X"08",X"D7",X"03",X"5C",X"32", + X"97",X"02",X"96",X"BD",X"27",X"FC",X"D7",X"03",X"5A",X"D7",X"03",X"33",X"39",X"86",X"15",X"97", + X"03",X"C4",X"0F",X"D7",X"02",X"C6",X"10",X"20",X"E3",X"37",X"20",X"E4",X"37",X"86",X"15",X"97", + X"03",X"C4",X"0F",X"D7",X"02",X"C6",X"14",X"20",X"0D",X"C1",X"10",X"2A",X"EF",X"37",X"86",X"0D", + X"97",X"03",X"D7",X"02",X"C6",X"0C",X"4F",X"97",X"03",X"97",X"00",X"D7",X"03",X"96",X"02",X"5F", + X"D7",X"03",X"5A",X"D7",X"00",X"33",X"39",X"0F",X"BD",X"FB",X"1D",X"C6",X"09",X"7F",X"00",X"BD", + X"84",X"1F",X"81",X"10",X"2A",X"08",X"4A",X"81",X"07",X"2B",X"03",X"BD",X"FB",X"09",X"0E",X"39", + X"0F",X"BD",X"FB",X"0C",X"C6",X"11",X"20",X"E5",X"17",X"84",X"0F",X"81",X"0D",X"2A",X"08",X"A6", + X"94",X"AB",X"98",X"A7",X"94",X"20",X"69",X"5A",X"58",X"C4",X"17",X"DE",X"CD",X"A6",X"05",X"36", + X"DE",X"D1",X"AB",X"94",X"A7",X"94",X"32",X"2B",X"0C",X"24",X"02",X"6C",X"98",X"BD",X"FA",X"DA", + X"5C",X"A6",X"94",X"20",X"4B",X"25",X"F6",X"6A",X"98",X"20",X"F2",X"6F",X"8C",X"DE",X"CD",X"C1", + X"A0",X"2B",X"02",X"08",X"08",X"08",X"08",X"08",X"C1",X"C0",X"2B",X"08",X"17",X"84",X"0F",X"81", + X"08",X"2B",X"01",X"08",X"86",X"00",X"39",X"DF",X"CD",X"DE",X"D1",X"6A",X"90",X"27",X"DC",X"C1", + X"A0",X"2A",X"10",X"C4",X"1F",X"A6",X"94",X"36",X"DE",X"CD",X"A6",X"03",X"BD",X"FA",X"DA",X"0E", + X"32",X"08",X"39",X"C1",X"C0",X"2A",X"91",X"A6",X"90",X"44",X"A6",X"94",X"25",X"02",X"A6",X"98", + X"C4",X"1F",X"BD",X"FA",X"DA",X"0E",X"DE",X"CD",X"A6",X"04",X"39",X"26",X"CA",X"DF",X"CD",X"E6", + X"00",X"2A",X"03",X"7E",X"FC",X"79",X"C4",X"3F",X"C1",X"20",X"2A",X"11",X"A6",X"01",X"BD",X"FA", + X"DA",X"0E",X"E6",X"00",X"08",X"08",X"58",X"2B",X"E4",X"A6",X"00",X"08",X"39",X"C4",X"1F",X"17", + X"84",X"0F",X"81",X"06",X"2A",X"16",X"48",X"C4",X"10",X"1B",X"16",X"A6",X"01",X"97",X"CE",X"A6", + X"02",X"97",X"CD",X"BD",X"FC",X"BA",X"0E",X"E6",X"00",X"08",X"20",X"D8",X"80",X"08",X"2B",X"29", + X"DD",X"CF",X"84",X"03",X"C1",X"10",X"2B",X"02",X"8B",X"03",X"16",X"A6",X"01",X"CE",X"00",X"00", + X"3A",X"D6",X"CF",X"C1",X"04",X"2A",X"0B",X"A6",X"B4",X"A7",X"AE",X"DE",X"CD",X"D6",X"D0",X"7E", + X"FB",X"EC",X"A7",X"B4",X"DE",X"CD",X"7E",X"FB",X"F2",X"4C",X"27",X"17",X"5C",X"C1",X"10",X"2A", + X"09",X"96",X"BA",X"A4",X"01",X"97",X"BA",X"7E",X"FB",X"EE",X"96",X"BB",X"A4",X"01",X"97",X"BB", + X"7E",X"FB",X"EE",X"C1",X"10",X"2A",X"09",X"96",X"BA",X"AA",X"01",X"97",X"BA",X"7E",X"FB",X"EE", + X"96",X"BB",X"AA",X"01",X"97",X"BB",X"7E",X"FB",X"EE",X"C1",X"F0",X"2A",X"17",X"A6",X"01",X"EE", + X"02",X"3C",X"DE",X"D1",X"E7",X"8C",X"4C",X"A7",X"90",X"32",X"A7",X"94",X"32",X"A7",X"98",X"DE", + X"CD",X"86",X"00",X"39",X"5C",X"27",X"12",X"DE",X"D1",X"5C",X"26",X"10",X"DC",X"CD",X"A7",X"9C", + X"E7",X"A0",X"DE",X"CD",X"EE",X"01",X"86",X"00",X"39",X"86",X"FF",X"39",X"A6",X"9C",X"E6",X"A0", + X"DD",X"CD",X"DE",X"CD",X"08",X"08",X"08",X"86",X"00",X"39",X"96",X"CE",X"BD",X"FA",X"DA",X"5C", + X"96",X"CD",X"BD",X"FA",X"DB",X"5C",X"39",X"26",X"03",X"7E",X"FD",X"BD",X"81",X"10",X"2B",X"03", + X"7E",X"FD",X"41",X"81",X"03",X"2A",X"35",X"97",X"CB",X"96",X"D8",X"8A",X"01",X"16",X"C4",X"FE", + X"D7",X"D8",X"C6",X"0F",X"BD",X"FA",X"DB",X"86",X"05",X"7F",X"00",X"BD",X"D6",X"BD",X"27",X"FC", + X"4A",X"26",X"F6",X"D6",X"CB",X"58",X"58",X"CE",X"E9",X"00",X"3A",X"3C",X"EE",X"00",X"DF",X"C7", + X"38",X"EE",X"02",X"DF",X"C3",X"96",X"BE",X"84",X"02",X"97",X"BE",X"39",X"97",X"CC",X"96",X"D8", + X"8A",X"02",X"16",X"C4",X"FD",X"D7",X"D8",X"C6",X"0F",X"BD",X"FA",X"DB",X"86",X"05",X"7F",X"00", + X"BD",X"D6",X"BD",X"27",X"FC",X"4A",X"26",X"F6",X"D6",X"CC",X"58",X"58",X"CE",X"E9",X"00",X"3A", + X"3C",X"EE",X"00",X"DF",X"C9",X"38",X"EE",X"02",X"DF",X"C5",X"96",X"BE",X"84",X"01",X"97",X"BE", + X"39",X"16",X"58",X"CE",X"E9",X"34",X"3A",X"EE",X"00",X"81",X"20",X"2B",X"1F",X"81",X"24",X"27", + X"0A",X"3C",X"36",X"BD",X"FA",X"93",X"BD",X"FA",X"A8",X"32",X"38",X"97",X"A4",X"DF",X"84",X"7F", + X"00",X"80",X"7F",X"00",X"8C",X"C6",X"B8",X"DA",X"BA",X"D7",X"BA",X"39",X"81",X"12",X"2A",X"11", + X"DF",X"88",X"97",X"A6",X"7F",X"00",X"82",X"7F",X"00",X"8E",X"86",X"78",X"9A",X"BB",X"97",X"BB", + X"39",X"81",X"13",X"27",X"EB",X"81",X"16",X"27",X"E7",X"81",X"17",X"2A",X"17",X"DF",X"8A",X"97", + X"A7",X"7F",X"00",X"83",X"7F",X"00",X"8F",X"86",X"B8",X"9A",X"BB",X"97",X"BB",X"86",X"B8",X"9A", + X"BA",X"97",X"BA",X"39",X"81",X"17",X"27",X"B3",X"81",X"19",X"27",X"E1",X"DF",X"86",X"97",X"A5", + X"7F",X"00",X"81",X"7F",X"00",X"8D",X"86",X"78",X"9A",X"BA",X"97",X"BA",X"39",X"CE",X"F4",X"4B", + X"4F",X"3C",X"36",X"BD",X"FA",X"93",X"BD",X"FA",X"A8",X"32",X"38",X"97",X"A4",X"DF",X"84",X"7F", + X"00",X"80",X"7F",X"00",X"8C",X"C6",X"B8",X"DA",X"BA",X"D7",X"BA",X"C6",X"B8",X"DA",X"BB",X"D7", + X"BB",X"39",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"1D",X"4E",X"00",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FE", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"40",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"40",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"BF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"02",X"00", + X"09",X"0A",X"0C",X"0D",X"0F",X"10",X"12",X"13",X"15",X"16",X"18",X"19",X"1B",X"1C",X"1E",X"1F", + X"23",X"24",X"26",X"27",X"29",X"2A",X"2C",X"2D",X"2F",X"30",X"32",X"33",X"35",X"36",X"38",X"39", + X"22",X"5A",X"38",X"30",X"22",X"3B",X"3B",X"20",X"20",X"64",X"65",X"74",X"61",X"20",X"69",X"73", + X"20",X"20",X"2D",X"2D",X"2D",X"2D",X"48",X"20",X"74",X"6F",X"20",X"2D",X"2D",X"2D",X"2D",X"48", + X"45",X"4E",X"44",X"48",X"45",X"58",X"3E",X"3E",X"20",X"50",X"61",X"72",X"61",X"6D",X"74",X"65", + X"72",X"20",X"65",X"72",X"72",X"6F",X"72",X"20",X"3C",X"3C",X"0D",X"00",X"44",X"55",X"4D",X"50", + X"20",X"4C",X"49",X"53",X"54",X"20",X"50",X"41",X"47",X"45",X"20",X"3D",X"20",X"FF",X"00",X"0D", + X"0D",X"00",X"FF",X"00",X"FF",X"00",X"FE",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF",X"00",X"FF", + X"FF",X"00",X"D1",X"AE",X"02",X"00",X"4D",X"00",X"FF",X"00",X"FF",X"00",X"00",X"00",X"FF",X"00", + X"FE",X"FF",X"00",X"00",X"00",X"00",X"35",X"00",X"FE",X"FF",X"08",X"2E",X"E4",X"41",X"0C",X"00", + X"F9",X"00",X"F9",X"00",X"F9",X"00",X"F9",X"00",X"FA",X"86",X"F9",X"00",X"F9",X"D4",X"F9",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr1.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr1.bin new file mode 100644 index 00000000..bbf5c1fb Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr1.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr2.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr2.bin new file mode 100644 index 00000000..1aabb350 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr2.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr3.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr3.bin new file mode 100644 index 00000000..d923e88e Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/kungfum/spr3.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun.zip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun.zip new file mode 100644 index 00000000..3c8e675c Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun.zip differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3f b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3f new file mode 100644 index 00000000..8f5b8c12 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3f differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3h b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3h new file mode 100644 index 00000000..b6f02296 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-3h differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4a b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4a new file mode 100644 index 00000000..a6281115 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4a differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4b b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4b new file mode 100644 index 00000000..8ae61d43 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4b differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4d b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4d new file mode 100644 index 00000000..565da24b Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4d differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4e b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4e new file mode 100644 index 00000000..735ef31f Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-a-4e differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1l b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1l new file mode 100644 index 00000000..30492333 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1l differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1m b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1m new file mode 100644 index 00000000..413cad4d Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1m differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1n b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1n new file mode 100644 index 00000000..23910f5a Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-1n differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-3n b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-3n new file mode 100644 index 00000000..7fecdcdb Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-3n differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4c b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4c new file mode 100644 index 00000000..cc99085a Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4c differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4k b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4k new file mode 100644 index 00000000..dc4d1e4e Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-4k differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-5p b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-5p new file mode 100644 index 00000000..4b17cf43 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-5p differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-6f b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-6f new file mode 100644 index 00000000..bc766564 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-b-6f @@ -0,0 +1 @@ +   \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2d b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2d new file mode 100644 index 00000000..df6b8a72 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2d differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2f b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2f new file mode 100644 index 00000000..e1a71a23 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2f differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2j b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2j new file mode 100644 index 00000000..1db58d19 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-2j differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3l b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3l new file mode 100644 index 00000000..00fe489f Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3l differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3m b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3m new file mode 100644 index 00000000..5ecfd4ae Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3m differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3n b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3n new file mode 100644 index 00000000..3abc5d5e Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/lr-e-3n differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_proms.bat b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_proms.bat new file mode 100644 index 00000000..54526f8c --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_proms.bat @@ -0,0 +1,11 @@ +copy /b lr-a-4e + lr-a-4d + lr-a-4b + lr-a-4a prog.bin +make_vhdl_prom.exe prog.bin prog.vhd + +make_vhdl_prom.exe lr-b-5p rom_sprite_high_new.vhd + + +copy /b lr-a-3f + lr-a-3h snd.bin +make_vhdl_prom.exe snd.bin snd_prg.vhd + +copy /b prog.bin + snd.bin LDRUNNER.ROM +pause \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_vhdl_prom.exe b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_vhdl_prom.exe new file mode 100644 index 00000000..1e5618bf Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/make_vhdl_prom.exe differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.bin new file mode 100644 index 00000000..8382ba15 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.vhd new file mode 100644 index 00000000..fb5ff9f0 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/prog.vhd @@ -0,0 +1,2070 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity prog is +port ( + clk : in std_logic; + addr : in std_logic_vector(14 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of prog is + type rom is array(0 to 32767) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"F3",X"31",X"00",X"E8",X"01",X"00",X"00",X"FD",X"21",X"00",X"00",X"10",X"FA",X"0D",X"20",X"F7", + X"ED",X"56",X"21",X"B3",X"E6",X"36",X"01",X"DB",X"04",X"CB",X"7F",X"CA",X"41",X"6F",X"35",X"CD", + X"7A",X"00",X"00",X"00",X"00",X"FB",X"C3",X"CF",X"25",X"CD",X"00",X"1D",X"CD",X"4C",X"04",X"CD", + X"2C",X"07",X"18",X"F5",X"C7",X"C7",X"C7",X"C7",X"08",X"D9",X"DD",X"E5",X"FD",X"E5",X"CD",X"28", + X"01",X"CD",X"A2",X"00",X"CD",X"68",X"31",X"3A",X"6A",X"E5",X"B7",X"C4",X"4B",X"2A",X"3A",X"9D", + X"E5",X"FE",X"02",X"CC",X"41",X"01",X"CD",X"90",X"01",X"FD",X"E1",X"DD",X"E1",X"D9",X"08",X"FB", + X"C9",X"C7",X"C7",X"C7",X"C7",X"C7",X"FB",X"ED",X"45",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"93",X"24",X"6C",X"DB",X"7A",X"FB",X"85",X"91",X"A3",X"80",X"AF",X"32",X"9D",X"E5",X"D3",X"01", + X"21",X"00",X"D0",X"36",X"00",X"54",X"5D",X"13",X"01",X"F0",X"17",X"ED",X"B0",X"CD",X"28",X"01", + X"CD",X"F4",X"08",X"CD",X"D6",X"08",X"CD",X"A6",X"6D",X"3E",X"00",X"D3",X"00",X"F6",X"80",X"D3", + X"00",X"C9",X"21",X"B5",X"E5",X"35",X"23",X"35",X"21",X"B5",X"E6",X"35",X"3A",X"B9",X"E5",X"B7", + X"20",X"04",X"DB",X"01",X"18",X"02",X"DB",X"02",X"2F",X"32",X"4D",X"E4",X"21",X"CF",X"E5",X"07", + X"CB",X"16",X"07",X"07",X"CB",X"16",X"3A",X"4D",X"E4",X"21",X"D0",X"E5",X"0F",X"CB",X"16",X"0F", + X"CB",X"16",X"DB",X"00",X"2F",X"21",X"AA",X"E5",X"1F",X"CB",X"16",X"1F",X"CB",X"16",X"DB",X"04", + X"CB",X"67",X"20",X"29",X"21",X"B4",X"E5",X"7E",X"B7",X"20",X"11",X"3A",X"AA",X"E5",X"E6",X"05", + X"FE",X"05",X"20",X"06",X"36",X"01",X"F1",X"C3",X"59",X"00",X"18",X"11",X"3A",X"AA",X"E5",X"E6", + X"0A",X"FE",X"0A",X"20",X"04",X"36",X"00",X"18",X"04",X"F1",X"C3",X"59",X"00",X"CD",X"23",X"09", + X"3A",X"AF",X"E5",X"B7",X"20",X"05",X"3E",X"02",X"32",X"B2",X"E5",X"3A",X"A7",X"E5",X"B7",X"C8", + X"3A",X"B2",X"E5",X"B7",X"C8",X"C3",X"A0",X"68",X"3A",X"B3",X"E6",X"B7",X"28",X"07",X"CD",X"39", + X"7C",X"F1",X"C3",X"59",X"00",X"01",X"00",X"01",X"11",X"00",X"C0",X"21",X"00",X"E3",X"ED",X"B0", + X"C9",X"CD",X"E6",X"03",X"CD",X"00",X"0B",X"CD",X"00",X"13",X"CD",X"00",X"24",X"C9",X"FD",X"E5", + X"3A",X"E9",X"E4",X"32",X"88",X"E5",X"FD",X"21",X"58",X"E4",X"11",X"18",X"00",X"DD",X"7E",X"06", + X"FD",X"BE",X"06",X"20",X"20",X"DD",X"7E",X"07",X"FD",X"96",X"07",X"30",X"02",X"ED",X"44",X"FE", + X"04",X"30",X"12",X"FD",X"7E",X"0D",X"B7",X"28",X"0C",X"FD",X"7E",X"08",X"FE",X"09",X"30",X"02", + X"0E",X"FF",X"FD",X"E1",X"C9",X"FD",X"19",X"21",X"88",X"E5",X"35",X"20",X"D0",X"FD",X"E1",X"C9", + X"3A",X"9D",X"E5",X"B7",X"C8",X"3A",X"6A",X"E5",X"B7",X"CC",X"03",X"32",X"DD",X"21",X"40",X"E4", + X"FD",X"21",X"B0",X"E3",X"3A",X"6A",X"E5",X"FE",X"02",X"20",X"04",X"FD",X"21",X"F0",X"E3",X"AF", + X"32",X"E8",X"E4",X"DD",X"4E",X"0A",X"3A",X"E8",X"E4",X"B7",X"28",X"17",X"DD",X"7E",X"0D",X"B7", + X"28",X"0E",X"DD",X"34",X"08",X"DD",X"7E",X"08",X"FE",X"18",X"38",X"04",X"DD",X"36",X"08",X"00", + X"CD",X"4E",X"01",X"79",X"FE",X"FF",X"20",X"0B",X"FD",X"36",X"04",X"00",X"FD",X"36",X"0C",X"00", + X"C3",X"11",X"03",X"06",X"00",X"2A",X"F6",X"E4",X"3A",X"E8",X"E4",X"B7",X"20",X"05",X"21",X"00", + X"00",X"18",X"19",X"57",X"3A",X"02",X"E5",X"B7",X"28",X"12",X"3A",X"E9",X"E4",X"BA",X"20",X"0C", + X"11",X"30",X"00",X"19",X"3A",X"CD",X"E5",X"FE",X"08",X"20",X"01",X"EB",X"09",X"22",X"F9",X"E4", + X"01",X"60",X"45",X"09",X"46",X"DD",X"6E",X"00",X"DD",X"7E",X"01",X"C6",X"04",X"67",X"29",X"29", + X"29",X"0E",X"00",X"CB",X"28",X"CB",X"19",X"DD",X"7E",X"0B",X"B7",X"20",X"04",X"ED",X"42",X"18", + X"01",X"09",X"29",X"FD",X"74",X"06",X"3E",X"00",X"17",X"FD",X"77",X"07",X"3A",X"F8",X"E4",X"4F", + X"DD",X"CB",X"17",X"66",X"28",X"01",X"0C",X"3A",X"E8",X"E4",X"B7",X"20",X"04",X"0E",X"03",X"18", + X"11",X"47",X"3A",X"02",X"E5",X"B7",X"28",X"0A",X"3A",X"E9",X"E4",X"B8",X"20",X"04",X"3A",X"6E", + X"E5",X"4F",X"CB",X"E1",X"FD",X"71",X"00",X"11",X"B0",X"43",X"2A",X"F9",X"E4",X"19",X"56",X"DD", + X"7E",X"0B",X"B7",X"20",X"04",X"3E",X"40",X"AA",X"57",X"7A",X"E6",X"C0",X"FD",X"77",X"05",X"2A", + X"F9",X"E4",X"7A",X"11",X"00",X"42",X"19",X"57",X"5E",X"D5",X"FD",X"73",X"04",X"11",X"C0",X"48", + X"2A",X"F9",X"E4",X"19",X"AF",X"57",X"5E",X"CB",X"7B",X"28",X"01",X"15",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"29",X"29",X"29",X"17",X"6C",X"67",X"19",X"EB",X"21",X"E9",X"00",X"B7",X"ED",X"52", + X"ED",X"5B",X"E3",X"E5",X"19",X"FD",X"75",X"02",X"FD",X"74",X"03",X"D1",X"CB",X"42",X"28",X"4D", + X"1C",X"FD",X"73",X"0C",X"FD",X"71",X"08",X"E5",X"01",X"70",X"4A",X"2A",X"F9",X"E4",X"09",X"7E", + X"06",X"00",X"ED",X"44",X"4F",X"CB",X"79",X"28",X"01",X"05",X"E1",X"09",X"FD",X"75",X"0A",X"FD", + X"74",X"0B",X"7A",X"E6",X"C0",X"FD",X"77",X"0D",X"01",X"10",X"47",X"2A",X"F9",X"E4",X"09",X"7E", + X"CB",X"72",X"28",X"02",X"ED",X"44",X"4F",X"06",X"00",X"CB",X"79",X"28",X"01",X"05",X"FD",X"66", + X"07",X"FD",X"6E",X"06",X"09",X"FD",X"75",X"0E",X"FD",X"74",X"0F",X"18",X"04",X"FD",X"36",X"0C", + X"00",X"11",X"F0",X"FF",X"FD",X"19",X"01",X"18",X"00",X"DD",X"09",X"21",X"E8",X"E4",X"34",X"3A", + X"E9",X"E4",X"BE",X"D2",X"B3",X"01",X"3A",X"6A",X"E5",X"FE",X"02",X"C8",X"FD",X"21",X"00",X"E3", + X"3A",X"17",X"E5",X"87",X"87",X"87",X"21",X"12",X"E5",X"86",X"ED",X"44",X"3C",X"4F",X"06",X"00", + X"2A",X"E3",X"E5",X"09",X"FD",X"75",X"02",X"FD",X"74",X"03",X"FD",X"36",X"00",X"12",X"3A",X"16", + X"E5",X"C6",X"04",X"87",X"87",X"87",X"6F",X"26",X"00",X"29",X"FD",X"75",X"06",X"FD",X"74",X"07", + X"3A",X"10",X"E5",X"FD",X"77",X"04",X"FD",X"21",X"08",X"E3",X"FD",X"36",X"04",X"00",X"FD",X"36", + X"0C",X"00",X"16",X"14",X"1E",X"02",X"DD",X"21",X"18",X"E5",X"DD",X"7E",X"01",X"FE",X"00",X"28", + X"3A",X"DD",X"7E",X"03",X"87",X"87",X"87",X"47",X"3E",X"F1",X"90",X"4F",X"06",X"00",X"2A",X"E3", + X"E5",X"09",X"FD",X"75",X"02",X"FD",X"74",X"03",X"DD",X"7E",X"02",X"C6",X"04",X"87",X"87",X"87", + X"6F",X"26",X"00",X"29",X"FD",X"75",X"06",X"FD",X"74",X"07",X"FD",X"36",X"00",X"12",X"DD",X"7E", + X"01",X"FD",X"77",X"04",X"01",X"08",X"00",X"FD",X"09",X"1D",X"C8",X"01",X"04",X"00",X"DD",X"09", + X"15",X"20",X"B7",X"21",X"9E",X"E5",X"06",X"00",X"7E",X"B7",X"28",X"12",X"35",X"20",X"0F",X"E5", + X"78",X"87",X"87",X"87",X"5F",X"16",X"00",X"21",X"C4",X"E3",X"19",X"36",X"00",X"E1",X"23",X"04", + X"78",X"FE",X"08",X"38",X"E3",X"C9",X"21",X"8A",X"E5",X"7E",X"23",X"B6",X"23",X"47",X"7E",X"E6", + X"F0",X"B0",X"20",X"0B",X"AF",X"77",X"3E",X"01",X"32",X"CE",X"E5",X"CD",X"03",X"32",X"C9",X"0E", + X"00",X"21",X"B1",X"E6",X"3A",X"8B",X"E5",X"BE",X"20",X"01",X"0C",X"ED",X"5B",X"E1",X"E5",X"21", + X"8D",X"E5",X"7E",X"93",X"27",X"77",X"2B",X"7E",X"9A",X"27",X"77",X"06",X"02",X"2B",X"7E",X"DE", + X"00",X"27",X"77",X"10",X"F8",X"CB",X"41",X"C8",X"3A",X"8B",X"E5",X"21",X"B1",X"E6",X"BE",X"C8", + X"7E",X"FE",X"15",X"20",X"04",X"3E",X"1C",X"18",X"0A",X"FE",X"10",X"20",X"04",X"3E",X"1D",X"18", + X"02",X"3E",X"1E",X"CD",X"42",X"31",X"7E",X"D6",X"05",X"27",X"77",X"C9",X"3A",X"FC",X"E4",X"B7", + X"C0",X"21",X"B6",X"E5",X"3A",X"04",X"E5",X"B7",X"20",X"02",X"36",X"FF",X"7E",X"FE",X"80",X"38", + X"02",X"36",X"18",X"7E",X"21",X"04",X"E5",X"FE",X"09",X"30",X"0D",X"7E",X"FE",X"01",X"28",X"06", + X"3E",X"01",X"77",X"CD",X"89",X"63",X"18",X"0B",X"7E",X"FE",X"02",X"28",X"06",X"3E",X"02",X"77", + X"CD",X"89",X"63",X"3A",X"41",X"E4",X"21",X"7B",X"E5",X"BE",X"20",X"0C",X"3A",X"43",X"E4",X"23", + X"BE",X"20",X"05",X"3E",X"01",X"32",X"AF",X"E6",X"3A",X"AF",X"E6",X"B7",X"C8",X"3A",X"46",X"E4", + X"FE",X"08",X"C0",X"AF",X"CD",X"89",X"63",X"F1",X"3E",X"00",X"32",X"9D",X"E5",X"3E",X"00",X"CD", + X"42",X"31",X"3E",X"23",X"CD",X"42",X"31",X"3E",X"54",X"CD",X"3E",X"30",X"CD",X"8D",X"32",X"3A", + X"00",X"E5",X"B7",X"20",X"47",X"21",X"21",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"22",X"D7", + X"01",X"3E",X"00",X"ED",X"B0",X"21",X"A1",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"A2",X"D7", + X"01",X"3E",X"00",X"ED",X"B0",X"21",X"21",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"22",X"D8", + X"01",X"3E",X"00",X"ED",X"B0",X"0E",X"47",X"21",X"A2",X"D7",X"11",X"F8",X"06",X"CD",X"2D",X"30", + X"3E",X"1F",X"CD",X"42",X"31",X"0E",X"02",X"CD",X"CF",X"2F",X"18",X"4C",X"3A",X"FF",X"E4",X"B7", + X"C2",X"64",X"05",X"21",X"25",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"26",X"D7",X"01",X"38", + X"00",X"ED",X"B0",X"21",X"A5",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"A6",X"D7",X"01",X"38", + X"00",X"ED",X"B0",X"21",X"25",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"26",X"D8",X"01",X"38", + X"00",X"ED",X"B0",X"0E",X"47",X"21",X"A6",X"D7",X"11",X"DC",X"06",X"CD",X"2D",X"30",X"3E",X"1F", + X"CD",X"42",X"31",X"0E",X"01",X"CD",X"CF",X"2F",X"CD",X"03",X"32",X"3A",X"00",X"E5",X"32",X"89", + X"E5",X"CD",X"89",X"06",X"21",X"6C",X"E5",X"3A",X"8B",X"E5",X"BE",X"38",X"57",X"CD",X"B9",X"32", + X"21",X"A3",X"D1",X"36",X"05",X"2B",X"36",X"00",X"11",X"A4",X"D1",X"01",X"34",X"00",X"ED",X"B0", + X"21",X"23",X"D2",X"36",X"05",X"2B",X"36",X"00",X"11",X"24",X"D2",X"01",X"34",X"00",X"ED",X"B0", + X"21",X"A3",X"D2",X"36",X"05",X"2B",X"36",X"00",X"11",X"A4",X"D2",X"01",X"34",X"00",X"ED",X"B0", + X"0E",X"47",X"21",X"24",X"D2",X"11",X"6F",X"06",X"CD",X"2D",X"30",X"2A",X"8B",X"E5",X"22",X"B6", + X"E6",X"3E",X"FF",X"32",X"B5",X"E6",X"3E",X"01",X"32",X"05",X"E5",X"CD",X"E4",X"05",X"2A",X"B6", + X"E6",X"22",X"8B",X"E5",X"CD",X"E4",X"05",X"21",X"8E",X"E5",X"4E",X"34",X"7E",X"FE",X"61",X"20", + X"02",X"36",X"49",X"79",X"CD",X"EC",X"31",X"B7",X"C2",X"00",X"5D",X"79",X"E6",X"07",X"CA",X"34", + X"28",X"C3",X"ED",X"26",X"3A",X"8F",X"E5",X"32",X"89",X"E5",X"3E",X"14",X"32",X"88",X"E5",X"2A", + X"8B",X"E5",X"7C",X"E6",X"F0",X"B5",X"28",X"32",X"21",X"8C",X"E5",X"7E",X"D6",X"10",X"27",X"77", + X"2B",X"7E",X"DE",X"00",X"27",X"77",X"01",X"10",X"00",X"CD",X"DB",X"2F",X"CD",X"03",X"32",X"21", + X"88",X"E5",X"35",X"20",X"DA",X"21",X"8F",X"E5",X"3A",X"89",X"E5",X"BE",X"20",X"05",X"3E",X"11", + X"CD",X"42",X"31",X"3E",X"04",X"CD",X"30",X"06",X"18",X"C0",X"3E",X"1C",X"CD",X"30",X"06",X"C9", + X"32",X"B5",X"E5",X"3A",X"05",X"E5",X"B7",X"28",X"2A",X"21",X"B5",X"E6",X"7E",X"FE",X"80",X"38", + X"02",X"36",X"28",X"7E",X"FE",X"14",X"30",X"12",X"21",X"2B",X"D1",X"36",X"05",X"2B",X"36",X"00", + X"11",X"2C",X"D1",X"01",X"02",X"00",X"ED",X"B0",X"18",X"09",X"21",X"2A",X"D1",X"11",X"6B",X"06", + X"CD",X"2D",X"30",X"3A",X"B5",X"E5",X"FE",X"00",X"20",X"C9",X"C9",X"06",X"58",X"32",X"00",X"42", + X"45",X"4C",X"4F",X"57",X"20",X"48",X"41",X"4C",X"46",X"20",X"54",X"49",X"4D",X"45",X"20",X"43", + X"4C",X"45",X"41",X"52",X"41",X"4E",X"43",X"45",X"00",X"3E",X"09",X"32",X"88",X"E5",X"21",X"B9", + X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"BA",X"D8",X"01",X"0C",X"00",X"ED",X"B0",X"21",X"39", + X"D9",X"36",X"05",X"2B",X"36",X"00",X"11",X"3A",X"D9",X"01",X"0C",X"00",X"ED",X"B0",X"0E",X"47", + X"11",X"26",X"07",X"3A",X"88",X"E5",X"1F",X"30",X"0C",X"11",X"18",X"07",X"3A",X"89",X"E5",X"B7", + X"20",X"03",X"11",X"1F",X"07",X"21",X"BA",X"D8",X"CD",X"2D",X"30",X"3E",X"0E",X"CD",X"3E",X"30", + X"21",X"88",X"E5",X"35",X"20",X"D8",X"3E",X"70",X"CD",X"3E",X"30",X"C9",X"59",X"4F",X"55",X"20", + X"48",X"41",X"56",X"45",X"20",X"4B",X"49",X"4C",X"4C",X"45",X"44",X"20",X"4E",X"4F",X"20",X"45", + X"4E",X"45",X"4D",X"49",X"45",X"53",X"2E",X"00",X"59",X"4F",X"55",X"20",X"4D",X"41",X"44",X"45", + X"20",X"49",X"54",X"20",X"57",X"49",X"54",X"48",X"4F",X"55",X"54",X"20",X"45",X"4E",X"54",X"52", + X"41",X"50",X"50",X"49",X"4E",X"47",X"2E",X"00",X"04",X"31",X"30",X"30",X"30",X"30",X"00",X"04", + X"32",X"30",X"30",X"30",X"30",X"00",X"20",X"20",X"20",X"20",X"20",X"00",X"CD",X"CE",X"07",X"CD", + X"1D",X"08",X"CD",X"AA",X"09",X"3A",X"50",X"E4",X"B7",X"C0",X"3A",X"A7",X"E5",X"B7",X"28",X"0E", + X"3E",X"00",X"32",X"9D",X"E5",X"3E",X"38",X"CD",X"3E",X"30",X"F1",X"C3",X"85",X"68",X"DB",X"04", + X"CB",X"77",X"C8",X"3E",X"0C",X"32",X"4A",X"E4",X"3E",X"01",X"32",X"9D",X"E5",X"3E",X"00",X"CD", + X"42",X"31",X"3E",X"06",X"CD",X"42",X"31",X"3E",X"38",X"CD",X"3E",X"30",X"3E",X"00",X"32",X"9D", + X"E5",X"F1",X"21",X"8F",X"E5",X"35",X"7E",X"FE",X"FF",X"20",X"2A",X"21",X"34",X"D7",X"11",X"A8", + X"07",X"CD",X"2D",X"30",X"21",X"B4",X"D7",X"11",X"B5",X"07",X"CD",X"2D",X"30",X"21",X"34",X"D8", + X"11",X"A8",X"07",X"CD",X"2D",X"30",X"3E",X"21",X"CD",X"42",X"31",X"3E",X"8C",X"CD",X"3E",X"30", + X"3E",X"02",X"32",X"90",X"E5",X"C3",X"E3",X"6A",X"06",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"00",X"06",X"20",X"47",X"41",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52", + X"20",X"00",X"20",X"54",X"49",X"4D",X"45",X"20",X"4F",X"56",X"45",X"52",X"20",X"00",X"3A",X"CE", + X"E5",X"B7",X"C8",X"DB",X"04",X"CB",X"77",X"C8",X"F1",X"AF",X"32",X"CE",X"E5",X"32",X"9D",X"E5", + X"3E",X"00",X"CD",X"42",X"31",X"3E",X"25",X"CD",X"42",X"31",X"21",X"35",X"D7",X"36",X"05",X"2B", + X"36",X"00",X"11",X"36",X"D7",X"01",X"14",X"00",X"ED",X"B0",X"0E",X"47",X"21",X"B4",X"D7",X"11", + X"C2",X"07",X"CD",X"2D",X"30",X"21",X"35",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"36",X"D8", + X"01",X"14",X"00",X"ED",X"B0",X"3E",X"8C",X"CD",X"3E",X"30",X"C3",X"67",X"07",X"2A",X"55",X"E4", + X"01",X"C0",X"FE",X"09",X"D0",X"AF",X"32",X"50",X"E4",X"32",X"9D",X"E5",X"CD",X"8D",X"32",X"21", + X"29",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"2A",X"D7",X"01",X"2A",X"00",X"ED",X"B0",X"21", + X"A9",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"AA",X"D7",X"01",X"2A",X"00",X"ED",X"B0",X"21", + X"29",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11",X"2A",X"D8",X"01",X"2A",X"00",X"ED",X"B0",X"3E", + X"02",X"32",X"89",X"E5",X"3E",X"10",X"CD",X"42",X"31",X"3E",X"04",X"32",X"88",X"E5",X"3A",X"88", + X"E5",X"1F",X"30",X"12",X"21",X"AB",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11",X"AC",X"D7",X"01", + X"28",X"00",X"ED",X"B0",X"18",X"0B",X"0E",X"47",X"21",X"AA",X"D7",X"11",X"C0",X"08",X"CD",X"2D", + X"30",X"3E",X"15",X"CD",X"3E",X"30",X"21",X"88",X"E5",X"35",X"20",X"D2",X"21",X"89",X"E5",X"35", + X"20",X"C2",X"3E",X"10",X"CD",X"42",X"31",X"0E",X"47",X"21",X"AA",X"D7",X"11",X"C0",X"08",X"CD", + X"2D",X"30",X"3E",X"54",X"CD",X"3E",X"30",X"3A",X"8F",X"E5",X"B7",X"C0",X"CD",X"B9",X"32",X"C9", + X"59",X"4F",X"55",X"20",X"41",X"52",X"45",X"20",X"42",X"4F",X"55",X"4E",X"44",X"20",X"54",X"4F", + X"20",X"44",X"49",X"45",X"2E",X"00",X"DB",X"03",X"2F",X"47",X"E6",X"03",X"32",X"DF",X"E5",X"78", + X"1F",X"1F",X"E6",X"03",X"4F",X"06",X"00",X"21",X"F0",X"08",X"09",X"7E",X"32",X"E0",X"E5",X"C9", + X"02",X"01",X"03",X"04",X"DB",X"03",X"2F",X"1F",X"1F",X"1F",X"1F",X"47",X"21",X"AF",X"E5",X"DB", + X"04",X"CB",X"57",X"20",X"11",X"78",X"3C",X"E6",X"03",X"77",X"23",X"78",X"1F",X"1F",X"E6",X"03", + X"FE",X"02",X"DE",X"F5",X"77",X"C9",X"78",X"3C",X"E6",X"0F",X"CB",X"5F",X"28",X"01",X"3C",X"77", + X"23",X"77",X"C9",X"21",X"AD",X"E5",X"11",X"AF",X"E5",X"DB",X"00",X"CD",X"58",X"09",X"21",X"AE", + X"E5",X"13",X"DB",X"02",X"1F",X"F6",X"04",X"CD",X"58",X"09",X"3A",X"B9",X"E5",X"47",X"21",X"AB", + X"E5",X"7E",X"B7",X"28",X"05",X"35",X"3E",X"02",X"B0",X"47",X"23",X"7E",X"B7",X"28",X"05",X"35", + X"3E",X"04",X"B0",X"47",X"78",X"D3",X"01",X"C9",X"1F",X"1F",X"1F",X"CB",X"16",X"1F",X"CB",X"16", + X"7E",X"E6",X"55",X"FE",X"50",X"20",X"2B",X"2B",X"2B",X"36",X"0C",X"3A",X"B2",X"E6",X"B7",X"20", + X"08",X"3E",X"12",X"D3",X"00",X"F6",X"80",X"D3",X"00",X"1A",X"FE",X"01",X"28",X"12",X"FE",X"08", + X"30",X"0C",X"21",X"B1",X"E5",X"34",X"BE",X"C0",X"AF",X"77",X"3E",X"01",X"18",X"02",X"D6",X"08", + X"18",X"0D",X"7E",X"E6",X"AA",X"C0",X"21",X"B3",X"E5",X"34",X"7E",X"E6",X"0F",X"C0",X"3C",X"21", + X"B2",X"E5",X"86",X"27",X"30",X"02",X"3E",X"99",X"77",X"C9",X"DB",X"04",X"CB",X"6F",X"C0",X"CB", + X"67",X"C8",X"DB",X"00",X"CB",X"47",X"C0",X"F1",X"F1",X"AF",X"32",X"9D",X"E5",X"3E",X"00",X"CD", + X"42",X"31",X"21",X"10",X"D0",X"36",X"00",X"54",X"5D",X"13",X"01",X"EF",X"13",X"ED",X"B0",X"21", + X"22",X"D7",X"11",X"29",X"0A",X"CD",X"2D",X"30",X"21",X"1A",X"D9",X"11",X"48",X"0A",X"CD",X"2D", + X"30",X"11",X"00",X"00",X"0E",X"04",X"3A",X"8E",X"E5",X"21",X"60",X"D9",X"CD",X"48",X"30",X"21", + X"8E",X"E5",X"DB",X"01",X"CB",X"7F",X"28",X"0E",X"CB",X"42",X"28",X"08",X"16",X"00",X"7E",X"FE", + X"02",X"38",X"01",X"35",X"18",X"02",X"16",X"01",X"DB",X"01",X"CB",X"6F",X"28",X"09",X"CB",X"43", + X"28",X"03",X"1E",X"00",X"34",X"18",X"02",X"1E",X"01",X"3E",X"01",X"CD",X"3E",X"30",X"DB",X"00", + X"CB",X"4F",X"20",X"C0",X"7E",X"3D",X"C3",X"D4",X"05",X"02",X"53",X"45",X"4C",X"45",X"43",X"54", + X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"20",X"54",X"4F",X"20",X"43",X"48",X"41",X"4E",X"47", + X"45",X"20",X"52",X"4F",X"55",X"4E",X"44",X"00",X"02",X"44",X"49",X"47",X"4C",X"45",X"46",X"54", + X"2D",X"2D",X"44",X"4F",X"57",X"4E",X"20",X"20",X"44",X"49",X"47",X"52",X"49",X"47",X"48",X"54", + X"2D",X"2D",X"55",X"50",X"20",X"20",X"4C",X"45",X"56",X"45",X"4C",X"2D",X"30",X"30",X"00",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3A",X"A7",X"E5",X"B7",X"28",X"0E",X"CD",X"12",X"5C",X"32",X"4D",X"E4",X"FE",X"FF",X"20",X"04", + X"AF",X"32",X"50",X"E4",X"2A",X"44",X"E4",X"7D",X"6C",X"2C",X"2C",X"CD",X"D5",X"62",X"7E",X"2A", + X"55",X"E4",X"FE",X"0E",X"38",X"03",X"23",X"18",X"03",X"21",X"00",X"00",X"22",X"55",X"E4",X"DD", + X"21",X"40",X"E4",X"21",X"08",X"E5",X"7E",X"B7",X"28",X"01",X"35",X"21",X"06",X"E5",X"7E",X"B7", + X"28",X"18",X"35",X"3A",X"0A",X"E5",X"DD",X"BE",X"0B",X"20",X"0F",X"21",X"0B",X"E5",X"3A",X"44", + X"E4",X"BE",X"28",X"06",X"77",X"3E",X"0C",X"CD",X"73",X"30",X"3A",X"4E",X"E4",X"B7",X"FA",X"B4", + X"0F",X"C2",X"43",X"10",X"21",X"4C",X"E4",X"7E",X"B7",X"28",X"11",X"35",X"C0",X"36",X"08",X"21", + X"4A",X"E4",X"34",X"7E",X"E6",X"FC",X"FE",X"14",X"C8",X"36",X"14",X"C9",X"3A",X"54",X"E4",X"FE", + X"02",X"20",X"0D",X"06",X"1C",X"CD",X"9F",X"10",X"D0",X"AF",X"32",X"54",X"E4",X"CD",X"37",X"12", + X"3A",X"54",X"E4",X"FE",X"01",X"20",X"0E",X"CD",X"0E",X"12",X"06",X"20",X"CD",X"9F",X"10",X"D0", + X"3E",X"03",X"32",X"54",X"E4",X"AF",X"32",X"51",X"E4",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD", + X"00",X"2D",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"CA",X"9F",X"0C",X"AF",X"32",X"87",X"E5", + X"32",X"54",X"E4",X"7E",X"E6",X"FC",X"FE",X"18",X"20",X"13",X"3E",X"01",X"32",X"87",X"E5",X"3A", + X"42",X"E4",X"B7",X"20",X"08",X"3E",X"01",X"32",X"51",X"E4",X"CA",X"9F",X"0C",X"3A",X"45",X"E4", + X"FE",X"1D",X"30",X"0E",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"07",X"1A",X"E6",X"F8",X"FE",X"08", + X"20",X"0D",X"3E",X"01",X"32",X"87",X"E5",X"3A",X"42",X"E4",X"FE",X"80",X"DA",X"9F",X"0C",X"2A", + X"47",X"E4",X"3A",X"46",X"E4",X"CD",X"15",X"2D",X"DA",X"B1",X"0C",X"21",X"4F",X"E4",X"7E",X"B7", + X"20",X"06",X"34",X"3E",X"15",X"CD",X"42",X"31",X"3E",X"0C",X"32",X"4A",X"E4",X"21",X"09",X"E5", + X"7E",X"B7",X"28",X"04",X"35",X"C3",X"B1",X"0C",X"CD",X"0E",X"12",X"2A",X"42",X"E4",X"7C",X"11", + X"1E",X"00",X"19",X"22",X"42",X"E4",X"BC",X"28",X"0A",X"3A",X"87",X"E5",X"B7",X"28",X"04",X"AF", + X"32",X"42",X"E4",X"2A",X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C", + X"32",X"46",X"E4",X"CD",X"88",X"11",X"3A",X"42",X"E4",X"B7",X"C0",X"3A",X"44",X"E4",X"2A",X"45", + X"E4",X"CD",X"00",X"2D",X"3A",X"45",X"E4",X"FE",X"1D",X"30",X"06",X"1A",X"E6",X"F8",X"FE",X"08", + X"C0",X"15",X"0E",X"04",X"CD",X"A9",X"2E",X"C0",X"1D",X"1D",X"1D",X"1D",X"3A",X"44",X"E4",X"B7", + X"28",X"06",X"1A",X"E6",X"F8",X"FE",X"08",X"C0",X"3A",X"44",X"E4",X"FE",X"17",X"30",X"0A",X"7B", + X"C6",X"08",X"5F",X"1A",X"E6",X"F8",X"FE",X"08",X"C0",X"3E",X"08",X"32",X"4C",X"E4",X"C9",X"21", + X"4F",X"E4",X"7E",X"B7",X"28",X"07",X"36",X"00",X"3E",X"16",X"CD",X"42",X"31",X"AF",X"32",X"52", + X"E4",X"3A",X"4D",X"E4",X"CB",X"7F",X"C2",X"42",X"0F",X"CB",X"6F",X"C2",X"CF",X"0F",X"CB",X"5F", + X"28",X"06",X"CD",X"4C",X"0E",X"D8",X"18",X"08",X"CB",X"57",X"28",X"04",X"CD",X"B7",X"0E",X"D8", + X"3A",X"4D",X"E4",X"CB",X"47",X"C2",X"5E",X"0D",X"CB",X"4F",X"C2",X"21",X"0D",X"3A",X"44",X"E4", + X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"1A",X"E6",X"F8",X"FE",X"08",X"20",X"0B",X"3E",X"12",X"32", + X"4A",X"E4",X"3E",X"01",X"32",X"49",X"E4",X"C9",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"20", + X"0D",X"15",X"1A",X"E6",X"F8",X"FE",X"10",X"C0",X"3E",X"08",X"32",X"4A",X"E4",X"C9",X"7E",X"E6", + X"FC",X"FE",X"18",X"20",X"06",X"3E",X"07",X"32",X"4A",X"E4",X"C9",X"3E",X"12",X"32",X"4A",X"E4", + X"C9",X"AF",X"32",X"87",X"E5",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"3A",X"44", + X"E4",X"B7",X"28",X"0E",X"15",X"1B",X"1B",X"1B",X"1B",X"06",X"F8",X"0E",X"08",X"CD",X"71",X"2E", + X"20",X"0C",X"3E",X"01",X"32",X"87",X"E5",X"3A",X"40",X"E4",X"3D",X"FE",X"7F",X"D0",X"3E",X"01", + X"32",X"4B",X"E4",X"CD",X"37",X"12",X"CD",X"D4",X"0D",X"11",X"EC",X"FF",X"18",X"3D",X"AF",X"32", + X"87",X"E5",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"3A",X"44",X"E4",X"FE",X"17", + X"30",X"0E",X"15",X"13",X"13",X"13",X"13",X"06",X"F8",X"0E",X"08",X"CD",X"71",X"2E",X"20",X"0E", + X"3E",X"01",X"32",X"87",X"E5",X"3A",X"40",X"E4",X"FE",X"80",X"30",X"02",X"B7",X"C9",X"AF",X"32", + X"4B",X"E4",X"CD",X"37",X"12",X"CD",X"D4",X"0D",X"11",X"14",X"00",X"2A",X"40",X"E4",X"7C",X"19", + X"22",X"40",X"E4",X"BC",X"28",X"14",X"3A",X"87",X"E5",X"B7",X"28",X"0E",X"2A",X"40",X"E4",X"7D", + X"FE",X"80",X"38",X"01",X"24",X"2E",X"00",X"22",X"40",X"E4",X"2A",X"40",X"E4",X"29",X"7C",X"3C", + X"1F",X"32",X"44",X"E4",X"29",X"29",X"7C",X"32",X"47",X"E4",X"CD",X"88",X"11",X"06",X"00",X"CD", + X"F1",X"10",X"37",X"C9",X"3A",X"51",X"E4",X"B7",X"C8",X"F1",X"3A",X"4A",X"E4",X"E6",X"FC",X"21", + X"49",X"E4",X"FE",X"2C",X"28",X"02",X"36",X"01",X"35",X"C0",X"21",X"4A",X"E4",X"34",X"7E",X"E6", + X"FC",X"FE",X"2C",X"28",X"02",X"36",X"2C",X"7E",X"D6",X"18",X"4F",X"06",X"00",X"21",X"20",X"4C", + X"09",X"7E",X"32",X"49",X"E4",X"21",X"D0",X"4D",X"09",X"7E",X"87",X"87",X"87",X"87",X"5F",X"3A", + X"87",X"E5",X"57",X"2A",X"40",X"E4",X"3A",X"4B",X"E4",X"B7",X"7D",X"28",X"0D",X"93",X"30",X"08", + X"CB",X"42",X"28",X"03",X"AF",X"18",X"01",X"25",X"18",X"09",X"83",X"30",X"06",X"24",X"CB",X"42", + X"28",X"01",X"AF",X"6F",X"22",X"40",X"E4",X"2A",X"40",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"44", + X"E4",X"29",X"29",X"7C",X"32",X"47",X"E4",X"CD",X"88",X"11",X"37",X"C9",X"AF",X"32",X"87",X"E5", + X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E", + X"20",X"14",X"3A",X"45",X"E4",X"FE",X"01",X"28",X"16",X"15",X"15",X"1A",X"E6",X"F8",X"FE",X"08", + X"28",X"0D",X"18",X"17",X"18",X"09",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"02",X"B7",X"C9",X"3A", + X"42",X"E4",X"3D",X"FE",X"7F",X"D0",X"3E",X"01",X"32",X"87",X"E5",X"CD",X"0E",X"12",X"3A",X"44", + X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"15",X"1A",X"E6",X"F8",X"11",X"E2",X"FF",X"FE",X"10", + X"CA",X"07",X"0F",X"21",X"54",X"E4",X"7E",X"FE",X"03",X"C2",X"07",X"0F",X"35",X"3E",X"1C",X"32", + X"4A",X"E4",X"CD",X"AB",X"10",X"37",X"C9",X"AF",X"32",X"87",X"E5",X"3A",X"45",X"E4",X"FE",X"1D", + X"30",X"07",X"1A",X"E6",X"F8",X"FE",X"08",X"20",X"0E",X"3A",X"42",X"E4",X"FE",X"80",X"30",X"02", + X"B7",X"C9",X"3E",X"01",X"32",X"87",X"E5",X"CD",X"0E",X"12",X"3A",X"44",X"E4",X"2A",X"43",X"E4", + X"CD",X"00",X"2D",X"1A",X"15",X"E6",X"F8",X"FE",X"10",X"1A",X"11",X"1E",X"00",X"20",X"18",X"E6", + X"F8",X"FE",X"10",X"28",X"12",X"21",X"54",X"E4",X"7E",X"B7",X"20",X"0B",X"34",X"3E",X"20",X"32", + X"4A",X"E4",X"CD",X"AB",X"10",X"37",X"C9",X"2A",X"42",X"E4",X"7C",X"19",X"22",X"42",X"E4",X"BC", + X"28",X"11",X"3A",X"87",X"E5",X"B7",X"28",X"0B",X"7D",X"FE",X"80",X"38",X"01",X"24",X"2E",X"00", + X"22",X"42",X"E4",X"2A",X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C", + X"32",X"46",X"E4",X"CD",X"88",X"11",X"06",X"08",X"CD",X"F1",X"10",X"3E",X"03",X"32",X"54",X"E4", + X"37",X"C9",X"AF",X"32",X"0F",X"E5",X"3A",X"45",X"E4",X"FE",X"1C",X"D0",X"3A",X"44",X"E4",X"B7", + X"C8",X"3A",X"45",X"E4",X"6F",X"C6",X"03",X"32",X"17",X"E5",X"3A",X"44",X"E4",X"3D",X"32",X"16", + X"E5",X"CD",X"00",X"2D",X"06",X"FC",X"0E",X"08",X"CD",X"7F",X"2E",X"C0",X"ED",X"53",X"13",X"E5", + X"15",X"06",X"F8",X"0E",X"00",X"CD",X"7F",X"2E",X"C0",X"3E",X"10",X"32",X"4A",X"E4",X"14",X"1C", + X"1C",X"1C",X"1C",X"1A",X"E6",X"F8",X"FE",X"08",X"28",X"17",X"2C",X"2C",X"2C",X"2C",X"7E",X"E6", + X"FC",X"FE",X"18",X"28",X"07",X"7E",X"E6",X"F8",X"FE",X"10",X"20",X"05",X"3E",X"11",X"32",X"4A", + X"E4",X"3E",X"FF",X"32",X"4E",X"E4",X"21",X"40",X"01",X"22",X"11",X"E5",X"3E",X"01",X"32",X"4B", + X"E4",X"32",X"07",X"E5",X"3A",X"0F",X"E5",X"FE",X"0E",X"D2",X"59",X"10",X"2A",X"46",X"E4",X"7D", + X"C6",X"08",X"6F",X"7C",X"D6",X"06",X"CD",X"EF",X"2D",X"DA",X"92",X"10",X"C3",X"59",X"10",X"AF", + X"32",X"0F",X"E5",X"3A",X"45",X"E4",X"FE",X"1C",X"D0",X"3A",X"44",X"E4",X"FE",X"17",X"D0",X"3A", + X"45",X"E4",X"6F",X"C6",X"03",X"32",X"17",X"E5",X"3A",X"44",X"E4",X"3C",X"32",X"16",X"E5",X"CD", + X"00",X"2D",X"06",X"FC",X"0E",X"08",X"CD",X"7F",X"2E",X"C0",X"ED",X"53",X"13",X"E5",X"15",X"06", + X"F8",X"0E",X"00",X"CD",X"7F",X"2E",X"C0",X"3E",X"10",X"32",X"4A",X"E4",X"14",X"1D",X"1D",X"1D", + X"1D",X"1A",X"E6",X"F8",X"FE",X"08",X"28",X"17",X"2D",X"2D",X"2D",X"2D",X"7E",X"E6",X"FC",X"FE", + X"18",X"28",X"07",X"7E",X"E6",X"F8",X"FE",X"10",X"20",X"05",X"3E",X"11",X"32",X"4A",X"E4",X"3E", + X"01",X"32",X"4E",X"E4",X"21",X"40",X"01",X"22",X"11",X"E5",X"AF",X"32",X"4B",X"E4",X"3E",X"01", + X"32",X"07",X"E5",X"3A",X"0F",X"E5",X"FE",X"0E",X"30",X"0F",X"2A",X"46",X"E4",X"7D",X"C6",X"08", + X"6F",X"7C",X"C6",X"06",X"CD",X"31",X"2E",X"38",X"39",X"21",X"07",X"E5",X"7E",X"B7",X"28",X"07", + X"36",X"00",X"3E",X"01",X"CD",X"42",X"31",X"CD",X"0E",X"12",X"CD",X"37",X"12",X"3A",X"0F",X"E5", + X"FE",X"14",X"D2",X"03",X"11",X"21",X"10",X"E5",X"36",X"F3",X"3A",X"0F",X"E5",X"1F",X"1F",X"30", + X"02",X"36",X"F2",X"2A",X"11",X"E5",X"11",X"C0",X"00",X"19",X"22",X"11",X"E5",X"21",X"0F",X"E5", + X"34",X"C9",X"3E",X"00",X"32",X"10",X"E5",X"AF",X"32",X"4E",X"E4",X"32",X"07",X"E5",X"C9",X"21", + X"49",X"E4",X"35",X"28",X"02",X"B7",X"C9",X"21",X"4A",X"E4",X"34",X"3A",X"4A",X"E4",X"D6",X"18", + X"4F",X"06",X"00",X"21",X"20",X"4C",X"09",X"7E",X"32",X"49",X"E4",X"B7",X"20",X"07",X"3E",X"01", + X"32",X"49",X"E4",X"37",X"C9",X"21",X"A8",X"4E",X"09",X"56",X"1E",X"00",X"CB",X"2A",X"CB",X"1B", + X"CB",X"2A",X"CB",X"1B",X"CB",X"2A",X"CB",X"1B",X"2A",X"42",X"E4",X"19",X"22",X"42",X"E4",X"2A", + X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C",X"32",X"46",X"E4",X"B7", + X"C9",X"21",X"49",X"E4",X"35",X"C0",X"36",X"06",X"21",X"4A",X"E4",X"34",X"7E",X"E6",X"FC",X"B8", + X"C8",X"70",X"C9",X"AF",X"32",X"4E",X"E4",X"32",X"0C",X"E5",X"3D",X"32",X"0B",X"E5",X"CD",X"DD", + X"0C",X"ED",X"5B",X"13",X"E5",X"3E",X"04",X"CD",X"BE",X"2F",X"3E",X"00",X"32",X"10",X"E5",X"21", + X"18",X"E5",X"06",X"14",X"7E",X"B7",X"28",X"07",X"23",X"23",X"23",X"23",X"10",X"F6",X"C9",X"36", + X"A0",X"23",X"23",X"3A",X"16",X"E5",X"77",X"5F",X"23",X"3A",X"17",X"E5",X"77",X"57",X"2A",X"71", + X"E5",X"B7",X"ED",X"52",X"C0",X"22",X"71",X"E5",X"3E",X"01",X"32",X"02",X"E5",X"21",X"E9",X"E4", + X"7E",X"FD",X"21",X"58",X"E4",X"01",X"18",X"00",X"FD",X"09",X"3D",X"20",X"FB",X"34",X"FD",X"77", + X"00",X"FD",X"77",X"02",X"FD",X"73",X"01",X"FD",X"73",X"04",X"15",X"FD",X"72",X"03",X"FD",X"72", + X"05",X"7B",X"87",X"87",X"87",X"FD",X"77",X"07",X"7A",X"87",X"87",X"87",X"FD",X"77",X"06",X"FD", + X"36",X"09",X"01",X"FD",X"36",X"0C",X"B0",X"C9",X"3A",X"51",X"E4",X"B7",X"20",X"18",X"3A",X"40", + X"E4",X"FE",X"80",X"38",X"02",X"ED",X"44",X"FE",X"14",X"D0",X"3A",X"42",X"E4",X"FE",X"80",X"38", + X"02",X"ED",X"44",X"FE",X"1E",X"D0",X"3A",X"44",X"E4",X"2A",X"45",X"E4",X"CD",X"00",X"2D",X"15", + X"1A",X"E6",X"FC",X"FE",X"60",X"20",X"20",X"CD",X"83",X"2F",X"ED",X"5F",X"FE",X"33",X"38",X"04", + X"3E",X"08",X"18",X"0A",X"FE",X"0D",X"38",X"04",X"3E",X"09",X"18",X"02",X"3E",X"0A",X"CD",X"73", + X"30",X"3E",X"02",X"CD",X"42",X"31",X"C9",X"FE",X"70",X"C0",X"21",X"FC",X"E4",X"35",X"CD",X"5C", + X"2F",X"0E",X"00",X"14",X"1A",X"FE",X"04",X"20",X"02",X"0E",X"04",X"21",X"0D",X"E5",X"3A",X"08", + X"E5",X"B7",X"20",X"04",X"36",X"00",X"18",X"06",X"7E",X"FE",X"03",X"30",X"01",X"34",X"7E",X"81", + X"CD",X"73",X"30",X"3E",X"13",X"32",X"08",X"E5",X"3E",X"02",X"CD",X"42",X"31",X"C9",X"2A",X"40", + X"E4",X"7D",X"FE",X"80",X"30",X"07",X"D6",X"14",X"30",X"01",X"AF",X"18",X"06",X"C6",X"14",X"30", + X"02",X"24",X"AF",X"6F",X"22",X"40",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"44",X"E4",X"29",X"29", + X"7C",X"32",X"47",X"E4",X"C3",X"88",X"11",X"3A",X"52",X"E4",X"B7",X"C0",X"2A",X"42",X"E4",X"7D", + X"FE",X"80",X"30",X"07",X"D6",X"1E",X"30",X"01",X"AF",X"18",X"06",X"C6",X"1E",X"30",X"02",X"24", + X"AF",X"6F",X"22",X"42",X"E4",X"29",X"7C",X"3C",X"1F",X"32",X"45",X"E4",X"29",X"29",X"7C",X"32", + X"46",X"E4",X"C3",X"88",X"11",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3A",X"E9",X"E4",X"32",X"E8",X"E4",X"DD",X"21",X"58",X"E4",X"CD",X"19",X"13",X"11",X"18",X"00", + X"DD",X"19",X"21",X"E8",X"E4",X"35",X"20",X"F2",X"C9",X"21",X"6D",X"E5",X"36",X"00",X"3A",X"02", + X"E5",X"B7",X"28",X"19",X"3A",X"E8",X"E4",X"FE",X"01",X"20",X"12",X"34",X"3A",X"03",X"E5",X"B7", + X"28",X"0B",X"DD",X"7E",X"0C",X"FE",X"20",X"20",X"04",X"DD",X"36",X"0C",X"40",X"DD",X"7E",X"0E", + X"B7",X"C0",X"3A",X"F5",X"E4",X"B7",X"28",X"03",X"DD",X"34",X"17",X"DD",X"7E",X"0C",X"B7",X"28", + X"32",X"DD",X"35",X"0C",X"DD",X"7E",X"0C",X"FE",X"20",X"DA",X"23",X"15",X"DD",X"6E",X"07",X"DD", + X"7E",X"06",X"CD",X"F2",X"2E",X"DD",X"7E",X"0C",X"FE",X"B0",X"D0",X"DD",X"35",X"09",X"C0",X"DD", + X"36",X"09",X"08",X"DD",X"34",X"0A",X"DD",X"7E",X"0A",X"E6",X"FC",X"FE",X"14",X"C8",X"DD",X"36", + X"0A",X"14",X"C9",X"DD",X"7E",X"14",X"FE",X"14",X"20",X"0F",X"CD",X"F7",X"18",X"D8",X"06",X"1C", + X"CD",X"66",X"1A",X"D0",X"DD",X"36",X"14",X"00",X"C9",X"DD",X"7E",X"14",X"FE",X"01",X"20",X"12", + X"CD",X"C1",X"1B",X"CD",X"F7",X"18",X"D8",X"06",X"20",X"CD",X"66",X"1A",X"D0",X"DD",X"36",X"14", + X"15",X"C9",X"DD",X"7E",X"15",X"FE",X"02",X"20",X"19",X"CD",X"C1",X"1B",X"CD",X"F7",X"18",X"D8", + X"06",X"28",X"CD",X"66",X"1A",X"D0",X"DD",X"36",X"15",X"00",X"DD",X"34",X"09",X"DD",X"36",X"0F", + X"02",X"C9",X"DD",X"7E",X"15",X"FE",X"01",X"20",X"0F",X"CD",X"F7",X"18",X"D8",X"06",X"24",X"CD", + X"66",X"1A",X"D0",X"DD",X"36",X"15",X"03",X"C9",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"9E", + X"2D",X"DA",X"75",X"15",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8",X"0E", + X"10",X"CD",X"8D",X"2E",X"CA",X"75",X"15",X"AF",X"32",X"87",X"E5",X"DD",X"77",X"14",X"7E",X"E6", + X"FC",X"FE",X"18",X"20",X"0C",X"3E",X"01",X"32",X"87",X"E5",X"DD",X"7E",X"02",X"B7",X"CA",X"75", + X"15",X"DD",X"7E",X"05",X"FE",X"1D",X"30",X"29",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"22",X"1A", + X"E6",X"F8",X"FE",X"08",X"28",X"1B",X"DD",X"7E",X"16",X"B7",X"28",X"08",X"3C",X"DD",X"BE",X"05", + X"30",X"1C",X"18",X"0D",X"1A",X"FE",X"04",X"20",X"15",X"DD",X"7E",X"05",X"DD",X"77",X"16",X"18", + X"0D",X"3E",X"01",X"32",X"87",X"E5",X"DD",X"7E",X"02",X"FE",X"80",X"DA",X"75",X"15",X"DD",X"36", + X"10",X"00",X"CD",X"C1",X"1B",X"DD",X"7E",X"02",X"C6",X"15",X"DD",X"77",X"02",X"30",X"0D",X"DD", + X"34",X"03",X"3A",X"87",X"E5",X"B7",X"28",X"04",X"AF",X"DD",X"77",X"02",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"DD", + X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"D3",X"2E",X"CD",X"39",X"1B",X"06",X"0C",X"CD",X"2E",X"1A", + X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"24",X"7E",X"25",X"FE",X"04",X"20",X"3E", + X"DD",X"7E",X"0D",X"B7",X"28",X"19",X"DD",X"36",X"0D",X"00",X"EB",X"06",X"FC",X"0E",X"00",X"CD", + X"7F",X"2E",X"20",X"04",X"CD",X"0E",X"2F",X"C9",X"21",X"FC",X"E4",X"35",X"C9",X"18",X"1F",X"3A", + X"6D",X"E5",X"B7",X"28",X"19",X"3A",X"03",X"E5",X"B7",X"20",X"13",X"3E",X"01",X"32",X"03",X"E5", + X"EB",X"06",X"FC",X"0E",X"00",X"CD",X"7F",X"2E",X"20",X"03",X"CD",X"35",X"2F",X"C9",X"DD",X"7E", + X"02",X"B7",X"C0",X"15",X"1A",X"FE",X"04",X"C0",X"3A",X"87",X"E5",X"B7",X"C8",X"DD",X"36",X"16", + X"00",X"DD",X"36",X"0C",X"C0",X"DD",X"36",X"10",X"00",X"DD",X"36",X"0A",X"10",X"3E",X"05",X"CD", + X"42",X"31",X"3A",X"6D",X"E5",X"B7",X"C0",X"01",X"00",X"01",X"CD",X"DB",X"2F",X"3E",X"01",X"32", + X"00",X"E5",X"C9",X"B7",X"28",X"3C",X"FE",X"1F",X"20",X"0F",X"DD",X"36",X"10",X"01",X"DD",X"36", + X"0F",X"FE",X"DD",X"35",X"05",X"DD",X"35",X"05",X"C9",X"FE",X"18",X"38",X"06",X"DD",X"7E",X"0F", + X"FE",X"FE",X"C8",X"DD",X"36",X"10",X"00",X"DD",X"34",X"05",X"DD",X"34",X"05",X"DD",X"7E",X"0F", + X"DD",X"77",X"0B",X"FE",X"FE",X"38",X"04",X"DD",X"77",X"0C",X"C9",X"DD",X"36",X"0A",X"18",X"CD", + X"76",X"1A",X"DD",X"36",X"0C",X"01",X"CD",X"F7",X"18",X"D8",X"06",X"18",X"CD",X"66",X"1A",X"D0", + X"DD",X"36",X"0C",X"00",X"C9",X"DD",X"36",X"16",X"00",X"DD",X"36",X"10",X"01",X"DD",X"7E",X"0F", + X"B7",X"CA",X"85",X"17",X"3D",X"CA",X"29",X"17",X"3D",X"CA",X"5D",X"16",X"3D",X"CA",X"9A",X"15", + X"DD",X"6E",X"07",X"DD",X"7E",X"06",X"CD",X"F2",X"2E",X"C9",X"AF",X"32",X"87",X"E5",X"DD",X"7E", + X"05",X"FE",X"01",X"28",X"23",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8", + X"0E",X"10",X"CD",X"8D",X"2E",X"20",X"0B",X"15",X"15",X"1A",X"E6",X"F8",X"FE",X"08",X"20",X"14", + X"18",X"06",X"1A",X"E6",X"F8",X"FE",X"10",X"C0",X"DD",X"7E",X"02",X"3D",X"FE",X"7F",X"D0",X"3E", + X"01",X"32",X"87",X"E5",X"CD",X"C1",X"1B",X"DD",X"7E",X"04",X"DD",X"6E",X"03",X"CD",X"00",X"2D", + X"24",X"24",X"7E",X"E6",X"F8",X"FE",X"10",X"20",X"30",X"1A",X"E6",X"F8",X"FE",X"10",X"20",X"29", + X"15",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"21",X"DD",X"7E",X"14",X"FE",X"15",X"20",X"1A",X"DD", + X"35",X"14",X"DD",X"46",X"0A",X"DD",X"4E",X"09",X"C5",X"DD",X"36",X"0A",X"1C",X"CD",X"76",X"1A", + X"C1",X"30",X"41",X"DD",X"70",X"0A",X"DD",X"71",X"09",X"DD",X"7E",X"02",X"D6",X"15",X"DD",X"77", + X"02",X"30",X"0F",X"3A",X"87",X"E5",X"B7",X"28",X"06",X"AF",X"DD",X"77",X"02",X"18",X"03",X"DD", + X"35",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29", + X"29",X"7C",X"DD",X"77",X"06",X"CD",X"39",X"1B",X"CD",X"7A",X"1B",X"06",X"08",X"CD",X"2E",X"1A", + X"DD",X"36",X"14",X"15",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"C3",X"D3",X"2E",X"DD",X"7E",X"06", + X"DD",X"6E",X"07",X"CD",X"9E",X"2D",X"D8",X"AF",X"32",X"87",X"E5",X"DD",X"7E",X"05",X"FE",X"1D", + X"30",X"10",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"1A",X"E6",X"F8",X"FE",X"08", + X"20",X"0B",X"DD",X"7E",X"02",X"FE",X"80",X"D8",X"3E",X"01",X"32",X"87",X"E5",X"7E",X"E6",X"FC", + X"FE",X"18",X"20",X"17",X"DD",X"7E",X"15",X"FE",X"03",X"20",X"10",X"DD",X"35",X"15",X"DD",X"36", + X"0A",X"28",X"CD",X"76",X"1A",X"D0",X"DD",X"36",X"0A",X"0C",X"C9",X"CD",X"C1",X"1B",X"DD",X"7E", + X"04",X"DD",X"6E",X"03",X"CD",X"00",X"2D",X"1A",X"E6",X"F8",X"FE",X"10",X"20",X"29",X"15",X"1A", + X"E6",X"F8",X"FE",X"10",X"28",X"21",X"DD",X"7E",X"14",X"FE",X"15",X"28",X"1A",X"DD",X"34",X"14", + X"DD",X"46",X"0A",X"DD",X"4E",X"09",X"C5",X"DD",X"36",X"0A",X"20",X"CD",X"76",X"1A",X"C1",X"30", + X"3F",X"DD",X"70",X"0A",X"DD",X"71",X"09",X"DD",X"7E",X"02",X"C6",X"15",X"DD",X"77",X"02",X"30", + X"0D",X"DD",X"34",X"03",X"3A",X"87",X"E5",X"B7",X"28",X"04",X"AF",X"DD",X"77",X"02",X"DD",X"6E", + X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77", + X"06",X"CD",X"39",X"1B",X"CD",X"7A",X"1B",X"06",X"08",X"CD",X"2E",X"1A",X"DD",X"36",X"14",X"15", + X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"C3",X"D3",X"2E",X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CD", + X"EF",X"2D",X"D8",X"AF",X"32",X"87",X"E5",X"DD",X"7E",X"04",X"B7",X"28",X"16",X"DD",X"7E",X"04", + X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"2B",X"2B",X"2B",X"2B",X"06",X"F8",X"0E",X"08",X"CD",X"8D", + X"2E",X"20",X"0C",X"DD",X"7E",X"00",X"3D",X"FE",X"7F",X"D0",X"3E",X"01",X"32",X"87",X"E5",X"3E", + X"01",X"DD",X"77",X"0B",X"CD",X"EE",X"1B",X"CD",X"4C",X"18",X"DD",X"7E",X"00",X"D6",X"0E",X"DD", + X"77",X"00",X"30",X"0F",X"3A",X"87",X"E5",X"B7",X"28",X"06",X"AF",X"DD",X"77",X"00",X"18",X"03", + X"DD",X"35",X"01",X"18",X"57",X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CD",X"31",X"2E",X"D8",X"AF", + X"32",X"87",X"E5",X"DD",X"7E",X"04",X"FE",X"17",X"30",X"16",X"DD",X"7E",X"04",X"DD",X"6E",X"05", + X"CD",X"00",X"2D",X"23",X"23",X"23",X"23",X"06",X"F8",X"0E",X"08",X"CD",X"8D",X"2E",X"20",X"0B", + X"DD",X"7E",X"00",X"FE",X"80",X"D8",X"3E",X"01",X"32",X"87",X"E5",X"AF",X"DD",X"77",X"0B",X"CD", + X"EE",X"1B",X"CD",X"4C",X"18",X"DD",X"7E",X"00",X"C6",X"0E",X"DD",X"77",X"00",X"30",X"0D",X"DD", + X"34",X"01",X"3A",X"87",X"E5",X"B7",X"28",X"AB",X"AF",X"DD",X"77",X"00",X"DD",X"6E",X"00",X"DD", + X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77",X"07",X"CD", + X"39",X"1B",X"CD",X"7A",X"1B",X"DD",X"6E",X"06",X"DD",X"7E",X"0B",X"B7",X"DD",X"7E",X"07",X"28", + X"05",X"CD",X"B9",X"2E",X"18",X"03",X"CD",X"B5",X"2E",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD", + X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"20",X"19",X"DD",X"7E",X"15",X"B7",X"20",X"0B",X"DD",X"34", + X"15",X"DD",X"36",X"0A",X"24",X"CD",X"76",X"1A",X"D0",X"DD",X"36",X"15",X"03",X"06",X"04",X"18", + X"18",X"DD",X"7E",X"15",X"FE",X"03",X"20",X"0B",X"DD",X"35",X"15",X"DD",X"36",X"0A",X"28",X"CD", + X"76",X"1A",X"D0",X"DD",X"36",X"15",X"00",X"06",X"00",X"C3",X"2E",X"1A",X"3A",X"6D",X"E5",X"B7", + X"20",X"07",X"3A",X"FB",X"E4",X"B7",X"C8",X"18",X"05",X"3A",X"6F",X"E5",X"B7",X"C8",X"DD",X"7E", + X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"C0",X"F1",X"DD",X"6E",X"06", + X"DD",X"7E",X"0B",X"B7",X"DD",X"7E",X"07",X"28",X"05",X"CD",X"B9",X"2E",X"18",X"03",X"CD",X"B5", + X"2E",X"DD",X"7E",X"0A",X"E6",X"FC",X"FE",X"2C",X"28",X"04",X"DD",X"36",X"09",X"01",X"DD",X"35", + X"09",X"C0",X"DD",X"34",X"0A",X"DD",X"7E",X"0A",X"E6",X"FC",X"FE",X"2C",X"28",X"04",X"DD",X"36", + X"0A",X"2C",X"CD",X"19",X"1B",X"21",X"20",X"4C",X"09",X"7E",X"DD",X"77",X"09",X"21",X"D0",X"4D", + X"09",X"7E",X"B7",X"C8",X"87",X"87",X"87",X"87",X"5F",X"3A",X"87",X"E5",X"57",X"DD",X"7E",X"00", + X"DD",X"CB",X"0B",X"46",X"28",X"0F",X"93",X"30",X"0A",X"CB",X"42",X"28",X"03",X"AF",X"18",X"03", + X"DD",X"35",X"01",X"18",X"0B",X"83",X"30",X"08",X"DD",X"34",X"01",X"CB",X"42",X"28",X"01",X"AF", + X"DD",X"77",X"00",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04", + X"29",X"29",X"7C",X"DD",X"77",X"07",X"C9",X"DD",X"7E",X"0F",X"FE",X"FF",X"C8",X"E6",X"03",X"CA", + X"A6",X"19",X"3D",X"CA",X"EA",X"19",X"3D",X"28",X"59",X"DD",X"7E",X"0C",X"B7",X"28",X"0F",X"DD", + X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"F8",X"FE",X"08",X"37",X"C8",X"DD",X"CB", + X"0F",X"6E",X"20",X"0A",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"A2",X"2D",X"D8",X"DD",X"46", + X"0F",X"CB",X"78",X"20",X"20",X"DD",X"7E",X"02",X"D6",X"20",X"DD",X"77",X"02",X"30",X"03",X"DD", + X"35",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29", + X"29",X"7C",X"DD",X"77",X"06",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CB",X"70",X"CC",X"D3",X"2E", + X"B7",X"C9",X"DD",X"CB",X"0F",X"6E",X"20",X"0A",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CD",X"9E", + X"2D",X"D8",X"DD",X"46",X"0F",X"CB",X"78",X"20",X"20",X"DD",X"7E",X"02",X"C6",X"20",X"DD",X"77", + X"02",X"30",X"03",X"DD",X"34",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F", + X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"DD",X"7E",X"06",X"DD",X"6E",X"07",X"CB", + X"70",X"CC",X"D3",X"2E",X"B7",X"C9",X"DD",X"CB",X"0F",X"6E",X"20",X"0A",X"DD",X"6E",X"06",X"DD", + X"7E",X"07",X"CD",X"31",X"2E",X"D8",X"DD",X"46",X"0F",X"CB",X"78",X"20",X"20",X"DD",X"7E",X"00", + X"C6",X"10",X"DD",X"77",X"00",X"30",X"03",X"DD",X"34",X"01",X"DD",X"6E",X"00",X"DD",X"66",X"01", + X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77",X"07",X"DD",X"6E",X"06", + X"DD",X"7E",X"07",X"CB",X"70",X"CC",X"B5",X"2E",X"B7",X"C9",X"DD",X"CB",X"0F",X"6E",X"20",X"0A", + X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CD",X"EF",X"2D",X"D8",X"DD",X"46",X"0F",X"CB",X"78",X"20", + X"20",X"DD",X"7E",X"00",X"D6",X"10",X"DD",X"77",X"00",X"30",X"03",X"DD",X"35",X"01",X"DD",X"6E", + X"00",X"DD",X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77", + X"07",X"DD",X"6E",X"06",X"DD",X"7E",X"07",X"CB",X"70",X"CC",X"B9",X"2E",X"B7",X"C9",X"DD",X"35", + X"09",X"C0",X"DD",X"36",X"09",X"06",X"DD",X"34",X"0A",X"DD",X"7E",X"0A",X"FE",X"03",X"20",X"12", + X"3A",X"CD",X"E5",X"5F",X"16",X"00",X"21",X"5D",X"1A",X"19",X"7E",X"B7",X"28",X"04",X"DD",X"70", + X"0A",X"C9",X"DD",X"7E",X"0A",X"E6",X"FC",X"B8",X"C8",X"DD",X"70",X"0A",X"C9",X"00",X"00",X"01", + X"01",X"00",X"00",X"01",X"00",X"00",X"DD",X"35",X"09",X"C0",X"DD",X"34",X"0A",X"DD",X"7E",X"0A", + X"E6",X"FC",X"B8",X"C2",X"0D",X"1B",X"DD",X"36",X"10",X"00",X"CD",X"19",X"1B",X"21",X"20",X"4C", + X"09",X"7E",X"DD",X"77",X"09",X"B7",X"CA",X"0D",X"1B",X"21",X"F8",X"4C",X"09",X"7E",X"57",X"E6", + X"03",X"20",X"07",X"DD",X"CB",X"0B",X"46",X"28",X"01",X"14",X"DD",X"72",X"0F",X"21",X"D0",X"4D", + X"09",X"7E",X"B7",X"28",X"30",X"87",X"87",X"87",X"87",X"16",X"00",X"DD",X"CB",X"0B",X"46",X"28", + X"03",X"ED",X"44",X"15",X"5F",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"19",X"DD",X"75",X"00",X"DD", + X"74",X"01",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"29",X"7C",X"3C",X"1F",X"DD",X"77",X"04",X"29", + X"29",X"7C",X"DD",X"77",X"07",X"21",X"A8",X"4E",X"09",X"7E",X"B7",X"28",X"2F",X"56",X"1E",X"00", + X"CB",X"2A",X"CB",X"1B",X"CB",X"2A",X"CB",X"1B",X"CB",X"2A",X"CB",X"1B",X"DD",X"6E",X"02",X"DD", + X"66",X"03",X"19",X"DD",X"75",X"02",X"DD",X"74",X"03",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"29", + X"7C",X"3C",X"1F",X"DD",X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"C9",X"DD",X"35",X"0A", + X"DD",X"34",X"09",X"DD",X"36",X"0F",X"FF",X"37",X"C9",X"3A",X"6D",X"E5",X"B7",X"28",X"08",X"3A", + X"CD",X"E5",X"E6",X"07",X"3C",X"18",X"03",X"3A",X"CD",X"E5",X"47",X"87",X"80",X"87",X"87",X"87", + X"DD",X"86",X"0A",X"D6",X"18",X"4F",X"06",X"00",X"C9",X"3A",X"6D",X"E5",X"B7",X"C0",X"DD",X"7E", + X"00",X"FE",X"80",X"38",X"02",X"ED",X"44",X"FE",X"0E",X"D0",X"DD",X"7E",X"02",X"FE",X"80",X"38", + X"02",X"ED",X"44",X"FE",X"15",X"D0",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"15", + X"1A",X"E6",X"FC",X"FE",X"70",X"C0",X"DD",X"7E",X"0D",X"B7",X"C0",X"3A",X"68",X"E5",X"C6",X"04", + X"87",X"87",X"87",X"DD",X"77",X"0D",X"CD",X"5C",X"2F",X"C9",X"DD",X"7E",X"0D",X"B7",X"C8",X"DD", + X"7E",X"0F",X"FE",X"02",X"D0",X"DD",X"7E",X"0A",X"FE",X"04",X"38",X"03",X"FE",X"08",X"D8",X"DD", + X"7E",X"04",X"DD",X"6E",X"05",X"CD",X"00",X"2D",X"15",X"06",X"FC",X"0E",X"00",X"CD",X"7F",X"2E", + X"C0",X"DD",X"35",X"0D",X"C0",X"DD",X"7E",X"0F",X"FE",X"00",X"DD",X"7E",X"00",X"20",X"06",X"FE", + X"80",X"30",X"0A",X"18",X"04",X"FE",X"80",X"38",X"04",X"CD",X"0E",X"2F",X"C9",X"DD",X"34",X"0D", + X"C9",X"DD",X"7E",X"00",X"FE",X"80",X"30",X"07",X"D6",X"0E",X"30",X"01",X"AF",X"18",X"08",X"C6", + X"0E",X"30",X"04",X"DD",X"34",X"01",X"AF",X"DD",X"77",X"00",X"6F",X"DD",X"66",X"01",X"29",X"7C", + X"3C",X"1F",X"DD",X"77",X"04",X"29",X"29",X"7C",X"DD",X"77",X"07",X"C3",X"39",X"1B",X"DD",X"7E", + X"02",X"FE",X"80",X"30",X"07",X"D6",X"15",X"30",X"01",X"AF",X"18",X"08",X"C6",X"15",X"30",X"04", + X"DD",X"34",X"03",X"AF",X"DD",X"77",X"02",X"6F",X"DD",X"66",X"03",X"29",X"7C",X"3C",X"1F",X"DD", + X"77",X"05",X"29",X"29",X"7C",X"DD",X"77",X"06",X"C3",X"39",X"1B",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3A",X"E9",X"E4",X"32",X"EA",X"E4",X"DD",X"21",X"58",X"E4",X"FD",X"21",X"EB",X"E4",X"DD",X"7E", + X"10",X"B7",X"28",X"1C",X"DD",X"6E",X"04",X"DD",X"66",X"05",X"22",X"EF",X"E4",X"DD",X"7E",X"07", + X"32",X"F2",X"E4",X"CD",X"FD",X"1D",X"47",X"DD",X"7E",X"10",X"B7",X"28",X"03",X"DD",X"70",X"0F", + X"11",X"18",X"00",X"DD",X"19",X"21",X"EA",X"E4",X"35",X"20",X"D3",X"3A",X"E9",X"E4",X"32",X"EA", + X"E4",X"DD",X"21",X"58",X"E4",X"DD",X"7E",X"04",X"DD",X"6E",X"05",X"2C",X"2C",X"CD",X"D5",X"62", + X"7E",X"E6",X"0D",X"FE",X"0D",X"28",X"0A",X"21",X"01",X"E5",X"7E",X"FE",X"39",X"D0",X"36",X"00", + X"C9",X"11",X"18",X"00",X"DD",X"19",X"21",X"EA",X"E4",X"35",X"20",X"D9",X"21",X"01",X"E5",X"7E", + X"FE",X"38",X"30",X"02",X"34",X"C9",X"C0",X"34",X"3E",X"00",X"32",X"9D",X"E5",X"21",X"B5",X"E5", + X"7E",X"BE",X"28",X"FD",X"CD",X"8D",X"32",X"21",X"29",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11", + X"2A",X"D7",X"01",X"2E",X"00",X"ED",X"B0",X"21",X"A9",X"D7",X"36",X"05",X"2B",X"36",X"00",X"11", + X"AA",X"D7",X"01",X"2E",X"00",X"ED",X"B0",X"21",X"29",X"D8",X"36",X"05",X"2B",X"36",X"00",X"11", + X"2A",X"D8",X"01",X"2E",X"00",X"ED",X"B0",X"0E",X"47",X"21",X"AA",X"D7",X"11",X"E5",X"1D",X"CD", + X"2D",X"30",X"3E",X"1F",X"CD",X"42",X"31",X"0E",X"01",X"CD",X"CF",X"2F",X"CD",X"03",X"32",X"3E", + X"01",X"32",X"89",X"E5",X"CD",X"89",X"06",X"CD",X"B9",X"32",X"3E",X"26",X"CD",X"42",X"31",X"3E", + X"02",X"32",X"9D",X"E5",X"C9",X"41",X"4C",X"4C",X"20",X"45",X"4E",X"45",X"4D",X"49",X"45",X"53", + X"20",X"41",X"52",X"45",X"20",X"53",X"45",X"41",X"4C",X"45",X"44",X"2E",X"00",X"3A",X"45",X"E4", + X"FD",X"BE",X"05",X"C2",X"B9",X"1E",X"FD",X"46",X"04",X"FD",X"7E",X"07",X"21",X"47",X"E4",X"BE", + X"38",X"05",X"20",X"54",X"3E",X"FF",X"C9",X"3A",X"44",X"E4",X"B8",X"20",X"03",X"3E",X"00",X"C9", + X"04",X"78",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"28",X"E9",X"7E",X"E6", + X"F8",X"FE",X"10",X"28",X"E2",X"24",X"7E",X"25",X"E6",X"F8",X"FE",X"10",X"28",X"D9",X"FD",X"7E", + X"05",X"FE",X"1D",X"30",X"D2",X"7E",X"E6",X"F8",X"FE",X"08",X"28",X"6D",X"24",X"7E",X"E6",X"F8", + X"FE",X"08",X"28",X"65",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"BC",X"1A",X"FE",X"04",X"28",X"B7", + X"E6",X"F8",X"FE",X"08",X"28",X"B1",X"18",X"51",X"3A",X"44",X"E4",X"B8",X"20",X"03",X"3E",X"01", + X"C9",X"05",X"78",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"E6",X"FC",X"FE",X"18",X"28",X"E9",X"7E", + X"E6",X"F8",X"FE",X"10",X"28",X"E2",X"24",X"7E",X"25",X"E6",X"F8",X"FE",X"10",X"28",X"D9",X"FD", + X"7E",X"05",X"FE",X"1D",X"30",X"D2",X"7E",X"E6",X"F8",X"FE",X"08",X"28",X"1C",X"24",X"7E",X"E6", + X"F8",X"FE",X"08",X"28",X"14",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"BC",X"1A",X"FE",X"04",X"28", + X"B7",X"E6",X"F8",X"FE",X"08",X"28",X"B1",X"18",X"00",X"3E",X"FF",X"32",X"ED",X"E4",X"32",X"EE", + X"E4",X"FD",X"7E",X"04",X"32",X"EB",X"E4",X"32",X"EC",X"E4",X"CD",X"E0",X"1E",X"CD",X"2B",X"1F", + X"CD",X"77",X"1F",X"CD",X"96",X"1F",X"CD",X"B9",X"1F",X"CD",X"F1",X"1F",X"3A",X"ED",X"E4",X"C9", + X"3A",X"EB",X"E4",X"B7",X"28",X"44",X"3D",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8",X"0E", + X"08",X"CD",X"8D",X"2E",X"C8",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"28",X"25",X"7E",X"E6", + X"FC",X"FE",X"18",X"28",X"1E",X"FD",X"7E",X"05",X"FE",X"1D",X"30",X"17",X"1A",X"E6",X"F8",X"FE", + X"10",X"28",X"10",X"1A",X"FE",X"04",X"28",X"0B",X"E6",X"F8",X"FE",X"08",X"28",X"05",X"21",X"EB", + X"E4",X"35",X"C9",X"21",X"EB",X"E4",X"35",X"7E",X"18",X"B9",X"C9",X"3A",X"EC",X"E4",X"FE",X"17", + X"30",X"44",X"3C",X"FD",X"6E",X"05",X"CD",X"00",X"2D",X"06",X"F8",X"0E",X"08",X"CD",X"8D",X"2E", + X"C8",X"06",X"F8",X"0E",X"10",X"CD",X"8D",X"2E",X"28",X"25",X"7E",X"E6",X"FC",X"FE",X"18",X"28", + X"1E",X"FD",X"7E",X"05",X"FE",X"1D",X"30",X"17",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"10",X"1A", + X"FE",X"04",X"28",X"0B",X"E6",X"F8",X"FE",X"08",X"28",X"05",X"21",X"EC",X"E4",X"34",X"C9",X"21", + X"EC",X"E4",X"34",X"7E",X"18",X"B8",X"C9",X"FD",X"7E",X"04",X"CD",X"2A",X"20",X"FD",X"BE",X"05", + X"C8",X"32",X"F3",X"E4",X"FD",X"4E",X"04",X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"BE",X"D0",X"77", + X"3E",X"02",X"32",X"ED",X"E4",X"C9",X"FD",X"7E",X"04",X"CD",X"B6",X"20",X"FD",X"BE",X"05",X"C8", + X"FD",X"4E",X"04",X"32",X"F4",X"E4",X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"47",X"78",X"18",X"00", + X"BE",X"D0",X"77",X"3E",X"03",X"32",X"ED",X"E4",X"C9",X"21",X"EB",X"E4",X"7E",X"FD",X"BE",X"04", + X"30",X"15",X"CD",X"2A",X"20",X"CD",X"D8",X"1F",X"3A",X"EB",X"E4",X"CD",X"B6",X"20",X"CD",X"D8", + X"1F",X"21",X"EB",X"E4",X"34",X"18",X"E5",X"C9",X"FD",X"BE",X"05",X"C8",X"21",X"EB",X"E4",X"4E", + X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"BE",X"D0",X"32",X"EE",X"E4",X"3E",X"01",X"32",X"ED",X"E4", + X"C9",X"21",X"EC",X"E4",X"FD",X"7E",X"04",X"BE",X"30",X"16",X"7E",X"CD",X"2A",X"20",X"CD",X"11", + X"20",X"3A",X"EC",X"E4",X"CD",X"B6",X"20",X"CD",X"11",X"20",X"21",X"EC",X"E4",X"35",X"18",X"E4", + X"C9",X"FD",X"BE",X"05",X"C8",X"21",X"EC",X"E4",X"4E",X"CD",X"3D",X"21",X"21",X"EE",X"E4",X"BE", + X"D0",X"32",X"EE",X"E4",X"3E",X"00",X"32",X"ED",X"E4",X"C9",X"47",X"FD",X"4E",X"05",X"79",X"FE", + X"1D",X"30",X"52",X"61",X"78",X"07",X"07",X"07",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19", + X"E5",X"11",X"80",X"01",X"19",X"D1",X"EB",X"1A",X"FE",X"04",X"28",X"3A",X"E6",X"F8",X"FE",X"08", + X"28",X"34",X"0C",X"1A",X"24",X"24",X"15",X"EB",X"E6",X"FC",X"FE",X"00",X"28",X"25",X"3A",X"44", + X"E4",X"B8",X"30",X"0D",X"2D",X"2D",X"2D",X"2D",X"1D",X"1D",X"1D",X"1D",X"CD",X"88",X"20",X"18", + X"12",X"20",X"05",X"CD",X"AD",X"20",X"18",X"0B",X"2C",X"2C",X"2C",X"2C",X"1C",X"1C",X"1C",X"1C", + X"CD",X"88",X"20",X"18",X"A9",X"C9",X"79",X"C9",X"7E",X"E6",X"FC",X"FE",X"18",X"28",X"1E",X"7E", + X"E6",X"F8",X"FE",X"08",X"C8",X"24",X"7E",X"E6",X"F8",X"FE",X"08",X"C8",X"1A",X"E6",X"F8",X"FE", + X"10",X"28",X"0A",X"1A",X"FE",X"04",X"28",X"05",X"E6",X"F8",X"FE",X"08",X"C0",X"21",X"45",X"E4", + X"79",X"BE",X"D8",X"F1",X"79",X"C9",X"47",X"FD",X"4E",X"05",X"79",X"FE",X"01",X"28",X"50",X"61", + X"78",X"07",X"07",X"07",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19",X"E5",X"11",X"80",X"01", + X"19",X"D1",X"EB",X"7E",X"E6",X"F8",X"FE",X"10",X"28",X"09",X"24",X"7E",X"25",X"E6",X"F8",X"FE", + X"10",X"79",X"C0",X"0D",X"15",X"15",X"24",X"EB",X"3A",X"44",X"E4",X"B8",X"30",X"0D",X"2D",X"2D", + X"2D",X"2D",X"1D",X"1D",X"1D",X"1D",X"CD",X"10",X"21",X"18",X"12",X"20",X"05",X"CD",X"35",X"21", + X"18",X"0B",X"2C",X"2C",X"2C",X"2C",X"1C",X"1C",X"1C",X"1C",X"CD",X"10",X"21",X"18",X"AB",X"C9", + X"7E",X"E6",X"FC",X"FE",X"18",X"28",X"1E",X"7E",X"E6",X"F8",X"FE",X"08",X"C8",X"24",X"7E",X"E6", + X"F8",X"FE",X"08",X"C8",X"1A",X"E6",X"F8",X"FE",X"10",X"28",X"0A",X"1A",X"FE",X"04",X"28",X"05", + X"E6",X"F8",X"FE",X"08",X"C0",X"3A",X"45",X"E4",X"B9",X"D8",X"F1",X"79",X"C9",X"47",X"78",X"18", + X"14",X"2A",X"44",X"E4",X"94",X"30",X"02",X"ED",X"44",X"87",X"87",X"87",X"47",X"79",X"95",X"30", + X"02",X"ED",X"44",X"80",X"C9",X"21",X"45",X"E4",X"BE",X"20",X"08",X"79",X"FD",X"96",X"04",X"D0", + X"ED",X"44",X"C9",X"78",X"96",X"30",X"05",X"ED",X"44",X"C6",X"64",X"C9",X"C6",X"C8",X"C9",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"21",X"0E",X"E5",X"7E",X"B7",X"28",X"02",X"35",X"C9",X"34",X"CD",X"BE",X"24",X"21",X"68",X"E5", + X"35",X"20",X"02",X"36",X"17",X"DD",X"21",X"18",X"E5",X"3E",X"14",X"32",X"88",X"E5",X"DD",X"7E", + X"00",X"B7",X"28",X"39",X"DD",X"35",X"00",X"20",X"06",X"DD",X"36",X"01",X"00",X"18",X"2E",X"DD", + X"7E",X"00",X"FE",X"10",X"20",X"04",X"DD",X"36",X"01",X"F4",X"30",X"21",X"FE",X"0F",X"20",X"12", + X"DD",X"7E",X"02",X"DD",X"6E",X"03",X"CD",X"00",X"2D",X"EB",X"CD",X"19",X"30",X"CD",X"69",X"24", + X"18",X"0B",X"CB",X"3F",X"CB",X"3F",X"47",X"3E",X"F7",X"90",X"DD",X"77",X"01",X"01",X"04",X"00", + X"DD",X"09",X"21",X"88",X"E5",X"35",X"20",X"B6",X"C9",X"3A",X"44",X"E4",X"DD",X"BE",X"02",X"20", + X"17",X"DD",X"7E",X"03",X"21",X"45",X"E4",X"96",X"38",X"0E",X"FE",X"03",X"30",X"0A",X"3E",X"00", + X"32",X"48",X"E4",X"AF",X"32",X"50",X"E4",X"C9",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"32", + X"89",X"E5",X"FD",X"7E",X"04",X"DD",X"BE",X"02",X"20",X"18",X"DD",X"7E",X"03",X"FD",X"96",X"05", + X"38",X"10",X"FE",X"03",X"30",X"0C",X"FD",X"36",X"0C",X"FF",X"FD",X"36",X"09",X"2A",X"FD",X"36", + X"0E",X"3C",X"11",X"18",X"00",X"FD",X"19",X"21",X"89",X"E5",X"35",X"20",X"D5",X"C9",X"3A",X"E9", + X"E4",X"32",X"E8",X"E4",X"DD",X"21",X"58",X"E4",X"21",X"6D",X"E5",X"36",X"00",X"3A",X"02",X"E5", + X"B7",X"28",X"08",X"3A",X"E8",X"E4",X"FE",X"01",X"20",X"01",X"34",X"DD",X"7E",X"0E",X"B7",X"28", + X"5B",X"DD",X"35",X"09",X"20",X"25",X"3A",X"6D",X"E5",X"B7",X"28",X"0A",X"AF",X"32",X"02",X"E5", + X"21",X"E9",X"E4",X"35",X"18",X"15",X"DD",X"36",X"09",X"03",X"DD",X"7E",X"0A",X"FE",X"FF",X"20", + X"06",X"DD",X"36",X"0A",X"0C",X"18",X"04",X"DD",X"36",X"0A",X"FF",X"DD",X"35",X"0E",X"20",X"24", + X"FD",X"21",X"40",X"E4",X"FD",X"7E",X"04",X"DD",X"BE",X"04",X"20",X"10",X"FD",X"7E",X"05",X"FE", + X"01",X"38",X"09",X"FE",X"04",X"30",X"05",X"DD",X"34",X"0E",X"18",X"10",X"DD",X"36",X"0C",X"00", + X"DD",X"36",X"0A",X"0C",X"DD",X"7E",X"0E",X"FE",X"30",X"CC",X"48",X"25",X"11",X"18",X"00",X"DD", + X"19",X"21",X"E8",X"E4",X"35",X"20",X"81",X"C9",X"3A",X"6D",X"E5",X"B7",X"20",X"0D",X"3E",X"01", + X"32",X"FF",X"E4",X"01",X"00",X"01",X"CD",X"DB",X"2F",X"18",X"13",X"DD",X"7E",X"04",X"DD",X"6E", + X"05",X"CD",X"00",X"2D",X"15",X"15",X"1A",X"E6",X"FC",X"FE",X"60",X"CC",X"83",X"2F",X"3E",X"04", + X"CD",X"42",X"31",X"DD",X"7E",X"0D",X"B7",X"28",X"04",X"21",X"FC",X"E4",X"35",X"DD",X"36",X"0A", + X"FF",X"11",X"10",X"D1",X"3A",X"68",X"E5",X"87",X"87",X"6F",X"26",X"00",X"19",X"EB",X"06",X"F8", + X"0E",X"08",X"CD",X"71",X"2E",X"EB",X"20",X"0A",X"21",X"68",X"E5",X"35",X"20",X"02",X"36",X"17", + X"18",X"E2",X"3A",X"68",X"E5",X"DD",X"77",X"01",X"DD",X"77",X"04",X"87",X"87",X"87",X"DD",X"77", + X"07",X"AF",X"DD",X"77",X"00",X"DD",X"77",X"02",X"DD",X"77",X"0D",X"3C",X"DD",X"77",X"03",X"DD", + X"77",X"05",X"DD",X"36",X"06",X"08",X"21",X"68",X"E5",X"35",X"20",X"02",X"36",X"17",X"C9",X"3E", + X"01",X"32",X"A7",X"E5",X"21",X"22",X"D2",X"CD",X"A1",X"29",X"3E",X"0E",X"CD",X"3E",X"30",X"21", + X"DE",X"D3",X"11",X"E9",X"26",X"CD",X"2D",X"30",X"21",X"23",X"D2",X"16",X"CB",X"CD",X"DF",X"29", + X"3E",X"1C",X"CD",X"3E",X"30",X"21",X"23",X"D2",X"16",X"CC",X"CD",X"DF",X"29",X"3E",X"1C",X"CD", + X"3E",X"30",X"21",X"23",X"D2",X"16",X"CD",X"CD",X"DF",X"29",X"3E",X"1C",X"CD",X"3E",X"30",X"7A", + X"32",X"6B",X"E5",X"21",X"40",X"E4",X"11",X"41",X"E4",X"01",X"28",X"01",X"36",X"00",X"ED",X"B0", + X"3E",X"01",X"32",X"CD",X"E5",X"32",X"4B",X"E4",X"32",X"49",X"E4",X"3E",X"16",X"32",X"41",X"E4", + X"3E",X"0C",X"32",X"43",X"E4",X"3E",X"00",X"32",X"4A",X"E4",X"32",X"46",X"E4",X"3E",X"1E",X"32", + X"53",X"E4",X"16",X"18",X"1E",X"0C",X"3E",X"01",X"DD",X"21",X"58",X"E4",X"06",X"05",X"DD",X"77", + X"0B",X"DD",X"77",X"09",X"DD",X"72",X"01",X"DD",X"73",X"03",X"DD",X"36",X"0A",X"00",X"DD",X"36", + X"06",X"00",X"C5",X"01",X"18",X"00",X"DD",X"09",X"C1",X"14",X"10",X"E2",X"21",X"80",X"00",X"DB", + X"04",X"CB",X"47",X"20",X"02",X"2D",X"2D",X"22",X"E3",X"E5",X"CD",X"D7",X"63",X"3E",X"05",X"32", + X"E9",X"E4",X"3E",X"03",X"32",X"6A",X"E5",X"3E",X"01",X"32",X"9D",X"E5",X"3E",X"30",X"32",X"89", + X"E5",X"21",X"6B",X"E5",X"34",X"7E",X"FE",X"D0",X"38",X"02",X"36",X"CD",X"56",X"21",X"23",X"D2", + X"CD",X"DF",X"29",X"3E",X"08",X"CD",X"3E",X"30",X"21",X"89",X"E5",X"35",X"20",X"E3",X"3E",X"00", + X"32",X"9D",X"E5",X"3E",X"00",X"32",X"6A",X"E5",X"CD",X"00",X"65",X"3A",X"DE",X"E5",X"CD",X"00", + X"5C",X"06",X"03",X"21",X"DE",X"E5",X"7E",X"B7",X"28",X"05",X"36",X"00",X"04",X"18",X"01",X"34", + X"78",X"32",X"8E",X"E5",X"AF",X"32",X"B8",X"E5",X"32",X"8F",X"E5",X"67",X"6F",X"22",X"91",X"E5", + X"22",X"92",X"E5",X"CD",X"5E",X"5F",X"C3",X"97",X"5D",X"06",X"54",X"4D",X"00",X"3E",X"13",X"CD", + X"42",X"31",X"3E",X"01",X"32",X"A9",X"E5",X"CD",X"5E",X"5F",X"21",X"00",X"52",X"CD",X"51",X"64", + X"21",X"C0",X"D0",X"DD",X"21",X"BE",X"D0",X"0E",X"1F",X"06",X"18",X"7E",X"DD",X"77",X"00",X"2C", + X"7E",X"EE",X"20",X"DD",X"77",X"01",X"2C",X"DD",X"2B",X"DD",X"2B",X"10",X"EE",X"11",X"50",X"00", + X"19",X"11",X"B0",X"00",X"DD",X"19",X"0D",X"20",X"E0",X"21",X"24",X"E0",X"11",X"23",X"E0",X"0E", + X"1F",X"06",X"0C",X"7E",X"07",X"07",X"07",X"07",X"12",X"23",X"1B",X"10",X"F6",X"C5",X"01",X"0C", + X"00",X"09",X"EB",X"01",X"24",X"00",X"09",X"EB",X"C1",X"0D",X"20",X"E5",X"FD",X"21",X"39",X"54", + X"CD",X"F0",X"29",X"3E",X"14",X"CD",X"42",X"31",X"3E",X"01",X"32",X"A6",X"E5",X"CD",X"43",X"5F", + X"3E",X"24",X"CD",X"42",X"31",X"21",X"40",X"E4",X"11",X"41",X"E4",X"01",X"28",X"01",X"36",X"00", + X"ED",X"B0",X"21",X"CD",X"E5",X"34",X"3E",X"01",X"32",X"4B",X"E4",X"32",X"49",X"E4",X"3E",X"06", + X"32",X"44",X"E4",X"3E",X"10",X"32",X"41",X"E4",X"3E",X"1D",X"32",X"43",X"E4",X"3E",X"00",X"32", + X"4A",X"E4",X"32",X"46",X"E4",X"16",X"12",X"1E",X"1F",X"3E",X"01",X"0E",X"05",X"DD",X"21",X"58", + X"E4",X"06",X"04",X"DD",X"77",X"0B",X"DD",X"77",X"09",X"DD",X"71",X"04",X"DD",X"72",X"01",X"DD", + X"73",X"03",X"DD",X"36",X"0A",X"00",X"DD",X"36",X"06",X"00",X"C5",X"01",X"18",X"00",X"DD",X"09", + X"C1",X"14",X"1C",X"10",X"DE",X"CD",X"D7",X"63",X"3E",X"04",X"32",X"E9",X"E4",X"3E",X"02",X"32", + X"6A",X"E5",X"3E",X"01",X"32",X"9D",X"E5",X"3E",X"A8",X"CD",X"3E",X"30",X"3E",X"03",X"CD",X"42", + X"31",X"0E",X"30",X"DD",X"21",X"00",X"E3",X"06",X"0B",X"DD",X"34",X"06",X"DD",X"35",X"0E",X"11", + X"10",X"00",X"DD",X"19",X"10",X"F3",X"3E",X"01",X"CD",X"3E",X"30",X"0D",X"20",X"E5",X"21",X"B6", + X"D5",X"CD",X"9A",X"31",X"21",X"B8",X"D6",X"CD",X"85",X"31",X"21",X"3C",X"D8",X"11",X"2D",X"28", + X"CD",X"2D",X"30",X"3E",X"70",X"CD",X"3E",X"30",X"3E",X"00",X"32",X"9D",X"E5",X"3E",X"00",X"32", + X"6A",X"E5",X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"C3",X"97",X"5D",X"06",X"52",X"45", + X"41",X"44",X"59",X"00",X"3E",X"13",X"CD",X"42",X"31",X"3E",X"01",X"32",X"A9",X"E5",X"CD",X"5E", + X"5F",X"21",X"00",X"E3",X"11",X"01",X"E3",X"01",X"68",X"02",X"36",X"00",X"ED",X"B0",X"21",X"00", + X"E0",X"11",X"01",X"E0",X"01",X"9F",X"02",X"36",X"00",X"ED",X"B0",X"23",X"13",X"01",X"5F",X"00", + X"36",X"01",X"ED",X"B0",X"3E",X"0A",X"32",X"D8",X"E5",X"3E",X"00",X"32",X"A6",X"E5",X"3E",X"14", + X"CD",X"42",X"31",X"CD",X"43",X"5F",X"3E",X"27",X"CD",X"42",X"31",X"06",X"00",X"0E",X"47",X"11", + X"EF",X"28",X"3E",X"01",X"CD",X"3E",X"30",X"3E",X"2E",X"80",X"47",X"30",X"F5",X"1A",X"FE",X"01", + X"20",X"07",X"13",X"1A",X"6F",X"13",X"1A",X"67",X"13",X"1A",X"77",X"FE",X"20",X"28",X"2E",X"3E", + X"17",X"CD",X"42",X"31",X"1A",X"FE",X"32",X"20",X"24",X"AF",X"32",X"CD",X"E5",X"32",X"57",X"E4", + X"3E",X"0B",X"32",X"41",X"E4",X"3E",X"0C",X"32",X"53",X"E4",X"32",X"4A",X"E4",X"3E",X"01",X"32", + X"4B",X"E4",X"32",X"49",X"E4",X"32",X"6A",X"E5",X"3E",X"01",X"32",X"9D",X"E5",X"13",X"23",X"71", + X"23",X"1A",X"B7",X"20",X"AD",X"3E",X"FF",X"CD",X"3E",X"30",X"3E",X"00",X"32",X"9D",X"E5",X"3E", + X"00",X"32",X"6A",X"E5",X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"C3",X"FA",X"26",X"01", + X"30",X"D3",X"43",X"4F",X"4E",X"47",X"52",X"41",X"54",X"55",X"4C",X"41",X"54",X"49",X"4F",X"4E", + X"53",X"21",X"20",X"20",X"20",X"20",X"01",X"1E",X"D5",X"59",X"4F",X"55",X"20",X"20",X"48",X"41", + X"56",X"45",X"20",X"20",X"44",X"4F",X"4E",X"45",X"20",X"20",X"49",X"54",X"20",X"20",X"56",X"45", + X"52",X"59",X"20",X"20",X"57",X"45",X"4C",X"4C",X"2C",X"20",X"20",X"01",X"A8",X"D6",X"48",X"41", + X"56",X"49",X"4E",X"47",X"20",X"20",X"50",X"41",X"53",X"53",X"45",X"44",X"20",X"20",X"54",X"48", + X"52",X"4F",X"55",X"47",X"48",X"20",X"20",X"01",X"2A",X"D8",X"32",X"34",X"20",X"20",X"44",X"41", + X"4E",X"47",X"45",X"52",X"4F",X"55",X"53",X"20",X"20",X"50",X"4C",X"41",X"43",X"45",X"53",X"2E", + X"20",X"20",X"20",X"20",X"01",X"A0",X"D9",X"42",X"55",X"54",X"20",X"20",X"54",X"48",X"45",X"52", + X"45",X"20",X"20",X"41",X"52",X"45",X"20",X"20",X"53",X"54",X"49",X"4C",X"4C",X"20",X"20",X"4F", + X"54",X"48",X"45",X"52",X"20",X"20",X"01",X"28",X"DB",X"45",X"4E",X"45",X"4D",X"49",X"45",X"53", + X"20",X"20",X"4F",X"4E",X"20",X"20",X"59",X"4F",X"55",X"52",X"20",X"20",X"57",X"41",X"59",X"2E", + X"00",X"16",X"88",X"1E",X"04",X"06",X"1E",X"72",X"2C",X"2C",X"14",X"14",X"14",X"14",X"10",X"F7", + X"7A",X"C6",X"89",X"57",X"01",X"44",X"00",X"09",X"1D",X"20",X"EA",X"C9",X"1E",X"04",X"7E",X"E6", + X"F0",X"47",X"7A",X"E6",X"0F",X"B0",X"77",X"23",X"06",X"0E",X"72",X"23",X"10",X"FC",X"7E",X"E6", + X"0F",X"47",X"7A",X"E6",X"F0",X"B0",X"77",X"01",X"09",X"00",X"09",X"1D",X"20",X"E0",X"C9",X"1E", + X"04",X"06",X"1E",X"72",X"2C",X"2C",X"10",X"FB",X"01",X"44",X"00",X"09",X"1D",X"20",X"F2",X"C9", + X"DD",X"21",X"00",X"E3",X"FD",X"7E",X"00",X"B7",X"C8",X"DD",X"77",X"04",X"DD",X"77",X"0C",X"FD", + X"7E",X"01",X"47",X"E6",X"1F",X"DD",X"77",X"00",X"DD",X"77",X"08",X"78",X"E6",X"C0",X"DD",X"77", + X"05",X"EE",X"40",X"DD",X"77",X"0D",X"FD",X"5E",X"02",X"16",X"00",X"2A",X"E3",X"E5",X"19",X"DD", + X"75",X"02",X"DD",X"75",X"0A",X"DD",X"74",X"03",X"DD",X"74",X"0B",X"FD",X"5E",X"03",X"DD",X"73", + X"06",X"DD",X"36",X"07",X"01",X"3E",X"F0",X"93",X"DD",X"77",X"0E",X"DD",X"36",X"0F",X"00",X"11", + X"04",X"00",X"FD",X"19",X"11",X"10",X"00",X"DD",X"19",X"18",X"A9",X"3A",X"6A",X"E5",X"FE",X"01", + X"20",X"05",X"CD",X"5B",X"2A",X"18",X"03",X"CD",X"D4",X"2A",X"C9",X"3A",X"53",X"E4",X"FE",X"0C", + X"20",X"2E",X"11",X"15",X"00",X"2A",X"42",X"E4",X"19",X"22",X"42",X"E4",X"7C",X"2A",X"57",X"E4", + X"26",X"00",X"01",X"9B",X"2B",X"09",X"BE",X"20",X"15",X"23",X"7E",X"32",X"4B",X"E4",X"3E",X"00", + X"32",X"53",X"E4",X"32",X"4A",X"E4",X"3A",X"57",X"E4",X"C6",X"02",X"32",X"57",X"E4",X"18",X"43", + X"3A",X"4B",X"E4",X"FE",X"01",X"20",X"05",X"11",X"F2",X"FF",X"18",X"03",X"11",X"0E",X"00",X"2A", + X"40",X"E4",X"19",X"22",X"40",X"E4",X"7C",X"2A",X"57",X"E4",X"26",X"00",X"01",X"9B",X"2B",X"09", + X"BE",X"20",X"15",X"23",X"7E",X"32",X"4B",X"E4",X"3E",X"0C",X"32",X"53",X"E4",X"32",X"4A",X"E4", + X"3A",X"57",X"E4",X"C6",X"02",X"32",X"57",X"E4",X"3A",X"53",X"E4",X"FE",X"0C",X"28",X"04",X"47", + X"CD",X"F1",X"10",X"C9",X"3A",X"6A",X"E5",X"FE",X"02",X"20",X"65",X"DD",X"21",X"40",X"E4",X"0E", + X"05",X"DD",X"7E",X"0B",X"FE",X"01",X"20",X"1C",X"11",X"F4",X"FF",X"DD",X"6E",X"00",X"DD",X"66", + X"01",X"19",X"DD",X"75",X"00",X"DD",X"74",X"01",X"7C",X"DD",X"BE",X"04",X"20",X"04",X"DD",X"36", + X"0B",X"00",X"18",X"10",X"11",X"0C",X"00",X"DD",X"6E",X"00",X"DD",X"66",X"01",X"19",X"DD",X"75", + X"00",X"DD",X"74",X"01",X"11",X"F9",X"FF",X"DD",X"6E",X"02",X"DD",X"66",X"03",X"19",X"DD",X"75", + X"02",X"DD",X"74",X"03",X"C5",X"DD",X"46",X"06",X"79",X"FE",X"05",X"20",X"05",X"CD",X"F1",X"10", + X"18",X"03",X"CD",X"2E",X"1A",X"C1",X"11",X"18",X"00",X"DD",X"19",X"0D",X"20",X"A3",X"18",X"5A", + X"3A",X"6A",X"E5",X"FE",X"03",X"20",X"53",X"DD",X"21",X"40",X"E4",X"0E",X"06",X"11",X"EC",X"FF", + X"DD",X"6E",X"00",X"DD",X"66",X"01",X"19",X"DD",X"75",X"00",X"DD",X"74",X"01",X"7C",X"FE",X"FE", + X"20",X"04",X"DD",X"36",X"0A",X"FF",X"C5",X"DD",X"46",X"06",X"79",X"FE",X"06",X"20",X"05",X"CD", + X"F1",X"10",X"18",X"03",X"CD",X"2E",X"1A",X"C1",X"11",X"18",X"00",X"DD",X"19",X"0D",X"20",X"CD", + X"3A",X"53",X"E4",X"3C",X"32",X"53",X"E4",X"FE",X"24",X"20",X"0F",X"3E",X"00",X"32",X"53",X"E4", + X"3A",X"57",X"E4",X"3C",X"32",X"57",X"E4",X"CD",X"9D",X"65",X"C9",X"03",X"01",X"06",X"00",X"07", + X"00",X"08",X"00",X"0A",X"00",X"09",X"00",X"0D",X"00",X"0D",X"00",X"10",X"00",X"0F",X"00",X"13", + X"00",X"11",X"00",X"19",X"00",X"32",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"65",X"07",X"07",X"07",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19",X"E5",X"11",X"80",X"01", + X"19",X"D1",X"EB",X"7E",X"C9",X"67",X"FD",X"21",X"58",X"E4",X"11",X"18",X"00",X"3A",X"E9",X"E4", + X"47",X"FD",X"7E",X"06",X"94",X"FE",X"12",X"30",X"6D",X"FE",X"08",X"38",X"69",X"FD",X"7E",X"07", + X"95",X"30",X"02",X"ED",X"44",X"FE",X"06",X"30",X"5D",X"FD",X"7E",X"0C",X"B7",X"20",X"28",X"FD", + X"7E",X"16",X"B7",X"20",X"22",X"3A",X"4F",X"E4",X"B7",X"28",X"15",X"FD",X"7E",X"0F",X"FE",X"FF", + X"28",X"0E",X"21",X"52",X"E4",X"7E",X"B7",X"20",X"07",X"36",X"01",X"3E",X"0B",X"CD",X"73",X"30", + X"3E",X"06",X"32",X"09",X"E5",X"18",X"2D",X"21",X"0B",X"E5",X"3A",X"44",X"E4",X"BE",X"28",X"24", + X"7F",X"77",X"21",X"0A",X"E5",X"3A",X"4B",X"E4",X"BE",X"20",X"10",X"21",X"0C",X"E5",X"34",X"7E", + X"FE",X"03",X"38",X"05",X"3E",X"13",X"32",X"06",X"E5",X"18",X"09",X"3A",X"4B",X"E4",X"77",X"3E", + X"01",X"32",X"0C",X"E5",X"37",X"C9",X"11",X"18",X"00",X"FD",X"19",X"10",X"84",X"C9",X"C6",X"13", + X"18",X"00",X"67",X"DD",X"E5",X"C1",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"47",X"FD",X"E5", + X"D1",X"7B",X"B9",X"28",X"32",X"FD",X"7E",X"0E",X"B7",X"20",X"2C",X"FD",X"7E",X"06",X"BC",X"30", + X"26",X"C6",X"12",X"BC",X"38",X"21",X"FD",X"7E",X"07",X"95",X"30",X"02",X"ED",X"44",X"FE",X"06", + X"30",X"15",X"DD",X"7E",X"0F",X"FD",X"BE",X"0F",X"20",X"04",X"37",X"C9",X"18",X"09",X"AF",X"FD", + X"96",X"0C",X"D8",X"DD",X"96",X"0C",X"D8",X"11",X"18",X"00",X"FD",X"19",X"10",X"C0",X"C9",X"67", + X"DD",X"E5",X"C1",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"47",X"FD",X"E5",X"D1",X"7B",X"91", + X"5F",X"28",X"26",X"FD",X"7E",X"0E",X"B7",X"20",X"20",X"FD",X"7E",X"07",X"C6",X"07",X"BC",X"38", + X"18",X"D6",X"08",X"BC",X"30",X"13",X"3C",X"BC",X"20",X"04",X"CB",X"7B",X"20",X"0B",X"FD",X"7E", + X"06",X"95",X"30",X"02",X"ED",X"44",X"FE",X"0F",X"D8",X"11",X"18",X"00",X"FD",X"19",X"10",X"CB", + X"C9",X"C6",X"08",X"67",X"DD",X"E5",X"C1",X"FD",X"21",X"58",X"E4",X"3A",X"E9",X"E4",X"47",X"FD", + X"E5",X"D1",X"7B",X"91",X"5F",X"28",X"22",X"FD",X"7E",X"0E",X"B7",X"20",X"1C",X"FD",X"7E",X"07", + X"BC",X"30",X"16",X"C6",X"08",X"BC",X"38",X"11",X"20",X"04",X"CB",X"7B",X"20",X"0B",X"FD",X"7E", + X"06",X"95",X"30",X"02",X"ED",X"44",X"FE",X"0F",X"D8",X"11",X"18",X"00",X"FD",X"19",X"10",X"CF", + X"C9",X"1A",X"A0",X"B9",X"C8",X"E5",X"21",X"80",X"00",X"19",X"7E",X"E1",X"A0",X"B9",X"C9",X"1A", + X"A0",X"B9",X"C0",X"E5",X"21",X"80",X"00",X"19",X"7E",X"E1",X"A0",X"B9",X"C9",X"7E",X"A0",X"B9", + X"C8",X"24",X"7E",X"25",X"A0",X"B9",X"C9",X"7E",X"A0",X"B9",X"C0",X"24",X"7E",X"25",X"A0",X"B9", + X"C9",X"7E",X"B9",X"C8",X"24",X"7E",X"25",X"B9",X"C9",X"1A",X"B9",X"C0",X"E5",X"21",X"80",X"00", + X"19",X"7E",X"E1",X"B9",X"C9",X"C6",X"05",X"18",X"00",X"4F",X"3A",X"47",X"E4",X"B9",X"D0",X"C6", + X"04",X"B9",X"D8",X"3A",X"46",X"E4",X"95",X"30",X"02",X"ED",X"44",X"FE",X"0A",X"D0",X"AF",X"32", + X"50",X"E4",X"C9",X"4F",X"3A",X"46",X"E4",X"C6",X"0E",X"B9",X"D8",X"D6",X"1D",X"30",X"01",X"AF", + X"B9",X"D0",X"3A",X"47",X"E4",X"95",X"30",X"02",X"ED",X"44",X"FE",X"03",X"D0",X"AF",X"32",X"50", + X"E4",X"C9",X"4F",X"3A",X"46",X"E4",X"91",X"30",X"02",X"ED",X"44",X"FE",X"0E",X"D0",X"3A",X"47", + X"E4",X"95",X"30",X"02",X"ED",X"44",X"FE",X"03",X"D0",X"AF",X"32",X"50",X"E4",X"C9",X"EB",X"7E", + X"C6",X"70",X"77",X"2C",X"36",X"0A",X"2C",X"7E",X"C6",X"74",X"77",X"2C",X"36",X"0A",X"01",X"80", + X"00",X"09",X"36",X"0A",X"2D",X"7E",X"C6",X"7C",X"77",X"2D",X"36",X"0A",X"2D",X"7E",X"C6",X"78", + X"77",X"ED",X"42",X"EB",X"C9",X"EB",X"7E",X"C6",X"60",X"77",X"2C",X"36",X"0A",X"2C",X"7E",X"C6", + X"64",X"77",X"2C",X"36",X"0A",X"01",X"80",X"00",X"09",X"36",X"0A",X"2D",X"7E",X"C6",X"6C",X"77", + X"2D",X"36",X"0A",X"2D",X"7E",X"C6",X"68",X"77",X"ED",X"42",X"EB",X"C9",X"EB",X"7E",X"D6",X"70", + X"77",X"2C",X"36",X"05",X"2C",X"7E",X"D6",X"74",X"77",X"2C",X"36",X"05",X"01",X"80",X"00",X"09", + X"36",X"05",X"2D",X"7E",X"D6",X"7C",X"77",X"2D",X"36",X"05",X"2D",X"7E",X"D6",X"78",X"77",X"ED", + X"42",X"EB",X"C9",X"EB",X"7E",X"D6",X"60",X"77",X"2C",X"36",X"05",X"2C",X"7E",X"D6",X"64",X"77", + X"2C",X"36",X"05",X"01",X"80",X"00",X"09",X"36",X"05",X"2D",X"7E",X"D6",X"6C",X"77",X"2D",X"36", + X"05",X"2D",X"7E",X"D6",X"68",X"77",X"ED",X"42",X"EB",X"C9",X"D5",X"07",X"07",X"07",X"CB",X"3C", + X"1F",X"6F",X"11",X"10",X"D0",X"19",X"EB",X"C5",X"CD",X"0E",X"2F",X"C1",X"D1",X"C9",X"EB",X"77", + X"23",X"23",X"77",X"01",X"80",X"00",X"09",X"77",X"2B",X"2B",X"77",X"ED",X"42",X"EB",X"C9",X"21", + X"91",X"E5",X"7E",X"47",X"81",X"27",X"77",X"38",X"36",X"18",X"17",X"21",X"93",X"E5",X"7E",X"81", + X"27",X"77",X"2B",X"7E",X"88",X"27",X"77",X"2B",X"7E",X"47",X"CE",X"00",X"27",X"77",X"38",X"1F", + X"B8",X"C8",X"4F",X"78",X"C6",X"01",X"27",X"47",X"C5",X"FE",X"05",X"20",X"0C",X"21",X"8F",X"E5", + X"34",X"3E",X"12",X"CD",X"42",X"31",X"CD",X"F7",X"31",X"C1",X"78",X"B9",X"38",X"E5",X"C9",X"21", + X"99",X"99",X"22",X"91",X"E5",X"22",X"92",X"E5",X"C9",X"D5",X"EB",X"3A",X"D8",X"E5",X"77",X"2C", + X"2C",X"77",X"01",X"80",X"00",X"09",X"77",X"2D",X"2D",X"77",X"EB",X"D1",X"C9",X"1A",X"B7",X"C8", + X"FE",X"20",X"30",X"03",X"4F",X"18",X"04",X"77",X"2C",X"71",X"2C",X"13",X"18",X"EF",X"32",X"B5", + X"E5",X"3A",X"B5",X"E5",X"A7",X"20",X"FA",X"C9",X"06",X"00",X"D6",X"0A",X"04",X"30",X"FB",X"C6", + X"0A",X"05",X"F5",X"78",X"CD",X"58",X"30",X"F1",X"C6",X"30",X"77",X"23",X"71",X"23",X"C9",X"1A", + X"F5",X"0F",X"0F",X"0F",X"0F",X"CD",X"6A",X"30",X"F1",X"13",X"E6",X"0F",X"C6",X"30",X"77",X"23", + X"71",X"23",X"C9",X"4F",X"06",X"00",X"21",X"28",X"31",X"09",X"56",X"21",X"FE",X"E4",X"5E",X"34", + X"7A",X"32",X"88",X"E5",X"B7",X"28",X"09",X"34",X"7B",X"FE",X"07",X"20",X"03",X"1E",X"00",X"34", + X"CB",X"9E",X"7B",X"32",X"89",X"E5",X"87",X"87",X"87",X"FD",X"21",X"C0",X"E3",X"5F",X"16",X"00", + X"FD",X"19",X"FD",X"36",X"00",X"11",X"FD",X"36",X"08",X"11",X"16",X"15",X"79",X"FE",X"0B",X"38", + X"02",X"16",X"03",X"3A",X"46",X"E4",X"82",X"ED",X"44",X"5F",X"16",X"00",X"2A",X"E3",X"E5",X"19", + X"FD",X"75",X"02",X"FD",X"74",X"03",X"1E",X"00",X"3A",X"88",X"E5",X"B7",X"28",X"0A",X"1C",X"FD", + X"77",X"0C",X"FD",X"75",X"0A",X"FD",X"74",X"0B",X"21",X"1B",X"31",X"09",X"7E",X"FD",X"77",X"04", + X"21",X"35",X"31",X"09",X"46",X"0E",X"00",X"CD",X"DB",X"2F",X"3A",X"47",X"E4",X"C6",X"20",X"6F", + X"26",X"00",X"29",X"FD",X"75",X"06",X"FD",X"74",X"07",X"CB",X"43",X"28",X"0A",X"01",X"F0",X"FF", + X"09",X"FD",X"75",X"0E",X"FD",X"74",X"0F",X"3A",X"89",X"E5",X"4F",X"06",X"00",X"21",X"9E",X"E5", + X"09",X"36",X"70",X"CB",X"43",X"28",X"03",X"23",X"36",X"70",X"C9",X"F8",X"F9",X"FB",X"FC",X"FA", + X"FD",X"FA",X"FD",X"E1",X"E1",X"E1",X"E1",X"E1",X"00",X"00",X"00",X"00",X"00",X"FE",X"FE",X"FF", + X"F0",X"AA",X"AB",X"F1",X"F0",X"02",X"04",X"06",X"08",X"05",X"10",X"15",X"20",X"30",X"50",X"80", + X"10",X"30",X"D5",X"57",X"FE",X"12",X"28",X"08",X"3A",X"A7",X"E5",X"B7",X"28",X"02",X"D1",X"C9", + X"7A",X"E5",X"21",X"BB",X"E5",X"5E",X"16",X"00",X"21",X"BC",X"E5",X"19",X"57",X"1C",X"7B",X"E6", + X"0F",X"32",X"BB",X"E5",X"72",X"E1",X"D1",X"C9",X"3A",X"BA",X"E5",X"21",X"BB",X"E5",X"BE",X"C8", + X"5F",X"16",X"00",X"21",X"BC",X"E5",X"19",X"3C",X"E6",X"0F",X"32",X"BA",X"E5",X"7E",X"D3",X"00", + X"F6",X"80",X"D3",X"00",X"C9",X"11",X"92",X"31",X"CD",X"2D",X"30",X"3A",X"8E",X"E5",X"CD",X"48", + X"30",X"C9",X"06",X"52",X"4F",X"55",X"4E",X"44",X"2D",X"00",X"3A",X"8E",X"E5",X"3D",X"CD",X"EC", + X"31",X"79",X"3C",X"32",X"CC",X"E5",X"0E",X"06",X"FE",X"0A",X"38",X"05",X"CD",X"48",X"30",X"18", + X"05",X"2C",X"2C",X"CD",X"6A",X"30",X"3A",X"CC",X"E5",X"FE",X"04",X"38",X"01",X"AF",X"87",X"87", + X"5F",X"16",X"00",X"E5",X"21",X"D4",X"31",X"19",X"EB",X"E1",X"CD",X"2D",X"30",X"11",X"E4",X"31", + X"CD",X"2D",X"30",X"C9",X"06",X"54",X"48",X"00",X"06",X"53",X"54",X"00",X"06",X"4E",X"44",X"00", + X"06",X"52",X"44",X"00",X"06",X"20",X"42",X"4C",X"4F",X"43",X"4B",X"00",X"0E",X"00",X"0C",X"D6", + X"03",X"30",X"FB",X"0D",X"C6",X"03",X"C9",X"0E",X"1E",X"21",X"56",X"D0",X"3A",X"8F",X"E5",X"CD", + X"6A",X"30",X"C9",X"21",X"26",X"D0",X"11",X"8A",X"E5",X"0E",X"1E",X"1A",X"E6",X"0F",X"CD",X"6A", + X"30",X"13",X"CD",X"5F",X"30",X"1A",X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"CD",X"6A",X"30",X"0E", + X"04",X"21",X"18",X"D0",X"3A",X"B8",X"E5",X"B7",X"28",X"03",X"21",X"60",X"D0",X"3A",X"AD",X"E6", + X"B7",X"28",X"26",X"E5",X"21",X"B6",X"E5",X"7E",X"B7",X"20",X"06",X"36",X"16",X"21",X"AD",X"E6", + X"35",X"3A",X"AD",X"E6",X"E1",X"1F",X"30",X"0C",X"36",X"00",X"54",X"5D",X"13",X"01",X"0B",X"00", + X"ED",X"B0",X"18",X"03",X"CD",X"82",X"32",X"18",X"03",X"CD",X"82",X"32",X"11",X"9A",X"E5",X"21", + X"91",X"E5",X"06",X"03",X"1A",X"BE",X"13",X"23",X"20",X"02",X"10",X"F8",X"D0",X"3A",X"A7",X"E5", + X"B7",X"C0",X"01",X"03",X"00",X"11",X"9A",X"E5",X"21",X"91",X"E5",X"ED",X"B0",X"0E",X"06",X"21", + X"38",X"D0",X"11",X"91",X"E5",X"06",X"03",X"CD",X"5F",X"30",X"10",X"FB",X"C9",X"11",X"B8",X"E6", + X"21",X"20",X"D7",X"01",X"40",X"00",X"ED",X"B0",X"21",X"A0",X"D7",X"01",X"40",X"00",X"ED",X"B0", + X"21",X"20",X"D8",X"01",X"40",X"00",X"ED",X"B0",X"21",X"B8",X"D8",X"01",X"0E",X"00",X"ED",X"B0", + X"21",X"38",X"D9",X"01",X"0E",X"00",X"ED",X"B0",X"C9",X"21",X"B8",X"E6",X"11",X"20",X"D7",X"01", + X"40",X"00",X"ED",X"B0",X"11",X"A0",X"D7",X"01",X"40",X"00",X"ED",X"B0",X"11",X"20",X"D8",X"01", + X"40",X"00",X"ED",X"B0",X"11",X"B8",X"D8",X"01",X"0E",X"00",X"ED",X"B0",X"11",X"38",X"D9",X"01", + X"0E",X"00",X"ED",X"B0",X"C9",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"00",X"00",X"32",X"34",X"01",X"35",X"72",X"35",X"4B",X"3C",X"62",X"36",X"CE",X"36",X"45",X"37", + X"89",X"34",X"CA",X"3C",X"A8",X"3B",X"04",X"3E",X"E2",X"35",X"59",X"3D",X"8C",X"3F",X"9B",X"39", + X"A9",X"3E",X"F9",X"38",X"CC",X"3A",X"1E",X"3F",X"2F",X"3A",X"C5",X"37",X"71",X"38",X"7D",X"40", + X"F7",X"3F",X"00",X"01",X"AE",X"E5",X"A4",X"EB",X"A9",X"CF",X"F7",X"A9",X"8D",X"CA",X"AE",X"CA", + X"F7",X"B3",X"F1",X"B9",X"C5",X"E8",X"D2",X"F7",X"BE",X"F7",X"03",X"84",X"8D",X"C5",X"8E",X"92", + X"C2",X"89",X"8D",X"D5",X"CB",X"8E",X"98",X"D2",X"99",X"9D",X"C4",X"D7",X"93",X"98",X"C7",X"04", + X"A6",X"C6",X"EE",X"04",X"B6",X"C8",X"F1",X"04",X"06",X"81",X"88",X"CF",X"07",X"A2",X"C3",X"A7", + X"D3",X"AC",X"D1",X"B7",X"C6",X"D5",X"BC",X"CF",X"0A",X"A4",X"CB",X"A9",X"CA",X"BE",X"C0",X"09", + X"BB",X"CC",X"08",X"AB",X"C3",X"D3",X"B0",X"CC",X"1F",X"00",X"01",X"A4",X"C2",X"A9",X"C1",X"E3", + X"A5",X"CA",X"F1",X"A7",X"D3",X"F6",X"AC",X"CF",X"F6",X"B0",X"95",X"C1",X"E3",X"B4",X"D3",X"F7", + X"B0",X"C6",X"E7",X"CA",X"ED",X"B9",X"EC",X"D4",X"F7",X"BE",X"F7",X"02",X"A4",X"C1",X"C3",X"90", + X"98",X"C0",X"C4",X"B0",X"C5",X"C8",X"04",X"A9",X"C5",X"ED",X"B6",X"CD",X"F1",X"03",X"84",X"8F", + X"C0",X"C4",X"85",X"8B",X"D2",X"8C",X"91",X"CE",X"87",X"93",X"D7",X"85",X"98",X"C9",X"94",X"98", + X"D5",X"94",X"9D",X"D2",X"99",X"9D",X"C7",X"06",X"A1",X"86",X"D7",X"07",X"A2",X"C2",X"A3",X"CF", + X"A5",X"D4",X"A7",X"C1",X"AB",X"C2",X"AE",X"C6",X"CB",X"B7",X"C1",X"C5",X"D7",X"BC",X"C0",X"D7", + X"09",X"BB",X"CA",X"08",X"A6",X"C3",X"A9",X"D1",X"AD",X"C3",X"0A",X"B9",X"D4",X"BE",X"C0",X"D7", + X"1F",X"00",X"01",X"A5",X"CA",X"F2",X"A6",X"E3",X"A8",X"D4",X"F7",X"AB",X"C5",X"F3",X"AF",X"E4", + X"B0",X"CA",X"F1",X"B3",X"D7",X"B5",X"CC",X"F3",X"B7",X"CC",X"D3",X"B9",X"EC",X"D3",X"F7",X"BA", + X"9D",X"CF",X"F0",X"BE",X"F7",X"04",X"AE",X"D4",X"AF",X"D5",X"B0",X"D6",X"B2",X"C4",X"E8",X"03", + X"99",X"9D",X"C2",X"D6",X"9A",X"9D",X"CE",X"D1",X"95",X"98",X"CB",X"D4",X"90",X"94",X"C9",X"CF", + X"8F",X"98",X"C3",X"8B",X"8F",X"CC",X"D1",X"86",X"8E",X"C4",X"85",X"8A",X"C9",X"D3",X"06",X"A1", + X"87",X"D7",X"07",X"A3",X"CE",X"A4",X"C2",X"A9",X"CF",X"AD",X"C1",X"B1",X"D7",X"B8",X"D0",X"BC", + X"D4",X"08",X"A8",X"C6",X"AD",X"CE",X"B2",X"D2",X"09",X"B6",X"C9",X"0A",X"B3",X"D7",X"BE",X"C0", + X"D7",X"1F",X"00",X"01",X"A4",X"C0",X"D0",X"F7",X"A6",X"E1",X"CF",X"F0",X"A8",X"C1",X"C2",X"CE", + X"CF",X"A9",X"D2",X"F6",X"AA",X"C2",X"C3",X"CD",X"CE",X"AC",X"C3",X"C4",X"CC",X"CD",X"AE",X"C3", + X"E5",X"CB",X"ED",X"AF",X"E5",X"CB",X"F7",X"B0",X"C6",X"CA",X"B2",X"C6",X"EA",X"B4",X"C1",X"E3", + X"CD",X"F3",X"B9",X"C5",X"F7",X"BE",X"F7",X"03",X"A4",X"8E",X"D3",X"AF",X"93",X"C2",X"AF",X"95", + X"CE",X"B2",X"95",X"C8",X"B4",X"9A",X"C4",X"D1",X"B4",X"9D",X"C0",X"B9",X"9D",X"CB",X"D5",X"06", + X"A1",X"91",X"C8",X"07",X"A2",X"D1",X"A7",X"D6",X"AC",X"CB",X"AD",X"C0",X"B2",X"C3",X"D3",X"B7", + X"C8",X"08",X"AC",X"C1",X"B1",X"C4",X"B6",X"CE",X"09",X"BB",X"CE",X"0A",X"A9",X"D2",X"D6",X"BE", + X"D7",X"1F",X"01",X"01",X"A6",X"98",X"C9",X"CE",X"A8",X"9A",X"C1",X"C4",X"D3",X"D6",X"A8",X"C2", + X"C3",X"D4",X"D5",X"AF",X"C2",X"C3",X"D4",X"D5",X"B2",X"CB",X"CC",X"B9",X"C1",X"E5",X"C9",X"CA", + X"CD",X"CE",X"D2",X"F6",X"BB",X"9D",X"C6",X"D1",X"BE",X"F7",X"02",X"B9",X"CB",X"CC",X"04",X"A8", + X"C6",X"C7",X"D0",X"D1",X"B3",X"C6",X"E8",X"CF",X"F1",X"03",X"A6",X"8A",X"C8",X"CF",X"A8",X"94", + X"C5",X"D2",X"B2",X"98",X"CA",X"CD",X"B6",X"9D",X"C8",X"CF",X"A8",X"9D",X"C0",X"D7",X"06",X"A1", + X"91",X"CA",X"CD",X"07",X"A6",X"C2",X"D5",X"AD",X"C3",X"D4",X"B7",X"C2",X"CB",X"D5",X"08",X"A5", + X"C4",X"D3",X"B6",X"CC",X"BB",X"C7",X"09",X"BB",X"CC",X"0A",X"A6",X"CE",X"BE",X"C5",X"BE",X"D2", + X"0D",X"8E",X"C2",X"C3",X"D4",X"D5",X"98",X"C2",X"C3",X"D4",X"D5",X"98",X"CB",X"CC",X"91",X"CA", + X"ED",X"1F",X"00",X"01",X"A4",X"C0",X"C2",X"C4",X"C6",X"C8",X"CA",X"CC",X"CE",X"D0",X"D2",X"D4", + X"A9",X"8B",X"C0",X"C2",X"C4",X"C6",X"C8",X"CA",X"CC",X"CE",X"D0",X"D2",X"D4",X"AF",X"C0",X"C2", + X"C4",X"C6",X"C8",X"CA",X"CC",X"CE",X"D0",X"D2",X"D4",X"A4",X"93",X"D6",X"B4",X"C1",X"F6",X"BE", + X"F7",X"02",X"B9",X"C1",X"F6",X"03",X"A4",X"93",X"C1",X"C3",X"C5",X"C7",X"C9",X"CB",X"CD",X"CF", + X"D1",X"D3",X"D5",X"B4",X"9D",X"C0",X"06",X"A1",X"9D",X"D7",X"07",X"A7",X"C0",X"C8",X"D0",X"AD", + X"C4",X"CC",X"D4",X"B2",X"C0",X"B7",X"C6",X"CA",X"CE",X"BC",X"C1",X"D6",X"08",X"A1",X"CA",X"D3", + X"B6",X"C8",X"D0",X"09",X"BB",X"C8",X"0A",X"A4",X"C0",X"A9",X"C0",X"AF",X"C0",X"1F",X"00",X"01", + X"A5",X"C0",X"E2",X"C6",X"EB",X"CE",X"F0",X"AD",X"91",X"D3",X"D6",X"AD",X"D7",X"AF",X"C1",X"EA", + X"B0",X"D4",X"B0",X"94",X"D5",X"B4",X"C0",X"E3",X"CA",X"EC",X"B5",X"D3",X"F6",X"B9",X"C0",X"E6", + X"BE",X"F7",X"04",X"A2",X"C4",X"C5",X"A5",X"D2",X"F7",X"A9",X"C4",X"E8",X"B6",X"CE",X"F0",X"03", + X"A5",X"8A",X"C3",X"A5",X"9D",X"D1",X"A7",X"95",X"C9",X"AF",X"93",X"C0",X"B2",X"9D",X"D7",X"B4", + X"98",X"C4",X"CD",X"B9",X"9D",X"C7",X"06",X"A1",X"86",X"CC",X"07",X"A3",X"C0",X"C6",X"D0",X"AD", + X"C6",X"CA",X"AE",X"D4",X"B1",X"CF",X"B3",X"D3",X"D6",X"B7",X"C1",X"BC",X"C1",X"CD",X"D6",X"08", + X"A2",X"C1",X"C9",X"CF",X"AC",X"C3",X"09",X"BB",X"CB",X"0A",X"A5",X"CA",X"B5",X"D4",X"BE",X"C0", + X"0D",X"8F",X"D4",X"D5",X"1F",X"00",X"01",X"A4",X"C1",X"E8",X"A6",X"CA",X"EE",X"D2",X"F7",X"A8", + X"8A",X"CE",X"A9",X"C2",X"E7",X"AB",X"CE",X"F7",X"AD",X"92",X"D6",X"B1",X"D2",X"F4",X"B0",X"95", + X"C2",X"E4",X"C7",X"B2",X"C6",X"B4",X"C5",X"C6",X"B7",X"CE",X"F2",X"B6",X"D6",X"D7",X"B9",X"C5", + X"BE",X"F7",X"02",X"AB",X"9A",X"CB",X"AB",X"CC",X"B1",X"9A",X"CC",X"B9",X"C1",X"E4",X"C6",X"EA", + X"04",X"AE",X"CC",X"F1",X"03",X"A4",X"9D",X"C0",X"A4",X"98",X"C9",X"A6",X"8A",X"CF",X"D4",X"B0", + X"95",X"D7",X"B1",X"9D",X"D5",X"06",X"A1",X"85",X"D2",X"07",X"A4",X"CF",X"D3",X"D7",X"A6",X"D1", + X"A7",X"C2",X"C7",X"A9",X"CB",X"CC",X"D7",X"AE",X"D7",X"AF",X"CC",X"D3",X"B2",X"C5",X"B5",X"D0", + X"08",X"A1",X"C4",X"A3",X"CC",X"A8",X"D2",X"09",X"BB",X"CC",X"0A",X"A9",X"C6",X"B1",X"D3",X"BE", + X"D7",X"0E",X"93",X"C5",X"1F",X"01",X"01",X"A5",X"C0",X"E2",X"C4",X"A8",X"D3",X"F6",X"AA",X"C6", + X"F1",X"AA",X"8C",X"D5",X"AB",X"C1",X"E3",X"AA",X"9D",X"C6",X"AA",X"9A",X"D1",X"AD",X"D3",X"F7", + X"AF",X"C7",X"E9",X"CD",X"EF",X"AF",X"94",X"D3",X"B0",X"92",X"C3",X"B2",X"C0",X"E2",X"B3",X"D3", + X"F7",X"B4",X"96",X"C5",X"C9",X"CD",X"B6",X"98",X"C4",X"B7",X"C7",X"F0",X"B8",X"9A",X"C3",X"B9", + X"D2",X"B8",X"D5",X"F7",X"BC",X"C2",X"D3",X"BE",X"C0",X"F7",X"04",X"A7",X"C4",X"C5",X"A5",X"D1", + X"F3",X"AC",X"C8",X"EF",X"B1",X"C7",X"EF",X"AA",X"D2",X"03",X"A1",X"84",X"C0",X"A8",X"8C",X"D7", + X"A9",X"C3",X"AA",X"8D",X"CB",X"AB",X"91",X"C0",X"AC",X"96",X"D0",X"AD",X"92",X"D6",X"B1",X"96", + X"CB",X"B2",X"9D",X"C1",X"B3",X"97",X"D5",X"B4",X"96",X"C7",X"CE",X"B8",X"9D",X"D4",X"06",X"A5", + X"89",X"C3",X"07",X"AB",X"D4",X"AD",X"C7",X"CF",X"B1",X"D4",X"B5",X"C8",X"CA",X"CC",X"CF",X"B6", + X"C3",X"D7",X"B7",X"D2",X"BC",X"C0",X"C4",X"CA",X"CC",X"D7",X"08",X"A5",X"D4",X"A7",X"C8",X"BB", + X"C5",X"09",X"A8",X"C2",X"0A",X"A5",X"C2",X"BE",X"C0",X"D7",X"0F",X"9D",X"C3",X"E5",X"C7",X"F2", + X"1F",X"00",X"01",X"A4",X"C1",X"C2",X"A9",X"C1",X"E6",X"CA",X"F6",X"A9",X"9B",X"CA",X"AE",X"C0", + X"E7",X"CD",X"F5",X"B0",X"92",X"CD",X"D5",X"B3",X"C4",X"E6",X"CB",X"ED",X"D0",X"F5",X"B5",X"97", + X"C6",X"D5",X"B8",X"C2",X"E6",X"CB",X"F5",X"BA",X"C0",X"E2",X"BD",X"C4",X"C8",X"C9",X"CF",X"F7", + X"02",X"9F",X"C0",X"F7",X"04",X"A3",X"C7",X"F6",X"BA",X"C4",X"E7",X"03",X"A4",X"8D",X"C0",X"A6", + X"88",X"C6",X"A9",X"97",X"C3",X"A9",X"9C",X"D7",X"AE",X"9C",X"C8",X"B3",X"97",X"CF",X"D4",X"BA", + X"9E",X"C3",X"BD",X"CE",X"06",X"A1",X"85",X"C3",X"07",X"A2",X"C1",X"A7",X"D3",X"AC",X"C1",X"C4", + X"CE",X"B1",X"C6",X"CB",X"D1",X"B6",X"C5",X"D0",X"D3",X"B8",X"C0",X"C1",X"BD",X"C0",X"C5",X"CA", + X"08",X"A6",X"CD",X"B0",X"C4",X"BC",X"C6",X"09",X"A1",X"C2",X"0A",X"B3",X"D1",X"AE",X"CD",X"D5", + X"0D",X"99",X"C0",X"C1",X"0F",X"9E",X"C5",X"E7",X"1F",X"00",X"01",X"AA",X"C2",X"CE",X"AC",X"C0", + X"E2",X"AE",X"90",X"C2",X"B1",X"C0",X"E3",X"D3",X"F6",X"B3",X"9D",X"C0",X"B6",X"C1",X"E4",X"CD", + X"B7",X"D0",X"F6",X"B8",X"C7",X"ED",X"B9",X"CD",X"D0",X"D4",X"9B",X"C5",X"D4",X"BC",X"C4",X"C5", + X"D1",X"F7",X"BE",X"C0",X"F7",X"02",X"A5",X"C0",X"E2",X"C4",X"ED",X"AA",X"95",X"CD",X"AC",X"90", + X"CE",X"AF",X"CF",X"D0",X"04",X"A4",X"CE",X"F4",X"A7",X"CA",X"EC",X"AB",X"D0",X"F5",X"AE",X"C4", + X"EC",X"B1",X"CE",X"F1",X"B8",X"C2",X"E4",X"03",X"A1",X"84",X"D5",X"A7",X"90",X"C3",X"A7",X"C9", + X"AA",X"8E",X"CF",X"AB",X"90",X"D6",X"AC",X"97",X"C9",X"B1",X"97",X"CC",X"B4",X"9D",X"CE",X"AE", + X"9B",X"D7",X"B8",X"9D",X"C1",X"C6",X"BA",X"9D",X"CC",X"06",X"A5",X"C3",X"07",X"AA",X"C1",X"CC", + X"AD",X"D0",X"AF",X"C5",X"C8",X"CB",X"C0",X"B4",X"C1",X"B5",X"D2",X"BA",X"D1",X"D3",X"D6",X"BC", + X"C3",X"C7",X"CB",X"08",X"A7",X"CE",X"B3",X"C3",X"B4",X"D1",X"BB",X"C9",X"09",X"B5",X"C7",X"0A", + X"AA",X"CE",X"BC",X"D3",X"BC",X"D5",X"0D",X"8B",X"C0",X"C1",X"1F",X"00",X"01",X"A4",X"CC",X"F7", + X"A5",X"C7",X"E9",X"A9",X"CD",X"F6",X"AA",X"C1",X"E4",X"AF",X"C5",X"C7",X"E9",X"B4",X"C4",X"B9", + X"C2",X"C3",X"C7",X"E9",X"CD",X"F7",X"BE",X"C0",X"F7",X"02",X"AA",X"C8",X"EA",X"8B",X"CD",X"F6", + X"AC",X"98",X"CD",X"AC",X"95",X"D6",X"AF",X"CF",X"F4",X"B1",X"93",X"CF",X"B4",X"C8",X"EA",X"CF", + X"F6",X"04",X"A2",X"C1",X"E5",X"03",X"A4",X"88",X"D1",X"A5",X"89",X"CA",X"A5",X"9D",X"C0",X"A9", + X"9D",X"CC",X"A9",X"98",X"D7",X"AA",X"8E",X"C5",X"C7",X"AF",X"93",X"C4",X"CA",X"D5",X"AF",X"98", + X"CE",X"B4",X"98",X"C3",X"C7",X"B9",X"9D",X"C1",X"B9",X"CA",X"06",X"A1",X"86",X"C6",X"BB",X"9D", + X"CA",X"07",X"A2",X"CC",X"D6",X"A3",X"C9",X"A8",X"C2",X"C4",X"C9",X"AD",X"C9",X"D0",X"D3",X"B2", + X"C9",X"D1",X"D3",X"B7",X"C4",X"C9",X"D1",X"BC",X"C2",X"CE",X"D6",X"08",X"A1",X"D4",X"A7",X"C3", + X"A6",X"D4",X"AC",X"CB",X"09",X"A6",X"CB",X"0A",X"A5",X"C9",X"AF",X"C9",X"BE",X"D7",X"1F",X"00", + X"01",X"A7",X"C1",X"C5",X"EA",X"CD",X"F3",X"D5",X"F7",X"A9",X"D6",X"AF",X"C5",X"E8",X"D2",X"F7", + X"B6",X"C0",X"E6",X"B8",X"C6",X"EA",X"CF",X"F1",X"D3",X"D5",X"F7",X"BA",X"D3",X"F7",X"BC",X"D4", + X"F7",X"BD",X"C0",X"EA",X"CF",X"F7",X"02",X"A5",X"D5",X"AF",X"CA",X"F1",X"B8",X"CC",X"ED",X"9F", + X"C0",X"F7",X"04",X"A2",X"C3",X"CB",X"CC",X"D4",X"F7",X"A9",X"C6",X"F3",X"AB",X"D6",X"B0",X"C1", + X"C2",X"B1",X"D2",X"F4",X"B5",X"D2",X"03",X"A1",X"92",X"C0",X"A2",X"86",X"D3",X"A5",X"89",X"C4", + X"A5",X"CA",X"A7",X"8A",X"D4",X"A9",X"8B",X"D5",X"A9",X"8E",X"C5",X"D7",X"AF",X"97",X"C9",X"B4", + X"97",X"D1",X"B6",X"C7",X"B8",X"9E",X"CB",X"CE",X"06",X"A1",X"84",X"CA",X"07",X"A5",X"C1",X"C5", + X"C9",X"CE",X"D1",X"D7",X"AA",X"C7",X"CB",X"D0",X"B4",X"C0",X"C3",X"B6",X"D7",X"B8",X"D4",X"BB", + X"C0",X"C2",X"BD",X"CC",X"08",X"A4",X"C7",X"D0",X"AC",X"D4",X"09",X"B5",X"CC",X"0A",X"A7",X"C1", + X"B8",X"D7",X"BD",X"C0",X"0D",X"86",X"D6",X"D7",X"0E",X"99",X"D4",X"1F",X"01",X"01",X"A2",X"C8", + X"CF",X"D5",X"A3",X"C8",X"D0",X"D4",X"A4",X"C7",X"D4",X"A5",X"C1",X"E6",X"CD",X"D1",X"F3",X"85", + X"CD",X"F0",X"A7",X"C6",X"CD",X"D1",X"A9",X"C6",X"F6",X"AA",X"C0",X"E4",X"AE",X"C6",X"F7",X"AF", + X"C1",X"E4",X"B0",X"93",X"C4",X"C6",X"D1",X"D3",X"B3",X"D4",X"B3",X"95",X"C7",X"D5",X"94",X"C4", + X"B4",X"96",X"C3",X"D1",X"B5",X"97",X"C8",X"B6",X"98",X"C2",X"B6",X"D0",X"D1",X"D5",X"F7",X"B7", + X"9A",X"C9",X"B8",X"9A",X"C1",X"B8",X"CE",X"F1",X"B9",X"C6",X"BA",X"C4",X"CA",X"EE",X"BC",X"C3", + X"C4",X"C7",X"BB",X"9D",X"D5",X"D7",X"BD",X"CF",X"F1",X"BE",X"C0",X"E8",X"CF",X"F7",X"02",X"A5", + X"C0",X"C2",X"C3",X"9F",X"C9",X"EE",X"04",X"A6",X"C7",X"F0",X"B0",X"C7",X"F0",X"B1",X"C1",X"E3", + X"03",X"A5",X"9D",X"C5",X"D2",X"A9",X"8D",X"D7",X"AA",X"8E",X"C3",X"AF",X"9D",X"C0",X"B8",X"CD", + X"BA",X"9E",X"CC",X"BB",X"9D",X"C8",X"BB",X"9E",X"C9",X"06",X"A1",X"88",X"CB",X"BB",X"9D",X"D6", + X"07",X"A3",X"C0",X"C6",X"D3",X"A7",X"C8",X"CE",X"D0",X"D4",X"A8",X"C0",X"B1",X"C8",X"B3",X"CA", + X"CE",X"B2",X"C3",X"B4",X"D6",X"B9",X"D7",X"BA",X"C3",X"BB",X"D1",X"BC",X"C1",X"C6",X"D3",X"BD", + X"CA",X"CE",X"08",X"A2",X"C3",X"BB",X"C2",X"D4",X"09",X"AB",X"CA",X"0A",X"B3",X"D4",X"B8",X"CE", + X"BC",X"C3",X"0D",X"88",X"C7",X"EC",X"CE",X"F0",X"92",X"D4",X"D5",X"95",X"D6",X"D7",X"97",X"CD", + X"EF",X"99",X"CA",X"EC",X"0E",X"9D",X"D6",X"1F",X"00",X"01",X"A4",X"C9",X"F6",X"A6",X"C7",X"E9", + X"A6",X"9B",X"D6",X"A6",X"99",X"C7",X"A9",X"CB",X"F4",X"A9",X"9B",X"D4",X"AB",X"C9",X"EB",X"D4", + X"AD",X"9B",X"C9",X"AC",X"C2",X"C3",X"AE",X"C3",X"E5",X"AE",X"CD",X"F2",X"B0",X"CB",X"ED",X"B0", + X"9B",X"CB",X"D2",X"B1",X"C2",X"C3",X"B3",X"C5",X"CF",X"D0",X"B5",X"CD",X"F0",X"B7",X"99",X"CD", + X"D0",X"B8",X"C2",X"C4",X"C5",X"BA",X"CD",X"F0",X"BD",X"C0",X"E7",X"02",X"9F",X"C0",X"F7",X"04", + X"A1",X"C7",X"E9",X"A4",X"C4",X"C5",X"A7",X"C1",X"C2",X"03",X"A1",X"85",X"C6",X"A4",X"88",X"C3", + X"A7",X"9C",X"C0",X"A4",X"9E",X"D7",X"A9",X"9E",X"D5",X"AE",X"9E",X"D3",X"B3",X"9E",X"D1",X"06", + X"A1",X"86",X"C0",X"07",X"A2",X"CC",X"D2",X"A7",X"CC",X"D1",X"A9",X"C9",X"AA",X"C2",X"AC",X"C5", + X"AC",X"D0",X"AE",X"CC",X"AF",X"C2",X"B1",X"C5",X"CF",X"B3",X"CD",X"B6",X"C2",X"C5",X"B8",X"CE", + X"BB",X"C2",X"C5",X"08",X"A3",X"C8",X"A8",X"CA",X"AD",X"CB",X"B2",X"CE",X"09",X"BA",X"C3",X"0A", + X"A6",X"C7",X"AB",X"C9",X"B0",X"CB",X"0D",X"99",X"CE",X"CF",X"1F",X"00",X"01",X"A5",X"CB",X"ED", + X"D4",X"D5",X"A7",X"C0",X"C1",X"C6",X"E8",X"D5",X"AA",X"D1",X"F5",X"AC",X"C8",X"EE",X"AE",X"90", + X"C8",X"AF",X"CE",X"B1",X"C3",X"EE",X"B9",X"C3",X"E6",X"BE",X"C0",X"F7",X"02",X"A5",X"D1",X"F3", + X"A7",X"89",X"D1",X"B3",X"98",X"C3",X"C6",X"BE",X"C2",X"E5",X"C9",X"ED",X"D0",X"F3",X"D6",X"D7", + X"04",X"A2",X"C0",X"E4",X"C9",X"F1",X"A9",X"CF",X"D0",X"AC",X"CF",X"D0",X"03",X"A5",X"C0",X"A5", + X"9D",X"D6",X"A7",X"92",X"C2",X"B1",X"9D",X"C7",X"06",X"A1",X"84",X"D6",X"07",X"A3",X"D4",X"A5", + X"C1",X"C6",X"C8",X"A8",X"D2",X"D4",X"AF",X"C9",X"CB",X"CD",X"B7",X"C4",X"C5",X"BC",X"C0",X"C5", + X"CE",X"D4",X"08",X"A2",X"CC",X"D2",X"A9",X"CB",X"09",X"BB",X"CB",X"0A",X"A5",X"CB",X"AC",X"C8", + X"BE",X"C0",X"0D",X"89",X"D2",X"F4",X"98",X"C4",X"C5",X"1F",X"00",X"01",X"A5",X"C3",X"F0",X"A7", + X"C9",X"CD",X"AA",X"C0",X"F7",X"AC",X"C9",X"CF",X"AF",X"C6",X"F7",X"B1",X"C9",X"CD",X"C6",X"B2", + X"C0",X"E5",X"B4",X"CA",X"F6",X"B6",X"CD",X"B7",X"C1",X"E6",X"B9",X"C6",X"F7",X"BB",X"CD",X"BE", + X"C0",X"F7",X"02",X"89",X"C9",X"CD",X"8E",X"C9",X"CF",X"93",X"CD",X"B3",X"96",X"C6",X"B3",X"95", + X"C9",X"B8",X"CD",X"BD",X"CD",X"04",X"A2",X"C1",X"C2",X"D2",X"F7",X"03",X"A2",X"89",X"C0",X"A5", + X"89",X"D1",X"AA",X"91",X"C1",X"AA",X"8E",X"D4",X"AF",X"93",X"D1",X"B2",X"96",X"C3",X"B4",X"98", + X"D7",X"B7",X"9D",X"C0",X"B9",X"9D",X"D2",X"06",X"A1",X"84",X"C3",X"07",X"A3",X"C5",X"C9",X"A8", + X"C4",X"CB",X"CF",X"D7",X"AD",X"CB",X"D2",X"D7",X"B0",X"C2",X"B2",X"CB",X"CF",X"B5",X"C1",X"B7", + X"C8",X"CB",X"D5",X"BC",X"C2",X"CB",X"CF",X"08",X"A2",X"CB",X"A7",X"D2",X"B1",X"D3",X"BB",X"C7", + X"09",X"BB",X"C3",X"0A",X"BE",X"CC",X"CE",X"D7",X"1F",X"00",X"01",X"A4",X"C5",X"F2",X"A6",X"88", + X"C5",X"CB",X"D2",X"D3",X"A9",X"C3",X"E7",X"CB",X"CF",X"F3",X"A6",X"D4",X"F6",X"AB",X"8F",X"C3", + X"C7",X"CF",X"A6",X"94",X"D7",X"AB",X"C7",X"EF",X"D3",X"F7",X"AE",X"C1",X"E7",X"B0",X"97",X"C1", + X"C7",X"B0",X"CD",X"F4",X"B2",X"94",X"CD",X"B3",X"9A",X"C4",X"B3",X"C5",X"C6",X"B5",X"CA",X"EE", + X"D1",X"D5",X"F7",X"B6",X"C2",X"C3",X"B7",X"C7",X"EA",X"CE",X"D1",X"F5",X"B9",X"C4",X"E7",X"CA", + X"CE",X"F1",X"BE",X"C0",X"F7",X"02",X"BE",X"C1",X"C3",X"C5",X"C7",X"C9",X"CB",X"CD",X"CF",X"D1", + X"D3",X"D5",X"D7",X"04",X"AD",X"D5",X"03",X"A4",X"88",X"D1",X"A9",X"8F",X"D0",X"B0",X"94",X"CC", + X"D6",X"B5",X"9D",X"CB",X"B5",X"98",X"D0",X"B5",X"D2",X"D4",X"06",X"A1",X"9D",X"C0",X"07",X"A7", + X"C7",X"A9",X"C9",X"CD",X"D5",X"AC",X"C5",X"AE",X"CD",X"D4",X"B3",X"CE",X"B4",X"C2",X"B5",X"C8", + X"D3",X"B7",X"C5",X"CF",X"BC",X"C2",X"D3",X"D7",X"08",X"A1",X"CA",X"A3",X"D4",X"AD",X"D2",X"09", + X"BB",X"C9",X"0A",X"A4",X"C5",X"A4",X"CB",X"AE",X"C1",X"0D",X"85",X"D3",X"F7",X"8A",X"CC",X"EE", + X"96",X"C8",X"C9",X"1F",X"00",X"01",X"A7",X"99",X"D6",X"A7",X"8E",X"D4",X"A7",X"D0",X"F3",X"A9", + X"91",X"D0",X"AA",X"CC",X"EF",X"AC",X"94",X"CC",X"AD",X"C8",X"EB",X"D1",X"F3",X"AF",X"97",X"C8", + X"B0",X"C4",X"E7",X"CD",X"EF",X"B2",X"9B",X"C4",X"B3",X"C0",X"E3",X"C9",X"EB",X"B5",X"9B",X"C0", + X"B6",X"C5",X"E7",X"BA",X"C1",X"E3",X"B2",X"99",X"D3",X"B2",X"D4",X"D5",X"B8",X"D4",X"D5",X"B5", + X"CF",X"F2",X"B7",X"CF",X"B9",X"CC",X"EF",X"BB",X"CC",X"F2",X"BD",X"C7",X"F7",X"02",X"9F",X"C0", + X"F7",X"03",X"A7",X"9C",X"D7",X"A7",X"91",X"D5",X"A7",X"89",X"CF",X"AA",X"8C",X"CB",X"AD",X"8F", + X"C7",X"B0",X"92",X"C3",X"B2",X"94",X"D2",X"B5",X"98",X"CE",X"B9",X"9C",X"CB",X"06",X"A1",X"86", + X"D7",X"BD",X"C6",X"07",X"AB",X"D1",X"D3",X"AE",X"CD",X"CF",X"B1",X"C9",X"CB",X"B0",X"D4",X"B3", + X"D0",X"B4",X"C5",X"C7",X"B7",X"CC",X"B8",X"C1",X"C3",X"B9",X"D0",X"D2",X"BB",X"D3",X"D5",X"C8", + X"CA",X"08",X"A4",X"D2",X"A7",X"CD",X"AA",X"C9",X"BC",X"C0",X"09",X"B5",X"D4",X"0A",X"B3",X"C0", + X"BD",X"D3",X"BA",X"C1",X"0D",X"8C",X"D1",X"F3",X"1F",X"00",X"02",X"9F",X"C0",X"F7",X"04",X"A4", + X"C4",X"CA",X"D2",X"D6",X"A7",X"C1",X"C2",X"C5",X"C8",X"CB",X"D0",X"D3",X"D5",X"AA",X"C6",X"CC", + X"D4",X"AD",X"C2",X"C7",X"CD",X"D0",X"D5",X"B0",X"C1",X"C6",X"C8",X"CB",X"CE",X"D4",X"D6",X"B3", + X"C5",X"C8",X"CA",X"CD",X"CF",X"D3",X"D5",X"B6",X"C1",X"C4",X"C9",X"CC",X"D0",X"D2",X"B9",X"C2", + X"C5",X"CB",X"D4",X"D6",X"03",X"A4",X"87",X"C3",X"D1",X"A4",X"90",X"C9",X"D7",X"A7",X"90",X"C0", + X"A7",X"8D",X"CF",X"AD",X"99",X"C3",X"AD",X"9E",X"D1",X"B6",X"9E",X"C0",X"06",X"A1",X"86",X"C0", + X"07",X"A5",X"CA",X"CF",X"A9",X"C2",X"D2",X"D6",X"AD",X"C6",X"B1",X"D4",X"B4",X"CF",X"BA",X"C5", + X"D4",X"AC",X"CB",X"08",X"AA",X"CC",X"B6",X"C9",X"CC",X"D2",X"09",X"BC",X"CB",X"1F",X"00",X"01", + X"A5",X"87",X"C2",X"C6",X"D1",X"A8",X"98",X"C2",X"F7",X"00",X"A8",X"8D",X"C8",X"AB",X"8D",X"C6", + X"C7",X"AB",X"98",X"C5",X"AE",X"90",X"CB",X"F0",X"AE",X"D3",X"AC",X"D6",X"B5",X"97",X"CD",X"EF", + X"B7",X"CC",X"01",X"AE",X"CD",X"EE",X"B9",X"CD",X"EE",X"BA",X"CC",X"ED",X"BC",X"9E",X"CB",X"ED", + X"02",X"9F",X"C0",X"F7",X"04",X"A2",X"C1",X"F7",X"B9",X"D0",X"F5",X"03",X"A5",X"9E",X"C0",X"AE", + X"9A",X"D6",X"B8",X"9A",X"CF",X"06",X"A1",X"84",X"C0",X"07",X"AF",X"CB",X"D0",X"AE",X"D3",X"08", + X"A5",X"C9",X"CC",X"AB",X"C7",X"BC",X"D2",X"09",X"B5",X"CE",X"0A",X"A8",X"D0",X"AE",X"C6",X"BC", + X"CB",X"0E",X"90",X"CB",X"CC",X"CF",X"D0",X"8F",X"D3",X"99",X"CC",X"1F",X"00",X"01",X"A8",X"95", + X"C0",X"EA",X"A8",X"CC",X"EF",X"AD",X"CB",X"F6",X"B4",X"D1",X"F6",X"B9",X"C0",X"ED",X"BB",X"C5", + X"BC",X"CE",X"BE",X"C0",X"F7",X"00",X"B0",X"93",X"C2",X"E4",X"B3",X"95",X"C9",X"AF",X"95",X"CA", + X"04",X"A3",X"C1",X"EE",X"A5",X"D0",X"F6",X"B1",X"CA",X"F0",X"03",X"A2",X"87",X"C0",X"CF",X"A8", + X"8A",X"CB",X"AA",X"8E",X"CA",X"AE",X"92",X"C9",X"B2",X"95",X"C8",X"B9",X"9D",X"C6",X"CC",X"A5", + X"9D",X"D7",X"06",X"A1",X"84",X"D7",X"07",X"A8",X"D0",X"D2",X"D4",X"B2",X"C2",X"C4",X"B7",X"C2", + X"08",X"AA",X"CE",X"D3",X"B1",X"D3",X"BB",X"D3",X"09",X"BB",X"C9",X"0A",X"B9",X"C0",X"BE",X"C4", + X"BE",X"CD",X"0F",X"9D",X"C0",X"E4",X"1F",X"00",X"01",X"A8",X"C9",X"EC",X"D1",X"F4",X"AC",X"C1", + X"E7",X"AD",X"CE",X"F6",X"B6",X"C1",X"E7",X"B9",X"C9",X"F4",X"A5",X"8A",X"C1",X"AE",X"92",X"C1", + X"B8",X"9D",X"C1",X"B8",X"C7",X"A5",X"87",X"C9",X"CC",X"B1",X"98",X"C9",X"AF",X"9C",X"D6",X"02", + X"B1",X"C2",X"E8",X"BE",X"C0",X"F7",X"BA",X"9D",X"C7",X"04",X"A2",X"C1",X"E8",X"CF",X"F6",X"A5", + X"C2",X"E8",X"AA",X"C9",X"ED",X"B2",X"CB",X"F5",X"03",X"A5",X"9D",X"C0",X"AC",X"90",X"C2",X"A9", + X"8D",X"C8",X"B1",X"98",X"CA",X"B9",X"9D",X"D5",X"A5",X"9A",X"D7",X"06",X"A1",X"84",X"D7",X"07", + X"A4",X"D0",X"D5",X"A6",X"CA",X"D2",X"A8",X"C3",X"C5",X"B5",X"CD",X"D2",X"B8",X"C6",X"BC",X"CD", + X"08",X"A5",X"D4",X"AA",X"D3",X"AE",X"C5",X"BB",X"D0",X"09",X"B3",X"C5",X"0A",X"A8",X"D1",X"B6", + X"C4",X"B6",X"C7",X"0D",X"87",X"CA",X"CB",X"0F",X"9D",X"C2",X"E6",X"D7",X"1F",X"01",X"01",X"A8", + X"95",X"C0",X"E5",X"D1",X"F7",X"AA",X"95",X"C8",X"EE",X"A5",X"C8",X"EE",X"B9",X"C1",X"E5",X"C8", + X"EE",X"D1",X"F6",X"BE",X"C0",X"F7",X"A2",X"84",X"CB",X"00",X"AE",X"91",X"C1",X"C2",X"D6",X"D7", + X"B4",X"C4",X"D2",X"D3",X"CB",X"04",X"A2",X"C0",X"E5",X"D1",X"F7",X"A7",X"C8",X"EE",X"03",X"A5", + X"9A",X"C6",X"D0",X"B9",X"9D",X"C0",X"D7",X"06",X"A1",X"84",X"C6",X"D0",X"07",X"A3",X"C0",X"D7", + X"B0",X"C2",X"D6",X"B4",X"C4",X"CB",X"D2",X"D3",X"BC",X"C4",X"D3",X"08",X"A7",X"CB",X"B6",X"CA", + X"CC",X"09",X"BB",X"CB",X"0A",X"B9",X"C9",X"CB",X"CD",X"0E",X"91",X"C1",X"C2",X"D6",X"D7",X"1F", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"02",X"C0",X"02",X"C1",X"C4",X"06",X"C2",X"04",X"08",X"08",X"08",X"08",X"0C",X"00",X"00",X"00", + X"C8",X"C6",X"10",X"00",X"0C",X"0E",X"0C",X"0E",X"00",X"00",X"00",X"00",X"0A",X"CA",X"CA",X"02", + X"CA",X"0A",X"08",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"C4",X"06",X"C2",X"04", + X"20",X"AC",X"20",X"AE",X"00",X"00",X"00",X"00",X"16",X"16",X"16",X"16",X"1C",X"1E",X"1C",X"1E", + X"B4",X"00",X"00",X"00",X"B4",X"B5",X"B4",X"B5",X"16",X"18",X"1A",X"20",X"18",X"1A",X"20",X"20", + X"1A",X"18",X"16",X"16",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"14",X"12",X"B0",X"B2", + X"A0",X"9C",X"9E",X"A0",X"00",X"00",X"00",X"00",X"A6",X"A6",X"A6",X"A6",X"A1",X"A0",X"A1",X"A0", + X"A0",X"00",X"00",X"00",X"A0",X"A1",X"A0",X"A1",X"A6",X"A6",X"A0",X"A0",X"A6",X"A6",X"A6",X"A0", + X"A6",X"A6",X"A6",X"A6",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"A2",X"38",X"A4",X"36", + X"92",X"90",X"8E",X"00",X"00",X"00",X"00",X"00",X"3A",X"3A",X"3A",X"3A",X"98",X"99",X"98",X"99", + X"99",X"00",X"00",X"00",X"98",X"99",X"98",X"99",X"98",X"99",X"92",X"92",X"3C",X"3C",X"3C",X"3C", + X"3C",X"3C",X"3C",X"3A",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"94",X"96",X"94",X"96", + X"B6",X"BA",X"B6",X"BA",X"E6",X"E8",X"EA",X"EC",X"22",X"22",X"22",X"22",X"24",X"24",X"24",X"24", + X"EE",X"00",X"00",X"00",X"EE",X"EF",X"EE",X"EF",X"E4",X"E2",X"B6",X"B6",X"E2",X"E4",X"B6",X"B6", + X"E4",X"E2",X"22",X"22",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"DD",X"DE",X"DF",X"DE",X"00",X"00",X"00",X"00",X"DE",X"A7",X"DE",X"A7",X"40",X"40",X"40",X"40", + X"BF",X"00",X"00",X"00",X"DD",X"BF",X"DD",X"BF",X"DD",X"3E",X"BC",X"DF",X"A7",X"DE",X"A7",X"DE", + X"DE",X"A7",X"DE",X"A7",X"DD",X"34",X"DD",X"00",X"DD",X"34",X"DD",X"DD",X"DE",X"DF",X"DE",X"DD", + X"80",X"84",X"82",X"00",X"00",X"00",X"00",X"00",X"8A",X"8A",X"8A",X"8A",X"2A",X"2A",X"2A",X"2A", + X"8C",X"00",X"00",X"00",X"8C",X"8D",X"8C",X"8D",X"8C",X"84",X"82",X"80",X"8A",X"8A",X"8A",X"8A", + X"8A",X"8A",X"8A",X"8A",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"86",X"28",X"88",X"26", + X"CE",X"CC",X"CE",X"CC",X"30",X"32",X"30",X"32",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF", + X"CF",X"00",X"00",X"00",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF",X"CE",X"CF", + X"CE",X"CF",X"CE",X"CF",X"2C",X"2E",X"30",X"00",X"2E",X"2C",X"CE",X"00",X"00",X"00",X"00",X"00", + X"D0",X"D1",X"D0",X"D1",X"00",X"00",X"00",X"00",X"D4",X"D4",X"D4",X"D4",X"D4",X"D4",X"D4",X"D4", + X"D8",X"00",X"00",X"00",X"D4",X"D4",X"D4",X"D4",X"D8",X"D0",X"D1",X"00",X"D4",X"D4",X"D4",X"D4", + X"D4",X"D4",X"D4",X"D4",X"D1",X"DB",X"D9",X"D5",X"D5",X"D9",X"DB",X"D1",X"D5",X"D7",X"D5",X"D7", + X"00",X"00",X"00",X"00",X"41",X"40",X"41",X"40",X"00",X"40",X"00",X"40",X"00",X"00",X"00",X"00", + X"01",X"01",X"00",X"00",X"00",X"00",X"40",X"40",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00", + X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"41",X"40",X"41",X"40", + X"00",X"01",X"00",X"01",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"40",X"41",X"41", + X"00",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"40",X"40", + X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"40",X"40",X"40",X"00",X"00",X"00",X"40",X"00",X"00", + X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"41",X"40",X"41",X"40", + X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00",X"40",X"00",X"00", + X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"41",X"41",X"41",X"41", + X"01",X"01",X"01",X"01",X"41",X"41",X"41",X"41",X"00",X"40",X"00",X"40",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01", + X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"40",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"40",X"00",X"00",X"40",X"00",X"40", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"00",X"01",X"01",X"00",X"00",X"40",X"40", + X"00",X"00",X"40",X"40",X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"81",X"80",X"80", + X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"01",X"41",X"01",X"41",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"41",X"01",X"01", + X"01",X"41",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"41",X"40",X"41",X"40", + X"40",X"41",X"40",X"41",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"01",X"00",X"01",X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"40",X"40", + X"00",X"00",X"00",X"00",X"00",X"40",X"00",X"40",X"00",X"00",X"01",X"00",X"00",X"40",X"00",X"40", + X"00",X"40",X"00",X"40",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"01",X"00",X"01",X"00", + X"FE",X"00",X"FE",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",X"FE",X"00", + X"FE",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F5",X"FC",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FA",X"FC",X"F5",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F8",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"FC",X"FC",X"FC", + X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"01",X"01",X"FF",X"FF", + X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"FE",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"00",X"FE",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FD",X"FD",X"FD",X"00",X"00",X"00",X"00",X"00",X"F8",X"08",X"F8",X"08",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FD",X"FD",X"FD",X"F8",X"08",X"F8",X"F8", + X"F8",X"08",X"F8",X"F8",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"00",X"03",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FC",X"00",X"FC",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"FC",X"F8",X"F8",X"FC",X"FC",X"F8",X"F8",X"FC",X"FC",X"00",X"FC",X"00", + X"00",X"00",X"00",X"00",X"FD",X"00",X"FD",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"F0",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"00", + X"10",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"FD",X"00",X"FD",X"00", + X"00",X"FF",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",X"FE", + X"00",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",X"00",X"01",X"00", + X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"04",X"04",X"04", + X"02",X"02",X"02",X"02",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"02",X"02",X"02",X"02",X"02",X"02",X"00", + X"02",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"10",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"00",X"00", + X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"10", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"04",X"00", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10",X"10", + X"00",X"FF",X"00",X"FF",X"F8",X"00",X"F8",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F8",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"00", + X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"F8",X"00", + X"00",X"FC",X"00",X"FC",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"08",X"00",X"08",X"09",X"00",X"00", + X"08",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F8", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"F8",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"04",X"04",X"07",X"07", + X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"F8",X"F8",X"F8", + X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"FC",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F9",X"FD",X"FC",X"FC",X"FD",X"FD",X"FC",X"00", + X"FD",X"FD",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"F8",X"00",X"00",X"00",X"F9",X"F9",X"F9",X"F9", + X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"FF",X"00",X"00",X"00",X"03",X"03", + X"00",X"00",X"FD",X"FD",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"08",X"F8",X"08", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"F8",X"F8",X"FC",X"00",X"00",X"F8",X"F9",X"F8",X"F9", + X"00",X"00",X"00",X"00",X"08",X"00",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"08",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"00",X"08",X"00", + X"00",X"04",X"00",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"08", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"00",X"08",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"05",X"05",X"05", + X"04",X"04",X"04",X"04",X"FC",X"FC",X"FC",X"FC",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"07",X"04",X"04",X"07",X"07",X"04",X"00", + X"07",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"10",X"00",X"10",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"04",X"0C",X"07",X"01",X"08",X"07",X"01",X"00",X"08",X"07",X"01",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"06",X"06",X"06",X"06",X"08",X"08",X"08",X"01",X"0A",X"06",X"00",X"00", + X"0A",X"06",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"08",X"09",X"07", + X"08",X"08",X"01",X"00",X"06",X"06",X"06",X"01",X"06",X"06",X"06",X"01",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"05",X"04",X"03",X"03",X"08",X"08",X"01",X"00",X"06",X"06",X"06",X"00", + X"06",X"06",X"06",X"01",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"04",X"03",X"04", + X"08",X"08",X"01",X"00",X"0A",X"06",X"00",X"00",X"0A",X"06",X"01",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"06",X"06",X"04",X"05",X"05",X"05",X"05", + X"05",X"05",X"05",X"05",X"06",X"08",X"04",X"00",X"06",X"08",X"04",X"00",X"04",X"03",X"04",X"04", + X"08",X"08",X"04",X"00",X"06",X"06",X"06",X"00",X"06",X"06",X"06",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"05",X"05",X"05",X"05",X"08",X"08",X"08",X"02",X"05",X"05",X"05",X"00", + X"05",X"05",X"05",X"00",X"04",X"04",X"04",X"00",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00", + X"08",X"0C",X"08",X"00",X"05",X"05",X"05",X"00",X"05",X"05",X"05",X"00",X"04",X"04",X"04",X"04", + X"04",X"04",X"04",X"04",X"05",X"05",X"05",X"05",X"43",X"03",X"20",X"FF",X"A3",X"FF",X"A3",X"FF", + X"A2",X"FF",X"A2",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"83",X"83",X"A3",X"FF",X"A3",X"A3",X"FF",X"FF",X"A2",X"A2",X"FF",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"43",X"A0",X"FF",X"FF",X"A3",X"A3",X"A3",X"FF", + X"A2",X"A2",X"A2",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"43",X"A0",X"FF",X"FF",X"A3",X"A3",X"A3",X"FF",X"A2",X"A2",X"A2",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"43",X"A0",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"A2",X"A2",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"83",X"20",X"20",X"A3",X"A3",X"A3",X"A3",X"A2",X"A2",X"A2",X"A2",X"FF",X"FF",X"FF",X"00", + X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"43",X"A0",X"A0",X"FF",X"A3",X"A3",X"A3",X"FF", + X"A2",X"A2",X"A2",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"03",X"23",X"20",X"20",X"23",X"23",X"23",X"FF",X"22",X"22",X"22",X"FF",X"FF",X"FF",X"FF",X"00", + X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"03",X"20",X"FF",X"23",X"23",X"23",X"FF", + X"22",X"22",X"22",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"07",X"06",X"07",X"06",X"00",X"04",X"04",X"02",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05",X"06",X"07",X"08", + X"00",X"05",X"05",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"01",X"05",X"04",X"02",X"00",X"05",X"05",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"03",X"03",X"03", + X"00",X"08",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"02",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"00",X"04",X"00",X"00",X"04",X"04",X"00",X"04", + X"00",X"05",X"05",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"03",X"03",X"00",X"00",X"03",X"03",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"02",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"00",X"04", + X"00",X"04",X"00",X"04",X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"FC",X"FA",X"00",X"00", + X"02",X"06",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F8",X"F8",X"00",X"FA",X"F7",X"00",X"00",X"01",X"07",X"07",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"FC",X"FC",X"FC",X"FC", + X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"F8",X"00",X"00",X"FC",X"FC",X"F9",X"00",X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"F8",X"F9",X"00",X"00", + X"00",X"08",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"F8",X"F8",X"FC",X"FC",X"FC",X"FC",X"04",X"04",X"04",X"04",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"F8",X"00",X"00",X"FC",X"FC",X"F9",X"00", + X"04",X"04",X"07",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FC",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FC",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"02",X"51",X"01",X"01",X"00",X"03",X"92",X"D4",X"01",X"01",X"18",X"03",X"0F",X"D0",X"D5",X"CF", + X"D2",X"01",X"02",X"18",X"03",X"0E",X"D0",X"D1",X"D5",X"D3",X"01",X"03",X"18",X"03",X"0C",X"D0", + X"D1",X"D2",X"D4",X"D5",X"D3",X"01",X"04",X"18",X"03",X"0A",X"D0",X"D1",X"D2",X"D4",X"D4",X"D4", + X"D5",X"D3",X"01",X"05",X"27",X"D5",X"D3",X"01",X"06",X"27",X"D5",X"D3",X"01",X"07",X"28",X"D3", + X"01",X"08",X"28",X"D3",X"01",X"09",X"27",X"D5",X"D3",X"01",X"0A",X"27",X"D5",X"D3",X"01",X"0B", + X"27",X"D5",X"D3",X"01",X"0C",X"27",X"D5",X"D3",X"01",X"0D",X"27",X"D5",X"D3",X"01",X"0E",X"27", + X"D5",X"D3",X"01",X"0F",X"27",X"D5",X"D3",X"01",X"10",X"27",X"D5",X"D3",X"01",X"11",X"27",X"D5", + X"D3",X"01",X"12",X"27",X"D5",X"D3",X"02",X"53",X"01",X"07",X"26",X"CA",X"01",X"08",X"25",X"CB", + X"CC",X"02",X"54",X"01",X"07",X"27",X"CD",X"01",X"08",X"27",X"CE",X"02",X"52",X"01",X"05",X"18", + X"03",X"0A",X"EB",X"01",X"06",X"18",X"03",X"0A",X"EB",X"01",X"07",X"18",X"03",X"08",X"EC",X"ED", + X"EB",X"01",X"08",X"18",X"03",X"08",X"5C",X"EE",X"EB",X"01",X"09",X"1E",X"5C",X"5C",X"EE",X"EB", + X"01",X"0A",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0B",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0C", + X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0D",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"0E",X"1E",X"5C", + X"5C",X"EE",X"EB",X"01",X"0F",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"10",X"1E",X"5C",X"5C",X"EE", + X"EB",X"01",X"11",X"1E",X"5C",X"5C",X"EE",X"EB",X"01",X"12",X"1E",X"5C",X"5C",X"EE",X"EB",X"01", + X"13",X"1C",X"FD",X"EF",X"F0",X"F1",X"F2",X"F3",X"01",X"14",X"18",X"03",X"04",X"F8",X"F7",X"F6", + X"F4",X"F5",X"01",X"15",X"18",X"03",X"05",X"F8",X"F7",X"F6",X"F6",X"EF",X"FC",X"01",X"16",X"18", + X"03",X"06",X"F8",X"F7",X"F6",X"F6",X"F4",X"F5",X"01",X"17",X"18",X"03",X"07",X"F8",X"F7",X"F6", + X"F6",X"F6",X"EF",X"FC",X"01",X"18",X"18",X"03",X"08",X"F8",X"F7",X"F6",X"F6",X"F6",X"F4",X"F5", + X"01",X"19",X"18",X"03",X"09",X"F8",X"F7",X"03",X"04",X"F6",X"EF",X"F9",X"01",X"1A",X"18",X"03", + X"0A",X"F8",X"F7",X"03",X"04",X"F6",X"F4",X"F5",X"01",X"1B",X"18",X"03",X"0B",X"F8",X"F7",X"03", + X"05",X"F6",X"EF",X"FC",X"01",X"1C",X"18",X"03",X"0C",X"F8",X"F7",X"03",X"05",X"F6",X"F4",X"F5", + X"01",X"1D",X"18",X"03",X"0D",X"F8",X"F7",X"03",X"06",X"F6",X"EF",X"FC",X"01",X"1E",X"18",X"03", + X"0E",X"F8",X"F7",X"03",X"06",X"F6",X"F4",X"F5",X"01",X"1F",X"18",X"03",X"0F",X"F8",X"F7",X"03", + X"07",X"F6",X"EF",X"02",X"10",X"01",X"09",X"18",X"03",X"06",X"04",X"01",X"0A",X"18",X"03",X"06", + X"04",X"01",X"0B",X"18",X"03",X"06",X"04",X"01",X"0C",X"18",X"03",X"06",X"04",X"01",X"0D",X"18", + X"03",X"06",X"04",X"01",X"0E",X"18",X"03",X"06",X"04",X"01",X"0F",X"18",X"03",X"06",X"04",X"01", + X"10",X"18",X"03",X"06",X"04",X"01",X"11",X"18",X"03",X"06",X"04",X"01",X"12",X"18",X"03",X"06", + X"04",X"01",X"13",X"18",X"03",X"04",X"04",X"02",X"55",X"01",X"13",X"22",X"03",X"05",X"94",X"D5", + X"FA",X"03",X"07",X"94",X"01",X"14",X"20",X"03",X"07",X"94",X"D5",X"FA",X"03",X"07",X"94",X"01", + X"15",X"22",X"03",X"05",X"94",X"D5",X"FA",X"03",X"07",X"94",X"01",X"16",X"23",X"03",X"04",X"94", + X"D5",X"FA",X"03",X"07",X"94",X"01",X"17",X"25",X"94",X"D6",X"D7",X"D8",X"D9",X"03",X"06",X"94", + X"01",X"18",X"26",X"DA",X"DB",X"DC",X"DD",X"DE",X"03",X"05",X"94",X"01",X"19",X"28",X"E0",X"E1", + X"E2",X"E3",X"E4",X"94",X"94",X"94",X"01",X"1A",X"29",X"94",X"94",X"E5",X"E6",X"E3",X"E4",X"94", + X"01",X"1B",X"2B",X"94",X"94",X"E5",X"E6",X"E3",X"01",X"1C",X"2C",X"94",X"94",X"94",X"E5",X"01", + X"1D",X"2E",X"94",X"94",X"01",X"1E",X"2F",X"94",X"00",X"4C",X"0C",X"99",X"00",X"4E",X"0C",X"99", + X"10",X"50",X"0C",X"99",X"20",X"52",X"0C",X"79",X"00",X"54",X"0C",X"79",X"10",X"A8",X"0C",X"79", + X"20",X"A8",X"0C",X"89",X"20",X"70",X"0C",X"59",X"00",X"72",X"0C",X"59",X"10",X"74",X"0C",X"59", + X"20",X"76",X"4C",X"7D",X"00",X"00",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"21",X"2A",X"5C",X"A7",X"28",X"03",X"21",X"5C",X"5C",X"7E",X"32",X"DB",X"E5",X"23",X"22",X"DC", + X"E5",X"C9",X"21",X"DB",X"E5",X"35",X"2A",X"DC",X"E5",X"20",X"0D",X"7E",X"3C",X"28",X"09",X"23", + X"7E",X"32",X"DB",X"E5",X"23",X"22",X"DC",X"E5",X"7E",X"C9",X"0C",X"02",X"78",X"80",X"14",X"02", + X"32",X"80",X"24",X"08",X"32",X"02",X"23",X"20",X"32",X"01",X"5A",X"02",X"1E",X"20",X"0C",X"02", + X"1E",X"20",X"0C",X"02",X"5A",X"20",X"73",X"01",X"24",X"08",X"5A",X"01",X"24",X"08",X"64",X"01", + X"32",X"04",X"5F",X"02",X"23",X"20",X"14",X"80",X"1E",X"08",X"FF",X"FF",X"8C",X"01",X"DC",X"08", + X"19",X"02",X"19",X"01",X"14",X"80",X"14",X"04",X"14",X"80",X"4A",X"02",X"C8",X"01",X"EB",X"02", + X"6E",X"80",X"37",X"02",X"50",X"01",X"14",X"80",X"0A",X"01",X"0A",X"02",X"0F",X"01",X"0A",X"02", + X"05",X"01",X"0A",X"02",X"28",X"08",X"FF",X"FF",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"3E",X"01",X"32",X"AE",X"E6",X"18",X"04",X"AF", + X"32",X"AE",X"E6",X"3A",X"90",X"E5",X"FE",X"00",X"20",X"05",X"3E",X"20",X"CD",X"42",X"31",X"CD", + X"C9",X"5E",X"3A",X"B7",X"E5",X"B7",X"28",X"35",X"3A",X"AE",X"E6",X"B7",X"20",X"2F",X"CD",X"D6", + X"5E",X"3E",X"02",X"32",X"88",X"E5",X"3E",X"0E",X"CD",X"3E",X"30",X"21",X"2E",X"D6",X"36",X"00", + X"54",X"5D",X"13",X"01",X"27",X"00",X"ED",X"B0",X"3E",X"0E",X"CD",X"3E",X"30",X"CD",X"D6",X"5E", + X"21",X"88",X"E5",X"35",X"20",X"E0",X"3E",X"70",X"CD",X"3E",X"30",X"18",X"35",X"3A",X"90",X"E5", + X"FE",X"00",X"21",X"36",X"D6",X"CC",X"9A",X"31",X"3E",X"02",X"32",X"88",X"E5",X"3E",X"0E",X"CD", + X"3E",X"30",X"21",X"32",X"D7",X"36",X"00",X"54",X"5D",X"13",X"01",X"1B",X"00",X"ED",X"B0",X"3E", + X"0E",X"CD",X"3E",X"30",X"CD",X"C9",X"5E",X"21",X"88",X"E5",X"35",X"20",X"E0",X"3E",X"38",X"CD", + X"3E",X"30",X"3E",X"01",X"32",X"90",X"E5",X"3A",X"8E",X"E5",X"3D",X"CD",X"EC",X"31",X"79",X"3C", + X"32",X"CC",X"E5",X"79",X"E6",X"07",X"3C",X"32",X"CD",X"E5",X"21",X"00",X"00",X"22",X"8A",X"E5", + X"22",X"8B",X"E5",X"21",X"6C",X"E5",X"FE",X"01",X"20",X"09",X"36",X"30",X"3E",X"60",X"32",X"8B", + X"E5",X"18",X"14",X"FE",X"02",X"20",X"09",X"36",X"40",X"3E",X"80",X"32",X"8B",X"E5",X"18",X"07", + X"36",X"50",X"3E",X"01",X"32",X"8A",X"E5",X"79",X"CB",X"3F",X"CB",X"3F",X"CB",X"3F",X"21",X"DF", + X"E5",X"86",X"87",X"5F",X"16",X"00",X"21",X"35",X"5F",X"19",X"5E",X"23",X"56",X"ED",X"53",X"E1", + X"E5",X"3E",X"14",X"CD",X"42",X"31",X"CD",X"80",X"61",X"CD",X"D7",X"63",X"AF",X"32",X"A6",X"E5", + X"CD",X"43",X"5F",X"CD",X"E7",X"62",X"21",X"10",X"D0",X"11",X"ED",X"5E",X"CD",X"2D",X"30",X"CD", + X"03",X"32",X"0E",X"1E",X"21",X"4A",X"D0",X"3A",X"8E",X"E5",X"CD",X"48",X"30",X"CD",X"F7",X"31", + X"0E",X"04",X"11",X"97",X"E5",X"21",X"60",X"D0",X"3A",X"B8",X"E5",X"B7",X"28",X"03",X"21",X"18", + X"D0",X"06",X"03",X"CD",X"5F",X"30",X"10",X"FB",X"0E",X"06",X"11",X"9A",X"E5",X"21",X"38",X"D0", + X"06",X"03",X"CD",X"5F",X"30",X"10",X"FB",X"3A",X"B4",X"E6",X"FE",X"0C",X"20",X"14",X"21",X"BA", + X"E1",X"06",X"07",X"36",X"0D",X"23",X"23",X"23",X"36",X"0D",X"11",X"15",X"00",X"19",X"10",X"F3", + X"18",X"0C",X"FE",X"10",X"20",X"08",X"3E",X"01",X"32",X"FF",X"E4",X"32",X"00",X"E5",X"3A",X"A7", + X"E5",X"B7",X"20",X"43",X"3A",X"AE",X"E6",X"B7",X"20",X"10",X"3A",X"B7",X"E5",X"B7",X"28",X"0A", + X"3E",X"16",X"32",X"B6",X"E5",X"3E",X"18",X"32",X"AD",X"E6",X"3E",X"01",X"32",X"9D",X"E5",X"21", + X"4A",X"E4",X"06",X"0A",X"78",X"C6",X"02",X"E6",X"03",X"20",X"05",X"3E",X"17",X"CD",X"42",X"31", + X"7E",X"FE",X"FF",X"20",X"04",X"36",X"12",X"18",X"02",X"36",X"FF",X"3E",X"09",X"CD",X"3E",X"30", + X"10",X"E2",X"3E",X"26",X"CD",X"42",X"31",X"3E",X"02",X"32",X"9D",X"E5",X"3E",X"15",X"32",X"B1", + X"E6",X"3E",X"01",X"32",X"68",X"E5",X"C3",X"29",X"00",X"21",X"32",X"D7",X"CD",X"85",X"31",X"11", + X"23",X"5F",X"CD",X"2D",X"30",X"C9",X"0E",X"06",X"3A",X"B8",X"E5",X"C6",X"31",X"21",X"2E",X"D6", + X"CD",X"6A",X"30",X"11",X"2B",X"5F",X"CD",X"2D",X"30",X"CD",X"9A",X"31",X"C9",X"06",X"20",X"31", + X"50",X"2D",X"20",X"20",X"20",X"20",X"20",X"20",X"1E",X"3C",X"31",X"30",X"30",X"30",X"30",X"3E", + X"06",X"48",X"49",X"2D",X"20",X"20",X"20",X"20",X"20",X"20",X"1E",X"3C",X"52",X"2D",X"20",X"20", + X"20",X"5E",X"5F",X"2D",X"20",X"3E",X"06",X"32",X"50",X"2D",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"00",X"06",X"20",X"52",X"45",X"41",X"44",X"59",X"00",X"06",X"2D",X"50",X"4C",X"41", + X"59",X"45",X"52",X"20",X"00",X"98",X"00",X"04",X"01",X"10",X"01",X"14",X"01",X"17",X"01",X"21", + X"01",X"26",X"01",X"3E",X"01",X"32",X"74",X"E5",X"AF",X"32",X"73",X"E5",X"CD",X"91",X"5F",X"3E", + X"02",X"CD",X"3E",X"30",X"21",X"73",X"E5",X"34",X"7E",X"FE",X"1E",X"38",X"EF",X"C9",X"DD",X"21", + X"00",X"E3",X"06",X"10",X"DD",X"36",X"04",X"00",X"DD",X"36",X"0C",X"00",X"11",X"10",X"00",X"DD", + X"19",X"10",X"F1",X"AF",X"32",X"74",X"E5",X"32",X"A6",X"E5",X"3E",X"1C",X"32",X"73",X"E5",X"CD", + X"91",X"5F",X"3E",X"02",X"CD",X"3E",X"30",X"21",X"73",X"E5",X"35",X"7E",X"FE",X"FF",X"20",X"EF", + X"C9",X"87",X"4F",X"AF",X"47",X"91",X"57",X"CB",X"21",X"78",X"E6",X"03",X"CC",X"AD",X"5F",X"7A", + X"CB",X"7F",X"20",X"02",X"0D",X"91",X"04",X"80",X"57",X"79",X"B8",X"30",X"EC",X"C5",X"D5",X"CB", + X"38",X"CB",X"38",X"30",X"01",X"04",X"CB",X"39",X"CB",X"39",X"30",X"01",X"0C",X"2E",X"10",X"CD", + X"D2",X"5F",X"3A",X"74",X"E5",X"B7",X"28",X"03",X"0D",X"18",X"01",X"0C",X"CD",X"D2",X"5F",X"D1", + X"C1",X"C9",X"51",X"3E",X"18",X"80",X"FE",X"30",X"DC",X"F1",X"5F",X"3E",X"18",X"90",X"D4",X"F1", + X"5F",X"50",X"3E",X"18",X"81",X"FE",X"30",X"DC",X"F1",X"5F",X"3E",X"18",X"91",X"D4",X"F1",X"5F", + X"C9",X"67",X"7D",X"82",X"FE",X"20",X"DC",X"00",X"60",X"7D",X"92",X"D8",X"CD",X"00",X"60",X"C9", + X"C5",X"D5",X"E5",X"6F",X"3A",X"A6",X"E5",X"B7",X"C2",X"3C",X"61",X"7C",X"CB",X"3F",X"CB",X"12", + X"67",X"22",X"D6",X"E5",X"CD",X"D5",X"62",X"7E",X"FE",X"01",X"20",X"08",X"3A",X"D8",X"E5",X"47", + X"0E",X"1F",X"18",X"11",X"FE",X"02",X"20",X"08",X"3A",X"D9",X"E5",X"47",X"0E",X"1D",X"18",X"05", + X"CD",X"55",X"60",X"0E",X"05",X"2A",X"D6",X"E5",X"7C",X"D5",X"CD",X"00",X"2D",X"D1",X"CB",X"42", + X"28",X"02",X"2C",X"2C",X"3A",X"74",X"E5",X"B7",X"20",X"04",X"06",X"04",X"0E",X"00",X"70",X"2C", + X"71",X"E1",X"D1",X"C1",X"C9",X"FE",X"07",X"38",X"01",X"AF",X"FE",X"03",X"38",X"02",X"3D",X"3D", + X"47",X"3A",X"D6",X"E5",X"B7",X"C8",X"3A",X"D7",X"E5",X"B7",X"28",X"0C",X"2B",X"7E",X"FE",X"07", + X"38",X"01",X"AF",X"FE",X"02",X"38",X"01",X"3D",X"4F",X"2A",X"D6",X"E5",X"2D",X"7C",X"C5",X"CD", + X"D5",X"62",X"C1",X"7E",X"FE",X"04",X"38",X"01",X"AF",X"FE",X"02",X"38",X"01",X"3D",X"5F",X"3A", + X"D7",X"E5",X"B7",X"28",X"0C",X"2B",X"7E",X"FE",X"04",X"38",X"01",X"AF",X"FE",X"02",X"38",X"01", + X"3D",X"6F",X"CB",X"42",X"28",X"0D",X"78",X"87",X"80",X"83",X"4F",X"06",X"00",X"21",X"C7",X"60", + X"09",X"46",X"C9",X"78",X"87",X"80",X"83",X"5F",X"87",X"83",X"85",X"87",X"87",X"81",X"4F",X"06", + X"00",X"21",X"D0",X"60",X"09",X"46",X"C9",X"00",X"03",X"00",X"14",X"15",X"14",X"18",X"1B",X"18", + X"00",X"02",X"00",X"00",X"03",X"03",X"03",X"03",X"00",X"02",X"00",X"00",X"01",X"03",X"01",X"01", + X"03",X"03",X"03",X"03",X"01",X"03",X"01",X"01",X"00",X"02",X"00",X"00",X"03",X"03",X"03",X"03", + X"00",X"02",X"00",X"00",X"10",X"12",X"10",X"10",X"13",X"13",X"13",X"13",X"10",X"12",X"10",X"10", + X"11",X"13",X"11",X"11",X"13",X"13",X"13",X"13",X"11",X"13",X"11",X"11",X"10",X"12",X"10",X"10", + X"13",X"13",X"13",X"13",X"10",X"12",X"10",X"10",X"18",X"1A",X"18",X"18",X"1B",X"1B",X"1B",X"1B", + X"18",X"1A",X"18",X"18",X"19",X"1B",X"19",X"19",X"1B",X"1B",X"1B",X"1B",X"19",X"1B",X"19",X"19", + X"18",X"1A",X"18",X"18",X"1B",X"1B",X"1B",X"1B",X"18",X"1A",X"18",X"18",X"7C",X"CB",X"3F",X"CB", + X"12",X"67",X"E5",X"CD",X"D5",X"62",X"7E",X"E1",X"CB",X"42",X"20",X"04",X"0F",X"0F",X"0F",X"0F", + X"E6",X"0F",X"4F",X"42",X"7C",X"CD",X"00",X"2D",X"2C",X"CB",X"40",X"28",X"02",X"2C",X"2C",X"7E", + X"B1",X"77",X"E6",X"C0",X"20",X"0A",X"2D",X"7E",X"FE",X"04",X"20",X"02",X"36",X"00",X"18",X"0C", + X"FE",X"40",X"20",X"08",X"2D",X"7E",X"FE",X"FD",X"20",X"02",X"36",X"FB",X"E1",X"D1",X"C1",X"C9", + X"21",X"00",X"E0",X"54",X"5D",X"13",X"36",X"00",X"01",X"68",X"05",X"ED",X"B0",X"ED",X"5F",X"CD", + X"EC",X"31",X"32",X"70",X"E5",X"FD",X"21",X"58",X"E4",X"3A",X"8E",X"E5",X"FE",X"19",X"38",X"04", + X"D6",X"18",X"18",X"F8",X"32",X"B4",X"E6",X"6F",X"26",X"00",X"29",X"EB",X"21",X"00",X"34",X"19", + X"5E",X"23",X"56",X"1A",X"32",X"AF",X"E6",X"13",X"AF",X"32",X"7A",X"E5",X"1A",X"CB",X"7F",X"20", + X"07",X"FE",X"1F",X"C8",X"32",X"7A",X"E5",X"13",X"1A",X"CB",X"7F",X"28",X"EF",X"CB",X"77",X"28", + X"03",X"13",X"18",X"F4",X"3E",X"01",X"32",X"79",X"E5",X"1A",X"E6",X"1F",X"32",X"78",X"E5",X"32", + X"77",X"E5",X"1A",X"CB",X"6F",X"28",X"09",X"3E",X"02",X"32",X"79",X"E5",X"21",X"77",X"E5",X"34", + X"AF",X"32",X"75",X"E5",X"13",X"1A",X"E6",X"C0",X"FE",X"80",X"20",X"10",X"1A",X"E6",X"1F",X"32", + X"77",X"E5",X"21",X"78",X"E5",X"96",X"3C",X"32",X"79",X"E5",X"18",X"E8",X"1A",X"E6",X"C0",X"FE", + X"C0",X"20",X"B5",X"1A",X"CB",X"6F",X"20",X"06",X"E6",X"1F",X"32",X"75",X"E5",X"13",X"1A",X"E6", + X"E0",X"FE",X"E0",X"20",X"15",X"1A",X"E6",X"1F",X"32",X"76",X"E5",X"13",X"3A",X"76",X"E5",X"21", + X"75",X"E5",X"BE",X"38",X"D7",X"CD",X"3F",X"62",X"18",X"F2",X"CD",X"3F",X"62",X"18",X"CD",X"3A", + X"7A",X"E5",X"FE",X"04",X"28",X"7F",X"FE",X"0B",X"30",X"04",X"FE",X"07",X"30",X"42",X"FE",X"06", + X"28",X"1D",X"3A",X"79",X"E5",X"B7",X"28",X"78",X"21",X"77",X"E5",X"4E",X"47",X"C5",X"3A",X"75", + X"E5",X"69",X"CD",X"D5",X"62",X"C1",X"3A",X"7A",X"E5",X"77",X"0D",X"10",X"F0",X"18",X"61",X"21", + X"FD",X"E4",X"7E",X"FE",X"04",X"30",X"59",X"34",X"47",X"87",X"80",X"4F",X"06",X"00",X"21",X"7B", + X"E5",X"09",X"3A",X"75",X"E5",X"77",X"23",X"ED",X"4B",X"77",X"E5",X"70",X"23",X"71",X"18",X"40", + X"FE",X"08",X"20",X"0E",X"CD",X"0B",X"63",X"01",X"18",X"00",X"FD",X"09",X"21",X"E9",X"E4",X"34", + X"18",X"21",X"FE",X"09",X"20",X"0D",X"FD",X"E5",X"FD",X"21",X"40",X"E4",X"CD",X"0B",X"63",X"FD", + X"E1",X"18",X"10",X"FE",X"07",X"20",X"05",X"CD",X"5A",X"63",X"18",X"07",X"FE",X"0A",X"20",X"03", + X"CD",X"74",X"63",X"18",X"0B",X"3A",X"75",X"E5",X"2A",X"78",X"E5",X"CD",X"D5",X"62",X"36",X"04", + X"21",X"75",X"E5",X"34",X"C9",X"26",X"00",X"29",X"29",X"29",X"44",X"4D",X"29",X"09",X"4F",X"06", + X"00",X"09",X"01",X"00",X"E0",X"09",X"C9",X"11",X"00",X"E4",X"3A",X"FC",X"E4",X"B7",X"28",X"0D", + X"47",X"1A",X"6F",X"13",X"1A",X"67",X"13",X"7D",X"CD",X"AA",X"2F",X"10",X"F4",X"C9",X"00",X"08", + X"0D",X"10",X"18",X"00",X"08",X"08",X"09",X"0B",X"0B",X"0A",X"08",X"FD",X"36",X"0A",X"00",X"FE", + X"09",X"20",X"08",X"AF",X"32",X"0C",X"E5",X"3D",X"32",X"0B",X"E5",X"3E",X"01",X"FD",X"77",X"0F", + X"FD",X"77",X"10",X"3A",X"75",X"E5",X"FD",X"77",X"01",X"FD",X"77",X"04",X"87",X"87",X"87",X"FD", + X"77",X"07",X"3A",X"78",X"E5",X"FD",X"77",X"03",X"FD",X"77",X"05",X"87",X"87",X"87",X"FD",X"77", + X"06",X"3E",X"06",X"FD",X"77",X"09",X"AF",X"FD",X"77",X"00",X"FD",X"77",X"02",X"FD",X"77",X"0A", + X"FD",X"77",X"0C",X"FD",X"77",X"0D",X"FD",X"77",X"0E",X"C9",X"21",X"FC",X"E4",X"7E",X"FE",X"20", + X"D0",X"34",X"87",X"4F",X"06",X"00",X"21",X"00",X"E4",X"09",X"3A",X"75",X"E5",X"77",X"23",X"3A", + X"78",X"E5",X"77",X"C9",X"21",X"70",X"E5",X"7E",X"B7",X"20",X"0C",X"3A",X"78",X"E5",X"32",X"72", + X"E5",X"3A",X"75",X"E5",X"32",X"71",X"E5",X"35",X"C9",X"1F",X"CB",X"11",X"3A",X"FD",X"E4",X"32", + X"69",X"E5",X"DD",X"21",X"7B",X"E5",X"21",X"69",X"E5",X"7E",X"B7",X"C8",X"35",X"DD",X"7E",X"00", + X"DD",X"66",X"01",X"87",X"87",X"87",X"CB",X"3C",X"1F",X"6F",X"11",X"10",X"D0",X"19",X"DD",X"7E", + X"02",X"DD",X"96",X"01",X"3C",X"47",X"CB",X"41",X"28",X"08",X"36",X"17",X"2C",X"2C",X"36",X"17", + X"18",X"06",X"36",X"10",X"2C",X"2C",X"36",X"14",X"2D",X"2D",X"11",X"80",X"00",X"19",X"10",X"E6", + X"11",X"03",X"00",X"DD",X"19",X"18",X"BF",X"3A",X"CD",X"E5",X"4F",X"87",X"81",X"6F",X"26",X"00", + X"29",X"29",X"29",X"29",X"22",X"F6",X"E4",X"21",X"30",X"64",X"06",X"00",X"09",X"7E",X"32",X"F8", + X"E4",X"21",X"39",X"64",X"09",X"7E",X"32",X"F5",X"E4",X"21",X"42",X"64",X"09",X"7E",X"32",X"FB", + X"E4",X"79",X"E6",X"07",X"3C",X"4F",X"21",X"30",X"64",X"09",X"7E",X"32",X"6E",X"E5",X"21",X"42", + X"64",X"09",X"7E",X"32",X"6F",X"E5",X"3A",X"8E",X"E5",X"CD",X"EC",X"31",X"4F",X"06",X"00",X"21", + X"4B",X"64",X"09",X"7E",X"32",X"D8",X"E5",X"21",X"4E",X"64",X"09",X"7E",X"32",X"D9",X"E5",X"C9", + X"00",X"04",X"08",X"0E",X"0A",X"07",X"0F",X"05",X"00",X"00",X"00",X"01",X"00",X"01",X"00",X"00", + X"01",X"00",X"00",X"01",X"01",X"01",X"00",X"01",X"01",X"00",X"01",X"09",X"0A",X"08",X"0D",X"0E", + X"0C",X"AF",X"32",X"89",X"E5",X"7E",X"B7",X"C8",X"3D",X"20",X"24",X"23",X"EB",X"1A",X"6F",X"13", + X"1A",X"13",X"D5",X"CB",X"3F",X"CB",X"10",X"5D",X"57",X"D5",X"CD",X"00",X"2D",X"D1",X"CB",X"40", + X"28",X"02",X"2C",X"2C",X"EB",X"7C",X"CD",X"D5",X"62",X"E5",X"DD",X"E1",X"E1",X"18",X"D6",X"3D", + X"20",X"08",X"23",X"7E",X"32",X"88",X"E5",X"23",X"18",X"CB",X"06",X"01",X"3D",X"20",X"14",X"23", + X"46",X"23",X"CB",X"78",X"28",X"0D",X"78",X"06",X"30",X"E6",X"7F",X"FE",X"02",X"38",X"04",X"3D", + X"32",X"89",X"E5",X"3A",X"88",X"E5",X"E6",X"0F",X"CB",X"4B",X"28",X"0E",X"4F",X"DD",X"7E",X"00", + X"E6",X"F0",X"B1",X"DD",X"77",X"00",X"DD",X"23",X"18",X"0E",X"0F",X"0F",X"0F",X"0F",X"4F",X"DD", + X"7E",X"00",X"E6",X"0F",X"B1",X"DD",X"77",X"00",X"7E",X"12",X"13",X"3A",X"88",X"E5",X"E6",X"F0", + X"12",X"13",X"7B",X"FE",X"70",X"20",X"02",X"1E",X"90",X"FE",X"F0",X"20",X"03",X"1E",X"10",X"14", + X"10",X"C1",X"3A",X"89",X"E5",X"B7",X"28",X"08",X"3D",X"32",X"89",X"E5",X"06",X"30",X"18",X"B3", + X"23",X"C3",X"55",X"64",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"21",X"36",X"D5",X"11",X"1F",X"68",X"CD",X"2D",X"30",X"3E",X"24",X"CD",X"3E",X"30",X"DB",X"04", + X"CB",X"57",X"28",X"2D",X"DB",X"03",X"0F",X"0F",X"E6",X"3C",X"C6",X"10",X"21",X"FA",X"65",X"5F", + X"16",X"00",X"19",X"5E",X"23",X"56",X"23",X"D5",X"7E",X"23",X"66",X"6F",X"11",X"B0",X"D6",X"EB", + X"CD",X"2D",X"30",X"3E",X"24",X"CD",X"3E",X"30",X"D1",X"21",X"B0",X"D7",X"CD",X"2D",X"30",X"18", + X"39",X"DB",X"03",X"07",X"07",X"07",X"F5",X"E6",X"06",X"5F",X"16",X"00",X"21",X"FA",X"65",X"19", + X"5E",X"23",X"56",X"23",X"F1",X"D5",X"07",X"07",X"E6",X"06",X"C6",X"08",X"5F",X"16",X"00",X"21", + X"FA",X"65",X"19",X"7E",X"23",X"66",X"6F",X"11",X"AC",X"D6",X"EB",X"CD",X"2D",X"30",X"3E",X"24", + X"CD",X"3E",X"30",X"D1",X"21",X"AC",X"D7",X"CD",X"2D",X"30",X"06",X"06",X"C5",X"21",X"36",X"D5", + X"11",X"2D",X"68",X"CD",X"2D",X"30",X"3E",X"0C",X"CD",X"3E",X"30",X"21",X"36",X"D5",X"11",X"1F", + X"68",X"CD",X"2D",X"30",X"3E",X"18",X"CD",X"3E",X"30",X"C1",X"10",X"E0",X"C9",X"3A",X"57",X"E4", + X"FE",X"01",X"20",X"0B",X"21",X"28",X"DA",X"11",X"3B",X"68",X"CD",X"2D",X"30",X"18",X"4A",X"3A", + X"57",X"E4",X"FE",X"02",X"20",X"16",X"0E",X"C6",X"21",X"3C",X"DB",X"11",X"55",X"68",X"CD",X"2D", + X"30",X"21",X"BC",X"DB",X"11",X"5A",X"68",X"CD",X"2D",X"30",X"18",X"2D",X"3A",X"57",X"E4",X"FE", + X"03",X"20",X"0B",X"21",X"B2",X"DC",X"11",X"5F",X"68",X"CD",X"2D",X"30",X"18",X"1B",X"3A",X"57", + X"E4",X"FE",X"04",X"20",X"14",X"0E",X"C6",X"21",X"B6",X"DD",X"11",X"6F",X"68",X"CD",X"2D",X"30", + X"21",X"36",X"DE",X"11",X"7A",X"68",X"CD",X"2D",X"30",X"C9",X"C6",X"67",X"DC",X"67",X"F2",X"67", + X"08",X"68",X"1E",X"68",X"87",X"67",X"9C",X"67",X"B1",X"67",X"1E",X"68",X"1E",X"68",X"1E",X"68", + X"1E",X"68",X"1E",X"68",X"1E",X"68",X"1E",X"68",X"28",X"67",X"1E",X"68",X"3B",X"67",X"1E",X"68", + X"4E",X"67",X"1E",X"68",X"61",X"67",X"1E",X"68",X"74",X"67",X"1E",X"68",X"1E",X"68",X"1E",X"68", + X"1E",X"68",X"5C",X"66",X"4A",X"66",X"81",X"66",X"6F",X"66",X"A6",X"66",X"94",X"66",X"CB",X"66", + X"B9",X"66",X"F0",X"66",X"DE",X"66",X"15",X"67",X"03",X"67",X"20",X"36",X"20",X"43",X"4F",X"49", + X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00",X"31",X"32",X"20",X"43", + X"4F",X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20", + X"35",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"00",X"31",X"30",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"53",X"00",X"20",X"34",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"00",X"20",X"38",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32", + X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"33",X"20",X"43",X"4F",X"49",X"4E", + X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00",X"20",X"36",X"20",X"43",X"4F", + X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"32", + X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00", + X"20",X"34",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45", + X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"31",X"20",X"50",X"4C", + X"41",X"59",X"45",X"52",X"00",X"20",X"32",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"32",X"20", + X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20", + X"20",X"36",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F", + X"49",X"4E",X"20",X"20",X"35",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"20",X"31", + X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"34",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53", + X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"33",X"20",X"50",X"4C",X"41",X"59", + X"45",X"52",X"53",X"00",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"32",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"41",X"20",X"2D",X"20",X"33",X"20",X"43",X"4F",X"49", + X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"00",X"41",X"20",X"2D",X"20", + X"32",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"00",X"41",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"31",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"00",X"42",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E", + X"20",X"20",X"36",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"42",X"20",X"2D",X"20", + X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"35",X"20",X"50",X"4C",X"41",X"59",X"45",X"52", + X"53",X"00",X"42",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"20",X"33",X"20", + X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"42",X"20",X"2D",X"20",X"31",X"20",X"43",X"4F", + X"49",X"4E",X"20",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"00",X"02", + X"49",X"4E",X"53",X"45",X"52",X"54",X"20",X"20",X"43",X"4F",X"49",X"4E",X"00",X"02",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"00",X"06",X"40",X"31",X"39",X"38", + X"34",X"20",X"20",X"20",X"49",X"52",X"45",X"4D",X"20",X"43",X"4F",X"52",X"50",X"4F",X"52",X"41", + X"54",X"49",X"4F",X"4E",X"00",X"80",X"82",X"84",X"86",X"00",X"81",X"83",X"85",X"87",X"00",X"02", + X"4C",X"49",X"43",X"45",X"4E",X"53",X"45",X"44",X"20",X"20",X"46",X"52",X"4F",X"4D",X"00",X"68", + X"6A",X"6C",X"6E",X"70",X"72",X"74",X"76",X"78",X"7A",X"00",X"69",X"6B",X"6D",X"6F",X"71",X"73", + X"75",X"77",X"79",X"7B",X"00",X"CD",X"5E",X"5F",X"3E",X"FF",X"32",X"D1",X"E5",X"CD",X"28",X"6D", + X"3E",X"A8",X"CD",X"3E",X"30",X"3E",X"01",X"32",X"A9",X"E5",X"CD",X"5E",X"5F",X"C3",X"CF",X"25", + X"31",X"00",X"E8",X"21",X"10",X"D0",X"36",X"00",X"54",X"5D",X"13",X"01",X"57",X"15",X"ED",X"B0", + X"AF",X"32",X"A7",X"E5",X"32",X"9D",X"E5",X"32",X"6A",X"E5",X"FB",X"3E",X"50",X"32",X"B5",X"E5", + X"21",X"B5",X"E5",X"7E",X"FE",X"14",X"38",X"0B",X"21",X"36",X"D5",X"11",X"91",X"69",X"CD",X"2D", + X"30",X"18",X"12",X"B7",X"20",X"02",X"36",X"28",X"21",X"26",X"D5",X"36",X"00",X"54",X"5D",X"13", + X"01",X"35",X"00",X"ED",X"B0",X"11",X"A0",X"69",X"3A",X"B2",X"E5",X"FE",X"02",X"38",X"03",X"11", + X"B2",X"69",X"21",X"34",X"D7",X"CD",X"2D",X"30",X"CD",X"7F",X"69",X"21",X"AA",X"E5",X"7E",X"E6", + X"0A",X"FE",X"0A",X"20",X"0E",X"3A",X"B2",X"E5",X"3D",X"27",X"32",X"B2",X"E5",X"AF",X"32",X"B7", + X"E5",X"18",X"1B",X"7E",X"E6",X"05",X"FE",X"05",X"C2",X"C0",X"68",X"3A",X"B2",X"E5",X"FE",X"02", + X"DA",X"C0",X"68",X"D6",X"02",X"27",X"32",X"B2",X"E5",X"3E",X"01",X"32",X"B7",X"E5",X"AF",X"32", + X"B9",X"E5",X"32",X"B8",X"E5",X"32",X"90",X"E5",X"32",X"96",X"E5",X"3C",X"32",X"B2",X"E6",X"CB", + X"41",X"20",X"06",X"32",X"8E",X"E5",X"32",X"94",X"E5",X"3A",X"E0",X"E5",X"32",X"8F",X"E5",X"32", + X"95",X"E5",X"21",X"00",X"00",X"22",X"91",X"E5",X"22",X"92",X"E5",X"22",X"97",X"E5",X"22",X"98", + X"E5",X"21",X"80",X"00",X"DB",X"04",X"CB",X"47",X"20",X"02",X"2D",X"2D",X"22",X"E3",X"E5",X"21", + X"10",X"D3",X"36",X"00",X"54",X"5D",X"13",X"01",X"7F",X"09",X"ED",X"B0",X"C3",X"0F",X"5D",X"21", + X"42",X"DC",X"11",X"C6",X"69",X"CD",X"2D",X"30",X"0E",X"02",X"11",X"B2",X"E5",X"CD",X"5F",X"30", + X"C9",X"04",X"50",X"55",X"53",X"48",X"20",X"20",X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"00", + X"04",X"4F",X"4E",X"4C",X"59",X"20",X"20",X"02",X"31",X"20",X"04",X"50",X"4C",X"41",X"59",X"45", + X"52",X"00",X"02",X"31",X"20",X"04",X"4F",X"52",X"20",X"02",X"32",X"20",X"20",X"04",X"50",X"4C", + X"41",X"59",X"45",X"52",X"53",X"00",X"04",X"43",X"52",X"45",X"44",X"49",X"54",X"20",X"00",X"06", + X"31",X"53",X"54",X"20",X"20",X"42",X"4C",X"4F",X"43",X"4B",X"00",X"21",X"30",X"D3",X"11",X"8F", + X"6A",X"CD",X"2D",X"30",X"3E",X"22",X"CD",X"42",X"31",X"3E",X"0A",X"32",X"88",X"E5",X"3E",X"38", + X"32",X"B6",X"E5",X"3E",X"50",X"32",X"B5",X"E5",X"21",X"B6",X"E5",X"7E",X"B7",X"20",X"09",X"36", + X"38",X"21",X"88",X"E5",X"35",X"CA",X"89",X"6A",X"21",X"B5",X"E5",X"7E",X"FE",X"14",X"38",X"1C", + X"3A",X"B2",X"E5",X"B7",X"20",X"0B",X"21",X"24",X"D5",X"11",X"A1",X"6A",X"CD",X"2D",X"30",X"18", + X"09",X"21",X"24",X"D5",X"11",X"C6",X"6A",X"CD",X"2D",X"30",X"18",X"12",X"B7",X"20",X"02",X"36", + X"27",X"21",X"24",X"D5",X"36",X"00",X"54",X"5D",X"13",X"01",X"35",X"00",X"ED",X"B0",X"CD",X"7F", + X"69",X"21",X"3A",X"D9",X"11",X"BE",X"6A",X"CD",X"2D",X"30",X"0E",X"06",X"3A",X"88",X"E5",X"3D", + X"CD",X"6A",X"30",X"21",X"AA",X"E5",X"7E",X"E6",X"0A",X"FE",X"0A",X"28",X"07",X"7E",X"E6",X"05", + X"FE",X"05",X"20",X"22",X"3A",X"B2",X"E5",X"B7",X"CA",X"F8",X"69",X"D6",X"01",X"27",X"32",X"B2", + X"E5",X"AF",X"32",X"90",X"E5",X"3A",X"E0",X"E5",X"32",X"8F",X"E5",X"21",X"00",X"00",X"22",X"91", + X"E5",X"22",X"92",X"E5",X"18",X"03",X"C3",X"F8",X"69",X"3E",X"00",X"CD",X"42",X"31",X"C9",X"03", + X"54",X"4F",X"20",X"43",X"4F",X"4E",X"54",X"49",X"4E",X"55",X"45",X"20",X"47",X"41",X"4D",X"45", + X"00",X"04",X"49",X"4E",X"53",X"45",X"52",X"54",X"20",X"43",X"4F",X"49",X"4E",X"20",X"41",X"4E", + X"44",X"20",X"50",X"55",X"53",X"48",X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"00",X"03",X"54", + X"49",X"4D",X"45",X"20",X"20",X"00",X"04",X"20",X"20",X"20",X"20",X"20",X"50",X"55",X"53",X"48", + X"20",X"53",X"54",X"41",X"52",X"54",X"20",X"42",X"55",X"54",X"54",X"4F",X"4E",X"20",X"20",X"20", + X"20",X"20",X"00",X"3E",X"13",X"CD",X"42",X"31",X"CD",X"5E",X"5F",X"3A",X"90",X"E5",X"FE",X"02", + X"20",X"26",X"AF",X"32",X"B2",X"E6",X"CD",X"A8",X"6B",X"CD",X"DB",X"69",X"3E",X"01",X"32",X"B2", + X"E6",X"3A",X"90",X"E5",X"FE",X"00",X"20",X"10",X"21",X"10",X"D3",X"36",X"00",X"54",X"5D",X"13", + X"01",X"7F",X"09",X"ED",X"B0",X"C3",X"0F",X"5D",X"3A",X"B7",X"E5",X"FE",X"00",X"28",X"07",X"3A", + X"96",X"E5",X"FE",X"02",X"20",X"2E",X"3A",X"90",X"E5",X"FE",X"02",X"28",X"10",X"21",X"10",X"D3", + X"36",X"00",X"54",X"5D",X"13",X"01",X"7F",X"09",X"ED",X"B0",X"C3",X"0F",X"5D",X"CD",X"5E",X"5F", + X"AF",X"32",X"B2",X"E6",X"32",X"B9",X"E5",X"3E",X"01",X"CD",X"3E",X"30",X"3E",X"01",X"32",X"A7", + X"E5",X"C3",X"CF",X"25",X"21",X"10",X"D3",X"36",X"00",X"54",X"5D",X"13",X"01",X"7F",X"09",X"ED", + X"B0",X"21",X"B8",X"E5",X"7E",X"B7",X"20",X"03",X"34",X"18",X"02",X"36",X"00",X"CD",X"96",X"6B", + X"DB",X"04",X"CB",X"4F",X"28",X"1D",X"21",X"B9",X"E5",X"CB",X"46",X"20",X"03",X"34",X"18",X"01", + X"35",X"E6",X"01",X"AE",X"21",X"80",X"00",X"20",X"02",X"2D",X"2D",X"22",X"E3",X"E5",X"3E",X"01", + X"CD",X"3E",X"30",X"C3",X"0F",X"5D",X"21",X"8E",X"E5",X"11",X"94",X"E5",X"06",X"06",X"1A",X"4E", + X"77",X"79",X"12",X"23",X"13",X"10",X"F7",X"C9",X"0E",X"00",X"16",X"15",X"21",X"E5",X"E5",X"06", + X"00",X"09",X"DD",X"21",X"91",X"E5",X"06",X"03",X"DD",X"7E",X"00",X"BE",X"38",X"12",X"28",X"0B", + X"15",X"3E",X"0A",X"81",X"4F",X"FE",X"C8",X"28",X"07",X"18",X"E1",X"DD",X"23",X"23",X"10",X"E8", + X"7A",X"32",X"D1",X"E5",X"79",X"B7",X"C8",X"D6",X"0A",X"11",X"E5",X"E5",X"28",X"08",X"4F",X"06", + X"00",X"21",X"EF",X"E5",X"ED",X"B0",X"21",X"91",X"E5",X"01",X"03",X"00",X"ED",X"B0",X"62",X"6B", + X"36",X"00",X"13",X"01",X"05",X"00",X"ED",X"B0",X"3A",X"8E",X"E5",X"12",X"CD",X"28",X"6D",X"21", + X"B8",X"D2",X"11",X"22",X"6D",X"CD",X"2D",X"30",X"DD",X"2A",X"D2",X"E5",X"11",X"16",X"00",X"DD", + X"19",X"FD",X"2A",X"D4",X"E5",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"0E",X"41",X"1E",X"03",X"3E", + X"14",X"32",X"88",X"E5",X"21",X"C2",X"D2",X"C5",X"0E",X"06",X"3A",X"88",X"E5",X"CD",X"48",X"30", + X"C1",X"06",X"04",X"3E",X"0E",X"32",X"B6",X"E5",X"AF",X"32",X"89",X"E5",X"3A",X"D0",X"E5",X"B7", + X"20",X"03",X"57",X"18",X"44",X"7A",X"B7",X"20",X"13",X"3A",X"D0",X"E5",X"FE",X"0A",X"20",X"04", + X"14",X"0C",X"18",X"06",X"FE",X"05",X"20",X"02",X"15",X"0D",X"18",X"1F",X"3A",X"D0",X"E5",X"FE", + X"AA",X"20",X"0B",X"14",X"7A",X"FE",X"18",X"20",X"03",X"0C",X"16",X"0C",X"18",X"0D",X"FE",X"55", + X"20",X"09",X"15",X"7A",X"FE",X"E8",X"20",X"03",X"0D",X"16",X"F4",X"79",X"FE",X"5D",X"38",X"02", + X"0E",X"41",X"79",X"FE",X"41",X"30",X"02",X"0E",X"5C",X"3A",X"CF",X"E5",X"FE",X"05",X"28",X"04", + X"FE",X"0A",X"20",X"21",X"21",X"89",X"E5",X"3A",X"B6",X"E5",X"BE",X"38",X"18",X"3C",X"77",X"79", + X"FE",X"5C",X"28",X"3D",X"FD",X"71",X"00",X"FD",X"23",X"DD",X"71",X"00",X"0E",X"41",X"DD",X"23", + X"DD",X"23",X"1D",X"28",X"2C",X"CB",X"40",X"28",X"05",X"DD",X"71",X"00",X"18",X"03",X"DD",X"71", + X"00",X"3A",X"AA",X"E5",X"B7",X"20",X"1A",X"3E",X"01",X"CD",X"3E",X"30",X"3A",X"B6",X"E5",X"B7", + X"C2",X"3C",X"6C",X"05",X"C2",X"33",X"6C",X"21",X"88",X"E5",X"35",X"7E",X"FE",X"FF",X"C2",X"24", + X"6C",X"DD",X"36",X"00",X"00",X"3E",X"38",X"CD",X"3E",X"30",X"3E",X"13",X"CD",X"42",X"31",X"CD", + X"5E",X"5F",X"C9",X"03",X"42",X"45",X"53",X"54",X"20",X"20",X"06",X"32",X"30",X"20",X"20",X"03", + X"50",X"4C",X"41",X"59",X"45",X"52",X"53",X"00",X"02",X"20",X"4E",X"4F",X"2E",X"53",X"43",X"4F", + X"52",X"45",X"53",X"20",X"20",X"4E",X"41",X"4D",X"45",X"20",X"52",X"4F",X"55",X"4E",X"44",X"20", + X"20",X"00",X"02",X"54",X"49",X"4D",X"45",X"00",X"21",X"B0",X"D1",X"11",X"F3",X"6C",X"CD",X"2D", + X"30",X"21",X"90",X"D3",X"11",X"08",X"6D",X"CD",X"2D",X"30",X"11",X"08",X"6D",X"CD",X"2D",X"30", + X"11",X"E5",X"E5",X"21",X"C2",X"DD",X"3A",X"D1",X"E5",X"4F",X"06",X"14",X"78",X"FE",X"0A",X"20", + X"03",X"21",X"92",X"DD",X"B9",X"20",X"07",X"22",X"D2",X"E5",X"ED",X"53",X"D4",X"E5",X"C5",X"E5", + X"41",X"0E",X"02",X"B8",X"20",X"02",X"0E",X"06",X"FE",X"0A",X"30",X"07",X"2C",X"2C",X"CD",X"6A", + X"30",X"18",X"03",X"CD",X"48",X"30",X"2C",X"2C",X"79",X"FE",X"02",X"20",X"02",X"0E",X"04",X"06", + X"03",X"CD",X"5F",X"30",X"10",X"FB",X"2C",X"2C",X"2C",X"2C",X"06",X"03",X"1A",X"77",X"2C",X"71", + X"2C",X"13",X"10",X"F8",X"7D",X"C6",X"06",X"6F",X"13",X"13",X"13",X"1A",X"CD",X"48",X"30",X"13", + X"E1",X"C1",X"25",X"10",X"A7",X"C9",X"01",X"03",X"00",X"11",X"9A",X"E5",X"21",X"7B",X"6E",X"ED", + X"B0",X"01",X"C8",X"00",X"11",X"E5",X"E5",X"21",X"BD",X"6D",X"ED",X"B0",X"C9",X"01",X"01",X"00", + X"53",X"54",X"45",X"20",X"20",X"20",X"01",X"01",X"03",X"50",X"4F",X"49",X"4E",X"20",X"20",X"20", + X"01",X"01",X"08",X"80",X"45",X"48",X"45",X"20",X"20",X"20",X"02",X"01",X"10",X"30",X"4D",X"49", + X"54",X"20",X"20",X"20",X"01",X"01",X"21",X"50",X"41",X"41",X"54",X"20",X"20",X"20",X"01",X"01", + X"23",X"50",X"47",X"4E",X"41",X"20",X"20",X"20",X"02",X"01",X"28",X"00",X"4F",X"41",X"59",X"20", + X"20",X"20",X"02",X"01",X"38",X"70",X"4E",X"52",X"41",X"20",X"20",X"20",X"02",X"01",X"60",X"10", + X"4F",X"49",X"57",X"20",X"20",X"20",X"02",X"01",X"89",X"90",X"4B",X"48",X"4F",X"20",X"20",X"20", + X"02",X"02",X"66",X"00",X"48",X"4E",X"49",X"20",X"20",X"20",X"02",X"02",X"77",X"50",X"53",X"41", + X"4F",X"20",X"20",X"20",X"02",X"03",X"12",X"50",X"55",X"48",X"59",X"20",X"20",X"20",X"02",X"03", + X"33",X"00",X"42",X"53",X"41",X"20",X"20",X"20",X"03",X"03",X"65",X"00",X"41",X"49",X"57",X"20", + X"20",X"20",X"03",X"03",X"70",X"50",X"4B",X"41",X"45",X"20",X"20",X"20",X"04",X"03",X"88",X"00", + X"4D",X"4B",X"4D",X"20",X"20",X"20",X"03",X"04",X"01",X"50",X"45",X"49",X"41",X"20",X"20",X"20", + X"03",X"04",X"32",X"00",X"52",X"4B",X"47",X"20",X"20",X"20",X"03",X"04",X"85",X"40",X"49",X"49", + X"4F",X"20",X"20",X"20",X"04",X"F9",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"31",X"00",X"E8",X"11",X"00",X"20",X"CD",X"2D",X"6F",X"22",X"74",X"00",X"CD",X"2D",X"6F",X"22", + X"76",X"00",X"CD",X"2D",X"6F",X"22",X"78",X"00",X"11",X"00",X"00",X"CD",X"2D",X"6F",X"22",X"72", + X"00",X"11",X"FF",X"FF",X"EB",X"A7",X"ED",X"52",X"22",X"70",X"00",X"18",X"FE",X"01",X"00",X"20", + X"21",X"00",X"00",X"1A",X"85",X"6F",X"3E",X"00",X"8C",X"67",X"13",X"0B",X"78",X"B1",X"20",X"F3", + X"C9",X"F3",X"ED",X"46",X"31",X"00",X"E8",X"DD",X"21",X"4E",X"6F",X"C3",X"90",X"72",X"0E",X"05", + X"3E",X"FF",X"ED",X"79",X"0C",X"ED",X"79",X"0C",X"ED",X"79",X"21",X"00",X"E1",X"36",X"00",X"54", + X"5D",X"13",X"01",X"FF",X"01",X"ED",X"B0",X"FB",X"01",X"00",X"80",X"0B",X"79",X"B0",X"20",X"FB", + X"F3",X"AF",X"5F",X"16",X"20",X"21",X"00",X"E0",X"0E",X"10",X"06",X"00",X"77",X"23",X"3C",X"15", + X"28",X"07",X"10",X"F8",X"0D",X"20",X"F3",X"18",X"05",X"16",X"20",X"3C",X"18",X"F4",X"7B",X"16", + X"20",X"21",X"00",X"E0",X"0E",X"10",X"06",X"00",X"BE",X"C2",X"95",X"71",X"23",X"3C",X"15",X"28", + X"07",X"10",X"F5",X"0D",X"20",X"F0",X"18",X"05",X"3C",X"16",X"20",X"18",X"F4",X"7B",X"3C",X"FE", + X"0F",X"20",X"BF",X"31",X"00",X"E8",X"CD",X"F2",X"77",X"AF",X"32",X"01",X"E0",X"16",X"20",X"0E", + X"10",X"21",X"00",X"D0",X"06",X"00",X"77",X"23",X"3C",X"15",X"28",X"07",X"10",X"F8",X"0D",X"20", + X"F3",X"18",X"05",X"3C",X"16",X"20",X"18",X"F4",X"3A",X"01",X"E0",X"16",X"20",X"21",X"00",X"D0", + X"0E",X"10",X"06",X"00",X"CD",X"35",X"72",X"23",X"3C",X"15",X"28",X"07",X"10",X"F6",X"0D",X"20", + X"F1",X"18",X"05",X"3C",X"16",X"20",X"18",X"F4",X"3A",X"01",X"E0",X"3C",X"FE",X"0F",X"20",X"BA", + X"DD",X"21",X"BF",X"70",X"CD",X"90",X"72",X"21",X"0F",X"7A",X"DD",X"21",X"BF",X"70",X"CD",X"28", + X"71",X"CD",X"AF",X"70",X"CD",X"F2",X"77",X"3E",X"03",X"32",X"01",X"E7",X"CD",X"9E",X"79",X"3E", + X"01",X"32",X"00",X"E3",X"32",X"02",X"E3",X"DB",X"00",X"2F",X"0F",X"0F",X"30",X"F9",X"3E",X"03", + X"32",X"01",X"E7",X"CD",X"B6",X"77",X"21",X"AA",X"7B",X"CD",X"D5",X"77",X"3A",X"01",X"E7",X"06", + X"06",X"CD",X"4A",X"7D",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"30",X"14", + X"3A",X"01",X"E7",X"07",X"4F",X"06",X"00",X"DD",X"21",X"98",X"7B",X"DD",X"09",X"DD",X"66",X"01", + X"DD",X"6E",X"00",X"E9",X"CD",X"9E",X"79",X"CD",X"9E",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79", + X"DB",X"01",X"2F",X"0F",X"38",X"05",X"0F",X"38",X"1C",X"18",X"C9",X"3A",X"01",X"E7",X"FE",X"08", + X"CA",X"44",X"70",X"06",X"04",X"CD",X"4A",X"7D",X"C6",X"01",X"32",X"01",X"E7",X"06",X"06",X"CD", + X"4A",X"7D",X"C3",X"44",X"70",X"3A",X"01",X"E7",X"FE",X"03",X"CA",X"44",X"70",X"06",X"04",X"CD", + X"4A",X"7D",X"C6",X"FF",X"32",X"01",X"E7",X"06",X"06",X"CD",X"4A",X"7D",X"C3",X"44",X"70",X"11", + X"00",X"00",X"AF",X"32",X"00",X"E7",X"06",X"04",X"C5",X"CD",X"C0",X"70",X"C1",X"10",X"F9",X"C9", + X"21",X"00",X"00",X"06",X"20",X"1A",X"85",X"30",X"01",X"24",X"6F",X"1C",X"20",X"F7",X"14",X"10", + X"F4",X"D5",X"E5",X"3A",X"00",X"E7",X"21",X"72",X"00",X"87",X"85",X"6F",X"5E",X"23",X"56",X"E1", + X"7A",X"BC",X"20",X"09",X"7B",X"BD",X"20",X"05",X"21",X"2F",X"7A",X"18",X"03",X"21",X"38",X"7A", + X"11",X"83",X"E7",X"01",X"09",X"00",X"ED",X"B0",X"11",X"00",X"01",X"21",X"A0",X"D1",X"3A",X"00", + X"E7",X"A7",X"28",X"04",X"47",X"19",X"10",X"FD",X"22",X"81",X"E7",X"3E",X"08",X"32",X"80",X"E7", + X"3A",X"00",X"E7",X"C6",X"30",X"32",X"86",X"E7",X"21",X"00",X"E7",X"34",X"21",X"80",X"E7",X"DD", + X"21",X"BF",X"70",X"CD",X"28",X"71",X"D1",X"C9",X"7E",X"23",X"FE",X"00",X"28",X"12",X"5E",X"23", + X"56",X"23",X"4F",X"7E",X"12",X"13",X"3E",X"04",X"12",X"23",X"13",X"0D",X"20",X"F5",X"18",X"E8", + X"DD",X"E9",X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38",X"02",X"C6",X"07", + X"FD",X"77",X"00",X"FD",X"36",X"01",X"04",X"DD",X"E9",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38", + X"02",X"C6",X"07",X"FD",X"77",X"00",X"FD",X"36",X"01",X"04",X"DD",X"E9",X"F5",X"0F",X"0F",X"0F", + X"0F",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38",X"02",X"C6",X"07",X"FD",X"77",X"00",X"FD",X"36", + X"01",X"04",X"F1",X"E6",X"0F",X"C6",X"30",X"FE",X"3A",X"38",X"02",X"C6",X"07",X"FD",X"77",X"02", + X"FD",X"36",X"03",X"04",X"C9",X"08",X"D9",X"DD",X"21",X"9E",X"71",X"C3",X"15",X"72",X"21",X"1B", + X"7A",X"DD",X"21",X"A8",X"71",X"C3",X"28",X"71",X"D9",X"FD",X"21",X"B8",X"D0",X"DD",X"21",X"B5", + X"71",X"7C",X"C3",X"42",X"71",X"FD",X"23",X"FD",X"23",X"DD",X"21",X"C1",X"71",X"7C",X"C3",X"59", + X"71",X"DD",X"21",X"CD",X"71",X"7D",X"FD",X"23",X"FD",X"23",X"C3",X"42",X"71",X"DD",X"21",X"D9", + X"71",X"7D",X"FD",X"23",X"FD",X"23",X"C3",X"59",X"71",X"08",X"D9",X"FD",X"23",X"FD",X"23",X"FD", + X"23",X"FD",X"23",X"DD",X"21",X"EB",X"71",X"5F",X"C3",X"42",X"71",X"FD",X"23",X"FD",X"23",X"DD", + X"21",X"F7",X"71",X"7B",X"C3",X"59",X"71",X"08",X"D9",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"FD", + X"23",X"DD",X"21",X"09",X"72",X"7E",X"C3",X"42",X"71",X"FD",X"23",X"FD",X"23",X"7E",X"DD",X"21", + X"23",X"72",X"C3",X"59",X"71",X"21",X"01",X"D0",X"01",X"FF",X"0F",X"36",X"00",X"54",X"5D",X"ED", + X"B0",X"DD",X"E9",X"CD",X"9E",X"79",X"DB",X"00",X"0F",X"38",X"06",X"0F",X"DA",X"B3",X"6F",X"18", + X"F2",X"08",X"C3",X"9C",X"6F",X"BE",X"C8",X"F5",X"E5",X"DD",X"21",X"40",X"72",X"C3",X"90",X"72", + X"21",X"1B",X"7A",X"DD",X"21",X"4A",X"72",X"C3",X"28",X"71",X"E1",X"FD",X"21",X"B8",X"D0",X"7C", + X"CD",X"6C",X"71",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"7D",X"CD",X"6C",X"71",X"F1", + X"F5",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"FD",X"23",X"CD",X"6C",X"71",X"FD",X"23",X"FD",X"23", + X"FD",X"23",X"FD",X"23",X"7E",X"CD",X"6C",X"71",X"CD",X"9E",X"79",X"CD",X"9E",X"79",X"DB",X"00", + X"0F",X"DA",X"89",X"72",X"0F",X"38",X"04",X"18",X"EF",X"F1",X"C9",X"F1",X"C1",X"C3",X"00",X"70", + X"21",X"01",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D",X"13",X"13",X"CD",X"A7",X"79",X"21", + X"00",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D",X"13",X"13",X"CD",X"A7",X"79",X"DD",X"E9", + X"3E",X"FF",X"D3",X"05",X"CD",X"B6",X"77",X"21",X"41",X"7A",X"CD",X"D5",X"77",X"DB",X"03",X"21", + X"AE",X"D1",X"CD",X"33",X"76",X"DB",X"04",X"21",X"AE",X"D2",X"CD",X"33",X"76",X"CD",X"E4",X"72", + X"CD",X"72",X"73",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"EE",X"FF",X"0F",X"0F",X"DA", + X"33",X"70",X"18",X"D9",X"21",X"87",X"74",X"CD",X"D5",X"77",X"CD",X"B0",X"73",X"DB",X"04",X"EE", + X"FF",X"CB",X"57",X"28",X"4B",X"21",X"FC",X"73",X"CD",X"D5",X"77",X"DB",X"03",X"EE",X"FF",X"0F", + X"0F",X"0F",X"0F",X"11",X"00",X"00",X"21",X"90",X"73",X"01",X"00",X"05",X"E6",X"0F",X"20",X"0A", + X"19",X"5E",X"23",X"66",X"6B",X"CD",X"D5",X"77",X"18",X"25",X"0C",X"1C",X"1C",X"B9",X"20",X"02", + X"18",X"EE",X"10",X"F6",X"01",X"08",X"05",X"1C",X"1C",X"B9",X"20",X"02",X"18",X"09",X"0C",X"10", + X"F6",X"FE",X"0F",X"20",X"0A",X"1C",X"1C",X"19",X"5E",X"23",X"66",X"6B",X"CD",X"D5",X"77",X"C9", + X"21",X"2A",X"74",X"CD",X"D5",X"77",X"DB",X"03",X"EE",X"FF",X"21",X"A8",X"73",X"11",X"00",X"00", + X"0F",X"0F",X"0F",X"0F",X"E6",X"0F",X"28",X"11",X"1C",X"1C",X"FE",X"08",X"28",X"0B",X"1C",X"1C", + X"FE",X"0A",X"28",X"05",X"1C",X"1C",X"FE",X"0F",X"C0",X"19",X"5E",X"23",X"66",X"6B",X"CD",X"D5", + X"77",X"C9",X"DB",X"04",X"2F",X"0F",X"0F",X"38",X"13",X"AF",X"87",X"21",X"AE",X"74",X"85",X"6F", + X"3E",X"00",X"8C",X"67",X"5E",X"23",X"66",X"6B",X"CD",X"D5",X"77",X"C9",X"3E",X"01",X"18",X"EA", + X"D2",X"74",X"E3",X"74",X"F5",X"74",X"07",X"75",X"19",X"75",X"2B",X"75",X"3D",X"75",X"4F",X"75", + X"61",X"75",X"73",X"75",X"85",X"75",X"97",X"75",X"A8",X"75",X"CB",X"75",X"EE",X"75",X"11",X"76", + X"DB",X"03",X"EE",X"FF",X"47",X"E6",X"03",X"28",X"25",X"FE",X"01",X"28",X"26",X"FE",X"02",X"28", + X"27",X"21",X"47",X"74",X"CD",X"D5",X"77",X"78",X"0F",X"0F",X"47",X"E6",X"03",X"28",X"1E",X"FE", + X"01",X"28",X"1F",X"FE",X"02",X"28",X"20",X"21",X"52",X"74",X"CD",X"D5",X"77",X"C9",X"21",X"57", + X"74",X"18",X"E1",X"21",X"67",X"74",X"18",X"DC",X"21",X"77",X"74",X"18",X"D7",X"21",X"62",X"74", + X"18",X"E8",X"21",X"72",X"74",X"18",X"E3",X"21",X"82",X"74",X"18",X"DE",X"0B",X"92",X"D3",X"43", + X"4F",X"49",X"4E",X"20",X"4D",X"4F",X"44",X"45",X"20",X"20",X"0B",X"12",X"D4",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"0E",X"30",X"D4",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"00",X"0B",X"92",X"D3",X"43",X"4F",X"49", + X"4E",X"20",X"4D",X"4F",X"44",X"45",X"20",X"41",X"0B",X"12",X"D4",X"43",X"4F",X"49",X"4E",X"20", + X"4D",X"4F",X"44",X"45",X"20",X"42",X"00",X"07",X"30",X"D6",X"31",X"35",X"35",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"35",X"00",X"07",X"30",X"D6",X"31",X"38",X"30",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"33",X"00",X"07",X"30",X"D6",X"31",X"37",X"30",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"32",X"00",X"07",X"30",X"D6",X"31",X"36",X"30",X"20",X"53",X"45", + X"43",X"00",X"01",X"B0",X"D6",X"34",X"00",X"09",X"12",X"D5",X"42",X"4F",X"44",X"59",X"20",X"54", + X"59",X"50",X"45",X"09",X"12",X"D6",X"50",X"4C",X"41",X"59",X"20",X"54",X"49",X"4D",X"45",X"0B", + X"92",X"D6",X"43",X"4F",X"4D",X"4D",X"41",X"4E",X"44",X"4F",X"4D",X"45",X"4E",X"00",X"B2",X"74", + X"C2",X"74",X"0C",X"30",X"D5",X"54",X"41",X"42",X"4C",X"45",X"20",X"54",X"59",X"50",X"45",X"20", + X"20",X"00",X"0C",X"30",X"D5",X"55",X"50",X"52",X"49",X"47",X"48",X"54",X"20",X"54",X"59",X"50", + X"45",X"00",X"0D",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"31",X"20",X"50",X"4C", + X"41",X"59",X"00",X"0E",X"B0",X"D3",X"32",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20", + X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"33",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20", + X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"34",X"20",X"43",X"4F",X"49",X"4E", + X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"35",X"20",X"43",X"4F", + X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3",X"36",X"20", + X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"00",X"0E",X"B0",X"D3", + X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E", + X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"33",X"20",X"50",X"4C",X"41",X"59",X"53", + X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"34",X"20",X"50",X"4C",X"41", + X"59",X"53",X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"35",X"20",X"50", + X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"36", + X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0",X"D3",X"20",X"20",X"20",X"20",X"46",X"52", + X"45",X"45",X"20",X"20",X"20",X"20",X"20",X"00",X"0E",X"B0",X"D3",X"31",X"20",X"43",X"4F",X"49", + X"4E",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"20",X"0E",X"30",X"D4",X"31",X"20",X"43",X"4F", + X"49",X"4E",X"20",X"32",X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0",X"D3",X"32",X"20", + X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"0E",X"30",X"D4",X"31", + X"20",X"43",X"4F",X"49",X"4E",X"20",X"33",X"20",X"50",X"4C",X"41",X"59",X"53",X"00",X"0E",X"B0", + X"D3",X"33",X"20",X"43",X"4F",X"49",X"4E",X"53",X"20",X"31",X"20",X"50",X"4C",X"41",X"59",X"0E", + X"30",X"D4",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"35",X"20",X"50",X"4C",X"41",X"59",X"53", + X"00",X"0E",X"B0",X"D3",X"20",X"20",X"20",X"20",X"46",X"52",X"45",X"45",X"20",X"20",X"20",X"20", + X"20",X"0E",X"30",X"D4",X"31",X"20",X"43",X"4F",X"49",X"4E",X"20",X"36",X"20",X"50",X"4C",X"41", + X"59",X"53",X"00",X"EE",X"FF",X"06",X"08",X"23",X"36",X"04",X"2B",X"0F",X"38",X"04",X"36",X"30", + X"18",X"02",X"36",X"31",X"23",X"23",X"23",X"23",X"10",X"ED",X"C9",X"CD",X"B6",X"77",X"21",X"00", + X"D0",X"11",X"05",X"08",X"01",X"00",X"08",X"72",X"23",X"73",X"23",X"0B",X"78",X"B1",X"20",X"F7", + X"21",X"00",X"E1",X"11",X"01",X"E1",X"36",X"00",X"01",X"00",X"01",X"ED",X"B0",X"FB",X"21",X"A3", + X"76",X"11",X"00",X"E1",X"01",X"20",X"00",X"ED",X"B0",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD", + X"95",X"79",X"DB",X"00",X"2F",X"0F",X"0F",X"30",X"F0",X"21",X"00",X"E1",X"11",X"01",X"E1",X"36", + X"00",X"01",X"00",X"01",X"ED",X"B0",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"F3", + X"C3",X"33",X"70",X"13",X"00",X"C0",X"00",X"10",X"80",X"A0",X"00",X"13",X"00",X"40",X"01",X"10", + X"00",X"A0",X"00",X"13",X"00",X"C0",X"00",X"10",X"C0",X"60",X"01",X"13",X"00",X"40",X"01",X"10", + X"40",X"60",X"01",X"00",X"03",X"00",X"80",X"00",X"10",X"00",X"80",X"00",X"03",X"00",X"80",X"00", + X"10",X"01",X"80",X"00",X"03",X"01",X"80",X"00",X"10",X"00",X"80",X"00",X"03",X"01",X"80",X"00", + X"10",X"01",X"80",X"11",X"00",X"C0",X"01",X"00",X"01",X"ED",X"B0",X"C9",X"21",X"00",X"E1",X"11", + X"01",X"E1",X"36",X"00",X"01",X"00",X"01",X"ED",X"B0",X"AF",X"32",X"06",X"E3",X"67",X"6F",X"22", + X"0D",X"E7",X"CD",X"B6",X"77",X"21",X"DF",X"7A",X"CD",X"D5",X"77",X"FB",X"06",X"08",X"DB",X"00", + X"2F",X"21",X"C0",X"D2",X"CD",X"38",X"77",X"06",X"08",X"DB",X"01",X"2F",X"21",X"C0",X"D4",X"CD", + X"38",X"77",X"06",X"08",X"DB",X"02",X"2F",X"21",X"C0",X"D6",X"CD",X"38",X"77",X"06",X"08",X"21", + X"40",X"D1",X"7B",X"CD",X"38",X"77",X"18",X"14",X"23",X"36",X"04",X"2B",X"0F",X"38",X"04",X"36", + X"30",X"18",X"02",X"36",X"31",X"23",X"23",X"23",X"23",X"10",X"ED",X"C9",X"CD",X"95",X"77",X"3A", + X"0D",X"E7",X"21",X"C0",X"D7",X"CD",X"78",X"77",X"3A",X"0E",X"E7",X"CD",X"78",X"77",X"CD",X"9E", + X"79",X"CD",X"9E",X"79",X"DB",X"01",X"2F",X"0F",X"0F",X"38",X"02",X"18",X"9E",X"DB",X"00",X"2F", + X"0F",X"0F",X"30",X"97",X"F3",X"C3",X"33",X"70",X"23",X"36",X"04",X"2B",X"F5",X"0F",X"0F",X"0F", + X"0F",X"E6",X"0F",X"C6",X"30",X"77",X"23",X"23",X"23",X"36",X"04",X"2B",X"F1",X"E6",X"0F",X"C6", + X"30",X"77",X"23",X"23",X"C9",X"21",X"0F",X"E7",X"3A",X"09",X"E0",X"E6",X"C0",X"BE",X"C8",X"32", + X"0F",X"E7",X"3A",X"0E",X"E7",X"C6",X"01",X"27",X"32",X"0E",X"E7",X"D0",X"3A",X"0D",X"E7",X"C6", + X"01",X"27",X"32",X"0D",X"E7",X"C9",X"21",X"00",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D", + X"13",X"13",X"CD",X"A7",X"79",X"21",X"01",X"D0",X"01",X"FF",X"07",X"36",X"00",X"54",X"5D",X"13", + X"13",X"CD",X"A7",X"79",X"C9",X"7E",X"FE",X"00",X"C8",X"CD",X"DE",X"77",X"18",X"F7",X"4E",X"06", + X"00",X"23",X"5E",X"23",X"56",X"23",X"7E",X"12",X"3E",X"04",X"13",X"12",X"13",X"23",X"0D",X"20", + X"F5",X"C9",X"21",X"00",X"E0",X"0E",X"06",X"AF",X"06",X"00",X"77",X"10",X"FD",X"0D",X"20",X"F8", + X"C9",X"0E",X"00",X"06",X"00",X"10",X"FE",X"0D",X"20",X"F9",X"3D",X"20",X"F4",X"C9",X"C5",X"E5", + X"77",X"23",X"10",X"FC",X"E1",X"0E",X"20",X"09",X"C1",X"0D",X"20",X"F2",X"C9",X"CD",X"B6",X"77", + X"CD",X"36",X"78",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F", + X"0F",X"DA",X"33",X"70",X"18",X"ED",X"21",X"00",X"D0",X"01",X"FF",X"0F",X"3E",X"86",X"77",X"23", + X"0B",X"78",X"B1",X"20",X"F7",X"21",X"0C",X"D0",X"06",X"10",X"E5",X"C5",X"CD",X"71",X"78",X"C1", + X"E1",X"11",X"00",X"01",X"19",X"10",X"F3",X"06",X"40",X"21",X"BF",X"D7",X"7E",X"B0",X"77",X"23", + X"23",X"7E",X"B0",X"77",X"11",X"80",X"00",X"19",X"7E",X"B0",X"77",X"2B",X"2B",X"7E",X"B0",X"77", + X"C9",X"06",X"19",X"CD",X"7D",X"78",X"23",X"23",X"23",X"23",X"10",X"F7",X"C9",X"E5",X"3E",X"03", + X"77",X"23",X"23",X"3E",X"02",X"77",X"E1",X"E5",X"11",X"80",X"00",X"19",X"3E",X"01",X"77",X"23", + X"23",X"3E",X"00",X"77",X"E1",X"C9",X"F3",X"CD",X"B6",X"77",X"21",X"B3",X"79",X"CD",X"D5",X"77", + X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02",X"18", + X"EC",X"11",X"01",X"46",X"CD",X"85",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79", + X"DB",X"00",X"2F",X"0F",X"38",X"02",X"18",X"E9",X"13",X"CD",X"85",X"79",X"CD",X"95",X"79",X"CD", + X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02",X"18",X"EF",X"13",X"CD",X"85", + X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02", + X"18",X"EC",X"3E",X"10",X"21",X"10",X"D0",X"0E",X"03",X"11",X"01",X"46",X"06",X"10",X"73",X"23", + X"72",X"23",X"10",X"FA",X"13",X"0D",X"20",X"F4",X"11",X"20",X"00",X"19",X"3D",X"20",X"E8",X"3E", + X"03",X"11",X"01",X"52",X"0E",X"04",X"06",X"30",X"73",X"23",X"72",X"23",X"10",X"FA",X"D5",X"11", + X"20",X"00",X"19",X"D1",X"0D",X"20",X"EF",X"13",X"3D",X"20",X"E9",X"11",X"01",X"49",X"0E",X"04", + X"06",X"30",X"73",X"23",X"72",X"23",X"10",X"FA",X"D5",X"11",X"20",X"00",X"19",X"D1",X"0D",X"20", + X"EF",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"38",X"02", + X"18",X"A0",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"3E",X"01",X"D3",X"01",X"CD", + X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"30",X"F1",X"AF",X"D3", + X"01",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"DB",X"00",X"2F",X"0F",X"0F",X"DA", + X"33",X"70",X"C3",X"71",X"79",X"21",X"00",X"D0",X"01",X"00",X"08",X"73",X"23",X"72",X"23",X"0B", + X"78",X"B1",X"20",X"F7",X"C9",X"01",X"00",X"40",X"0B",X"78",X"B1",X"20",X"FB",X"C9",X"01",X"00", + X"90",X"0B",X"78",X"B1",X"20",X"FB",X"C9",X"7E",X"12",X"23",X"23",X"13",X"13",X"0B",X"78",X"B1", + X"20",X"F5",X"C9",X"0E",X"A0",X"D1",X"41",X"20",X"42",X"20",X"43",X"20",X"44",X"20",X"45",X"20", + X"46",X"20",X"47",X"20",X"0E",X"20",X"D2",X"48",X"20",X"49",X"20",X"4A",X"20",X"4B",X"20",X"4C", + X"20",X"4D",X"20",X"4E",X"20",X"0E",X"A0",X"D2",X"4F",X"20",X"50",X"20",X"51",X"20",X"52",X"20", + X"53",X"20",X"54",X"20",X"55",X"20",X"0E",X"20",X"D3",X"56",X"20",X"57",X"20",X"58",X"20",X"59", + X"20",X"5A",X"20",X"20",X"20",X"20",X"20",X"14",X"A0",X"D3",X"31",X"20",X"32",X"20",X"33",X"20", + X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"20",X"38",X"20",X"39",X"20",X"30",X"20",X"00",X"08", + X"A0",X"D0",X"52",X"41",X"4D",X"20",X"20",X"20",X"4F",X"4B",X"00",X"10",X"A0",X"D0",X"52",X"41", + X"4D",X"20",X"20",X"20",X"4E",X"47",X"20",X"20",X"28",X"20",X"20",X"20",X"20",X"29",X"00",X"52", + X"4F",X"4D",X"20",X"20",X"20",X"4F",X"4B",X"00",X"52",X"4F",X"4D",X"20",X"20",X"20",X"4E",X"47", + X"00",X"16",X"A0",X"D0",X"44",X"49",X"50",X"20",X"53",X"57",X"20",X"31",X"20",X"32",X"20",X"33", + X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"20",X"38",X"03",X"A0",X"D1",X"53",X"57",X"31", + X"03",X"A0",X"D2",X"53",X"57",X"32",X"00",X"01",X"98",X"D2",X"20",X"1B",X"C4",X"D2",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20", + X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"20",X"00",X"0C",X"A0",X"D0",X"49",X"4E",X"54", + X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"4F",X"4B",X"00",X"A0",X"7A",X"B5",X"7A",X"CA",X"7A", + X"11",X"A0",X"D0",X"43",X"48",X"45",X"43",X"4B",X"20",X"49",X"4E",X"54",X"45",X"52",X"46",X"41", + X"43",X"45",X"20",X"31",X"00",X"11",X"A0",X"D0",X"43",X"48",X"45",X"43",X"4B",X"20",X"49",X"4E", + X"54",X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"32",X"00",X"11",X"A0",X"D0",X"43",X"48",X"45", + X"43",X"4B",X"20",X"49",X"4E",X"54",X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"33",X"00",X"0A", + X"20",X"D1",X"57",X"52",X"49",X"54",X"45",X"20",X"44",X"41",X"54",X"41",X"0C",X"20",X"D2",X"49", + X"4E",X"54",X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"31",X"20",X"0C",X"A0",X"D2",X"20",X"20", + X"20",X"52",X"45",X"41",X"44",X"20",X"44",X"41",X"54",X"41",X"0C",X"20",X"D4",X"49",X"4E",X"54", + X"45",X"52",X"46",X"41",X"43",X"45",X"20",X"32",X"20",X"0C",X"A0",X"D4",X"20",X"20",X"20",X"52", + X"45",X"41",X"44",X"20",X"44",X"41",X"54",X"41",X"0C",X"20",X"D6",X"49",X"4E",X"54",X"45",X"52", + X"46",X"41",X"43",X"45",X"20",X"33",X"20",X"0C",X"A0",X"D6",X"20",X"20",X"20",X"52",X"45",X"41", + X"44",X"20",X"44",X"41",X"54",X"41",X"0F",X"40",X"D2",X"30",X"20",X"31",X"20",X"32",X"20",X"33", + X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"0F",X"40",X"D4",X"30",X"20",X"31",X"20",X"32", + X"20",X"33",X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"0F",X"40",X"D6",X"30",X"20",X"31", + X"20",X"32",X"20",X"33",X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"0F",X"40",X"D1",X"30", + X"20",X"31",X"20",X"32",X"20",X"33",X"20",X"34",X"20",X"35",X"20",X"36",X"20",X"37",X"06",X"A0", + X"D7",X"54",X"49",X"4D",X"49",X"4E",X"47",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"B0",X"72", + X"EC",X"76",X"5E",X"7C",X"4B",X"76",X"96",X"78",X"1D",X"78",X"0D",X"20",X"D1",X"30",X"31",X"20", + X"44",X"49",X"50",X"20",X"53",X"57",X"49",X"54",X"43",X"48",X"0B",X"A0",X"D1",X"30",X"32",X"20", + X"49",X"2F",X"4F",X"20",X"50",X"4F",X"52",X"54",X"08",X"20",X"D2",X"30",X"33",X"20",X"53",X"4F", + X"55",X"4E",X"44",X"0C",X"A0",X"D2",X"30",X"34",X"20",X"43",X"48",X"41",X"52",X"41",X"43",X"54", + X"45",X"52",X"08",X"20",X"D3",X"30",X"35",X"20",X"43",X"4F",X"4C",X"4F",X"52",X"16",X"A0",X"D3", + X"30",X"36",X"20",X"43",X"52",X"4F",X"53",X"53",X"20",X"48",X"41",X"54",X"43",X"48",X"20",X"50", + X"41",X"54",X"54",X"45",X"52",X"4E",X"00",X"7C",X"B8",X"C0",X"7D",X"B9",X"C9",X"21",X"00",X"80", + X"01",X"00",X"08",X"AF",X"77",X"23",X"0B",X"78",X"B1",X"20",X"F8",X"C9",X"72",X"23",X"0B",X"78", + X"B1",X"20",X"F9",X"C9",X"72",X"23",X"23",X"0B",X"78",X"B1",X"20",X"F8",X"C9",X"08",X"D9",X"C3", + X"39",X"7C",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"21",X"09",X"E0",X"34",X"CD",X"52",X"7C", + X"3A",X"02",X"E3",X"0F",X"38",X"07",X"21",X"06",X"E3",X"3E",X"80",X"86",X"77",X"C9",X"D9",X"08", + X"FB",X"C9",X"21",X"00",X"E1",X"11",X"00",X"C0",X"01",X"00",X"01",X"ED",X"B0",X"C9",X"CD",X"B6", + X"77",X"21",X"B9",X"7D",X"CD",X"D5",X"77",X"2A",X"9C",X"7D",X"22",X"06",X"E7",X"DD",X"21",X"08", + X"E7",X"FD",X"21",X"A0",X"7D",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"8B", + X"7C",X"DB",X"00",X"2F",X"0F",X"0F",X"DA",X"33",X"70",X"18",X"D3",X"FD",X"22",X"0B",X"E7",X"3E", + X"01",X"32",X"05",X"E7",X"06",X"06",X"CD",X"50",X"7D",X"CD",X"E5",X"7C",X"CD",X"CF",X"7C",X"01", + X"00",X"00",X"ED",X"43",X"13",X"E3",X"DB",X"00",X"2F",X"0F",X"0F",X"30",X"04",X"C1",X"C3",X"33", + X"70",X"DB",X"00",X"2F",X"0F",X"DC",X"CF",X"7C",X"DB",X"01",X"2F",X"0F",X"38",X"34",X"0F",X"38", + X"5D",X"ED",X"4B",X"13",X"E3",X"0B",X"78",X"B1",X"20",X"D8",X"CD",X"E5",X"7C",X"18",X"4F",X"3A", + X"05",X"E7",X"4F",X"06",X"00",X"FD",X"2A",X"0B",X"E7",X"FD",X"09",X"FD",X"7E",X"00",X"D3",X"00", + X"F6",X"80",X"D3",X"00",X"C9",X"3E",X"00",X"D3",X"00",X"3E",X"80",X"D3",X"00",X"06",X"00",X"10", + X"FE",X"C9",X"CD",X"E5",X"7C",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"3A",X"07", + X"E7",X"5F",X"3A",X"05",X"E7",X"BB",X"C8",X"06",X"04",X"CD",X"50",X"7D",X"3D",X"32",X"05",X"E7", + X"06",X"06",X"CD",X"50",X"7D",X"CD",X"CF",X"7C",X"01",X"00",X"00",X"C3",X"A2",X"7C",X"CD",X"E5", + X"7C",X"CD",X"95",X"79",X"CD",X"95",X"79",X"CD",X"95",X"79",X"3A",X"06",X"E7",X"5F",X"3A",X"05", + X"E7",X"BB",X"C8",X"06",X"04",X"CD",X"50",X"7D",X"3C",X"32",X"05",X"E7",X"06",X"06",X"CD",X"50", + X"7D",X"CD",X"CF",X"7C",X"01",X"00",X"00",X"C3",X"A2",X"7C",X"4F",X"D6",X"03",X"3C",X"18",X"17", + X"4F",X"C5",X"21",X"20",X"D1",X"11",X"80",X"00",X"47",X"05",X"28",X"03",X"19",X"18",X"FA",X"C1", + X"23",X"70",X"23",X"23",X"70",X"79",X"C9",X"C5",X"21",X"20",X"D1",X"11",X"80",X"00",X"47",X"FE", + X"01",X"28",X"04",X"05",X"19",X"10",X"FD",X"C1",X"23",X"70",X"23",X"23",X"70",X"79",X"C9",X"C5", + X"0E",X"00",X"06",X"00",X"10",X"FE",X"F5",X"3A",X"00",X"D0",X"CB",X"4F",X"28",X"09",X"F1",X"0D", + X"20",X"F0",X"3D",X"20",X"EB",X"C1",X"C9",X"F1",X"C1",X"06",X"01",X"C9",X"15",X"01",X"00",X"00", + X"00",X"01",X"02",X"03",X"04",X"05",X"06",X"1C",X"11",X"12",X"13",X"14",X"15",X"20",X"21",X"22", + X"23",X"24",X"25",X"26",X"27",X"00",X"00",X"00",X"00",X"0B",X"A0",X"D0",X"53",X"20",X"4F",X"20", + X"55",X"20",X"4E",X"20",X"44",X"20",X"53",X"0F",X"20",X"D1",X"30",X"31",X"20",X"48",X"4F",X"4C", + X"45",X"20",X"44",X"49",X"47",X"47",X"49",X"4E",X"47",X"15",X"A0",X"D1",X"30",X"32",X"20",X"50", + X"49",X"43",X"4B",X"49",X"4E",X"47",X"20",X"55",X"50",X"20",X"46",X"4F",X"52",X"54",X"49",X"4E", + X"45",X"0F",X"20",X"D2",X"30",X"33",X"20",X"44",X"4F",X"4F",X"52",X"20",X"4F",X"50",X"45",X"4E", + X"49",X"4E",X"47",X"13",X"A0",X"D2",X"30",X"34",X"20",X"42",X"55",X"52",X"49",X"45",X"44",X"20", + X"49",X"4E",X"54",X"4F",X"20",X"48",X"4F",X"4C",X"45",X"14",X"20",X"D3",X"30",X"35",X"20",X"46", + X"41",X"4C",X"4C",X"49",X"4E",X"47",X"20",X"49",X"4E",X"54",X"4F",X"20",X"48",X"4F",X"4C",X"45", + X"10",X"A0",X"D3",X"30",X"36",X"20",X"50",X"4C",X"41",X"59",X"45",X"52",X"20",X"4B",X"49",X"4C", + X"4C",X"45",X"44",X"12",X"20",X"D4",X"30",X"37",X"20",X"54",X"49",X"4D",X"45",X"20",X"55",X"50", + X"20",X"57",X"41",X"52",X"4E",X"49",X"4E",X"47",X"16",X"A0",X"D4",X"30",X"38",X"20",X"54",X"49", + X"4D",X"45",X"20",X"53",X"43",X"4F",X"52",X"45",X"20",X"43",X"4F",X"55",X"4E",X"54",X"49",X"4E", + X"47",X"11",X"20",X"D5",X"30",X"39",X"20",X"43",X"4F",X"49",X"4E",X"20",X"49",X"4E",X"53",X"45", + X"52",X"54",X"49",X"4E",X"47",X"0F",X"A0",X"D5",X"31",X"30",X"20",X"5A",X"4F",X"4F",X"4D",X"20", + X"49",X"4E",X"20",X"20",X"20",X"20",X"20",X"0F",X"20",X"D6",X"31",X"31",X"20",X"5A",X"4F",X"4F", + X"4D",X"20",X"4F",X"55",X"54",X"20",X"20",X"20",X"20",X"16",X"A0",X"D6",X"31",X"32",X"20",X"50", + X"4C",X"41",X"59",X"45",X"52",X"20",X"46",X"41",X"4C",X"4C",X"49",X"4E",X"47",X"20",X"20",X"20", + X"20",X"20",X"0D",X"20",X"D7",X"31",X"33",X"20",X"47",X"41",X"4D",X"45",X"20",X"53",X"54",X"41", + X"52",X"54",X"0C",X"A0",X"D7",X"31",X"34",X"20",X"47",X"41",X"4D",X"45",X"20",X"4F",X"56",X"45", + X"52",X"1B",X"20",X"D8",X"31",X"35",X"20",X"42",X"47",X"4D",X"20",X"28",X"43",X"4F",X"4E",X"54", + X"49",X"4E",X"55",X"49",X"54",X"59",X"20",X"44",X"49",X"53",X"50",X"4C",X"41",X"59",X"29",X"0E", + X"A0",X"D8",X"31",X"36",X"20",X"52",X"4F",X"55",X"4E",X"44",X"20",X"43",X"4C",X"45",X"41",X"52", + X"0E",X"20",X"D9",X"31",X"37",X"20",X"42",X"4C",X"4F",X"43",X"4B",X"20",X"43",X"4C",X"45",X"41", + X"52",X"0D",X"A0",X"D9",X"31",X"38",X"20",X"54",X"49",X"4D",X"45",X"20",X"55",X"50",X"20",X"20", + X"20",X"12",X"20",X"DA",X"31",X"39",X"20",X"42",X"47",X"4D",X"20",X"28",X"47",X"41",X"4D",X"45", + X"20",X"50",X"4C",X"41",X"59",X"29",X"12",X"A0",X"DA",X"32",X"30",X"20",X"47",X"41",X"4D",X"45", + X"20",X"43",X"4F",X"4D",X"50",X"4C",X"45",X"54",X"49",X"4E",X"47",X"0C",X"20",X"DB",X"20",X"20", + X"4D",X"55",X"53",X"49",X"43",X"20",X"45",X"4E",X"44",X"20",X"00",X"00",X"00",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7", + X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7",X"C7"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high.vhd new file mode 100644 index 00000000..8c30be36 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high.vhd @@ -0,0 +1,24 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity rom_sprite_high is +port ( + clk : in std_logic; + addr : in std_logic_vector(4 downto 0); + data : out std_logic_vector(3 downto 0) +); +end entity; + +architecture prom of rom_sprite_high is + type rom is array(0 to 31) of std_logic_vector(3 downto 0); + signal rom_data: rom := ( + "0001","0001","0001","0001","0000","0000","0000","0000","0001","0001","0001","0001","0000","0000","0000","0000", + "0001","0001","0001","0001","0000","0000","0000","0000","0001","0001","0001","0001","0000","0000","0000","0000"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high_new.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high_new.vhd new file mode 100644 index 00000000..bf9564e1 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/rom_sprite_high_new.vhd @@ -0,0 +1,24 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity rom_sprite_high_new is +port ( + clk : in std_logic; + addr : in std_logic_vector(4 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of rom_sprite_high_new is + type rom is array(0 to 31) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00", + X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00",X"01",X"01",X"01",X"01",X"00",X"00",X"00",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd.bin b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd.bin new file mode 100644 index 00000000..e483d90d Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd.bin differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd_prg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd_prg.vhd new file mode 100644 index 00000000..d96f47a1 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/ldrun/snd_prg.vhd @@ -0,0 +1,1046 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity snd_prg is +port ( + clk : in std_logic; + addr : in std_logic_vector(13 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of snd_prg is + type rom is array(0 to 16383) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"81",X"C7",X"0F",X"BC",X"77",X"F3",X"2F",X"23",X"E8",X"5D",X"85",X"A9",X"87",X"D8",X"40",X"D3", + X"0B",X"49",X"8C",X"52",X"D1",X"88",X"1E",X"5A",X"A5",X"8D",X"5A",X"3E",X"05",X"8D",X"22",X"9C", + X"43",X"D8",X"5D",X"14",X"D2",X"B6",X"D9",X"5B",X"22",X"D1",X"80",X"1E",X"5B",X"96",X"B8",X"6D", + X"49",X"C4",X"8C",X"58",X"D4",X"3D",X"18",X"D5",X"C1",X"5D",X"31",X"E4",X"9D",X"48",X"81",X"8D", + X"49",X"82",X"E5",X"B3",X"C2",X"1E",X"5A",X"82",X"D5",X"D8",X"5A",X"A6",X"C4",X"0D",X"23",X"E2", + X"8A",X"7D",X"19",X"42",X"D9",X"5D",X"85",X"C9",X"58",X"C5",X"8D",X"59",X"A3",X"8E",X"59",X"81", + X"98",X"10",X"93",X"F2",X"2E",X"3A",X"85",X"BB",X"69",X"B6",X"C2",X"2E",X"5B",X"01",X"89",X"C7", + X"1D",X"13",X"E0",X"5C",X"10",X"1F",X"35",X"D0",X"3E",X"05",X"AC",X"49",X"94",X"A8",X"82",X"1C", + X"97",X"D0",X"5C",X"20",X"B1",X"10",X"B9",X"61",X"F4",X"2D",X"21",X"D0",X"39",X"C5",X"0D",X"40", + X"D2",X"3E",X"12",X"B3",X"C1",X"83",X"E3",X"0B",X"10",X"5D",X"95",X"C8",X"5C",X"95",X"2D",X"05", + X"CA",X"35",X"DA",X"5B",X"A6",X"9B",X"6B",X"86",X"D2",X"3D",X"82",X"1E",X"13",X"1F",X"85",X"9B", + X"5A",X"82",X"88",X"B7",X"BA",X"68",X"C3",X"1C",X"00",X"39",X"F5",X"8C",X"48",X"A0",X"28",X"B4", + X"3F",X"85",X"C9",X"30",X"C5",X"BA",X"68",X"D4",X"2D",X"85",X"9D",X"15",X"D8",X"5A",X"09",X"4A", + X"91",X"83",X"BA",X"7C",X"30",X"B2",X"A5",X"9A",X"87",X"AC",X"41",X"D0",X"5D",X"05",X"AC",X"25", + X"BC",X"25",X"D9",X"5C",X"85",X"9C",X"34",X"D0",X"4B",X"A5",X"8D",X"50",X"D4",X"1D",X"14",X"D9", + X"5A",X"94",X"A8",X"49",X"C3",X"1C",X"03",X"AB",X"42",X"BA",X"36",X"D8",X"31",X"CA",X"42",X"9C", + X"38",X"C4",X"8A",X"29",X"08",X"97",X"9D",X"33",X"BC",X"34",X"CA",X"50",X"A0",X"92",X"0C",X"2A", + X"23",X"D0",X"2A",X"B7",X"8B",X"14",X"AA",X"58",X"C1",X"4A",X"C3",X"3D",X"A5",X"8B",X"59",X"90", + X"19",X"1C",X"23",X"D9",X"50",X"D1",X"5C",X"A5",X"9B",X"5A",X"01",X"90",X"89",X"38",X"A2",X"C2", + X"4A",X"B9",X"71",X"F0",X"59",X"C2",X"2A",X"80",X"18",X"92",X"99",X"82",X"3C",X"B7",X"B5",X"A9", + X"13",X"BB",X"51",X"C8",X"4A",X"80",X"81",X"00",X"C3",X"2D",X"82",X"2A",X"D2",X"5C",X"82",X"89", + X"3B",X"B7",X"0C",X"28",X"92",X"08",X"A3",X"8F",X"32",X"CA",X"40",X"A8",X"4A",X"92",X"2E",X"05", + X"CA",X"58",X"A0",X"29",X"B5",X"1D",X"95",X"1D",X"04",X"9D",X"25",X"C8",X"11",X"A1",X"89",X"3B", + X"02",X"9A",X"20",X"05",X"F0",X"4B",X"92",X"1B",X"39",X"90",X"23",X"F9",X"69",X"B1",X"3A",X"95", + X"A9",X"22",X"BD",X"50",X"B0",X"5C",X"95",X"A9",X"39",X"90",X"29",X"1B",X"97",X"1F",X"05",X"8C", + X"01",X"1A",X"83",X"A8",X"18",X"95",X"C2",X"8A",X"4A",X"92",X"2B",X"93",X"3D",X"C4",X"2E",X"12", + X"C0",X"28",X"A1",X"1B",X"69",X"B2",X"3B",X"A4",X"90",X"88",X"3B",X"C7",X"8B",X"16",X"BA",X"40", + X"B0",X"39",X"B5",X"9A",X"30",X"D1",X"4B",X"93",X"0C",X"13",X"C8",X"48",X"C1",X"28",X"C1",X"4A", + X"C4",X"2D",X"83",X"8A",X"84",X"8B",X"04",X"8C",X"12",X"98",X"A2",X"4C",X"95",X"9A",X"10",X"80", + X"2B",X"02",X"98",X"08",X"99",X"58",X"E4",X"0B",X"06",X"BB",X"78",X"A9",X"50",X"C0",X"20",X"B1", + X"00",X"99",X"79",X"C2",X"4C",X"83",X"9A",X"11",X"0C",X"12",X"9A",X"31",X"D1",X"2A",X"A2",X"1A", + X"3B",X"96",X"8A",X"12",X"D8",X"24",X"D9",X"15",X"AB",X"48",X"92",X"9A",X"48",X"90",X"94",X"AA", + X"59",X"90",X"10",X"A0",X"28",X"A8",X"68",X"F1",X"3B",X"A4",X"2B",X"93",X"98",X"8A",X"79",X"A2", + X"00",X"AB",X"70",X"9A",X"32",X"F0",X"28",X"A2",X"0C",X"15",X"AB",X"40",X"A0",X"18",X"A1",X"3B", + X"C3",X"5A",X"E3",X"19",X"B3",X"88",X"82",X"89",X"B3",X"7B",X"B4",X"18",X"D2",X"4C",X"94",X"0B", + X"02",X"98",X"81",X"92",X"B8",X"7A",X"92",X"1E",X"23",X"E8",X"30",X"AA",X"33",X"CB",X"41",X"B0", + X"18",X"2A",X"A2",X"18",X"B0",X"4A",X"85",X"AF",X"58",X"A1",X"2B",X"A4",X"2B",X"B4",X"19",X"A0", + X"4A",X"A3",X"3F",X"03",X"AC",X"33",X"BC",X"32",X"BA",X"15",X"9B",X"28",X"21",X"F0",X"38",X"C1", + X"28",X"B2",X"88",X"01",X"AB",X"72",X"E0",X"29",X"90",X"28",X"A8",X"20",X"9A",X"50",X"E2",X"1A", + X"80",X"49",X"D1",X"49",X"D1",X"5A",X"B4",X"1B",X"83",X"8A",X"94",X"0A",X"92",X"19",X"B4",X"1C", + X"82",X"3F",X"84",X"9A",X"12",X"8B",X"85",X"0C",X"03",X"9B",X"30",X"8B",X"03",X"08",X"C4",X"8B", + X"15",X"BB",X"24",X"8C",X"20",X"01",X"C8",X"38",X"BB",X"72",X"F0",X"39",X"A0",X"20",X"99",X"28", + X"92",X"9A",X"05",X"9A",X"28",X"09",X"C3",X"7D",X"03",X"A9",X"12",X"9C",X"20",X"09",X"18",X"D5", + X"1A",X"C1",X"31",X"D8",X"10",X"39",X"F1",X"3A",X"A1",X"12",X"D8",X"48",X"C0",X"69",X"B1",X"39", + X"B0",X"69",X"A1",X"08",X"08",X"19",X"A3",X"09",X"91",X"5D",X"95",X"0B",X"83",X"98",X"2B",X"83", + X"A9",X"12",X"3D",X"C5",X"1B",X"A1",X"58",X"D1",X"20",X"A9",X"13",X"C9",X"6A",X"A3",X"1B",X"02", + X"9B",X"52",X"F1",X"29",X"A0",X"29",X"80",X"A5",X"0D",X"11",X"0E",X"15",X"AB",X"40",X"A8",X"28", + X"A4",X"8A",X"84",X"9C",X"24",X"AB",X"22",X"8E",X"13",X"AA",X"24",X"C9",X"59",X"B3",X"2B",X"94", + X"8A",X"01",X"0A",X"94",X"8C",X"22",X"9B",X"22",X"8C",X"03",X"99",X"91",X"69",X"C1",X"3B",X"00", + X"92",X"9B",X"27",X"8D",X"04",X"A9",X"39",X"99",X"26",X"BC",X"51",X"C8",X"30",X"D0",X"38",X"B0", + X"31",X"AE",X"23",X"9D",X"13",X"9B",X"06",X"9A",X"12",X"B9",X"38",X"A2",X"5D",X"83",X"9B",X"23", + X"AB",X"31",X"B1",X"19",X"4B",X"D3",X"4B",X"C3",X"29",X"B1",X"5A",X"A3",X"0A",X"10",X"B0",X"68", + X"F0",X"49",X"A2",X"2C",X"08",X"11",X"9B",X"50",X"C1",X"10",X"C2",X"00",X"A0",X"12",X"E8",X"7B", + X"00",X"00",X"A1",X"3E",X"03",X"8D",X"04",X"9A",X"12",X"98",X"09",X"03",X"C9",X"40",X"D2",X"3B", + X"B5",X"8B",X"12",X"1D",X"02",X"89",X"89",X"58",X"A8",X"25",X"E8",X"38",X"A8",X"49",X"98",X"21", + X"D0",X"39",X"98",X"12",X"AA",X"A7",X"99",X"38",X"B1",X"40",X"C9",X"22",X"9A",X"B3",X"7A",X"B3", + X"39",X"D1",X"39",X"9D",X"41",X"B9",X"25",X"C0",X"01",X"98",X"08",X"29",X"B3",X"01",X"BE",X"42", + X"D0",X"3A",X"B5",X"8A",X"13",X"BC",X"60",X"AA",X"40",X"C1",X"29",X"A3",X"0E",X"22",X"9B",X"84", + X"2D",X"93",X"0A",X"02",X"8C",X"14",X"9D",X"13",X"0D",X"02",X"08",X"A9",X"48",X"8B",X"14",X"0C", + X"84",X"99",X"00",X"0A",X"03",X"B3",X"A8",X"2F",X"06",X"8B",X"82",X"2B",X"A3",X"2A",X"C1",X"40", + X"AE",X"34",X"BB",X"33",X"B9",X"82",X"8A",X"58",X"B8",X"41",X"C0",X"10",X"B2",X"4D",X"B7",X"0A", + X"81",X"2C",X"00",X"18",X"92",X"B9",X"68",X"A8",X"22",X"E0",X"10",X"80",X"B1",X"69",X"C2",X"19", + X"09",X"A5",X"0B",X"10",X"93",X"0B",X"E2",X"6A",X"A1",X"21",X"AD",X"33",X"CA",X"31",X"B8",X"28", + X"2B",X"B6",X"18",X"D8",X"48",X"90",X"91",X"3D",X"01",X"0A",X"A2",X"59",X"F2",X"3A",X"C2",X"29", + X"19",X"0B",X"47",X"F7",X"AF",X"7E",X"4B",X"28",X"80",X"80",X"0A",X"4C",X"3C",X"5C",X"5D",X"5D", + X"5D",X"4A",X"A6",X"D5",X"C8",X"5D",X"40",X"D5",X"8D",X"58",X"D3",X"3E",X"85",X"AD",X"52",X"DA", + X"51",X"CA",X"51",X"AD",X"42",X"9A",X"B6",X"09",X"8B",X"42",X"A0",X"AA",X"42",X"B1",X"0D",X"04", + X"8A",X"21",X"D8",X"22",X"A9",X"22",X"E8",X"11",X"0A",X"81",X"29",X"E1",X"00",X"2A",X"80",X"04", + X"E9",X"6A",X"00",X"08",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"88",X"08",X"08", + X"00",X"88",X"08",X"81",X"92",X"A3",X"B3",X"C3",X"0C",X"5A",X"94",X"0B",X"B3",X"78",X"AB",X"81", + X"24",X"20",X"10",X"9A",X"FA",X"D9",X"16",X"30",X"DB",X"16",X"0C",X"84",X"8C",X"22",X"E2",X"1D", + X"39",X"95",X"D3",X"A1",X"8A",X"5C",X"5C",X"3B",X"4B",X"29",X"94",X"E5",X"D4",X"A8",X"4D",X"5A", + X"A6",X"D0",X"5D",X"13",X"C8",X"4A",X"B5",X"0C",X"13",X"AC",X"32",X"AD",X"41",X"AB",X"24",X"9A", + X"A5",X"09",X"99",X"40",X"90",X"B1",X"49",X"80",X"B8",X"41",X"B2",X"8C",X"03",X"1B",X"03",X"BD", + X"13",X"2D",X"02",X"0D",X"81",X"02",X"99",X"01",X"2B",X"D1",X"00",X"20",X"A9",X"12",X"20",X"F9", + X"1F",X"78",X"B2",X"80",X"80",X"08",X"80",X"08",X"08",X"08",X"80",X"08",X"80",X"08",X"80",X"08", + X"08",X"09",X"29",X"1B",X"28",X"93",X"BB",X"60",X"C8",X"15",X"8B",X"B9",X"22",X"16",X"00",X"09", + X"8D",X"AC",X"B2",X"73",X"2B",X"F9",X"42",X"BC",X"42",X"D0",X"3B",X"A7",X"A0",X"3F",X"3A",X"84", + X"D4",X"C3",X"B3",X"B3",X"B4",X"D5",X"C4",X"C4",X"C3",X"99",X"4D",X"5B",X"84",X"C2",X"1D",X"48", + X"C4",X"8B",X"31",X"D1",X"3B",X"B5",X"0B",X"85",X"8B",X"04",X"8B",X"95",X"89",X"91",X"3A",X"8B", + X"24",X"98",X"B0",X"40",X"90",X"C0",X"22",X"A0",X"9B",X"14",X"1B",X"11",X"E8",X"13",X"8B",X"22", + X"BC",X"10",X"30",X"B0",X"33",X"FA",X"10",X"83",X"8A",X"01",X"48",X"D9",X"10",X"A1",X"48",X"A8", + X"11",X"6C",X"F7",X"98",X"80",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"09", + X"19",X"09",X"28",X"92",X"B1",X"3A",X"B2",X"7A",X"C0",X"23",X"29",X"9A",X"A0",X"80",X"82",X"36", + X"01",X"DE",X"A0",X"44",X"9C",X"95",X"1C",X"95",X"9B",X"58",X"B5",X"9A",X"5C",X"28",X"A6",X"C3", + X"C4",X"B3",X"B3",X"C4",X"C4",X"C4",X"B3",X"B2",X"0C",X"5C",X"39",X"A5",X"B1",X"2D",X"21",X"C2", + X"1C",X"12",X"AA",X"58",X"B1",X"3A",X"B4",X"1B",X"A5",X"1A",X"B3",X"3A",X"B9",X"60",X"9A",X"83", + X"19",X"9B",X"24",X"88",X"9B",X"14",X"1B",X"2C",X"91",X"40",X"B2",X"8D",X"01",X"38",X"B2",X"2D", + X"A2",X"83",X"0A",X"83",X"2F",X"91",X"88",X"30",X"A8",X"23",X"8E",X"91",X"0A",X"04",X"0A",X"80", + X"21",X"20",X"FF",X"7A",X"08",X"18",X"80",X"88",X"00",X"80",X"80",X"80",X"80",X"80",X"89",X"18", + X"09",X"19",X"01",X"A1",X"2C",X"13",X"9B",X"86",X"29",X"BB",X"A9",X"02",X"18",X"09",X"AA",X"B2", + X"73",X"41",X"CE",X"83",X"3A",X"E2",X"3C",X"A4",X"1E",X"21",X"D3",X"8B",X"7B",X"29",X"95",X"D4", + X"B4",X"C3",X"B4",X"C3",X"C4",X"B4",X"B2",X"99",X"5C",X"3A",X"83",X"D3",X"8B",X"49",X"93",X"AA", + X"80",X"80",X"80",X"80",X"00",X"00",X"80",X"80",X"80",X"88",X"80",X"90",X"80",X"89",X"80",X"80", + X"80",X"10",X"80",X"01",X"80",X"10",X"80",X"80",X"80",X"A0",X"90",X"90",X"A8",X"80",X"90",X"80", + X"00",X"02",X"81",X"81",X"10",X"00",X"00",X"88",X"88",X"80",X"A9",X"89",X"89",X"80",X"80",X"80", + X"80",X"01",X"11",X"02",X"01",X"00",X"80",X"80",X"98",X"99",X"A9",X"98",X"B8",X"80",X"80",X"80", + X"03",X"03",X"03",X"01",X"12",X"10",X"00",X"98",X"8A",X"A9",X"A9",X"B8",X"C0",X"B8",X"80",X"81", + X"20",X"31",X"21",X"22",X"21",X"11",X"80",X"88",X"A9",X"AA",X"BA",X"C8",X"B8",X"A9",X"00",X"20", + X"13",X"24",X"14",X"23",X"12",X"11",X"88",X"9A",X"AA",X"CB",X"BA",X"D9",X"B8",X"A9",X"00",X"31", + X"23",X"43",X"33",X"33",X"22",X"10",X"88",X"AA",X"BC",X"AE",X"8C",X"9A",X"A8",X"80",X"02",X"43", + X"34",X"43",X"43",X"33",X"31",X"08",X"9B",X"BD",X"CB",X"CB",X"CB",X"AA",X"A8",X"03",X"24",X"36", + X"33",X"52",X"33",X"42",X"21",X"89",X"BD",X"BD",X"BC",X"BC",X"BB",X"A9",X"90",X"22",X"53",X"36", + X"23",X"34",X"33",X"41",X"10",X"9A",X"CD",X"BC",X"BC",X"BB",X"BB",X"98",X"02",X"43",X"44",X"34", + X"24",X"34",X"32",X"21",X"8A",X"BE",X"BC",X"CB",X"BC",X"BA",X"A8",X"01",X"33",X"54",X"23",X"34", + X"34",X"42",X"31",X"19",X"BC",X"CC",X"CA",X"BD",X"AB",X"99",X"81",X"23",X"34",X"42",X"33",X"44", + X"34",X"32",X"18",X"9C",X"CC",X"BB",X"CC",X"BA",X"B9",X"81",X"23",X"35",X"32",X"43",X"34",X"43", + X"43",X"00",X"AB",X"CD",X"BB",X"CB",X"CA",X"B9",X"81",X"22",X"42",X"42",X"33",X"43",X"44",X"33", + X"11",X"AB",X"DC",X"BC",X"BC",X"BA",X"C9",X"80",X"12",X"33",X"42",X"34",X"33",X"54",X"23",X"20", + X"8B",X"CC",X"BD",X"BB",X"CB",X"AA",X"90",X"12",X"24",X"35",X"13",X"33",X"43",X"43",X"42",X"19", + X"AC",X"CC",X"BB",X"DA",X"BA",X"A9",X"00",X"23",X"43",X"34",X"33",X"44",X"34",X"32",X"20",X"9A", + X"CD",X"BC",X"CA",X"BB",X"AA",X"A8",X"02",X"33",X"53",X"52",X"23",X"43",X"43",X"33",X"21",X"AD", + X"CC",X"BC",X"BB",X"CA",X"A9",X"98",X"12",X"24",X"35",X"13",X"33",X"44",X"43",X"32",X"18",X"AD", + X"CC",X"BB",X"CA",X"BB",X"A9",X"80",X"13",X"52",X"42",X"33",X"34",X"43",X"43",X"32",X"88",X"BE", + X"BC",X"CB",X"BC",X"AB",X"98",X"00",X"13",X"34",X"34",X"34",X"24",X"33",X"33",X"21",X"09",X"AC", + X"EB",X"CC",X"CB",X"BB",X"99",X"80",X"13",X"34",X"43",X"33",X"42",X"43",X"44",X"31",X"19",X"AB", + X"FB",X"BB",X"CB",X"AA",X"AA",X"A9",X"11",X"44",X"34",X"34",X"32",X"44",X"34",X"21",X"09",X"AB", + X"EB",X"CC",X"BA",X"AB",X"A8",X"00",X"13",X"43",X"34",X"34",X"33",X"44",X"33",X"32",X"08",X"AB", + X"EC",X"CC",X"BB",X"C9",X"A8",X"80",X"01",X"23",X"34",X"43",X"32",X"43",X"43",X"43",X"21",X"8A", + X"CC",X"CC",X"CB",X"CA",X"AA",X"88",X"11",X"23",X"34",X"33",X"52",X"43",X"33",X"33",X"41",X"8B", + X"CD",X"CC",X"BB",X"BC",X"AB",X"98",X"12",X"42",X"33",X"43",X"43",X"53",X"33",X"23",X"20",X"BF", + X"CB",X"CA",X"AB",X"CA",X"99",X"81",X"02",X"43",X"34",X"32",X"33",X"54",X"42",X"11",X"80",X"09", + X"DD",X"CB",X"AB",X"BB",X"BA",X"91",X"33",X"43",X"43",X"52",X"33",X"33",X"33",X"74",X"29",X"CB", + X"B9",X"8C",X"DC",X"AA",X"90",X"00",X"01",X"23",X"43",X"32",X"35",X"24",X"33",X"21",X"09",X"CC", + X"BB",X"DD",X"CB",X"99",X"89",X"90",X"33",X"32",X"43",X"52",X"32",X"34",X"53",X"19",X"11",X"CC", + X"CB",X"BD",X"BB",X"98",X"9A",X"02",X"22",X"43",X"52",X"23",X"35",X"32",X"53",X"20",X"0A",X"AB", + X"FE",X"AA",X"AB",X"99",X"99",X"01",X"34",X"23",X"23",X"52",X"24",X"32",X"45",X"21",X"88",X"8A", + X"FC",X"BA",X"AB",X"E9",X"00",X"80",X"22",X"22",X"32",X"33",X"32",X"64",X"30",X"16",X"0B",X"A0", + X"AF",X"B9",X"AC",X"98",X"A9",X"02",X"21",X"23",X"33",X"52",X"23",X"52",X"15",X"30",X"10",X"8C", + X"E9",X"9D",X"BA",X"A9",X"BA",X"81",X"22",X"33",X"52",X"33",X"34",X"35",X"34",X"31",X"85",X"2E", + X"BA",X"AE",X"B9",X"0A",X"B0",X"10",X"22",X"23",X"24",X"22",X"42",X"13",X"37",X"30",X"31",X"F8", + X"8C",X"A9",X"D9",X"AA",X"88",X"00",X"11",X"32",X"24",X"21",X"42",X"17",X"10",X"52",X"09",X"08", + X"F9",X"BB",X"B9",X"B9",X"91",X"08",X"23",X"34",X"33",X"34",X"32",X"44",X"23",X"44",X"11",X"98", + X"FD",X"0B",X"D9",X"99",X"89",X"81",X"12",X"13",X"23",X"22",X"42",X"35",X"22",X"41",X"15",X"C9", + X"9D",X"AA",X"CA",X"AA",X"A9",X"00",X"22",X"34",X"33",X"34",X"23",X"78",X"51",X"06",X"91",X"C0", + X"9B",X"99",X"EB",X"09",X"80",X"81",X"12",X"21",X"31",X"41",X"22",X"37",X"02",X"24",X"91",X"9F", + X"8D",X"8A",X"B8",X"B0",X"91",X"01",X"12",X"23",X"34",X"22",X"52",X"32",X"70",X"49",X"8A",X"0D", + X"9B",X"E8",X"AA",X"A1",X"A1",X"03",X"12",X"32",X"32",X"43",X"26",X"31",X"50",X"40",X"A3",X"CC", + X"AB",X"AF",X"99",X"A9",X"88",X"11",X"12",X"33",X"23",X"42",X"25",X"16",X"12",X"31",X"3C",X"9F", + X"0D",X"0D",X"89",X"98",X"88",X"01",X"11",X"21",X"21",X"32",X"23",X"32",X"57",X"10",X"38",X"C0", + X"DA",X"C9",X"BB",X"0C",X"88",X"80",X"22",X"32",X"33",X"34",X"14",X"14",X"24",X"71",X"08",X"1D", + X"99",X"BD",X"AA",X"B8",X"B9",X"20",X"23",X"34",X"23",X"23",X"24",X"25",X"25",X"50",X"29",X"AB", + X"9D",X"AE",X"8C",X"99",X"88",X"01",X"11",X"22",X"22",X"22",X"32",X"34",X"70",X"42",X"59",X"8A", + X"AC",X"AD",X"9C",X"A8",X"99",X"01",X"12",X"32",X"32",X"33",X"23",X"43",X"55",X"40",X"11",X"89", + X"FA",X"9C",X"AB",X"C9",X"0A",X"00",X"22",X"32",X"33",X"23",X"42",X"33",X"56",X"11",X"41",X"A9", + X"F8",X"C9",X"C8",X"9A",X"80",X"00",X"12",X"13",X"22",X"22",X"32",X"34",X"56",X"12",X"39",X"C8", + X"AD",X"9C",X"CB",X"A9",X"A9",X"01",X"23",X"42",X"23",X"32",X"33",X"35",X"25",X"37",X"11",X"8A", + X"D9",X"AD",X"AB",X"9C",X"88",X"81",X"21",X"23",X"13",X"33",X"22",X"52",X"35",X"40",X"78",X"09", + X"AA",X"BC",X"BD",X"B9",X"99",X"80",X"22",X"23",X"34",X"22",X"32",X"43",X"16",X"13",X"45",X"98", + X"99",X"DC",X"CA",X"AA",X"99",X"88",X"13",X"22",X"34",X"22",X"23",X"33",X"37",X"22",X"53",X"20", + X"E9",X"9C",X"CB",X"AD",X"A8",X"80",X"11",X"12",X"22",X"32",X"23",X"33",X"54",X"16",X"32",X"0A", + X"9B",X"EA",X"DC",X"A9",X"B8",X"80",X"11",X"23",X"23",X"33",X"33",X"34",X"42",X"72",X"22",X"48", + X"AB",X"DA",X"DC",X"BB",X"9A",X"A1",X"11",X"33",X"33",X"42",X"33",X"34",X"25",X"41",X"44",X"99", + X"3E",X"AA",X"CA",X"BA",X"AB",X"88",X"12",X"32",X"43",X"23",X"33",X"52",X"23",X"74",X"21",X"2A", + X"9C",X"BE",X"BB",X"CA",X"BA",X"98",X"13",X"33",X"43",X"32",X"33",X"43",X"35",X"55",X"28",X"80", + X"BB",X"F9",X"AD",X"9B",X"9A",X"10",X"11",X"23",X"32",X"33",X"33",X"35",X"34",X"72",X"13",X"AA", + X"CB",X"BE",X"9D",X"A9",X"A8",X"00",X"21",X"23",X"22",X"33",X"23",X"34",X"53",X"72",X"11",X"0A", + X"CA",X"DB",X"BD",X"B9",X"A9",X"91",X"32",X"33",X"33",X"42",X"23",X"33",X"44",X"73",X"11",X"1B", + X"9B",X"FC",X"AC",X"AA",X"99",X"81",X"22",X"23",X"23",X"33",X"32",X"42",X"72",X"23",X"40",X"82", + X"CB",X"FA",X"DA",X"AA",X"98",X"00",X"12",X"22",X"33",X"32",X"33",X"34",X"33",X"77",X"30",X"88", + X"BA",X"BB",X"FB",X"BB",X"C9",X"80",X"12",X"23",X"33",X"33",X"24",X"23",X"26",X"35",X"42",X"3A", + X"DA",X"BD",X"AC",X"BA",X"89",X"81",X"21",X"33",X"23",X"33",X"32",X"43",X"36",X"62",X"10",X"2A", + X"8F",X"AC",X"AB",X"AC",X"89",X"81",X"21",X"31",X"32",X"23",X"23",X"35",X"25",X"27",X"10",X"82", + X"C9",X"DB",X"BA",X"AE",X"90",X"80",X"11",X"12",X"22",X"22",X"22",X"24",X"54",X"85",X"11",X"89", + X"AE",X"9B",X"BE",X"90",X"B9",X"00",X"12",X"13",X"22",X"32",X"33",X"26",X"32",X"37",X"14",X"89", + X"8B",X"FA",X"AC",X"C9",X"80",X"80",X"02",X"12",X"22",X"22",X"23",X"31",X"55",X"42",X"33",X"99", + X"CE",X"BB",X"CC",X"8B",X"A8",X"81",X"22",X"32",X"34",X"22",X"22",X"33",X"47",X"35",X"08",X"10", + X"D9",X"CB",X"AB",X"E9",X"A0",X"81",X"02",X"13",X"22",X"22",X"32",X"34",X"34",X"70",X"07",X"91", + X"9A",X"AA",X"EA",X"9A",X"98",X"98",X"12",X"22",X"32",X"32",X"33",X"34",X"34",X"74",X"00",X"01", + X"D8",X"AD",X"9C",X"A9",X"B9",X"91",X"12",X"23",X"32",X"41",X"31",X"42",X"27",X"07",X"93",X"A0", + X"A9",X"CA",X"BC",X"AA",X"99",X"00",X"22",X"24",X"22",X"32",X"23",X"36",X"26",X"84",X"05",X"B8", + X"9B",X"9E",X"AA",X"B9",X"A0",X"81",X"21",X"33",X"33",X"33",X"43",X"42",X"53",X"44",X"31",X"9C", + X"BB",X"FA",X"CA",X"AB",X"99",X"11",X"12",X"42",X"32",X"32",X"23",X"34",X"72",X"14",X"20",X"99", + X"AF",X"BB",X"AB",X"F9",X"88",X"00",X"01",X"12",X"22",X"22",X"23",X"41",X"37",X"14",X"02",X"8B", + X"8B",X"FA",X"BE",X"99",X"99",X"18",X"11",X"13",X"22",X"22",X"33",X"25",X"22",X"73",X"A6",X"0B", + X"0A",X"CA",X"BD",X"8B",X"98",X"88",X"11",X"21",X"24",X"23",X"22",X"43",X"33",X"75",X"90",X"5A", + X"99",X"AD",X"9B",X"C9",X"09",X"98",X"11",X"22",X"22",X"33",X"51",X"22",X"53",X"43",X"31",X"9D", + X"9B",X"EC",X"BA",X"AA",X"A9",X"08",X"13",X"34",X"33",X"34",X"23",X"34",X"43",X"54",X"20",X"08", + X"FB",X"A9",X"BC",X"BB",X"B9",X"90",X"13",X"43",X"24",X"23",X"23",X"53",X"13",X"74",X"80",X"09", + X"AA",X"BF",X"BB",X"AB",X"B8",X"88",X"31",X"33",X"43",X"34",X"23",X"34",X"62",X"15",X"20",X"9B", + X"CB",X"CA",X"BD",X"BB",X"91",X"18",X"02",X"33",X"33",X"53",X"23",X"33",X"46",X"42",X"80",X"8A", + X"CB",X"CC",X"CB",X"A9",X"B9",X"80",X"03",X"33",X"44",X"33",X"32",X"55",X"41",X"81",X"21",X"8B", + X"FB",X"9A",X"EB",X"A8",X"89",X"00",X"12",X"23",X"34",X"22",X"34",X"43",X"32",X"25",X"38",X"BD", + X"BB",X"CD",X"CB",X"A0",X"98",X"88",X"23",X"33",X"42",X"33",X"63",X"42",X"01",X"34",X"0B",X"CC", + X"BD",X"AA",X"BB",X"BB",X"A8",X"23",X"43",X"34",X"34",X"34",X"33",X"43",X"33",X"20",X"89",X"BF", + X"FC",X"B9",X"A9",X"98",X"08",X"00",X"22",X"35",X"32",X"33",X"43",X"53",X"34",X"31",X"AC",X"CC", + X"DA",X"9B",X"AB",X"B9",X"81",X"32",X"33",X"44",X"33",X"43",X"42",X"12",X"14",X"22",X"28",X"BF", + X"EB",X"BB",X"BB",X"99",X"00",X"13",X"33",X"44",X"33",X"33",X"44",X"33",X"22",X"22",X"8B",X"FC", + X"CC",X"BC",X"A9",X"98",X"00",X"02",X"13",X"34",X"43",X"33",X"43",X"43",X"31",X"18",X"BD",X"DD", + X"BB",X"CB",X"A8",X"80",X"01",X"22",X"34",X"34",X"34",X"23",X"42",X"23",X"42",X"10",X"CD",X"DC", + X"BB",X"BB",X"99",X"81",X"12",X"33",X"53",X"34",X"33",X"45",X"23",X"21",X"09",X"AD",X"CB",X"DA", + X"CA",X"9A",X"A9",X"88",X"22",X"43",X"34",X"34",X"34",X"33",X"43",X"21",X"08",X"CD",X"CB",X"DA", + X"BA",X"AA",X"A8",X"81",X"23",X"53",X"33",X"53",X"33",X"53",X"32",X"21",X"8B",X"CD",X"CB",X"CB", + X"CB",X"AB",X"98",X"01",X"33",X"44",X"33",X"34",X"33",X"53",X"42",X"21",X"8A",X"BD",X"BD",X"CB", + X"CB",X"AB",X"98",X"01",X"23",X"43",X"42",X"34",X"33",X"53",X"33",X"21",X"8A",X"DB",X"DC",X"BB", + X"CB",X"BA",X"A9",X"82",X"33",X"53",X"34",X"34",X"23",X"52",X"33",X"21",X"8A",X"BE",X"BD",X"BC", + X"BB",X"BB",X"A9",X"80",X"23",X"53",X"35",X"23",X"43",X"34",X"42",X"32",X"18",X"BD",X"CD",X"BB", + X"CB",X"BB",X"90",X"02",X"24",X"33",X"43",X"33",X"43",X"42",X"33",X"32",X"09",X"CD",X"CB",X"DB", + X"CB",X"B9",X"A9",X"01",X"14",X"23",X"42",X"33",X"43",X"35",X"33",X"43",X"20",X"9C",X"DB",X"DB", + X"CB",X"BB",X"A9",X"80",X"22",X"35",X"33",X"33",X"44",X"24",X"33",X"52",X"10",X"9B",X"CD",X"BC", + X"BC",X"BA",X"A9",X"80",X"12",X"34",X"43",X"23",X"34",X"35",X"33",X"33",X"19",X"AE",X"CB",X"CC", + X"BA",X"BB",X"A9",X"01",X"14",X"24",X"33",X"33",X"43",X"44",X"34",X"32",X"08",X"BD",X"CB",X"DB", + X"BC",X"AB",X"98",X"01",X"23",X"34",X"34",X"23",X"43",X"35",X"33",X"32",X"0A",X"CD",X"BD",X"BC", + X"BB",X"AB",X"98",X"02",X"24",X"24",X"32",X"42",X"33",X"43",X"52",X"33",X"08",X"AD",X"CC",X"BC", + X"CA",X"BA",X"A8",X"81",X"13",X"34",X"42",X"33",X"33",X"44",X"42",X"42",X"00",X"9C",X"BD",X"CA", + X"CA",X"BA",X"A9",X"80",X"22",X"34",X"24",X"33",X"33",X"52",X"43",X"33",X"31",X"8C",X"CD",X"BC", + X"BC",X"BB",X"AB",X"99",X"02",X"34",X"42",X"34",X"24",X"22",X"34",X"34",X"31",X"19",X"BD",X"CB", + X"DB",X"CA",X"BA",X"A9",X"01",X"14",X"23",X"35",X"22",X"33",X"44",X"33",X"41",X"18",X"AD",X"BD", + X"BB",X"CB",X"CA",X"A9",X"81",X"13",X"42",X"34",X"23",X"34",X"33",X"53",X"32",X"28",X"BC",X"CD", + X"BC",X"BC",X"BB",X"AA",X"80",X"22",X"43",X"34",X"33",X"43",X"34",X"35",X"32",X"20",X"9C",X"CB", + X"DB",X"CB",X"BB",X"BA",X"98",X"22",X"43",X"43",X"42",X"33",X"35",X"34",X"34",X"11",X"9A",X"BE", + X"BC",X"BC",X"BB",X"AB",X"A8",X"02",X"35",X"24",X"32",X"24",X"23",X"43",X"43",X"31",X"0A",X"BE", + X"CB",X"CB",X"BC",X"BB",X"A9",X"01",X"23",X"53",X"33",X"34",X"34",X"25",X"23",X"41",X"18",X"AC", + X"CB",X"CB",X"CA",X"CB",X"A9",X"90",X"22",X"34",X"33",X"43",X"24",X"33",X"44",X"33",X"20",X"9B", + X"DC",X"CB",X"CB",X"BC",X"BA",X"98",X"02",X"34",X"33",X"43",X"24",X"33",X"44",X"33",X"21",X"0A", + X"CD",X"BC",X"BC",X"CA",X"BA",X"A9",X"81",X"23",X"43",X"34",X"34",X"23",X"43",X"43",X"32",X"19", + X"AD",X"CC",X"BB",X"CC",X"BA",X"B9",X"90",X"22",X"35",X"32",X"42",X"33",X"52",X"42",X"31",X"10", + X"AB",X"EB",X"CB",X"CC",X"AB",X"AA",X"88",X"21",X"34",X"34",X"24",X"23",X"34",X"34",X"32",X"18", + X"8C",X"BD",X"CB",X"CB",X"BC",X"AA",X"98",X"11",X"23",X"61",X"33",X"33",X"44",X"24",X"22",X"10", + X"8B",X"BE",X"BD",X"BB",X"BC",X"BA",X"98",X"82",X"32",X"62",X"24",X"22",X"34",X"33",X"33",X"31", + X"9C",X"CC",X"BD",X"BC",X"BB",X"BB",X"99",X"01",X"24",X"42",X"34",X"34",X"33",X"43",X"33",X"12", + X"99",X"DB",X"EB",X"BC",X"CA",X"BA",X"9A",X"00",X"13",X"43",X"43",X"35",X"23",X"43",X"32",X"20", + X"0A",X"BD",X"DB",X"CB",X"CB",X"AB",X"AA",X"80",X"22",X"43",X"53",X"42",X"33",X"43",X"33",X"31", + X"09",X"BC",X"EB",X"CC",X"BB",X"BB",X"CA",X"88",X"02",X"25",X"23",X"53",X"14",X"23",X"33",X"32", + X"00",X"AB",X"EC",X"BD",X"BC",X"AA",X"BA",X"99",X"03",X"14",X"23",X"63",X"33",X"43",X"23",X"33", + X"18",X"8C",X"CB",X"EB",X"BC",X"BC",X"A9",X"A9",X"01",X"23",X"35",X"42",X"42",X"33",X"33",X"33", + X"18",X"9B",X"CD",X"BD",X"AC",X"BA",X"A9",X"8A",X"01",X"32",X"45",X"24",X"23",X"43",X"23",X"22", + X"88",X"AB",X"DB",X"EA",X"BB",X"BD",X"98",X"A0",X"02",X"23",X"43",X"44",X"23",X"42",X"32",X"28", + X"0A",X"9C",X"BE",X"BB",X"CA",X"AC",X"99",X"80",X"03",X"25",X"23",X"52",X"33",X"52",X"20",X"10", + X"8A",X"AD",X"BC",X"CB",X"CA",X"AB",X"8A",X"88",X"40",X"34",X"51",X"33",X"42",X"42",X"22",X"10", + X"09",X"BB",X"DC",X"BC",X"BB",X"BD",X"98",X"A8",X"02",X"13",X"35",X"34",X"23",X"52",X"22",X"11", + X"19",X"8B",X"AC",X"CB",X"BD",X"AA",X"AA",X"A8",X"81",X"13",X"32",X"51",X"33",X"42",X"33",X"02", + X"89",X"9A",X"CA",X"CB",X"CA",X"BB",X"CA",X"88",X"11",X"22",X"43",X"34",X"33",X"52",X"31",X"20", + X"08",X"9B",X"BC",X"CB",X"BD",X"AA",X"9B",X"89",X"18",X"33",X"41",X"34",X"34",X"33",X"24",X"01", + X"80",X"A9",X"CA",X"CA",X"BC",X"C9",X"A9",X"A0",X"81",X"21",X"24",X"33",X"23",X"32",X"31",X"21", + X"89",X"8B",X"AB",X"BC",X"BB",X"C8",X"C9",X"89",X"12",X"03",X"12",X"43",X"33",X"32",X"32",X"10", + X"80",X"9A",X"AB",X"CA",X"BC",X"BB",X"B9",X"99",X"00",X"20",X"32",X"23",X"33",X"32",X"31",X"11", + X"09",X"89",X"AB",X"AC",X"9B",X"C9",X"A8",X"0B",X"38",X"12",X"12",X"40",X"32",X"21",X"21",X"08", + X"0A",X"8A",X"AB",X"AB",X"9C",X"9A",X"08",X"A0",X"28",X"12",X"40",X"31",X"31",X"41",X"01",X"08", + X"0A",X"99",X"BA",X"AB",X"9C",X"9A",X"08",X"08",X"00",X"30",X"33",X"12",X"21",X"30",X"10",X"19", + X"89",X"9B",X"9A",X"AB",X"8C",X"9A",X"08",X"08",X"00",X"30",X"31",X"32",X"21",X"21",X"10",X"09", + X"09",X"9A",X"9A",X"BA",X"9B",X"8A",X"98",X"08",X"10",X"23",X"03",X"12",X"20",X"30",X"28",X"08", + X"09",X"9B",X"8A",X"BA",X"9B",X"8B",X"88",X"08",X"08",X"21",X"48",X"40",X"22",X"12",X"11",X"00", + X"90",X"99",X"B8",X"BA",X"B8",X"B8",X"B8",X"80",X"81",X"20",X"31",X"21",X"22",X"13",X"01",X"80", + X"80",X"A8",X"B9",X"B9",X"CA",X"88",X"08",X"00",X"02",X"08",X"00",X"00",X"28",X"08",X"00",X"08", + X"18",X"08",X"00",X"88",X"18",X"88",X"08",X"08",X"08",X"08",X"08",X"09",X"19",X"08",X"08",X"08", + X"80",X"90",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"00",X"88",X"80", + X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"81",X"91",X"90",X"80",X"80",X"80",X"80",X"80",X"80", + X"80",X"80",X"80",X"A0",X"80",X"80",X"91",X"80",X"10",X"80",X"01",X"10",X"81",X"80",X"08",X"80", + X"90",X"80",X"80",X"A0",X"10",X"81",X"80",X"08",X"80",X"9F",X"DA",X"98",X"02",X"54",X"54",X"53", + X"32",X"1B",X"DB",X"CA",X"BB",X"FF",X"B8",X"11",X"37",X"38",X"88",X"AE",X"90",X"01",X"01",X"15", + X"40",X"9B",X"E8",X"01",X"15",X"09",X"D8",X"00",X"32",X"BC",X"80",X"52",X"9E",X"80",X"13",X"9C", + X"80",X"10",X"88",X"04",X"39",X"D9",X"80",X"07",X"8C",X"00",X"80",X"00",X"93",X"4E",X"83",X"0D", + X"02",X"B4",X"A9",X"18",X"85",X"B8",X"00",X"19",X"03",X"C0",X"87",X"A1",X"90",X"98",X"4B",X"80", + X"13",X"E8",X"5B",X"82",X"81",X"B2",X"B4",X"B2",X"1D",X"01",X"88",X"2A",X"7A",X"91",X"86",X"B8", + X"84",X"9A",X"03",X"0D",X"08",X"07",X"9A",X"03",X"AA",X"08",X"04",X"A8",X"00",X"08",X"03",X"A9", + X"81",X"19",X"83",X"19",X"A8",X"98",X"17",X"7C",X"C0",X"07",X"0A",X"C0",X"03",X"29",X"F8",X"00", + X"04",X"0B",X"A0",X"00",X"14",X"8B",X"90",X"00",X"13",X"0A",X"98",X"10",X"11",X"77",X"9C",X"90", + X"08",X"00",X"14",X"8B",X"A8",X"08",X"00",X"10",X"12",X"40",X"DB",X"98",X"00",X"00",X"01",X"23", + X"38",X"AD",X"BB",X"A8",X"80",X"01",X"11",X"33",X"35",X"53",X"09",X"CF",X"AA",X"88",X"10",X"01", + X"81",X"12",X"03",X"43",X"43",X"20",X"CD",X"CB",X"A8",X"88",X"08",X"08",X"12",X"23",X"13",X"32", + X"14",X"23",X"33",X"32",X"18",X"08",X"89",X"9B",X"AB",X"CA",X"CA",X"B0",X"83",X"80",X"08",X"81", + X"25",X"53",X"30",X"AD",X"DB",X"BA",X"02",X"61",X"08",X"89",X"AB",X"D9",X"01",X"61",X"8A",X"C8", + X"90",X"12",X"53",X"54",X"42",X"1B",X"FC",X"A8",X"83",X"11",X"80",X"26",X"31",X"AF",X"C0",X"23", + X"51",X"BF",X"A8",X"16",X"38",X"CC",X"81",X"42",X"9E",X"80",X"14",X"8C",X"91",X"22",X"BB",X"02", + X"4A",X"B1",X"20",X"B0",X"25",X"BA",X"47",X"BA",X"11",X"B2",X"5C",X"83",X"AA",X"5B",X"10",X"A4", + X"99",X"81",X"6C",X"80",X"39",X"A0",X"81",X"82",X"B0",X"49",X"80",X"A9",X"54",X"D9",X"31",X"D0", + X"08",X"03",X"9C",X"02",X"1B",X"00",X"01",X"AB",X"17",X"3C",X"B8",X"03",X"69",X"D8",X"24",X"0E", + X"80",X"20",X"A9",X"02",X"1A",X"A0",X"25",X"8C",X"90",X"34",X"8C",X"A0",X"02",X"32",X"8D",X"B9", + X"02",X"45",X"0B",X"D8",X"81",X"02",X"20",X"99",X"BA",X"91",X"14",X"53",X"0B",X"DA",X"90",X"00", + X"11",X"23",X"21",X"9B",X"DB",X"A8",X"00",X"11",X"22",X"32",X"21",X"8A",X"CB",X"AC",X"CC",X"A9", + X"82",X"35",X"31",X"12",X"23",X"21",X"8C",X"FB",X"BC",X"A9",X"90",X"32",X"32",X"20",X"38",X"32", + X"32",X"41",X"18",X"AC",X"A9",X"AB",X"9C",X"BB",X"C9",X"90",X"82",X"13",X"31",X"24",X"03",X"33", + X"22",X"02",X"11",X"02",X"89",X"9A",X"AB",X"A9",X"99",X"98",X"A9",X"8B",X"89",X"91",X"80",X"10", + X"03",X"84",X"03",X"11",X"81",X"12",X"12",X"09",X"CB",X"B9",X"98",X"A9",X"CB",X"0C",X"0B",X"09", + X"AB",X"91",X"56",X"33",X"08",X"00",X"88",X"00",X"38",X"8C",X"BC",X"B0",X"35",X"34",X"30",X"9C", + X"DA",X"15",X"40",X"AB",X"B9",X"01",X"11",X"13",X"2D",X"92",X"73",X"AF",X"D9",X"14",X"51",X"BC", + X"B0",X"55",X"0D",X"A1",X"31",X"AC",X"84",X"2A",X"C0",X"41",X"C9",X"30",X"B0",X"39",X"88",X"A2", + X"69",X"D0",X"49",X"92",X"A0",X"2C",X"87",X"A8",X"29",X"98",X"14",X"8E",X"03",X"9A",X"28",X"80", + X"18",X"A8",X"03",X"09",X"C8",X"52",X"BD",X"13",X"1A",X"B9",X"35",X"8C",X"A3",X"68",X"C9",X"03", + X"39",X"CA",X"03",X"58",X"BB",X"82",X"34",X"1C",X"CA",X"13",X"41",X"8D",X"A9",X"13",X"32",X"9C", + X"AA",X"01",X"32",X"20",X"9B",X"C9",X"88",X"12",X"33",X"20",X"BC",X"CA",X"98",X"23",X"41",X"18", + X"08",X"8A",X"BC",X"B8",X"13",X"42",X"38",X"09",X"08",X"09",X"BD",X"AA",X"01",X"43",X"21",X"08", + X"00",X"08",X"09",X"0A",X"89",X"89",X"89",X"08",X"01",X"28",X"00",X"11",X"08",X"18",X"88",X"99", + X"09",X"08",X"98",X"89",X"08",X"00",X"18",X"28",X"08",X"08",X"18",X"18",X"08",X"08",X"08",X"08", + X"88",X"09",X"08",X"08",X"08",X"98",X"08",X"08",X"08",X"08",X"28",X"08",X"08",X"08",X"08",X"08", + X"08",X"88",X"08",X"18",X"88",X"08",X"08",X"08",X"08",X"08",X"08",X"18",X"08",X"08",X"80",X"88", + X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08", + X"08",X"00",X"88",X"28",X"89",X"21",X"98",X"80",X"01",X"99",X"84",X"8A",X"D5",X"B6",X"0A",X"B8", + X"34",X"29",X"AD",X"B9",X"02",X"35",X"31",X"10",X"99",X"AA",X"BC",X"AA",X"D9",X"AC",X"98",X"99", + X"09",X"10",X"28",X"11",X"22",X"12",X"40",X"31",X"21",X"31",X"21",X"21",X"20",X"20",X"28",X"10", + X"08",X"18",X"08",X"88",X"08",X"08",X"89",X"89",X"08",X"89",X"88",X"89",X"99",X"09",X"88",X"99", + X"88",X"88",X"09",X"08",X"18",X"09",X"09",X"0A",X"89",X"A9",X"BC",X"BF",X"BB",X"BD",X"AC",X"AA", + X"BB",X"BB",X"C9",X"88",X"11",X"44",X"35",X"43",X"34",X"43",X"33",X"43",X"33",X"33",X"43",X"33", + X"43",X"34",X"13",X"31",X"40",X"11",X"08",X"90",X"A9",X"80",X"80",X"37",X"33",X"30",X"EF",X"CC", + X"CB",X"BC",X"BA",X"BB",X"CB",X"AB",X"98",X"23",X"54",X"34",X"33",X"43",X"24",X"35",X"35",X"20", + X"8B",X"BC",X"CB",X"CB",X"A9",X"88",X"12",X"34",X"36",X"43",X"20",X"9A",X"CD",X"BA",X"80",X"02", + X"36",X"43",X"89",X"BC",X"AA",X"A9",X"81",X"37",X"52",X"8B",X"EA",X"01",X"04",X"30",X"AD",X"A0", + X"03",X"40",X"AB",X"92",X"1D",X"A0",X"37",X"2B",X"D8",X"02",X"48",X"C9",X"03",X"3B",X"C8",X"33", + X"CA",X"61",X"CA",X"12",X"3A",X"BA",X"03",X"3A",X"B7",X"9A",X"40",X"C3",X"8C",X"40",X"91",X"D8", + X"18",X"5A",X"89",X"19",X"5B",X"3B",X"3B",X"4B",X"3C",X"3B",X"59",X"0D",X"18",X"38",X"9B",X"01", + X"02",X"0B",X"14",X"8B",X"82",X"12",X"08",X"FD",X"06",X"88",X"A8",X"11",X"08",X"08",X"08",X"89", + X"14",X"39",X"FB",X"87",X"0A",X"A0",X"21",X"88",X"82",X"88",X"89",X"35",X"0F",X"A0",X"50",X"C8", + X"02",X"80",X"88",X"18",X"80",X"87",X"8E",X"81",X"38",X"D8",X"20",X"08",X"80",X"00",X"99",X"70", + X"D8",X"12",X"8C",X"82",X"00",X"80",X"00",X"9A",X"62",X"CC",X"05",X"0A",X"A1",X"29",X"09",X"02", + X"3F",X"4D",X"3B",X"15",X"9B",X"98",X"11",X"60",X"89",X"BB",X"80",X"10",X"11",X"11",X"23",X"53", + X"18",X"AB",X"BB",X"AB",X"BE",X"BA",X"AA",X"98",X"00",X"13",X"24",X"23",X"43",X"33",X"33",X"33", + X"42",X"23",X"22",X"21",X"20",X"11",X"89",X"99",X"AB",X"AB",X"BC",X"AD",X"AA",X"BB",X"CB",X"AC", + X"AC",X"AA",X"BB",X"CB",X"BB",X"BB",X"B9",X"CB",X"A9",X"BB",X"8C",X"9A",X"9A",X"89",X"8A",X"08", + X"88",X"08",X"00",X"08",X"11",X"18",X"11",X"28",X"21",X"48",X"31",X"30",X"33",X"12",X"12",X"48", + X"21",X"30",X"21",X"21",X"11",X"10",X"20",X"18",X"10",X"18",X"18",X"08",X"08",X"08",X"08",X"08", + X"08",X"89",X"08",X"98",X"09",X"88",X"0A",X"08",X"99",X"88",X"09",X"88",X"89",X"89",X"08",X"FF", + X"08",X"88",X"08",X"08",X"19",X"19",X"08",X"08",X"08",X"80",X"09",X"08",X"88",X"08",X"08",X"08", + X"00",X"08",X"18",X"00",X"08",X"09",X"08",X"00",X"00",X"18",X"08",X"88",X"18",X"10",X"08",X"10", + X"12",X"0F",X"FF",X"A0",X"15",X"64",X"20",X"9E",X"DA",X"00",X"37",X"28",X"CC",X"80",X"35",X"8B", + X"C0",X"25",X"8D",X"92",X"59",X"D0",X"50",X"D8",X"59",X"C4",X"1D",X"30",X"D5",X"A9",X"5D",X"4B", + X"3B",X"2A",X"3C",X"5B",X"28",X"A3",X"9A",X"22",X"AA",X"01",X"20",X"08",X"08",X"8A",X"AB",X"17", + X"8B",X"28",X"A4",X"B2",X"90",X"19",X"A0",X"28",X"08",X"A9",X"22",X"C1",X"0A",X"13",X"D8",X"10", + X"09",X"8A",X"21",X"C2",X"A2",X"B8",X"21",X"84",X"9F",X"11",X"A2",X"B4",X"8A",X"31",X"B8",X"96", + X"98",X"21",X"19",X"08",X"08",X"98",X"08",X"08",X"18",X"80",X"18",X"0A",X"0A",X"98",X"12",X"18", + X"08",X"09",X"08",X"08",X"11",X"10",X"09",X"98",X"90",X"10",X"28",X"20",X"89",X"08",X"90",X"08", + X"02",X"89",X"0A",X"89",X"18",X"10",X"08",X"20",X"08",X"08",X"88",X"00",X"11",X"29",X"18",X"08", + X"89",X"38",X"08",X"08",X"08",X"01",X"A8",X"19",X"19",X"18",X"C3",X"8B",X"9A",X"A5",X"AA",X"18", + X"D4",X"8B",X"A9",X"88",X"34",X"AF",X"48",X"A2",X"0C",X"5A",X"92",X"38",X"98",X"81",X"31",X"AF", + X"C5",X"1E",X"38",X"A4",X"B4",X"B3",X"8C",X"59",X"A3",X"19",X"D1",X"31",X"99",X"80",X"B8",X"08", + X"05",X"03",X"20",X"FF",X"01",X"30",X"E8",X"22",X"D0",X"28",X"B3",X"0D",X"4A",X"84",X"D2",X"90", + X"2C",X"4B",X"3C",X"3B",X"3C",X"3B",X"5B",X"4B",X"2A",X"01",X"B6",X"B2",X"99",X"5B",X"10",X"A4", + X"A9",X"6B",X"84",X"A8",X"3B",X"84",X"A9",X"21",X"D0",X"5B",X"81",X"2C",X"03",X"9B",X"07",X"A9", + X"04",X"A9",X"03",X"8C",X"01",X"4C",X"88",X"31",X"D8",X"04",X"0C",X"80",X"31",X"D8",X"01",X"4B", + X"A0",X"04",X"1D",X"90",X"13",X"1E",X"88",X"03",X"2C",X"A0",X"01",X"68",X"C8",X"80",X"24",X"8D", + X"88",X"01",X"40",X"BB",X"00",X"04",X"38",X"EA",X"00",X"12",X"40",X"DA",X"80",X"02",X"42",X"AD", + X"A0",X"00",X"25",X"19",X"CA",X"91",X"02",X"43",X"0B",X"F9",X"80",X"02",X"42",X"8A",X"CB",X"80", + X"02",X"44",X"18",X"BD",X"B8",X"01",X"24",X"41",X"8A",X"CC",X"90",X"01",X"34",X"31",X"9A",X"EB", + X"A0",X"02",X"34",X"41",X"89",X"CC",X"A9",X"01",X"23",X"43",X"18",X"AB",X"EB",X"A8",X"03",X"35", + X"32",X"09",X"AC",X"CC",X"98",X"12",X"34",X"31",X"08",X"9B",X"DB",X"C9",X"01",X"34",X"33",X"10", + X"99",X"BC",X"CC",X"A8",X"13",X"34",X"32",X"18",X"9A",X"BC",X"DB",X"A8",X"22",X"53",X"31",X"08", + X"89",X"AB",X"DB",X"CA",X"02",X"43",X"33",X"10",X"98",X"AA",X"AD",X"CA",X"A8",X"33",X"52",X"30", + X"08",X"09",X"99",X"9B",X"9D",X"90",X"23",X"22",X"10",X"08",X"09",X"09",X"89",X"99",X"0B",X"38", + X"11",X"10",X"08",X"08",X"09",X"09",X"09",X"98",X"08",X"10",X"18",X"18",X"08",X"09",X"19",X"08", + X"88",X"09",X"18",X"00",X"08",X"08",X"19",X"08",X"08",X"08",X"09",X"08",X"08",X"18",X"08",X"08", + X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08", + X"08",X"18",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08", + X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"09", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"C3",X"87",X"E0",X"02",X"00",X"00",X"20",X"00",X"00",X"00",X"30",X"00",X"30",X"00",X"20",X"00", + X"20",X"00",X"30",X"00",X"30",X"00",X"20",X"00",X"40",X"00",X"30",X"00",X"30",X"00",X"20",X"00", + X"60",X"00",X"30",X"00",X"30",X"00",X"20",X"00",X"80",X"00",X"30",X"00",X"30",X"00",X"20",X"00", + X"A0",X"00",X"30",X"00",X"30",X"00",X"20",X"00",X"C0",X"00",X"30",X"00",X"30",X"00",X"00",X"00", + X"1E",X"49",X"00",X"30",X"C0",X"00",X"20",X"00",X"20",X"00",X"30",X"3D",X"E0",X"00",X"E0",X"00", + X"50",X"07",X"00",X"E0",X"00",X"00",X"D3",X"1F",X"94",X"03",X"05",X"00",X"01",X"09",X"E0",X"23", + X"ED",X"00",X"7C",X"BA",X"C0",X"7D",X"BB",X"C9",X"A7",X"ED",X"52",X"23",X"C9",X"23",X"7C",X"B5", + X"2B",X"C9",X"7D",X"02",X"03",X"7C",X"02",X"03",X"C9",X"1A",X"6F",X"13",X"1A",X"67",X"C9",X"DB", + X"04",X"E6",X"80",X"32",X"FD",X"FE",X"C9",X"31",X"00",X"F6",X"CD",X"60",X"F0",X"CD",X"23",X"EB", + X"31",X"00",X"F6",X"21",X"03",X"E0",X"06",X"5F",X"AF",X"77",X"23",X"10",X"FC",X"CD",X"CA",X"E0", + X"AF",X"32",X"FD",X"FE",X"32",X"FE",X"FE",X"3A",X"04",X"E0",X"A7",X"CC",X"82",X"F2",X"06",X"01", + X"CD",X"3D",X"F3",X"CD",X"B6",X"F2",X"06",X"01",X"CD",X"3D",X"F3",X"CD",X"B6",X"F2",X"0E",X"00", + X"CD",X"80",X"F3",X"0E",X"00",X"CD",X"80",X"F3",X"18",X"C6",X"AF",X"32",X"03",X"E0",X"32",X"FD", + X"FE",X"32",X"01",X"F6",X"21",X"05",X"E0",X"22",X"5D",X"E0",X"21",X"04",X"ED",X"22",X"5F",X"E0", + X"06",X"4D",X"36",X"20",X"23",X"10",X"FB",X"21",X"3D",X"EB",X"CD",X"4E",X"F2",X"CD",X"1E",X"F1", + X"FE",X"01",X"CA",X"36",X"E1",X"FE",X"02",X"CA",X"96",X"E1",X"FE",X"03",X"CA",X"36",X"E2",X"FE", + X"04",X"CA",X"47",X"E2",X"FE",X"06",X"CA",X"D0",X"F0",X"FE",X"07",X"20",X"BD",X"21",X"85",X"EB", + X"CD",X"4E",X"F2",X"CD",X"1E",X"F1",X"FE",X"01",X"CA",X"CE",X"EE",X"FE",X"02",X"CA",X"00",X"F7", + X"FE",X"03",X"CA",X"00",X"F4",X"FE",X"04",X"CA",X"9F",X"ED",X"FE",X"05",X"CA",X"00",X"FB",X"FE", + X"07",X"C2",X"0D",X"E1",X"18",X"94",X"21",X"3F",X"EB",X"0E",X"05",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"82",X"F2",X"21",X"20",X"EC",X"CD",X"4E",X"F2",X"CD",X"49",X"F1",X"CD",X"D3",X"EA", + X"20",X"F8",X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"2D",X"EC", + X"CD",X"4E",X"F2",X"CD",X"49",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"26",X"21",X"2F",X"EC", + X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"47",X"EC",X"CD",X"4E",X"F2",X"CD",X"49", + X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"0B",X"21",X"4F",X"EC",X"0E",X"02",X"CD",X"FE",X"EA", + X"CD",X"12",X"EB",X"C3",X"19",X"E9",X"21",X"49",X"EB",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"82",X"F2",X"21",X"5C",X"EC",X"CD",X"4E",X"F2",X"CD",X"49",X"F1",X"CD",X"D3",X"EA", + X"20",X"EF",X"21",X"5E",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"69",X"EC", + X"CD",X"4E",X"F2",X"CD",X"1E",X"F1",X"FE",X"01",X"28",X"5F",X"FE",X"03",X"20",X"F5",X"21",X"7D", + X"EC",X"0E",X"0C",X"CD",X"FE",X"EA",X"CD",X"82",X"F2",X"21",X"8A",X"EC",X"CD",X"4E",X"F2",X"CD", + X"49",X"F1",X"CD",X"D3",X"EA",X"20",X"F8",X"CD",X"12",X"EB",X"CD",X"82",X"F2",X"21",X"93",X"EC", + X"CD",X"4E",X"F2",X"CD",X"49",X"F1",X"3A",X"04",X"F8",X"CD",X"DD",X"EA",X"20",X"F5",X"38",X"26", + X"21",X"22",X"EC",X"0E",X"04",X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"21",X"A9",X"EC",X"CD",X"4E", + X"F2",X"CD",X"49",X"F1",X"CD",X"DD",X"EA",X"20",X"F8",X"38",X"0B",X"21",X"2F",X"EC",X"0E",X"04", + X"CD",X"FE",X"EA",X"CD",X"12",X"EB",X"C3",X"99",X"E8",X"21",X"6B",X"EC",X"0E",X"0A",X"CD",X"FE", + X"EA",X"CD",X"04",X"E3",X"18",X"B4",X"21",X"52",X"EB",X"0E",X"0A",X"CD",X"FE",X"EA",X"CD",X"75", + X"E2",X"CD",X"04",X"E3",X"C3",X"19",X"E9",X"21",X"5D",X"EB",X"0E",X"07",X"CD",X"FE",X"EA",X"CD", + X"75",X"E2",X"CD",X"04",X"E3",X"CD",X"82",X"F2",X"21",X"8A",X"EC",X"CD",X"4E",X"F2",X"CD",X"49", + X"F1",X"CD",X"D3",X"EA",X"20",X"F8",X"21",X"7D",X"EC",X"01",X"0C",X"00",X"CD",X"FE",X"EA",X"CD", + X"12",X"EB",X"C3",X"EA",X"E1",X"21",X"CD",X"EB",X"CD",X"4E",X"F2",X"CD",X"1E",X"F1",X"FE",X"07", + X"28",X"1A",X"FE",X"06",X"28",X"23",X"FE",X"05",X"28",X"2C",X"FE",X"04",X"28",X"35",X"FE",X"03", + X"28",X"3E",X"FE",X"02",X"28",X"47",X"FE",X"01",X"28",X"50",X"18",X"D9",X"3E",X"00",X"01",X"09", + X"00",X"11",X"0B",X"EC",X"21",X"00",X"08",X"18",X"4C",X"3E",X"32",X"01",X"06",X"00",X"11",X"02", + X"EC",X"21",X"20",X"00",X"18",X"3F",X"3E",X"34",X"01",X"06",X"00",X"11",X"F8",X"EB",X"21",X"00", + X"02",X"18",X"32",X"3E",X"54",X"01",X"04",X"00",X"11",X"EE",X"EB",X"21",X"00",X"10",X"18",X"25", + X"3E",X"54",X"01",X"04",X"10",X"11",X"E4",X"EB",X"21",X"00",X"20",X"18",X"18",X"3E",X"49",X"01", + X"04",X"00",X"11",X"DA",X"EB",X"21",X"00",X"10",X"18",X"0B",X"3E",X"49",X"01",X"04",X"10",X"11", + X"D0",X"EB",X"21",X"00",X"20",X"32",X"41",X"E0",X"22",X"45",X"E0",X"21",X"40",X"E0",X"70",X"EB", + X"CD",X"FE",X"EA",X"C9",X"11",X"FF",X"FF",X"2A",X"5D",X"E0",X"73",X"23",X"72",X"23",X"22",X"5D", + X"E0",X"21",X"03",X"E0",X"34",X"C9",X"21",X"00",X"00",X"22",X"4D",X"E0",X"7D",X"32",X"3F",X"E0", + X"2A",X"05",X"E0",X"22",X"49",X"E0",X"22",X"4F",X"E0",X"3A",X"03",X"E0",X"C9",X"CD",X"33",X"E3", + X"C3",X"B8",X"E3",X"CD",X"16",X"E3",X"FE",X"01",X"20",X"23",X"2A",X"49",X"E0",X"11",X"00",X"E0", + X"CD",X"62",X"E0",X"38",X"07",X"21",X"FF",X"FF",X"22",X"49",X"E0",X"23",X"EB",X"2A",X"45",X"E0", + X"22",X"47",X"E0",X"2B",X"19",X"22",X"4B",X"E0",X"3E",X"01",X"D8",X"AF",X"C9",X"FE",X"02",X"20", + X"21",X"EB",X"2A",X"07",X"E0",X"22",X"4B",X"E0",X"CD",X"68",X"E0",X"38",X"EB",X"22",X"47",X"E0", + X"EB",X"2A",X"45",X"E0",X"1B",X"CD",X"62",X"E0",X"3E",X"00",X"30",X"01",X"3C",X"32",X"3F",X"E0", + X"AF",X"C9",X"EB",X"2A",X"07",X"E0",X"22",X"4B",X"E0",X"CD",X"68",X"E0",X"38",X"CA",X"22",X"47", + X"E0",X"2A",X"09",X"E0",X"22",X"4D",X"E0",X"EB",X"2A",X"45",X"E0",X"2B",X"CD",X"62",X"E0",X"3E", + X"01",X"38",X"DA",X"2A",X"47",X"E0",X"19",X"EB",X"2A",X"45",X"E0",X"CD",X"62",X"E0",X"3E",X"00", + X"30",X"CB",X"3C",X"18",X"C8",X"CD",X"92",X"E4",X"A7",X"C0",X"21",X"05",X"E0",X"06",X"3A",X"36", + X"00",X"23",X"10",X"FB",X"3A",X"3F",X"E0",X"A7",X"28",X"2E",X"2A",X"45",X"E0",X"11",X"00",X"10", + X"CD",X"62",X"E0",X"3E",X"00",X"30",X"61",X"ED",X"5B",X"45",X"E0",X"2A",X"47",X"E0",X"2B",X"CD", + X"62",X"E0",X"D2",X"F9",X"E4",X"44",X"4D",X"2A",X"4D",X"E0",X"09",X"DA",X"58",X"E3",X"CD",X"62", + X"E0",X"3E",X"01",X"D0",X"AF",X"32",X"3F",X"E0",X"D5",X"2A",X"45",X"E0",X"11",X"00",X"10",X"CD", + X"62",X"E0",X"D1",X"21",X"56",X"E0",X"3E",X"01",X"38",X"02",X"3E",X"07",X"77",X"01",X"05",X"E0", + X"2A",X"47",X"E0",X"CD",X"72",X"E0",X"2A",X"4D",X"E0",X"CD",X"72",X"E0",X"EB",X"2A",X"45",X"E0", + X"19",X"22",X"4D",X"E0",X"2A",X"49",X"E0",X"CD",X"72",X"E0",X"2A",X"4F",X"E0",X"CD",X"72",X"E0", + X"21",X"56",X"E0",X"35",X"20",X"DA",X"AF",X"C9",X"01",X"05",X"E0",X"ED",X"5B",X"45",X"E0",X"2A", + X"4D",X"E0",X"A7",X"ED",X"52",X"30",X"FC",X"7D",X"2F",X"5F",X"7C",X"2F",X"57",X"13",X"2A",X"47", + X"E0",X"CD",X"62",X"E0",X"F5",X"28",X"08",X"38",X"06",X"ED",X"52",X"22",X"47",X"E0",X"EB",X"CD", + X"72",X"E0",X"EB",X"2A",X"4D",X"E0",X"CD",X"72",X"E0",X"19",X"22",X"4D",X"E0",X"2A",X"49",X"E0", + X"CD",X"72",X"E0",X"CD",X"6D",X"E0",X"28",X"01",X"19",X"22",X"49",X"E0",X"2A",X"4F",X"E0",X"CD", + X"72",X"E0",X"CD",X"6D",X"E0",X"28",X"01",X"19",X"22",X"4F",X"E0",X"F1",X"3E",X"00",X"C8",X"30", + X"AA",X"C9",X"CD",X"16",X"E3",X"11",X"FF",X"FF",X"ED",X"53",X"4F",X"E0",X"FE",X"01",X"20",X"0C", + X"11",X"00",X"E0",X"CD",X"62",X"E0",X"DA",X"4C",X"E3",X"3E",X"01",X"C9",X"47",X"11",X"00",X"E0", + X"CD",X"62",X"E0",X"38",X"07",X"21",X"FF",X"FF",X"22",X"49",X"E0",X"23",X"78",X"FE",X"02",X"EB", + X"2A",X"07",X"E0",X"22",X"4F",X"E0",X"CA",X"4D",X"E3",X"2A",X"09",X"E0",X"22",X"4D",X"E0",X"3E", + X"01",X"32",X"3F",X"E0",X"78",X"FE",X"03",X"CA",X"4D",X"E3",X"EB",X"2A",X"0B",X"E0",X"CD",X"68", + X"E0",X"DA",X"58",X"E3",X"22",X"47",X"E0",X"EB",X"2A",X"49",X"E0",X"CD",X"6D",X"E0",X"C8",X"19", + X"22",X"4B",X"E0",X"11",X"00",X"E0",X"CD",X"62",X"E0",X"3E",X"01",X"D0",X"AF",X"C9",X"3A",X"41", + X"E0",X"FE",X"32",X"28",X"04",X"FE",X"34",X"20",X"03",X"AF",X"18",X"10",X"A7",X"20",X"04",X"3E", + X"10",X"18",X"09",X"06",X"30",X"FE",X"49",X"28",X"02",X"06",X"20",X"78",X"32",X"43",X"E0",X"C9", + X"3A",X"3F",X"E0",X"A7",X"28",X"14",X"21",X"07",X"E0",X"7E",X"23",X"66",X"6F",X"ED",X"5B",X"45", + X"E0",X"06",X"FF",X"A7",X"ED",X"52",X"04",X"30",X"FA",X"78",X"32",X"51",X"E0",X"C9",X"CD",X"5E", + X"E5",X"D5",X"11",X"10",X"27",X"1B",X"7A",X"B3",X"20",X"FB",X"D1",X"C9",X"11",X"C0",X"C0",X"3A", + X"43",X"E0",X"E6",X"30",X"FE",X"20",X"30",X"03",X"50",X"18",X"01",X"58",X"B2",X"C9",X"F5",X"32", + X"44",X"E0",X"06",X"82",X"FE",X"00",X"20",X"02",X"06",X"80",X"78",X"D3",X"03",X"F1",X"E6",X"C0", + X"47",X"D5",X"CD",X"4C",X"E5",X"D3",X"02",X"3A",X"3F",X"E0",X"A7",X"3E",X"0E",X"28",X"01",X"AF", + X"47",X"3A",X"40",X"E0",X"E6",X"10",X"B0",X"32",X"40",X"E0",X"B3",X"D3",X"05",X"D1",X"C9",X"3A", + X"44",X"E0",X"E6",X"C0",X"47",X"D5",X"CD",X"4C",X"E5",X"47",X"7C",X"E6",X"0F",X"B0",X"D3",X"02", + X"7D",X"D3",X"00",X"3A",X"40",X"E0",X"E6",X"0E",X"FE",X"0E",X"7C",X"28",X"17",X"E6",X"F0",X"47", + X"3A",X"43",X"E0",X"E6",X"20",X"28",X"0A",X"3A",X"40",X"E0",X"E6",X"10",X"20",X"03",X"78",X"17", + X"47",X"78",X"18",X"04",X"E6",X"10",X"F6",X"E0",X"0F",X"0F",X"0F",X"0F",X"47",X"3A",X"40",X"E0", + X"E6",X"10",X"B0",X"E6",X"1F",X"32",X"40",X"E0",X"B3",X"D1",X"D3",X"05",X"C9",X"D5",X"C5",X"06", + X"80",X"CD",X"4C",X"E5",X"47",X"7C",X"E6",X"0F",X"B0",X"D3",X"02",X"47",X"3A",X"40",X"E0",X"B3", + X"D3",X"05",X"4F",X"ED",X"5B",X"58",X"E0",X"1B",X"7A",X"B3",X"20",X"FB",X"78",X"CD",X"0B",X"E6", + X"D3",X"02",X"79",X"CD",X"0B",X"E6",X"D3",X"05",X"C1",X"D1",X"C9",X"CB",X"77",X"C0",X"E6",X"7F", + X"C9",X"21",X"05",X"E0",X"4E",X"23",X"46",X"23",X"5E",X"23",X"56",X"23",X"7E",X"23",X"66",X"6F", + X"EB",X"C9",X"3A",X"03",X"E0",X"FE",X"03",X"3E",X"00",X"C8",X"D5",X"E5",X"2A",X"45",X"E0",X"11", + X"00",X"10",X"CD",X"62",X"E0",X"E1",X"D1",X"01",X"01",X"01",X"38",X"02",X"0E",X"07",X"C5",X"3E", + X"40",X"CD",X"3E",X"E5",X"3A",X"40",X"E0",X"E6",X"10",X"32",X"40",X"E0",X"11",X"00",X"00",X"C1", + X"3E",X"00",X"F5",X"C5",X"D5",X"CD",X"8B",X"E6",X"D1",X"C1",X"28",X"01",X"C5",X"04",X"0D",X"28", + X"07",X"2A",X"45",X"E0",X"19",X"EB",X"18",X"EB",X"3E",X"C0",X"CD",X"3E",X"E5",X"F1",X"A7",X"C8", + X"CD",X"DB",X"E7",X"21",X"C5",X"EC",X"CD",X"52",X"F2",X"F1",X"A7",X"28",X"0B",X"CD",X"DB",X"E7", + X"21",X"C5",X"EC",X"CD",X"52",X"F2",X"18",X"F1",X"3E",X"80",X"C9",X"ED",X"4B",X"45",X"E0",X"EB", + X"50",X"59",X"CD",X"8F",X"E5",X"23",X"3A",X"43",X"E0",X"E6",X"30",X"06",X"FF",X"20",X"01",X"04", + X"DB",X"01",X"B8",X"C0",X"1B",X"7A",X"B3",X"20",X"E9",X"C9",X"3E",X"C0",X"CD",X"3E",X"E5",X"3E", + X"40",X"CD",X"3E",X"E5",X"3A",X"40",X"E0",X"E6",X"10",X"32",X"40",X"E0",X"AF",X"32",X"5B",X"E0", + X"21",X"00",X"00",X"22",X"56",X"E0",X"22",X"52",X"E0",X"21",X"51",X"E0",X"34",X"2A",X"4B",X"E0", + X"7E",X"4F",X"23",X"B6",X"F5",X"3E",X"C0",X"CC",X"3E",X"E5",X"F1",X"C8",X"46",X"23",X"EB",X"CD", + X"79",X"E0",X"22",X"4D",X"E0",X"13",X"CD",X"79",X"E0",X"22",X"49",X"E0",X"13",X"CD",X"79",X"E0", + X"22",X"4F",X"E0",X"13",X"EB",X"22",X"4B",X"E0",X"C5",X"2A",X"4D",X"E0",X"CD",X"8F",X"E5",X"EB", + X"2A",X"49",X"E0",X"CD",X"6D",X"E0",X"DB",X"01",X"28",X"0D",X"47",X"3A",X"54",X"E0",X"A7",X"78", + X"28",X"05",X"77",X"23",X"22",X"49",X"E0",X"21",X"5B",X"E0",X"FE",X"FF",X"28",X"05",X"35",X"28", + X"01",X"34",X"34",X"F5",X"2A",X"52",X"E0",X"85",X"6F",X"7C",X"CE",X"00",X"67",X"22",X"52",X"E0", + X"F1",X"2A",X"4F",X"E0",X"BE",X"C4",X"19",X"E8",X"C1",X"28",X"04",X"AF",X"32",X"55",X"E0",X"2A", + X"4D",X"E0",X"23",X"22",X"4D",X"E0",X"2A",X"4F",X"E0",X"CD",X"6D",X"E0",X"28",X"04",X"23",X"22", + X"4F",X"E0",X"0B",X"78",X"B1",X"20",X"A1",X"3E",X"C0",X"CD",X"3E",X"E5",X"3A",X"5C",X"E0",X"A7", + X"20",X"05",X"3A",X"5B",X"E0",X"A7",X"C0",X"F5",X"F5",X"CD",X"D8",X"E7",X"F1",X"21",X"BF",X"EC", + X"CC",X"52",X"F2",X"F1",X"C8",X"3A",X"61",X"E0",X"A7",X"28",X"2B",X"06",X"02",X"CD",X"3D",X"F3", + X"CD",X"B6",X"F2",X"06",X"02",X"CD",X"3D",X"F3",X"CD",X"B6",X"F2",X"06",X"02",X"CD",X"3D",X"F3", + X"CD",X"B6",X"F2",X"AF",X"32",X"61",X"E0",X"0E",X"80",X"CD",X"80",X"F3",X"0E",X"80",X"CD",X"80", + X"F3",X"0E",X"80",X"CD",X"80",X"F3",X"CD",X"D8",X"E7",X"CD",X"0C",X"F2",X"2A",X"4F",X"E0",X"CD", + X"6D",X"E0",X"28",X"12",X"2A",X"56",X"E0",X"7C",X"B5",X"28",X"0B",X"21",X"CE",X"EC",X"CD",X"55", + X"F2",X"2A",X"56",X"E0",X"18",X"09",X"21",X"D3",X"EC",X"CD",X"55",X"F2",X"2A",X"52",X"E0",X"CD", + X"E6",X"E7",X"2A",X"56",X"E0",X"7C",X"B5",X"C9",X"3A",X"51",X"E0",X"47",X"3E",X"F8",X"C6",X"0A", + X"10",X"FC",X"57",X"1E",X"11",X"C9",X"7C",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD",X"0D",X"E8",X"CD", + X"2A",X"F2",X"F1",X"CD",X"0D",X"E8",X"CD",X"2A",X"F2",X"7D",X"F5",X"0F",X"0F",X"0F",X"0F",X"CD", + X"0D",X"E8",X"CD",X"2A",X"F2",X"F1",X"CD",X"0D",X"E8",X"CD",X"2A",X"F2",X"C9",X"E6",X"0F",X"FE", + X"0A",X"30",X"03",X"F6",X"30",X"C9",X"C6",X"37",X"C9",X"4F",X"2A",X"4F",X"E0",X"CD",X"6D",X"E0", + X"C8",X"2A",X"56",X"E0",X"23",X"22",X"56",X"E0",X"3A",X"55",X"E0",X"A7",X"C8",X"C5",X"3E",X"01", + X"32",X"61",X"E0",X"3A",X"FE",X"FE",X"FE",X"12",X"38",X"23",X"CD",X"49",X"F1",X"C1",X"3A",X"04", + X"F8",X"FE",X"0D",X"28",X"52",X"C5",X"AF",X"32",X"FE",X"FE",X"21",X"D8",X"EC",X"CD",X"72",X"F1", + X"3A",X"51",X"E0",X"F6",X"30",X"CD",X"B8",X"F2",X"CD",X"B6",X"F2",X"18",X"0A",X"2B",X"7C",X"B5", + X"20",X"05",X"CD",X"B6",X"F2",X"18",X"E3",X"06",X"02",X"CD",X"3D",X"F3",X"2A",X"4D",X"E0",X"CD", + X"20",X"F3",X"06",X"02",X"CD",X"3D",X"F3",X"C1",X"79",X"CD",X"25",X"F3",X"06",X"03",X"CD",X"3D", + X"F3",X"2A",X"4F",X"E0",X"7E",X"F5",X"CD",X"20",X"F3",X"06",X"02",X"CD",X"3D",X"F3",X"F1",X"CD", + X"25",X"F3",X"CD",X"B6",X"F2",X"AF",X"C9",X"A7",X"C9",X"CD",X"B5",X"E3",X"A7",X"C0",X"CD",X"FE", + X"E4",X"11",X"11",X"01",X"CD",X"85",X"F2",X"11",X"12",X"01",X"CD",X"85",X"F2",X"3E",X"01",X"32", + X"5C",X"E0",X"32",X"54",X"E0",X"32",X"55",X"E0",X"21",X"05",X"E0",X"22",X"4B",X"E0",X"CD",X"20", + X"E5",X"3A",X"3F",X"E0",X"A7",X"28",X"0C",X"2A",X"4B",X"E0",X"7E",X"23",X"B6",X"C8",X"CD",X"AA", + X"E6",X"18",X"F4",X"06",X"07",X"D5",X"E5",X"2A",X"45",X"E0",X"11",X"00",X"10",X"CD",X"62",X"E0", + X"E1",X"D1",X"30",X"02",X"06",X"01",X"C5",X"AF",X"32",X"5C",X"E0",X"32",X"54",X"E0",X"32",X"55", + X"E0",X"CD",X"AA",X"E6",X"3A",X"5B",X"E0",X"A7",X"28",X"1A",X"32",X"5C",X"E0",X"32",X"54",X"E0", + X"32",X"55",X"E0",X"2A",X"4B",X"E0",X"11",X"F8",X"FF",X"19",X"22",X"4B",X"E0",X"21",X"51",X"E0", + X"35",X"CD",X"AA",X"E6",X"C1",X"10",X"CF",X"AF",X"C9",X"CD",X"2D",X"E3",X"A7",X"C0",X"CD",X"FE", + X"E4",X"11",X"11",X"01",X"CD",X"85",X"F2",X"11",X"12",X"01",X"CD",X"85",X"F2",X"CD",X"22",X"E6", + X"A7",X"C0",X"21",X"F9",X"EC",X"3A",X"03",X"E0",X"FE",X"03",X"C4",X"4E",X"F2",X"2A",X"49",X"E0", + X"CD",X"6D",X"E0",X"3E",X"00",X"C8",X"2A",X"45",X"E0",X"11",X"00",X"08",X"CD",X"62",X"E0",X"D2", + X"DA",X"E9",X"21",X"0E",X"00",X"22",X"58",X"E0",X"CD",X"11",X"E6",X"C5",X"3E",X"C0",X"CD",X"3E", + X"E5",X"C1",X"CD",X"86",X"E9",X"23",X"13",X"0B",X"78",X"B1",X"20",X"F6",X"AF",X"32",X"54",X"E0", + X"3C",X"32",X"55",X"E0",X"32",X"5C",X"E0",X"21",X"05",X"E0",X"22",X"4B",X"E0",X"AF",X"32",X"51", + X"E0",X"CD",X"AA",X"E6",X"AF",X"C9",X"C5",X"1A",X"D5",X"5F",X"06",X"08",X"0E",X"01",X"7B",X"A1", + X"57",X"28",X"2A",X"C5",X"D5",X"1E",X"05",X"3E",X"00",X"CD",X"5E",X"E5",X"CD",X"8F",X"E5",X"AF", + X"D3",X"01",X"CD",X"C9",X"E9",X"7A",X"D3",X"01",X"CD",X"DD",X"E5",X"3E",X"40",X"CD",X"5E",X"E5", + X"CD",X"8F",X"E5",X"DB",X"01",X"AA",X"28",X"03",X"1D",X"20",X"DC",X"D1",X"C1",X"79",X"07",X"4F", + X"CD",X"CF",X"E9",X"05",X"20",X"C8",X"D1",X"C1",X"C9",X"D5",X"11",X"14",X"00",X"18",X"04",X"D5", + X"11",X"1E",X"00",X"1B",X"7B",X"B2",X"20",X"FB",X"D1",X"C9",X"21",X"05",X"E0",X"22",X"4B",X"E0", + X"CD",X"20",X"E5",X"3A",X"3F",X"E0",X"A7",X"CA",X"47",X"EA",X"3E",X"05",X"32",X"5A",X"E0",X"21", + X"94",X"03",X"22",X"58",X"E0",X"2A",X"4B",X"E0",X"7E",X"4F",X"23",X"B6",X"C8",X"46",X"2B",X"E5", + X"00",X"00",X"00",X"01",X"C0",X"00",X"04",X"00",X"C4",X"00",X"01",X"D0",X"C5",X"D0",X"09",X"90", + X"CF",X"50",X"02",X"80",X"D1",X"D0",X"01",X"A0",X"D3",X"70",X"01",X"F0",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01",X"00",X"00",X"00",X"01", + X"F4",X"12",X"F4",X"3F",X"F4",X"59",X"F4",X"76",X"F5",X"33",X"F5",X"E1",X"F8",X"07",X"F8",X"18", + X"F8",X"33",X"F8",X"48",X"F8",X"5D",X"F8",X"72",X"F8",X"87",X"F8",X"99",X"F8",X"AE",X"F8",X"D6", + X"EA",X"80",X"EA",X"F5",X"EB",X"6A",X"EC",X"01",X"EC",X"7B",X"ED",X"75",X"EE",X"31",X"F2",X"15", + X"66",X"B8",X"40",X"77",X"41",X"00",X"42",X"8E",X"43",X"00",X"45",X"00",X"6C",X"14",X"6D",X"14", + X"6E",X"14",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"EE",X"20",X"40",X"6A",X"42",X"7E",X"68", + X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"D4",X"20",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"D4", + X"20",X"40",X"4F",X"42",X"5E",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"9F",X"40",X"40",X"59", + X"42",X"6A",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"B3",X"40",X"40",X"5E",X"42",X"77",X"68", + X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"BD",X"40",X"40",X"6A",X"42",X"7E",X"68",X"0A",X"69",X"0A", + X"6A",X"0A",X"04",X"D4",X"20",X"40",X"5E",X"42",X"77",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04", + X"BD",X"60",X"67",X"07",X"FF",X"66",X"BC",X"40",X"7A",X"41",X"01",X"43",X"00",X"6C",X"14",X"6D", + X"14",X"6E",X"14",X"68",X"0A",X"69",X"0A",X"02",X"BD",X"24",X"40",X"3E",X"68",X"0A",X"69",X"0A", + X"02",X"9F",X"24",X"40",X"1C",X"68",X"0A",X"69",X"0A",X"02",X"6A",X"24",X"40",X"3E",X"68",X"0A", + X"69",X"0A",X"02",X"77",X"24",X"42",X"7E",X"49",X"0A",X"68",X"0A",X"00",X"7E",X"24",X"68",X"0A", + X"00",X"3E",X"24",X"42",X"77",X"49",X"0A",X"68",X"0A",X"00",X"1C",X"24",X"68",X"0A",X"00",X"3E", + X"24",X"49",X"00",X"42",X"5E",X"68",X"0A",X"69",X"0A",X"00",X"7A",X"24",X"42",X"9F",X"68",X"0A", + X"69",X"0A",X"00",X"DD",X"24",X"42",X"8E",X"68",X"0A",X"69",X"0A",X"00",X"A9",X"24",X"42",X"77", + X"68",X"0A",X"69",X"0A",X"00",X"DD",X"64",X"67",X"03",X"FF",X"66",X"BC",X"6C",X"14",X"6D",X"14", + X"6E",X"14",X"FE",X"EB",X"8D",X"FE",X"EB",X"8D",X"FE",X"EB",X"C6",X"FE",X"EB",X"C6",X"FE",X"EB", + X"8D",X"FE",X"EB",X"8D",X"FE",X"EB",X"C6",X"FE",X"EB",X"C6",X"67",X"03",X"FF",X"41",X"00",X"43", + X"00",X"42",X"EE",X"68",X"0A",X"69",X"0A",X"00",X"77",X"22",X"68",X"0A",X"69",X"0A",X"00",X"5E", + X"22",X"68",X"0A",X"69",X"0A",X"00",X"59",X"22",X"42",X"3E",X"43",X"01",X"68",X"0A",X"69",X"0A", + X"00",X"4F",X"22",X"42",X"1C",X"68",X"0A",X"69",X"0A",X"00",X"59",X"22",X"42",X"3E",X"68",X"0A", + X"69",X"0A",X"00",X"4F",X"22",X"FD",X"43",X"00",X"42",X"D4",X"68",X"0A",X"69",X"0A",X"00",X"6A", + X"22",X"68",X"0A",X"69",X"0A",X"00",X"59",X"22",X"68",X"0A",X"69",X"0A",X"00",X"4F",X"22",X"43", + X"01",X"42",X"1C",X"68",X"0A",X"69",X"0A",X"00",X"47",X"22",X"43",X"00",X"42",X"FD",X"68",X"0A", + X"69",X"0A",X"00",X"4F",X"22",X"43",X"01",X"42",X"1C",X"68",X"0A",X"69",X"0A",X"00",X"47",X"22", + X"FD",X"67",X"BF",X"66",X"BC",X"41",X"00",X"40",X"1C",X"43",X"00",X"44",X"00",X"45",X"00",X"6C", + X"14",X"6D",X"14",X"6E",X"14",X"68",X"0A",X"69",X"0A",X"02",X"8E",X"18",X"40",X"FD",X"41",X"00", + X"68",X"0A",X"69",X"0A",X"02",X"7E",X"18",X"40",X"EE",X"68",X"0A",X"69",X"0A",X"02",X"77",X"18", + X"40",X"D4",X"68",X"0A",X"69",X"0A",X"02",X"6A",X"18",X"40",X"BD",X"68",X"0A",X"69",X"0A",X"02", + X"5E",X"18",X"40",X"FD",X"68",X"0A",X"69",X"0A",X"02",X"7E",X"18",X"40",X"EE",X"68",X"0A",X"69", + X"0A",X"02",X"77",X"18",X"40",X"D4",X"68",X"0A",X"69",X"0A",X"02",X"6A",X"18",X"40",X"BD",X"68", + X"0A",X"69",X"0A",X"02",X"5E",X"18",X"40",X"A8",X"68",X"0A",X"69",X"0A",X"02",X"54",X"18",X"40", + X"9F",X"68",X"0A",X"69",X"0A",X"02",X"4F",X"18",X"67",X"03",X"FF",X"66",X"B8",X"40",X"47",X"41", + X"00",X"42",X"B3",X"43",X"00",X"45",X"01",X"6C",X"14",X"6D",X"14",X"6E",X"14",X"68",X"0A",X"69", + X"0A",X"6A",X"0A",X"04",X"65",X"20",X"40",X"59",X"42",X"8F",X"68",X"0A",X"69",X"0A",X"6A",X"0A", + X"04",X"65",X"20",X"40",X"4F",X"42",X"77",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"65",X"20", + X"40",X"59",X"42",X"6A",X"45",X"00",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"00",X"20",X"40", + X"00",X"42",X"59",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"00",X"20",X"40",X"59",X"42",X"6A", + X"45",X"01",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"1C",X"20",X"40",X"4F",X"42",X"77",X"45", + X"00",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"00",X"20",X"40",X"59",X"42",X"6A",X"68",X"0A", + X"69",X"0A",X"6A",X"0A",X"04",X"EE",X"20",X"40",X"47",X"42",X"B3",X"45",X"01",X"68",X"0A",X"69", + X"0A",X"6A",X"0A",X"04",X"65",X"20",X"40",X"59",X"42",X"8E",X"68",X"0A",X"69",X"0A",X"6A",X"0A", + X"04",X"65",X"20",X"40",X"4F",X"42",X"77",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"65",X"20", + X"40",X"59",X"42",X"6A",X"45",X"00",X"68",X"0A",X"69",X"0A",X"04",X"00",X"20",X"40",X"00",X"42", + X"59",X"68",X"0A",X"69",X"0A",X"04",X"00",X"20",X"40",X"59",X"42",X"6A",X"45",X"01",X"68",X"0A", + X"69",X"0A",X"6A",X"0A",X"04",X"1C",X"20",X"40",X"4F",X"42",X"77",X"45",X"00",X"68",X"0A",X"69", + X"0A",X"6A",X"0A",X"04",X"00",X"20",X"40",X"59",X"42",X"6A",X"68",X"0A",X"69",X"0A",X"6A",X"0A", + X"04",X"EE",X"20",X"40",X"47",X"42",X"59",X"45",X"01",X"68",X"0A",X"69",X"0A",X"6A",X"0A",X"04", + X"65",X"60",X"67",X"07",X"FF",X"66",X"BC",X"40",X"BD",X"41",X"00",X"43",X"00",X"48",X"0A",X"69", + X"0A",X"02",X"77",X"16",X"02",X"00",X"16",X"40",X"B3",X"48",X"0A",X"69",X"0A",X"02",X"8E",X"16", + X"02",X"00",X"16",X"48",X"00",X"49",X"0A",X"42",X"9F",X"68",X"0A",X"00",X"9F",X"2C",X"68",X"0A", + X"00",X"8E",X"2C",X"49",X"00",X"40",X"BD",X"48",X"0A",X"69",X"0A",X"02",X"77",X"16",X"02",X"00", + X"16",X"40",X"9F",X"48",X"0A",X"69",X"0A",X"02",X"8E",X"16",X"02",X"00",X"16",X"48",X"00",X"42", + X"9F",X"49",X"0A",X"68",X"0A",X"00",X"9F",X"2C",X"68",X"0A",X"00",X"8E",X"2C",X"49",X"00",X"40", + X"BD",X"68",X"0A",X"69",X"0A",X"02",X"8E",X"2C",X"40",X"9F",X"68",X"0A",X"69",X"0A",X"02",X"7E", + X"2C",X"40",X"B3",X"68",X"0A",X"69",X"0A",X"02",X"77",X"2C",X"40",X"D4",X"68",X"0A",X"79",X"0D", + X"02",X"6A",X"2C",X"40",X"EE",X"68",X"0A",X"69",X"0A",X"02",X"77",X"58",X"67",X"03",X"FF",X"66", + X"B7",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"48",X"10",X"06",X"01",X"28",X"48",X"00",X"06",X"00", + X"28",X"48",X"10",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"06",X"01",X"28",X"48",X"00",X"06",X"00", + X"28",X"48",X"10",X"4B",X"03",X"4C",X"02",X"4D",X"09",X"06",X"01",X"28",X"48",X"00",X"06",X"01", + X"28",X"4B",X"00",X"4C",X"00",X"4D",X"00",X"66",X"B7",X"67",X"08",X"66",X"B8",X"6C",X"28",X"6D", + X"10",X"6E",X"14",X"FE",X"F0",X"19",X"FE",X"F1",X"B3",X"FE",X"F0",X"7D",X"FE",X"F0",X"E5",X"FE", + X"F0",X"19",X"FE",X"F1",X"B3",X"FE",X"F0",X"7D",X"FE",X"F1",X"4C",X"FE",X"F0",X"19",X"FE",X"F1", + X"B3",X"FE",X"F0",X"7D",X"FE",X"F0",X"E5",X"FE",X"F0",X"19",X"FE",X"F1",X"B3",X"FE",X"F0",X"7D", + X"FE",X"F1",X"4C",X"40",X"96",X"48",X"0C",X"43",X"01",X"44",X"3C",X"45",X"00",X"6C",X"28",X"6D", + X"10",X"6E",X"14",X"69",X"0B",X"6A",X"0A",X"02",X"2C",X"2D",X"44",X"43",X"69",X"0B",X"6A",X"0D", + X"02",X"2C",X"2D",X"40",X"86",X"44",X"4B",X"48",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"2C",X"2D", + X"44",X"43",X"69",X"0B",X"6A",X"0A",X"02",X"2C",X"2D",X"48",X"00",X"40",X"77",X"44",X"3C",X"68", + X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"0C",X"2D",X"40",X"86",X"44",X"43",X"68",X"0C",X"69",X"0B", + X"6A",X"0A",X"02",X"2C",X"2D",X"40",X"96",X"44",X"4B",X"68",X"0C",X"69",X"0B",X"6A",X"0A",X"02", + X"3E",X"2D",X"40",X"77",X"44",X"3C",X"68",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"2C",X"2D",X"40", + X"86",X"44",X"43",X"48",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"0C",X"2D",X"44",X"4B",X"69",X"0B", + X"6A",X"0A",X"02",X"0C",X"2D",X"48",X"00",X"40",X"B3",X"44",X"4F",X"6A",X"0A",X"68",X"0C",X"69", + X"0B",X"02",X"65",X"2D",X"40",X"86",X"48",X"0C",X"44",X"4B",X"6A",X"0A",X"69",X"0B",X"02",X"0C", + X"2D",X"44",X"43",X"69",X"0B",X"6A",X"0A",X"02",X"65",X"2D",X"44",X"4B",X"6A",X"0A",X"69",X"0B", + X"02",X"3E",X"2D",X"44",X"4F",X"6A",X"0A",X"69",X"0B",X"02",X"2C",X"2D",X"48",X"00",X"43",X"00", + X"44",X"43",X"6A",X"0A",X"69",X"0B",X"02",X"EE",X"2D",X"40",X"86",X"43",X"01",X"44",X"38",X"48", + X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"0C",X"2D",X"44",X"3C",X"6A",X"0A",X"69",X"0B",X"02",X"0C", + X"2D",X"40",X"77",X"44",X"43",X"48",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"0C",X"2D",X"44",X"3C", + X"6A",X"0A",X"69",X"0B",X"02",X"0C",X"2D",X"48",X"00",X"40",X"71",X"43",X"00",X"44",X"38",X"6A", + X"0A",X"68",X"0C",X"69",X"0B",X"02",X"EE",X"2D",X"40",X"77",X"43",X"01",X"44",X"3C",X"6A",X"0A", + X"68",X"0C",X"69",X"0B",X"02",X"0C",X"2D",X"40",X"86",X"44",X"43",X"6A",X"0A",X"68",X"0C",X"69", + X"0B",X"02",X"2C",X"2D",X"40",X"96",X"44",X"4B",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"0C", + X"2D",X"40",X"77",X"43",X"00",X"44",X"3C",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"EE",X"2D", + X"40",X"71",X"44",X"38",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"EE",X"2D",X"40",X"77",X"44", + X"3C",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"EE",X"2D",X"40",X"86",X"44",X"43",X"6A",X"0A", + X"68",X"0C",X"69",X"0B",X"02",X"EE",X"2D",X"40",X"77",X"44",X"3C",X"48",X"0C",X"4A",X"0A",X"69", + X"0B",X"02",X"EE",X"16",X"69",X"0B",X"02",X"E1",X"16",X"48",X"00",X"4A",X"00",X"40",X"86",X"44", + X"38",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"EE",X"2D",X"40",X"96",X"43",X"01",X"44",X"3C", + X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"0C",X"2D",X"40",X"9F",X"44",X"43",X"6A",X"0A",X"68", + X"0C",X"69",X"0B",X"02",X"2C",X"2D",X"FE",X"EE",X"3D",X"40",X"B3",X"48",X"0C",X"43",X"01",X"45", + X"00",X"69",X"0B",X"02",X"65",X"16",X"43",X"00",X"02",X"00",X"16",X"43",X"01",X"44",X"59",X"6A", + X"0A",X"69",X"0B",X"02",X"65",X"2D",X"40",X"9F",X"44",X"64",X"48",X"0C",X"69",X"0B",X"6A",X"0A", + X"02",X"2C",X"2D",X"44",X"59",X"69",X"0B",X"6A",X"0A",X"02",X"65",X"2D",X"48",X"00",X"40",X"96", + X"68",X"0C",X"69",X"0B",X"02",X"2C",X"2D",X"40",X"9F",X"44",X"4B",X"6A",X"0A",X"68",X"0C",X"69", + X"0B",X"02",X"3E",X"2D",X"40",X"B3",X"44",X"4F",X"48",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"65", + X"2D",X"44",X"4B",X"6A",X"0A",X"69",X"0B",X"02",X"3E",X"2D",X"48",X"00",X"FD",X"40",X"B3",X"48", + X"0C",X"69",X"0B",X"02",X"65",X"16",X"43",X"00",X"02",X"00",X"16",X"43",X"01",X"44",X"59",X"6A", + X"0A",X"69",X"0B",X"02",X"65",X"2D",X"40",X"9F",X"44",X"64",X"48",X"0C",X"69",X"0B",X"6A",X"0A", + X"02",X"2C",X"2D",X"44",X"59",X"69",X"0B",X"6A",X"0A",X"02",X"65",X"2D",X"48",X"00",X"40",X"77", + X"44",X"59",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"0C",X"2D",X"40",X"86",X"43",X"00",X"44", + X"4F",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"EE",X"2D",X"40",X"96",X"43",X"01",X"44",X"4B", + X"48",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"0C",X"2D",X"44",X"3C",X"6A",X"0A",X"69",X"0B",X"02", + X"2C",X"2D",X"48",X"00",X"FD",X"40",X"9F",X"48",X"0C",X"43",X"01",X"44",X"43",X"4A",X"0A",X"69", + X"0B",X"02",X"90",X"2D",X"69",X"0B",X"02",X"90",X"2D",X"48",X"00",X"4A",X"00",X"40",X"96",X"43", + X"01",X"44",X"4B",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"DD",X"2D",X"40",X"C8",X"43",X"01", + X"44",X"4F",X"48",X"0C",X"4A",X"0A",X"69",X"0B",X"02",X"90",X"2D",X"69",X"0B",X"02",X"90",X"2D", + X"48",X"00",X"4A",X"00",X"40",X"B3",X"44",X"4B",X"68",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"90", + X"2D",X"40",X"9F",X"43",X"01",X"44",X"43",X"48",X"0C",X"4A",X"0A",X"69",X"0B",X"02",X"DD",X"2D", + X"43",X"01",X"69",X"0B",X"02",X"90",X"2D",X"48",X"00",X"4A",X"00",X"FD",X"40",X"9F",X"48",X"0C", + X"43",X"01",X"44",X"43",X"4A",X"0A",X"69",X"0B",X"02",X"90",X"2D",X"69",X"0B",X"02",X"90",X"2D", + X"48",X"00",X"4A",X"00",X"40",X"96",X"43",X"01",X"44",X"4B",X"68",X"0C",X"69",X"0B",X"6A",X"0A", + X"02",X"DD",X"2D",X"40",X"86",X"43",X"01",X"44",X"4F",X"4A",X"0A",X"48",X"0C",X"69",X"0B",X"02", + X"90",X"2D",X"69",X"0B",X"02",X"90",X"2D",X"48",X"00",X"4A",X"00",X"40",X"96",X"44",X"4B",X"6A", + X"0A",X"68",X"0C",X"69",X"0B",X"02",X"90",X"2D",X"40",X"9F",X"44",X"43",X"48",X"0C",X"4A",X"0A", + X"43",X"01",X"69",X"0B",X"02",X"DD",X"2D",X"43",X"01",X"69",X"0B",X"02",X"90",X"2D",X"48",X"00", + X"4A",X"00",X"FD",X"40",X"B3",X"48",X"0C",X"43",X"01",X"69",X"0B",X"02",X"65",X"16",X"43",X"00", + X"02",X"00",X"16",X"43",X"01",X"44",X"59",X"6A",X"0A",X"69",X"0B",X"02",X"65",X"2D",X"40",X"9F", + X"44",X"64",X"48",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"2C",X"2D",X"44",X"59",X"6A",X"0A",X"69", + X"0B",X"02",X"65",X"2D",X"48",X"00",X"40",X"86",X"68",X"0C",X"69",X"0B",X"02",X"0C",X"2D",X"40", + X"96",X"44",X"4B",X"6A",X"0A",X"68",X"0C",X"69",X"0B",X"02",X"2C",X"2D",X"40",X"9F",X"44",X"4F", + X"48",X"0C",X"69",X"0B",X"6A",X"0A",X"02",X"3E",X"2D",X"44",X"4B",X"69",X"0B",X"6A",X"0A",X"02", + X"2C",X"2D",X"48",X"00",X"FD",X"67",X"BF",X"66",X"B8",X"40",X"77",X"41",X"00",X"42",X"00",X"43", + X"00",X"45",X"01",X"6C",X"14",X"6D",X"14",X"6E",X"14",X"FE",X"F2",X"AB",X"FE",X"F3",X"C5",X"FE", + X"F2",X"E8",X"FE",X"F3",X"2F",X"FE",X"F3",X"7E",X"FE",X"F3",X"C5",X"40",X"47",X"42",X"D4",X"68", + X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"65",X"30",X"40",X"4F",X"42",X"BD",X"68",X"0A",X"69",X"0A", + X"6A",X"0A",X"04",X"65",X"30",X"40",X"47",X"48",X"0A",X"42",X"B3",X"49",X"0A",X"6A",X"0A",X"04", + X"65",X"30",X"6A",X"0A",X"04",X"65",X"30",X"48",X"00",X"49",X"00",X"40",X"4F",X"42",X"BD",X"68", + X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"7A",X"30",X"40",X"59",X"42",X"B3",X"68",X"0A",X"69",X"0A", + X"6A",X"0A",X"04",X"7A",X"30",X"40",X"6A",X"42",X"8E",X"49",X"0A",X"68",X"0A",X"6A",X"0A",X"04", + X"A9",X"30",X"40",X"5E",X"68",X"0A",X"69",X"0A",X"04",X"A9",X"30",X"40",X"77",X"42",X"9F",X"68", + X"0A",X"69",X"0A",X"6A",X"0A",X"04",X"DD",X"C0",X"67",X"07",X"FF",X"68",X"0A",X"69",X"0A",X"6A", + X"0A",X"04",X"DD",X"30",X"6A",X"0A",X"04",X"DD",X"30",X"40",X"5E",X"68",X"0A",X"6A",X"0A",X"04", + X"DD",X"30",X"6A",X"0A",X"04",X"DD",X"30",X"40",X"4F",X"68",X"0A",X"6A",X"0A",X"04",X"DD",X"30", + X"6A",X"0A",X"04",X"DD",X"30",X"40",X"59",X"68",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"40",X"6A", + X"68",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"FD",X"40",X"8E",X"42",X"9F",X"48",X"0A",X"45",X"02", + X"49",X"0A",X"6A",X"0A",X"04",X"38",X"30",X"6A",X"0A",X"04",X"38",X"30",X"40",X"77",X"48",X"0A", + X"6A",X"0A",X"04",X"38",X"30",X"6A",X"0A",X"04",X"38",X"30",X"49",X"00",X"40",X"5E",X"48",X"0A", + X"6A",X"0A",X"04",X"38",X"30",X"6A",X"0A",X"04",X"38",X"30",X"48",X"00",X"40",X"6A",X"68",X"0A", + X"6A",X"0A",X"04",X"38",X"30",X"40",X"77",X"68",X"0A",X"6A",X"0A",X"04",X"38",X"30",X"FD",X"40", + X"6A",X"48",X"0A",X"6A",X"0A",X"04",X"38",X"30",X"42",X"9F",X"69",X"0A",X"6A",X"0A",X"04",X"38", + X"30",X"42",X"B3",X"69",X"0A",X"6A",X"0A",X"04",X"38",X"30",X"48",X"00",X"40",X"8E",X"42",X"BD", + X"48",X"0A",X"6A",X"0A",X"69",X"0A",X"04",X"38",X"30",X"42",X"B3",X"49",X"0A",X"6A",X"0A",X"04", + X"38",X"30",X"6A",X"0A",X"04",X"38",X"30",X"49",X"00",X"42",X"BD",X"69",X"0A",X"6A",X"0A",X"04", + X"38",X"30",X"48",X"00",X"42",X"D4",X"69",X"0A",X"6A",X"0A",X"04",X"38",X"30",X"FD",X"40",X"77", + X"48",X"0A",X"42",X"BD",X"45",X"01",X"49",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"6A",X"0A",X"04", + X"DD",X"30",X"40",X"5E",X"48",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"6A",X"0A",X"04",X"DD",X"30", + X"49",X"00",X"40",X"4F",X"48",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"6A",X"0A",X"04",X"DD",X"30", + X"48",X"00",X"40",X"59",X"68",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"40",X"6A",X"68",X"0A",X"6A", + X"0A",X"04",X"DD",X"30",X"FD",X"48",X"0A",X"40",X"5E",X"6A",X"0A",X"04",X"DD",X"30",X"42",X"EE", + X"69",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"42",X"BD",X"69",X"0A",X"6A",X"0A",X"04",X"DD",X"30", + X"40",X"4F",X"48",X"0A",X"42",X"B3",X"69",X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"42",X"9F",X"49", + X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"6A",X"0A",X"04",X"DD",X"30",X"49",X"00",X"42",X"B3",X"69", + X"0A",X"6A",X"0A",X"04",X"DD",X"30",X"48",X"00",X"42",X"D4",X"69",X"0A",X"6A",X"0A",X"04",X"DD", + X"30",X"FD",X"77",X"BF",X"76",X"BE",X"51",X"00",X"53",X"D4",X"58",X"0A",X"59",X"0A",X"10",X"B3", + X"1A",X"52",X"B3",X"10",X"8E",X"1A",X"52",X"77",X"10",X"5E",X"40",X"52",X"D4",X"10",X"B3",X"1A", + X"52",X"B3",X"10",X"8E",X"1A",X"52",X"77",X"10",X"5E",X"60",X"58",X"00",X"77",X"01",X"FF",X"77", + X"BF",X"76",X"B8",X"50",X"70",X"52",X"6D",X"58",X"10",X"59",X"10",X"5A",X"10",X"5B",X"30",X"5C", + X"04",X"5D",X"09",X"14",X"78",X"80",X"77",X"07",X"FF",X"76",X"BD",X"53",X"00",X"52",X"43",X"59", + X"10",X"5B",X"04",X"5C",X"10",X"1D",X"09",X"20",X"52",X"53",X"59",X"10",X"1D",X"09",X"E0",X"52", + X"00",X"59",X"00",X"77",X"02",X"FF",X"66",X"B8",X"4B",X"00",X"4C",X"00",X"4D",X"00",X"40",X"70", + X"41",X"00",X"42",X"75",X"43",X"00",X"45",X"00",X"48",X"0A",X"49",X"0A",X"4A",X"0A",X"6C",X"00", + X"6D",X"00",X"6E",X"00",X"04",X"77",X"10",X"40",X"74",X"42",X"78",X"04",X"7A",X"10",X"40",X"78", + X"42",X"7C",X"04",X"79",X"10",X"40",X"7B",X"42",X"77",X"04",X"7F",X"10",X"40",X"80",X"42",X"86", + X"04",X"87",X"10",X"40",X"84",X"42",X"88",X"04",X"8A",X"10",X"40",X"89",X"42",X"8E",X"04",X"8F", + X"10",X"40",X"90",X"42",X"91",X"04",X"92",X"10",X"40",X"98",X"42",X"99",X"04",X"9A",X"10",X"40", + X"A0",X"42",X"A1",X"04",X"A2",X"10",X"40",X"A8",X"42",X"A9",X"04",X"AA",X"10",X"40",X"B0",X"42", + X"B1",X"04",X"B2",X"10",X"40",X"B8",X"42",X"B9",X"04",X"BA",X"10",X"40",X"C0",X"42",X"C1",X"04", + X"C2",X"10",X"40",X"C8",X"42",X"C9",X"04",X"CA",X"10",X"40",X"D0",X"42",X"D1",X"04",X"D2",X"10", + X"40",X"D8",X"42",X"D9",X"04",X"DA",X"10",X"40",X"E0",X"42",X"E1",X"04",X"E2",X"10",X"40",X"E8", + X"42",X"E9",X"04",X"EA",X"10",X"40",X"F0",X"42",X"F1",X"04",X"F2",X"10",X"40",X"F8",X"42",X"F9", + X"04",X"FA",X"10",X"40",X"FF",X"42",X"FF",X"04",X"FF",X"30",X"48",X"00",X"49",X"00",X"4A",X"00", + X"67",X"07",X"FF",X"66",X"B8",X"4B",X"00",X"4C",X"00",X"4D",X"00",X"40",X"FF",X"41",X"00",X"42", + X"FF",X"43",X"00",X"45",X"00",X"48",X"0A",X"49",X"0A",X"4A",X"0A",X"6C",X"00",X"6D",X"00",X"6E", + X"00",X"04",X"FF",X"10",X"40",X"F8",X"42",X"F9",X"04",X"FA",X"10",X"40",X"F0",X"42",X"F1",X"04", + X"F2",X"10",X"40",X"E8",X"42",X"E9",X"04",X"EA",X"10",X"40",X"E0",X"42",X"E1",X"04",X"E2",X"10", + X"40",X"D8",X"42",X"D9",X"04",X"DA",X"10",X"40",X"D0",X"42",X"D1",X"04",X"D2",X"10",X"40",X"C8", + X"42",X"C9",X"04",X"CA",X"10",X"40",X"C0",X"42",X"C1",X"04",X"C2",X"10",X"40",X"B8",X"42",X"B9", + X"04",X"BA",X"10",X"40",X"B0",X"42",X"B1",X"04",X"B2",X"10",X"40",X"A8",X"42",X"A9",X"04",X"AA", + X"10",X"40",X"A0",X"42",X"A1",X"04",X"A2",X"10",X"40",X"9E",X"42",X"9A",X"04",X"98",X"10",X"40", + X"96",X"42",X"93",X"04",X"94",X"10",X"40",X"8E",X"42",X"8A",X"04",X"88",X"10",X"40",X"87",X"42", + X"85",X"04",X"83",X"10",X"40",X"7E",X"42",X"77",X"04",X"75",X"10",X"40",X"75",X"42",X"7A",X"04", + X"70",X"30",X"40",X"00",X"42",X"00",X"44",X"00",X"48",X"00",X"49",X"00",X"4A",X"00",X"67",X"07", + X"FF",X"76",X"BD",X"50",X"00",X"51",X"00",X"53",X"00",X"59",X"0C",X"58",X"0C",X"12",X"11",X"05", + X"12",X"12",X"05",X"12",X"13",X"05",X"12",X"14",X"05",X"12",X"15",X"05",X"12",X"16",X"05",X"12", + X"17",X"05",X"12",X"18",X"05",X"12",X"19",X"05",X"12",X"1A",X"05",X"50",X"16",X"12",X"1B",X"05", + X"50",X"17",X"12",X"1C",X"05",X"50",X"18",X"12",X"1D",X"05",X"50",X"19",X"12",X"1E",X"05",X"50", + X"1A",X"12",X"1F",X"05",X"50",X"1B",X"12",X"20",X"05",X"50",X"1C",X"12",X"21",X"05",X"50",X"1D", + X"12",X"22",X"05",X"50",X"1E",X"12",X"23",X"05",X"50",X"1F",X"12",X"24",X"05",X"12",X"25",X"05", + X"12",X"26",X"05",X"12",X"27",X"05",X"12",X"28",X"05",X"12",X"29",X"05",X"12",X"2A",X"05",X"50", + X"26",X"12",X"2B",X"05",X"50",X"27",X"12",X"2C",X"05",X"50",X"28",X"12",X"2D",X"05",X"50",X"29", + X"12",X"2E",X"05",X"50",X"2A",X"12",X"2F",X"05",X"50",X"2B",X"12",X"30",X"05",X"50",X"2C",X"12", + X"31",X"05",X"50",X"2D",X"12",X"32",X"05",X"50",X"2E",X"12",X"33",X"05",X"50",X"2F",X"12",X"34", + X"05",X"12",X"35",X"05",X"12",X"36",X"05",X"12",X"37",X"05",X"12",X"38",X"05",X"12",X"39",X"05", + X"12",X"3A",X"05",X"50",X"36",X"12",X"3B",X"05",X"50",X"37",X"12",X"3C",X"05",X"50",X"38",X"12", + X"3D",X"05",X"50",X"39",X"12",X"3E",X"05",X"50",X"3A",X"12",X"3F",X"05",X"50",X"3B",X"12",X"40", + X"05",X"50",X"3C",X"12",X"41",X"05",X"50",X"3D",X"12",X"42",X"05",X"50",X"3E",X"12",X"43",X"05", + X"50",X"3F",X"12",X"44",X"05",X"12",X"45",X"05",X"12",X"46",X"05",X"12",X"47",X"05",X"12",X"48", + X"05",X"12",X"49",X"05",X"12",X"4A",X"05",X"50",X"46",X"12",X"4B",X"05",X"50",X"47",X"12",X"4C", + X"05",X"50",X"48",X"12",X"4D",X"05",X"50",X"49",X"12",X"4E",X"05",X"50",X"4A",X"12",X"4F",X"05", + X"50",X"4B",X"12",X"50",X"05",X"50",X"04",X"12",X"51",X"05",X"50",X"4D",X"12",X"52",X"05",X"50", + X"4E",X"12",X"53",X"05",X"50",X"4F",X"12",X"54",X"05",X"12",X"55",X"05",X"12",X"56",X"05",X"12", + X"57",X"05",X"12",X"58",X"05",X"12",X"59",X"05",X"12",X"5A",X"05",X"50",X"56",X"12",X"5B",X"05", + X"50",X"57",X"12",X"5C",X"05",X"50",X"58",X"12",X"5D",X"05",X"50",X"59",X"12",X"5E",X"05",X"50", + X"5A",X"12",X"5F",X"05",X"50",X"5B",X"12",X"60",X"05",X"50",X"5C",X"12",X"61",X"05",X"50",X"5D", + X"12",X"62",X"05",X"50",X"5E",X"12",X"63",X"05",X"50",X"5F",X"12",X"64",X"05",X"12",X"65",X"05", + X"12",X"66",X"05",X"12",X"67",X"05",X"12",X"68",X"05",X"12",X"69",X"05",X"12",X"6A",X"05",X"50", + X"66",X"12",X"6B",X"05",X"50",X"67",X"12",X"6C",X"05",X"50",X"68",X"12",X"6D",X"05",X"50",X"69", + X"12",X"6E",X"05",X"50",X"6A",X"12",X"6F",X"05",X"50",X"6B",X"12",X"70",X"05",X"50",X"6C",X"12", + X"71",X"05",X"50",X"6D",X"12",X"72",X"05",X"50",X"6E",X"12",X"73",X"05",X"50",X"6F",X"12",X"74", + X"05",X"12",X"75",X"05",X"12",X"76",X"05",X"12",X"77",X"05",X"12",X"78",X"05",X"12",X"79",X"05", + X"12",X"7A",X"05",X"50",X"76",X"12",X"7B",X"05",X"50",X"77",X"12",X"7C",X"05",X"50",X"78",X"12", + X"7D",X"05",X"50",X"79",X"12",X"7E",X"05",X"50",X"7A",X"12",X"7F",X"05",X"50",X"7B",X"12",X"80", + X"05",X"50",X"7C",X"12",X"81",X"05",X"50",X"7D",X"12",X"82",X"05",X"50",X"7E",X"12",X"83",X"05", + X"50",X"7F",X"12",X"84",X"05",X"12",X"85",X"05",X"12",X"86",X"05",X"12",X"87",X"05",X"12",X"88", + X"05",X"12",X"89",X"05",X"12",X"8A",X"05",X"50",X"86",X"12",X"8B",X"05",X"50",X"87",X"12",X"8C", + X"05",X"50",X"88",X"12",X"8D",X"05",X"50",X"89",X"12",X"8E",X"05",X"50",X"8A",X"12",X"8F",X"80", + X"59",X"00",X"58",X"00",X"77",X"03",X"FF",X"76",X"BF",X"50",X"00",X"51",X"00",X"52",X"00",X"53", + X"00",X"58",X"00",X"59",X"00",X"77",X"BF",X"FF",X"76",X"B7",X"5B",X"03",X"5C",X"02",X"5D",X"09", + X"58",X"10",X"16",X"01",X"28",X"58",X"00",X"16",X"00",X"28",X"77",X"08",X"5B",X"00",X"5C",X"00", + X"5D",X"00",X"FF",X"76",X"7F",X"1E",X"01",X"04",X"1E",X"00",X"50",X"1E",X"01",X"04",X"1E",X"00", + X"50",X"1E",X"01",X"04",X"1E",X"00",X"50",X"FF",X"76",X"7F",X"1E",X"02",X"04",X"1E",X"00",X"50", + X"1E",X"02",X"04",X"1E",X"00",X"50",X"1E",X"02",X"04",X"1E",X"00",X"50",X"FF",X"76",X"7F",X"1E", + X"04",X"04",X"1E",X"00",X"50",X"1E",X"04",X"04",X"1E",X"00",X"50",X"1E",X"04",X"04",X"1E",X"00", + X"50",X"FF",X"76",X"7F",X"1E",X"08",X"04",X"1E",X"00",X"50",X"1E",X"08",X"04",X"1E",X"00",X"50", + X"1E",X"08",X"04",X"1E",X"00",X"50",X"FF",X"76",X"BB",X"55",X"00",X"5A",X"0C",X"FE",X"F8",X"BD", + X"14",X"00",X"E0",X"14",X"00",X"E0",X"FE",X"F8",X"87",X"76",X"BB",X"55",X"00",X"5A",X"0C",X"FE", + X"F8",X"BD",X"FE",X"F8",X"BD",X"14",X"00",X"70",X"14",X"00",X"E0",X"FE",X"F8",X"99",X"76",X"BB", + X"55",X"00",X"5A",X"0C",X"FE",X"F8",X"BD",X"14",X"00",X"A0",X"FE",X"F8",X"AE",X"14",X"4F",X"10", + X"14",X"47",X"10",X"14",X"4F",X"10",X"14",X"47",X"10",X"14",X"4F",X"10",X"14",X"47",X"10",X"14", + X"4F",X"10",X"14",X"00",X"10",X"FD",X"66",X"B8",X"41",X"00",X"43",X"00",X"45",X"00",X"40",X"6A", + X"42",X"7E",X"6C",X"14",X"6D",X"14",X"6E",X"14",X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"D4", + X"1F",X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"D4",X"1F",X"68",X"0C",X"69",X"0C",X"6A",X"0C", + X"04",X"D4",X"1F",X"40",X"5E",X"42",X"77",X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"BD",X"3E", + X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"BD",X"3E",X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04", + X"BD",X"1F",X"40",X"6A",X"42",X"7E",X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"D4",X"1F",X"68", + X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"D4",X"1F",X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"D4", + X"1F",X"40",X"5E",X"42",X"77",X"68",X"0C",X"69",X"0C",X"6A",X"0C",X"04",X"BD",X"63",X"67",X"07", + X"FF",X"20",X"20",X"20",X"7C",X"20",X"4A",X"20",X"7C",X"20",X"20",X"20",X"7C",X"20",X"4C",X"20", + X"7C",X"20",X"20",X"20",X"2B",X"2D",X"2D",X"2D",X"2B",X"2D",X"2D",X"2D",X"2B",X"2D",X"2D",X"2D", + X"2B",X"20",X"20",X"20",X"7C",X"20",X"4D",X"20",X"7C",X"20",X"2C",X"20",X"7C",X"20",X"2E",X"20", + X"7C",X"20",X"20",X"20",X"2B",X"2D",X"2D",X"2D",X"2B",X"2D",X"2D",X"2D",X"2B",X"2D",X"2D",X"2D", + X"2B",X"20",X"20",X"20",X"50",X"3D",X"61",X"64",X"64",X"72",X"65",X"73",X"73",X"2B",X"31",X"30", + X"30",X"30",X"48",X"20",X"3B",X"3D",X"61",X"64",X"64",X"72",X"65",X"73",X"73",X"2B",X"30",X"31", + X"30",X"30",X"48",X"20",X"2F",X"3D",X"61",X"64",X"64",X"72",X"65",X"73",X"73",X"2D",X"30",X"31", + X"30",X"30",X"48",X"20",X"73",X"70",X"61",X"63",X"65",X"3D",X"6E",X"65",X"78",X"74",X"20",X"62", + X"79",X"74",X"65",X"20",X"52",X"20",X"3D",X"20",X"72",X"65",X"74",X"75",X"72",X"6E",X"20",X"20", + X"20",X"20",X"20",X"20",X"4D",X"45",X"4D",X"4F",X"52",X"59",X"20",X"20",X"20",X"45",X"44",X"49", + X"54",X"4F",X"52",X"20",X"00",X"06",X"00",X"10",X"FE",X"C9",X"CD",X"ED",X"F9",X"CD",X"FC",X"03", + X"0F",X"8E",X"00",X"FF",X"BD",X"FB",X"93",X"86",X"BF",X"C6",X"07",X"BD",X"FB",X"D5",X"86",X"13", + X"C6",X"0F",X"BD",X"FB",X"D5",X"86",X"3F",X"C6",X"17",X"BD",X"FB",X"D5",X"BD",X"FB",X"A8",X"7F", + X"08",X"00",X"0F",X"BD",X"FB",X"43",X"96",X"BC",X"2B",X"07",X"BD",X"FD",X"DE",X"86",X"FF",X"97", + X"BC",X"0E",X"CE",X"00",X"00",X"DF",X"D1",X"96",X"80",X"26",X"0B",X"DE",X"84",X"D6",X"8C",X"BD", + X"FC",X"D9",X"DF",X"84",X"97",X"80",X"7C",X"00",X"D2",X"96",X"81",X"26",X"0B",X"DE",X"86",X"D6", + X"8D",X"BD",X"FC",X"D9",X"DF",X"86",X"97",X"81",X"7C",X"00",X"D2",X"96",X"82",X"26",X"0B",X"DE", + X"88",X"D6",X"8E",X"BD",X"FC",X"D9",X"DF",X"88",X"97",X"82",X"7C",X"00",X"D2",X"96",X"83",X"26", + X"0B",X"DE",X"8A",X"D6",X"8F",X"BD",X"FC",X"D9",X"DF",X"8A",X"97",X"83",X"96",X"A8",X"27",X"08", + X"7F",X"00",X"A8",X"C6",X"08",X"BD",X"FC",X"37",X"96",X"A9",X"27",X"08",X"7F",X"00",X"A9",X"C6", + X"09",X"BD",X"FC",X"37",X"96",X"AA",X"27",X"08",X"7F",X"00",X"AA",X"C6",X"0A",X"BD",X"FC",X"37", + X"96",X"AB",X"27",X"08",X"7F",X"00",X"AB",X"C6",X"18",X"BD",X"FC",X"50",X"96",X"AC",X"27",X"08", + X"7F",X"00",X"AC",X"C6",X"19",X"BD",X"FC",X"50",X"96",X"AD",X"27",X"08",X"7F",X"00",X"AD",X"C6", + X"1A",X"BD",X"FC",X"50",X"96",X"BE",X"16",X"9A",X"D8",X"0F",X"97",X"D8",X"C6",X"0F",X"BD",X"FB", + X"DB",X"7E",X"FA",X"22",X"96",X"C1",X"B7",X"08",X"01",X"96",X"C2",X"B7",X"08",X"02",X"7C",X"00", + X"BD",X"96",X"BF",X"4C",X"97",X"BF",X"44",X"24",X"32",X"DE",X"C3",X"09",X"27",X"1E",X"DF",X"C3", + X"DE",X"C7",X"A6",X"00",X"44",X"44",X"44",X"44",X"97",X"C1",X"DE",X"C5",X"09",X"27",X"15",X"DF", + X"C5",X"DE",X"C9",X"A6",X"00",X"44",X"44",X"44",X"44",X"97",X"C2",X"3B",X"86",X"01",X"9A",X"BE", + X"97",X"BE",X"20",X"E6",X"86",X"02",X"9A",X"BE",X"97",X"BE",X"3B",X"96",X"C7",X"81",X"20",X"25", + X"09",X"DE",X"C7",X"A6",X"00",X"97",X"C1",X"08",X"DF",X"C7",X"96",X"C9",X"81",X"20",X"25",X"09", + X"DE",X"C9",X"A6",X"00",X"97",X"C2",X"08",X"DF",X"C9",X"96",X"BF",X"84",X"0E",X"26",X"CC",X"7C", + X"00",X"C0",X"3B",X"96",X"C0",X"27",X"3E",X"7A",X"00",X"C0",X"96",X"80",X"27",X"06",X"4C",X"27", + X"03",X"7A",X"00",X"80",X"96",X"81",X"27",X"06",X"4C",X"27",X"03",X"7A",X"00",X"81",X"96",X"82", + X"27",X"06",X"4C",X"27",X"03",X"7A",X"00",X"82",X"96",X"83",X"27",X"06",X"4C",X"27",X"03",X"7A", + X"00",X"83",X"CE",X"00",X"06",X"A6",X"AD",X"27",X"09",X"4A",X"26",X"04",X"6C",X"A7",X"A6",X"B3", + X"A7",X"AD",X"09",X"26",X"F0",X"39",X"B7",X"08",X"00",X"C6",X"0E",X"BD",X"FC",X"1D",X"84",X"3F", + X"97",X"BC",X"3B",X"CE",X"FF",X"FF",X"DF",X"00",X"C6",X"4F",X"08",X"86",X"00",X"A7",X"80",X"08", + X"5A",X"26",X"FA",X"86",X"13",X"97",X"D8",X"39",X"BD",X"FB",X"C0",X"86",X"BF",X"97",X"BB",X"C6", + X"FF",X"D7",X"82",X"D7",X"83",X"D7",X"B1",X"D7",X"B2",X"D7",X"B3",X"C6",X"17",X"7E",X"FB",X"DB", + X"86",X"BF",X"97",X"BA",X"C6",X"FF",X"D7",X"80",X"D7",X"81",X"D7",X"AE",X"D7",X"AF",X"D7",X"B0", + X"C6",X"07",X"7E",X"FB",X"DB",X"7C",X"00",X"BD",X"20",X"04",X"0F",X"7F",X"00",X"BD",X"37",X"36", + X"C1",X"10",X"2A",X"19",X"86",X"0D",X"97",X"03",X"D7",X"02",X"C6",X"08",X"D7",X"03",X"5C",X"32", + X"97",X"02",X"96",X"BD",X"27",X"FC",X"D7",X"03",X"5A",X"D7",X"03",X"33",X"39",X"86",X"15",X"97", + X"03",X"C4",X"0F",X"D7",X"02",X"C6",X"10",X"20",X"E3",X"37",X"20",X"E4",X"37",X"86",X"15",X"97", + X"03",X"C4",X"0F",X"D7",X"02",X"C6",X"14",X"20",X"0D",X"C1",X"10",X"2A",X"EF",X"37",X"86",X"0D", + X"97",X"03",X"D7",X"02",X"C6",X"0C",X"4F",X"97",X"03",X"97",X"00",X"D7",X"03",X"96",X"02",X"5F", + X"D7",X"03",X"5A",X"D7",X"00",X"33",X"39",X"0F",X"BD",X"FC",X"1D",X"C6",X"09",X"7F",X"00",X"BD", + X"84",X"1F",X"81",X"10",X"2A",X"08",X"4A",X"81",X"07",X"2B",X"03",X"BD",X"FC",X"09",X"0E",X"39", + X"0F",X"BD",X"FC",X"0C",X"C6",X"11",X"20",X"E5",X"17",X"84",X"0F",X"81",X"08",X"2A",X"08",X"A6", + X"94",X"AB",X"98",X"A7",X"94",X"20",X"67",X"CB",X"38",X"DE",X"CD",X"A6",X"05",X"36",X"DE",X"D1", + X"AB",X"94",X"A7",X"94",X"32",X"2B",X"0C",X"24",X"02",X"6C",X"98",X"BD",X"FB",X"DA",X"5C",X"A6", + X"94",X"20",X"4B",X"25",X"F6",X"6A",X"98",X"20",X"F2",X"6F",X"8C",X"DE",X"CD",X"C1",X"A0",X"2B", + X"02",X"08",X"08",X"08",X"08",X"08",X"C1",X"C0",X"2B",X"08",X"17",X"84",X"0F",X"81",X"08",X"2B", + X"01",X"08",X"86",X"01",X"39",X"DF",X"CD",X"DE",X"D1",X"6A",X"90",X"27",X"DC",X"C1",X"A0",X"2A", + X"10",X"C4",X"1F",X"A6",X"94",X"36",X"DE",X"CD",X"A6",X"03",X"BD",X"FB",X"DA",X"0E",X"32",X"08", + X"39",X"C1",X"C0",X"2A",X"93",X"A6",X"90",X"44",X"A6",X"94",X"25",X"02",X"A6",X"98",X"C4",X"1F", + X"BD",X"FB",X"DA",X"0E",X"DE",X"CD",X"A6",X"04",X"39",X"26",X"CA",X"DF",X"CD",X"E6",X"00",X"2A", + X"03",X"7E",X"FD",X"90",X"C4",X"3F",X"C1",X"20",X"2A",X"11",X"A6",X"01",X"BD",X"FB",X"DA",X"0E", + X"E6",X"00",X"08",X"08",X"58",X"2B",X"E4",X"A6",X"00",X"08",X"39",X"C4",X"1F",X"17",X"84",X"0F", + X"26",X"31",X"A6",X"01",X"97",X"CE",X"A6",X"02",X"97",X"CD",X"BD",X"FD",X"D1",X"DC",X"CD",X"04", + X"DD",X"CD",X"E6",X"00",X"C4",X"1F",X"5C",X"5C",X"BD",X"FD",X"D1",X"7C",X"00",X"CE",X"26",X"03", + X"7C",X"00",X"CD",X"BD",X"FD",X"D1",X"CB",X"07",X"86",X"09",X"BD",X"FB",X"DB",X"0E",X"E6",X"00", + X"08",X"20",X"BF",X"80",X"08",X"2B",X"29",X"DD",X"CF",X"84",X"03",X"C1",X"10",X"2B",X"02",X"8B", + X"03",X"16",X"A6",X"01",X"CE",X"00",X"00",X"3A",X"D6",X"CF",X"C1",X"04",X"2A",X"0B",X"A6",X"B4", + X"A7",X"AE",X"DE",X"CD",X"D6",X"D0",X"7E",X"FC",X"EA",X"A7",X"B4",X"DE",X"CD",X"7E",X"FC",X"F0", + X"4C",X"27",X"17",X"5C",X"C1",X"10",X"2A",X"09",X"96",X"BA",X"A4",X"01",X"97",X"BA",X"7E",X"FC", + X"EC",X"96",X"BB",X"A4",X"01",X"97",X"BB",X"7E",X"FC",X"EC",X"C1",X"10",X"2A",X"09",X"96",X"BA", + X"AA",X"01",X"97",X"BA",X"7E",X"FC",X"EC",X"96",X"BB",X"AA",X"01",X"97",X"BB",X"7E",X"FC",X"EC", + X"C1",X"F0",X"2A",X"17",X"A6",X"01",X"EE",X"02",X"3C",X"DE",X"D1",X"E7",X"8C",X"4C",X"A7",X"90", + X"32",X"A7",X"94",X"32",X"A7",X"98",X"DE",X"CD",X"86",X"01",X"39",X"5C",X"27",X"12",X"DE",X"D1", + X"5C",X"26",X"10",X"DC",X"CD",X"A7",X"9C",X"E7",X"A0",X"DE",X"CD",X"EE",X"01",X"86",X"01",X"39", + X"86",X"FF",X"39",X"A6",X"9C",X"E6",X"A0",X"DD",X"CD",X"DE",X"CD",X"08",X"08",X"08",X"86",X"01", + X"39",X"96",X"CE",X"BD",X"FB",X"DA",X"5C",X"96",X"CD",X"BD",X"FB",X"DB",X"5C",X"39",X"26",X"06", + X"BD",X"FB",X"93",X"7E",X"FB",X"A8",X"81",X"10",X"2B",X"03",X"7E",X"FE",X"5B",X"81",X"07",X"2A", + X"35",X"97",X"CB",X"96",X"D8",X"8A",X"01",X"16",X"C4",X"FE",X"D7",X"D8",X"C6",X"0F",X"BD",X"FB", + X"DB",X"86",X"05",X"7F",X"00",X"BD",X"D6",X"BD",X"27",X"FC",X"4A",X"26",X"F6",X"D6",X"CB",X"58", + X"58",X"CE",X"EA",X"00",X"3A",X"3C",X"EE",X"00",X"DF",X"C7",X"38",X"EE",X"02",X"DF",X"C3",X"96", + X"BE",X"84",X"02",X"97",X"BE",X"39",X"97",X"CC",X"96",X"D8",X"8A",X"02",X"16",X"C4",X"FD",X"D7", + X"D8",X"C6",X"0F",X"BD",X"FB",X"DB",X"86",X"05",X"7F",X"00",X"BD",X"D6",X"BD",X"27",X"FC",X"4A", + X"26",X"F6",X"D6",X"CC",X"58",X"58",X"CE",X"EA",X"00",X"3A",X"3C",X"EE",X"00",X"DF",X"C9",X"38", + X"EE",X"02",X"DF",X"C5",X"96",X"BE",X"84",X"01",X"97",X"BE",X"39",X"16",X"58",X"CE",X"EA",X"30", + X"3A",X"EE",X"00",X"81",X"20",X"2B",X"22",X"7E",X"FE",X"6E",X"81",X"15",X"2A",X"34",X"3C",X"36", + X"BD",X"FB",X"93",X"BD",X"FB",X"A8",X"32",X"38",X"97",X"A4",X"DF",X"84",X"7F",X"00",X"80",X"7F", + X"00",X"8C",X"C6",X"B8",X"DA",X"BA",X"D7",X"BA",X"39",X"81",X"13",X"2A",X"DD",X"81",X"1F",X"27", + X"DD",X"DF",X"88",X"97",X"A6",X"7F",X"00",X"82",X"7F",X"00",X"8E",X"86",X"78",X"9A",X"BB",X"97", + X"BB",X"39",X"81",X"18",X"2A",X"E7",X"DF",X"8A",X"97",X"A7",X"7F",X"00",X"83",X"7F",X"00",X"8F", + X"86",X"78",X"9A",X"BB",X"97",X"BB",X"39",X"81",X"15",X"2A",X"E7",X"DF",X"86",X"7F",X"00",X"8D", + X"7F",X"00",X"81",X"86",X"B8",X"9A",X"BA",X"97",X"BA",X"39",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"00",X"00",X"00", + X"09",X"0A",X"0C",X"0D",X"0F",X"10",X"12",X"13",X"15",X"16",X"18",X"19",X"1B",X"1C",X"1E",X"1F", + X"23",X"24",X"26",X"27",X"29",X"2A",X"2C",X"2D",X"2F",X"30",X"32",X"33",X"35",X"36",X"38",X"39", + X"22",X"5A",X"38",X"30",X"22",X"3B",X"3B",X"20",X"20",X"64",X"65",X"74",X"61",X"20",X"69",X"73", + X"20",X"20",X"2D",X"2D",X"2D",X"2D",X"48",X"20",X"74",X"6F",X"20",X"2D",X"2D",X"2D",X"2D",X"48", + X"45",X"4E",X"44",X"48",X"45",X"58",X"3E",X"3E",X"20",X"50",X"61",X"72",X"61",X"6D",X"74",X"65", + X"72",X"20",X"65",X"72",X"72",X"6F",X"72",X"20",X"3C",X"3C",X"0D",X"00",X"44",X"55",X"4D",X"50", + X"20",X"4C",X"49",X"53",X"54",X"20",X"50",X"41",X"47",X"45",X"20",X"3D",X"20",X"F6",X"06",X"0D", + X"0D",X"00",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"68",X"F6",X"00",X"00",X"00",X"00",X"06",X"91",X"68",X"F6",X"06",X"91",X"68",X"F6",X"06",X"91", + X"FA",X"00",X"FA",X"00",X"FA",X"00",X"FA",X"00",X"FB",X"86",X"FA",X"00",X"FA",X"D4",X"FA",X"00"); +begin +process(clk) +begin + if rising_edge(clk) then + data <= rom_data(to_integer(unsigned(addr))); + end if; +end process; +end architecture; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/lotlot.zip b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/lotlot.zip new file mode 100644 index 00000000..3fe330a3 Binary files /dev/null and b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/lotlot.zip differ diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4a.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4a.hex new file mode 100644 index 00000000..0e16cf8b --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4a.hex @@ -0,0 +1,513 @@ +:10000000C5D5E56F3AA6E5B7C23C617CCB3FCB12C4 +:100010006722D6E5CDD5627EFE0120083AD8E547B5 +:100020000E1F1811FE0220083AD9E5470E1D1805CB +:10003000CD55600E052AD6E57CD5CD002DD1CB421D +:1000400028022C2C3A74E5B7200406040E00702C0C +:1000500071E1D1C1C9FE073801AFFE0338023D3D51 +:10006000473AD6E5B7C83AD7E5B7280C2B7EFE0746 +:100070003801AFFE0238013D4F2AD6E52D7CC5CDB3 +:10008000D562C17EFE043801AFFE0238013D5F3A01 +:10009000D7E5B7280C2B7EFE043801AFFE023801ED +:1000A0003D6FCB42280D788780834F060021C760C3 +:1000B0000946C9788780835F8783858787814F0654 +:1000C0000021D0600946C9000300141514181B183C +:1000D000000200000303030300020000010301010A +:1000E00003030303010301010002000003030303F0 +:1000F000000200001012101013131313101210102E +:1001000011131111131313131113111110121010D5 +:100110001313131310121010181A18181B1B1B1B83 +:10012000181A1818191B19191B1B1B1B191B191935 +:10013000181A18181B1B1B1B181A18187CCB3FCB3E +:100140001267E5CDD5627EE1CB4220040F0F0F0F81 +:10015000E60F4F427CCD002D2CCB4028022C2C7E6C +:10016000B177E6C0200A2D7EFE0420023600180C6E +:10017000FE4020082D7EFEFD200236FBE1D1C1C9E4 +:100180002100E0545D133600016805EDB0ED5FCD50 +:10019000EC313270E5FD2158E43A8EE5FE19380461 +:1001A000D61818F832B4E66F260029EB210034196E +:1001B0005E23561A32AFE613AF327AE51ACB7F20B0 +:1001C00007FE1FC8327AE5131ACB7F28EFCB7728BA +:1001D000031318F43E013279E51AE61F3278E5324E +:1001E00077E51ACB6F28093E023279E52177E534AD +:1001F000AF3275E5131AE6C0FE8020101AE61F32F2 +:1002000077E52178E5963C3279E518E81AE6C0FEF4 +:10021000C020B51ACB6F2006E61F3275E5131AE62B +:10022000E0FEE020151AE61F3276E5133A76E52166 +:1002300075E5BE38D7CD3F6218F2CD3F6218CD3A92 +:100240007AE5FE04287FFE0B3004FE073042FE06EE +:10025000281D3A79E5B728782177E54E47C53A75E4 +:10026000E569CDD562C13A7AE5770D10F0186121C4 +:10027000FDE47EFE043059344787804F0600217B21 +:10028000E5093A75E57723ED4B77E5702371184062 +:10029000FE08200ECD0B63011800FD0921E9E434AE +:1002A0001821FE09200DFDE5FD2140E4CD0B63FD85 +:1002B000E11810FE072005CD5A631807FE0A200337 +:1002C000CD7463180B3A75E52A78E5CDD56236040E +:1002D0002175E534C92600292929444D29094F06ED +:1002E00000090100E009C91100E43AFCE4B7280D57 +:1002F000471A6F131A67137DCDAA2F10F4C900088F +:100300000D1018000808090B0B0A08FD360A00FE3C +:10031000092008AF320CE53D320BE53E01FD770FB9 +:10032000FD77103A75E5FD7701FD7704878787FD36 +:1003300077073A78E5FD7703FD7705878787FD77AF +:10034000063E06FD7709AFFD7700FD7702FD770ACF +:10035000FD770CFD770DFD770EC921FCE47EFE20B4 +:10036000D034874F06002100E4093A75E577233A37 +:1003700078E577C92170E57EB7200C3A78E53272CE +:10038000E53A75E53271E535C91FCB113AFDE43226 +:1003900069E5DD217BE52169E57EB7C835DD7E00B5 +:1003A000DD6601878787CB3C1F6F1110D019DD7E7A +:1003B00002DD96013C47CB41280836172C2C361716 +:1003C000180636102C2C36142D2D1180001910E62D +:1003D000110300DD1918BF3ACDE54F87816F260064 +:1003E0002929292922F6E42130640600097E32F801 +:1003F000E4213964097E32F5E4214264097E32FB4E +:10040000E479E6073C4F213064097E326EE52142F3 +:1004100064097E326FE53A8EE5CDEC314F0600215E +:100420004B64097E32D8E5214E64097E32D9E5C994 +:100430000004080E0A070F0500000001000100007B +:100440000100000101010001010001090A080D0E6F +:100450000CAF3289E57EB7C83D202423EB1A6F1319 +:100460001A13D5CB3FCB105D57D5CD002DD1CB4046 +:1004700028022C2CEB7CCDD562E5DDE1E118D63DE0 +:100480002008237E3288E52318CB06013D20142363 +:100490004623CB78280D780630E67FFE0238043DEF +:1004A0003289E53A88E5E60FCB4B280E4FDD7E001A +:1004B000E6F0B1DD7700DD23180E0F0F0F0F4FDDD3 +:1004C0007E00E60FB1DD77007E12133A88E5E6F094 +:1004D00012137BFE7020021E90FEF020031E1014EB +:1004E00010C13A89E5B728083D3289E5063018B3CE +:1004F00023C35564C7C7C7C7C7C7C7C7C7C7C7C709 +:100500002136D5111F68CD2D303E24CD3E30DB0481 +:10051000CB57282DDB030F0FE63CC61021FA655F91 +:100520001600195E235623D57E23666F11B0D6EBD5 +:10053000CD2D303E24CD3E30D121B0D7CD2D301839 +:1005400039DB03070707F5E6065F160021FA651990 +:100550005E235623F1D50707E606C6085F1600217D +:10056000FA65197E23666F11ACD6EBCD2D303E2493 +:10057000CD3E30D121ACD7CD2D300606C52136D5A4 +:10058000112D68CD2D303E0CCD3E302136D5111FBA +:1005900068CD2D303E18CD3E30C110E0C93A57E449 +:1005A000FE01200B2128DA113B68CD2D30184A3A84 +:1005B00057E4FE0220160EC6213CDB115568CD2DF6 +:1005C0003021BCDB115A68CD2D30182D3A57E4FE8E +:1005D00003200B21B2DC115F68CD2D30181B3A5778 +:1005E000E4FE0420140EC621B6DD116F68CD2D3057 +:1005F0002136DE117A68CD2D30C9C667DC67F26717 +:1006000008681E6887679C67B1671E681E681E6859 +:100610001E681E681E681E6828671E683B671E6885 +:100620004E671E6861671E6874671E681E681E68D4 +:100630001E685C664A6681666F66A6669466CB66CF +:10064000B966F066DE6615670367203620434F49BA +:100650004E53203120504C415945520031322043F5 +:100660004F494E53203220504C415945525300209F +:100670003520434F494E53203120504C415945526B +:1006800000313020434F494E53203220504C4159C5 +:1006900045525300203420434F494E5320312050BF +:1006A0004C4159455200203820434F494E53203287 +:1006B00020504C415945525300203320434F494E5E +:1006C00053203120504C4159455200203620434F91 +:1006D000494E53203220504C41594552530020324C +:1006E00020434F494E53203120504C415945520030 +:1006F000203420434F494E53203220504C4159451D +:10070000525300203120434F494E20203120504C7D +:100710004159455200203220434F494E5320322048 +:10072000504C415945525300203120434F494E20EF +:10073000203620504C415945525300203120434F20 +:10074000494E20203520504C41594552530020310C +:1007500020434F494E20203420504C41594552539C +:1007600000203120434F494E20203320504C415926 +:1007700045525300203120434F494E202032205013 +:100780004C41594552530041202D203320434F49BD +:100790004E53203120504C415945520041202D20CC +:1007A0003220434F494E53203120504C415945523D +:1007B0000041202D203120434F494E202031205030 +:1007C0004C415945520042202D203120434F494E83 +:1007D00020203620504C41594552530042202D20B4 +:1007E0003120434F494E20203520504C415945522D +:1007F000530042202D203120434F494E20203320EA +:10080000504C41594552530042202D203120434F36 +:10081000494E20203220504C41594552530000028D +:10082000494E534552542020434F494E0002202048 +:100830002020202020202020202000064031393890 +:10084000342020204952454D20434F52504F5241B1 +:1008500054494F4E00808284860081838587000240 +:100860004C4943454E534544202046524F4D006865 +:100870006A6C6E70727476787A00696B6D6F7173E2 +:100880007577797B00CD5E5F3EFF32D1E5CD286D77 +:100890003EA8CD3E303E0132A9E5CD5E5FC3CF25F7 +:1008A0003100E82110D03600545D13015715EDB02A +:1008B000AF32A7E5329DE5326AE5FB3E5032B5E541 +:1008C00021B5E57EFE14380B2136D5119169CD2D69 +:1008D000301812B7200236282126D53600545D1371 +:1008E000013500EDB011A0693AB2E5FE02380311FE +:1008F000B2692134D7CD2D30CD7F6921AAE57EE6BE +:100900000AFE0A200E3AB2E53D2732B2E5AF32B711 +:10091000E5181B7EE605FE05C2C0683AB2E5FE0298 +:10092000DAC068D6022732B2E53E0132B7E5AF320F +:10093000B9E532B8E53290E53296E53C32B2E6CB25 +:10094000412006328EE53294E53AE0E5328FE53219 +:1009500095E52100002291E52292E52297E5229873 +:10096000E5218000DB04CB4720022D2D22E3E52189 +:1009700010D33600545D13017F09EDB0C30F5D2124 +:1009800042DC11C669CD2D300E0211B2E5CD5F30CB +:10099000C90450555348202020425554544F4E000E +:1009A000044F4E4C59202002312004504C415945EF +:1009B0005200023120044F52200232202004504CB9 +:1009C00041594552530004435245444954200006BE +:1009D0003153542020424C4F434B002130D3118FD0 +:1009E0006ACD2D303E22CD42313E0A3288E53E3876 +:1009F00032B6E53E5032B5E521B6E57EB720093680 +:100A0000382188E535CA896A21B5E57EFE14381C8F +:100A10003AB2E5B7200B2124D511A16ACD2D3018AB +:100A2000092124D511C66ACD2D301812B7200236FF +:100A3000272124D53600545D13013500EDB0CD7F5C +:100A400069213AD911BE6ACD2D300E063A88E53DAE +:100A5000CD6A3021AAE57EE60AFE0A28077EE60571 +:100A6000FE0520223AB2E5B7CAF869D6012732B2AC +:100A7000E5AF3290E53AE0E5328FE52100002291C2 +:100A8000E52292E51803C3F8693E00CD4231C9035F +:100A9000544F20434F4E54494E55452047414D45F4 +:100AA0000004494E5345525420434F494E20414E75 +:100AB00044205055534820425554544F4E0003543F +:100AC000494D452020000420202020205055534827 +:100AD00020535441525420425554544F4E2020200C +:100AE0002020003E13CD4231CD5E5F3A90E5FE02FC +:100AF0002026AF32B2E6CDA86BCDDB693E0132B223 +:100B0000E63A90E5FE0020102110D33600545D1324 +:100B1000017F09EDB0C30F5D3AB7E5FE0028073A43 +:100B200096E5FE02202E3A90E5FE0228102110D311 +:100B30003600545D13017F09EDB0C30F5DCD5E5FDC +:100B4000AF32B2E632B9E53E01CD3E303E0132A7CA +:100B5000E5C3CF252110D33600545D13017F09ED85 +:100B6000B021B8E57EB720033418023600CD966B6D +:100B7000DB04CB4F281D21B9E5CB462003341801F7 +:100B800035E601AE21800020022D2D22E3E53E0155 +:100B9000CD3E30C30F5D218EE51194E506061A4E59 +:100BA000777912231310F7C90E00161521E5E50613 +:100BB0000009DD2191E50603DD7E00BE3812280B19 +:100BC000153E0A814FFEC8280718E1DD232310E8EF +:100BD0007A32D1E579B7C8D60A11E5E528084F067B +:100BE0000021EFE5EDB02191E5010300EDB0626B6E +:100BF000360013010500EDB03A8EE512CD286D21C7 +:100C0000B8D211226DCD2D30DD2AD2E5111600DDCE +:100C100019FD2AD4E5FD23FD23FD230E411E033ECD +:100C2000143288E521C2D2C50E063A88E5CD483097 +:100C3000C106043E0E32B6E5AF3289E53AD0E5B7DB +:100C400020035718447AB720133AD0E5FE0A20044F +:100C5000140C1806FE052002150D181F3AD0E5FEEB +:100C6000AA200B147AFE1820030C160C180DFE5542 +:100C70002009157AFEE820030D16F479FE5D38028E +:100C80000E4179FE4130020E5C3ACFE5FE052804A4 +:100C9000FE0A20212189E53AB6E5BE38183C77796D +:100CA000FE5C283DFD7100FD23DD71000E41DD235A +:100CB000DD231D282CCB402805DD71001803DD71D4 +:100CC000003AAAE5B7201A3E01CD3E303AB6E5B764 +:100CD000C23C6C05C2336C2188E5357EFEFFC22420 +:100CE0006CDD3600003E38CD3E303E13CD4231CD76 +:100CF0005E5FC90342455354202006323020200352 +:100D0000504C41594552530002204E4F2E53434FF1 +:100D100052455320204E414D4520524F554E4420C0 +:100D200020000254494D450021B0D111F36CCD2D66 +:100D3000302190D311086DCD2D3011086DCD2D309F +:100D400011E5E521C2DD3AD1E54F061478FE0A200F +:100D5000032192DDB9200722D2E5ED53D4E5C5E5A4 +:100D6000410E02B820020E06FE0A30072C2CCD6A76 +:100D7000301803CD48302C2C79FE0220020E0406D8 +:100D800003CD5F3010FB2C2C2C2C06031A772C7112 +:100D90002C1310F87DC6066F1313131ACD483013A9 +:100DA000E1C12510A7C9010300119AE5217B6EED71 +:100DB000B001C80011E5E521BD6DEDB0C90101002C +:100DC000535445202020010103504F494E2020203C +:100DD00001010880454845202020020110304D497E +:100DE00054202020010121504141542020200101A4 +:100DF0002350474E41202020020128004F41592016 +:100E00002020020138704E52412020200201601043 +:100E10004F4957202020020189904B484F20202025 +:100E200002026600484E49202020020277505341BA +:100E30004F20202002031250554859202020020341 +:100E400033004253412020200303650041495720CD +:100E50002020030370504B414520202004038800CC +:100E60004D4B4D20202003040150454941202020B6 +:100E700003043200524B4720202003048540494997 +:100E80004F20202004F9FFFFFFFFFFFFFFFFFFFFC0 +:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:100EA000FFFFC7C7C7C7C7C7C7C7C7C7C7C7C7C762 +:100EB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C2 +:100EC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B2 +:100ED000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A2 +:100EE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C792 +:100EF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C782 +:100F00003100E8110020CD2D6F227400CD2D6F220D +:100F10007600CD2D6F227800110000CD2D6F22724A +:100F20000011FFFFEBA7ED5222700018FE01002018 +:100F30002100001A856F3E008C67130B78B120F3F7 +:100F4000C9F3ED463100E8DD214E6FC390720E0506 +:100F50003EFFED790CED790CED792100E13600547E +:100F60005D1301FF01EDB0FB0100800B79B020FBA8 +:100F7000F3AF5F16202100E00E10060077233C152A +:100F8000280710F80D20F3180516203C18F47B16DE +:100F9000202100E00E100600BEC29571233C1528EA +:100FA0000710F50D20F018053C162018F47B3CFEC8 +:100FB0000F20BF3100E8CDF277AF3201E016200EEE +:100FC000102100D0060077233C15280710F80D20CB +:100FD000F318053C162018F43A01E016202100D041 +:100FE0000E100600CD3572233C15280710F60D2093 +:100FF000F118053C162018F43A01E03CFE0F20BA27 +:10100000DD21BF70CD9072210F7ADD21BF70CD2818 +:1010100071CDAF70CDF2773E033201E7CD9E793EC0 +:10102000013200E33202E3DB002F0F0F30F93E0301 +:101030003201E7CDB67721AA7BCDD5773A01E70615 +:1010400006CD4A7DCD9579CD9579DB002F0F3014F3 +:101050003A01E7074F0600DD21987BDD09DD6601D7 +:10106000DD6E00E9CD9E79CD9E79CD9579CD9579CE +:10107000DB012F0F38050F381C18C93A01E7FE08AD +:10108000CA44700604CD4A7DC6013201E70606CD8A +:101090004A7DC344703A01E7FE03CA44700604CD9A +:1010A0004A7DC6FF3201E70606CD4A7DC344701172 +:1010B0000000AF3200E70604C5CDC070C110F9C909 +:1010C00021000006201A853001246F1C20F714101F +:1010D000F4D5E53A00E721720087856F5E2356E17B +:1010E0007ABC20097BBD2005212F7A180321387A8C +:1010F0001183E7010900EDB011000121A0D13A00F0 +:10110000E7A72804471910FD2281E73E083280E74F +:101110003A00E7C6303286E72100E7342180E7DD78 +:1011200021BF70CD2871D1C97E23FE0028125E2315 +:1011300056234F7E12133E041223130D20F518E898 +:10114000DDE90F0F0F0FE60FC630FE3A3802C60773 +:10115000FD7700FD360104DDE9E60FC630FE3A38C2 +:1011600002C607FD7700FD360104DDE9F50F0F0F1C +:101170000FE60FC630FE3A3802C607FD7700FD368F +:101180000104F1E60FC630FE3A3802C607FD7702C9 +:10119000FD360304C908D9DD219E71C31572211BD8 +:1011A0007ADD21A871C32871D9FD21B8D0DD21B520 +:1011B000717CC34271FD23FD23DD21C1717CC359C4 +:1011C00071DD21CD717DFD23FD23C34271DD21D968 +:1011D000717DFD23FD23C3597108D9FD23FD23FD36 +:1011E00023FD23DD21EB715FC34271FD23FD23DD70 +:1011F00021F7717BC3597108D9FD23FD23FD23FD20 +:1012000023DD2109727EC34271FD23FD237EDD2192 +:101210002372C359712101D001FF0F3600545DEDD7 +:10122000B0DDE9CD9E79DB000F38060FDAB36F1819 +:10123000F208C39C6FBEC8F5E5DD214072C3907211 +:10124000211B7ADD214A72C32871E1FD21B8D07CCF +:10125000CD6C71FD23FD23FD23FD237DCD6C71F14C +:10126000F5FD23FD23FD23FD23CD6C71FD23FD231F +:10127000FD23FD237ECD6C71CD9E79CD9E79DB0063 +:101280000FDA89720F380418EFF1C9F1C1C3007089 +:101290002101D001FF073600545D1313CDA779213A +:1012A00000D001FF073600545D1313CDA779DDE9A7 +:1012B0003EFFD305CDB67721417ACDD577DB03212B +:1012C000AED1CD3376DB0421AED2CD3376CDE47210 +:1012D000CD7273CD9579CD9579DB00EEFF0F0FDAE6 +:1012E000337018D9218774CDD577CDB073DB04EE78 +:1012F000FFCB57284B21FC73CDD577DB03EEFF0FD7 +:101300000F0F0F110000219073010005E60F200A56 +:10131000195E23666BCDD57718250C1C1CB92002ED +:1013200018EE10F60108051C1CB9200218090C1053 +:10133000F6FE0F200A1C1C195E23666BCDD577C9FB +:10134000212A74CDD577DB03EEFF21A873110000AD +:101350000F0F0F0FE60F28111C1CFE08280B1C1C7A +:10136000FE0A28051C1CFE0FC0195E23666BCDD536 +:1013700077C9DB042F0F0F3813AF8721AE74856F49 +:101380003E008C675E23666BCDD577C93E0118EAB7 +:10139000D274E374F574077519752B753D754F7527 +:1013A0006175737585759775A875CB75EE75117632 +:1013B000DB03EEFF47E6032825FE012826FE022870 +:1013C00027214774CDD577780F0F47E603281EFEF7 +:1013D00001281FFE022820215274CDD577C921573C +:1013E0007418E121677418DC21777418D7216274AE +:1013F00018E821727418E321827418DE0B92D3432B +:101400004F494E204D4F444520200B12D420202020 +:1014100020202020202020200E30D420202020201A +:10142000202020202020202020000B92D3434F4951 +:101430004E204D4F444520410B12D4434F494E207E +:101440004D4F44452042000730D6313535205345B5 +:10145000430001B0D635000730D63138302053452F +:10146000430001B0D633000730D631373020534522 +:10147000430001B0D632000730D631363020534514 +:10148000430001B0D634000912D5424F44592054CC +:101490005950450912D6504C41592054494D450BDD +:1014A00092D6434F4D4D414E444F4D454E00B27480 +:1014B000C2740C30D55441424C45205459504520FB +:1014C00020000C30D55550524947485420545950AB +:1014D00045000DB0D33120434F494E203120504CB0 +:1014E0004159000EB0D33220434F494E5320312092 +:1014F000504C4159000EB0D33320434F494E532036 +:101500003120504C4159000EB0D33420434F494E46 +:1015100053203120504C4159000EB0D33520434F59 +:10152000494E53203120504C4159000EB0D3362043 +:10153000434F494E53203120504C4159000EB0D3F7 +:101540003120434F494E203220504C415953000E18 +:10155000B0D33120434F494E203320504C41595392 +:10156000000EB0D33120434F494E203420504C411F +:101570005953000EB0D33120434F494E20352050EF +:101580004C415953000EB0D33120434F494E2036C1 +:1015900020504C415953000EB0D3202020204652F9 +:1015A00045452020202020000EB0D33120434F4954 +:1015B0004E203120504C4159200E30D43120434F21 +:1015C000494E203220504C415953000EB0D33220A6 +:1015D000434F494E53203120504C41590E30D431A5 +:1015E00020434F494E203320504C415953000EB0F8 +:1015F000D33320434F494E53203120504C41590E94 +:1016000030D43120434F494E203520504C4159535E +:10161000000EB0D320202020465245452020202017 +:10162000200E30D43120434F494E203620504C41BB +:10163000595300EEFF06082336042B0F38043630CA +:10164000180236312323232310EDC9CDB6772100AC +:10165000D0110508010008722373230B78B120F71D +:101660002100E11101E13600010001EDB0FB21A3F1 +:10167000761100E1012000EDB0CD9579CD9579CDC1 +:101680009579DB002F0F0F30F02100E11101E136D9 +:1016900000010001EDB0CD9579CD9579CD9579F327 +:1016A000C333701300C0001080A00013004001106D +:1016B00000A0001300C00010C06001130040011022 +:1016C00040600100030080001000800003008000E3 +:1016D00010018000030180001000800003018000E1 +:1016E0001001801100C0010001EDB0C92100E1111D +:1016F00001E13600010001EDB0AF3206E3676F2271 +:101700000DE7CDB67721DF7ACDD577FB0608DB0074 +:101710002F21C0D2CD38770608DB012F21C0D4CDD0 +:1017200038770608DB022F21C0D6CD38770608218E +:1017300040D17BCD387718142336042B0F3804366C +:1017400030180236312323232310EDC9CD95773A83 +:101750000DE721C0D7CD78773A0EE7CD7877CD9ECB +:1017600079CD9E79DB012F0F0F3802189EDB002FF9 +:101770000F0F3097F3C333702336042BF50F0F0F81 +:101780000FE60FC6307723232336042BF1E60FC66E +:1017900030772323C9210FE73A09E0E6C0BEC832FB +:1017A0000FE73A0EE7C60127320EE7D03A0DE7C63B +:1017B0000127320DE7C92100D001FF073600545D33 +:1017C0001313CDA7792101D001FF073600545D1313 +:1017D00013CDA779C97EFE00C8CDDE7718F74E0677 +:1017E00000235E2356237E123E04131213230D2082 +:1017F000F5C92100E00E06AF06007710FD0D20F8B8 +:10180000C90E00060010FE0D20F93D20F4C9C5E503 +:10181000772310FCE10E2009C10D20F2C9CDB67767 +:10182000CD3678CD9579CD9579CD9579DB002F0F93 +:101830000FDA337018ED2100D001FF0F3E867723B9 +:101840000B78B120F7210CD00610E5C5CD7178C119 +:10185000E11100011910F3064021BFD77EB07723B4 +:10186000237EB077118000197EB0772B2B7EB07766 +:10187000C90619CD7D782323232310F7C9E53E033C +:101880007723233E0277E1E5118000193E0177239B +:10189000233E0077E1C9F3CDB67721B379CDD57773 +:1018A000CD9579CD9579CD9579DB002F0F3802183C +:1018B000EC110146CD8579CD9579CD9579CD957988 +:1018C000DB002F0F380218E913CD8579CD9579CD3E +:1018D0009579CD9579DB002F0F380218EF13CD8560 +:1018E00079CD9579CD9579CD9579DB002F0F38029B +:1018F00018EC3E102110D00E031101460610732380 +:10190000722310FA130D20F4112000193D20E83E37 +:10191000031101520E0406307323722310FAD511FD +:10192000200019D10D20EF133D20E91101490E04CB +:1019300006307323722310FAD511200019D10D201F +:10194000EFCD9579CD9579CD9579DB002F0F3802C4 +:1019500018A0CD9579CD9579CD95793E01D301CD5E +:101960009579CD9579CD9579DB002F0F30F1AFD3F7 +:1019700001CD9579CD9579CD9579DB002F0F0FDAD3 +:101980003370C371792100D0010008732372230BD7 +:1019900078B120F7C90100400B78B120FBC90100E4 +:1019A000900B78B120FBC97E12232313130B78B15F +:1019B00020F5C90EA0D141204220432044204520DB +:1019C000462047200E20D2482049204A204B204C58 +:1019D000204D204E200EA0D24F20502051205220CA +:1019E0005320542055200E20D356205720582059DC +:1019F000205A202020202014A0D331203220332050 +:101A00003420352036203720382039203020000877 +:101A1000A0D052414D2020204F4B0010A0D0524169 +:101A20004D2020204E472020282020202029005211 +:101A30004F4D2020204F4B00524F4D2020204E472D +:101A40000016A0D044495020535720312032203373 +:101A50002034203520362037203803A0D153573189 +:101A600003A0D2535732000198D2201BC4D22020A9 +:101A70002020202020202020202020202020202066 +:101A8000202020202020202020000CA0D0494E54CF +:101A9000455246414345204F4B00A07AB57ACA7A59 +:101AA00011A0D0434845434B20494E54455246412E +:101AB000434520310011A0D0434845434B20494EB7 +:101AC0005445524641434520320011A0D043484579 +:101AD000434B20494E544552464143452033000A6A +:101AE00020D1575249544520444154410C20D249F9 +:101AF0004E544552464143452031200CA0D220206F +:101B0000205245414420444154410C20D4494E5474 +:101B10004552464143452032200CA0D4202020527B +:101B200045414420444154410C20D6494E5445522D +:101B3000464143452033200CA0D620202052454169 +:101B40004420444154410F40D230203120322033D0 +:101B500020342035203620370F40D4302031203239 +:101B6000203320342035203620370F40D630203126 +:101B70002032203320342035203620370F40D1301A +:101B8000203120322033203420352036203706A063 +:101B9000D754494D494E4700000000000000B07284 +:101BA000EC765E7C4B7696781D780D20D130312016 +:101BB000444950205357495443480BA0D130322058 +:101BC000492F4F20504F52540820D2303320534FCA +:101BD000554E440CA0D23034204348415241435426 +:101BE00045520820D3303520434F4C4F5216A0D3D6 +:101BF00030362043524F53532048415443482050DD +:101C000041545445524E007CB8C07DB9C921008072 +:101C1000010008AF77230B78B120F8C972230B7845 +:101C2000B120F9C97223230B78B120F8C908D9C3B0 +:101C3000397CC7C7C7C7C7C7C72109E034CD527CA5 +:101C40003A02E30F38072106E33E808677C9D908B8 +:101C5000FBC92100E11100C0010001EDB0C9CDB602 +:101C60007721B97DCDD5772A9C7D2206E7DD210835 +:101C7000E7FD21A07DCD9579CD9579CD9579CD8B59 +:101C80007CDB002F0F0FDA337018D3FD220BE73EF9 +:101C9000013205E70606CD507DCDE57CCDCF7C0138 +:101CA0000000ED4313E3DB002F0F0F3004C1C333FB +:101CB00070DB002F0FDCCF7CDB012F0F38340F38A7 +:101CC0005DED4B13E30B78B120D8CDE57C184F3A8E +:101CD00005E74F0600FD2A0BE7FD09FD7E00D30056 +:101CE000F680D300C93E00D3003E80D3000600102A +:101CF000FEC9CDE57CCD9579CD9579CD95793A071D +:101D0000E75F3A05E7BBC80604CD507D3D3205E7E5 +:101D10000606CD507DCDCF7C010000C3A27CCDE571 +:101D20007CCD9579CD9579CD95793A06E75F3A05E1 +:101D3000E7BBC80604CD507D3C3205E70606CD5012 +:101D40007DCDCF7C010000C3A27C4FD6033C181789 +:101D50004FC52120D1118000470528031918FAC169 +:101D6000237023237079C9C52120D111800047FE3B +:101D7000012804051910FDC1237023237079C9C5FA +:101D80000E00060010FEF53A00D0CB4F2809F10DE9 +:101D900020F03D20EBC1C9F1C10601C915010000C9 +:101DA000000102030405061C111213141520212240 +:101DB0002324252627000000000BA0D053204F200D +:101DC00055204E204420530F20D1303120484F4C15 +:101DD000452044494747494E4715A0D1303220504D +:101DE00049434B494E4720555020464F5254494E87 +:101DF000450F20D2303320444F4F52204F50454E94 +:101E0000494E4713A0D23034204255524945442010 +:101E1000494E544F20484F4C451420D3303520466E +:101E2000414C4C494E4720494E544F20484F4C4559 +:101E300010A0D3303620504C41594552204B494CCC +:101E40004C45441220D430372054494D452055503C +:101E5000205741524E494E4716A0D430382054499D +:101E60004D452053434F524520434F554E54494E04 +:101E7000471120D5303920434F494E20494E534514 +:101E80005254494E470FA0D53130205A4F4F4D2064 +:101E9000494E20202020200F20D63131205A4F4F8C +:101EA0004D204F55542020202016A0D631322050EE +:101EB0004C415945522046414C4C494E4720202028 +:101EC00020200D20D731332047414D452053544128 +:101ED00052540CA0D731342047414D45204F564530 +:101EE000521B20D831352042474D2028434F4E54B5 +:101EF000494E5549545920444953504C4159290E93 +:101F0000A0D8313620524F554E4420434C454152C3 +:101F10000E20D9313720424C4F434B20434C454192 +:101F2000520DA0D931382054494D4520555020201C +:101F3000201220DA31392042474D202847414D45B3 +:101F400020504C41592912A0DA32302047414D45EA +:101F500020434F4D504C4554494E470C20DB202028 +:101F60004D5553494320454E4420000000C7C7C784 +:101F7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F1 +:101F8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E1 +:101F9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D1 +:101FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C1 +:101FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B1 +:101FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:101FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:101FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:101FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C771 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4b.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4b.hex new file mode 100644 index 00000000..534377e2 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4b.hex @@ -0,0 +1,513 @@ +:10000000E7ADCEF6B6C1E7B9C9F4A58AC1AE92C1D3 +:10001000B89DC1B8C7A587C9CCB198C9AF9CD60255 +:10002000B1C2E8BEC0F7BA9DC704A2C1E8CFF6A529 +:10003000C2E8AAC9EDB2CBF503A59DC0AC90C2A998 +:100040008DC8B198CAB99DD5A59AD706A184D707FE +:10005000A4D0D5A6CAD2A8C3C5B5CDD2B8C6BCCD8A +:1000600008A5D4AAD3AEC5BBD009B3C50AA8D1B6DA +:10007000C4B6C70D87CACB0F9DC2E6D71F0101A822 +:1000800095C0E5D1F7AA95C8EEA5C8EEB9C1E5C8F7 +:10009000EED1F6BEC0F7A284CB00AE91C1C2D6D7D6 +:1000A000B4C4D2D3CB04A2C0E5D1F7A7C8EE03A550 +:1000B0009AC6D0B99DC0D706A184C6D007A3C0D721 +:1000C000B0C2D6B4C4CBD2D3BCC4D308A7CBB6CAB3 +:1000D000CC09BBCB0AB9C9CBCD0E91C1C2D6D71FB3 +:1000E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A0 +:1000F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C790 +:10010000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77F +:10011000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76F +:10012000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75F +:10013000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74F +:10014000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73F +:10015000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72F +:10016000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71F +:10017000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70F +:10018000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FF +:10019000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EF +:1001A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DF +:1001B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CF +:1001C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BF +:1001D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AF +:1001E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79F +:1001F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78F +:1002000002C002C1C406C204080808080C000000AD +:10021000C8C610000C0E0C0E000000000ACACA026C +:10022000CA0A08080000000000000000C406C2045A +:1002300020AC20AE00000000161616161C1E1C1E58 +:10024000B4000000B4B5B4B516181A20181A20204E +:100250001A18161600000000000000001412B0B2B8 +:10026000A09C9EA000000000A6A6A6A6A1A0A1A0FA +:10027000A0000000A0A1A0A1A6A6A0A0A6A6A6A03E +:10028000A6A6A6A60000000000000000A238A43622 +:1002900092908E00000000003A3A3A3A9899989964 +:1002A0009900000098999899989992923C3C3C3C0E +:1002B0003C3C3C3A000000000000000094969496FC +:1002C000B6BAB6BAE6E8EAEC222222222424242492 +:1002D000EE000000EEEFEEEFE4E2B6B6E2E4B6B612 +:1002E000E4E2222200000000000000000000000004 +:1002F000DDDEDFDE00000000DEA7DEA7404040407C +:10030000BF000000DDBFDDBFDD3EBCDFA7DEA7DE36 +:10031000DEA7DEA7DD34DD00DD34DDDDDEDFDEDDA2 +:1003200080848200000000008A8A8A8A2A2A2A2A77 +:100330008C0000008C8D8C8D8C8482808A8A8A8AC5 +:100340008A8A8A8A00000000000000008628882629 +:10035000CECCCECC30323032CECFCECFCECFCECF31 +:10036000CF000000CECFCECFCECFCECFCECFCECF10 +:10037000CECFCECF2C2E30002E2CCE000000000091 +:10038000D0D1D0D100000000D4D4D4D4D4D4D4D48B +:10039000D8000000D4D4D4D4D8D0D100D4D4D4D46C +:1003A000D4D4D4D4D1DBD9D5D5D9DBD1D5D7D5D7F1 +:1003B00000000000414041400040004000000000BB +:1003C00001010000000040400000000000010100A9 +:1003D000010000000000000000000000414041401A +:1003E000000100010000000000400040000000008B +:1003F00000000000000000000040000000000000BD +:1004000000000000000000000000000040404141EA +:1004100000010100000000000040004000004040DA +:10042000000000000000404040400000004000008C +:10043000004000000000000000000000414041407A +:100440000101010000000000004000400000000029 +:10045000000000000000000000000101004000005A +:100460000040000000000000000000004141414148 +:1004700001010101414141410040004000000000F4 +:100480000000000000000000010101010101010164 +:10049000010100000000000000000000000000005A +:1004A000004001000000000000404000004000400B +:1004B000000000000000004000000101000040407A +:1004C000000040400040000000000000C08180802B +:1004D0000101010000000000014101410000000095 +:1004E00000000000000000000001010101410101C5 +:1004F00001410101000000000000000041404140B6 +:1005000040414041000000000000000000000000E9 +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000010001000000000040004000004040B9 +:1005400000000000004000400000010000400040AA +:100550000040004001010101010101010100010011 +:10056000FE00FE000000000000000000000000008F +:1005700000000000000000000000000000FEFE007F +:10058000FE0000000000000000000000000000006D +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C00000F5FC000000000000000000000000003A +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F000FAFCF50000000000000000000000000010 +:1006000000000000000000000000F8F800000000FA +:10061000000000000000000000000000FCFCFCFCEA +:10062000FFFFFFFF000000000000000000000000CE +:1006300000000000000000000000FFFF0101FFFFBC +:1006400001010000000000000000000000000000A8 +:100650000000FE000000000000000000000000009C +:10066000000000000000000000FC00FE0000000090 +:10067000000000000000000000000000000000007A +:10068000FDFDFD0000000000F808F8080000000073 +:10069000000000000000000000FDFDFDF808F8F873 +:1006A000F808F8F800000000000000000300030054 +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E00000FC00FC00000000000000000000000012 +:1006F00000000000000000000000FC0000000000FE +:1007000000000000FCF8F8FCFCF8F8FCFC00FC0021 +:1007100000000000FD00FD000000000000000000DF +:10072000F0FF0000000000000000000000101000BA +:10073000100000001010101010101010FD00FD002F +:1007400000FF00FF000000000000000000000000AB +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000FEFE8D +:100770000010100000000000000000000000000059 +:100780000000000000000000000000000000000069 +:10079000000000000000000000000000FE0001005A +:1007A0001010100000000000000000000000000019 +:1007B0000000000000000000000010100000000019 +:1007C0000000000000000000000000000404040419 +:1007D000020202020101010100000000000000000D +:1007E00000000000000000000202020202020200FB +:1007F00002020000000000000000000000000000F5 +:1008000010101010000000000000000000000000A8 +:1008100000000000000000000000081000000000C0 +:1008200000000000000000000000000000100000B8 +:100830001010100000000000101010100000000048 +:100840000000000000000000001010101010101038 +:100850001010101000000000000000000400040050 +:100860001010101000000000000000000000000048 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890001010101000000000000000000000000018 +:1008A0000000000000000000101010100000000008 +:1008B0000000000010101010101010101010101078 +:1008C00000FF00FFF800F80000000000000000003A +:1008D00000F800000000000000000000040000001C +:1008E000000400000000000000000000F800F80014 +:1008F00000FC00FC00000000000000000000000000 +:1009000000000000000000000008080008090000C6 +:100910000808000000000000000000000000F8F8D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000004000000000000B3 +:10094000000000000000000000000000F800F800B7 +:100950000000000000000000000000000000000097 +:10096000000000000000000000040000040407076D +:10097000040404000000000000000000F8F8F8F88B +:10098000FCFCFCFCFCFCFCFC000000000000000087 +:100990000000000000000000F9FDFCFCFDFDFC0073 +:1009A000FDFD00000000000000000000000000004D +:1009B0000000000000000000000000000000000037 +:1009C00000000000000000000000F800000000002F +:1009D000000000000000F800F8000000F9F9F9F943 +:1009E00000FFFF0000000000000000000000000009 +:1009F00000000000000000000004FF0000000303EE +:100A00000000FDFD0000000000000000F808F808EC +:100A100000000000000000000000000000000000D6 +:100A200000000000000000000000000000000000C6 +:100A300000000000000000000000000000000000B6 +:100A400000000000000000000000000000000000A6 +:100A50000000000000000000000000000000000096 +:100A6000000000000000FCF8F8FC0000F8F9F8F9BC +:100A70000000000008000800000000000000000066 +:100A8000000800000000000000000000000000005E +:100A90000000000000000000000000000800080046 +:100AA000000400040000000000000000000000003E +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000080816 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000008000800E6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000005050505B1 +:100B300004040404FCFCFCFC0000000000000000B5 +:100B4000000000000000000007070404070704007D +:100B50000707000000000000000000000000000087 +:100B60000000000000000000000000000000000085 +:100B7000000000000000000000000800000000006D +:100B80000000000000000000000000000000000065 +:100B90000000000000000000000000000000000055 +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000001000100015 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C000000000000000000000000000000000000E4 +:100C100000000000000000000000000000000000D4 +:100C2000040C07010807010008070100000000008C +:100C30000000000006060606080808010A06000073 +:100C40000A06010000000000000000000708090774 +:100C5000080801000606060106060601000000005D +:100C60000000000005040303080801000606060052 +:100C70000606060100000000000000000304030453 +:100C8000080801000A0600000A0601000000000032 +:100C90000000000000000000080606040505050528 +:100CA00005050505060804000608040004030404FD +:100CB00008080400060606000606060000000000FC +:100CC00000000000050505050808080205050500E7 +:100CD00005050500040404000404040000000000ED +:100CE000080C0800050505000505050004040404BA +:100CF0000404040405050505430320FFA3FFA3FF27 +:100D0000A2FFA2FF000000000000000000000000A1 +:100D10008383A3FFA3A3FFFFA2A2FFFF00000000A5 +:100D2000000000000000000043A0FFFFA3A3A3FFFA +:100D3000A2A2A2FF000000000000000000000000CE +:100D400043A0FFFFA3A3A3FFA2A2A2FF00000000F5 +:100D5000000000000000000043A0FFFFFFFFFFFFB6 +:100D6000A2A2FFFF00000000000000000000000041 +:100D7000FF832020A3A3A3A3A2A2A2A2FFFFFF00A0 +:100D8000FFFFFFFF0000000043A0A0FFA3A3A3FFFD +:100D9000A2A2A2FF0000000000000000000000006E +:100DA00003232020232323FF222222FFFFFFFF0013 +:100DB000FFFFFF0000000000FF0320FF232323FFAD +:100DC000222222FFFFFFFFFFFFFFFFFF00000000C6 +:100DD0000000000000000000000000000000000013 +:100DE00000000000070607060004040200000000DF +:100DF00000000000000000000000000005060708D9 +:100E000000050500000000000000000000000000D8 +:100E100000000000010504020005050000000000BC +:100E200000000000000000000000000003030303B6 +:100E300000080200000000000000000000000000A8 +:100E40000000000000000000000008020000000098 +:100E5000000000000000040000040000040400047E +:100E60000005050000000000000000000000000078 +:100E70000000000004040404000000000000000062 +:100E80000000000000030300000303000000000056 +:100E90000000020000000000000000000004000448 +:100EA000000400040404040400000000FCFA000034 +:100EB0000206040000000000000000000000000026 +:100EC00000F8F800FAF70000010707000000000032 +:100ED000000000000000000000F80000FCFCFCFC2A +:100EE00004040404000000000000000000000000F2 +:100EF00000F80000FCFCF9000404040400000000F9 +:100F0000000000000000000000F80000F8F90000F8 +:100F100000080700000000000000000000000000C2 +:100F20000000F8F8FCFCFCFC0404040400000000D1 +:100F3000000000000000000000F80000FCFCF900C8 +:100F40000404070000000000000000000000000092 +:100F500000FC000000000000000000000000000095 +:100F600000000000000000000000FC000000000085 +:100F70000000000000000000000000000000000071 +:100F8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F1 +:100F9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E1 +:100FA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D1 +:100FB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C1 +:100FC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B1 +:100FD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A1 +:100FE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C791 +:100FF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C781 +:10100000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C770 +:10101000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C760 +:10102000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C750 +:10103000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C740 +:10104000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C730 +:10105000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C720 +:10106000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C710 +:10107000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C700 +:10108000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F0 +:10109000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E0 +:1010A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D0 +:1010B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C0 +:1010C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B0 +:1010D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A0 +:1010E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C790 +:1010F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C780 +:10110000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76F +:10111000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75F +:10112000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74F +:10113000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73F +:10114000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72F +:10115000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71F +:10116000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70F +:10117000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FF +:10118000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EF +:10119000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DF +:1011A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CF +:1011B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BF +:1011C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AF +:1011D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79F +:1011E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78F +:1011F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77F +:1012000002510101000392D4010118030FD0D5CF80 +:10121000D2010218030ED0D1D5D3010318030CD08C +:10122000D1D2D4D5D3010418030AD0D1D2D4D4D486 +:10123000D5D3010527D5D3010627D5D3010728D358 +:10124000010828D3010927D5D3010A27D5D3010BDB +:1012500027D5D3010C27D5D3010D27D5D3010E27D0 +:10126000D5D3010F27D5D3011027D5D3011127D509 +:10127000D3011227D5D30253010726CA010825CB73 +:10128000CC0254010727CD010827CE0252010518D0 +:10129000030AEB010618030AEB0107180308ECED3B +:1012A000EB01081803085CEEEB01091E5C5CEEEB39 +:1012B000010A1E5C5CEEEB010B1E5C5CEEEB010CAC +:1012C0001E5C5CEEEB010D1E5C5CEEEB010E1E5C29 +:1012D0005CEEEB010F1E5C5CEEEB01101E5C5CEE45 +:1012E000EB01111E5C5CEEEB01121E5C5CEEEB018F +:1012F000131CFDEFF0F1F2F30114180304F8F7F6F4 +:10130000F4F50115180305F8F7F6F6EFFC011618C9 +:101310000306F8F7F6F6F4F50117180307F8F7F6E1 +:10132000F6F6EFFC0118180308F8F7F6F6F6F4F5F0 +:101330000119180309F8F70304F6EFF9011A180365 +:101340000AF8F70304F6F4F5011B18030BF8F7038A +:1013500005F6EFFC011C18030CF8F70305F6F4F58D +:10136000011D18030DF8F70306F6EFFC011E180324 +:101370000EF8F70306F6F4F5011F18030FF8F7034C +:1013800007F6EF0210010918030604010A18030604 +:1013900004010B18030604010C18030604010D18C0 +:1013A000030604010E18030604010F1803060401C6 +:1013B000101803060401111803060401121803068D +:1013C000040113180304040255011322030594D5E4 +:1013D000FA030794011420030794D5FA0307940134 +:1013E0001522030594D5FA030794011623030494E8 +:1013F000D5FA03079401172594D6D7D8D9030694B4 +:10140000011826DADBDCDDDE030594011928E0E1B2 +:10141000E2E3E4949494011A299494E5E6E3E494D5 +:10142000011B2B9494E5E6E3011C2C949494E501B4 +:101430001D2E9494011E2F94004C0C99004E0C9973 +:1014400010500C9920520C7900540C7910A80C798A +:1014500020A80C8920700C5900720C5910740C597A +:1014600020764C7D0000C7C7C7C7C7C7C7C7C7C757 +:10147000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FC +:10148000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EC +:10149000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DC +:1014A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CC +:1014B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BC +:1014C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AC +:1014D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79C +:1014E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78C +:1014F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77C +:10150000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76B +:10151000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75B +:10152000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74B +:10153000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73B +:10154000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72B +:10155000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71B +:10156000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70B +:10157000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FB +:10158000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EB +:10159000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DB +:1015A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CB +:1015B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BB +:1015C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AB +:1015D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79B +:1015E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78B +:1015F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77B +:10160000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76A +:10161000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75A +:10162000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74A +:10163000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73A +:10164000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72A +:10165000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71A +:10166000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70A +:10167000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FA +:10168000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EA +:10169000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DA +:1016A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CA +:1016B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BA +:1016C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AA +:1016D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79A +:1016E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78A +:1016F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77A +:10170000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C769 +:10171000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C759 +:10172000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C749 +:10173000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C739 +:10174000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C729 +:10175000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C719 +:10176000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C709 +:10177000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F9 +:10178000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E9 +:10179000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D9 +:1017A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C9 +:1017B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B9 +:1017C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A9 +:1017D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C799 +:1017E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C789 +:1017F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C779 +:10180000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C768 +:10181000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C758 +:10182000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C748 +:10183000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C738 +:10184000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C728 +:10185000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C718 +:10186000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C708 +:10187000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F8 +:10188000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E8 +:10189000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D8 +:1018A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C8 +:1018B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B8 +:1018C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A8 +:1018D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C798 +:1018E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C788 +:1018F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C778 +:10190000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C767 +:10191000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C757 +:10192000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C747 +:10193000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C737 +:10194000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C727 +:10195000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C717 +:10196000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C707 +:10197000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F7 +:10198000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E7 +:10199000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D7 +:1019A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7 +:1019B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B7 +:1019C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A7 +:1019D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C797 +:1019E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C787 +:1019F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C777 +:101A0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C766 +:101A1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C756 +:101A2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C746 +:101A3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C736 +:101A4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C726 +:101A5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C716 +:101A6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C706 +:101A7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F6 +:101A8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E6 +:101A9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D6 +:101AA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C6 +:101AB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B6 +:101AC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A6 +:101AD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C796 +:101AE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C786 +:101AF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C776 +:101B0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C765 +:101B1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C755 +:101B2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C745 +:101B3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C735 +:101B4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C725 +:101B5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C715 +:101B6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C705 +:101B7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F5 +:101B8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E5 +:101B9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D5 +:101BA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C5 +:101BB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B5 +:101BC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A5 +:101BD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C795 +:101BE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C785 +:101BF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C775 +:101C0000212A5CA72803215C5C7E32DBE52322DCF1 +:101C1000E5C921DBE5352ADCE5200D7E3C280923DA +:101C20007E32DBE52322DCE57EC90C0278801402DB +:101C3000328024083202232032015A021E200C0274 +:101C40001E200C025A20730124085A012408640142 +:101C500032045F02232014801E08FFFF8C01DC0881 +:101C6000190219011480140414804A02C801EB02FD +:101C70006E803702500114800A010A020F010A0225 +:101C800005010A022808FFFFC7C7C7C7C7C7C7C7DC +:101C9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D4 +:101CA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C4 +:101CB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B4 +:101CC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A4 +:101CD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C794 +:101CE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C784 +:101CF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C774 +:101D00003E13CD4231CD5E5F3E0132AEE61804AFE8 +:101D100032AEE63A90E5FE0020053E20CD4231CDC0 +:101D2000C95E3AB7E5B728353AAEE6B7202FCDD62B +:101D30005E3E023288E53E0ECD3E30212ED6360084 +:101D4000545D13012700EDB03E0ECD3E30CDD65E82 +:101D50002188E53520E03E70CD3E3018353A90E5DB +:101D6000FE002136D6CC9A313E023288E53E0ECDB9 +:101D70003E302132D73600545D13011B00EDB03EDA +:101D80000ECD3E30CDC95E2188E53520E03E38CD10 +:101D90003E303E013290E53A8EE53DCDEC31793C66 +:101DA00032CCE579E6073C32CDE5210000228AE518 +:101DB000228BE5216CE5FE01200936303E60328B36 +:101DC000E51814FE02200936403E80328BE51807E4 +:101DD00036503E01328AE579CB3FCB3FCB3F21DF06 +:101DE000E586875F160021355F195E2356ED53E1C6 +:101DF000E53E14CD4231CD8061CDD763AF32A6E54B +:101E0000CD435FCDE7622110D011ED5ECD2D30CDF9 +:101E100003320E1E214AD03A8EE5CD4830CDF7313F +:101E20000E041197E52160D03AB8E5B728032118D0 +:101E3000D00603CD5F3010FB0E06119AE52138D095 +:101E40000603CD5F3010FB3AB4E6FE0C201421BA35 +:101E5000E10607360D232323360D1115001910F363 +:101E6000180CFE1020083E0132FFE43200E53AA7CC +:101E7000E5B720433AAEE6B720103AB7E5B7280AEF +:101E80003E1632B6E53E1832ADE63E01329DE52102 +:101E90004AE4060A78C602E60320053E17CD423121 +:101EA0007EFEFF20043612180236FF3E09CD3E307A +:101EB00010E23E26CD42313E02329DE53E1532B162 +:101EC000E63E013268E5C329002132D7CD853111C4 +:101ED000235FCD2D30C90E063AB8E5C631212ED686 +:101EE000CD6A30112B5FCD2D30CD9A31C90620310E +:101EF000502D2020202020201E3C31303030303E1C +:101F00000648492D2020202020201E3C522D202034 +:101F1000205E5F2D203E0632502D202020202020E4 +:101F20002020000620524541445900062D504C41C6 +:101F30005945522000980004011001140117012195 +:101F40000126013E013274E5AF3273E5CD915F3E6B +:101F500002CD3E302173E5347EFE1E38EFC9DD210F +:101F600000E30610DD360400DD360C00111000DD44 +:101F70001910F1AF3274E532A6E53E1C3273E5CD9F +:101F8000915F3E02CD3E302173E5357EFEFF20EFAE +:101F9000C9874FAF479157CB2178E603CCAD5F7A25 +:101FA000CB7F20020D9104805779B830ECC5D5CB9A +:101FB00038CB38300104CB39CB3930010C2E10CD61 +:101FC000D25F3A74E5B728030D18010CCDD25FD16A +:101FD000C1C9513E1880FE30DCF15F3E1890D4F14B +:101FE0005F503E1881FE30DCF15F3E1891D4F15F06 +:101FF000C9677D82FE20DC00607D92D8CD0060C97B +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4d.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4d.hex new file mode 100644 index 00000000..89abed9d --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4d.hex @@ -0,0 +1,513 @@ +:10000000203AECE4CDB620CD112021ECE43518E403 +:10001000C9FDBE05C821ECE44ECD3D2121EEE4BE74 +:10002000D032EEE43E0032EDE4C947FD4E0579FEE4 +:100030001D30526178070707CB3C1F6F1110D01994 +:10004000E511800119D1EB1AFE04283AE6F8FE0802 +:1000500028340C1A242415EBE6FCFE0028253A442B +:10006000E4B8300D2D2D2D2D1D1D1D1DCD88201802 +:10007000122005CDAD20180B2C2C2C2C1C1C1C1C6C +:10008000CD882018A9C979C97EE6FCFE18281E7EF5 +:10009000E6F8FE08C8247EE6F8FE08C81AE6F8FE70 +:1000A00010280A1AFE042805E6F8FE08C02145E4D7 +:1000B00079BED8F179C947FD4E0579FE0128506116 +:1000C00078070707CB3C1F6F1110D019E51180018D +:1000D00019D1EB7EE6F8FE102809247E25E6F8FE0D +:1000E0001079C00D151524EB3A44E4B8300D2D2DD0 +:1000F0002D2D1D1D1D1DCD102118122005CD3521C2 +:10010000180B2C2C2C2C1C1C1C1CCD102118ABC922 +:100110007EE6FCFE18281E7EE6F8FE08C8247EE671 +:10012000F8FE08C81AE6F8FE10280A1AFE04280588 +:10013000E6F8FE08C03A45E4B9D8F179C94778181D +:10014000142A44E4943002ED448787874779953038 +:1001500002ED4480C92145E4BE200879FD9604D013 +:10016000ED44C978963005ED44C664C9C6C8C9C710 +:10017000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70F +:10018000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FF +:10019000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EF +:1001A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DF +:1001B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CF +:1001C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BF +:1001D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AF +:1001E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79F +:1001F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78F +:10020000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77E +:10021000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76E +:10022000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75E +:10023000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74E +:10024000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73E +:10025000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72E +:10026000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71E +:10027000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70E +:10028000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FE +:10029000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EE +:1002A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DE +:1002B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CE +:1002C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BE +:1002D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AE +:1002E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79E +:1002F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78E +:10030000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77D +:10031000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76D +:10032000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75D +:10033000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74D +:10034000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73D +:10035000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72D +:10036000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71D +:10037000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70D +:10038000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FD +:10039000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7ED +:1003A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DD +:1003B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CD +:1003C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BD +:1003D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AD +:1003E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79D +:1003F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78D +:10040000210EE57EB7280235C934CDBE242168E52A +:100410003520023617DD2118E53E143288E5DD7EF1 +:1004200000B72839DD35002006DD360100182EDD45 +:100430007E00FE102004DD3601F43021FE0F201274 +:10044000DD7E02DD6E03CD002DEBCD1930CD6924AC +:10045000180BCB3FCB3F473EF790DD7701010400FF +:10046000DD092188E53520B6C93A44E4DDBE022025 +:1004700017DD7E032145E496380EFE03300A3E0068 +:100480003248E4AF3250E4C9FD2158E43AE9E4329D +:1004900089E5FD7E04DDBE022018DD7E03FD9605A4 +:1004A0003810FE03300CFD360CFFFD36092AFD36F0 +:1004B0000E3C111800FD192189E53520D5C93AE90E +:1004C000E432E8E4DD2158E4216DE536003A02E546 +:1004D000B728083AE8E4FE01200134DD7E0EB72893 +:1004E0005BDD350920253A6DE5B7280AAF3202E514 +:1004F00021E9E4351815DD360903DD7E0AFEFF200B +:1005000006DD360A0C1804DD360AFFDD350E202420 +:10051000FD2140E4FD7E04DDBE042010FD7E05FECD +:10052000013809FE043005DD340E1810DD360C00EC +:10053000DD360A0CDD7E0EFE30CC4825111800DDBC +:100540001921E8E4352081C93A6DE5B7200D3E0157 +:1005500032FFE4010001CDDB2F1813DD7E04DD6ED8 +:1005600005CD002D15151AE6FCFE60CC832F3E0448 +:10057000CD4231DD7E0DB7280421FCE435DD360A9D +:10058000FF1110D13A68E587876F260019EB06F84E +:100590000E08CD712EEB200A2168E53520023617B2 +:1005A00018E23A68E5DD7701DD7704878787DD7734 +:1005B00007AFDD7700DD7702DD770D3CDD7703DD0A +:1005C0007705DD3606082168E53520023617C93E75 +:1005D0000132A7E52122D2CDA1293E0ECD3E302108 +:1005E000DED311E926CD2D302123D216CBCDDF2944 +:1005F0003E1CCD3E302123D216CCCDDF293E1CCD72 +:100600003E302123D216CDCDDF293E1CCD3E307A9F +:10061000326BE52140E41141E40128013600EDB0E0 +:100620003E0132CDE5324BE43249E43E163241E43C +:100630003E0C3243E43E00324AE43246E43E1E328F +:1006400053E416181E0C3E01DD2158E40605DD7743 +:100650000BDD7709DD7201DD7303DD360A00DD365F +:100660000600C5011800DD09C11410E2218000DB7D +:1006700004CB4720022D2D22E3E5CDD7633E053282 +:10068000E9E43E03326AE53E01329DE53E303289BF +:10069000E5216BE5347EFED0380236CD562123D2DB +:1006A000CDDF293E08CD3E302189E53520E33E00EF +:1006B000329DE53E00326AE5CD00653ADEE5CD00CB +:1006C0005C060321DEE57EB72805360004180134F8 +:1006D00078328EE5AF32B8E5328FE5676F2291E56B +:1006E0002292E5CD5E5FC3975D06544D003E13CD6B +:1006F00042313E0132A9E5CD5E5F210052CD516409 +:1007000021C0D0DD21BED00E1F06187EDD77002C63 +:100710007EEE20DD77012CDD2BDD2B10EE1150005D +:100720001911B000DD190D20E02124E01123E00EA5 +:100730001F060C7E0707070712231B10F6C5010CC6 +:100740000009EB01240009EBC10D20E5FD2139541E +:10075000CDF0293E14CD42313E0132A6E5CD435FB6 +:100760003E24CD42312140E41141E401280136000C +:10077000EDB021CDE5343E01324BE43249E43E0692 +:100780003244E43E103241E43E1D3243E43E003246 +:100790004AE43246E416121E1F3E010E05DD2158C2 +:1007A000E40604DD770BDD7709DD7104DD7201DD20 +:1007B0007303DD360A00DD360600C5011800DD09C9 +:1007C000C1141C10DECDD7633E0432E9E43E023290 +:1007D0006AE53E01329DE53EA8CD3E303E03CD4266 +:1007E000310E30DD2100E3060BDD3406DD350E1160 +:1007F0001000DD1910F33E01CD3E300D20E521B68D +:10080000D5CD9A3121B8D6CD8531213CD8112D28AE +:10081000CD2D303E70CD3E303E00329DE53E003263 +:100820006AE53E13CD4231CD5E5FC3975D0652450A +:10083000414459003E13CD42313E0132A9E5CD5E1F +:100840005F2100E31101E30168023600EDB02100F1 +:10085000E01101E0019F023600EDB02313015F00BB +:100860003601EDB03E0A32D8E53E0032A6E53E1430 +:10087000CD4231CD435F3E27CD423106000E4711B8 +:10088000EF283E01CD3E303E2E804730F51AFE0166 +:100890002007131A6F131A67131A77FE20282E3EAB +:1008A00017CD42311AFE322024AF32CDE53257E463 +:1008B0003E0B3241E43E0C3253E4324AE43E013214 +:1008C0004BE43249E4326AE53E01329DE51323717F +:1008D000231AB720AD3EFFCD3E303E00329DE53EAF +:1008E00000326AE53E13CD4231CD5E5FC3FA260188 +:1008F00030D3434F4E47524154554C4154494F4ECB +:10090000532120202020011ED5594F552020484139 +:1009100056452020444F4E4520204954202056451E +:100920005259202057454C4C2C202001A8D6484134 +:1009300056494E47202050415353454420205448A7 +:10094000524F5547482020012AD8323420204441B4 +:100950004E4745524F55532020504C414345532E4E +:100960002020202001A0D94255542020544845522F +:1009700045202041524520205354494C4C20204FC3 +:100980005448455220200128DB454E454D494553EA +:1009900020204F4E2020594F555220205741592E8C +:1009A0000016881E04061E722C2C1414141410F742 +:1009B0007AC68957014400091D20EAC91E047EE653 +:1009C000F0477AE60FB07723060E722310FC7EE61E +:1009D0000F477AE6F0B077010900091D20E0C91E33 +:1009E00004061E722C2C10FB014400091D20F2C9C4 +:1009F000DD2100E3FD7E00B7C8DD7704DD770CFD67 +:100A00007E0147E61FDD7700DD770878E6C0DD77F9 +:100A100005EE40DD770DFD5E0216002AE3E519DDE7 +:100A20007502DD750ADD7403DD740BFD5E03DD7395 +:100A300006DD3607013EF093DD770EDD360F00113F +:100A40000400FD19111000DD1918A93A6AE5FE012C +:100A50002005CD5B2A1803CDD42AC93A53E4FE0CF5 +:100A6000202E1115002A42E4192242E47C2A57E480 +:100A70002600019B2B09BE2015237E324BE43E004D +:100A80003253E4324AE43A57E4C6023257E4184398 +:100A90003A4BE4FE01200511F2FF1803110E002A63 +:100AA00040E4192240E47C2A57E42600019B2B09EC +:100AB000BE2015237E324BE43E0C3253E4324AE42E +:100AC0003A57E4C6023257E43A53E4FE0C2804478E +:100AD000CDF110C93A6AE5FE022065DD2140E40E41 +:100AE00005DD7E0BFE01201C11F4FFDD6E00DD66CE +:100AF0000119DD7500DD74017CDDBE042004DD36E6 +:100B00000B001810110C00DD6E00DD660119DD759B +:100B100000DD740111F9FFDD6E02DD660319DD757C +:100B200002DD7403C5DD460679FE052005CDF11012 +:100B30001803CD2E1AC1111800DD190D20A3185A63 +:100B40003A6AE5FE032053DD2140E40E0611ECFF76 +:100B5000DD6E00DD660119DD7500DD74017CFEFED1 +:100B60002004DD360AFFC5DD460679FE062005CDE8 +:100B7000F1101803CD2E1AC1111800DD190D20CD6A +:100B80003A53E43C3253E4FE24200F3E003253E457 +:100B90003A57E43C3257E4CD9D65C903010600078E +:100BA0000008000A0009000D000D0010000F0013DE +:100BB000001100190032C7C7C7C7C7C7C7C7C7C713 +:100BC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B5 +:100BD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A5 +:100BE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C795 +:100BF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C785 +:100C0000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C774 +:100C1000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C764 +:100C2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C754 +:100C3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C744 +:100C4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C734 +:100C5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C724 +:100C6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C714 +:100C7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C704 +:100C8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F4 +:100C9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E4 +:100CA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D4 +:100CB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C4 +:100CC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B4 +:100CD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A4 +:100CE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C794 +:100CF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C784 +:100D000065070707CB3C1F6F1110D019E511800153 +:100D100019D1EB7EC967FD2158E41118003AE9E4C6 +:100D200047FD7E0694FE12306DFE083869FD7E0791 +:100D3000953002ED44FE06305DFD7E0CB72028FDA7 +:100D40007E16B720223A4FE4B72815FD7E0FFEFF2E +:100D5000280E2152E47EB7200736013E0BCD7330BA +:100D60003E063209E5182D210BE53A44E4BE28245D +:100D70007F77210AE53A4BE4BE2010210CE5347E52 +:100D8000FE0338053E133206E518093A4BE4773E78 +:100D900001320CE537C9111800FD191084C9C613BA +:100DA000180067DDE5C1FD2158E43AE9E447FDE5B7 +:100DB000D17BB92832FD7E0EB7202CFD7E06BC30DB +:100DC00026C612BC3821FD7E07953002ED44FE0692 +:100DD0003015DD7E0FFDBE0F200437C91809AFFDA9 +:100DE000960CD8DD960CD8111800FD1910C0C967F3 +:100DF000DDE5C1FD2158E43AE9E447FDE5D17B9109 +:100E00005F2826FD7E0EB72020FD7E07C607BC3872 +:100E100018D608BC30133CBC2004CB7B200BFD7ED5 +:100E200006953002ED44FE0FD8111800FD1910CBC5 +:100E3000C9C60867DDE5C1FD2158E43AE9E447FD8C +:100E4000E5D17B915F2822FD7E0EB7201CFD7E0739 +:100E5000BC3016C608BC38112004CB7B200BFD7EAD +:100E600006953002ED44FE0FD8111800FD1910CF81 +:100E7000C91AA0B9C8E5218000197EE1A0B9C91A34 +:100E8000A0B9C0E5218000197EE1A0B9C97EA0B952 +:100E9000C8247E25A0B9C97EA0B9C0247E25A0B9EA +:100EA000C97EB9C8247E25B9C91AB9C0E521800018 +:100EB000197EE1B9C9C60518004F3A47E4B9D0C652 +:100EC00004B9D83A46E4953002ED44FE0AD0AF3278 +:100ED00050E4C94F3A46E4C60EB9D8D61D3001AF2A +:100EE000B9D03A47E4953002ED44FE03D0AF32501A +:100EF000E4C94F3A46E4913002ED44FE0ED03A4741 +:100F0000E4953002ED44FE03D0AF3250E4C9EB7EED +:100F1000C670772C360A2C7EC674772C360A018070 +:100F20000009360A2D7EC67C772D360A2D7EC678BE +:100F300077ED42EBC9EB7EC660772C360A2C7EC675 +:100F400064772C360A01800009360A2D7EC66C773C +:100F50002D360A2D7EC66877ED42EBC9EB7ED67042 +:100F6000772C36052C7ED674772C36050180000947 +:100F700036052D7ED67C772D36052D7ED67877EDFD +:100F800042EBC9EB7ED660772C36052C7ED6647793 +:100F90002C36050180000936052D7ED66C772D365E +:100FA000052D7ED66877ED42EBC9D5070707CB3C08 +:100FB0001F6F1110D019EBC5CD0E2FC1D1C9EB7722 +:100FC00023237701800009772B2B77ED42EBC92192 +:100FD00091E57E47812777383618172193E57E8182 +:100FE00027772B7E8827772B7E47CE002777381FE1 +:100FF000B8C84F78C6012747C5FE05200C218FE5EC +:10100000343E12CD4231CDF731C178B938E5C9212E +:1010100099992291E52292E5C9D5EB3AD8E5772C4A +:101020002C7701800009772D2D77EBD1C91AB7C82D +:10103000FE2030034F1804772C712C1318EF32B5B3 +:10104000E53AB5E5A720FAC90600D60A0430FBC682 +:101050000A05F578CD5830F1C63077237123C91AC7 +:10106000F50F0F0F0FCD6A30F113E60FC63077235F +:101070007123C94F0600212831095621FEE45E3450 +:101080007A3288E5B72809347BFE0720031E003436 +:10109000CB9E7B3289E5878787FD21C0E35F160001 +:1010A000FD19FD360011FD360811161579FE0B38B5 +:1010B0000216033A46E482ED445F16002AE3E5197E +:1010C000FD7502FD74031E003A88E5B7280A1CFD71 +:1010D000770CFD750AFD740B211B31097EFD770429 +:1010E00021353109460E00CDDB2F3A47E4C6206F8B +:1010F000260029FD7506FD7407CB43280A01F0FF81 +:1011000009FD750EFD740F3A89E54F0600219EE535 +:10111000093670CB432803233670C9F8F9FBFCFA73 +:10112000FDFAFDE1E1E1E1E10000000000FEFEFF6B +:10113000F0AAABF1F002040608051015203050802B +:101140001030D557FE1228083AA7E5B72802D1C9B2 +:101150007AE521BBE55E160021BCE519571C7BE64C +:101160000F32BBE572E1D1C93ABAE521BBE5BEC891 +:101170005F160021BCE5193CE60F32BAE57ED300CC +:10118000F680D300C9119231CD2D303A8EE5CD488D +:1011900030C906524F554E442D003A8EE53DCDECF8 +:1011A00031793C32CCE50E06FE0A3805CD483018C0 +:1011B000052C2CCD6A303ACCE5FE043801AF878788 +:1011C0005F1600E521D43119EBE1CD2D3011E4316A +:1011D000CD2D30C90654480006535400064E440035 +:1011E000065244000620424C4F434B000E000CD6E2 +:1011F0000330FB0DC603C90E1E2156D03A8FE5CD34 +:101200006A30C92126D0118AE50E1E1AE60FCD6A72 +:101210003013CD5F301A0F0F0F0FE60FCD6A300E6F +:10122000042118D03AB8E5B728032160D03AADE6DA +:10123000B72826E521B6E57EB72006361621ADE6AD +:10124000353AADE6E11F300C3600545D13010B005A +:10125000EDB01803CD82321803CD8232119AE52108 +:1012600091E506031ABE1323200210F8D03AA7E531 +:10127000B7C0010300119AE52191E5EDB00E0621FA +:1012800038D01191E50603CD5F3010FBC911B8E6E7 +:101290002120D7014000EDB021A0D7014000EDB0E2 +:1012A0002120D8014000EDB021B8D8010E00EDB0EA +:1012B0002138D9010E00EDB0C921B8E61120D701BF +:1012C0004000EDB011A0D7014000EDB01120D801D1 +:1012D0004000EDB011B8D8010E00EDB01138D901C1 +:1012E0000E00EDB0C9C7C7C7C7C7C7C7C7C7C7C7FD +:1012F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77E +:10130000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C76D +:10131000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C75D +:10132000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C74D +:10133000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C73D +:10134000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C72D +:10135000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C71D +:10136000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C70D +:10137000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FD +:10138000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7ED +:10139000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DD +:1013A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CD +:1013B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BD +:1013C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AD +:1013D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79D +:1013E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78D +:1013F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77D +:1014000000003234013572354B3C6236CE364537FA +:101410008934CA3CA83B043EE235593D8C3F9B3998 +:10142000A93EF938CC3A1E3F2F3AC53771387D4076 +:10143000F73F0001AEE5A4EBA9CFF7A98DCAAECA6C +:10144000F7B3F1B9C5E8D2F7BEF703848DC58E9224 +:10145000C2898DD5CB8E98D2999DC4D79398C70455 +:10146000A6C6EE04B6C8F104068188CF07A2C3A7BA +:10147000D3ACD1B7C6D5BCCF0AA4CBA9CABEC009CC +:10148000BBCC08ABC3D3B0CC1F0001A4C2A9C1E33D +:10149000A5CAF1A7D3F6ACCFF6B095C1E3B4D3F7A4 +:1014A000B0C6E7CAEDB9ECD4F7BEF702A4C1C39049 +:1014B00098C0C4B0C5C804A9C5EDB6CDF103848FEA +:1014C000C0C4858BD28C91CE8793D78598C99498C8 +:1014D000D5949DD2999DC706A186D707A2C2A3CF56 +:1014E000A5D4A7C1ABC2AEC6CBB7C1C5D7BCC0D708 +:1014F00009BBCA08A6C3A9D1ADC30AB9D4BEC0D717 +:101500001F0001A5CAF2A6E3A8D4F7ABC5F3AFE468 +:10151000B0CAF1B3D7B5CCF3B7CCD3B9ECD3F7BAE3 +:101520009DCFF0BEF704AED4AFD5B0D6B2C4E803B9 +:10153000999DC2D69A9DCED19598CBD49094C9CF7F +:101540008F98C38B8FCCD1868EC4858AC9D306A1D0 +:1015500087D707A3CEA4C2A9CFADC1B1D7B8D0BC9D +:10156000D408A8C6ADCEB2D209B6C90AB3D7BEC098 +:10157000D71F0001A4C0D0F7A6E1CFF0A8C1C2CE0A +:10158000CFA9D2F6AAC2C3CDCEACC3C4CCCDAEC314 +:10159000E5CBEDAFE5CBF7B0C6CAB2C6EAB4C1E35E +:1015A000CDF3B9C5F7BEF703A48ED3AF93C2AF9501 +:1015B000CEB295C8B49AC4D1B49DC0B99DCBD5065E +:1015C000A191C807A2D1A7D6ACCBADC0B2C3D3B747 +:1015D000C808ACC1B1C4B6CE09BBCE0AA9D2D6BE2A +:1015E000D71F0101A698C9CEA89AC1C4D3D6A8C254 +:1015F000C3D4D5AFC2C3D4D5B2CBCCB9C1E5C9CA67 +:10160000CDCED2F6BB9DC6D1BEF702B9CBCC04A8D5 +:10161000C6C7D0D1B3C6E8CFF103A68AC8CFA89475 +:10162000C5D2B298CACDB69DC8CFA89DC0D706A1D5 +:1016300091CACD07A6C2D5ADC3D4B7C2CBD508A534 +:10164000C4D3B6CCBBC709BBCC0AA6CEBEC5BED2DE +:101650000D8EC2C3D4D598C2C3D4D598CBCC91CA71 +:10166000ED1F0001A4C0C2C4C6C8CACCCED0D2D41B +:10167000A98BC0C2C4C6C8CACCCED0D2D4AFC0C257 +:10168000C4C6C8CACCCED0D2D4A493D6B4C1F6BEF8 +:10169000F702B9C1F603A493C1C3C5C7C9CBCDCF67 +:1016A000D1D3D5B49DC006A19DD707A7C0C8D0ADE2 +:1016B000C4CCD4B2C0B7C6CACEBCC1D608A1CAD3A6 +:1016C000B6C8D009BBC80AA4C0A9C0AFC01F0001DA +:1016D000A5C0E2C6EBCEF0AD91D3D6ADD7AFC1EA8F +:1016E000B0D4B094D5B4C0E3CAECB5D3F6B9C0E673 +:1016F000BEF704A2C4C5A5D2F7A9C4E8B6CEF003CC +:10170000A58AC3A59DD1A795C9AF93C0B29DD7B4F3 +:1017100098C4CDB99DC706A186CC07A3C0C6D0ADDD +:10172000C6CAAED4B1CFB3D3D6B7C1BCC1CDD6082B +:10173000A2C1C9CFACC309BBCB0AA5CAB5D4BEC030 +:101740000D8FD4D51F0001A4C1E8A6CAEED2F7A818 +:101750008ACEA9C2E7ABCEF7AD92D6B1D2F4B0959E +:10176000C2E4C7B2C6B4C5C6B7CEF2B6D6D7B9C5FD +:10177000BEF702AB9ACBABCCB19ACCB9C1E4C6EA06 +:1017800004AECCF103A49DC0A498C9A68ACFD4B05E +:1017900095D7B19DD506A185D207A4CFD3D7A6D121 +:1017A000A7C2C7A9CBCCD7AED7AFCCD3B2C5B5D023 +:1017B00008A1C4A3CCA8D209BBCC0AA9C6B1D3BE88 +:1017C000D70E93C51F0101A5C0E2C4A8D3F6AAC6CF +:1017D000F1AA8CD5ABC1E3AA9DC6AA9AD1ADD3F725 +:1017E000AFC7E9CDEFAF94D3B092C3B2C0E2B3D3E9 +:1017F000F7B496C5C9CDB698C4B7C7F0B89AC3B9FF +:10180000D2B8D5F7BCC2D3BEC0F704A7C4C5A5D112 +:10181000F3ACC8EFB1C7EFAAD203A184C0A88CD79C +:10182000A9C3AA8DCBAB91C0AC96D0AD92D6B196E0 +:10183000CBB29DC1B397D5B496C7CEB89DD406A5FB +:1018400089C307ABD4ADC7CFB1D4B5C8CACCCFB666 +:10185000C3D7B7D2BCC0C4CACCD708A5D4A7C8BB0D +:10186000C509A8C20AA5C2BEC0D70F9DC3E5C7F26D +:101870001F0001A4C1C2A9C1E6CAF6A99BCAAEC095 +:10188000E7CDF5B092CDD5B3C4E6CBEDD0F5B597A5 +:10189000C6D5B8C2E6CBF5BAC0E2BDC4C8C9CFF759 +:1018A000029FC0F704A3C7F6BAC4E703A48DC0A67D +:1018B00088C6A997C3A99CD7AE9CC8B397CFD4BA02 +:1018C0009EC3BDCE06A185C307A2C1A7D3ACC1C428 +:1018D000CEB1C6CBD1B6C5D0D3B8C0C1BDC0C5CAC4 +:1018E00008A6CDB0C4BCC609A1C20AB3D1AECDD53D +:1018F0000D99C0C10F9EC5E71F0001AAC2CEACC0A2 +:10190000E2AE90C2B1C0E3D3F6B39DC0B6C1E4CDA0 +:10191000B7D0F6B8C7EDB9CDD0D49BC5D4BCC4C53B +:10192000D1F7BEC0F702A5C0E2C4EDAA95CDAC9038 +:10193000CEAFCFD004A4CEF4A7CAECABD0F5AEC4E2 +:10194000ECB1CEF1B8C2E403A184D5A790C3A7C976 +:10195000AA8ECFAB90D6AC97C9B197CCB49DCEAE82 +:101960009BD7B89DC1C6BA9DCC06A5C307AAC1CC5A +:10197000ADD0AFC5C8CBC0B4C1B5D2BAD1D3D6BC37 +:10198000C3C7CB08A7CEB3C3B4D1BBC909B5C70A77 +:10199000AACEBCD3BCD50D8BC0C11F0001A4CCF70F +:1019A000A5C7E9A9CDF6AAC1E4AFC5C7E9B4C4B9D2 +:1019B000C2C3C7E9CDF7BEC0F702AAC8EA8BCDF60D +:1019C000AC98CDAC95D6AFCFF4B193CFB4C8EACF35 +:1019D000F604A2C1E503A488D1A589CAA59DC0A922 +:1019E0009DCCA998D7AA8EC5C7AF93C4CAD5AF98C6 +:1019F000CEB498C3C7B99DC1B9CA06A186C6BB9D5E +:101A0000CA07A2CCD6A3C9A8C2C4C9ADC9D0D3B293 +:101A1000C9D1D3B7C4C9D1BCC2CED608A1D4A7C33B +:101A2000A6D4ACCB09A6CB0AA5C9AFC9BED71F00A7 +:101A300001A7C1C5EACDF3D5F7A9D6AFC5E8D2F75E +:101A4000B6C0E6B8C6EACFF1D3D5F7BAD3F7BCD45F +:101A5000F7BDC0EACFF702A5D5AFCAF1B8CCED9F6C +:101A6000C0F704A2C3CBCCD4F7A9C6F3ABD6B0C1A0 +:101A7000C2B1D2F4B5D203A192C0A286D3A589C4C3 +:101A8000A5CAA78AD4A98BD5A98EC5D7AF97C9B443 +:101A900097D1B6C7B89ECBCE06A184CA07A5C1C54B +:101AA000C9CED1D7AAC7CBD0B4C0C3B6D7B8D4BBE0 +:101AB000C0C2BDCC08A4C7D0ACD409B5CC0AA7C15C +:101AC000B8D7BDC00D86D6D70E99D41F0101A2C8C4 +:101AD000CFD5A3C8D0D4A4C7D4A5C1E6CDD1F385B2 +:101AE000CDF0A7C6CDD1A9C6F6AAC0E4AEC6F7AF61 +:101AF000C1E4B093C4C6D1D3B3D4B395C7D594C40D +:101B0000B496C3D1B597C8B698C2B6D0D1D5F7B7F9 +:101B10009AC9B89AC1B8CEF1B9C6BAC4CAEEBCC3A4 +:101B2000C4C7BB9DD5D7BDCFF1BEC0E8CFF702A5D6 +:101B3000C0C2C39FC9EE04A6C7F0B0C7F0B1C1E3ED +:101B400003A59DC5D2A98DD7AA8EC3AF9DC0B8CD20 +:101B5000BA9ECCBB9DC8BB9EC906A188CBBB9DD6F7 +:101B600007A3C0C6D3A7C8CED0D4A8C0B1C8B3CA33 +:101B7000CEB2C3B4D6B9D7BAC3BBD1BCC1C6D3BD2C +:101B8000CACE08A2C3BBC2D409ABCA0AB3D4B8CE6A +:101B9000BCC30D88C7ECCEF092D4D595D6D797CDDF +:101BA000EF99CAEC0E9DD61F0001A4C9F6A6C7E99D +:101BB000A69BD6A699C7A9CBF4A99BD4ABC9EBD455 +:101BC000AD9BC9ACC2C3AEC3E5AECDF2B0CBEDB0F8 +:101BD0009BCBD2B1C2C3B3C5CFD0B5CDF0B799CDF1 +:101BE000D0B8C2C4C5BACDF0BDC0E7029FC0F704EB +:101BF000A1C7E9A4C4C5A7C1C203A185C6A488C35F +:101C0000A79CC0A49ED7A99ED5AE9ED3B39ED10655 +:101C1000A186C007A2CCD2A7CCD1A9C9AAC2ACC503 +:101C2000ACD0AECCAFC2B1C5CFB3CDB6C2C5B8CEC5 +:101C3000BBC2C508A3C8A8CAADCBB2CE09BAC30AF5 +:101C4000A6C7ABC9B0CB0D99CECF1F0001A5CBED78 +:101C5000D4D5A7C0C1C6E8D5AAD1F5ACC8EEAE9020 +:101C6000C8AFCEB1C3EEB9C3E6BEC0F702A5D1F38B +:101C7000A789D1B398C3C6BEC2E5C9EDD0F3D6D704 +:101C800004A2C0E4C9F1A9CFD0ACCFD003A5C0A5B0 +:101C90009DD6A792C2B19DC706A184D607A3D4A59D +:101CA000C1C6C8A8D2D4AFC9CBCDB7C4C5BCC0C506 +:101CB000CED408A2CCD2A9CB09BBCB0AA5CBACC849 +:101CC000BEC00D89D2F498C4C51F0001A5C3F0A7FA +:101CD000C9CDAAC0F7ACC9CFAFC6F7B1C9CDC6B29E +:101CE000C0E5B4CAF6B6CDB7C1E6B9C6F7BBCDBE3E +:101CF000C0F70289C9CD8EC9CF93CDB396C6B3952F +:101D0000C9B8CDBDCD04A2C1C2D2F703A289C0A576 +:101D100089D1AA91C1AA8ED4AF93D1B296C3B498F7 +:101D2000D7B79DC0B99DD206A184C307A3C5C9A8D2 +:101D3000C4CBCFD7ADCBD2D7B0C2B2CBCFB5C1B762 +:101D4000C8CBD5BCC2CBCF08A2CBA7D2B1D3BBC71F +:101D500009BBC30ABECCCED71F0001A4C5F2A6881A +:101D6000C5CBD2D3A9C3E7CBCFF3A6D4F6AB8FC3F1 +:101D7000C7CFA694D7ABC7EFD3F7AEC1E7B097C133 +:101D8000C7B0CDF4B294CDB39AC4B3C5C6B5CAEE4C +:101D9000D1D5F7B6C2C3B7C7EACED1F5B9C4E7CA41 +:101DA000CEF1BEC0F702BEC1C3C5C7C9CBCDCFD12E +:101DB000D3D5D704ADD503A488D1A98FD0B094CC06 +:101DC000D6B59DCBB598D0B5D2D406A19DC007A7F6 +:101DD000C7A9C9CDD5ACC5AECDD4B3CEB4C2B5C8F4 +:101DE000D3B7C5CFBCC2D3D708A1CAA3D4ADD2093B +:101DF000BBC90AA4C5A4CBAEC10D85D3F78ACCEE6E +:101E000096C8C91F0001A799D6A78ED4A7D0F3A959 +:101E100091D0AACCEFAC94CCADC8EBD1F3AF97C8BE +:101E2000B0C4E7CDEFB29BC4B3C0E3C9EBB59BC070 +:101E3000B6C5E7BAC1E3B299D3B2D4D5B8D4D5B553 +:101E4000CFF2B7CFB9CCEFBBCCF2BDC7F7029FC082 +:101E5000F703A79CD7A791D5A789CFAA8CCBAD8F25 +:101E6000C7B092C3B294D2B598CEB99CCB06A18626 +:101E7000D7BDC607ABD1D3AECDCFB1C9CBB0D4B3EC +:101E8000D0B4C5C7B7CCB8C1C3B9D0D2BBD3D5C8FD +:101E9000CA08A4D2A7CDAAC9BCC009B5D40AB3C088 +:101EA000BDD3BAC10D8CD1F31F00029FC0F704A4AB +:101EB000C4CAD2D6A7C1C2C5C8CBD0D3D5AAC6CCB6 +:101EC000D4ADC2C7CDD0D5B0C1C6C8CBCED4D6B3A1 +:101ED000C5C8CACDCFD3D5B6C1C4C9CCD0D2B9C27A +:101EE000C5CBD4D603A487C3D1A490C9D7A790C02B +:101EF000A78DCFAD99C3AD9ED1B69EC006A186C0B9 +:101F000007A5CACFA9C2D2D6ADC6B1D4B4CFBAC57F +:101F1000D4ACCB08AACCB6C9CCD209BCCB1F00012B +:101F2000A587C2C6D1A898C2F700A88DC8AB8DC638 +:101F3000C7AB98C5AE90CBF0AED3ACD6B597CDEFCE +:101F4000B7CC01AECDEEB9CDEEBACCEDBC9ECBEDAB +:101F5000029FC0F704A2C1F7B9D0F503A59EC0AE99 +:101F60009AD6B89ACF06A184C007AFCBD0AED3081B +:101F7000A5C9CCABC7BCD209B5CE0AA8D0AEC6BCE9 +:101F8000CB0E90CBCCCFD08FD399CC1F0001A8958E +:101F9000C0EAA8CCEFADCBF6B4D1F6B9C0EDBBC565 +:101FA000BCCEBEC0F700B093C2E4B395C9AF95CA2A +:101FB00004A3C1EEA5D0F6B1CAF003A287C0CFA892 +:101FC0008ACBAA8ECAAE92C9B295C8B99DC6CCA515 +:101FD0009DD706A184D707A8D0D2D4B2C2C4B7C2B5 +:101FE00008AACED3B1D3BBD309BBC90AB9C0BEC4FA +:101FF000BECD0F9DC0E41F0001A8C9ECD1F4ACC157 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4e.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4e.hex new file mode 100644 index 00000000..d12ef3bf --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-a-4e.hex @@ -0,0 +1,513 @@ +:10000000F33100E8010000FD21000010FA0D20F797 +:10001000ED5621B3E63601DB04CB7FCA416F35CD07 +:100020007A00000000FBC3CF25CD001DCD4C04CDD0 +:100030002C0718F5C7C7C7C708D9DDE5FDE5CD28EA +:1000400001CDA200CD68313A6AE5B7C44B2A3A9D8A +:10005000E5FE02CC4101CD9001FDE1DDE1D908FBD7 +:10006000C9C7C7C7C7C7FBED45C7C7C7C7C7C7C746 +:1000700093246CDB7AFB8591A380AF329DE5D3019D +:100080002100D03600545D1301F017EDB0CD2801EA +:10009000CDF408CDD608CDA66D3E00D300F680D3B2 +:1000A00000C921B5E535233521B5E6353AB9E5B7BF +:1000B0002004DB011802DB022F324DE421CFE507DB +:1000C000CB160707CB163A4DE421D0E50FCB160F20 +:1000D000CB16DB002F21AAE51FCB161FCB16DB04A6 +:1000E000CB67202921B4E57EB720113AAAE5E605C1 +:1000F000FE0520063601F1C3590018113AAAE5E6BB +:100100000AFE0A200436001804F1C35900CD230961 +:100110003AAFE5B720053E0232B2E53AA7E5B7C8E7 +:100120003AB2E5B7C8C3A0683AB3E6B72807CD39F5 +:100130007CF1C359000100011100C02100E3EDB0C2 +:10014000C9CDE603CD000BCD0013CD0024C9FDE5DC +:100150003AE9E43288E5FD2158E4111800DD7E0615 +:10016000FDBE062020DD7E07FD96073002ED44FE31 +:10017000043012FD7E0DB7280CFD7E08FE0930020A +:100180000EFFFDE1C9FD192188E53520D0FDE1C94B +:100190003A9DE5B7C83A6AE5B7CC0332DD2140E4C1 +:1001A000FD21B0E33A6AE5FE022004FD21F0E3AF51 +:1001B00032E8E4DD4E0A3AE8E4B72817DD7E0DB7F1 +:1001C000280EDD3408DD7E08FE183804DD36080010 +:1001D000CD4E0179FEFF200BFD360400FD360C00EC +:1001E000C3110306002AF6E43AE8E4B7200521002B +:1001F000001819573A02E5B728123AE9E4BA200C78 +:10020000113000193ACDE5FE082001EB0922F9E48E +:100210000160450946DD6E00DD7E01C604672929BF +:10022000290E00CB28CB19DD7E0BB72004ED421838 +:10023000010929FD74063E0017FD77073AF8E44FDF +:10024000DDCB176628010C3AE8E4B720040E03184A +:1002500011473A02E5B7280A3AE9E4B820043A6EB1 +:10026000E54FCBE1FD710011B0432AF9E41956DDE9 +:100270007E0BB720043E40AA577AE6C0FD77052AD8 +:10028000F9E47A11004219575ED5FD730411C04894 +:100290002AF9E419AF575ECB7B280115DD6E02DD2C +:1002A0006603292929176C6719EB21E900B7ED527C +:1002B000ED5BE3E519FD7502FD7403D1CB42284DDA +:1002C0001CFD730CFD7108E501704A2AF9E4097EF2 +:1002D0000600ED444FCB79280105E109FD750AFDC3 +:1002E000740B7AE6C0FD770D0110472AF9E4097E08 +:1002F000CB722802ED444F0600CB79280105FD663C +:1003000007FD6E0609FD750EFD740F1804FD360C11 +:100310000011F0FFFD19011800DD0921E8E4343A6D +:10032000E9E4BED2B3013A6AE5FE02C8FD2100E36A +:100330003A17E58787872112E586ED443C4F060092 +:100340002AE3E509FD7502FD7403FD3600123A1635 +:10035000E5C6048787876F260029FD7506FD7407AB +:100360003A10E5FD7704FD2108E3FD360400FD3673 +:100370000C0016141E02DD2118E5DD7E01FE0028AA +:100380003ADD7E03878787473EF1904F06002AE3D8 +:10039000E509FD7502FD7403DD7E02C604878787CB +:1003A0006F260029FD7506FD7407FD360012DD7EFF +:1003B00001FD7704010800FD091DC8010400DD09E5 +:1003C0001520B7219EE506007EB7281235200FE5DF +:1003D000788787875F160021C4E3193600E123047C +:1003E00078FE0838E3C9218AE57E23B623477EE6F6 +:1003F000F0B0200BAF773E0132CEE5CD0332C90E0F +:100400000021B1E63A8BE5BE20010CED5BE1E52170 +:100410008DE57E9327772B7E9A277706022B7EDE4B +:1004200000277710F8CB41C83A8BE521B1E6BEC86A +:100430007EFE1520043E1C180AFE1020043E1D18E6 +:10044000023E1ECD42317ED6052777C93AFCE4B77D +:10045000C021B6E53A04E5B7200236FF7EFE8038BB +:100460000236187E2104E5FE09300D7EFE012806C5 +:100470003E0177CD8963180B7EFE0228063E027787 +:10048000CD89633A41E4217BE5BE200C3A43E42365 +:10049000BE20053E0132AFE63AAFE6B7C83A46E4C1 +:1004A000FE08C0AFCD8963F13E00329DE53E00CD30 +:1004B00042313E23CD42313E54CD3E30CD8D323A95 +:1004C00000E5B720472121D736052B36001122D76A +:1004D000013E00EDB021A1D736052B360011A2D781 +:1004E000013E00EDB02121D836052B36001122D86F +:1004F000013E00EDB00E4721A2D711F806CD2D30F8 +:100500003E1FCD42310E02CDCF2F184C3AFFE4B73B +:10051000C264052125D736052B36001126D70138B0 +:1005200000EDB021A5D736052B360011A6D701382E +:1005300000EDB02125D836052B36001126D801381C +:1005400000EDB00E4721A6D711DC06CD2D303E1FA1 +:10055000CD42310E01CDCF2FCD03323A00E53289A5 +:10056000E5CD8906216CE53A8BE5BE3857CDB93229 +:1005700021A3D136052B360011A4D1013400EDB0F2 +:100580002123D236052B36001124D2013400EDB0E0 +:1005900021A3D236052B360011A4D2013400EDB0D0 +:1005A0000E472124D2116F06CD2D302A8BE522B6BD +:1005B000E63EFF32B5E63E013205E5CDE4052AB65A +:1005C000E6228BE5CDE405218EE54E347EFE6120EA +:1005D00002364979CDEC31B7C2005D79E607CA34FD +:1005E00028C3ED263A8FE53289E53E143288E52AA4 +:1005F0008BE57CE6F0B52832218CE57ED610277796 +:100600002B7EDE002777011000CDDB2FCD033221BA +:1006100088E53520DA218FE53A89E5BE20053E11CF +:10062000CD42313E04CD300618C03E1CCD3006C947 +:1006300032B5E53A05E5B7282A21B5E67EFE8038D1 +:100640000236287EFE143012212BD136052B3600BF +:10065000112CD1010200EDB01809212AD1116B062D +:10066000CD2D303AB5E5FE0020C9C906583200420A +:10067000454C4F572048414C462054494D45204356 +:100680004C454152414E4345003E093288E521B96F +:10069000D836052B360011BAD8010C00EDB021393F +:1006A000D936052B3600113AD9010C00EDB00E47B2 +:1006B0001126073A88E51F300C1118073A89E5B76B +:1006C0002003111F0721BAD8CD2D303E0ECD3E306C +:1006D0002188E53520D83E70CD3E30C9594F552090 +:1006E00048415645204B494C4C4544204E4F2045EF +:1006F0004E454D4945532E00594F55204D414445D7 +:1007000020495420574954484F555420454E54527F +:10071000415050494E472E000431303030300004F3 +:10072000323030303000202020202000CDCE07CDC8 +:100730001D08CDAA093A50E4B7C03AA7E5B7280E7C +:100740003E00329DE53E38CD3E30F1C38568DB0486 +:10075000CB77C83E0C324AE43E01329DE53E00CDE7 +:1007600042313E06CD42313E38CD3E303E00329DD4 +:10077000E5F1218FE5357EFEFF202A2134D711A82F +:1007800007CD2D3021B4D711B507CD2D302134D868 +:1007900011A807CD2D303E21CD42313E8CCD3E30CB +:1007A0003E023290E5C3E36A06202020202020206C +:1007B0002020202000062047414D45204F5645521D +:1007C00020002054494D45204F56455220003ACE36 +:1007D000E5B7C8DB04CB77C8F1AF32CEE5329DE593 +:1007E0003E00CD42313E25CD42312135D736052B55 +:1007F00036001136D7011400EDB00E4721B4D711E1 +:10080000C207CD2D302135D836052B36001136D80C +:10081000011400EDB03E8CCD3E30C367072A55E48D +:1008200001C0FE09D0AF3250E4329DE5CD8D3221BA +:1008300029D736052B3600112AD7012A00EDB02121 +:10084000A9D736052B360011AAD7012A00EDB02111 +:1008500029D836052B3600112AD8012A00EDB03EE2 +:10086000023289E53E10CD42313E043288E53A88B5 +:10087000E51F301221ABD736052B360011ACD7015E +:100880002800EDB0180B0E4721AAD711C008CD2DB6 +:10089000303E15CD3E302188E53520D22189E53521 +:1008A00020C23E10CD42310E4721AAD711C008CD3B +:1008B0002D303E54CD3E303A8FE5B7C0CDB932C968 +:1008C000594F552041524520424F554E4420544FD8 +:1008D000204449452E00DB032F47E60332DFE5784D +:1008E0001F1FE6034F060021F008097E32E0E5C92C +:1008F00002010304DB032F1F1F1F1F4721AFE5DB8E +:1009000004CB572011783CE6037723781F1FE603BA +:10091000FE02DEF577C9783CE60FCB5F28013C7715 +:100920002377C921ADE511AFE5DB00CD580921AE34 +:10093000E513DB021FF604CD58093AB9E54721ABB0 +:10094000E57EB72805353E02B047237EB72805353A +:100950003E04B04778D301C91F1F1FCB161FCB160B +:100960007EE655FE50202B2B2B360C3AB2E6B720F4 +:10097000083E12D300F680D3001AFE012812FE08AA +:10098000300C21B1E534BEC0AF773E011802D60865 +:10099000180D7EE6AAC021B3E5347EE60FC03C21E7 +:1009A000B2E5862730023E9977C9DB04CB6FC0CB16 +:1009B00067C8DB00CB47C0F1F1AF329DE53E00CD0B +:1009C00042312110D03600545D1301EF13EDB021F8 +:1009D00022D711290ACD2D30211AD911480ACD2D3F +:1009E000301100000E043A8EE52160D9CD48302147 +:1009F0008EE5DB01CB7F280ECB42280816007EFE59 +:100A00000238013518021601DB01CB6F2809CB43F0 +:100A100028031E003418021E013E01CD3E30DB00CB +:100A2000CB4F20C07E3DC3D4050253454C454354B3 +:100A300020425554544F4E20544F204348414E4776 +:100A40004520524F554E4400024449474C454654B8 +:100A50002D2D444F574E2020444947524947485472 +:100A60002D2D555020204C4556454C2D303000C77B +:100A7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C706 +:100A8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F6 +:100A9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E6 +:100AA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D6 +:100AB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C6 +:100AC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B6 +:100AD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A6 +:100AE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C796 +:100AF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C786 +:100B00003AA7E5B7280ECD125C324DE4FEFF200473 +:100B1000AF3250E42A44E47D6C2C2CCDD5627E2A81 +:100B200055E4FE0E38032318032100002255E4DDAE +:100B30002140E42108E57EB72801352106E57EB78E +:100B40002818353A0AE5DDBE0B200F210BE53A44A3 +:100B5000E4BE2806773E0CCD73303A4EE4B7FAB4C3 +:100B60000FC24310214CE47EB7281135C03608214E +:100B70004AE4347EE6FCFE14C83614C93A54E4FE56 +:100B800002200D061CCD9F10D0AF3254E4CD371299 +:100B90003A54E4FE01200ECD0E120620CD9F10D057 +:100BA0003E033254E4AF3251E43A44E42A45E4CD02 +:100BB000002D06F80E10CD8D2ECA9F0CAF3287E5A2 +:100BC0003254E47EE6FCFE1820133E013287E53AFB +:100BD00042E4B720083E013251E4CA9F0C3A45E492 +:100BE000FE1D300E1AE6F8FE1028071AE6F8FE0879 +:100BF000200D3E013287E53A42E4FE80DA9F0C2A5E +:100C000047E43A46E4CD152DDAB10C214FE47EB726 +:100C10002006343E15CD42313E0C324AE42109E52E +:100C20007EB7280435C3B10CCD0E122A42E47C11E4 +:100C30001E00192242E4BC280A3A87E5B72804AF0F +:100C40003242E42A42E4297C3C1F3245E429297CD3 +:100C50003246E4CD88113A42E4B7C03A44E42A452A +:100C6000E4CD002D3A45E4FE1D30061AE6F8FE08F4 +:100C7000C0150E04CDA92EC01D1D1D1D3A44E4B79C +:100C800028061AE6F8FE08C03A44E4FE17300A7B4C +:100C9000C6085F1AE6F8FE08C03E08324CE4C921D7 +:100CA0004FE47EB7280736003E16CD4231AF3252B0 +:100CB000E43A4DE4CB7FC2420FCB6FC2CF0FCB5F84 +:100CC0002806CD4C0ED81808CB572804CDB70ED81F +:100CD0003A4DE4CB47C25E0DCB4FC2210D3A44E4FE +:100CE0002A45E4CD002D1AE6F8FE08200B3E12320C +:100CF0004AE43E013249E4C906F80E10CD8D2E209B +:100D00000D151AE6F8FE10C03E08324AE4C97EE628 +:100D1000FCFE1820063E07324AE4C93E12324AE47D +:100D2000C9AF3287E53A44E42A45E4CD002D3A4480 +:100D3000E4B7280E151B1B1B1B06F80E08CD712EE1 +:100D4000200C3E013287E53A40E43DFE7FD03E0173 +:100D5000324BE4CD3712CDD40D11ECFF183DAF323C +:100D600087E53A44E42A45E4CD002D3A44E4FE17F1 +:100D7000300E151313131306F80E08CD712E200E26 +:100D80003E013287E53A40E4FE803002B7C9AF3217 +:100D90004BE4CD3712CDD40D1114002A40E47C1958 +:100DA0002240E4BC28143A87E5B7280E2A40E47DA7 +:100DB000FE803801242E002240E42A40E4297C3CB5 +:100DC0001F3244E429297C3247E4CD88110600CD46 +:100DD000F11037C93A51E4B7C8F13A4AE4E6FC21C8 +:100DE00049E4FE2C2802360135C0214AE4347EE66F +:100DF000FCFE2C2802362C7ED6184F060021204CF3 +:100E0000097E3249E421D04D097E878787875F3A82 +:100E100087E5572A40E43A4BE4B77D280D93300824 +:100E2000CB422803AF180125180983300624CB4292 +:100E30002801AF6F2240E42A40E4297C3C1F324461 +:100E4000E429297C3247E4CD881137C9AF3287E5E0 +:100E50003A44E42A45E4CD002D06F80E10CD8D2E3F +:100E600020143A45E4FE01281615151AE6F8FE0886 +:100E7000280D181718091AE6F8FE102802B7C93A03 +:100E800042E43DFE7FD03E013287E5CD0E123A446A +:100E9000E42A45E4CD002D151AE6F811E2FFFE1014 +:100EA000CA070F2154E47EFE03C2070F353E1C32F1 +:100EB0004AE4CDAB1037C9AF3287E53A45E4FE1DB1 +:100EC00030071AE6F8FE08200E3A42E4FE803002AF +:100ED000B7C93E013287E5CD0E123A44E42A43E415 +:100EE000CD002D1A15E6F8FE101A111E002018E686 +:100EF000F8FE1028122154E47EB7200B343E203235 +:100F00004AE4CDAB1037C92A42E47C192242E4BC42 +:100F100028113A87E5B7280B7DFE803801242E0082 +:100F20002242E42A42E4297C3C1F3245E429297C00 +:100F30003246E4CD88110608CDF1103E033254E468 +:100F400037C9AF320FE53A45E4FE1CD03A44E4B766 +:100F5000C83A45E46FC6033217E53A44E43D321619 +:100F6000E5CD002D06FC0E08CD7F2EC0ED5313E518 +:100F70001506F80E00CD7F2EC03E10324AE4141C38 +:100F80001C1C1C1AE6F8FE0828172C2C2C2C7EE6BC +:100F9000FCFE1828077EE6F8FE1020053E11324AB6 +:100FA000E43EFF324EE42140012211E53E01324B86 +:100FB000E43207E53A0FE5FE0ED259102A46E47DE9 +:100FC000C6086F7CD606CDEF2DDA9210C35910AF4C +:100FD000320FE53A45E4FE1CD03A44E4FE17D03A1D +:100FE00045E46FC6033217E53A44E43C3216E5CDDA +:100FF000002D06FC0E08CD7F2EC0ED5313E515061F +:10100000F80E00CD7F2EC03E10324AE4141D1D1D87 +:101010001D1AE6F8FE0828172D2D2D2D7EE6FCFE64 +:101020001828077EE6F8FE1020053E11324AE43EFD +:1010300001324EE42140012211E5AF324BE43E0182 +:101040003207E53A0FE5FE0E300F2A46E47DC6086A +:101050006F7CC606CD312E38392107E57EB72807CB +:1010600036003E01CD4231CD0E12CD37123A0FE59A +:10107000FE14D203112110E536F33A0FE51F1F309D +:101080000236F22A11E511C000192211E5210FE5FF +:1010900034C93E003210E5AF324EE43207E5C921D3 +:1010A00049E4352802B7C9214AE4343A4AE4D6185B +:1010B0004F060021204C097E3249E4B720073E014B +:1010C0003249E437C921A84E09561E00CB2ACB1B52 +:1010D000CB2ACB1BCB2ACB1B2A42E4192242E42A7F +:1010E00042E4297C3C1F3245E429297C3246E4B79E +:1010F000C92149E435C03606214AE4347EE6FCB80D +:10110000C870C9AF324EE4320CE53D320BE5CDDD9F +:101110000CED5B13E53E04CDBE2F3E003210E52101 +:1011200018E506147EB728072323232310F6C936B3 +:10113000A023233A16E5775F233A17E577572A71FC +:10114000E5B7ED52C02271E53E013202E521E9E446 +:101150007EFD2158E4011800FD093D20FB34FD7798 +:1011600000FD7702FD7301FD730415FD7203FD722E +:10117000057B878787FD77077A878787FD7706FD59 +:10118000360901FD360CB0C93A51E4B720183A408F +:10119000E4FE803802ED44FE14D03A42E4FE80388A +:1011A00002ED44FE1ED03A44E42A45E4CD002D155C +:1011B0001AE6FCFE602020CD832FED5FFE3338045D +:1011C0003E08180AFE0D38043E0918023E0ACD7387 +:1011D000303E02CD4231C9FE70C021FCE435CD5C09 +:1011E0002F0E00141AFE0420020E04210DE53A0809 +:1011F000E5B72004360018067EFE033001347E81F8 +:10120000CD73303E133208E53E02CD4231C92A404B +:10121000E47DFE803007D6143001AF1806C61430C6 +:101220000224AF6F2240E4297C3C1F3244E4292988 +:101230007C3247E4C388113A52E4B7C02A42E47DC5 +:10124000FE803007D61E3001AF1806C61E300224BD +:10125000AF6F2242E4297C3C1F3245E429297C32CD +:1012600046E4C38811C7C7C7C7C7C7C7C7C7C7C76B +:10127000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7FE +:10128000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7EE +:10129000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7DE +:1012A000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7CE +:1012B000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7BE +:1012C000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7AE +:1012D000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C79E +:1012E000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C78E +:1012F000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C77E +:101300003AE9E432E8E4DD2158E4CD19131118007C +:10131000DD1921E8E43520F2C9216DE536003A02F5 +:10132000E5B728193AE8E4FE012012343A03E5B79C +:10133000280BDD7E0CFE202004DD360C40DD7E0E09 +:10134000B7C03AF5E4B72803DD3417DD7E0CB728C3 +:1013500032DD350CDD7E0CFE20DA2315DD6E07DD77 +:101360007E06CDF22EDD7E0CFEB0D0DD3509C0DD6F +:10137000360908DD340ADD7E0AE6FCFE14C8DD36D7 +:101380000A14C9DD7E14FE14200FCDF718D8061CF0 +:10139000CD661AD0DD361400C9DD7E14FE012012A0 +:1013A000CDC11BCDF718D80620CD661AD0DD361476 +:1013B00015C9DD7E15FE022019CDC11BCDF718D849 +:1013C0000628CD661AD0DD361500DD3409DD360F6E +:1013D00002C9DD7E15FE01200FCDF718D80624CDF9 +:1013E000661AD0DD361503C9DD7E06DD6E07CD9E9B +:1013F0002DDA7515DD7E04DD6E05CD002D06F80EA7 +:1014000010CD8D2ECA7515AF3287E5DD77147EE6D7 +:10141000FCFE18200C3E013287E5DD7E02B7CA755E +:1014200015DD7E05FE1D30291AE6F8FE1028221A69 +:10143000E6F8FE08281BDD7E16B728083CDDBE0551 +:10144000301C180D1AFE042015DD7E05DD771618F8 +:101450000D3E013287E5DD7E02FE80DA7515DD3650 +:101460001000CDC11BDD7E02C615DD7702300DDD1B +:1014700034033A87E5B72804AFDD7702DD6E02DD7D +:101480006603297C3C1FDD770529297CDD7706DD95 +:101490007E06DD6E07CDD32ECD391B060CCD2E1A60 +:1014A000DD7E04DD6E05CD002D247E25FE04203E6C +:1014B000DD7E0DB72819DD360D00EB06FC0E00CDE4 +:1014C0007F2E2004CD0E2FC921FCE435C9181F3A08 +:1014D0006DE5B728193A03E5B720133E013203E55D +:1014E000EB06FC0E00CD7F2E2003CD352FC9DD7E0F +:1014F00002B7C0151AFE04C03A87E5B7C8DD361634 +:1015000000DD360CC0DD361000DD360A103E05CD9C +:1015100042313A6DE5B7C0010001CDDB2F3E01320B +:1015200000E5C9B7283CFE1F200FDD361001DD366F +:101530000FFEDD3505DD3505C9FE183806DD7E0FE9 +:10154000FEFEC8DD361000DD3405DD3405DD7E0F1E +:10155000DD770BFEFE3804DD770CC9DD360A18CDC9 +:10156000761ADD360C01CDF718D80618CD661AD0DC +:10157000DD360C00C9DD361600DD361001DD7E0FCC +:10158000B7CA85173DCA29173DCA5D163DCA9A15C7 +:10159000DD6E07DD7E06CDF22EC9AF3287E5DD7E3A +:1015A00005FE012823DD7E04DD6E05CD002D06F845 +:1015B0000E10CD8D2E200B15151AE6F8FE082014FE +:1015C00018061AE6F8FE10C0DD7E023DFE7FD03E12 +:1015D000013287E5CDC11BDD7E04DD6E03CD002D1C +:1015E00024247EE6F8FE1020301AE6F8FE102029AA +:1015F000151AE6F8FE102821DD7E14FE15201ADDEE +:101600003514DD460ADD4E09C5DD360A1CCD761AD5 +:10161000C13041DD700ADD7109DD7E02D615DD774E +:1016200002300F3A87E5B72806AFDD77021803DDF1 +:101630003503DD6E02DD6603297C3C1FDD7705295D +:10164000297CDD7706CD391BCD7A1B0608CD2E1AF5 +:10165000DD361415DD7E06DD6E07C3D32EDD7E0676 +:10166000DD6E07CD9E2DD8AF3287E5DD7E05FE1DF0 +:101670003010DD7E04DD6E05CD002D1AE6F8FE0883 +:10168000200BDD7E02FE80D83E013287E57EE6FC3F +:10169000FE182017DD7E15FE032010DD3515DD3622 +:1016A0000A28CD761AD0DD360A0CC9CDC11BDD7EE5 +:1016B00004DD6E03CD002D1AE6F8FE102029151A60 +:1016C000E6F8FE102821DD7E14FE15281ADD3414FC +:1016D000DD460ADD4E09C5DD360A20CD761AC13059 +:1016E0003FDD700ADD7109DD7E02C615DD7702304F +:1016F0000DDD34033A87E5B72804AFDD7702DD6EF0 +:1017000002DD6603297C3C1FDD770529297CDD7716 +:1017100006CD391BCD7A1B0608CD2E1ADD361415E1 +:10172000DD7E06DD6E07C3D32EDD6E06DD7E07CDC2 +:10173000EF2DD8AF3287E5DD7E04B72816DD7E04B5 +:10174000DD6E05CD002D2B2B2B2B06F80E08CD8D35 +:101750002E200CDD7E003DFE7FD03E013287E53E2F +:1017600001DD770BCDEE1BCD4C18DD7E00D60EDDF6 +:101770007700300F3A87E5B72806AFDD770018030A +:10178000DD35011857DD6E06DD7E07CD312ED8AF71 +:101790003287E5DD7E04FE173016DD7E04DD6E0542 +:1017A000CD002D2323232306F80E08CD8D2E200BEC +:1017B000DD7E00FE80D83E013287E5AFDD770BCDC0 +:1017C000EE1BCD4C18DD7E00C60EDD7700300DDD42 +:1017D00034013A87E5B728ABAFDD7700DD6E00DD79 +:1017E0006601297C3C1FDD770429297CDD7707CD44 +:1017F000391BCD7A1BDD6E06DD7E0BB7DD7E07283B +:1018000005CDB92E1803CDB52EDD7E04DD6E05CDD8 +:10181000002DE6FCFE182019DD7E15B7200BDD3407 +:1018200015DD360A24CD761AD0DD361503060418E8 +:1018300018DD7E15FE03200BDD3515DD360A28CDBB +:10184000761AD0DD3615000600C32E1A3A6DE5B7BC +:1018500020073AFBE4B7C818053A6FE5B7C8DD7E44 +:1018600004DD6E05CD002DE6FCFE18C0F1DD6E0630 +:10187000DD7E0BB7DD7E072805CDB92E1803CDB56B +:101880002EDD7E0AE6FCFE2C2804DD360901DD355E +:1018900009C0DD340ADD7E0AE6FCFE2C2804DD36B4 +:1018A0000A2CCD191B21204C097EDD770921D04D52 +:1018B000097EB7C8878787875F3A87E557DD7E004F +:1018C000DDCB0B46280F93300ACB422803AF180319 +:1018D000DD3501180B833008DD3401CB422801AF20 +:1018E000DD7700DD6E00DD6601297C3C1FDD7704BD +:1018F00029297CDD7707C9DD7E0FFEFFC8E603CA14 +:10190000A6193DCAEA193D2859DD7E0CB7280FDD1E +:101910007E04DD6E05CD002DE6F8FE0837C8DDCB70 +:101920000F6E200ADD7E06DD6E07CDA22DD8DD46C6 +:101930000FCB782020DD7E02D620DD77023003DD5C +:101940003503DD6E02DD6603297C3C1FDD7705294A +:10195000297CDD7706DD7E06DD6E07CB70CCD32ECD +:10196000B7C9DDCB0F6E200ADD7E06DD6E07CD9E8A +:101970002DD8DD460FCB782020DD7E02C620DD7716 +:10198000023003DD3403DD6E02DD6603297C3C1F7B +:10199000DD770529297CDD7706DD7E06DD6E07CB48 +:1019A00070CCD32EB7C9DDCB0F6E200ADD6E06DDFD +:1019B0007E07CD312ED8DD460FCB782020DD7E008E +:1019C000C610DD77003003DD3401DD6E00DD660119 +:1019D000297C3C1FDD770429297CDD7707DD6E0635 +:1019E000DD7E07CB70CCB52EB7C9DDCB0F6E200ADC +:1019F000DD6E06DD7E07CDEF2DD8DD460FCB7820DE +:101A000020DD7E00D610DD77003003DD3501DD6E90 +:101A100000DD6601297C3C1FDD770429297CDD7708 +:101A200007DD6E06DD7E07CB70CCB92EB7C9DD357C +:101A300009C0DD360906DD340ADD7E0AFE03201208 +:101A40003ACDE55F1600215D1A197EB72804DD70D6 +:101A50000AC9DD7E0AE6FCB8C8DD700AC9000001CB +:101A6000010000010000DD3509C0DD340ADD7E0A19 +:101A7000E6FCB8C20D1BDD361000CD191B21204C31 +:101A8000097EDD7709B7CA0D1B21F84C097E57E6A0 +:101A9000032007DDCB0B46280114DD720F21D04D4A +:101AA000097EB72830878787871600DDCB0B46284D +:101AB00003ED44155FDD6E00DD660119DD7500DDA7 +:101AC0007401DD6E00DD6601297C3C1FDD77042991 +:101AD000297CDD770721A84E097EB7282F561E00E6 +:101AE000CB2ACB1BCB2ACB1BCB2ACB1BDD6E02DD3B +:101AF000660319DD7502DD7403DD6E02DD66032900 +:101B00007C3C1FDD770529297CDD7706C9DD350A98 +:101B1000DD3409DD360FFF37C93A6DE5B728083ADD +:101B2000CDE5E6073C18033ACDE5478780878787F0 +:101B3000DD860AD6184F0600C93A6DE5B7C0DD7ECE +:101B400000FE803802ED44FE0ED0DD7E02FE8038BD +:101B500002ED44FE15D0DD7E04DD6E05CD002D15B1 +:101B60001AE6FCFE70C0DD7E0DB7C03A68E5C6041B +:101B7000878787DD770DCD5C2FC9DD7E0DB7C8DD8A +:101B80007E0FFE02D0DD7E0AFE043803FE08D8DD9B +:101B90007E04DD6E05CD002D1506FC0E00CD7F2EDA +:101BA000C0DD350DC0DD7E0FFE00DD7E002006FEAF +:101BB00080300A1804FE803804CD0E2FC9DD340DA4 +:101BC000C9DD7E00FE803007D60E3001AF1808C692 +:101BD0000E3004DD3401AFDD77006FDD6601297C56 +:101BE0003C1FDD770429297CDD7707C3391BDD7EA7 +:101BF00002FE803007D6153001AF1808C615300434 +:101C0000DD3403AFDD77026FDD6603297C3C1FDD29 +:101C1000770529297CDD7706C3391BC7C7C7C7C726 +:101C2000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C744 +:101C3000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C734 +:101C4000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C724 +:101C5000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C714 +:101C6000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C704 +:101C7000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7F4 +:101C8000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7E4 +:101C9000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7D4 +:101CA000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C4 +:101CB000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7B4 +:101CC000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7A4 +:101CD000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C794 +:101CE000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C784 +:101CF000C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C774 +:101D00003AE9E432EAE4DD2158E4FD21EBE4DD7E4A +:101D100010B7281CDD6E04DD660522EFE4DD7E07CA +:101D200032F2E4CDFD1D47DD7E10B72803DD700FD4 +:101D3000111800DD1921EAE43520D33AE9E432EA4A +:101D4000E4DD2158E4DD7E04DD6E052C2CCDD5626A +:101D50007EE60DFE0D280A2101E57EFE39D0360013 +:101D6000C9111800DD1921EAE43520D92101E57EE9 +:101D7000FE38300234C9C0343E00329DE521B5E55D +:101D80007EBE28FDCD8D322129D736052B36001198 +:101D90002AD7012E00EDB021A9D736052B36001128 +:101DA000AAD7012E00EDB02129D836052B36001117 +:101DB0002AD8012E00EDB00E4721AAD711E51DCD7E +:101DC0002D303E1FCD42310E01CDCF2FCD03323EFF +:101DD000013289E5CD8906CDB9323E26CD42313E6C +:101DE00002329DE5C9414C4C20454E454D49455375 +:101DF00020415245205345414C45442E003A45E48C +:101E0000FDBE05C2B91EFD4604FD7E072147E4BEA6 +:101E1000380520543EFFC93A44E4B820033E00C9C7 +:101E20000478FD6E05CD002DE6FCFE1828E97EE65F +:101E3000F8FE1028E2247E25E6F8FE1028D9FD7E63 +:101E400005FE1D30D27EE6F8FE08286D247EE6F8F9 +:101E5000FE0828651AE6F8FE1028BC1AFE0428B70A +:101E6000E6F8FE0828B118513A44E4B820033E01D0 +:101E7000C90578FD6E05CD002DE6FCFE1828E97E2B +:101E8000E6F8FE1028E2247E25E6F8FE1028D9FDAB +:101E90007E05FE1D30D27EE6F8FE08281C247EE674 +:101EA000F8FE0828141AE6F8FE1028BC1AFE0428CA +:101EB000B7E6F8FE0828B118003EFF32EDE432EE36 +:101EC000E4FD7E0432EBE432ECE4CDE01ECD2B1FCA +:101ED000CD771FCD961FCDB91FCDF11F3AEDE4C9C7 +:101EE0003AEBE4B728443DFD6E05CD002D06F80E13 +:101EF00008CD8D2EC806F80E10CD8D2E28257EE635 +:101F0000FCFE18281EFD7E05FE1D30171AE6F8FEA1 +:101F10001028101AFE04280BE6F8FE08280521EB0D +:101F2000E435C921EBE4357E18B9C93AECE4FE1773 +:101F300030443CFD6E05CD002D06F80E08CD8D2EEB +:101F4000C806F80E10CD8D2E28257EE6FCFE18283A +:101F50001EFD7E05FE1D30171AE6F8FE1028101A29 +:101F6000FE04280BE6F8FE08280521ECE434C9211C +:101F7000ECE4347E18B8C9FD7E04CD2A20FDBE05F0 +:101F8000C832F3E4FD4E04CD3D2121EEE4BED0770E +:101F90003E0232EDE4C9FD7E04CDB620FDBE05C88B +:101FA000FD4E0432F4E4CD3D2121EEE447781800E3 +:101FB000BED0773E0332EDE4C921EBE47EFDBE04E2 +:101FC0003015CD2A20CDD81F3AEBE4CDB620CDD8A0 +:101FD0001F21EBE43418E5C9FDBE05C821EBE44E32 +:101FE000CD3D2121EEE4BED032EEE43E0132EDE4FF +:101FF000C921ECE4FD7E04BE30167ECD2A20CD1131 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-3n.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-3n.hex new file mode 100644 index 00000000..b7ef7de1 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-3n.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000003AD +:10005000000000000000000000000000000000F0B0 +:100060000300070503000001010203020100000074 +:10007000FC3E1EB63E1C60F0F0E0E02000E0000018 +:100080000000000000000000000001030F0E0B0F35 +:1000900000000000000000000000FCFC003C683490 +:1000A0003E7F6F07020307070E0F060000000000E7 +:1000B0000000C0E050FCFE0F07060000000000003A +:1000C00000000000000000000000000307070677A2 +:1000D000000000000000000000003C3CE0FEFAFCD4 +:1000E000FBDF0F0F010F0F1E383C1800000000004F +:1000F000F0E0E0C020F0F83C1C38000000000000F8 +:10010000000000000000000000000000070F1F1C9E +:10011000000000000000000000000000C0E0F6F653 +:100120001F1FC8DCFF771B3E2F13000000000000DC +:10013000FEFC3C78F0F0E040F0F838183818000089 +:10014000000000000000000000001F7FF8F1DBF954 +:1001500000000000000000000000808000C040801F +:10016000770F7FF9EF7F1E1C38381C180000000045 +:1001700018F8F0F8D880000000000000000000002F +:10018000000000000000000000000000001F1F0031 +:1001900000000000000000000000000000C0E07847 +:1001A0001E0B1620700F07010F1F1C1E0F060000EC +:1001B0003868783CFEF6E070F8A00000000000000F +:1001C000000000000000000000000000000F0F0011 +:1001D00000000000000000000000000000E0F03C13 +:1001E0000F050B103837030E1F050000000000003C +:1001F0001CB43C187CFEF783F0F83878F0600000FF +:100200000000000000000000000000000000001FCF +:10021000000000000000000000000000000000C01E +:100220001F001E0B1600307F67040F1F3C180000D4 +:10023000E07838687830F8FCEE90F0E0F078000074 +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:100260000000030103010000000000000000000086 +:1002700000000090F0F8FC78300000000000000062 +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A0000000010301030604040000000000000038 +:1002B0000000A0F0F0E0C0400000000000000000DE +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E0000000040603070F070600000000000000DE +:1002F00000002070E0E0F0E0C0000000000000001E +:1003000000000000000000000000133F1E3878705D +:1003100000000000000000000000C080000000009D +:10032000381C000000000000000000000000000079 +:1003300000000000000000000000000000000000BD +:100340000000000000000000000000000C07030790 +:10035000000000000000000000000000E0C0C0E05D +:100360000703010000000000000000000000000082 +:10037000C084C00000000000000000000000000079 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A0000000020203010301010000000000000040 +:1003B00000002060F0E0F0C08000000000000000BD +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E0000000020203010301000000000000000001 +:1003F00000002060F0E0F0E0C0000000000000001D +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000020100000100000000C8 +:100430000000000000C0602020709000000000005C +:10044000000000000000000000000000070F1F1F58 +:10045000000000000000000000000002E2F0FCFECE +:100460005E0C47CF8F67000707033038300000006D +:100470007A30E0F0F0E000E0E4CC1800000000008A +:100480000000000000000000000000007FFF7F7FF0 +:10049000000000000000000000000000F0F8FCFC7C +:1004A0003F1F0001030311DC09C10C0E0600000010 +:1004B000FC980038F0E0F105F7E2F0003038180061 +:1004C0001E3F7F7E3C3063773F1F1F07030F1F1FB8 +:1004D0003C4600231E0CC6EEFCF8F8E0C0F0F8FC29 +:1004E0003F3F1F070D06020204000000000000004D +:1004F000FEFAFCF0F0604040200000000000000028 +:100500001E2300463C0C1B1F0F1F1F07030F1F1F3E +:100510003C7E7F3F1E06C3F7FEFCF8E0C0F0F8FC0F +:100520001F1D0F070502020204000000000000006A +:10053000FCFCFCF8F0C080804000000000000000DF +:10054000000000000000000804040C1F1F7FBFFF14 +:1005500000000000000000408080C060C0F0D8F8BB +:100560007F3F1F070F1F3F3F1F3F3C180C060F3FE9 +:10057000F0E0C0B0F0F0F8FEF1E1623C0000008075 +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A00001070F0F1F1F1F0E0C0000C1E363214046 +:1005B000C0F0F8F8FCFCFC7830000083870602816C +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000008000000000009B +:1005E00001070F0F1F1F1F0E0C0000C1E363214006 +:1005F000C0F0F8F8FCFCFC7830000083870602812C +:1006000000000000000000000300020000000000E5 +:1006100000000000000000000080800000000000DA +:1006200001070F0F1F1F1F1301000030381C0408A3 +:10063000C0F0F8F8FCFCFCCC840000181830201046 +:1006400000000000000000000300020000000000A5 +:10065000000000000000000000808000000000009A +:1006600001070F0F1F1F1F0E0C0000C1E363214085 +:10067000C0F0F8F8FCFCFC783000008387060281AB +:10068000000000000000000000000000000000006A +:1006900000000000000000000000183C3C7C7E7E52 +:1006A000000000010103030307070707030301001C +:1006B0007EFCFCFCB8F8F0F0E0E0E0E0C0C08000B8 +:1006C0000000000000000000000000000003070719 +:1006D00000000000000000000000000000E0F0F05A +:1006E0000F1F1F1F0F03000000000000000000008C +:1006F000F8FCFCFCF82000000000000000000000F6 +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:10072000061F3F3F3F3F0F0707000000000000008B +:1007300040F0F8F8F8F8F0E0C00000000000000019 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:1007600008102060000000000000000000000000F1 +:100770000000000600000000000000000000000073 +:100780000000000000000000000000000000006009 +:100790000000000000000000000000001008040637 +:1007A0000000000000000000000000000000000049 +:1007B0000100000000000000000000000000000038 +:1007C000000000000000000000030F1F1F0F0701C2 +:1007D00000000000000000000080E0F0F8F8FCFCE1 +:1007E0000000000000000000000000000000000009 +:1007F000FCFE767E7E7E7E7E7E7E7E7E3C3C18008B +:1008000000000000000000000000000000000003E5 +:1008100000000000000000000000000000000000D8 +:1008200007070F0F0F0F070607030303030100005D +:1008300080C0C0C0C0E0E0E0F0F0F0F0E0E0C00058 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000FFFFFFFFFFFFFF000000000000006E +:100990000000FFFFFFFFFFFFFF000000000000005E +:1009A000000000000080C0E0F0783C1E0F0703014B +:1009B0000000000000000000000000000080C0E017 +:1009C0000000FFFFFFFFFFFFFF7F3F1F0F07030137 +:1009D00000FF7FBFDFEFF7FBFDFEFFFFFFFFFFFF25 +:1009E0000000000000000000000000000000000007 +:1009F000FF7F3F1F0F070301000000000000000001 +:100A000000FFFFFFFFFFFFFFFFFF7FBFDFEFF7FBF1 +:100A100000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF4 +:100A2000FDFEFFFFFFFFFFFFFF7F3F1F0F070301DB +:100A3000FEFE7EBEDEEEF6FAFCFCFCFCFCFCFCFCE2 +:100A400000000000000000000000000000000000A6 +:100A5000F0783C1E0F0703010000000000000000BA +:100A60000000000000000000000000000000000086 +:100A70000000000000000000000000000000000076 +:100A8000000000000080C0E0E0E0E0E0E0E0E0E046 +:100A90000000000000000000000000000000000056 +:100AA000E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E046 +:100AB0000000000000000000000000000000000036 +:100AC000000000000000FFFFFFFFFFFFFFFFFFFF30 +:100AD00000000000000000F0FFFFFFFFFDFFE3EF5C +:100AE000FFFFFFFFFEFEFFFFFFFFFFFCF000000027 +:100AF000DFDFBF7F7F79E7FFFFFF1F0703010100F3 +:100B00000000000000000000C0FFFFFFFFFFFEF834 +:100B100000000000000000007FFFFFFFF0800000E9 +:100B20000080C0F0FEFFFFFFFFFFF00000000000AC +:100B3000000000000080E3FFF9000000000000005A +:100B400000000000000018F8FCFDFFE000000000BD +:100B500000000000003E7FFFFCF0E00000071F3FA8 +:100B60000001010F3F7FFFFFBF07000000000000F2 +:100B7000FFFFFFFFFFFFFFFFFFFC0C000000030F64 +:100B8000000000000000C0FF1F030000FFFFFFFF88 +:100B900000000000000000F8FFFFCF00FFFFFFFF94 +:100BA000FFFFFFFFFFFEF8E0000103071F7FFFFFCD +:100BB000FFFFFFF8C00000017BFFFFFFFFFFFFFF0B +:100BC000000000000000000FFFFFFF00FFFFFFFF1D +:100BD000000000000000C0FFFFFFFF3F00E0E0E377 +:100BE000FFFF1F3F7F7FFFFFFFFFFFFFFFFFFFFFB5 +:100BF000FFDFCFCFE7F3F0E0CFFFFFFFFFFFFFFF07 +:100C0000000000000000FFFFFFFEFFFF001F7FFF4E +:100C100000000000001FFFFFFF01C0E000FFFFFF1A +:100C2000FFFFFFFFFF00033FFFFFFFFEF9E7FFFFAE +:100C3000FFFFFCE00000FEFFFFFFFF3EFCF3FFFFB5 +:100C4000000000033FFFFFFFFFFCF80000FEFFFF76 +:100C5000000000F0FFFFFFFFFFFF0000000080FF2B +:100C6000FF3F03030100000387C0C0000000000035 +:100C7000FFFFFFFFFFF0C080000000000000000049 +:100C8000000000FFF9FEFFFFF0000000000000F38D +:100C90000000FFFFFF0FF1000000000F3F7FFFFF8C +:100CA000FFFFFFF000000000000000000000000057 +:100CB000FFFC000000000103030F1F1F3F7F7F7F29 +:100CC0000001FFFFFFFFFF1F00007FFFFFFFFFFF8F +:100CD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE15 +:100CE000E1030F1F7FFFFFFFFFFFFFFFFFFFFFFF7E +:100CF000FEFCF8F8F0F0F0F0F0F0FEFFFFFFFFFF71 +:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FF3 +:100D1000FFFFFFFFFFFFFFFDB93141E0F0F0F8F802 +:100D20005F1F0F0F07010000031F3FFFFFFFFFFFC3 +:100D3000FCFCFDF9F1830371FCFCFEFFFFFFFFFFEC +:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +:100D5000FFFFFFFFBFFFFFFFFDF1F8FCFEFFFEC03E +:100D6000FFFFFFFFFFFFFFFFFF3F0F8080E0F8FF67 +:100D700000FCFFFFFFFFFFFFFFFFFF3F7F0F030FA1 +:100D8000C0C0C0C0E0E0E1E7FFFFFFFFFFFF3F1D85 +:100D9000FF7F3F3F1F1FCFEFFFFFFFFFFFF1F3C7B5 +:100DA000000000C0C0E0F0FCFEFEFEFCFCFCF8C051 +:100DB0000F0F0F07070703030301000000000000E7 +:100DC00000000000000000000000000103070F1FEA +:100DD00000000000000000000F1F7FFFFFFFFFFF6B +:100DE0001F3F7FFFFFFFFFFFFFFFFFFF1F0FC7C377 +:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:100E000000FFFFFFFFFFFFFFFFFEFDFBF7EFDF30FF +:100E100000FEFDFBF7EFDFBF7FFFFFFFFFFFFF00DF +:100E2000FFFFFFFFFFFFFF000000000000000000C9 +:100E3000FFFFFFFFFFFFFF000000000000000000B9 +:100E4000E0FFFFFFFFFFFFFFFFFFFFFFFFFFFF00D0 +:100E5000000080E0F8FEFFFFFFFFFFFFFFFFFF0045 +:100E6000FFFFFFFFFFFFFF00000000000000000089 +:100E7000FFFFFFFFFFFFFF00000000000000000079 +:100E800001010101010181E1F9FDFBF7EFDFBF7F06 +:100E9000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFC008E +:100EA000FEFCF8F0E0C08000000000000000000040 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED00000000000000000000103070C18337777C2 +:100EE0000000000000000000000000000000000002 +:100EF000773B3F1F1F0F0F0F1F1F3C3C387878F0C8 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000307C7 +:100F200000000000000000000000000000000000C1 +:100F300004040E1F3F3F7F7F3F0F07070707071F70 +:100F400000000000000000000000000000000000A1 +:100F5000000000000000000000000001070E1C3926 +:100F60000000000000000000000000000000000081 +:100F7000333331180F070F1E3C3E0F0301010000F1 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000030747 +:100FA0000000000000000000000000000000000041 +:100FB00007060E1C38716363676773323038183F59 +:100FC0000000000000000000000000000000000021 +:100FD00000000000000000000F3E7C78F8F1E3E61E +:100FE0000000000000000000000000000000000001 +:100FF000FCFC7E3F3F1F0F3F7FF0F0F0F8FC3CFC15 +:1010000038050F1F0F1D0F07030001010000010726 +:1010100007EEFCFCEEFCFFFFFFFFFF9FC160E1F766 +:10102000E0100000000080C0E0E0C08080C0E0F080 +:1010300000000000000000000000000000000000B0 +:1010400038053F1F0F1F0F07070D3C6643231E0087 +:1010500007EEFCFCEEFCFFFFFFFFFF6743231E00D3 +:10106000E0100000000080C0E0E0C0800000000050 +:101070000000000000000000000000000000000070 +:10108000700B183F1F3F1F0F0700000000000000FB +:101090000FDC78F8DCF8FFFFFFFF7F6F3F3F3F1E5C +:1010A000C020000000000080C0C080DEFFFF7E3C4A +:1010B0000000000000000000000000000000000030 +:1010C00000000000003C46868C7D190D07030001DE +:1010D000788C00463C180C7CFEFFFFFEFC78FEFF7F +:1010E0003F7F6F3F0F1B0C0404080000000000004E +:1010F000F8FCF4F8E0E0C080804000000000000050 +:101100000000000000003C7EFEFD7D07060001039C +:1011100078FCFE7E3C06027BFFFEFEFCFC78FEFFB8 +:101120003F3F3B1F0F0B05050508000000000000B6 +:10113000F8F8F8F8F0E080000080000000000000FF +:10114000000103000000000000000000000000009B +:1011500073FFFFDF1F0F03070F3F7F6330183CFE55 +:10116000CEFFFFFBF8F0C0F6FEFCFEFF7F3E000066 +:101170000080C0000000000000000000000000002F +:10118000601F7FFF7FFF7F3F1F0F1F190C061E7F11 +:101190001E71E0E060C0F8FCFEFEF8F0180C1E7F47 +:1011A000601F7FFF7FEF4703010103151C061E7FB1 +:1011B0001E71E0E060C0F8FCFEFEF8F0180C1E7F27 +:1011C000000000000000000000000000000000001F +:1011D000000000387D75302A00000000000000008B +:1011E000000000E0F070E0000000000000000000DF +:1011F00000000000000000000000000000000000EF +:1012000000000307070300000000000000000000CA +:1012100000008EDF570EA00000000000000000005C +:1012200000000000000000000000000000000000BE +:1012300000000000000000000000000000000000AE +:10124000000000010100000100010000000000009A +:101250000000E3F7D5C3A800800080400000000034 +:10126000000080C0C08000000000000000000000FE +:10127000000000000000000000000000000000006E +:10128000000000000000000201000000000000005B +:10129000000000000304387D7538020000000000E3 +:1012A000000000000000000000000000000000003E +:1012B000000E0F07060800000000000000000000FC +:1012C000000000000000000201000000000000001B +:1012D000200020000204387D753802000000000064 +:1012E00000000000000000000000000000000000FE +:1012F000000E0F07060800000000000000000000BC +:101300000071FBEA611400000040200000000000B2 +:1013100000C0E0E0C000000000000000000000008D +:101320000071FBCA611400000040200000000000B2 +:1013300000C0E060C00000000000000000000000ED +:101340000000000001010001010000000000000099 +:10135000000036FFFFFFFFFFF1E00000000000008B +:1013600000000080C0C080C0C080000000000000FD +:10137000000000000000000000000000000000006D +:10138000000000000000000000000000000000005D +:101390000000000103010307070200000000000035 +:1013A000000000FEFFFFFFFF1F0F0E000000000007 +:1013B00000000000008080800000000000000000AD +:1013C0000000000101000101000000000000000019 +:1013D0000036FFFFFFFFFFF1E0000000000000000B +:1013E000000080C0C080C0C080000000000000007D +:1013F00000000000000000000000000000000000ED +:101400000000061F3F3F1F3F3C1800000000000087 +:101410000000C0F0F8F8F0F8F870000000000000DC +:10142000061F3F3F1F1F1F3F3C0C00000000000035 +:10143000C0F0F8F8F0F0F0F8F83800000000000014 +:1014400000000000000000030F07070F1F1F0F031D +:1014500000000000000000E0F0FCFCFCFCFCE0C030 +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:1014800000000000000000070F7F7F7F7F7F0F07B5 +:101490000000000000000080E0F0F0E0C0C0E0804C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000001F3F7F7F7F3E3C0C00000000000000BB +:1014D00000E0F0E0F0F878302000000000000000AC +:1014E00000071F3F3F7F7F7E3E3C1800000000004A +:1014F00000C0F0F8DCFCFEFE7E7E7E7E7E3C1800A6 +:1015000001010101010101010101010101010101CB +:10151000FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC0B +:1015200000000000000000000000000000000000BB +:101530000003377FF9F9FDF7717038381838707C7F +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:101580000000000000000000000004070701000147 +:1015900000000000000000000060C0E0C080C0C08B +:1015A000000000000000000000000000010000003A +:1015B000000000000000000000000000C00000006B +:1015C0000000000000000000000006030F070706EF +:1015D0000000000000000000000040C080C060204B +:1015E00000000000000000000000000001000000FA +:1015F00000000000000000000000000000000000EB +:101600000000000000000000000507030F130103A5 +:1016100000000000101020008080C0E0C08080002A +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:101640000000000000000004060F1F1F0F1F1E0CEB +:1016500000000000000000008080000080C040000A +:101660000000000000000000010000000000000079 +:1016700000000000000000008000000000000000EA +:10168000000000000000000000000106010004034B +:1016900000000000000000001830F0F8E0301000FA +:1016A000000000000000000000000D1100040C0606 +:1016B0000000000000000000001830F8F03020406A +:1016C000003F7F3F3F1F0F00000101000ACE04C012 +:1016D00000F8FCFEFEFECC009CF8F0F902F3E1708D +:1016E0000000000000000000000000000C0E0C00D4 +:1016F0000000000000000000020200000C0E0600C6 +:101700000000000000000000000000000103FFFFD7 +:10171000000000000101010307031D7EFFFFFFFF22 +:101720000000000000000000000000000000003F7A +:10173000000000000000000000000000000007FFA3 +:1017400000003F7F3F3F1F0F000101000A0EC40051 +:101750000000F8FCFEFEFECC9CF8F0F802E3F1601D +:101760000000000000000000000000000000000079 +:10177000000000000000000002020000C0E0600065 +:10178000000000000000071F3F7F7F7F3E3C1800E5 +:10179000000000000000F8FEFFFBFF1F0F0F07070F +:1017A0000000000000000000070707070303010016 +:1017B0000080C0C0C0E0E0E0E0E0E0E0C0C0800049 +:1017C0000000000000000000010307000703010003 +:1017D000000000000000000080C0E000E0C08000C9 +:1017E00000000103070F1F1F1F1F1F0F070301002A +:1017F000000080C0C0E0C0808080C0E0C0C0800029 +:101800001F1F001E0B1600001F3F700F1F1C08003B +:10181000C0E07838687830F8FCEC90F0E0F07800C0 +:101820000F0F03111B130103073F3A0F1F1C080082 +:10183000E0F0FCE47CFCC898FCEC90F0E0F0780070 +:101840000003071E3C3E1E1C0F07070A1F5F2E0EDB +:1018500000F8F8017BD66E0408F0E040C0C08000BC +:10186000000000000000000007030000000000006E +:1018700000000000000000008000000000000000E8 +:1018800000030F3F3E3B1F1E0C070F143F5FFE7807 +:1018900000F0F80C3C7C3838F0E0E0C0800000003C +:1018A000000000000000000007030000000000002E +:1018B00000000000000000008000000000000000A8 +:1018C00000000000030300030102000000010707FD +:1018D00000000000F8FC0FC76DCF0670FCFCA8F0FC +:1018E0000000000000000000030C000000000000E9 +:1018F0000000000000000000FCDC387078300000C0 +:101900001F1F001E0B1660F0DF070303020E00000E +:10191000C0E07838687830E0F0E0D8F8F0707838D7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000000000000000000A7 +:101940000F0F001C160F1F3D330307070300000095 +:10195000C0F0F878CB7FFFFFCE87078E0000000035 +:101960000000000000C0C0000000000000000000F7 +:101970000000000000000000000000000000000067 +:101980000001030307070703030000607131608152 +:1019900070FCFEFEFFFFFF9E0C0000C1C1808102B3 +:1019A000000000000000000000000080C0C08000B7 +:1019B0000000000000000000000000000000000027 +:1019C00001070F0F1F1F1F1301000030381C0408F0 +:1019D000C0F0F8F8FCFCFCCC840000181830201093 +:1019E00001070F0F1F1F1F0E0C0000C1E3632140F2 +:1019F000C0F0F8F8FCFCFC78300000838706028118 +:101A00001C78F0F03913110303C6E2606000643CF7 +:101A1000381E0F0F9CC888C0C06347060600263CCE +:101A2000000001070F0F03010160706060004C7837 +:101A30000000C3810000993C183C3C662400000073 +:101A4000000080E0F0F0C08080060E060600321E26 +:101A50000000000000000000000000000000000086 +:101A60001C78F0F03913110303C7E3616301643C90 +:101A7000381E0F0F9CC888C0C0E3C786C680263CAE +:101A80001C78F0F03913110303C6E2606000643C77 +:101A9000381E0F0F9CCB8FC6C660663C000000004E +:101AA00000784C006061774F0F03010100000000D7 +:101AB0000000000000C3810000993C183C3C6624F3 +:101AC000001E32000686EEF2F0C0808000000000AA +:101AD0000000000000000000000000000000000006 +:101AE0003C64006060FCF8F0F03913110303060257 +:101AF0003C260006063F1F0F0F9CC888C0C06040F0 +:101B0000000000001C78F0F039D3F1636306663CF6 +:101B100000000000381E0F0F9CCB8FC6C660663CCD +:101B2000003C64003030381000000000000000006D +:101B3000000000001C78F0F03913110303060200C6 +:101B400000000000381E0F0F9CC888C0C060400015 +:101B5000003C26000C0C1C080000000000000000E7 +:101B600000000000000C1C3810004C780000000041 +:101B70001C78F0F039131103030602000000000086 +:101B8000381E0F0F9CC888C0C060400000000000D5 +:101B9000000000000030381C0800321E0000000069 +:101BA00000010307070707070607070707030100E8 +:101BB0000080C0E0E0E0E0E0E0E0E0E0E0C08000E5 +:101BC00000000000030F1F3B3F7F7E7E7E3C18001D +:101BD000000000E0F8FCFCF8F0000000000000004D +:101BE0000000000000030F1F3F7F7F7E3E3C180077 +:101BF0000000000000FCFFBFFFFF0F07070301000C +:101C00000000000000000080C0E0E0E0C0C08000F4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C400000007FFF7F7F3F3F280018301900010907 +:101C50000000F0F8FCFCFC9800F87CFCFA03F9F8B2 +:101C60000000000000000000003318000000000029 +:101C7000000000000002020000C00C1C0C0000006C +:101C800000007FFF7F7F3F1F000000000BCE05C0DC +:101C90000000F0F8FCFCFC9800C87CFCF800F8F9A7 +:101CA000000000000000000000013038300000009B +:101CB000000000000000000000CC18000000000040 +:101CC0000080800000000000000000003038180094 +:101CD0000000000000000000000000003070300034 +:101CE000A0A00F1FBFFF7F190C1F3F1F001F0F0772 +:101CF0005050FEFFFEFEFCF880C0C08000808000D7 +:101D0000008080000000000000000000181D04009A +:101D100000000000000000000000000040C0400083 +:101D2000A0A0071FBFFF7F190C1F3F1F001F070345 +:101D30005050FEFFFEFEFCF880C0C0800080800096 +:101D40000080800000000000000000000307020087 +:101D50000000000000000000000000000080000003 +:101D6000A0A00F1FBFFF7F190C1F3F1F001F1900EE +:101D70005050FEFFFEFEFCF880C0C0800080800056 +:101D8000008080000000000000000000101C08001F +:101D900000000000000000000000000060E0800083 +:101DA000A0A00F1FBFFF7F190C1F3F1F001F1F0E9A +:101DB0005050FEFFFEFEFCF880C0C0800080000096 +:101DC0003F7F3A351F0F000001010001001111088B +:101DD000F8FCFE7EFECC009CF8F0F805FFDAC09817 +:101DE0003F7F353A1F0F000001010001001111086B +:101DF000F8FC7EFEFECC009CF8F0F805FFC2D8800F +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E4000FFFFF7FFFFFFFFFFEFDFFFFFFFFF99F14E +:101E5000FFFFFFFFFFFBFFFFFFBFEFFFFFBF180705 +:101E6000FFFFFFFFFFBFFFFFFFFDFFFFDFFD1801CB +:101E7000FFFDFFFFFFEFFFFFFFFFDFFFFFFF999871 +:101E8000FFFFFFFFFFFFFFFFFFFF3F1F1F0F0F07BA +:101E9000FFFFFFFFFFFFFFFFFEF8E0E0E0E0E0F004 +:101EA000FFFFFFFFFFFFFF3F0F07070303030101D2 +:101EB000FFFFFFFFFFFDF8F8F0C0808080C0C0C0CA +:101EC000FF9F0F0F07070200000000000000000046 +:101ED000FFFFFFF4E0C0C080000000000000000031 +:101EE000FF7F230000000000000000000000000051 +:101EF000FFFFFEE000000000000000000000000006 +:101F0000000000000000000000718A0A122242F95D +:101F10000000000000000000008C52525252528C0F +:101F200000000000000000000011325292FA12116D +:101F30000000000000000000008C52525252528CEF +:101F40000000000000000000007942720A0A4A31D5 +:101F50000000000000000000008C52525252528CCF +:101F6000000000000000000000314282F28A8A7105 +:101F70000000000000000000008C52525252528CAF +:101F8000000000000000000000718A8A728A8A71D5 +:101F90000000000000000000008C52525252528C8F +:101FA000000000000000000000314A4A4A4A4A315D +:101FB0000000000000000000008C52525252528C6F +:101FC0000000000000000000000000000000000011 +:101FD00000000000000000000002060202020207EA +:101FE00000000000000000000000000000000000F1 +:101FF0000000000000000000000E11010204081F94 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4c.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4c.hex new file mode 100644 index 00000000..1c61bb52 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4c.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:100050000000000000000000000000000000007030 +:10006000000007070F070301010303030100010359 +:100070007C3E1EFEFEFCA010900020E0C0E0E0E010 +:100080000000000000000000000001030F0E0F0F31 +:10009000000000000000000000C08080003CFCFC6C +:1000A00007030177630307070E0F0703070000002C +:1000B000FCF8C0E0F0FCFE0F070E9C8E060000006E +:1000C0000000000000000000000001030707070710 +:1000D000000000000000000000C0E0C0808ECECF15 +:1000E0000307EFCF070F0F1E383C1E0E1C00000049 +:1000F0008E1CA0C0E0F0F83C1C387078380000007E +:10010000000000000000000000000000070F1F1F9B +:10011000000000000000000000000000CCFCF8F02F +:100120003F7F2F0F07071F3F2F131E3E00000000C9 +:10013000F0F0E0C0E0F0E0E0F0F83818387870381F +:10014000000000000000000000001C7CF8F1FFFF30 +:1001500000000000000000000000000000C0C0E03F +:100160007E3E7F7F3F1F1E1C38381C1E0E1C180051 +:10017000C0067FFFDE8C00000000000000000000D1 +:10018000000000000000000000000000000000006F +:1001900000000000000000000000000000C0E07847 +:1001A0001E1F1F1F0FE7C7070F1F1C1E0F07030788 +:1001B00038F8F8E0C080E7F3F8BC3C3800808000F5 +:1001C000000000000000000000000000000000002F +:1001D0000000000000000000000000000060703C13 +:1001E0000F0F0F0F0703736F1F3D3C1C0001010031 +:1001F0001CFCFCF8E0C0F0E0F7FB3878F0E0C0E071 +:1002000000000000000000000000000000000000EE +:10021000000000000000000000000000000000C01E +:1002200000001E1F1F1F0F0707E7CF1F3C183C7C55 +:10023000E07838F8F8F0C080E0F7F3E0F0783C7C44 +:100240000000000000000000000100050F071F0C67 +:100250000000000000000000C0C0D4FEFFFEFBF163 +:100260001C0E1C3E346070210307060303070600C2 +:10027000F8FFFE6A00000086CE8703068E8F03001B +:10028000000000000000000060E06B3F3F3F1F3FA8 +:10029000000000000000000003AFFFFEFCF6E2F0EB +:1002A0001F0F0200006071FBCB073E381C0C0000E2 +:1002B000FEFC5400000000808000000000000000F0 +:1002C00000000000000000000000051F3F7F3F7F8E +:1002D0000000000000000000000040FCFEFEFEECFC +:1002E0003F7FDBF960183038180C1E3E000000001C +:1002F000FCF8D0800000001038383C1C3870781CA6 +:1003000000050F3F7F3F79397C1F0C0061C7870FC5 +:100310000040F0F8F0F0E0F0F8FC3870FBDF8E0CF5 +:1003200046603838180C0E070F0C00000000000063 +:1003300000000000000000000000000000000000BD +:1003400000000000000A3F7F3F3F1E3E70F87C70B7 +:10035000000000000080C0F0F8F07870183C1F0327 +:10036000C0C46EEE5C180C0C07070E0C00000000F9 +:10037000367A3C1C1830787C000000000000000039 +:100380000000000000000000000A1F3F1F37230785 +:1003900000000000000000000080E8FCF8FECCCE69 +:1003A0003F3F7D6DC0E04C1EDEF870300000000065 +:1003B000DCEEDF9B070E0638783C1C38F0E070302E +:1003C0000000000000000000000A1F3F1F37230745 +:1003D00000000000000000000080E8FCF8FECCCE29 +:1003E0003F3F7D6DC0E0441E3F381C0E3E3800008C +:1003F000DCEEDF9B070E06183C3E0E1C383E0E005E +:10040000000000000000000000000000020F1F0FAD +:10041000000000000000000000000000A0F0FCFE52 +:100420000F070F1F3F1F0B01000B1F0C01000003E4 +:10043000FC9E9C3EF81080C0C08060C080C0E0E0A0 +:10044000000000000000000000000000070F1F1F58 +:10045000000000000000000000000000E0F0F8F8DC +:100460001F0F1F3F1F0703070F1F0C000000000096 +:10047000F8F8FCF8F0E0C0F8F8F000000000000028 +:100480000000000000000000000000007FFF60602E +:10049000000000000000000000000000F0F8FCFC7C +:1004A0003F1F0001070F07000307030000000000C3 +:1004B000FCF8F0F8FCFEFCF0C0E0C41E0C000000EC +:1004C0000000000000000307030301030103010013 +:1004D000000000000000C0E0F0F0F0E0C0F0F0F834 +:1004E0000000001834383C1C080000000000000028 +:1004F000F87020083C5C3C38100000000000000050 +:1005000000000000000003070000000000000000E1 +:10051000000000000000C0F06000000040F0383C27 +:10052000000000183D3C3C1C0800000000000000DA +:100530001C1C080000E060400000000000000000FB +:1005400000000000000000103878747820081C3E7D +:1005500000000000000000207078385830000000D3 +:100560003E1F1F070F1E3F3F1F0F0000000000002F +:100570000000800000202000C0800000000000007B +:10058000000000000000000000000000000000006B +:1005900000000000000000000000000000800000DB +:1005A00001000000111F1F0E0C657D380C040408AB +:1005B000C0808080C4FCFC7830B3FF746060201081 +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000080808000009B +:1005E00001000000111F1F0E0C657D380C0404086B +:1005F000C0808080C4FCFC7830B3FF746060201041 +:1006000000000000000000000000000000000000EA +:10061000000000000000000000000080808000005A +:10062000010204040E1F1F1321397F4F0361402173 +:10063000C020101038FCFCCC86B6FC600486820119 +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000080808000001A +:1006600001000000111F1F0E0C657D380C040408EA +:10067000C0808080C4FCFC7830B3FF7460602010C0 +:10068000000000000000000000000000000000006A +:10069000000000000000000000FF7E3C3C0C707E6B +:1006A0000000000000000303070707000303070F13 +:1006B0007EFC1C00000000C0E0E0E000C0C0E0F0F4 +:1006C000000000000000000090900060F043070769 +:1006D0000000000000000000090900060FE4F0F02F +:1006E0000F1F1F1F0F030000010300000404000080 +:1006F000F8FCFCFCF820000080C080008080000036 +:1007000000000000000000000202000307030000D8 +:1007100000000000000000004040000080000000D9 +:10072000061F3F3F3F3F0F070760F040004848006B +:1007300040F0F8F8F8F8F0E0C0020F0600242400BA +:100740000000000000000000000000000000001C8D +:100750000000000000000000000000381C3C0C0EEF +:10076000302F1F1F67F0E0400000183E000000001F +:1007700006F7FBF9E70F0E0400000000387C7C3818 +:100780000000000000000054383C387060EFDF9F2C +:100790000000000000000000002A1C3C0CF6FAF8E3 +:1007A000E7F07020000000001C3E3E1C000000002E +:1007B000E60F07020000187C0000000000000000A7 +:1007C000000000000000000020313D3D3B3B332194 +:1007D00000000000000000000080E0F0F8F8FCF0ED +:1007E0000000000000000000000000000000000009 +:1007F000C000000000007E7E7E7E7E003C3C7EFFCE +:1008000000000000000000000000000000001F0FBA +:100810000000000000000000000000000000E0C038 +:100820000706010F0F0E000000030303000103077A +:100830008000C0C0C000000070F0F08060E0F0F800 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:1009800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:1009900000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:1009C00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +:1009D000000080C0E0F0F8FCFEFFFFFFFFFFFFFF1C +:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:100A00000000000000000000000080C0E0F0F8FCE2 +:100A100000000000000000000000000000000000D6 +:100A2000FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:100A3000000080C0E0F0F8FCFEFEFEFEFEFEFEFEC2 +:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:100A5000FFFFFFFFFFFFFFFFFFFDFFFFFFFFFDFFAA +:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:100A7000FFFDFFFFFFFFFDFFFFFDFFFFFFFFFDFF8E +:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:100AC000000000000000FFFFFFFFFFFFFFFFFFF03F +:100AD00000000000000000F0FFFFFFFFFDFFE30F3C +:100AE0000000000000000100000000000000000005 +:100AF0001F1F3F7F7F78E000000000000000000023 +:100B00000000000000000000C0FEF8F0C1C70F7F29 +:100B100000000000000000007E78077FFFFFFFFF5D +:100B20000F8FCFFFFF7F3F1F00000FFFFFFFFFFF73 +:100B3000FFFFFFFFFFFFFF0301F0F0E1C3C7CFCFCF +:100B400000000000000018E00001FFFFEFEFEFEFF2 +:100B500000000000003E7FFFFFFFE0FFFFFFFFFF00 +:100B6000F7FEFCF0C080F0FFFFFFFFFFFFFFFFFF7D +:100B7000FF7F1F00000000FFFFFFFFFFFFFFFCF0F3 +:100B8000000000000000C0FFFFFF3FFFFFFFFCFF71 +:100B900000000000000000F8FFFCF0F0DF3FFFFF66 +:100BA000FFFFFFFF1F1D7FFFFFFEFCF8E08000003E +:100BB000FFFFFFFCFCF0F0E0800000000000000000 +:100BC000000000000000000FC0000000FFFFFFFC5D +:100BD000000000000000C0FF0000000000800003D3 +:100BE00010E7080000000000000000000000000006 +:100BF0003FDF0F0F070300010000000000000000AE +:100C0000000000000000FFFE00000000001F7FFF4A +:100C100000000000001FFC000000000003FFFFFFB9 +:100C2000FFFFFFFFFFFFFCC00000000106180000EF +:100C3000FFFFFCE000000000000000C1030C00000A +:100C4000000000033CC00000000307FFFFFFFFFFA0 +:100C5000000000F0000000000000FFFFFFFFFFFFAA +:100C6000FF3F00000000000000070F1F7FFFFFFF95 +:100C7000FC800000000F3F7FFFFFFFFFFFFFFFFF33 +:100C8000000000FF010000000FFFFFFFFFFFFFFF5C +:100C90000000FFFFFF0F01FEFFFFFFFFFFFFFFFF51 +:100CA0000F0F1F3FFFFFFFFFFFFFFFFFFFFFFFFFD4 +:100CB000FFFFFFFFFFFFFEFCFCF0E0E0C080808054 +:100CC0000000F0E18FFFFF008080FFFFFFFFFFFECD +:100CD0006F3F7FFFFFFEE00000FFFFFFFFFE800190 +:100CE000FEFCF0E0800000000000000000000000BA +:100CF0000103070707070F0F0F0F01000000000097 +:100D0000FFFFFFFCE000000000FFFFFFFF7FFFFF91 +:100D1000F081070F0F1F1F3D393141E0F0F0F8F867 +:100D2000FFFFFFFFFFFFFFFFFCE0C0000103070024 +:100D3000FDFDFEFEFEFCF0801C3C7EFFFFFEC000C1 +:100D4000FFFFFFFFFFFFFDF9FFFFFF78000000003E +:100D5000DFEEECE0A0E0E0E0E0E0C000000000003A +:100D60000000000000000000000000808000000083 +:100D70000000000000000000000000000000000073 +:100D800007030100000000000000000000004060B8 +:100D90000080C0C0E0200000000000000001030748 +:100DA0007F7F3F3F3F1F0F03010101030303073F05 +:100DB0000F8FEFF7F7F7FBFBFBFFFFFFFFFFFFFFD7 +:100DC00000000000000000000000000103070F1FEA +:100DD00000000000000000000F1F7FFFFEFEFCFC73 +:100DE0001F3F7FFFFFF9FFFFE0C000006070888CAD +:100DF000F8F0E0C0C08080000000000000000000AB +:100E0000FF00000000000000000103070E1C38FF77 +:100E1000FF0103070E1C3870E0C08000000000FFD7 +:100E2000FFFFFFFFFFFFFFFF0000000000000000CA +:100E3000FFFFFFFFFFFFFFFF0000000000000000BA +:100E4000FFC080000000000000000000000000FF64 +:100E5000FFFF7F1F0701000000000000000000FFEF +:100E6000FFFFFFFFFFFFFFFF00000000000000008A +:100E7000FFFFFFFFFFFFFFFF00000000000000007A +:100E8000FFFBFFFFFFFF7B1F0703070F1F3F7FFFD6 +:100E9000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE72 +:100EA000FFFEFCF8F0E0C080000000000000000041 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:101000000018302000000707030000000000000067 +:10101000000103030100048FFE3C3C1C00000000A3 +:1010200000E0F0C0800000000000408000000000F0 +:1010300000000000000000000000000000000000B0 +:101040000018002000020707030000000000000055 +:10105000000103030100048EF87203010000000088 +:1010600000E0F0C0800000000000008000000000F0 +:101070000000000000000000000000000000000070 +:101080000030674000040E0F070000000000000061 +:10109000000387070300081EFC7C3E0000000000E0 +:1010A00000C0E08000000000000000000000000020 +:1010B0000000000000000000000000000000000030 +:1010C0000000000000000000000000000000000020 +:1010D0000000000000000078FC7E3E1E3C387E3E92 +:1010E000010100003070707838100000000000002E +:1010F000F0F0E0401078B8787020000000000000A8 +:1011000000000000000000000000000000000000DF +:101110000000000000000078F808000000081E072A +:1011200000000000307A79783810000000000000DC +:10113000783838100000C0C08000000000000000B7 +:10114000000000000000000000000000000000009F +:101150000000000000000000000004030000000088 +:101160000000000000000000000870C00000000047 +:10117000000000000000000000000000000000006F +:10118000007080000010383C1F07030100000000C1 +:10119000000E1E1C1C302070E0C0C0C0000000000B +:1011A0000070800000000004070103151800000013 +:1011B000000E1E1C1C302070E0C0C0C000000000EB +:1011C000000000000000000101010100000000001B +:1011D00000000E3F7FFFFFD5BFC0BFDD0000070F3F +:1011E000000070FCFEFCF9F8FC1CF8F000009EBE4C +:1011F0000000000030F8FCDC0C1E0E1C000000009B +:1012000000000307070301030003070703010000B1 +:1012100000E7FFFFFFFF5FFF01FFDF8FDF8F3C7EF7 +:101220000000C0E0E0CCDEEEEEC7870E8E0C3C7E08 +:1012300000000000000000000000000000000000AE +:101240000000000101000102030001010100000093 +:101250000039FFFFFFFF57FF00FF778080C0070FB7 +:1012600000C0F0F8F0E3E7F371E0C00100019EBEBA +:10127000000000000000C0E0E0C0C0E0E0C00000EE +:101280000E1C1E0C1C38391D1E1E0C010100000016 +:101290000E000C060473FFFFFFFFFDFFC0FF7D780B +:1012A00000000000000000000000000F060007071B +:1012B000080E0F0F0E040E000E0C0000000080C080 +:1012C000010303070E1C191D1E0E0C010100000076 +:1012D000D080D81C0C73FFFFFFFFFDFFC0FF63072A +:1012E0000000000000000000000000000000787C0A +:1012F000080E0F0F0E040E000E0C08F06000000028 +:101300001C7FFFFF7F2B7F007F3B41F0E0700103DC +:10131000E0F8FCFCF2F6FB3BF7E7E3F76306E0E0FE +:101320001C7FFFFF7F2B7F007F3C5EFFE67000008D +:10133000E0F8FCFCF2F7FB3BF767030703061E3EF1 +:1013400000000000010100010100000C1E04006605 +:10135000000000FDFFFFBFFFF1E000183C0800CCDB +:1013600000000080C0C080C0C08000183C1800335E +:10137000000000000000000000000000000000006D +:10138000000000000000000000000100000C000050 +:10139000000000010301030707C2E3C701C01900F1 +:1013A000000000F8FD7FFFFF1F0F0E80000080008F +:1013B00000000000008080800000003078300033A2 +:1013C0000000000101000101000000060F04000CF4 +:1013D0000000FDFFFFBFFFF1E000000C1E0C00CC81 +:1013E000000080C0C080C0C080060F06000600C09C +:1013F000000000000000000000000000006000008D +:101400000000001F3F3F173F3C180060F34100CB36 +:10141000000000B0F8F8F0F8F8700082C7830033DD +:10142000001F3F3F1F171F3F3C0C0060F34100CBE4 +:1014300000B0F8F8F0F0F0F8F8380082C783003315 +:1014400000000000000000030F0787CF9F1F2F231D +:10145000121200060F0200E0F0FCFCFCFCFCE0FCB9 +:10146000000040C0400040400000000000000000BC +:10147000000000000000000000060F060024240009 +:1014800024240060F06000070F7F7F7F7F7F0F07BD +:101490000000000000000989E0F3F7E3C0C0E0802D +:1014A0000000000000000000003078300012120040 +:1014B000000001000000000000000000000000002B +:1014C00000072F7F7F7F3E3C0C00003078230066B2 +:1014D00000E0F0E0F0F87E3F2660F62000300000EB +:1014E00000041C3E3E7F7F0E303C7EFF000000006B +:1014F0000000000000000E3E7E7E7E7E003C7EFFEF +:10150000FFFBFFFFFFFFFBFFFFFBFFFFFFFFFBFFFB +:10151000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEEB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:101580000A1F3F1F3723073F5FFFDB7830061FBE70 +:1015900080E8FCF8FECCCEDCE89C3E1603071A1C63 +:1015A000000000000000000000000080F870300023 +:1015B0000000000000000000000000003F73000079 +:1015C000000A1F3F1F1F3D797BFFF9BCF06008191F +:1015D00000A0F0FCF8FCF8FCF8F8BC2E030782CC65 +:1015E000000000000000808000000000DEF8703085 +:1015F000000000000000000000000000EE7F33004B +:101600006AFF7F3F7F3F7F3F1F0A0000008CDEFCA8 +:10161000A3F7FBF6EE6C1CBC7C7820000000008079 +:1016200000000000004040C0CE010F0E0703000084 +:101630000000000000000000E0C08000000000008A +:1016400003070F1F7F3F7F3BF9F0A00080000133AD +:101650000000A0F0F8F0F0F87C7C7C28000080C04E +:10166000004040C0C04000000E1C180C0E1E1800A8 +:10167000000000000000000070381830707818007A +:1016800002070F070D08010FDFFF76B1CEFFFBC089 +:10169000A0FAFFFEFFF3F3F7E6CE0E0703C7E6DE80 +:1016A00002070F070D0881CFF7FDD00EDFFB733166 +:1016B000A0FAFFFEFFF3F3F7FAE6CF0703C7CE9ECB +:1016C000003F7F30301F0F0000070F0700000101AF +:1016D00000F8FC7E7EFEFC78FCFEFFFE78C0E0C3D6 +:1016E00000000000000000000000000003000000F7 +:1016F00000000000000000000000000010000000DA +:1017000000000000000000000000000001030F3F87 +:10171000000000000101010307031C7EFFFFFFDF43 +:101720000000000000000000000000000000003F7A +:10173000000000000000000000000000000006FCA7 +:1017400000003F7F30301F0F00030703000001013E +:101750000000F8FC7E7EFEFCFCFEFFFE78E0C0E2AE +:101760000000000000000000000000000300000076 +:101770000000000000000000000000003000000039 +:10178000000000000000071F3F7F7F0F303C7EFFFE +:10179000000000000000C0C0808080000003070738 +:1017A0000000000000000000070707000303070F08 +:1017B00000000000C0E0E0E0E0E0E000C0C0E0F0D9 +:1017C000000000000000000F070300000003070FE7 +:1017D00000000000000000F0E0C0000000C0E0F0E9 +:1017E000000F0703000F1F0300031F0F0003070F65 +:1017F00000F0E0C0C000C0800080C000C0C0E0F0C9 +:101800000000001E1F1F1F4FC7C7030FDFFC7830EB +:10181000C0E07838F8F8F0C083E3F2F0ECFE7F0324 +:10182000070703111F1F1F4FE1C1030FDFFC7830B3 +:10183000E0F0FCFCFCFCF8F0F3E3F2F0ECFE7F03DC +:101840000063E76E0C070703010307CFDFDF2E0EEF +:101850000307030078F8F8F8F0E0E0C0C0C08000AB +:1018600000000000206060001F1F0E060000000046 +:1018700000000000000000008000000000000000E8 +:101880000063EF7F1E1F1F0F07070F1FBFDFFE78CC +:101890000687860030E0E0C080C0E0C08000000025 +:1018A000000000002060E0C01F1F0E0600000000C6 +:1018B00000000000000000008000000000000000A8 +:1018C000000000000000000303030301001038784B +:1018D00000000000181C0FC7FFFFFEB81C3C78F08A +:1018E00000000000000000005F8C0F1F00000000DF +:1018F0000000000000000000FCDC3870783C1C3860 +:101900000000001E1F1F1F0F07879C7C9E0E0F1FCD +:10191000C0E07838F8F8F0C080003878FC7E7F3B73 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000303000001000000A0 +:101940000101001C1F38010343E3270703010303C0 +:10195000C0F0F878FCFEFFFFCE87078EDEDF800048 +:1019600000000000000020704000000000000000A7 +:101970000000000000000000000000000000000067 +:10198000000000000407070303393E180C04040894 +:101990007020202071FFFF9E0C6C7E3C0C181008FC +:1019A000000000000000000000E0E0400000000037 +:1019B0000000000000000000000000000000000027 +:1019C000010204040E1F1F1321397F4F03614021C0 +:1019D000C020101038FCFCCC86B6FC600486820166 +:1019E00001000000111F1F0E0C657D380C04040857 +:1019F000C0808080C4FCFC7830B3FF74606020102D +:101A00000006030346ECEEEE66060200103818C22C +:101A10000060C0C06237777766604000081C1843DA +:101A2000000000000000041E3C1800001038308642 +:101A3000000000663C3C66C3E7E7666624000000E1 +:101A400000000000000020783C180000081C0C6119 +:101A50000000000000000000000000000000000086 +:101A60000006030347EFEFEF67060200103818C2C5 +:101A70000060C0C0E2F7F7F7E6604000081C1843BA +:101A80000006030346ECEEEE66060200103818C2AC +:101A90000060C0C062347070687C58430000000071 +:101AA0000086303810000030303810000000000090 +:101AB000000000000000663C3C66C3E7E766662461 +:101AC00000610C1C0800000C0C1C08000000000049 +:101AD0000000000000000000000000000000000006 +:101AE000C21838100000060303060C0E0E0606028C +:101AF00043181C08000060C0C06030707060604017 +:101B00000000000000060303462C0E0E163E1AC20B +:101B1000000000000060C0C062347070687C5843F0 +:101B200000C218380800060F07010000000000007E +:101B30000000000000060303860C0E0E06060200DD +:101B4000000000000060C0C0613070706060400044 +:101B50000043181C100060F0E0800000000000004E +:101B6000000000000703000020383086000000005D +:101B700000060303C6CC8E0E06060200000000001D +:101B80000060C0C0633371706060400000000000FE +:101B900000000000E0C00000041C0C610000000018 +:101BA0000F07030007070700000007070003070FE0 +:101BB000F0E0C000E0E0E0000000E0E000C0E0F0A5 +:101BC000000000000301010020787E7E003C7EFFC3 +:101BD000000002C6DEDEEEEEE602000000000000BD +:101BE0000000000000000C1E3E7F7F0E303C7EFF98 +:101BF0000000000000000307070F0F070003070F96 +:101C00000000000000000080C0E0E000C0C0E0F084 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C400000007FFF60603F170003070301000707E4 +:101C50000000F0F8FCFCFCF8F0FEFFFEF8F0F8FCE9 +:101C60000000000000000000000F00000000000065 +:101C7000000000000000000000F83000000000003C +:101C800000007FFF60603F1F0003070301000103A6 +:101C90000000F0F8FCFCFCF8F0F8FCFCF8F0FEFEAC +:101CA0000000000000000000001F0C000000000009 +:101CB000000000000000000000F000000000000034 +:101CC0000000000000000000000000000C00000008 +:101CD000000000000000000000000000C000000044 +:101CE00000000F1F3F3F3F7FFF7F3F1F0F1F3F7FC2 +:101CF0000000FEFF0606FCF8F0E0C0800080C0C0D7 +:101D000000000000000000000000000007000000CC +:101D10000000000000000000000000008000000043 +:101D20000000071F3F3F3F7FFF7F3F1F0F1F1F3FE9 +:101D30000000FEFF0606FCF8F0E0C0800080808016 +:101D4000000000000000000000000000040000008F +:101D50000000000000000000000000008000000003 +:101D600000000F1F3F3F3F7FFF7F3F1F0F1F1F0FD1 +:101D70000000FEFF0606FCF8F0E0C0800080800056 +:101D80000000000000000000000000000E00000045 +:101D900000000000000000000000000090000000B3 +:101DA00000000F1F3F3F3F7FFF7F3F1F0F1F3F3F41 +:101DB0000000FEFF0606FCF8F0E0C0800080C0E0F6 +:101DC0003F7F30301F0F00000307070000000000B6 +:101DD000F8FC7E7EFEFC78FCFEFFFD78F86030604B +:101DE0003F7F30301F0F0000030707000000000096 +:101DF000F8FC7E7EFEFC78FCFEFFFD78F87020701B +:101E000000000000000000000000000000000000D2 +:101E100000000000000000000000000000000000C2 +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000080000000000100000040000003046 +:101E50000000000000000000000010000000000072 +:101E6000000000000000000000020004000000006C +:101E700000028000001000000000000000000000D0 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F0000000000000000000000718A0A122242F95D +:101F10000000000000000000008C52525252528C0F +:101F200000000000000000000011325292FA12116D +:101F30000000000000000000008C52525252528CEF +:101F40000000000000000000007942720A0A4A31D5 +:101F50000000000000000000008C52525252528CCF +:101F6000000000000000000000314282F28A8A7105 +:101F70000000000000000000008C52525252528CAF +:101F8000000000000000000000718A8A728A8A71D5 +:101F90000000000000000000008C52525252528C8F +:101FA000000000000000000000314A4A4A4A4A315D +:101FB0000000000000000000008C52525252528C6F +:101FC0000000000000000000000000000000000011 +:101FD00000000000000000000002060202020207EA +:101FE00000000000000000000000000000000000F1 +:101FF0000000000000000000000E11010204081F94 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4k.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4k.hex new file mode 100644 index 00000000..02cf2779 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-b-4k.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000003AD +:10005000000000000000000000000000000000F0B0 +:10006000030F00000C07030101020303010000005D +:10007000F8C6FE76FEFCA010900020E0C0E0000074 +:10008000000000000000000000000103080F0B0F3B +:10009000000000000000000000C0FCFCFFC280C89F +:1000A00007030177620307070E0F06000000000038 +:1000B000FCF8C0E050FCFE0F070600000000000046 +:1000C0000000000000000000000001010607060615 +:1000D000000000000000000000C0FCDC1F80C043E6 +:1000E0000107EFCF010F0F1E383C18000000000081 +:1000F0008E1CA0C020F0F83C1C380000000000005E +:1001000000000000000000000000000007000F1CBD +:10011000000000000000000000000000CC3CD8F00F +:100120003F78270F07071B3E2F1300000000000039 +:10013000F070E0C0E0F0E040F0F838183818000047 +:10014000000000000000000000001F3FC7FEDCFEB2 +:10015000000000000000000000008080E00000605F +:100160007E3E7F792F1F1E1C38381C1800000000AF +:10017000C0067CF8D88000000000000000000000ED +:10018000000000000000000000000000001F1F7FB2 +:1001900000000000000000000000000000C0E08837 +:1001A0002100091F0FE7C7010F1F1C1E0F060000CB +:1001B000F8E8F8E0C080E773F8A000000000000055 +:1001C000000000000000000000000000000F0F3FD2 +:1001D00000000000000000000000000000E0F0C48B +:1001E0001000040F0703736E1F05000000000000DD +:1001F000FC74FCF8E0C0F080F7FB3878F060000099 +:100200000000000000000000000000000000001FCF +:10021000000000000000000000000000000000C01E +:100220001F7F2100091F0F0707E4CF1F3C180000A4 +:100230006088F8E8F8F0C080E097F3E0F07800001C +:1002400000000000000000000001000000000003AA +:100250000000000000000000C0C08000003E6D7F74 +:1002600003011C3E346070210307060303070600E8 +:100270003600804000000086CE8703068E8F030084 +:10028000000000000000000060E0603038180C0E34 +:100290000000000000000000030703007CDAFE6C91 +:1002A0000F070200006071FBCF073E381C0C0000F6 +:1002B000000000000000008080000000000000003E +:1002C000000000000000000000000000000000002E +:1002D00000000000000000000000000C1E0E060CD4 +:1002E0000060D0F960183038180C1E3E0000000085 +:1002F0000C1850800000001038383C1C3870781CF6 +:10030000000000000000060603060C0061C7870F0E +:100310000000000070D8FC6C000040F0FBDF8E0C89 +:1003200046603838180C0E070F0C00000000000063 +:1003300000000000000000000000000000000000BD +:100340000000000000000000386CFDD903183C706C +:10035000000000000000000000008080183C1F0327 +:10036000C0C46EEE5C180C0C07070E0C00000000F9 +:10037000367E3C1C1830787C000000000000000035 +:100380000000000000000000000000001F2D3F1BC7 +:100390000000000000000000000000000080B030FD +:1003A0000020686DC0E04C1EDEF8703000000000D8 +:1003B000204EDF9B070E0638783C1C38F0E070308A +:1003C0000000000000000000000000001F2D3F1B87 +:1003D0000000000000000000000000000080B030BD +:1003E0000020686DC0E0441E3F381C0E3E380000FF +:1003F000204EDF9B070E06183C3E0E1C383E0E00BA +:100400000000000000000000000000000000000EDE +:1004100000000000000000000000000000000000DC +:100420001B3F360000010301000B1F0D01000003FC +:10043000006060C0800080C0C0C0E0C080C0E0E05C +:10044000000000000000000000000000070F1F1F58 +:10045000000000000000000000000002E7F7FEFEC0 +:100460005CE8E7CFEF670007070330383C1E3C30FD +:100470003E14E0F0F0E000E0E4CC7C7E0000000000 +:100480000000000000000000000000007F010000EC +:10049000000000000000000000000000F0F8FCD4A4 +:1004A0003F000001030319FC79E10C0E1F3F00001F +:1004B0005C880038F0E0F307FFFEF80030387CFC81 +:1004C0001E2763662C000307030301030103011CBD +:1004D0003C7E003F1E00C0E0F0F0F0E0C0F0F0F81D +:1004E0003E361C000000000000000000000000007C +:1004F000FA76240000000000000000000000000068 +:100500001E3F007E3C0003070000000000000007C3 +:100510003C7263331A00C0F06000000040F0383CC9 +:100520000F0F0700000000000000000000000000A6 +:100530009C9C08000000000000000000000000007B +:100540000000000000000000000000000048DCBEC9 +:100550000000000000000000000000000070F8F83B +:100560003E1F1F070F1E3F3F1F0F00000000003FF0 +:10057000700080000000001EFFFF7E3C0000008035 +:10058000000000000000000000000000000000006B +:1005900000000000000000000000000000808080DB +:1005A00001000000111F1F3F7F7B71F1E3632140B9 +:1005B000C0808080C4FCFCFEFFCFC7C787060281D5 +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000008080808080801B +:1005E00001000000111F1F3F7F7B71F1E363214079 +:1005F000C0808080C4FCFCFEFFCFC7C78706028195 +:1006000000000000000000000300020000000000E5 +:10061000000000000000000000808080808080805A +:10062000010204040E1F1F1F1F1E1C3C381C04085F +:10063000C020101038FCFCFCFC78707818302010BA +:1006400000000000000000000300020000000000A5 +:10065000000000000000000000808080808080801A +:1006600001000000111F1F3F7F7B71F1E3632140F8 +:10067000C0808080C4FCFCFEFFCFC7C78706028114 +:10068000000000000000000000000000000000006A +:1006900000000000000000000000000000707E7EEE +:1006A0000000000101030303070707070000000023 +:1006B0007EFCFCFCF8F8F0F0E0E0E0E00000000078 +:1006C00000000000000000000060F00000337F7FA9 +:1006D000000000000000000000060F0000E3FFFF24 +:1006E0003F1F1F1F0F03010000000307030000004E +:1006F000FEFCFCFCF8E0E0E04000008000000000B0 +:1007000000000000000000000001030000000303DF +:1007100000000000000000000080C0800080C0C019 +:10072000071F3F3F3F3F3F7F7F1000307830000082 +:10073000C0F0F8F8F8F8FCFEDE0C00183C180000D9 +:100740000000000000000000000000000000001C8D +:100750000000000000000000000000381C3C0C0EEF +:10076000383F3F7F7FFFFF7F3F3F070000000000D3 +:1007700006F7FBFFFFFFFEFCFCFCFCF8400000005E +:100780000000000000000054383C387060EFDFFFCC +:100790000000000000000000002A1C3C1CFEFEFEC1 +:1007A000FFFF7F3F3F3F3F1F0200000000000000AF +:1007B000FFFFFFFEFCFCE000000000000000000066 +:1007C000000000000000000000030303070707010A +:1007D00000000000000000000080E0F0F8F8FCFCE1 +:1007E0000000000000000000000000000000000009 +:1007F000FCFE7E7E7E7E7E7E7E7E7E7E0000000013 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000010F0F0F0F070707030303030000006A +:1008300000C0C0C0C0E0E0E0F0F0F0F080000000D8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:10098000FF00000000000000FFFFFFFFFFFFFFFF70 +:10099000FF00000000000000FFFFFFFFFFFFFFFF60 +:1009A000FFFFFFFFFF7F3F1F8FC7E3F1F8FCFEFF54 +:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFF7F3F1F67 +:1009C000FF0000000000000080C0E0F0F8FCFEFF27 +:1009D000FF00000000000000000000000000000018 +:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:1009F00080C0E0F0F8FCFEFFFFFFFFFFFFFFFFFFFE +:100A0000FF000000000000000000000000000000E7 +:100A1000FF010101010101010101010101010101C8 +:100A2000000000000000000080C0E0F0F8FCFEFFC5 +:100A300001010101010101010101010101010101A6 +:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +:100A50008FC7E3F1F8FCFEFFFFFFFFFFFFFFFFFF83 +:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:100A8000FFFFFFFFFF7F3F1F9F9F9F9F9F9F9F9F96 +:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:100AA0009F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F56 +:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:100AC0000000000000000000000000000000000F17 +:100AD00000000000000000000000000002011FFFF5 +:100AE000FFFFFFFFFFFF3F07030000030FFFFFFFB4 +:100AF000FFFEFCFCFEFEF8C08000E0F8FFFFFFFFF9 +:100B000000000000000000000001070F3EF8F18720 +:100B100000000000000000000080F8800F7FFFFF51 +:100B2000FF7F3F0F010000003F7FFFFFFFFFFFFF40 +:100B3000FFFFFFFFFF7F1CFCFEFFFFFFFFFFFFFF2C +:100B400000000000000000000001001FFFFFFFFF89 +:100B500000000000003E7FFFFFFF1FFFFFF8E0C026 +:100B6000FFFEFEFFFFFF0F0040F8FFFFFFFFFFFF4C +:100B700000000080FFFFFF000003F3FFFFFFFCF019 +:100B8000000000000000C080E0FCFFFF000000004B +:100B90000000000000000000000030FF0000000026 +:100BA000000000000001871FFFFFFFFFE080000042 +:100BB000000000073FFFFFFEFCF8FFFF00030000FE +:100BC000000000000000000F000000FF0000000314 +:100BD000000000000000C0F0000000C0FF7FFFFF29 +:100BE0000F18F0C0808000000000FFFFFFFE000033 +:100BF000FF3F3F3F1F0F0F1E3FFFF8F8F0000000C0 +:100C0000000000000000000000010000FFFFFFFFE7 +:100C1000000000000000000000FE3F1FFFFFFFFF7C +:100C2000FFFFFFFFFF00033FFFFF3F01061800002B +:100C3000FFFFFFFFFFFFFFFFFCF8C0C1030C000038 +:100C40000000000000000000000307FFFF0100009B +:100C500000000000000000000000FFFFFFFF7F0019 +:100C600000C0FCFCFEFFFFFC783F3FFFFFFFFFFFE3 +:100C700000000000000F3F7FFFFFFFFFFFFFFFFFAF +:100C800000000000060100000FFFFFFFFFFFFF0C48 +:100C90000000000000F00EFFFFFFFFF0C08000002A +:100CA0000000000FFFFFFFFFFFFFFFFFFFFFFFFF41 +:100CB0000003FFFFFFFFFEFCFCF0E0E0C08080804F +:100CC00000010F1E700000E0FFFF80000000000028 +:100CD00010C08000000000000000000000000001C3 +:100CE0001EFCF0E080000001070F1F1F3F7FFFFF89 +:100CF000010307071F3F7FFFFFFFFFFFFFFFFFFF0E +:100D000000000000000000000001070F3F7FFFFF10 +:100D10000001070F0F1F1F3F7FFFFFFFFFFFFFFFB8 +:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFEFCF8FFDE +:100D3000FEFEFFFFFFFFFFFFE3C3810000013FFF57 +:100D4000FFFFFFFFFFFFFFFFFFFFFF780000000036 +:100D5000DFEEECE0E0E0E0E0E2EEC7030100013F9F +:100D6000001FFFFFFFFFFFFFFFFFFF7F7FFFFFFF72 +:100D7000FFE3C0F8FCFFFFFFFFFFFFFFFFFFFCF0FA +:100D80003F3F3F3F1F1F1F1F1F1F3F3F7F7FFFFF33 +:100D90000080C0C0E0E0F0F0FCFEFEFEFEFFFFFFC2 +:100DA000FFFFFF3F3F1F0FE3FDF9F9FBF383073F11 +:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:100DC00000000000000000000000000103070F1FEA +:100DD00000000000000000000F1F7FFFFEFEFCFC73 +:100DE0001F3F7FFFFFF9FFFFE0C00000A090B8BCED +:100DF000F8F0E0C0C08080000000000000000000AB +:100E0000FFFFFFFFFFFFFFFFFFFEFCF8F1E3C7005E +:100E1000FFFEFCF8F1E3C78F1F3F7FFFFFFFFF00DE +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000000B2 +:100E40009F3F7FFFFFFFFFFFFFFFFFFFFFFFFF0051 +:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00A1 +:100E60000000000000000000000000000000000082 +:100E70000000000000000000000000000000000072 +:100E8000FFFFFFFFFFFFFFFFFFFCF8F0E0C0800067 +:100E90000101010101010101010101010101010142 +:100EA0000000000000000000000000000000000042 +:100EB0000000000000000000000000000000000032 +:100EC0000000000000000000000000000000000022 +:100ED0000000000000000000000000000000000012 +:100EE0000000000000000000000000000000000002 +:100EF00000000000000000000000000000000000F2 +:100F000000000000000000000000000000000000E1 +:100F100000000000000000000000000000000000D1 +:100F200000000000000000000000000000000000C1 +:100F300000000000000000000000000000000000B1 +:100F400000000000000000000000000000000000A1 +:100F50000000000000000000000000000000000091 +:100F60000000000000000000000000000000000081 +:100F70000000000000000000000000000000000071 +:100F80000000000000000000000000000000000061 +:100F90000000000000000000000000000000000051 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000000000000000000000000000000000021 +:100FD0000000000000000000000000000000000011 +:100FE0000000000000000000000000000000000001 +:100FF00000000000000000000000000000000000F1 +:1010000000000C181810070703000000000000077C +:101010000000387C7C38048FFE3C3C1C000000F74C +:10102000000000000000000000004080000000F010 +:1010300000000000000000000000000000000000B0 +:1010400000000C181812070703003C7E7F3F1E00AB +:101050000000387C7C38048EF8723F7F7F3F1E0092 +:101060000000000000000000000000800000000000 +:101070000000000000000000000000000000000070 +:101080000000183030240E0F0700000000000000A0 +:10109000000070F8F870081EFC7C3E0E0331331E11 +:1010A00000000000000000000000001E87E3663C16 +:1010B0000000000000000000000000000000000030 +:1010C00000000000003C7EFEFC78000000000000F4 +:1010D00078FC007E3C000078FC7E3E1E3C387E3E64 +:1010E000397D7C3800000000000000000000000096 +:1010F000F0F4EC48000000000000000000000000D8 +:101100000000000000003C66C6E470000000000023 +:1011100078E4C66238000078F808000000081E076E +:101120000E1F1F0E00000000000000000000000065 +:1011300078383810000000000000000000000000B7 +:10114000000000000000000000000000000000009F +:10115000000000000000000000000403000000FE8A +:101160000000000000000000000066C3673E0000B1 +:10117000000000000000000000000000000000006F +:10118000000061C3C391383C1F0703010000007FCA +:101190000000C0E0E0C02070E0C0C0C00000007FE0 +:1011A000000061C3C391383C1F1F3F3D1800007F02 +:1011B0000000C0E0E0C02070E0C0C0C00000007FC0 +:1011C000000000000000000101010100000000001B +:1011D00000000E3F7FF7FFF5BFDFBFDF0F0F0000FE +:1011E000000070FCFE7FFFFFFFFFFFFFFF3C0000E1 +:1011F0000000000030F8FCDC8C1E8E9C000000001B +:1012000000000307070301030103000000000000C2 +:1012100000E7FFFF77FF5FFFFFFFF170380C3C7EB8 +:101220000000C0E0F8FCFEFEFEFFFFFE4E0C3C7E20 +:1012300000000000000000000000000000000000AE +:101240000000000101000103030101010100000091 +:101250000039FFFFDDFFD7FFFFFFFFDF9FCF00005B +:1012600000C0F0F8FEFFFFFFF9F8FCFDF83D0000BC +:10127000000000000000C0E0E0C0C0E0E0C00000EE +:101280000E1C1E0C1C38391F1F1F0F0F070F0F07D6 +:101290000E000C060777FFFFF7FFFDFFFFFFC58677 +:1012A000000000000000000000000010010300002A +:1012B000080E0F070E040E0C0E0C00E0C08000009C +:1012C000010303070E1C191F1F0F0F0F07070F0F36 +:1012D000F080F81C0E77FFFFF7FFFDFFFFFFFCF823 +:1012E00000000000000000000000007D78F0000019 +:1012F000080E0F070E040E0C0E0400000000000084 +:101300001C7FFFEE7F2B7F3F7F7A66F7E371000043 +:10131000E0F8FCFCFEFEFFFFFF3F1F0F83C600004E +:101320001C7FFFCE7F2B7F3F7F6361F0E07000006A +:10133000E0F8FC7CFEFFFFFFFFFFFFBF1F0E000079 +:1013400000000000010100010307070300183C181A +:10135000000000FDFF3F003FFFFF9F060030783098 +:1013600000000080C0C000C0E0F0706000041E0CEF +:10137000000000000000000000000000000000006D +:101380000000000000000000000000030703000050 +:1013900000000001030002073F3F1C00860F06000B +:1013A000000000F83D0F61FCFFFFFF63010000003B +:1013B00000000000008080800080C0C0800C1E0CF7 +:1013C00000000001010001010307070000030703FB +:1013D0000000FDFF3F003FFFFFDF9E00000387038B +:1013E000000080C0C000C0F0F87830010301800028 +:1013F000000000000000000000000080C08000002D +:101400000000001F3F2700277FFFF783003079305F +:10141000000000B0F8F800F8FCFC9E0C004CEECC8C +:10142000001F3F27000000277FFFF783003079303F +:1014300000B0F8F8000000F8FCFE9E0C004CEECC6A +:1014400000000000000000030FFF7F3F5FFFCF039D +:10145000000C1E08000C1EFEFCFCFCFCFCFCF8C092 +:10146000000000000040000000000000000000003C +:1014700000000000000000000F0000183C180000F1 +:1014800000183C180010787F3F7F7F7F7F7F3F7F71 +:101490000000000000000086EFF4F0FCFEFCE0809D +:1014A0000000000000000000F040000C1E0C0000D6 +:1014B000000000000000000000000000000000002C +:1014C00000072F7C614F3F3F1F3D3C0801183C182F +:1014D00000E0F000F6FFF8F0F89C08C0E0C0000063 +:1014E00000071F3F3F7F7F7E0E00000000000000CE +:1014F00000C0F0F8FCFCFEFE7E7E7E7E7E000000DA +:10150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:1015100001010101010101010101010101010101BB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:101550000000000000000000000F080E0101090655 +:10156000000000000000000000000000000000007B +:101570000000000000000000000E11110E11110EFD +:101580000000001F2D3F1B0040EADB7830061FBE25 +:101590000000000080B03020409C3E1603071A1C5B +:1015A000000000000000000000000080F870300023 +:1015B0000000000000000000000000003F73000079 +:1015C000000000001078FAB60683D9BCF060081954 +:1015D00000000000000000000028BC2E030782CCA1 +:1015E000000000000000808000000000DEF8703085 +:1015F000000000000000000000000000EE7F33004B +:1016000060E0000000000000090A0000008CDEFC21 +:10161000030703163EBEFAF8787020000000008031 +:1016200000000000004040C0CE010F0E0703000084 +:101630000000000000000000E0C08000000000008A +:10164000030703010001030381C0A00080000133F0 +:1016500000008080C0D0BCBE1A000000000080C026 +:10166000004040C0C04000000E1C180C0E1E1800A8 +:10167000000000000000000070381830707818007A +:10168000000000070B0F0600D8FA76B7CFFFFFC2A5 +:10169000000000C060ECCC08048E0E0703C7E6DE35 +:1016A000000000070B0F86C0F0F8DC1EDFFB7B3567 +:1016B000000000C060ECCC0810A6CF0703C7CE9E88 +:1016C000003F0000001F0000000101080EFE7CF03A +:1016D00000F8FC7E6AAE44009CF8F0F903FFFF7C42 +:1016E0000000000000000000000000000C0E1F3F82 +:1016F0000000000000000000020200000C0E1F3F6E +:1017000000000000000000000000000001030F3F87 +:10171000000000000101010307071E7FFFFFFFDF3C +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:1017400000003F0000001F00000101040E7EFC703D +:101750000000F8FC7E6AAE449CF8F0F903FFFF7CC1 +:101760000000000000000000000000000000010375 +:10177000000000000000000002020000C0E0F0F0E5 +:10178000000000000000071F3F7F7F7F0E00000069 +:10179000000000000000F8FEFFFFFF1F0F0F07070B +:1017A000000000000000000007070707000000001D +:1017B0000080C0C0C0E0E0E0E0E0E0E00000000049 +:1017C00000000000000000000000070F07000000FC +:1017D00000000000000000000000E0F0E000000059 +:1017E00000000000070F1F1F1F1F1F0F0700000032 +:1017F0000000000000E0C0808080C0E00000000029 +:101800001F1F7F2100091F4FC7C7000F1F1C0800A3 +:10181000C0E088F8E8F8F0C083E392F0E0F07800E8 +:101820000F0F3C0F070F1F4FE1C1020F1F1C0800D5 +:10183000E0807CE47CFCF8F0F3E392F0E0F07800E8 +:101840000063E7610F0707030103070A1F5F2E0EFE +:1018500003FFFBFE840090F8F0E0E040C0C0800091 +:10186000000000000000000007030000000000006E +:1018700000000000000000008000000000000000E8 +:101880000063E7581F1B1F0F07070F143F5FFE7809 +:1018900006F7F6F0C080C0C080C0E0C08000000045 +:1018A000000000000000000007030000000000002E +:1018B00000000000000000008000000000000000A8 +:1018C0000000000003030F040001030100000838BA +:1018D00000000000F8FCF13F1D3FFEB81C3C28F062 +:1018E00000000000000000000F0C000000000000DD +:1018F0000000000000000000FCDC387078300000C0 +:101900001F1F7F2100091F0F0787841C0E0E000078 +:10191000C0E088F8E8F8F0C080001878F0707838F7 +:1019200000000000000000000000000000000000B7 +:1019300000000000000000000303000000000000A1 +:101940000F0F3F030130010343E3270703000000AB +:10195000C0E018F8C87EFFFFCE87078E00000000A9 +:1019600000000000000020704000000000000000A7 +:101970000000000000000000000000000000000067 +:10198000000000000407070F1F3E387071316081AE +:101990007020202071FFFFFFFFF370F1C1808102F2 +:1019A0000000000000000080C0E0E0C0C0C0800077 +:1019B0000000000000000000000000000000000027 +:1019C000010204040E1F1F1F1F1E1C3C381C0408AC +:1019D000C020101038FCFCFCFC7870781830201007 +:1019E00001000000111F1F3F7F7B71F1E363214065 +:1019F000C0808080C4FCFCFEFFCFC7C78706028181 +:101A00001C7EFFFF3F1F1F0F0706020000000000A3 +:101A1000387EFFFFFCF8F8F0E060400000000000B6 +:101A2000000001070F0F030101000000000000008B +:101A30000000C3E7FFFFFFFFFFFF7E6624000000FA +:101A4000000080E0F0F0C080800000000000000096 +:101A50000000000000000000000000000000000086 +:101A60001C7EFFFF3E1C1E0E060703010301000043 +:101A7000387EFFFF7C38787060E0C080C080000056 +:101A80001C7EFFFF3F1F1F0F070602000000000023 +:101A9000387EFFFFFCF8F8F0E06040000000000036 +:101AA000000000000001070F0F030101000000000B +:101AB0000000000000C3E7FFFFFFFFFFFF7E66247A +:101AC000000000000080E0F0F0C080800000000016 +:101AD0000000000000000000000000000000000006 +:101AE00000000000001C7EFFFF3F1F1F0F070602C3 +:101AF0000000000000387EFFFFFCF8F8F0E06040D6 +:101B0000000000001C7EFFFF3F1F1F0F07060200A2 +:101B100000000000387EFFFFFCF8F8F0E0604000B5 +:101B200000000000000000000000000000000000B5 +:101B3000000000001C7EFFFF3F1F1F0F0706020072 +:101B400000000000387EFFFFFCF8F8F0E060400085 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70001C7EFFFF3F1F1F0F070602000000000032 +:101B8000387EFFFFFCF8F8F0E06040000000000045 +:101B90000000000000000000000000000000000045 +:101BA00000000007070707070707070707000000EF +:101BB000000000E0E0E0E0E0E0E0E0E0E000000065 +:101BC00000000000030F1F3F3F7F7E7E7E0000006D +:101BD000000000E0E0E0F0F0F00000000000000095 +:101BE0000000000000030F1F3F7F7F7E0E000000FB +:101BF0000000000000FCFFFFFFFF0F0707000000D0 +:101C00000000000000000080C0E0E0E000000000F4 +:101C100000000000000000000000000000000000C4 +:101C2000000000000000000000314A4A4A4A4A31E0 +:101C30000000000000000000008C52525252528CF2 +:101C400000007F0100003F283838383C19000109A6 +:101C50000000F0F8FCD45C8800F87CFDFF0FFFF872 +:101C6000000000000000000000333E7E0000000085 +:101C7000000000000002020000C00C1C3C783C0C7C +:101C800000007F0100003F00000000040FFE7DF017 +:101C90000000F0F8FCD45C8800C87CFCF800F8F97F +:101CA0000000000000000000000130383C1E3C3005 +:101CB000000000000000000000CC7C7E000000005E +:101CC00000808000000000000000000030387CFC34 +:101CD0000000000000000000000000003070F8FC70 +:101CE000A0E0EFFFFFEBFA910C1F3F1F001F0F0753 +:101CF0005070FE800000FC0080C0C080008080002A +:101D0000008080000000000000000000181D1F3F40 +:101D100000000000000000000000000040C0E0F0F3 +:101D2000A0E0F7FFFFEBFA910C1F3F1F001F070316 +:101D30005070FE800000FC0080C0C08000808000E9 +:101D40000080800000000000000000000307070F73 +:101D5000000000000000000000000000008080C0C3 +:101D6000A0E0EFFFFFEBFA910C1F3F1F001F1900CF +:101D70005070FE800000FC0080C0C08000808000A9 +:101D8000008080000000000000000000101C1F3FC9 +:101D900000000000000000000000000060E0E0F033 +:101DA000A0E0EFFFFFEBFA910C1F3F1F001F1F0E7B +:101DB0005070FE800000FC0080C0C08000800000E9 +:101DC0003F00050A1F000000010100EFEFFFFF7F49 +:101DD000F8FC7EEAAE44009CF8F0FA07FFDECE9CE9 +:101DE0003F000A051F000000010100EFEFFFFF7F29 +:101DF000F8FCFE6AAE44009CF8F0FA07FFCEDE8CD9 +:101E000000000000000000000000000000000000D2 +:101E10000000000000000000001F02040201110E7B +:101E200000000000000000000000000000000000B2 +:101E3000000000000000000000020602020202078B +:101E4000000000000000000000200004100060FD01 +:101E50000000000000040000004000000440E7FF14 +:101E60000000000400400000001000042002E71FF2 +:101E700000008000000008000000200400006699B7 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2d.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2d.hex new file mode 100644 index 00000000..4814deca --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2d.hex @@ -0,0 +1,513 @@ +:100000000000000000000000FF7F3F1F0F070301FA +:100010000080C0E0F0F8FCFEFFFFFFFFFFFFFFFFE6 +:10002000FFFFFFFFFFFFFFFF0000000000000000D8 +:1000300000000000000000000000000000000000C0 +:10004000010101FF101010FF010101FF101010FF4E +:10005000010101FF101010FF010101FF101010FF3E +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:10008000C0FFFFC0C0FFFFC0FFFFFFDFCFFFFFC10A +:10009000C0FFFFE0F0FFFFFEFFFFFFFFFFFFFFFFDE +:1000A00003FFFF0303FFFF03FFFFFFFFFFFFFFFF50 +:1000B0000000000000000000000000000000000040 +:1000C00000FFFF0000000000FFFFFF1F0F070301FC +:1000D00000FFFFE0F0F8FCFEFFFFFFFFFFFFFFFF68 +:1000E000000000000001003F00000000008000FC54 +:1000F000103F243F3F223F1F08FC24FCFC44FCF837 +:10010000000000000000000010101010000010009F +:10011000282828000000000028287C287C282800A7 +:10012000103C50381478100060640810204C0C000B +:1001300030485020544834003010200000000000A7 +:1001400008102020201008002010080808102000A7 +:1001500000105438541000000010107C10100000E3 +:1001600000000000301020000000007C00000000B3 +:1001700000000000003030000004081020400000A3 +:10018000384CC6C6C6643800307030303030FC00A1 +:100190007CC60E3C78E0FE007E0C183C06C67C0057 +:1001A0001C3C6CCCFE0C0C00F8C0F80C0CCC78009D +:1001B0003C60C0FCC6C67C00FEC60C183030300067 +:1001C00078C4E4789E867C007CC6C67E060C7800E7 +:1001D000003030003030000000303000301020009F +:1001E000FCF8F0F0F0F0F8FC00007E007E0000006B +:1001F0003F1F0F0F0F0F1F3F38440408100010005F +:100200003C4299A1A199423C386CC6C6FEC6C600C4 +:10021000FCC6C6FCC6C6FC003C66C0C0C0663C004E +:10022000F8CCC6C6C6CCF800FCC0C0F8C0C0FE0002 +:10023000FEC0C0FCC0C0C0003E60C0CEC6663E006E +:10024000C6C6C6FEC6C6C600FC3030303030FC0024 +:100250000606060606C67800C6CCD8F0F8DCCE0046 +:10026000C0C0C0C0C0C0FE00C6EEFEFED6C6C600FE +:10027000C6E6F6FEDECEC6007CC6C6C6C6C67C0096 +:10028000FCC6C6C6FCC0C0007CC6C6C6DECC7A00B2 +:10029000FCC6C6CEF8DCCE0078CCC07C06C67C009E +:1002A000FC30303030303000C6C6C6C6C6C67C0012 +:1002B000C6C6C6EE7C381000C6C6D6FEFEEEC60028 +:1002C000C6EE7C387CEEC600CCCCCC78303030002A +:1002D000FCFC183060FCFC00000000000030300026 +:1002E000C080D895D50305073808080808083800E5 +:1002F0003F3F000029133F1E80C0F070D0F0E000A7 +:100300000000000101010303FF7F3F1F0F070303EC +:100310000080C0E1F1F9FFE3FFFFFFFFFFFFFFE314 +:100320000000000000000080FF7F3F1F0F070381D7 +:100330000080C0E070783C82FFFFFFFF7F7F3F833B +:100340000700000F1F1F3F7FC700001F1F1F3F7FB9 +:10035000078000EFFFFFFFFFC78000FFFFFFFFFFE9 +:10036000800000C0C0E0E0F0810100CFC7E3E3F10E +:10037000800000C0C0E0E0F0810100CFC7E3E3F1FE +:100380000000000103070107FF7F3F1F0F07010760 +:100390000080C0E1F3FFF9FFFFFFFFFFFFFFF9FF60 +:1003A000000000E0F0F888F8000000E0F0F888F8BD +:1003B000000000E0F0F888F8FFFFFFFFFFFF8FFF6D +:1003C0000E0E0D0D1F1F1F1F0E0E0D0D1F1F1F1FC9 +:1003D0000E0E0D0D1F1F1F1FFEFEFDFDFFFFFFFF79 +:1003E000F8F8F8FCFCFCFCFCF8F8F8FCFCFCFCFC65 +:1003F000F8F8F8FCFCFCFCFCF8F8F8FCFCFCFCFC55 +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000030F010003071F7FFFFFB3 +:100490000000030F3FFFFFFFFFFFFFFFFFFFFFFF16 +:1004A000000000000001071F3F7FFFFFFFFFFFFF6D +:1004B000FFFFFFFFFFFFFFFF00000000FFFFFFFF48 +:1004C000FFFFFFFFFFFFFFFF00000007FFFEFCF83C +:1004D000F8F8F8F8F1F0E3E79FFFFFFFFFFFFFFFF9 +:1004E000000000000001070F1E188107070F0F1FF3 +:1004F0003F3F3FFFFFFFFFFF0000000F3FFFFFFFF9 +:1005000000030F3FFFFFFFFF000000000001071F77 +:100510003F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:10052000FFFFFFFFFFFFFFFF0000000000FFFFFFD6 +:1005300000000000000000000000001FFFFFFFFFA0 +:100540000000030F3FFFFFFF000000000001071F36 +:100550003F7FFFFFFFFFFFFF0000030F1FFEFEFEB8 +:10056000F0F8FCF8F8F0F181079801071F1F3F7FB2 +:100570001F0F3FFFFFFFFFFF000000000000030F01 +:100580007FFFFFFFFFFFFFFF0000030F3FFFFFFFA5 +:1005900000017FFFFFFFFFFF7FFFFFFFFFFFFFFF68 +:1005A000FFFFFFFFFFFFFFFF00000000000000FF54 +:1005B000F8FFFFFFFFFFFFFF60F0FCFEFFFFFFFF04 +:1005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:1005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:1005F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:10060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +:10061000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:10062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +:10063000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:10064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +:10065000F7F7EFEFCFDF9F9FFFFFFEFCFCF8F0E026 +:100660003F3F3F3F1F1F1F1FFFFFFFFEFCFCFCFC27 +:10067000C0800000000101017FFFFFFFFFFFFFFFBF +:10068000F8F2E6DFFFFFFFFF030307070F1F3F7FBF +:10069000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:1006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +:1006B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:1006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +:1006D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:1006E000FFFFFFFFFFFFFFFFFEFCFCFCFEFFFFFF25 +:1006F0003F9FCFE0E3C70107070F0F0F0783C1F844 +:10070000FFF38F3F7F7F3F1FFFFFFFFFFFFEFCF8E0 +:10071000FFFFFFFFFFFFFFFFFFFFFFFFFF7F3F1F09 +:10072000070F1F1F3F1F0F0F070F8F9FCFFFF3F9FB +:10073000FCFCFEFEFFFFFFFFFFFFFFFFFFFFFFFFD1 +:10074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +:100790000000000000000000FFFFFFFFFFFFFFFF61 +:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:1007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +:1007D000FFFFFFFFFF600000FFFFFFFFFFFF7F073E +:1007E000FFFFFFFFFFFEFEFCFFFBF7CF1F3F7F7FFA +:1007F000F0F0F0F0F0F0F0FC7FFFFFFFFF60000092 +:100800000000000000000000FFFFFFFFFFFFFFFFF0 +:1008100000000000000000000000000000000000D8 +:10082000009CFCFEFEFFFFFF00000000000080F8BF +:10083000FF7F1F0F03010000FFFFFFFFFFFFFF7F90 +:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:1008600000FCFFFFFFFFFFFF1F0FC7E7F3FBFBFCD1 +:10087000FFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFF48 +:10088000FFFFFFFFFFFF7F07FFFFFFFFFFFFFFFFF0 +:10089000FFFFFFFFFFFFFFFF009CFCFEFEFFFFFFCF +:1008A00000000000000080F8FF7F1F0F0301000020 +:1008B000FFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFC8 +:1008C000FFFFFFFFFFFFFFFF071FFFFFFFFFFFFF10 +:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:1009000000000000000000000C0E1E1C086070308B +:100910001F0FC7E7F3FBFBFFFFFFFFFFFFFFFFFF1B +:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF8B2 +:1009600000000030381838108F1F1F1F1F1F0F8FF7 +:100970000000000000303818FFFFFFFFFFFFFFFFFF +:10098000FFFFFFFFFFFBFBF7F7EFEFEFE7F3F9F8F0 +:100990007CFE6F3F7EFCFE7FFFFFFFFFFFFFFFFF40 +:1009A0001C3E7EFEFE7F0E06FFFFFFFFFFFFFFFFE8 +:1009B000FFFFFFFFFFFFFFFF00000000000000003F +:1009C000000000000000009F00000000010FFFFF7A +:1009D0000001073FFFFFFFFFF8FFFFFFFFFFFFFFE3 +:1009E0000000E0FFFFFFFFFF0000001FFFFFFFFF11 +:1009F000000000FFFFFFFFFF0000FFFFFFFFFFFF02 +:100A00000000000000000000387CF6E7FFFFE7630D +:100A1000FCFEE7FFFEE7FF7E3C7EF3E0E0663F1E64 +:100A2000F8FCE6E7E7EFFE7CFCFEE0F8FCE0FE7F8A +:100A3000FEFFE0FCFEE0E0603E7FF0EEE7673F1F78 +:100A4000C6E7E7FFFFE7E763FC7E38383838FC7E0F +:100A50000607070707C77F3EC6EFFEFCF8ECE66314 +:100A6000C0E0E0E0E0E0FE7FC6EFFFFFFFEFE763FE +:100A7000C6E7F7FFFFEFE7637CFEE7E7E7E77F3EC8 +:100A8000FCFEE7E7FFFEE0607CFEE7E7FFEF7E3D70 +:100A9000FCFEE7EFFFFCEE6778FCE67C3EC77F3E9E +:100AA000FC7E383838383818C6E7E7E7E7E77F3E96 +:100AB000C6E7E7EF7F3E1C08C6E7F7FFFFFFF763D7 +:100AC000C6EF7F3E7CFEF663CCEEEE7E3C383818F7 +:100AD000FE7F1F3E7CF8FE7F00000000000000004B +:100AE000FFFFFFFFFFFFFFFF00000000000000000E +:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +:100BD000FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF29 +:100BE000FFFFFFFFFFFFFFFFF8FCFEFFFFFFFFFF20 +:100BF000FF630301F1FCFFFFFFFFFFFFFFFFFFFFAC +:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +:100C1000FFFFFFFFFFFFFFFFF7F7E7E7C3C3E3E1D6 +:100C2000E1F1F9FDFDFFFFFFFFFFFFFFFFFC783063 +:100C3000FFFFFFFFFF3F1F1FFFFFFFFFFFFFFFFE45 +:100C4000FCFBF7EFDFBF7FFFFFEFE7FFFFFFFFFFDB +:100C5000F0F0F8FCFEFEFFFF30000000010103038E +:100C60003F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFF94 +:100C7000FFFFFFFFFFFFFFFFFDFBFBFBFBFBFBF7A6 +:100C80000303030303030303FFBF9FFFFFFFFFFFF4 +:100C9000FFBF9FFFFFFFFFFFF7F7EFDFDFBFBFBF24 +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +:100CB000FFFF00000000FFFF03030000000003032C +:100CC000FFFF0F0F0F0FFFFFFEFCFDFEFEFEFEFEFF +:100CD000FFDF9FFFFFFFFFFF7F7F7F7F7F7F7F7FA4 +:100CE000FFFFFFFFFFFFFFFF7F6F677F7F7F00003A +:100CF000FFEFE7FFFFFF0000FFEFE7FFFCF0000062 +:100D00000303030300000000FFBF9FFFFF3F00003D +:100D1000FFBF9FFFFFFF0000FFDF9FFFFFFFFFFF01 +:100D20007F3F9FFFFFFFFEFCFFFFF9E0C080000058 +:100D3000FFFFFF0000000000FCE08000000000005A +:100D400000000000000000007F7F000000007F7FA7 +:100D5000FF7F7F1F01030100FFFFFFFFFFFFFF7FFA +:100D60001F03010001030100FFFFFFFFFFFFFFFF63 +:100D70001F033108051301040000000000000000FB +:100D8000FFFFFFFFFFFFF8E0FFFFFFFFFFFF030391 +:100D9000C08000000080E0FC0100000000000000B6 +:100DA000FF7F3F1F07010100C0C0FFFFFFFFFFFFE4 +:100DB0001FFFFFFFFFFFFFFF00000000000000001B +:100DC0000F030100000F3FFFFFFFFF1F07C3E3F109 +:100DD00003070F0F0F0360F8F3C387FFFEF800004F +:100DE000F0E0C0000001077FFFFF7F61FEFFFFFF13 +:100DF000FFFFFFFF3F87FBFDFFFFFFFFFFFFFFFF41 +:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +:100E1000FFFFFFFFFFFFFFFFFEFFBFDFEFF3FCFF62 +:100E2000FF7FBFDFEFF7FB01FAFEFFFFFFFFFFFFD2 +:100E3000FF7FFFFFFFFFFFFFFFFFFFFFFFFFFC0143 +:100E4000FFFFFFFFFCC000E000000000000000000A +:100E5000010101FF0F0F1F07020000FF171311FF11 +:100E6000030000C0E0F8FDFD000000000080C0C0ED +:100E700080C0E0F07038383800003F3F3E3C383FDB +:100E80000000FFFFFFFFFFFF0000FFFFFEFCF8FF79 +:100E90000719E1FF080808FF0101013F0808083FA2 +:100EA000010101FF080808FF000000000000000029 +:100EB000FFFFFFCFE3F8F8F80000C0F3FF7F00FF6B +:100EC0003F3FFFFEF8823EFEFFFFFF7F7F7F7F7F79 +:100ED000F8F8F8F8F8F8FCFFFFFFFFFFFFFFFF004E +:100EE000FFFFFFFFFFFCF0000F0300000000000009 +:100EF000FFFFFF1F0701030F0000000000000000BC +:100F00000000E0FFFFFFFFFF000000FFFFFFFFFF0B +:100F100003010000C0F8FEFFFFFF7F1F07010080F4 +:100F2000FFFFFFFFFFFF7F1FC0F0FCFFFFFFFFFF82 +:100F300007010000C0F0FCFF070307393EFFFFFF79 +:100F4000FFFFFFFF1FE0FFFFFFFFFFFFFFFFFFFFB0 +:100F5000FFFFFFFFFFFFFFFF000000000000000099 +:100F60000000FFFFFFFFFFFF0000FCFCFCFCFCFC9F +:100F7000FCFCFCFCFCFCFCFC0080E0F0FCFFFFFF48 +:100F8000FF000000000080C0FF0000000000000023 +:100F9000FC00000000000000000000000000000055 +:100FA000F0F8FEFFFFFFFFFF00000080C0E0F8FC4C +:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:100FC000FFFFFFFFFFFFFFFF0F010000000080C0D9 +:100FD0003F3F3F3F3F3F3F3F000103070F1F3F7F22 +:100FE000000000000000C0E0FFFFFFFFFFFFFFFF69 +:100FF00000000000000000000000000000000000F1 +:10100000FF80808080808080FF010101010101015B +:1010100080808080808080FF01010101010101FF4B +:1010200000000000000000000000000000000103BC +:1010300000000F1F7FFFFFFF0000F8FFFFFFFFFF13 +:1010400000000000C0F8FFFF00000000000000C02A +:101050000000000000000000000000000000000090 +:1010600000000000000000000000000000073F003A +:101070000F0F3F7FFFFFC300FFFFFFFFFFFFFFFFDB +:10108000FFFFFFFFFFFFFFFFF0FCFFFFFFFFFFFF82 +:10109000000000C0F0FEFFFF000000000000FDFFA8 +:1010A00000000E3F3FFFFFFF00000080F8FFFFFF42 +:1010B0000000000000FFFFFF000000000000F0FF44 +:1010C000000000000000030F000100000000FFFF0F +:1010D00000FF00003F0300FFFFFFFF07FFFF1FC3EC +:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1010F000000000000003073F0000001FFFFFFFFF8C +:1011000000000000F8FFFFFF0000000000E0FFFF0C +:1011100000000000000000FC000000010F1FFFFFA6 +:10112000011F7FFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:10113000FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFCE +:101140000000FFFFFFFFFFFE00000000000001079E +:101150000103070F1F3FFFFF000000000301000015 +:101160000000000080FE7F3F000000000000C08003 +:1011700000000000000000000F1F3F7F7FFF6F1F77 +:10118000FFFFFFFFFFFFFFFF04070000000000005C +:1011900080808080000000000000F8F0E0C0C00304 +:1011A000000000000038FFFF3F07000000008FFF35 +:1011B000FFFF1F0003FFFFFFFFFFFF3FFFFFFFFFDA +:1011C0000000000000000000F8FEFFFFFFFFFFFF2F +:1011D000000000000000000000000000000000000F +:1011E00000000000000000000000000000000000FF +:1011F00000000000000000000000000000070000E8 +:101200000000000003C07C0F0000000000FC000094 +:1012100000000000000000000000000000000000CE +:101220000000000000000000000000000000013F7E +:1012300000000000073FFFFF00031FFFFFFFFFFF4D +:101240000000000000071F3F000000000000000039 +:10125000000000000000000000000000000000008E +:10126000000000000000000000000000000000007E +:10127000000000000000000000000000000000006E +:10128000000000000000000000000000000000005E +:1012900000000000000000000000000000083860AE +:1012A0002367031F38000000F8F8F000000000007A +:1012B00000000107070E00193F7FF0C31F7FFEFCEF +:1012C000F870F0E0C08000000000000000000000A6 +:1012D0000100000000000000C0000008081010001D +:1012E00000000000000000000000000103000000FA +:1012F00000000000000000000001010301010303E1 +:1013000000808080C0C0C08000000000000000009D +:1013100000000000000000000000000001070E3C7B +:10132000070F4F9FBF0F02028000800000000000E7 +:101330000000000000000000000000030F0000009B +:101340000023C08000000000E80000000000000052 +:101350000000000000000000FF7F0F0300000000FD +:10136000FFFFFFFFFF1F0707FFFFFFFFFFFFFFFF5D +:10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10138000FFFFFFFFFFFFFFFFFFFFFFFEF0E0C000DA +:10139000F8E08000000000000000000000000000F5 +:1013A000000000000000000000000000000000003D +:1013B0000000000000000000030100000000000029 +:1013C000FFFFFF0000000000FFFFFFFE0000000025 +:1013D000FCE080000100000000084CE6EF74320CD5 +:1013E000000000C00000000000000000000000003D +:1013F00000000000000000000400000000000000E9 +:10140000000000000100000000204080C4EE6633B0 +:10141000000000000000C0E000000000000000002C +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:101450000000000000000000C020000000000000AC +:10146000000000000000000000000000000000007C +:10147000000000000000000100000000001060C03B +:101480000000000000000000000000003000030029 +:10149000000000000000000000000000000830E034 +:1014A0000000000001010207000109880C1C07016F +:1014B000000080E0701F06C3000000000000004034 +:1014C0000000000000007F80000000030001F00029 +:1014D000000000807080000000000000E0000000BC +:1014E00000000000000000000000000000000000FC +:1014F000000600000000000003071E0000000000BE +:101500008000000038E00000000000000000000043 +:101510000000000000000000070F1F3F3F0F0703FF +:10152000C060483C391F0100300C01070E07C100A4 +:10153000F0380018300880000000077E0F00010717 +:101540000E70800000F0FFFF00000000000000F0BF +:10155000000000000000031F00000000013FFFFF2B +:10156000071F3FFFFFFFFFFF00000000000000001B +:1015700080F8FFFFFFFFFFFF000000E0F8FEF8E04B +:101580000003070300000000FFFFFFFFFF1F07012C +:10159000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +:1015A000FFFFFFF0E0FFFFFFFFFE000000E0F0F8AC +:1015B000F800000000000000FF7F1F0F0700000080 +:1015C000FFFFFFFFFFFF3F0FFCFFFFFFFFFFFFFFDE +:1015D0000000E0F8FFFFFFFF0000000000C0F0FF88 +:1015E0000000007F3F0F070300000000F0FFFFFF37 +:1015F00000000000030FFFFF00000000FFFFFFFFDF +:101600000000000000FFFFFF0000000000C0FCFF22 +:1016100000000000000000000000000000000000CA +:101620000000000000000000FF7F3F1F07010000D6 +:10163000FFFFFFFFFFFFFF3FC0F0FCFCFFFFFFFFCE +:101640000000000000C0E0FC1F0F0F0701000000B9 +:10165000FFFFFFFFFFFF7F00FFFFFFFFFFFFFCF02B +:10166000FFFFFFFFF8800000FEF8E0000000000030 +:101670000000000000000000000000000000030166 +:10168000FFFF0F1E700000E090C08000000000000F +:10169000FFFF8000000000000000000000000001CB +:1016A0001EFCF0E080000001010307071F3F7FFFE1 +:1016B000070F1F1F3F7FFFFFFFFFFFFFFFFFFFFF22 +:1016C0003F7F000000F00EFF00000000000000005F +:1016D00000000000000000000001070F0F1F1F3F67 +:1016E0000001070F3F7FFFFF7FFFFFFFFFFFFFFFAF +:1016F000FFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFC +:10170000FFFFFFFFFEFCF8FFE3C3810000013FFF86 +:101710000000000001030F3F07071E3FFFFFFFDF30 +:10172000FFFFFFFFFFFFFFFFDFEEECE0E0E0E0E0A8 +:10173000FFFFFF7800000000E2EEC7030100013F59 +:10174000001FFFFFFFFFFFFFFFE3C0F8FCFFFFFFED +:10175000FFFFFF7F7FFFFFFFFFFFFFFFFFFFFCF0AB +:1017600000000000010101030000000103070F1F3A +:101770000F1FFFFFFEFEFCFC1F3F7FFFFFF9FFFF77 +:10178000F8F0E0C0C0808000E0C00000A090B8BCCD +:1017900000000000000000003F3F3F3F1F1F1F1FD1 +:1017A0000080C0C0E0E0F0F01F1F3F3F7F7FFFFFE1 +:1017B000FCFEFEFEFEFFFFFFFFFFFF3F3F1F0FE3AC +:1017C000FFFFFFFFFFFFFFFFFDF9F9FBF383073F7B +:1017D000FFFFFFFFFFFFFFFF000000000000000011 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:10180000FF80808080808081FF01010101010181D2 +:1018100081808080808080FF81010101010101FFC2 +:101820000000387FFFFFFFFF000006F8C0B8BFBF11 +:10183000000000000003FFC007071F3FFFFFF80084 +:10184000FF87FFFFFFFF0F3FFFFFFEFFFFFFFFDFF1 +:101850000000000000000000000000000000000088 +:101860001F1F3F3F3F7F7FFFFFFFFFFFFFFFFFFF88 +:10187000FFFFFFFFFFFFFFFFFFBFFFFFFFF9FFFFBE +:1018800000000000000000000001010303070F0F2B +:10189000FFFFFFFFFFFFFFFFFFFFFFFFFEF8FCFF63 +:1018A000E0C0800103070F1F0F1FFFFFFEFEFCFCBF +:1018B0000003070F0F1E3C78FFFFFF9F1F3F7FFFB6 +:1018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1018D000E0E0C0C0E0E0F0F00000000103071F3FBF +:1018E0001F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:1018F000E0E0E0C080E0F0F0000000000101030340 +:101900007FFFFFFFFFFFFFFFFFFFFFFFFBF9F0F08F +:1019100001070F1F3F3F3B7FFFFFFFFFFFFFFFFF61 +:1019200001070F1F3F3F3F7F000000000103070F2B +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000F88 +:1019500000000000000000000000000002011FFF66 +:10196000FFFFFFFFFFFF3F07030000030FFFFFFF25 +:10197000FFFEFCFCFEFEF8C08000E0F8FFFFFFFF6A +:1019800000000000000000000001070F3EF8F18792 +:1019900000000000000000000080F8800F7FFFFFC3 +:1019A000FF7F3F0F010000003F7FFFFFFFFFFFFFB2 +:1019B000FFFFFFFFFF7F1CFCFEFFFFFFFFFFFFFF9E +:1019C00000000000000000000001001FFFFFFFFFFB +:1019D00000000000003E7FFFFFFF1FFFFFF8E0C098 +:1019E000FFFEFEFFFFFF0F0040F8FFFFFFFFFFFFBE +:1019F00000000080FFFFFF000003F3FFFFFFFCF08B +:101A0000000000000000C080E0FCFFFF00000000BC +:101A10000000000000000000000030FF0000000097 +:101A2000000000000001871FFFFFFFFFE0800000B3 +:101A3000000000073FFFFFFEFCF8FFFF000300006F +:101A4000000000000000000F000000FF0000000385 +:101A5000000000000000C0F0000000C0FF7FFFFF9A +:101A60000F18F0C0808000000000FFFFFFFE0000A4 +:101A7000FF3F3F3F1F0F0F1E3FFFF8F8F000000031 +:101A8000000000000000000000010000FFFFFFFF59 +:101A9000000000000000000000FE3F1FFFFFFFFFEE +:101AA000FFFFFFFFFF00033FFFFF3F01061800009D +:101AB000FFFFFFFFFFFFFFFFFCF8C0C1030C0000AA +:101AC0000000000000000000000307FFFF0100000D +:101AD00000000000000000000000FFFFFFFF7F008B +:101AE00000C0FCFCFEFFFFFC783F3FFFFFFFFFFF55 +:101AF00000000000000F3F7FFFFFFFFFFFFFFFFF21 +:101B000000000000060100000FFFFFFFFFFFFF0CB9 +:101B10000000000000F00EFFFFFFFFF0C08000009B +:101B20000000000FFFFFFFFFFFFFFFFFFFFFFFFFB2 +:101B30000003FFFFFFFFFEFCFCF0E0E0C0808080C0 +:101B4000003C7EE7C3C7FEFCC6C7C3C3C3C7FEFCD9 +:101B500000000000001C3D736363636363626061A7 +:101B60000000000000F0E18B1B1B1B1B1B3BF1E086 +:101B70000018181818F8F9BB1B1B1B1B1BBBF1E046 +:101B80000000000000E0F1BB1B3BF3E303BBF3E309 +:101B90000018181818FFFF9D18181818181D0F079F +:101BA00000000000001898D8D8D8D8D8D8DD8F0702 +:101BB0000000000000C7CFDDD8D8D8D8D8D89818F2 +:101BC0000000000000078FDDD8D8D8D8D8DDCFC7F7 +:101BD00000C0C0C0C0C0C0C0C0C0C0C0C0C08000C5 +:101BE000000041E3E3E3777F000082C7C7C7DEFE62 +:101BF0007F3F3F3F1F1F1F19FEFCFCFCFCF8F898BD +:101C0000000103394721201010080F0000000000D8 +:101C100000008038C40809131907E1201010080FCC +:101C2000000103394721209030C00F08101020E038 +:101C300000008038C40808101020E00000000000F8 +:101C40000000000000000000000000000000000094 +:101C50000000000000000000000000000000000084 +:101C60000000000000000307010101030303030358 +:101C700007070707070F0F0F0F1F1F1F3F3F00002A +:101C8000000000000000FFFFFFFFFFFFFFFFFFFF5E +:101C9000FFFFFFFEFEFEFCFFFFFFFFFFFFFF000058 +:101CA00000000000000080C0C0C0C0C080808080F4 +:101CB00000000000000005FDFDF9F9F9F1E0000069 +:101CC00000000000000000000000000F1F3F7F7FA9 +:101CD0007FFFFFFFFFFFFFFFFFFFFFFFFF7F000012 +:101CE0000000000000000000000000FFFFFFFFCF29 +:101CF000CF8F9F9F9F3F3F3FFFFFFFFFFEF80000FA +:101D00000000000000000000000000F0F8F9F9F306 +:101D1000F3F3F7F7E7E7EFEFCFCFCF8F070300003D +:101D200000000000000000000000003FFFFFFFFE79 +:101D3000FEFEFCFCFCF8F8F9FFFFFFFBF1C0000021 +:101D40000000000000007F1F1F3F7FFFFFFFFF7F9D +:101D50007F7F7FFFFFFFFFFFFFFFFFFFFFFF000011 +:101D6000000000000000E0F0F0F0F0F0E1E3E7CF69 +:101D7000CFDFDFDF9F9FBFBF3F3F3F3F9FC70000D9 +:101D800000000000000000000000007FFFFFFFF9DE +:101D9000F9F3FFFFFFFFF0E0FFFFFFFFFFFF000091 +:101DA0000000000000000000000000FCFEFFFFFF3C +:101DB000FFFEFEFCFCE0000EFCFCF8F8F0800000EA +:101DC0000000000000000000000000000000000013 +:101DD00000000101010101030303030707030000E1 +:101DE0000000000000007FFF1F1F1F7F7F7FFFFF9D +:101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000F1 +:101E0000000000000000FFFFFFFFFFFFF3E1E3E73A +:101E1000EFFFFFFFFFFFBFBF9F9F8F0F87C7000030 +:101E2000000000000000F0FCFFFFFFFFFFFFFFFFCE +:101E3000FFFEFCF0C0E0F0F8FEFEFCFCF8F0000055 +:101E400000000000000000000000809FBF9F9F3F37 +:101E50003F3F3F7F7F7F7F7FFFFFFFFFFF7F0000D0 +:101E60000000000000000000000000E3F7F3F3F3BF +:101E7000E3E7E7E7E7CFCFCFFFFFFFFFDF0F00008C +:101E80000000000000000000000000FCFEFFFFFF5B +:101E9000FEFEFEFCFCFCFCF8F9F9F9F9FEFC000082 +:101EA00000000000000000000000003F7F3F3F3FB7 +:101EB0007F7F7F7FFFFFFFFFFFFFFFFFFF7F0000B0 +:101EC0000000000000000000000000E1F7EFFFFF4D +:101ED000E7C7C7CFCFCF8F9F9F1F1F3FBFDF000038 +:101EE0000000000000000000000000FCFFFEFEFCFF +:101EF000FDFDFDF9FBFBFBF3F7F7F7E7E3F9000066 +:101F00000000000000000000000000FFFFFFFFFFD6 +:101F1000FFFFFFFFFFFFFEFEFEFCFCFCFEFF0000DC +:101F2000000000000000000000000087DFBFFFFF8E +:101F30009F1F1F3F3F3F3F7F7F7F7FFFFF7F00004F +:101F40000000000000000000000000F0F8F8F9F3C5 +:101F5000F3F7F7E7E7E7EFCFCFCFCF8F87E10000C9 +:101F600000000000000000000000000F7FFFFFFEE7 +:101F7000FEFCFFFFFFFFFCF8FFFFFFFFFFFF00007D +:101F80000000000000000000000000FFFFFFFF7FD6 +:101F90007FFFFFFFFFF80003FFFFFEFEFCC0000015 +:101FA00000000000000000000000000F9FC7C7C72E +:101FB000CF8F8F1F1F1F1F9F3F3F3F3F7F7F00001F +:101FC0000000000000000000000000F8FDFDFFFF21 +:101FD000FFFEFCF8F8F8F0F0F0F0E0E0F8F00000B8 +:101FE00000000000000000000000007CFCF8F8F891 +:101FF000F0000000000000000000000000000000F1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2f.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2f.hex new file mode 100644 index 00000000..105c8ccc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2f.hex @@ -0,0 +1,513 @@ +:100000000000000000000000FF7F3F1F0F070301FA +:100010000080C0E0F0F8FCFEFFFFFFFFFFFFFFFFE6 +:10002000FFFFFFFFFFFFFFFF0000000000000000D8 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:100060000000000000000000000000000000000090 +:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:1000800000000000000000003F00001F0F00000102 +:10009000000000203000003E3F00003F3F00003FD6 +:1000A0000000000000000000FC0000FCFC0000FC60 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000FF00001F0F070301F8 +:1000D000000000E0F0F8FCFEFF0000FFFFFFFFFF64 +:1000E0000000000000000000000000000000000010 +:1000F0000F001B00001D0000F000D80000B8000039 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F0000101003C173F3F1E80C0F070F0F0E000AD +:10030000000000000000001CFF7F3F1E0E06001CC6 +:100310000080C0E0F0F8FCFCFFFFFFFEFEFEFCFCEE +:10032000000000000000003CFF7F3F1F0F07033D5F +:100330000080C0E070783C3EFFFFFFFF7F7F3F3FC3 +:10034000387FFF0000000000F87FFF100000000071 +:1003500038FFFFE0E0E0C080F8FFFFF0E0E0C080A1 +:100360007EFEFF00000000007FFFFF0F0703030178 +:100370007EFEFF00000000007FFFFF0F0703030168 +:100380000000000000000000FF7F3F1E0C00000086 +:100390000080C0E0F0F8F8F8FFFFFFFEFCF8F8F886 +:1003A000000000000000000000000000000000004D +:1003B0000000000000000000FFFFFF1F0F070707FD +:1003C000000000001018181C000000001018181C75 +:1003D000000000001018181CF0F0F0F0F0F8F8FC25 +:1003E000000000040C0C1C3C000000040C0C1C3C25 +:1003F000000000040C0C1C3C000000040C0C1C3C15 +:10040000FFFFFFFFFFFFFFFFFFFFFF0000000000F7 +:10041000FEF80000000000007F1F01000000000047 +:10042000FFFFF80000000000FFF8000000000000DF +:10043000FFFF7F3F0F030000FFFFFFFFFFFEF8C03D +:10044000FFFFFFFFFFFFE000FFFFFFFCC000000019 +:10045000FCF0800000000000FFFFFFFFFFFFFFC077 +:10046000FFFFFEFCF8E0000080000000000000003C +:10047000FFFF7F0F00000000FFFFFFFFFF0F0100E5 +:10048000FFFFFFFFFFFFFCF0FEFFFCF8E080000035 +:10049000FFFFFCFCF8F0F8FC7F0700000000000004 +:1004A000FFFFFFFFFFFEF8E0C0800000000000003B +:1004B0000080E00000000000FFFFFFFF00000000E0 +:1004C0000000000000000000FFFFFFF8000103072C +:1004D000070707070E0F1C1860000000000000004F +:1004E000FFFFFFFFFFFEF8F0E1E77EF8F8F0F0E035 +:1004F000C0C0C00000000000FFFFFFF0C00000000F +:10050000FFFCF0C000000000FFFFFFFFFFFEF8E06F +:10051000C08000000000000000000000000000009B +:100520000000000000000000FFFFFFFFFF000000D0 +:100530000000000000000000FFFFFFE000000000DE +:10054000FFFFFCF0C0000000FFFFFFFFFFFEF8E030 +:10055000C080000000000000FFFFFCF0E00101018E +:100560000F070307070F0E7EF867FEF8E0E0C08074 +:10057000E0F0C00000000000FFFFFFFFFFFFFCF005 +:100580008000000000000000FFFFFCF0C000000041 +:10059000FFFE80000000000080000000000000005E +:1005A0000000000000000000FFFFFFFFFFFFFF0052 +:1005B00007000000000000009F0F03010000000082 +:1005C00000808080808080C0C0C0C0406060E0E06B +:1005D0000000000000010101E0E0F0F0F8FCFFFF86 +:1005E00000000000000000C080406060303030300B +:1005F0007F3F3F1F01000000C0E0F8C08000000006 +:10060000000000000001020C0000010103030F1FA5 +:10061000F0F0F0F0E0E0E0C00000000000000101B8 +:100620001818397FFFFFFFE03FFFFFFEFCF080005E +:10063000C080000000000000030200000000000075 +:1006400000000000000000000000000000000000AA +:1006500008081010302060600000010303070F1F1E +:10066000C0C0C0C0E0E0E0E00000000103030303FD +:100670003F7FFFFFFFFEFEFE800000000000000045 +:10068000070D192000000000FCFCF8F8F0E0C08025 +:1006900080808080808080C0C0C0C0406060E0E01A +:1006A0000000000001030303FCFEFFFFFFFFFFFF4C +:1006B0000000008080C0E0F8FF7F3F0300000000E2 +:1006C000FCFEFFFF3F0301000000000000000000EF +:1006D000000000000000000000000000000000001A +:1006E00000000000000000000103030301000000FF +:1006F000C060301F1C38FEF8F8F0F0F0F87C3E07C0 +:10070000000C70C08080C0E0000000000001030702 +:100710000000000000000000000000000080C0E0B9 +:10072000F8F0E0E0C0E0F0F0F8F0706030000C06A7 +:100730000303010100000000080810103020606071 +:10074000C0C0C0C0E0E0E0E0000000010103070F0E +:100750003F7FFFFFFFFEFEFE800000000000000064 +:1007600000000000000101001F3F7FFFFFFFFFFFAF +:10077000FCFCFCFCF8F8F8F0FF7F7F7F3F1F1F1F99 +:10078000F0E0E0E0E0C0C0C00000000000000000B9 +:10079000000000000000000018189CFFFFFFFF078A +:1007A000000000C0F8FFFFFF0000000000C0FE8056 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D00000000000009FFFFF00000000000080F804 +:1007E000000000000001010300040830E0C0808028 +:1007F0000F0F0F0F0F0F0F0380000000009FFFFF70 +:1008000000000000000000000000000000000000E8 +:100810000000000000000000FFFFFFFFFFFFFFFFE0 +:10082000FF63030101000000FFFFFFFFFFFF7F07E1 +:10083000F8FFFFFFFFFFFFFF01E1FFFEFCFCF8F800 +:10084000C0400000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:10086000FF03000000000000F8FC3E1E0F07070316 +:1008700000000000000000C00000000000000000B8 +:1008800000000000000080F80000000000000000F0 +:100890000000000000000003FF6303010100FEFFF1 +:1008A000FFFFFFFFFFFF7F070080E0F0FCFEFFFF80 +:1008B00000000000000000800000000000000000B8 +:1008C0000000000000000000F8E000000000000050 +:1008D000000007FFFFFFFFFF0001FFFFFFFFFFFF1B +:1008E00003FFFFFFFFFFFFFF7F7F7F7F7F7F3F3F94 +:1008F000F0FEFFFFFFFFFFFF000387FFFFFFFFFF8B +:1009000000000000000000000002060C080010308B +:10091000E0F038F8FCFCFCFF000000000000F0F8FC +:10092000000080F0FFFFFFFF00000000F8FFFFFF66 +:10093000000000000000C0FE0000000000000000F9 +:10094000000000000000000000000000000000C0E7 +:1009500000000000000000007F3F3F1F010103076F +:10096000000000000808181070E0E0F0F8F8F87CCB +:100970000000000000000818C0E0E0C0C0C0C08057 +:10098000000000000004040808101010180C0607EE +:1009900000386103061C007F01030F1F1F3F3F7FCC +:1009A00000021232007302067FFFFF7F3F3F1F0FDE +:1009B000C0E0F0F8F8FEFFFF0000000000000000BB +:1009C0000000000000000000000000000000000324 +:1009D0000001073F3F7EFCF8F8FFFFFF1F3F7FFF4E +:1009E0000000E0FFFFFFFFFF0000001FFFFFFFFF11 +:1009F000000000FFFFFFFFFF0000FFFFFFFFFFFF02 +:100A000000000000000000000010302101392163C7 +:100A1000003821033821037E001833202000031EF4 +:100A2000003020212123067C003E20003C20007F56 +:100A3000003F20003E202060001F30202101011FC8 +:100A40000021210139212163004E08080808007E99 +:100A5000000101010101033E0023260C2020206338 +:100A6000002020202020007F00010101292921638E +:100A70000001010121212163003821212121033EB0 +:100A800000382121033E2060003821212123043D2C +:100A90000038212107202067003026003801033E5E +:100AA000004E080808080818002121212121033ED2 +:100AB0000021210103060C080021210101113163ED +:100AC0000001030600103063002222060C080818FB +:100AD000007103060C18007F0000000000000000F9 +:100AE0000000000000000000000000000000000006 +:100AF000010103070F0F0703000000307CFCF8F82A +:100B0000030303030101010700808080C0E0F1F1CD +:100B1000FF3F7F7FFFFFFFFFF8F0F3FFFFFFFFFFC7 +:100B20007FFFFFFFFFFFFFFFF9FBFFFFFFFFFFFF5F +:100B3000FFFFFFFFFFFEFCF8FCF0E080000000007C +:100B4000E0C08080800C1C38FFFFFFFFFFFFFFFF2D +:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +:100B7000FFFFFFFEFEFEFEFC000000000000000084 +:100B8000FCFCFCFCFEFEFEFC00000000000000007F +:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFEFCFCFC6F +:100BA0000301000000000000FFFFFF7F7F3F1F07E1 +:100BB0000080C0FCFFFFFFFF03010000C0FCFEFF40 +:100BC000FFFFFFFFFFFEFEFCFFFBF7CF1F3F7F7F16 +:100BD000F0F0F0F0F0F0F0F87FFFFFFFFF600000B2 +:100BE000FFFFFFFFFFFF7F0FF8FCFEFFFFFFFFFF90 +:100BF00000000000F0FCFFFF00030F1F3F7FFFFF1E +:100C0000C0FEFFFFFFFFFFFF0007FFFFFFFFFFFF2B +:100C1000FFFFFFFFFFFFFFFF080818183C3C1C1EEA +:100C20001E0E06020200000000000000F0FEFC782C +:100C30000000000001033F3FC0E0E0C0C0C0C08032 +:100C40000003070F1F3F7FFFFFE7E7FFFFFFFFFFE7 +:100C5000F8F8FCFEFFFFFFFF7830000103038787F1 +:100C60007F7FFFFFFFFFFFFFF0FFFFFFFFFFFFFFA3 +:100C70008FFFFFFFFFFFFFFF0103030303030307D2 +:100C80008787878787878787FF9F9FFFFFFFFFFFF4 +:100C9000FF9F9FFFFFFFFFFF07070F1F1F3F3F3F04 +:100CA000FFFFFFFFFFFFFFFFFEFCFCFCFCFCFCFE68 +:100CB000FFFFFF000000FFFF878787000000878796 +:100CC000FEFCFC0C0C0CFEFE00000100000000000D +:100CD000FE9F9FFFFFFFFFFB7F7F7F7F7F7F7F7FE9 +:100CE000F8FCFEFFFFFFFCF87F67677F7F7FFF0058 +:100CF000FFE7E7FFFFFFFF00FFE7E7FFFFFCF00074 +:100D00008787878703000000FF9F9FFFFFFF3F004B +:100D1000FF9F9FFFFFFFFF00F09080E0C08000007A +:100D200080C0E0F0FFFFFEFC03030100C080000074 +:100D3000E0F0FC00000000000000000000000000E7 +:100D400000000000000000007F7FFF0000007F7FA8 +:100D50000000601F01030100000000FFFFFFFF7F94 +:100D60001F03010001030100FFFFFFFFFFFFFFFF63 +:100D70001F033108051301040000000000000000FB +:100D8000FFFFFFFFFFFFF8E0FFFFFFFFFFFF030391 +:100D9000E0F0F8FEFFFFFFFF01000000E0FCFCFFB9 +:100DA000FF7F3F1F07010130FFFFFFFFFFFFFFFF36 +:100DB000FFFFFFFFFFFFFFFF000000010303000034 +:100DC000FFFFFFF8C0000000FFFFFF1F0703030144 +:100DD00000000000000060F80000000000000003B8 +:100DE0000103070F1F3EF880FFFFFFBF1F07010031 +:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:100E0000F8FCFEFFFFFFFFFF00000080F0FFFFFF88 +:100E1000000000017FFFFFFF7F7F7FFFFFFFFFFFDD +:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +:100E3000FFFFFFFFFFFFFFFF0000000000000000BA +:100E400000000000010110F00000000000000000A0 +:100E5000FEFEFE00F0F0C0E0FDFFFF07EFEFEF0049 +:100E6000F8FCFCF8F0F8FDFCFDFDFDFDFD7D3D3DD1 +:100E70007D7DFDFDFDFDFDFD000000003D332700F3 +:100E800000000000FFFFFFFF00000000FDF3E7800F +:100E900000061E00F7F7F7003E3E3E0037373700EA +:100EA000FEFEFE00F7F7F700FDFDFDFDFDFDFDFD7B +:100EB000FFF0C0F0DCC7C0C0FDFD3D0C0080FFFFAF +:100EC0000F010001077DC1C1FFFF7FFFFFFFFFFF93 +:100ED000808080C0E0F0FCFFFFFFFFFFFFFFFF000E +:100EE000C0C0C0C0C0C0C000CFC3C08000000000F0 +:100EF000FFFFFF1F0701030F0000000000000000BC +:100F00000000E0FFFFFFFFFF000000FFFFFFFFFF0B +:100F100003010000C0F8FEFFFFFF7F1F07010080F4 +:100F2000FFFFFFFFFFFF7F1FC0F0FCFFFFFFFFFF82 +:100F300007010000C0F0FCFF0700180601C0C080D8 +:100F4000FF000000E01F3F3F80808080C0E0F8FF8E +:100F50003F3F3F3F3F3F3FBFFFFFFFFFFFFFFFFF21 +:100F6000FF00000000000000FF0000000000000083 +:100F70000000000000000000FF7F1F0F03000000C2 +:100F800000FFFFFFFFFF7F3F00FFFFFFFFFFFFFFAF +:100F900000FEFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:100FA0000F07010000000000FFFFFF7F3F1F070346 +:100FB00000000000000000000080C0E0F0F8FCFE2F +:100FC000FFFFFFFFFFFFFFFFF0FEFFFFFFFF7F3F81 +:100FD0003F3F3F3F3F3F3F3F000000000000000019 +:100FE000FFFFFFFFFFFF3F1FFFFEFCF8F0E0C080A8 +:100FF00000000000000000000000000000000000F1 +:10100000FF80808080808080FF010101010101015B +:1010100080808080808080FF01010101010101FF4B +:10102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF867 +:1010A000FFFFFFFFFFFFF103FFFFFFFFFFFFFFFF5A +:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1010D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:1010F000FFFFFFFFFFFFFFFEFFFFFFF8FCE08000A8 +:10110000FFFFFFFF07000000FFFFFFFFFF1F0000C2 +:10111000FFFFFFFFFFFFFF03FFFFFFFFFFFFFFFFDB +:10112000FFFFFFFFFFFFFFFFF8E106F8803060C020 +:1011300000000000000000000F00000000000000A0 +:10114000FFFF000000000000FFFFFFFFFEFCF1C7F3 +:10115000FFF3C78F1F3FFFFF7F1F0F070300000034 +:10116000FFFFFFFFFF01003FFFFFFFFFFFFF3FFF0C +:10117000FFFFFCF8F0C080008F1F3F7F7FFF6F1FD5 +:10118000FFFF3939FFFFFFFF1F07010000000000CC +:10119000FFFFFFFF7F3F1F0FFCF800000000000370 +:1011A000000000000038FFFF3F07000000008FFF35 +:1011B000FFFF1F0003FFFFFFFFFFFF3FFFFFFFFFDA +:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1011D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1011E000FFFFFFFFFFFFFFFEFFFFFFF8C0FFFF0055 +:1011F000C08000003CFF000000000000000700006D +:101200000000000003C07C0F0000000000FC000094 +:10121000FF3F0F0100000000FFFFFFFF0000000084 +:10122000FFFFFFFFFF000000FFFFFFFFFFFF013F89 +:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10125000FFFFFFFFFEFCF0F0F0E080000000000068 +:101260000700000000000000FFFF3F070000000033 +:10127000FFFFFFFFFF3F0F03000000000000000022 +:1012800000000000000000000000000000E0FF3F40 +:10129000000000000000FFFF0000000000E0F0F090 +:1012A0002060001F2000000000000000000000007F +:1012B0000000000000000018000000000000000016 +:1012C00000000000000000001F03030100000000F8 +:1012D0008FC3F3870F1F0307F8F0E0C08000C0E062 +:1012E00000000000000000001E14000103000000C8 +:1012F000C000000000000000000101030101030321 +:1013000000808080C0C0C08000000000000000009D +:1013100000000000000000000000000001070E3C7B +:10132000070F4F9FBF0F02028000800000000000E7 +:1013300000000000000000000000000000000000AD +:101340000003000000000000E800000000000000B2 +:101350000000000000000000FE7F0F0300000000FE +:10136000000080C0E010000000000000000000004D +:10137000000000000000000000000000000000006D +:101380000000000000000000000000010F1F3CF002 +:10139000001870E0C0000000000000000000000025 +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C0000000000000000000000000010700000015 +:1013D000031F70E0E000000080000000000000003B +:1013E00000000000000000000000000000000000FD +:1013F00000000000000000000000000000000000ED +:1014000000000000000000000000000000000000DC +:101410000000000007070F0F000010E1DFFFFFFFD3 +:10142000000000C38CF1FFFF000001011FFFFFFF60 +:10143000073EC0B8FCFFFFFFC0000000C0800020D6 +:1014400000000000000007380000001E70C000000F +:101450000000000000000000070F03000000000073 +:10146000FFFF070000000000FFFFFF3F0F03000029 +:10147000FFFFFFFFFFFF7FFFFFFFFEFFFFFFFFFFFD +:10148000C00030E0C1C3CFFF0000000030C71FFF25 +:10149000000000008000861C00000000000830E012 +:1014A00000000000010103010C3F7FFFFFFFFFFF71 +:1014B00070F8FEFFFFFFFFFF000000C0E0F0F0F853 +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F0000106000000000000C3071F0707030000EB +:10150000FFFFFFFFFFFEF000FFFCFCF8E000000023 +:10151000F8C0000000000000000000000000000013 +:10152000FFFFFFFFFFFFFFE0FFFFFEF8F1F8FE0007 +:10153000F8F8FCE4CCFC7E00000000000000000095 +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000001020C0000000000E07806000000DE +:1015A000000000000000000000000000000000003B +:1015B000000000000000000000000000000000002B +:1015C000000000000000000000000000000000001B +:1015D000000000000000000000000000000000000B +:1015E000FFFFFF0000000000FFFFFFFF0F000000F3 +:1015F000FFFFFFFFFCF00000FFFFFFFF0000000007 +:10160000FFFFC0FCFF00000000F80000E03C00000D +:1016100000000000000000000000000000000000CA +:1016200000000000000000000000000000000000BA +:1016300000000000000000000000000000000000AA +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:1016700080C0E0F0FCFFFFFF0000000000C0E3FFBF +:10168000FFFEF0E18FFFFF00EF3F7FFFFFFEE00076 +:101690008080FFFFFFFFFFFE00FFFFFFFFFE8001D6 +:1016A000FEFCF0E0800000000103070707070F0FB2 +:1016B00000000000000000000F0F0100000000000B +:1016C0003F7FFFFFFF0F01FE00000000000006FC4F +:1016D000FFFFFFFCE0000000F081070F0F1F1F3D20 +:1016E00000FFFFFFFF7FFFFF393141E0F0F0F8F826 +:1016F000FFFFFFFFFFFFFFFFFDFDFEFEFEFCF08092 +:10170000FCE0C000010307001C3C7EFFFFFEC000A0 +:101710000000000001030F3F07031C3EFFFFFFDF37 +:10172000FFFFFFFFFFFFFDF9DFEEECE0A0E0E0E0F0 +:10173000FFFFFF7800000000E0E0C00000000000B4 +:101740000000000000000000000000000000000099 +:101750000000008080000000000000000000000089 +:1017600000000000010101030000000103070F1F3A +:101770000F1FFFFFFEFEFCFC1F3F7FFFFFF9FFFF77 +:10178000F8F0E0C0C0808000E0C000006070888C8D +:10179000000000000000000007030100000000003E +:1017A0000080C0C0E0200000000000000000406099 +:1017B00000000000000103077F7F3F3F3F1F0F0332 +:1017C0000F8FEFF7F7F7FBFB010101030303073F5F +:1017D000FBFFFFFFFFFFFFFF1F0100000000FFFFF7 +:1017E000FFFF3F070100FFFFFFFFFFFFFF7F1FF726 +:1017F00000000000000000000000000000000000E9 +:10180000FF80808080808081FF01010101010181D2 +:1018100081808080808080FF81010101010101FFC2 +:10182000030F3F7FFFFFFFFFFFFFF987FFC7C0C028 +:10183000FFFFFFFFFFFC003FF8FFFFFF3F7FFEFCC5 +:1018400000F8F8FCFFFF0F3F07031C3EFFFFFFDF20 +:101850000000000000000000000000000000000088 +:101860001F1F3F3F3C784000FFFFE080000000006A +:10187000F0000000010101031F3F7FFFFFF9FFFFA0 +:1018800000000000000000000001010303070F0F2B +:10189000F1FFFFFFFFFFFFFFF8F0F0F0F0F8FCFFB3 +:1018A0000000000103070F1F0F1FFFFFFEFEFCFCDF +:1018B0000003070F0F1E3C78FCF8F080000000E0EA +:1018C00001020E0C1C1C3878000000010103070EF9 +:1018D00060E0C0C0E0E0E0000000000103071F3F3F +:1018E0001F3EF8F0E0800000000000000000000053 +:1018F0000000000000203070000000000101030320 +:101900007FFFFFFFFFF8E0C0FFFFFFFF9B09000024 +:1019100001070F1F3F3F3F7F0000E0F9F9FFFFFF86 +:101920000000000000000000000000000103070F9D +:1019300000000000000000000000000000000000A7 +:10194000000000000000FFFFFFFFFFFFFFFFFFF0B0 +:1019500000000000000000F0FFFFFFFFFDFFE30FAD +:101960000000000000000100000000000000000076 +:101970001F1F3F7F7F78E000000000000000000094 +:101980000000000000000000C0FEF8F0C1C70F7F9B +:1019900000000000000000007E78077FFFFFFFFFCF +:1019A0000F8FCFFFFF7F3F1F00000FFFFFFFFFFFE5 +:1019B000FFFFFFFFFFFFFF0301F0F0E1C3C7CFCF41 +:1019C00000000000000018E00001FFFFEFEFEFEF64 +:1019D00000000000003E7FFFFFFFE0FFFFFFFFFF72 +:1019E000F7FEFCF0C080F0FFFFFFFFFFFFFFFFFFEF +:1019F000FF7F1F00000000FFFFFFFFFFFFFFFCF065 +:101A0000000000000000C0FFFFFF3FFFFFFFFCFFE2 +:101A100000000000000000F8FFFCF0F0DF3FFFFFD7 +:101A2000FFFFFFFF1F1D7FFFFFFEFCF8E0800000AF +:101A3000FFFFFFFCFCF0F0E0800000000000000071 +:101A4000000000000000000FC0000000FFFFFFFCCE +:101A5000000000000000C0FF000000000080000344 +:101A600010E7080000000000000000000000000077 +:101A70003FDF0F0F0703000100000000000000001F +:101A8000000000000000FFFE00000000001F7FFFBC +:101A900000000000001FFC000000000003FFFFFF2B +:101AA000FFFFFFFFFFFFFCC0000000010618000061 +:101AB000FFFFFCE000000000000000C1030C00007C +:101AC000000000033CC00000000307FFFFFFFFFF12 +:101AD000000000F0000000000000FFFFFFFFFFFF1C +:101AE000FF3F00000000000000070F1F7FFFFFFF07 +:101AF000FC800000000F3F7FFFFFFFFFFFFFFFFFA5 +:101B0000000000FF010000000FFFFFFFFFFFFFFFCD +:101B10000000FFFFFF0F01FEFFFFFFFFFFFFFFFFC2 +:101B20000F0F1F3FFFFFFFFFFFFFFFFFFFFFFFFF45 +:101B3000FFFFFFFFFFFFFEFCFCF0E0E0C0808080C5 +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE000000000081C1C080000000010383820000D +:101BF00000000000000000000000000000000000E5 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000F1F0707070F0F0F0F0F1F1F1F1F1F3F2C +:101C50003F3F3F7F7F7FFFFF00000000000000004C +:101C6000FEFFFFFFFFFFFEFEFEFEFCFCFCF8F8F8A7 +:101C7000F0FFFFFFFFFFFFFF00000000000000007B +:101C80000000000000000000010101030303030342 +:101C900017F7F7E7E7E7C781000000000000000042 +:101CA00000000000003F7FFFFFFFFFFEFEFEFEFC86 +:101CB000FCFCFFFFFFFFFFFF000000000000000032 +:101CC0000000000000FFFFFFFF3F3F3F7F7F7FFFDF +:101CD000FFFFFFFFFFFEF8E0000000000000000033 +:101CE0000000000000C0E3E7E7CFCFCFDFDF9F9F1A +:101CF000BFBF3F3F3F3F1F0F00000000000000003C +:101D00000100000001FFFFFFFFF9F9F9F1F3F3E330 +:101D1000E3E7FFFFFFEFC703000000000000000043 +:101D2000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFEFEC5 +:101D3000FEFEFCFCFCFCFEFF0000000000000000BA +:101D400080C0C0C0C0C1878F9F3F3F7F7F7F7F7FA4 +:101D5000FFFFFFFFFFFF7F1F0000000000000000EB +:101D60000000000000FFFFFFFFE7E7CFFFFFFFFFDE +:101D7000C080FFFFFFFFFFFE00000000000000002A +:101D80000000000000F0F8FCFCFCFCF8F8F0F0802B +:101D90000038F0F0E0E0C0000000000000000000AB +:101DA0000103000000010101030303030707070704 +:101DB000070F0F0F0F1F1F0F000000000000000093 +:101DC000FFFF7F7F7FFFFFFFFFFFFFFFFFFFFFFFA3 +:101DD000FEFEFEFEFEFCFEFF000000000000000014 +:101DE000FFFFFFFFFFFFCF878F9FBFFFFFFFFFFFBB +:101DF000FFFF7F7F3F3F1F1F00000000000000002B +:101E0000C0F0FCFCFEFEFEFEFEFCFCF8F0C1018111 +:101E1000C1E1FBFBF3F3E3C10000000000000000A0 +:101E200000000000007FFF7F7FFFFFFFFFFFFFFF3D +:101E3000FFFFFFFFFFFFFFFC0000000000000000AD +:101E400000000000008FDFCFCFCF8F9F9F9F9F3F6D +:101E50003F3FFFFFFFFF7F3F00000000000000004A +:101E60000000000000F0F9FCFCFCF9F9F9F1F3F3D3 +:101E7000F3E3E7E7E7E7FBF1000000000000000004 +:101E80000000000000FFFFFFFFFFFFFFFFFFFFFF5D +:101E9000FEFEFEFCFCFCFEFF000000000000000057 +:101EA000000000000087DFBFFFFF9F1F1F3F3F3F75 +:101EB0003F7F7F7F7FFFFF7F00000000000000006A +:101EC0000000000000F3FFFBFBF3F7F7F7E7EFEF8D +:101ED000EFCFDFDFDF9F8FE7000000000000000092 +:101EE0000000000000FEFFFEFFFFFEFCFCFCFCFC0F +:101EF000F8F9F9F1F1F3FBFD00000000000000002B +:101F000000000000001F7FFFFFFF7F7F7FFFFFFFBC +:101F1000FFFFFFFFFFFEFEFF0000000000000000CB +:101F20000000000000C0E1E3E7CFCFDFDF9F9F9F0D +:101F3000BF3F3F3F3F3F1F87000000000000000001 +:101F400000000000003FFFFFFFF9F9F3FFFFFFFF74 +:101F5000F0E0FFFFFFFFFFFF0000000000000000B7 +:101F60000000000000FCFEFFFFFFFFFEFEFCFCE0A7 +:101F7000000EFCFCF8F8F101000000000000000079 +:101F800000000000003F7F1F1F1F3F3F3F7F7F7FFC +:101F90007F7FFFFFFFFFFFFF000000000000000049 +:101FA0000000000000E1F7F7FFFFFFF8F0E0E0E0DD +:101FB000C0C0C0C08080E0C0000000000000000081 +:101FC0000000000000F0F0E0E0E0C00000000000D1 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2j.hex b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2j.hex new file mode 100644 index 00000000..a06e2825 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/roms/nu/lr-e-2j.hex @@ -0,0 +1,513 @@ +:100000000000000000000000FF7F3F1F0F070301FA +:100010000080C0E0F0F8FCFEFFFFFFFFFFFFFFFFE6 +:10002000FFFFFFFFFFFFFFFF0000000000000000D8 +:1000300000000000000000000000000000000000C0 +:100040000000000000000000FFFFFFFFFFFFFFFFB8 +:100050000000000000000000FFFFFFFFFFFFFFFFA8 +:100060000000000000000000FFFFFFFFFFFFFFFF98 +:100070000000000000000000FFFFFFFFFFFFFFFF88 +:1000800080FF808080FF8080BFFF809F8FFF808106 +:1000900080FF80A0B0FF80BEBFFF80BFBFFF80BFDA +:1000A00002FE020202FE0202FEFE02FEFEFE02FE50 +:1000B0000000000000000000000000000000000040 +:1000C00000FF000000000000FFFF001F0F070301FA +:1000D00000FF00E0F0F8FCFEFFFF00FFFFFFFFFF66 +:1000E0000000000000000F3F000000000000F0FCD6 +:1000F0001F3F3F223F3F241FF8FCFC44FCFC24F838 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F0003F3FFF430000000080C0F0F0D0F06000FE +:10030000000000010101031FFF7F3F1F0F07031FB4 +:100310000080C0E1F1F9FFFFFFFFFFFFFFFFFFFFDC +:10032000000000008080C0F8FF7F3F1F8F87C3F967 +:100330000080C0E0F0F8FCFAFFFFFFFFFFFFFFFBCB +:100340003F7FFF0F1F1F3F7FFF7FFF1F1F1F3F7F4D +:100350003FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10036000F0E0C0F0F8FCFCFEF1E1C0FFFFFFFFFF92 +:10037000F0E0C0F0F8FCFCFEF1E1C0FFFFFFFFFF82 +:100380000000000103070707FF7F3F1F0F07070754 +:100390000080C0E1F3FFFFFFFFFFFFFFFFFFFFFF54 +:1003A00000000080C0C0F0C000000080C0C0F0C0ED +:1003B00000000080C0C0F0C0FFFFFF9FCFC7F7C79D +:1003C0000F0F0F0F0F0707030F0F0F0F0F07070375 +:1003D0000F0F0F0F0F070703FFFFFFFFEFE7E7E325 +:1003E000E0E0E0C0C0808000E0E0E0C0C0808000CD +:1003F000E0E0E0C0C0808000E0E0E0C0C0808000BD +:10040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +:10041000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:10042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +:10043000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:10044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +:10045000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:10046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:10047000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:10048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +:10049000FFFFFFF3C70F070380F8FFFFFFFFFFFF1A +:1004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:1004B000FF7F1FFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:1004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF847 +:1004D000F8F8F8F8F1F0E3E79FFFFFFFFFFFFFFFF9 +:1004E000FFFFFFFFFFFFFFFFFED88107070F0F1F72 +:1004F0003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:10050000FFFFFFFFFEF8FCFEFFFFFFFFFFFFFFFB0B +:10051000F1E3C3870703010300808080C0E0F0F1AE +:10052000F9FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:100530000000000000000000FFFFFFFFFFFFFFFFC3 +:10054000FFFFFFFFFEF8FCFEFFFFFFFFFFFFFFFDC9 +:10055000F8F1E1C303010003FFFFFFFFFFFEFEFE12 +:10056000F0F8FCF8F8F0F181879801071F1F3F7F32 +:100570001F0F3FFFFFFFFFFFFFFFFFFFFFFFFFFF1B +:10058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +:10059000FFFFFFFFFFFFFFFF879801071F1F3F7F40 +:1005A0001F8F3FFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:1005B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:1005C000FF7F7F7F7F7F7F3F3F3F3FBF9F9F1F1FFB +:1005D000FFFFFFFFFFFEFEFE1F1F0F0F07030000C0 +:1005E000FFFFFFFFFFFFFF3F7FBF9F9FCFCFCFCF1B +:1005F00080C0C0E0FEFFFFFF3F1F073F7FFFFFFF00 +:10060000FFFFFFFFFFFEFDF3FFFFFEFEFCFCF0E03F +:100610000F0F0F0F1F1F1F3FFFFFFFFFFFFFFEFE0C +:10062000E7E7C68000000003C0000001030F7FFF62 +:100630003F7FFFFFFFFFFFFFFCFCF8FFFFFFFFFF17 +:100640000F3F1F1F0FCFE7F7FBFFFFFFFFFFFFFF6E +:10065000F7F7EFEFCFDF9F9FFFFFFEFCFCF8F0E026 +:100660003F3F3F3F1F1F1F1FFFFFFFFEFCFCFCFC27 +:10067000C0800000000101017FFFFFFFFFFFFFFFBF +:10068000F8F2E6DFFFFFFFFF030307070F1F3F7FBF +:100690007F7F7F7F7F7F7F3F3F3F3FBF9F9F1F1FAA +:1006A000FFFFFFFFFEFCFCFC030100000000000058 +:1006B000FFFFFF7F7F3F1F070080C0FCFFFFFFFFA2 +:1006C00003010000C0FCFEFFFF7F7F7F7F7F7F3F35 +:1006D0003F3F3FBF9F9F1F1FFFFFFFFFFFFEFEFF2C +:1006E0001F1F0F0F07030000FEFCFCFCFEFFFF3F77 +:1006F0003F9FCFE0E3C70107070F0F0F0783C1F844 +:10070000FFF38F3F7F7F3F1F80C0C0E0FEFEFCF8FD +:100710001F1F3F3F3F3F3F7F7FFFFFFFFF7F3F1F89 +:10072000070F1F1F3F1F0F0F070F8F9FCFFFF3F9FB +:10073000FCFCFEFEFFFFFFFFF7F7EFEFCFDF9F9F11 +:100740003F3F3F3F1F1F1F1FFFFFFFFEFEFCF8F054 +:10075000C0800000000101017FFFFFFFFFFFFFFFDE +:10076000FFFFFFFFFFFEFEFFE0C080000000000073 +:10077000030303030707070F00808080C0E0E0E069 +:100780000F1F1F1F1F3F3F3FFFFFFFFBFBF3E383D5 +:100790000000000000000000E7E76300000000C068 +:1007A000FFFFFF3F07000000FFFFFFFFFF3F0100CB +:1007B000F0FFFFFFFFFFFFFF0080F0FFFFFFFFFFE5 +:1007C00000000000F8FFFFFF3F1F3F1F0FFFFFFF6C +:1007D000FFFFFFFFFF600000FFFFFFFFFFFF7F073E +:1007E000FFFFFFFFFFFEFEFCFFFBF7CF1F3F7F7FFA +:1007F000F0F0F0F0F0F0F0F87FFFFFFFFF60000096 +:1008000000000000000000000000000000000000E8 +:10081000FFFFFFFFFFFFFFFF0000000000000000E0 +:10082000000000000000FE7F00000000000000004B +:100830000700000000000000FE1E00000000000095 +:100840003F3F00000000000007070707070F7F7FFA +:10085000FFFF7F01FFFFFFFFFFFFFFF3E7F7FFFF52 +:100860000000FCFFFFFFFFFE000000E0F0F8F87C56 +:1008700000000000000000003F1F0F0707010000FC +:10088000FFFFFFFFFFFF7F07FFFDF3E7EFCFCF8FF6 +:10089000F8FCFEFFFFFFFFFF000000000080FEFFEE +:1008A00000000000000000000F0000000000000039 +:1008B000FF1F000103030707FFFFFFFFFFFFFFFF0D +:1008C000FEFCF0E0E0C0C080071FFFFFFFFFFFFF5E +:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:1008E0003FFFFFFFFFFFFFFF0000000000000000D0 +:1008F000F0FEFFFFFFFFFFFF7F3F9FFFFFFFFFFFB8 +:1009000000000000000000000002060C080010308B +:10091000070301E1F0F8F8FF80000080C0E0F0F884 +:100920007F3F9FFFFFFFFFFFFFFFFFFFFFFFFFFF77 +:10093000FFFFFFFFFFFFFFFFFFFEF8F0E0C0010732 +:100940000707070F1F7FFFFFFEFCFCFCFEFFFF3FBA +:10095000070F0F0F0783C1F880C0C0E0FEFEFCF850 +:1009600000000000080818108F1F1F0F07070783DB +:1009700000000000000008183F1F1F3F3F3F3F7F5F +:10098000FFFFFFFFFFFBFBF7F7EFEFEFE7F3F1E010 +:1009900000386103061C007FFEFCF0E0E0C0C08070 +:1009A000000212320073020680000080C0C0E0F036 +:1009B0003F1F0F0707010000FFFFFFFFFFFFFFFFC3 +:1009C000FFFFFFFFFFFFFF60FFFFFFFFFEF00000E4 +:1009D000FFFEF8C00000000007000000000000005B +:1009E000FFFF1F0000000000FFFFFFE0000000000D +:1009F000FFFFFF0000000000FFFF000000000000FC +:100A000000000000000000000010302101392163C7 +:100A1000003821033821037E001833202000031EF4 +:100A2000003020212123067C003E20003C20007F56 +:100A3000003F20003E202060001F30202101011FC8 +:100A40000021210139212163004E08080808007E99 +:100A5000000101010101033E0023260C2020206338 +:100A6000002020202020007F00010101292921638E +:100A70000001010121212163003821212121033EB0 +:100A800000382121033E2060003821212123043D2C +:100A90000038212107202067003026003801033E5E +:100AA000004E080808080818002121212121033ED2 +:100AB0000021210103060C080021210101113163ED +:100AC0000001030600103063002222060C080818FB +:100AD000007103060C18007F0000000000000000F9 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000FFFFFFA8 +:100B5000000000000000FFFF00000000000000FF98 +:100B600000000000000000000000000000031FFF64 +:100B700000000000000000FC1F3F3F3F7F18030FF4 +:100B8000FCFCFCFCFEFEFEFC7FFF3F3F3F1F0F0016 +:100B9000FFFFFFFFFFFFFFFF00000000000000005D +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000000000000005 +:100BF00000000000000000000000000000000000F5 +:100C0000C0FEFFFFFFFFFFFF3F1FFFFFFFFFFFFFD4 +:100C1000F0FEFFFFFFFFFFFFF7F7E7E7C3C3E3E1E6 +:100C2000E1F1F9FDFDFFFFFF1F7F1F01F0FD7BB725 +:100C3000FFFFFFFF3EFCD8DE3F1F1F3F3F3F3F7ED1 +:100C4000FCFBF7EFDFBF7FFFFFE7E7FFFFFFFFFFE3 +:100C5000F7F7FBFDFEFEFFFFB7CFFFFEFDFD7B7B41 +:100C6000BFBF7FFFFFFFFFFF0F80F0FEFFFFFFFF13 +:100C700070000000000080C0FDFBFBFBFBFBFBF7EE +:100C80007B7B7B7B7B7B7B7BFF9F9FFFFFFFFFFF54 +:100C9000E09098F8FCFCFCFEF7F7EFDFDFBFBFBF8A +:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFBFBF3F176 +:100CB000FFFFFFFFFFFFFFFF7B7BFFFFFFFF7B7B54 +:100CC000F9FBF3F3F3F3F1F1FEFCFDFEFEFEFEFE95 +:100CD000F19090F0F0F0F0F87F7F7F7F7F7F7F7F53 +:100CE000F8FCFEFFFFFFFCF87F67677F7F7FFFFF59 +:100CF000FFE7E7FFFFFFFFFFFFE7E7FFFCF30FFF63 +:100D00007B7B7B7BFCFFFFFFFF9F9FFFFF3FFFFF86 +:100D1000FF9F9FFFFFFFFFFFF19080E0C183070768 +:100D2000FFFFFFFEFFFFFEFCC0800000C08040F020 +:100D30001F0F030000000000FCE080000000000026 +:100D400018060000000000007F7FFFFFFFFF7F7F8D +:100D50000F0F7F1F01030100FFFFFFFFFFFFFF7F5A +:100D60001F03010001030100FFFFFFFFFFFFFFFF63 +:100D70001F0331080513010400000080A04080001B +:100D8000FFFFFFFFFFFFF8E0FFFFFFFFFFFF030391 +:100D9000C08000000080E0FC0100000000000000B6 +:100DA000FF7F3F1F07010100C0C0FFFFFFFFFFFFE4 +:100DB0001FFFFFFFFFFFFFFFFFFFFFFEFCFCFCF834 +:100DC00000000000000F3FFF0000000000C0E0F046 +:100DD000F3E7CFCFCFC38000F3C387FFFEF8000057 +:100DE000F0E0C0000000000080C07E1F0100000095 +:100DF000000000C0FC7E070300000000000000802F +:100E000000000000000000000000000000000000E2 +:100E10000000000000000000016070381E0F030099 +:100E2000C0E070381C8EFFFF0501000000000000CC +:100E30008080000000000000FFFFFFFFFFFFFC01BB +:100E4000FEF8E0FCFEC20FEF000000000000000012 +:100E5000010101FD080000E0030307F9111010FF74 +:100E6000F8FCFFFFFFFF3203FDFDFDFDFD7D3D3D75 +:100E70007D3DDDEDEDF5F5F53F3F0001020C383F1E +:100E8000FFFF00000000FFFFFFFF0001020CF8FF62 +:100E9000FFF961FF080808FF0101013F0808083F4A +:100EA000010101FF080808FFFDFDFDFDFDFDFDFD41 +:100EB000FFFFFFCFE3F8FFFFFDFDFDFFFF7F000019 +:100EC0003F3FFFFEF8800000FFFFFF7F7F7F7F7FB7 +:100ED000FFFFFFFFFFFFFFFF00000000000000001A +:100EE00000000000000000000F03000000000000F0 +:100EF000FFFFFF1F0701030F0000000000000000BC +:100F00000000E0FFFFFFFFFF000000FFFFFFFFFF0B +:100F100003010000C0F8FEFFFFFF7F1F07010080F4 +:100F2000FFFFFFFFFFFF7F1FC0F0FCFFFFFFFFFF82 +:100F300007010000C0F0FCFF070307393EFFFFFF79 +:100F4000FFFFFFFF1FE0C0C0FFFFFFFFFFFFFFFF2E +:100F5000C0C0C0C0C0C0C0C0000000000000000091 +:100F6000FFFF000000000000FFFF03030303030373 +:100F70000303030303030303FFFFFFFFFFFFFFFF61 +:100F800000FFFFFFFFFFFFFF00FFFFFFFFFFFFFF6F +:100F900003FFFFFFFFFFFFFF0000FFFFFFFFFFFF5B +:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +:100FB000FFFFFFFFFFFFFFFFFF7F3F1F0F07030143 +:100FC0000000000000000000FFFFFFFFFFFFFFFF29 +:100FD0003F3F3F3F3F3F3F3F000103070F1F3F7F22 +:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:100FF00000000000000000000000000000000000F1 +:10100000FF80808080808080FF010101010101015B +:1010100080808080808080FF01010101010101FF4B +:10102000FFFFFFFFFFFFFFFCFFFFFFFFF8E0810373 +:10103000FFFFCF1F7FFFFFFFFFFFFFFFFFFFFFFF50 +:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10105000FFFFFFFFFFFFFFF8FFFFFFFFFFE0800044 +:10106000FFFFFCE0C0000000F080000000073F0030 +:101070000F0F3F7FFFFFC300FFFFFFFFFFFFFFF8E2 +:10108000FFFFFFFFFFFFFC3FFFFFFFFFFFFFFF032F +:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:1010B000FFFC000000FFFFFFC00000000000F0FF89 +:1010C000000000000000030F000100000000FFFF0F +:1010D00000FF00003F0300FFFFFFFF07FFFF1FC3EC +:1010E000FFFFFFFFFFFFFFFF83F1FFFFFFFFFFFF9A +:1010F000FFFFFFFFFFFCF8C1FFFFFFE7031F7FFFBC +:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10111000FFFFFFFFFFFFFFFFFFFFFFFEF0E0E0F834 +:10112000FEE0800000000000071EF9077FCF9F3F10 +:10113000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10115000FFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFA0 +:10116000FFFFFFFFFF0180C0FFFFFFFFFFFF3F7F8B +:10117000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10118000FFFFFFDE9CFFFFFFE0F8FEFFFFFFFFFF1A +:101190007F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFF5F +:1011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:1011B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1011D000FFFFFFFFFFF8C000FFFFFFE080000000FF +:1011E000FCE0C00000000001000000073F0000FF1D +:1011F0003F7FFFFFC300FFFFFFFFFFFFFFF8FFFF81 +:10120000FFFFFFFFFC3F83F0FFFFFFFFFF03FFFF38 +:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFCF0803F +:10125000FFFFF8E081030F0FCF1F7FFFFFFFFFFFAE +:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10127000FFFFFFFFFFFFFFFF000000000000000076 +:10128000000000000000000000000000000000005E +:101290000000000000000000000103070F17070F07 +:1012A000DC99FFE0C7E0C08078F8F00000000000A3 +:1012B00000000107070F3F663F7FFFFCE1871E3CF0 +:1012C000F8F0F0E0C0800000000000000000000026 +:1012D000703C0C7880000000060E1E3474E828185C +:1012E0000000061820C0C080000101020403071E90 +:1012F00030F0E0C0C080800701060E0C1E7EFCFCB2 +:101300008000000000000000000001030E1060805B +:101310001C70E0071F7FFFFF0F1FFFFFFEF8F1C3E8 +:10132000F8F0B06040F0FCFC00000000000000009D +:10133000030C100000000000030F1F7C00000000E1 +:10134000FFDC3F7F4F03000017FCF8F0F8F07E1E33 +:101350000300000000000000010000000000000089 +:10136000FFFF7F3F1F0F0700FFFFFFFFFFFFFFF89B +:10137000FFFFFFFFFCF00000FFFFC73FFF3F07013B +:10138000FFFFFFFFFFFFF880FFFFFFFEF0E0C30F4E +:10139000FFE78F1F3FFEFEFEF8F0C0800000000058 +:1013A000000000000000000300000000030CF0C07B +:1013B000000F30C00000000000000000000000002E +:1013C0000000000000000000000000000007010015 +:1013D00000000F1F1FFF871F7FFFFFFFFFFFFFFFA3 +:1013E000FCF8F8F0E0C1C73F0000071F7FFFFFFFD8 +:1013F0001FFFFEFFFEFFFEFFFF1F000000000000BA +:10140000FFFFFFEF4F070000FFFFFFFFFFFF7F3FE2 +:10141000FFFEFCFCF8F8F0F0000000000000000007 +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:101450000F03010000000000F8F0FC3F0300000350 +:10146000000000F8FC7EFFFF00000000000000808C +:10147000000000000000000000000000000000006C +:10148000000000000000000000000000000000005C +:10149000000000000000000000000000000000004C +:1014A00000000000000001000C3E7677F3E3F8FE38 +:1014B00070F87E1F8FE0F93C000000C0E0F0F0B84B +:1014C0000000000000007F80000000030001F00029 +:1014D00000007F8C70800000001FFF1CE0000000F7 +:1014E0003FFEC00000000000F0000000000000000F +:1014F00000000000000000000000000000000000EC +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:101520003F9FB7C3C6E0FEE0CFF3FEF8F1F83E0000 +:1015300008C0FCE4CCF47E000000077E0F00010729 +:101540000E70800000F0FFFF00000000000000F0BF +:10155000000000000000031F00000000013FFFFF2B +:10156000071F3FFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:1015700080F8FFFFFFFFFFFF000000E0F8FEF8E04B +:101580000003070300000000FFFFFFFFFF1F07012C +:10159000FFFFFEFDF3FFFFFFFFFF1F87F9FFFFFFC8 +:1015A000FFFFFFF0E0FFFFFFFFFE000000E0F0F8AC +:1015B000F800000000000000FF7F1F0F0700000080 +:1015C000FFFFFFFFFFFF3F0FFCFFFFFFFFFFFFFFDE +:1015D0000000E0F8FFFFFFFF0000000000C0F0FF88 +:1015E0000000007F3F0F070300000000F0FFFFFF37 +:1015F00000000000030FFFFF00000000FFFFFFFFDF +:1016000000003F0300FFFFFFFF07FFFF1FC3FFFFB7 +:10161000FFFFFFFFFFFEE000FFFFFEF08000000085 +:10162000FCC0000000000000FF7F3F1F070100001A +:10163000FFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFF7A +:10164000FFFFFFFFFFFFFFFF1F0F0F07010000005D +:10165000FFFFFFFFFFFF7F00FFFFFFFFFFFFFCF02B +:10166000FFFFFFFFF8800000FEF8E0000000000030 +:10167000000000000000001F00000000000003FF49 +:101680000001FFFFFFFFFF1F0FFFFFFFFFFFFFFF37 +:1016900000007FFFFFFFFFFFFFFFFFFFFFFFFFFED9 +:1016A000E1030F1F7FFFFFFFFEFCF8F8F0F0F0F002 +:1016B000FFFFFFFFFFFFFFFFF0F0FEFFFFFFFFFF59 +:1016C0000000FFFFFF0FF10000000000000007FF17 +:1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1C +:1016E000FFFFFFFFFFFF7F7FB93141E0F0F0F8F827 +:1016F0005F1F0F0F07010000FCFCFDF9F183037170 +:10170000031F3FFFFFFFFFFFFCFCFEFFFFFFFFFF8C +:10171000000000000103FFFF07031D3EFFFFFFFF66 +:10172000FFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFF09 +:10173000FFFFFFFFFFFFFFFFFDF1F8FCFEFFFEC014 +:10174000FFFFFFFFFFFFFFFF00FCFFFFFFFFFFFFAB +:10175000FF3F0F8080E0F8FFFFFFFF3F7F0F030F89 +:1017600000000000010101030000000103070F1F3A +:101770000F1FFFFFFFFFFFFF1F3F7FFFFFFFFFFF69 +:10178000FFFFFFFFFFFFFFFFFFFFFFFF1F0FC7C3AD +:10179000FFFFFFFFFFFFFFFFC0C0C0C0E0E0E1E7C9 +:1017A000FF7F3F3F1F1FCFEFFFFFFFFFFFFF3F1DEB +:1017B000FFFFFFFFFFF1F3C7000000C0C0E0F0FC37 +:1017C0000F0F0F0707070303FEFEFEFCFCFCF8C02B +:1017D0000301000000000000000000000000FFFF07 +:1017E000000000000000FFFF00000000000000F00B +:1017F00000000000000000000000000000000000E9 +:10180000FF80808080808081FF01010101010181D2 +:1018100081808080808080FF81010101010101FFC2 +:10182000030F070000000000FFFFF9070707000093 +:10183000FFFFFFFFFFFC003F80F8E0C0000007FF54 +:10184000070707030103FFFFFFFBFDFEFFFFFFFF8D +:1018500000000000010103037FFFFFFFFFFFFFFF08 +:10186000E0E0C0C0C0808000000000000000000177 +:10187000000001070F7F7FFF1F7FFFFFFFFFFFFFBC +:101880000003070F1F3F3F3FFFFEFEFCFCF8F0F098 +:101890000E0000000000000000000000010703002F +:1018A0001F3F7FFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:1018B0000003070F0F1F3F7FFBF7EFFFFFFFFF1F27 +:1018C000FEFCF0F0E0E0C08000000000000000003E +:1018D0001F1F3F3F1F1F0F0F0000000103071F3C8A +:1018E0001F3FFFFFFFFFFFFFF0F0E0E0C0808080C0 +:1018F0001F1F1F3F7F1F0F0F000000000101030388 +:101900007FFEFCF8F0E7DC380000000004860F0FD3 +:1019100001070F1F3F3F3B7FFC80E0F8F8E0E080CD +:1019200001070F1F3F3F3F7F000000000000000045 +:1019300000000000000000000000000000000000A7 +:10194000000000000000FFFFFFFFFFFFFFFFFFFFA1 +:1019500000000000000000F0FFFFFFFFFDFFE3EFCD +:10196000FFFFFFFFFEFEFFFFFFFFFFFCF000000098 +:10197000DFDFBF7F7F79E7FFFFFF1F070301010064 +:101980000000000000000000C0FFFFFFFFFFFEF8A6 +:1019900000000000000000007FFFFFFFF08000005B +:1019A0000080C0F0FEFFFFFFFFFFF000000000001E +:1019B000000000000080E3FFF900000000000000CC +:1019C00000000000000018F8FCFDFFE0000000002F +:1019D00000000000003E7FFFFCF0E00000071F3F1A +:1019E0000001010F3F7FFFFFBF0700000000000064 +:1019F000FFFFFFFFFFFFFFFFFFFC0C000000030FD6 +:101A0000000000000000C0FF1F030000FFFFFFFFF9 +:101A100000000000000000F8FFFFCF00FFFFFFFF05 +:101A2000FFFFFFFFFFFEF8E0000103071F7FFFFF3E +:101A3000FFFFFFF8C00000017BFFFFFFFFFFFFFF7C +:101A4000000000000000000FFFFFFF00FFFFFFFF8E +:101A5000000000000000C0FFFFFFFF3F00E0E0E3E8 +:101A6000FFFF1F3F7F7FFFFFFFFFFFFFFFFFFFFF26 +:101A7000FFDFCFCFE7F3F0E0CFFFFFFFFFFFFFFF78 +:101A8000000000000000FFFFFFFEFFFF001F7FFFC0 +:101A900000000000001FFFFFFF01C0E000FFFFFF8C +:101AA000FFFFFFFFFF00033FFFFFFFFEF9E7FFFF20 +:101AB000FFFFFCE00000FEFFFFFFFF3EFCF3FFFF27 +:101AC000000000033FFFFFFFFFFCF80000FEFFFFE8 +:101AD000000000F0FFFFFFFFFFFF0000000080FF9D +:101AE000FF3F03030100000387C0C00000000000A7 +:101AF000FFFFFFFFFFF0C0800000000000000000BB +:101B0000000000FFF9FEFFFFF0000000000000F3FE +:101B10000000FFFFFF0FF1000000000F3F7FFFFFFD +:101B2000FFFFFFF0000000000000000000000000C8 +:101B3000FFFC000000000103030F1F1F3F7F7F7F9A +:101B40000000000000000000000000000000000095 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000000000000000000045 +:101BA0000000000000000000000000000000000035 +:101BB0000000000000000000000000000000000025 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE000000041EBFFFF4836000082D7FFFF26DAF6 +:101BF0005A1A222E16161F19DAECB4B4B4C8F89883 +:101C000000000000000000000000000000000000D4 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C300000000000000000000000000000000000A4 +:101C40000000000000000000000000000000000094 +:101C50000000010101010303030707000000000069 +:101C60000000007FFF3F3F3F7F7F7F7F7FFFFFFFC1 +:101C7000FFFFFFFFFFFFFFFFFFFFFF00000000006F +:101C8000000000F0F8F8F8F8F8F0F0F0F0E0E0E02C +:101C9000C0C0C080FFFFFFFFFFFEFC00000000008F +:101CA00000000000000000000103070F0F0F1F1FBE +:101CB0001F1F1FBFBFBF3F3F3F3F0F00000000007F +:101CC0000000000000000000FFFFFFFFF9F9F1F342 +:101CD000F3F3E7E7E7FFFFFFFFFFFF00000000006F +:101CE0000000000000000000FEFFFFFFFEFEFEFE01 +:101CF000FEFCFCFDFDF9F9F9F1C000000000000058 +:101D00000000000000000000071F3F3F7F7F7FFFB3 +:101D1000FFFFFFFFFFFFFFFFFFFE78000000000056 +:101D20000000000F0303070FFFFFFFFFCFCFCF8F90 +:101D30009F9F1F1F3FFFFFFF7F3F1F00000000000E +:101D4000000000FCFEFEFEFEFEFCFCFCF9F9FBFBC5 +:101D5000FBF3F3F7F7E7E7E7E7F3F800000000002D +:101D600000000000000000000F3F7FFFFFFFFEFFAC +:101D7000FFFFFFFEFCFFFFFFFFFFFF000000000072 +:101D80000000000000000000FFFFFFFF3F3F7FFF5B +:101D9000FFFFFC0001FFFFFFFFFEF000000000005E +:101DA000000000000000000080C0E0E0E0E0C0C0F3 +:101DB00080800000C0808000000000000000000063 +:101DC0000000000F1F0303030F0F0F1F1F1F1F3FF4 +:101DD0003F3F3F3F7F7F7F7FFFFF7F00000000008E +:101DE000000000FFFFFFFFFFFFFEFCFCFCFDFFFF0C +:101DF000FFFFFFF7F7F3F3F1E1F0F8000000000058 +:101E0000000000FEFFFFFFFFFF7F3F7FFFFFFFFFA0 +:101E1000FEF8FCFEFFFFFFFFFFFFFE0000000000DA +:101E20000000000080E0E0F0F3F7F3F3E7E7C78796 +:101E30000F0F0F0F0FDFDF9F9F1F0F00000000002D +:101E40000000000000000000FCFEFEFEFEFCFCFCAA +:101E5000FCFCF9F9F9FFFFFFFFFBE10000000000C7 +:101E600000000000000000007FFF7F7F7F7FFFFFFA +:101E7000FFFFFFFFFFFFFFFFFFFFFF00000000006D +:101E8000000000000000000087CFE7E7E7CFCFCFDA +:101E90008F9F9F9F1F3F3F3F3FDF8F00000000004D +:101EA0000000000000000000FCFEFDFFFFFCF8F851 +:101EB000F9F9F9F1F3F3E3E3E7F7FB0000000000C1 +:101EC00000000000000000003FFFFFFFFFFFFFFFDA +:101ED000FFFFFFFFFEFEFEFEFCFCFF000000000017 +:101EE00000000000000000009FFFDFDF9FBFBFBFBA +:101EF0003F7F7F7F7FFFFFFFFF7F3F0000000000ED +:101F00000000000000000000F0FBF7FFFFF3E3E338 +:101F1000E7E7E7C7CFCF8F8F9FDFEF00000000001C +:101F20000000000000000000FEFFFFFFFEFEFEFEBE +:101F3000FCFCFCFDF9F9F9F9F1F0FC0000000000EF +:101F40000000000000000000010F1F3F7F7FFFFF27 +:101F5000FFFFFFFFFFFFFFFFFFFF3F00000000004C +:101F60000000000000000000FFFFFFFFCFCF9FFF39 +:101F7000FFFFFF8000FFFFFFFFFFF80000000000F1 +:101F80000000000000000000E1F3F8F8F8F9F1F1BA +:101F9000E3E3030373E7E7C7C78F0F000000000008 +:101FA0000000000000000000FFFFFFFFFFFFFFFF39 +:101FB000FFFFFFFEFEFEFEFCFCFFFE000000000037 +:101FC00000000000000000000FBFBFFFFFFEC08048 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000008080000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sdram.sv b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sdram.sv new file mode 100644 index 00000000..41f5b7a8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sdram.sv @@ -0,0 +1,348 @@ +// +// sdram.v +// +// sdram controller implementation for the MiST board +// https://github.com/mist-devel/mist-board +// +// Copyright (c) 2013 Till Harbaum +// Copyright (c) 2019 Gyorgy Szombathelyi +// +// This source file is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This source file is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// + +module sdram ( + + // interface to the MT48LC16M16 chip + inout reg [15:0] SDRAM_DQ, // 16 bit bidirectional data bus + output reg [12:0] SDRAM_A, // 13 bit multiplexed address bus + output reg SDRAM_DQML, // two byte masks + output reg SDRAM_DQMH, // two byte masks + output reg [1:0] SDRAM_BA, // two banks + output SDRAM_nCS, // a single chip select + output SDRAM_nWE, // write enable + output SDRAM_nRAS, // row address select + output SDRAM_nCAS, // columns address select + + // cpu/chipset interface + input init_n, // init signal after FPGA config to initialize RAM + input clk, // sdram clock + + input port1_req, + output reg port1_ack, + input port1_we, + input [23:1] port1_a, + input [1:0] port1_ds, + input [15:0] port1_d, + output reg [15:0] port1_q, + + input [16:1] cpu1_addr, + output reg [15:0] cpu1_q, + input [16:1] cpu2_addr, + output reg [15:0] cpu2_q, + + input port2_req, + output reg port2_ack, + input port2_we, + input [23:1] port2_a, + input [1:0] port2_ds, + input [15:0] port2_d, + output reg [31:0] port2_q, + + input [16:2] sp_addr, + output reg [31:0] sp_q +); + +localparam RASCAS_DELAY = 3'd2; // tRCD=20ns -> 2 cycles@<100MHz +localparam BURST_LENGTH = 3'b001; // 000=1, 001=2, 010=4, 011=8 +localparam ACCESS_TYPE = 1'b0; // 0=sequential, 1=interleaved +localparam CAS_LATENCY = 3'd2; // 2/3 allowed +localparam OP_MODE = 2'b00; // only 00 (standard operation) allowed +localparam NO_WRITE_BURST = 1'b1; // 0= write burst enabled, 1=only single access write + +localparam MODE = { 3'b000, NO_WRITE_BURST, OP_MODE, CAS_LATENCY, ACCESS_TYPE, BURST_LENGTH}; + +// 64ms/8192 rows = 7.8us -> 842 cycles@108MHz +localparam RFRSH_CYCLES = 10'd842; + +// --------------------------------------------------------------------- +// ------------------------ cycle state machine ------------------------ +// --------------------------------------------------------------------- + +/* + SDRAM state machine for 2 bank interleaved access + 1 word burst, CL2 +cmd issued registered + 0 RAS0 cas1 - data0 read burst terminated + 1 ras0 + 2 data1 returned + 3 CAS0 data1 returned + 4 RAS1 cas0 + 5 ras1 + 6 CAS1 data0 returned +*/ + +localparam STATE_RAS0 = 3'd0; // first state in cycle +localparam STATE_RAS1 = 3'd4; // Second ACTIVE command after RAS0 + tRRD (15ns) +localparam STATE_CAS0 = STATE_RAS0 + RASCAS_DELAY + 1'd1; // CAS phase - 3 +localparam STATE_CAS1 = STATE_RAS1 + RASCAS_DELAY; // CAS phase - 6 +localparam STATE_READ0 = 3'd0;// STATE_CAS0 + CAS_LATENCY + 2'd2; // 7 +localparam STATE_READ1 = 3'd3; +localparam STATE_DS1b = 3'd0; +localparam STATE_READ1b = 3'd4; +localparam STATE_LAST = 3'd6; + +reg [2:0] t; + +always @(posedge clk) begin + t <= t + 1'd1; + if (t == STATE_LAST) t <= STATE_RAS0; +end + +// --------------------------------------------------------------------- +// --------------------------- startup/reset --------------------------- +// --------------------------------------------------------------------- + +// wait 1ms (32 8Mhz cycles) after FPGA config is done before going +// into normal operation. Initialize the ram in the last 16 reset cycles (cycles 15-0) +reg [4:0] reset; +reg init = 1'b1; +always @(posedge clk, negedge init_n) begin + if(!init_n) begin + reset <= 5'h1f; + init <= 1'b1; + end else begin + if((t == STATE_LAST) && (reset != 0)) reset <= reset - 5'd1; + init <= !(reset == 0); + end +end + +// --------------------------------------------------------------------- +// ------------------ generate ram control signals --------------------- +// --------------------------------------------------------------------- + +// all possible commands +localparam CMD_INHIBIT = 4'b1111; +localparam CMD_NOP = 4'b0111; +localparam CMD_ACTIVE = 4'b0011; +localparam CMD_READ = 4'b0101; +localparam CMD_WRITE = 4'b0100; +localparam CMD_BURST_TERMINATE = 4'b0110; +localparam CMD_PRECHARGE = 4'b0010; +localparam CMD_AUTO_REFRESH = 4'b0001; +localparam CMD_LOAD_MODE = 4'b0000; + +reg [3:0] sd_cmd; // current command sent to sd ram +reg [15:0] sd_din; +// drive control signals according to current command +assign SDRAM_nCS = sd_cmd[3]; +assign SDRAM_nRAS = sd_cmd[2]; +assign SDRAM_nCAS = sd_cmd[1]; +assign SDRAM_nWE = sd_cmd[0]; + +reg [24:1] addr_latch[2]; +reg [24:1] addr_latch_next[2]; +reg [16:1] addr_last[2]; +reg [16:2] addr_last2[2]; +reg [15:0] din_latch[2]; +reg [1:0] oe_latch; +reg [1:0] we_latch; +reg [1:0] ds[2]; + +reg port1_state; +reg port2_state; + +localparam PORT_NONE = 2'd0; +localparam PORT_CPU1 = 2'd1; +localparam PORT_CPU2 = 2'd2; +localparam PORT_SP = 2'd1; +localparam PORT_REQ = 2'd3; + +reg [1:0] next_port[2]; +reg [1:0] port[2]; + +reg refresh; +reg [10:0] refresh_cnt; +wire need_refresh = (refresh_cnt >= RFRSH_CYCLES); + +// PORT1: bank 0,1 +always @(*) begin + if (refresh) begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end else if (port1_req ^ port1_state) begin + next_port[0] = PORT_REQ; + addr_latch_next[0] = { 1'b0, port1_a }; + end else if (cpu1_addr != addr_last[PORT_CPU1]) begin + next_port[0] = PORT_CPU1; + addr_latch_next[0] = { 8'd0, cpu1_addr }; + end else if (cpu2_addr != addr_last[PORT_CPU2]) begin + next_port[0] = PORT_CPU2; + addr_latch_next[0] = { 8'd0, cpu2_addr }; + end else begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end +end + +// PORT1: bank 2,3 +always @(*) begin + if (port2_req ^ port2_state) begin + next_port[1] = PORT_REQ; + addr_latch_next[1] = { 1'b1, port2_a }; + end else if (sp_addr != addr_last2[PORT_SP]) begin + next_port[1] = PORT_SP; + addr_latch_next[1] = { 1'b1, 7'd0, sp_addr, 1'b0 }; + end else begin + next_port[1] = PORT_NONE; + addr_latch_next[1] = addr_latch[1]; + end +end + +always @(posedge clk) begin + + // permanently latch ram data to reduce delays + sd_din <= SDRAM_DQ; + SDRAM_DQ <= 16'bZZZZZZZZZZZZZZZZ; + { SDRAM_DQMH, SDRAM_DQML } <= 2'b11; + sd_cmd <= CMD_NOP; // default: idle + refresh_cnt <= refresh_cnt + 1'd1; + + if(init) begin + // initialization takes place at the end of the reset phase + if(t == STATE_RAS0) begin + + if(reset == 15) begin + sd_cmd <= CMD_PRECHARGE; + SDRAM_A[10] <= 1'b1; // precharge all banks + end + + if(reset == 10 || reset == 8) begin + sd_cmd <= CMD_AUTO_REFRESH; + end + + if(reset == 2) begin + sd_cmd <= CMD_LOAD_MODE; + SDRAM_A <= MODE; + SDRAM_BA <= 2'b00; + end + end + end else begin + // RAS phase + // bank 0,1 + if(t == STATE_RAS0) begin + addr_latch[0] <= addr_latch_next[0]; + port[0] <= next_port[0]; + { oe_latch[0], we_latch[0] } <= 2'b00; + + if (next_port[0] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[0][22:10]; + SDRAM_BA <= addr_latch_next[0][24:23]; + addr_last[next_port[0]] <= addr_latch_next[0][16:1]; + if (next_port[0] == PORT_REQ) begin + { oe_latch[0], we_latch[0] } <= { ~port1_we, port1_we }; + ds[0] <= port1_ds; + din_latch[0] <= port1_d; + port1_state <= port1_req; + end else begin + { oe_latch[0], we_latch[0] } <= 2'b10; + ds[0] <= 2'b11; + end + end + end + + // bank 2,3 + if(t == STATE_RAS1) begin + refresh <= 1'b0; + addr_latch[1] <= addr_latch_next[1]; + { oe_latch[1], we_latch[1] } <= 2'b00; + port[1] <= next_port[1]; + + if (next_port[1] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[1][22:10]; + SDRAM_BA <= addr_latch_next[1][24:23]; + addr_last2[next_port[1]] <= addr_latch_next[1][16:2]; + if (next_port[1] == PORT_REQ) begin + { oe_latch[1], we_latch[1] } <= { ~port1_we, port1_we }; + ds[1] <= port2_ds; + din_latch[1] <= port2_d; + port2_state <= port2_req; + end else begin + { oe_latch[1], we_latch[1] } <= 2'b10; + ds[1] <= 2'b11; + end + end + + if (next_port[1] == PORT_NONE && need_refresh && !we_latch[0] && !oe_latch[0]) begin + refresh <= 1'b1; + refresh_cnt <= 0; + sd_cmd <= CMD_AUTO_REFRESH; + end + end + + // CAS phase + if(t == STATE_CAS0 && (we_latch[0] || oe_latch[0])) begin + sd_cmd <= we_latch[0]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[0]; + if (we_latch[0]) begin + SDRAM_DQ <= din_latch[0]; + port1_ack <= port1_req; + end + SDRAM_A <= { 4'b0010, addr_latch[0][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[0][24:23]; + end + + if(t == STATE_CAS1 && (we_latch[1] || oe_latch[1])) begin + sd_cmd <= we_latch[1]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + if (we_latch[1]) begin + SDRAM_DQ <= din_latch[1]; + port2_ack <= port2_req; + end + SDRAM_A <= { 4'b0010, addr_latch[1][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[1][24:23]; + end + + // Data returned + if(t == STATE_READ0 && oe_latch[0]) begin + case(port[0]) + PORT_REQ: begin port1_q <= sd_din; port1_ack <= port1_req; end + PORT_CPU1: begin cpu1_q <= sd_din; end + PORT_CPU2: begin cpu2_q <= sd_din; end + default: ; + endcase; + end + + if(t == STATE_READ1 && oe_latch[1]) begin + case(port[1]) + PORT_REQ: port2_q[15:0] <= sd_din; + PORT_SP : sp_q[15:0] <= sd_din; + default: ; + endcase; + end + + if(t == STATE_DS1b && oe_latch[1]) { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + + if(t == STATE_READ1b && oe_latch[1]) begin + case(port[1]) + PORT_REQ: begin port2_q[31:16] <= sd_din; port2_ack <= port2_req; end + PORT_SP : begin sp_q[31:16] <= sd_din; end + default: ; + endcase; + end + end +end + +endmodule diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spram.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spram.vhd new file mode 100644 index 00000000..d86010fc --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spram.vhd @@ -0,0 +1,91 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY spram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + data : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END spram; + + +ARCHITECTURE SYN OF spram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "SINGLE_PORT", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + wren_a => wren, + clock0 => clock, + address_a => address, + data_a => data, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_array.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_array.vhd new file mode 100644 index 00000000..880f09f2 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_array.vhd @@ -0,0 +1,164 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.numeric_std.all; +--use ieee.std_logic_arith.all; +--use IEEE.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); +end entity sprite_array; + +architecture SYN of sprite_array is + + type reg_a_t is array (natural range <>) of from_SPRITE_REG_t; + type ctl_i_a_t is array (natural range <>) of to_SPRITE_CTL_t; + type ctl_o_a_t is array (natural range <>) of from_SPRITE_CTL_t; + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal reg_o : reg_a_t(0 to N_SPRITES-1); + signal ctl_i : ctl_i_a_t(0 to N_SPRITES-1); + signal ctl_o : ctl_o_a_t(0 to N_SPRITES-1); + + signal ld_r : std_logic_vector(N_SPRITES-1 downto 0); + +begin + + -- Sprite Data Load Arbiter + -- - enables each sprite controller during hblank + -- to allow loading of sprite row data into row buffer + process (clk, clk_ena, reset) + variable i : integer range 0 to N_SPRITES-1; + begin + if reset = '1' then + -- enable must be 1 clock behind address to latch data after fetch + --ld_r <= (N_SPRITES-1 => '1', others => '0'); + -- make ISE 9.2.03i happy... + ld_r(ld_r'left) <= '1'; + ld_r(ld_r'left-1 downto 0) <= (others => '0'); + i := 0; + elsif rising_edge(clk) and clk_ena = '1' then + ld_r <= ld_r(ld_r'left-1 downto 0) & ld_r(ld_r'left); + if i = N_SPRITES-1 then + i := 0; + else + i := i + 1; + end if; + row_a <= ctl_o(i).a; + end if; + end process; + + -- sprite row data fan-out + GEN_ROW_D : for i in 0 to N_SPRITES-1 generate + ctl_i(i).ld <= ld_r(i); + ctl_i(i).d <= row_d; + end generate GEN_ROW_D; + + -- Sprite Priority Encoder + -- - determines which sprite pixel (if any) is to be displayed + -- We can use a clocked process here because the tilemap + -- output is 1 clock behind at this point + process (clk, clk_ena) + variable spr_on_v : std_logic := '0'; + variable spr_pri_v : std_logic := '0'; + begin + if rising_edge(clk) and clk_ena = '1' then + spr_on_v := '0'; + spr_pri_v := '0'; + for i in 0 to N_SPRITES-1 loop + -- if highest priority = 0 and pixel on + if spr_pri_v = '0' and ctl_o(i).set = '1' then + -- if no sprite on or this priority = 1 + if spr_on_v = '0' or reg_o(i).pri = '1' then + rgb <= ctl_o(i).rgb; + spr_on_v := '1'; -- flag as sprite on + spr_pri_v := reg_o(i).pri; -- store priority + end if; + end if; + end loop; + end if; + set <= spr_on_v; + pri <= spr_pri_v; + end process; + + -- for NES, and perhaps others + -- it's actually more complicated than this + -- but it'll do for now... + spr0_set <= ctl_o(0).set; + + -- + -- Component Instantiation + -- + + GEN_REGS : for i in 0 to N_SPRITES-1 generate + + sptReg_inst : entity work.sptReg + generic map + ( + INDEX => i + ) + port map + ( + reg_i => reg_i, + reg_o => reg_o(i) + ); + + sptCtl_inst : entity work.spritectl + generic map + ( + INDEX => i, + DELAY => DELAY + ) + port map + ( + -- sprite registers + reg_i => reg_o(i), + + -- video control signals + video_ctl => video_ctl, + + -- sprite control signals + ctl_i => ctl_i(i), + ctl_o => ctl_o(i), + + graphics_i => graphics_i + ); + + end generate GEN_REGS; + +end SYN; + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg.vhd new file mode 100644 index 00000000..ee5cf179 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg.vhd @@ -0,0 +1,97 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +library work; +use work.video_controller_pkg.all; + +package sprite_pkg is + + subtype SPRITE_N_t is std_logic_vector(11 downto 0); + subtype SPRITE_A_t is std_logic_vector(7 downto 0); + subtype SPRITE_D_t is std_logic_vector(7 downto 0); + + type from_SPRITE_REG_t is record + n : SPRITE_N_t; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + xflip : std_logic; + yflip : std_logic; + colour : std_logic_vector(7 downto 0); + pri : std_logic; + end record; + + type to_SPRITE_REG_t is record + clk : std_logic; + clk_ena : std_logic; + wr : std_logic; + a : SPRITE_A_t; + d : SPRITE_D_t; + end record; + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t; + + subtype SPRITE_ROW_D_t is std_logic_vector(63 downto 0); + subtype SPRITE_ROW_A_t is std_logic_vector(15 downto 0); + + type to_SPRITE_CTL_t is record + ld : std_logic; + d : SPRITE_ROW_D_t; + end record; + + type from_SPRITE_CTL_t is record + a : SPRITE_ROW_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t; + + component sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); + end component sprite_array; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return SPRITE_ROW_D_t; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector; + +end package sprite_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg_body.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg_body.vhd new file mode 100644 index 00000000..551261b2 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprite_pkg_body.vhd @@ -0,0 +1,62 @@ +library work; +use work.pace_pkg.all; +--use work.sprite_pkg.all; + +package body sprite_pkg is + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t is + begin + return ('0', '0', '0', (others => '0'), (others => '0')); + end function NULL_TO_SPRITE_REG; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t is + begin + return ('0', (others => '0')); + end function NULL_TO_SPRITE_CTL; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + + constant HALF : natural := (row_in'length / 2) - 1; + + alias row_in_0 : std_logic_vector(row_in'length-1 downto 0) + is row_in; + variable row_out : std_logic_vector(row_in_0'range); + + begin + + if flip = '0' then + return row_in; + else + for i in 0 to HALF loop + row_out ((HALF-i)*2+1 downto (HALF-i)*2) := row_in_0(i*2+1 downto i*2); + end loop; + return row_out; + end if; + + end flip_row; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + alias d_i_0 : std_logic_vector(d_i'length-1 downto 0) is d_i; + variable d_o : std_logic_vector(d_i_0'range); + begin + if flip = '0' then + return d_i; + else + for i in d_i_0'range loop + d_o(i) := d_i_0(d_i_0'high-i); + end loop; + return d_o; + end if; + end function flip_1; + +end package body sprite_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritectl.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritectl.vhd new file mode 100644 index 00000000..dc91db61 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritectl.vhd @@ -0,0 +1,202 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; +use work.platform_variant_pkg.all; + +entity spritectl is + generic + ( + INDEX : natural; + DELAY : integer + ); + port + ( + -- sprite registers + reg_i : in from_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- sprite control signals + ctl_i : in to_SPRITE_CTL_t; + ctl_o : out from_SPRITE_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity spritectl; + +architecture SYN of spritectl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal flipData : std_logic_vector(47 downto 0); -- flipped row data + + alias rgb : RGB_t is ctl_o.rgb; + +begin + + flipData(47 downto 32) <= flip_1 (ctl_i.d(47 downto 32), reg_i.xflip); + flipData(31 downto 16) <= flip_1 (ctl_i.d(31 downto 16), reg_i.xflip); + flipData(15 downto 0) <= flip_1 (ctl_i.d(15 downto 0), reg_i.xflip); + + process (clk, clk_ena) + + variable rowStore : std_logic_vector(47 downto 0); -- saved row of spt to show during visibile period + variable pel : std_logic_vector(2 downto 0); + variable x : unsigned(video_ctl.x'range); + variable y : unsigned(video_ctl.y'range); + variable yMat : boolean; -- raster is between first and last line of sprite + variable xMat : boolean; -- raster in between left edge and end of line + + variable height : unsigned(6 downto 0); + -- the width of rowCount determines the scanline multipler + -- - eg. (4 downto 0) is 1:1 + -- (5 downto 0) is 2:1 (scan-doubling) +-- variable rowCount : unsigned(3+PACE_VIDEO_V_SCALE downto 0); +-- alias row : unsigned(4 downto 0) is +-- rowCount(rowCount'left downto rowCount'left-4); + variable rowCount : unsigned(height'range); + alias row : unsigned(rowCount'range) is rowCount; + -- which part of the sprite is being drawn + alias segment : unsigned(1 downto 0) is rowCount(5 downto 4); + + variable prom_i : integer range sprite_prom'range; + variable code : std_logic_vector(9 downto 0); + variable pal_i : std_logic_vector(7 downto 0); + variable pal_rgb : pal_rgb_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + if video_ctl.hblank = '1' then + + x := unsigned(reg_i.x) - M62_VIDEO_H_OFFSET + PACE_VIDEO_PIPELINE_DELAY - 3; + y := 256 + 128 - 15 - unsigned(reg_i.y); + + -- hande sprite height, placement + prom_i := to_integer(unsigned(reg_i.n(9 downto 5))); + code := reg_i.n(9 downto 0); -- default + case sprite_prom(prom_i) is + when 1 => + -- double height + height := to_unsigned(2*16,height'length); + y := y - 16; + when 2 => + -- quadruple height + height := to_unsigned(4*16,height'length); + y := y - 3*16; + when others => + height := to_unsigned(16,height'length); + end case; + + -- do this 1st because we don't have many clocks + if y = unsigned(video_ctl.y) then + -- start counting sprite row + rowCount := (others => '0'); + yMat := true; + elsif row = height then + yMat := false; + end if; + + case sprite_prom(prom_i) is + when 1 => + -- double height + if reg_i.yflip = '1' then + code(0) := not segment(0); + else + code(0) := segment(0); + end if; + when 2 => + -- quadruple height + if reg_i.yflip = '1' then + code(1 downto 0) := not std_logic_vector(segment); + else + code(1 downto 0) := std_logic_vector(segment); + end if; + when others => + null; + end case; + + xMat := false; + -- stop sprites wrapping from bottom of screen + if y = 0 then + yMat := false; + end if; + + -- sprites not visible before row 16 + if ctl_i.ld = '1' then + if yMat then + rowStore := flipData; -- load sprite data + else + rowStore := (others => '0'); + end if; + end if; + + end if; -- hblank='1' + + if video_ctl.stb = '1' then + + if x = unsigned(video_ctl.x) then + -- count up at left edge of sprite + rowCount := rowCount + 1; + -- start of sprite + --if unsigned(x) /= 0 and unsigned(x) < 240 then + xMat := true; + --end if; + end if; + + if xMat then + -- shift in next pixel + pel := rowStore(rowStore'left-32) & rowStore(rowStore'left-16) & rowStore(rowStore'left); + rowStore(47 downto 32) := rowStore(46 downto 32) & '0'; + rowStore(31 downto 16) := rowStore(30 downto 16) & '0'; + rowStore(15 downto 0) := rowStore(14 downto 0) & '0'; + end if; + + end if; + + if PLATFORM_VARIANT = "ldrun" or + PLATFORM_VARIANT = "battroad" then + pal_i := '0' & reg_i.colour(3 downto 0) & pel; + else + pal_i := reg_i.colour(4 downto 0) & pel; + end if; + --pal_i := "000" & std_logic_vector(to_unsigned(INDEX,5)); + pal_rgb := sprite_pal(to_integer(unsigned(pal_i))); + rgb.r <= pal_rgb(0) & "00"; + rgb.g <= pal_rgb(1) & "00"; + rgb.b <= pal_rgb(2) & "00"; + + -- set pixel transparency based on match + ctl_o.set <= '0'; + if xMat and pel /= "000" then + if graphics_i.bit8(0)(4) = '1' then + ctl_o.set <= '1'; + end if; + end if; + + end if; -- clk_ena='1' + end if; -- rising_edge(clk) + + -- generate sprite data address + ctl_o.a(15) <= '0'; -- unused + ctl_o.a(14 downto 5) <= code; + ctl_o.a(4) <= '0'; -- dual-port RAM + if reg_i.yflip = '0' then + ctl_o.a(3 downto 0) <= std_logic_vector(row(3 downto 0)); + else + ctl_o.a(3 downto 0) <= not std_logic_vector(row(3 downto 0)); + end if; + + end process; + +end architecture SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritereg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritereg.vhd new file mode 100644 index 00000000..107edb1c --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/spritereg.vhd @@ -0,0 +1,68 @@ +Library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.sprite_pkg.all; + +entity sptReg is + + generic + ( + INDEX : natural + ); + port + ( + reg_i : in to_SPRITE_REG_t; + reg_o : out from_SPRITE_REG_t + ); + +end sptReg; + +architecture SYN of sptReg is + + alias clk : std_logic is reg_i.clk; + alias clk_ena : std_logic is reg_i.clk_ena; + +begin + + process (clk, clk_ena) + begin + if rising_edge(clk) then + if clk_ena = '1' then + if reg_i.a(7 downto 3) = std_logic_vector(to_unsigned(INDEX, 5)) then + if reg_i.wr = '1' then + case reg_i.a(2 downto 0) is + when "000" => + reg_o.colour(4 downto 0) <= reg_i.d(4 downto 0); + when "010" => + reg_o.y(7 downto 0) <= reg_i.d; + when "011" => + reg_o.y(8) <= reg_i.d(0); + when "100" => + reg_o.n(7 downto 0) <= reg_i.d(7 downto 0); + when "101" => + reg_o.yflip <= reg_i.d(7); + reg_o.xflip <= reg_i.d(6); + reg_o.n(10 downto 8) <= reg_i.d(2 downto 0); + when "110" => + reg_o.x(7 downto 0) <= reg_i.d; + when "111" => + reg_o.x(8) <= reg_i.d(0); + when others => + null; + end case; + end if; -- reg_i.wr='1' + end if; -- reg_i.a()=INDEX + end if; -- clk_ena='1' + end if; -- rising_edge(clk) + end process; + + reg_o.x(reg_o.x'left downto 9) <= (others => '0'); + reg_o.y(reg_o.y'left downto 9) <= (others => '0'); + reg_o.n(reg_o.n'left downto 11) <= (others => '0'); + reg_o.colour(reg_o.colour'left downto 5) <= (others => '0'); + reg_o.pri <= '1'; + +end SYN; + diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprom.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprom.vhd new file mode 100644 index 00000000..292a214f --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/sprom.vhd @@ -0,0 +1,83 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY sprom IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END sprom; + + +ARCHITECTURE SYN OF sprom IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_aclr_a : STRING; + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_aclr_a => "NONE", + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "ROM", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + clock0 => clock, + address_a => address, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/target_top.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/target_top.vhd new file mode 100644 index 00000000..4064a09c --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/target_top.vhd @@ -0,0 +1,145 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; + +entity target_top is port( + clock_sys : in std_logic; + clock_vid : in std_logic; + clk_aud : in std_logic; + reset_in : in std_logic; + audio_out : out std_logic_vector(11 downto 0); + usr_coin1 : in std_logic; + usr_coin2 : in std_logic; + usr_service : in std_logic; + usr_start1 : in std_logic; + usr_start2 : in std_logic; + p1_up : in std_logic; + p1_dw : in std_logic; + p1_lt : in std_logic; + p1_rt : in std_logic; + p1_f1 : in std_logic; + p1_f2 : in std_logic; + + p2_up : in std_logic; + p2_dw : in std_logic; + p2_lt : in std_logic; + p2_rt : in std_logic; + p2_f1 : in std_logic; + p2_f2 : in std_logic; + + VGA_VS : out std_logic; + VGA_HS : out std_logic; + VGA_R : out std_logic_vector(3 downto 0); + VGA_G : out std_logic_vector(3 downto 0); + VGA_B : out std_logic_vector(3 downto 0); + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + snd_rom_addr : out std_logic_vector(13 downto 0); + snd_rom_do : in std_logic_vector(7 downto 0) + ); +end target_top; + +architecture SYN of target_top is + + signal clkrst_i : from_CLKRST_t; + signal buttons_i : from_BUTTONS_t; + signal switches_i : from_SWITCHES_t; + signal leds_o : to_LEDS_t; + signal inputs_i : from_INPUTS_t; + signal video_i : from_VIDEO_t; + signal video_o : to_VIDEO_t; + signal platform_i : from_PLATFORM_IO_t; + signal platform_o : to_PLATFORM_IO_t; + signal sound_data : std_logic_vector(7 downto 0); + +begin + clkrst_i.clk(0) <= clock_sys; + clkrst_i.clk(1) <= clock_vid; + clkrst_i.arst <= reset_in; + clkrst_i.arst_n <= not clkrst_i.arst; + +GEN_RESETS : for i in 0 to 3 generate + process (clkrst_i.clk(i), clkrst_i.arst) + variable rst_r : std_logic_vector(2 downto 0) := (others => '0'); + begin + if clkrst_i.arst = '1' then + rst_r := (others => '1'); + elsif rising_edge(clkrst_i.clk(i)) then + rst_r := rst_r(rst_r'left-1 downto 0) & '0'; + end if; + clkrst_i.rst(i) <= rst_r(rst_r'left); + end process; +end generate GEN_RESETS; + + video_i.clk <= clkrst_i.clk(1); + video_i.clk_ena <= '1'; + video_i.reset <= clkrst_i.rst(1); + VGA_R <= video_o.rgb.r(9 downto 6); + VGA_G <= video_o.rgb.g(9 downto 6); + VGA_B <= video_o.rgb.b(9 downto 6); + VGA_HS <= video_o.hsync; + VGA_VS <= video_o.vsync; + +--Sound_Board : entity work.Sound_Board +-- port map( +-- clock_E => clk_aud, +-- areset => clkrst_i.rst(1), +-- select_sound => sound_data, +-- audio_out => audio_out, +-- snd_rom_addr => snd_rom_addr, + -- snd_rom_do => snd_rom_do, +-- dbg_cpu_addr => open +-- ); + +pace_inst : entity work.pace + port map( + clkrst_i => clkrst_i, + buttons_i => buttons_i, + switches_i => switches_i, + inputs_i => inputs_i, + video_i => video_i, + video_o => video_o, + sound_data_o => sound_data, + platform_i => platform_i, + platform_o => platform_o, + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do + ); + + inputs_i.jamma_n.coin(1) <= not usr_coin1; + inputs_i.jamma_n.coin(2) <= not usr_coin2; + inputs_i.jamma_n.service <= not usr_service; + inputs_i.jamma_n.p(1).start <= not usr_start1; + inputs_i.jamma_n.p(2).start <= not usr_start2; + + inputs_i.jamma_n.p(1).up <= not p1_up; + inputs_i.jamma_n.p(1).down <= not p1_dw; + inputs_i.jamma_n.p(1).left <= not p1_lt; + inputs_i.jamma_n.p(1).right <= not p1_rt; + inputs_i.jamma_n.p(1).button(1) <= not p1_f1; + inputs_i.jamma_n.p(1).button(2) <= not p1_f2; + inputs_i.jamma_n.p(1).button(3) <= '1'; + inputs_i.jamma_n.p(1).button(4) <= '1'; + inputs_i.jamma_n.p(1).button(5) <= '1'; + + inputs_i.jamma_n.p(2).up <= not p2_up; + inputs_i.jamma_n.p(2).down <= not p2_dw; + inputs_i.jamma_n.p(2).left <= not p2_lt; + inputs_i.jamma_n.p(2).right <= not p2_rt; + inputs_i.jamma_n.p(2).button(1) <= not p2_f1; + inputs_i.jamma_n.p(2).button(2) <= not p2_f2; + inputs_i.jamma_n.p(2).button(3) <= '1'; + inputs_i.jamma_n.p(2).button(4) <= '1'; + inputs_i.jamma_n.p(2).button(5) <= '1'; + + -- not currently wired to any inputs + inputs_i.jamma_n.coin_cnt <= (others => '1'); + inputs_i.jamma_n.tilt <= '1'; + inputs_i.jamma_n.test <= '1'; +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl.vhd new file mode 100644 index 00000000..9ccad9f8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl.vhd @@ -0,0 +1,106 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; +use work.platform_variant_pkg.all; +use work.video_controller_pkg.all; + +-- +-- Irem M62 Tilemap Controller +-- +-- Tile data is 2 BPP. +-- + +architecture TILEMAP_1 of tilemapCtl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + alias stb : std_logic is video_ctl.stb; + alias hblank : std_logic is video_ctl.hblank; + alias vblank : std_logic is video_ctl.vblank; + + signal x : std_logic_vector(video_ctl.x'range); + signal y : std_logic_vector(video_ctl.y'range); + + alias rot_en : std_logic is graphics_i.bit8(0)(0); + alias hscroll : std_logic_vector(15 downto 0) is graphics_i.bit16(0); + +begin + + -- not used + ctl_o.map_a(ctl_o.map_a'left downto 11) <= (others => '0'); + ctl_o.attr_a(ctl_o.attr_a'left downto 11) <= (others => '0'); + ctl_o.tile_a(ctl_o.tile_a'left downto 13) <= (others => '0'); + + -- screen rotation + x <= std_logic_vector(M62_VIDEO_H_OFFSET + unsigned(video_ctl.x)) when unsigned(y) < 6*8 else + std_logic_vector(M62_VIDEO_H_OFFSET + unsigned(video_ctl.x) + unsigned(hscroll(8 downto 0))); + -- when rot_en = '0' else not video_ctl.y; + --y <= not video_ctl.y when rot_en = '0' else 32 + video_ctl.x; + y <= video_ctl.y; -- when rot_en = '0' else video_ctl.x; + + -- generate pixel + process (clk, clk_ena) + + variable tile_d_r : std_logic_vector(23 downto 0); + variable attr_d_r : std_logic_vector(7 downto 0); + variable pel : std_logic_vector(2 downto 0); + variable pal_i : std_logic_vector(7 downto 0); + variable pal_rgb : pal_rgb_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + + -- 1st stage of pipeline + -- - set tilemap, attribute address + ctl_o.map_a(10 downto 6) <= y(7 downto 3); + ctl_o.map_a(5 downto 0) <= x(8 downto 3); + ctl_o.attr_a(10 downto 6) <= y(7 downto 3); + ctl_o.attr_a(5 downto 0) <= x(8 downto 3); + + -- 2nd stage of pipeline + -- - set tile address + if x(2 downto 0) = "010" then + ctl_o.tile_a(12 downto 11) <= ctl_i.attr_d(7 downto 6); + ctl_o.tile_a(10 downto 3) <= ctl_i.map_d(7 downto 0); + ctl_o.tile_a(2 downto 0) <= y(2 downto 0); + end if; + + -- 3rd stage of pipeline + -- - read tile, attribute data from ROM + if x(2 downto 0) = "100" then + tile_d_r := ctl_i.tile_d(tile_d_r'range); + attr_d_r := ctl_i.attr_d(7 downto 0); + elsif stb = '1' then + tile_d_r := tile_d_r(tile_d_r'left-1 downto 0) & '0'; + end if; + + -- extract R,G,B from colour palette + pel := tile_d_r(tile_d_r'left-16) & tile_d_r(tile_d_r'left-8) & tile_d_r(tile_d_r'left); + pal_i := attr_d_r(4 downto 0) & pel; + pal_rgb := tile_pal(to_integer(unsigned(pal_i))); + ctl_o.rgb.r <= pal_rgb(0) & "00"; + ctl_o.rgb.g <= pal_rgb(1) & "00"; + ctl_o.rgb.b <= pal_rgb(2) & "00"; + ctl_o.set <= '0'; -- default +-- if pel /= "000" then +-- pal_rgb(0)(7 downto 5) /= "000" or +-- pal_rgb(1)(7 downto 5) /= "000" or +-- pal_rgb(2)(7 downto 5) /= "000" then + if graphics_i.bit8(0)(3) = '1' then + ctl_o.set <= '1'; + end if; +-- end if; + + end if; -- clk_ena + end if; -- rising_edge_clk + + end process; + +end architecture TILEMAP_1; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl_e.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl_e.vhd new file mode 100644 index 00000000..8d93334b --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/tilemapctl_e.vhd @@ -0,0 +1,29 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +--use work.project_pkg.all; +use work.platform_pkg.all; +use work.video_controller_pkg.all; + +entity tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity tilemapCtl; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller.vhd new file mode 100644 index 00000000..9372578d --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller.vhd @@ -0,0 +1,465 @@ +library IEEE; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.video_controller_pkg.all; + +entity pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + L_CROP : integer range 0 to 255; + R_CROP : integer range 0 to 255; + H_SCALE : integer; + V_SCALE : integer; + H_SYNC_POL : std_logic := '1'; + V_SYNC_POL : std_logic := '1'; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : out from_VIDEO_CTL_t; + + -- video output control & data + video_o : out to_VIDEO_t + ); +end pace_video_controller; + +architecture SYN of pace_video_controller is + + constant SIM_DELAY : time := 2 ns; + + constant VIDEO_H_SIZE : integer := H_SIZE * H_SCALE; + constant VIDEO_V_SIZE : integer := V_SIZE * V_SCALE; + + subtype reg_t is integer range 0 to 2047; + + alias clk : std_logic is video_i.clk; + alias clk_ena : std_logic is video_i.clk_ena; + alias reset : std_logic is video_i.reset; + + -- registers + signal h_front_porch_r : reg_t := 0; + signal h_sync_r : reg_t := 0; + signal h_back_porch_r : reg_t := 0; + signal h_border_r : reg_t := 0; + signal h_video_r : reg_t := 0; + signal v_front_porch_r : reg_t := 0; + signal v_sync_r : reg_t := 0; + signal v_back_porch_r : reg_t := 0; + signal v_border_r : reg_t := 0; + signal v_video_r : reg_t := 0; + + signal border_rgb_r : RGB_t := ((others=>'0'), (others=>'0'), (others=>'0')); + + -- derived values + signal h_sync_start : reg_t := 0; + signal h_back_porch_start : reg_t := 0; + signal h_left_border_start : reg_t := 0; + signal h_video_start : reg_t := 0; + signal h_right_border_start : reg_t := 0; + signal h_line_end : reg_t := 0; + signal v_sync_start : reg_t := 0; + signal v_back_porch_start : reg_t := 0; + signal v_top_border_start : reg_t := 0; + signal v_video_start : reg_t := 0; + signal v_bottom_border_start : reg_t := 0; + signal v_screen_end : reg_t := 0; + + signal hsync_s : std_logic := '0'; + signal vsync_s : std_logic := '0'; + signal hactive_s : std_logic := '0'; + signal vactive_s : std_logic := '0'; + signal hblank_s : std_logic := '0'; + signal vblank_s : std_logic := '0'; + + subtype count_t is integer range 0 to 2047; + signal x_count : count_t := 0; + signal y_count : count_t := 0; + + signal x_s : unsigned(10 downto 0) := (others => '0'); + signal y_s : unsigned(10 downto 0) := (others => '0'); + + --signal extended_reset : std_logic := '1'; + alias extended_reset : std_logic is video_i.reset; + +begin + + -- registers + reg_proc: process (reset, clk) + + begin + --if reset = '1' then + case CONFIG is + + when PACE_VIDEO_VGA_240x320_60Hz => + -- P3M, clk=11.136MHz, clk_ena=5.568MHz + h_front_porch_r <= 272-240; + h_sync_r <= 5; + h_back_porch_r <= 22; + h_border_r <= (240-VIDEO_H_SIZE)/2; + v_front_porch_r <= 326-320; + v_sync_r <= 1; + v_back_porch_r <= 5; + v_border_r <= (320-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_320x480_60Hz => + -- VGA, clk=12.588MHz + --# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio + --Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan + h_front_porch_r <= 16; + h_sync_r <= 48; + h_back_porch_r <= 16; + h_border_r <= (320-VIDEO_H_SIZE)/2; + v_front_porch_r <= (5*2); + v_sync_r <= (1*2); + v_back_porch_r <= (16*2); + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_640x480_60Hz => + -- VGA, clk=25.175MHz + h_front_porch_r <= 16; + h_sync_r <= 96; + h_back_porch_r <= 48; + h_border_r <= (640-VIDEO_H_SIZE)/2; + v_front_porch_r <= 10; + v_sync_r <= 2; + v_back_porch_r <= 33; + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_800x600_60Hz => + -- SVGA, clk=40MHz + h_front_porch_r <= 40; + h_sync_r <= 128; + h_back_porch_r <= 88; + h_border_r <= (800-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 4; + v_back_porch_r <= 23; + v_border_r <= (600-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1024x768_60Hz => + -- XVGA, clk=65MHz + h_front_porch_r <= 24; + h_sync_r <= 136; + h_back_porch_r <= 160; + h_border_r <= (1024-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 6; + v_back_porch_r <= 29; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1366x768_60Hz => + -- XVGA(NAVICO ROCKY), clk=72MHz + h_front_porch_r <= 88; --64; + h_sync_r <= 44; --112; + h_back_porch_r <= 148; --248; + h_border_r <= (1366-VIDEO_H_SIZE)/2; + v_front_porch_r <= 4; --3; + v_sync_r <= 5; --6; + v_back_porch_r <= 36; --18; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x800_60Hz => + -- Sentinel Mode 36, clk=103.2MHz + h_front_porch_r <= 64; + h_sync_r <= 32; + h_back_porch_r <= 362-32-64; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 4; + v_back_porch_r <= 38-4-3; + v_border_r <= (800-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x1024_60Hz => + -- SXGA, clk=108MHz + h_front_porch_r <= 48; + h_sync_r <= 112; + h_back_porch_r <= 248; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 38; + v_border_r <= (1024-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1680x1050_60Hz => + -- WSXGA+, clk=147.14MHz + h_front_porch_r <= 104; + h_sync_r <= 184; + h_back_porch_r <= 288; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 33; + -- WSXGA+, clk=118MHz + --h_front_porch_r <= 48; + --h_sync_r <= 32; + --h_back_porch_r <= 80; + --v_front_porch_r <= 3; + --v_sync_r <= 6; + --v_back_porch_r <= 21; + h_border_r <= (1680-VIDEO_H_SIZE)/2; + v_border_r <= (1050-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz => + -- arcade standard resolution, clk=7.16MHz + h_front_porch_r <= 34; + h_sync_r <= 34; + h_back_porch_r <= 51; + h_border_r <= (336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64 => + -- arcade standard resolution, clk=28.64MHz + h_front_porch_r <= 4*34; + h_sync_r <= 4*34; + h_back_porch_r <= 4*51; + h_border_r <= 4*(336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_CVBS_720x288p_50Hz => + -- generic composite, clk=13.5MHz + h_front_porch_r <= (8+12); + h_sync_r <= 64; + h_back_porch_r <= (144-64-(8+12)); + h_border_r <= (720-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 20; + v_border_r <= (288-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_LCM_320x240_60Hz => + -- DE1/2, clk=18MHz + h_front_porch_r <= 59; + h_sync_r <= 1; + h_back_porch_r <= 151; + h_border_r <= (320-VIDEO_H_SIZE)*3/2; + v_front_porch_r <= 8; + v_sync_r <= 1; + v_back_porch_r <= 13; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_PAL_576x288_50Hz => + -- pixclk=11 MHz + h_front_porch_r <= 2*6; + h_sync_r <= 2*28; + h_back_porch_r <= 2*30; + h_border_r <= (576-VIDEO_H_SIZE)/2; + v_front_porch_r <= 8; + v_sync_r <= 3; + v_back_porch_r <= 13; + v_border_r <= (288-VIDEO_V_SIZE)/2; + when others => + null; + end case; + + h_video_r <= VIDEO_H_SIZE; + v_video_r <= VIDEO_V_SIZE; + border_rgb_r <= BORDER_RGB; + + --end if; + end process reg_proc; + + -- register some arithmetic + init_proc: process (reset, clk, clk_ena) + begin + if reset = '1' then + null; + elsif rising_edge(clk) then + h_sync_start <= h_front_porch_r - 1; + h_back_porch_start <= h_sync_start + h_sync_r; + h_left_border_start <= h_back_porch_start + h_back_porch_r; + h_video_start <= h_left_border_start + h_border_r; + h_right_border_start <= h_video_start + h_video_r; + h_line_end <= h_right_border_start + h_border_r; + v_sync_start <= v_front_porch_r - 1; + v_back_porch_start <= v_sync_start + v_sync_r; + v_top_border_start <= v_back_porch_start + v_back_porch_r; + v_video_start <= v_top_border_start + v_border_r; + v_bottom_border_start <= v_video_start + v_video_r; + v_screen_end <= v_bottom_border_start + v_border_r; + end if; + end process init_proc; + + reset_proc: process (reset, clk) + variable count_v : integer; + begin + if reset = '1' then + --extended_reset <= '1'; + count_v := 7; + elsif rising_edge(clk) then + if count_v = 0 then + --extended_reset <= '0'; + else + count_v := count_v - 1; + end if; + end if; + end process reset_proc; + + -- video control outputs + timer_proc: process (extended_reset, clk, clk_ena) + begin + if extended_reset = '1' then + hblank_s <= '1'; + vblank_s <= '1'; + hactive_s <= '0'; + vactive_s <= '0'; + hsync_s <= not H_SYNC_POL; + x_count <= 0; + y_count <= 0; + elsif rising_edge(clk) and clk_ena = '1' then + if x_count = h_line_end then + hblank_s <= '1'; + hactive_s <= '0'; -- for 0 borders + if y_count = v_screen_end then + vblank_s <= '1'; + vactive_s <= '0'; -- for 0 borders + y_count <= 0; + else + y_s <= y_s + 1; + if y_count = v_sync_start then + vsync_s <= V_SYNC_POL; + elsif y_count = v_back_porch_start then + vsync_s <= not V_SYNC_POL; + elsif y_count = v_video_start then + vblank_s <= '0'; -- for 0 borders + vactive_s <= '1'; + y_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif y_count = v_top_border_start then + vblank_s <= '0'; + elsif y_count = v_bottom_border_start then + vactive_s <= '0'; + end if; + y_count <= y_count + 1; + end if; + x_count <= 0; + else + x_s <= x_s + 1; + if x_count = h_sync_start then + hsync_s <= H_SYNC_POL; + elsif x_count = h_back_porch_start then + hsync_s <= not H_SYNC_POL; + elsif x_count = h_video_start then + hblank_s <= '0'; -- for 0 borders + hactive_s <= '1'; + x_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif x_count = h_left_border_start then + hblank_s <= '0'; + elsif x_count = h_right_border_start then + hactive_s <= '0'; + end if; + x_count <= x_count + 1; + end if; + end if; -- rising_edge(clk) and clk_ena = '1' + end process timer_proc; + + -- pass-through for tile/bitmap & sprite controllers + video_ctl_o.clk <= clk; + video_ctl_o.clk_ena <= clk_ena; + + -- for video DACs and TFT output + video_o.clk <= clk; + + BLK_VIDEO_O : block + + constant PIPELINE_DELAY : natural := DELAY+1; + + -- won't synthesize correctly under ISE if these are variables + signal hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + signal vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + + begin + + video_o_proc: process (extended_reset, clk, clk_ena) + variable hsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable hblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + alias hsync_v : std_logic is hsync_v_r(hsync_v_r'left); + alias vsync_v : std_logic is vsync_v_r(vsync_v_r'left); + alias hactive_v : std_logic is hactive_v_r(hactive_v_r'left); + alias vactive_v : std_logic is vactive_v_r(vactive_v_r'left); + alias hblank_v : std_logic is hblank_v_r(hblank_v_r'left); + alias vblank_v : std_logic is vblank_v_r(vblank_v_r'left); + variable stb_cnt_v : unsigned(3 downto 0); -- up to 16x scaling + begin + if extended_reset = '1' then + hsync_v_r := (others => not H_SYNC_POL); + vsync_v_r := (others => not V_SYNC_POL); + hactive_v_r <= (others => '0'); + vactive_v_r <= (others => '0'); + hblank_v_r := (others => '0'); + vblank_v_r := (others => '0'); + stb_cnt_v := (others => '1'); + elsif rising_edge(clk) and clk_ena = '1' then + + -- register control signals and handle scaling + video_ctl_o.hblank <= not hactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + video_ctl_o.vblank <= not vactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + -- handle scaling + video_ctl_o.stb <= stb_cnt_v(H_SCALE-1) after SIM_DELAY; + if hactive_s = '1' and vactive_s = '1' then + stb_cnt_v := stb_cnt_v + 2; + elsif hblank_s = '0' and vblank_s = '0' then + stb_cnt_v := (others => '1'); + end if; + video_ctl_o.x <= std_logic_vector(resize(x_s(x_s'left downto H_SCALE-1), video_ctl_o.x'length)) after SIM_DELAY; + video_ctl_o.y <= std_logic_vector(resize(y_s(y_s'left downto V_SCALE-1), video_ctl_o.y'length)) after SIM_DELAY; + + -- register video outputs + if hactive_v = '1' and vactive_v = '1' then + -- active video + if x_s(x_s'left downto H_SCALE-1) < (L_CROP + PIPELINE_DELAY) or + x_s(x_s'left downto H_SCALE-1) >= (H_SIZE - R_CROP + PIPELINE_DELAY) then + video_o.rgb <= RGB_BLACK after SIM_DELAY; + else + video_o.rgb <= rgb_i after SIM_DELAY; + end if; + elsif hblank_v = '0' and vblank_v = '0' then + -- border + video_o.rgb <= border_rgb_r after SIM_DELAY; + else + video_o.rgb.r <= (others => '0') after SIM_DELAY; + video_o.rgb.g <= (others => '0') after SIM_DELAY; + video_o.rgb.b <= (others => '0') after SIM_DELAY; + end if; + video_o.hsync <= hsync_v after SIM_DELAY; + video_o.vsync <= vsync_v after SIM_DELAY; + video_o.hblank <= hblank_v after SIM_DELAY; + video_o.vblank <= vblank_v after SIM_DELAY; + -- pipelined signals + hsync_v_r := hsync_v_r(hsync_v_r'left-1 downto 0) & hsync_s; + vsync_v_r := vsync_v_r(vsync_v_r'left-1 downto 0) & vsync_s; + hactive_v_r <= hactive_v_r(hactive_v_r'left-1 downto 0) & hactive_s; + vactive_v_r <= vactive_v_r(vactive_v_r'left-1 downto 0) & vactive_s; + hblank_v_r := hblank_v_r(hblank_v_r'left-1 downto 0) & hblank_s; + vblank_v_r := vblank_v_r(vblank_v_r'left-1 downto 0) & vblank_s; + end if; + end process video_o_proc; + + end block BLK_VIDEO_O; + +end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg.vhd new file mode 100644 index 00000000..526be3c8 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg.vhd @@ -0,0 +1,230 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +package video_controller_pkg is + + type PACEVideoController_t is + ( + PACE_VIDEO_NONE, -- PACE video controller not used + PACE_VIDEO_VGA_240x320_60Hz, -- P3M video + PACE_VIDEO_VGA_320x480_60Hz, -- for 320x200 (12.588MHz) + PACE_VIDEO_VGA_640x480_60Hz, -- generic VGA (25.175MHz) + PACE_VIDEO_VGA_800x600_60Hz, -- generic VGA (40MHz) + PACE_VIDEO_VGA_1024x768_60Hz, -- XVGA (65MHz) + PACE_VIDEO_VGA_1366x768_60Hz, -- (NAVICO ROCKY) (72MHz) + PACE_VIDEO_VGA_1280x800_60Hz, -- Sentinel Mode 36 + PACE_VIDEO_VGA_1280x1024_60Hz, -- SXGA (108MHz) + PACE_VIDEO_VGA_1680x1050_60Hz, -- WSXGA+ (147MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz, -- arcade std resolution (7.16MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64, -- arcade std resolution (28.64MHz) + PACE_VIDEO_CVBS_720x288p_50Hz, -- generic composite + PACE_VIDEO_LCM_320x240_60Hz, -- DE2 LCD + PACE_VIDEO_PAL_576x288_50Hz + ); + + type PACEVideoDisplay_t is + ( + PACE_DISPLAY_NONE, + PACE_DISPLAY_VGA, + PACE_DISPLAY_CVBS, + PACE_DISPLAY_TFT + ); + + type RGB_t is record + r : std_logic_vector(9 downto 0); + g : std_logic_vector(9 downto 0); + b : std_logic_vector(9 downto 0); + end record; + + type RGB_a is array (natural range <>) of RGB_t; + + function NULL_RGB return RGB_t; + + constant RGB_BLACK : RGB_t := ((others=>'0'),(others=>'0'),(others=>'0')); + constant RGB_RED : RGB_t := ((others=>'1'),(others=>'0'),(others=>'0')); + constant RGB_GREEN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'0')); + constant RGB_YELLOW : RGB_t := ((others=>'1'),(others=>'1'),(others=>'0')); + constant RGB_BLUE : RGB_t := ((others=>'0'),(others=>'0'),(others=>'1')); + constant RGB_MAGENTA : RGB_t := ((others=>'1'),(others=>'0'),(others=>'1')); + constant RGB_CYAN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'1')); + constant RGB_WHITE : RGB_t := ((others=>'1'),(others=>'1'),(others=>'1')); + + type VIDEO_REG_t is record + h_scale : std_logic_vector(2 downto 0); + v_scale : std_logic_vector(2 downto 0); + end record; + + type from_VIDEO_t is record + clk : std_logic; + clk_ena : std_logic; + reset : std_logic; + end record; + + type to_VIDEO_t is record + clk : std_logic; + rgb : rgb_t; + hsync : std_logic; + vsync : std_logic; + hblank : std_logic; + vblank : std_logic; + de : std_logic; + end record; + + type from_VIDEO_CTL_t is record + clk : std_logic; + clk_ena : std_logic; + stb : std_logic; + hblank : std_logic; + vblank : std_logic; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + end record; + + subtype BITMAP_D_t is std_logic_vector(23 downto 0); + subtype BITMAP_A_t is std_logic_vector(15 downto 0); + + type to_BITMAP_CTL_t is record + d : BITMAP_D_t; + end record; + + type to_BITMAP_CTL_a is array (natural range <>) of to_BITMAP_CTL_t; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t; + + type from_BITMAP_CTL_t is record + a : BITMAP_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_BITMAP_CTL_a is array (natural range <>) of from_BITMAP_CTL_t; + + subtype TILEMAP_D_t is std_logic_vector(15 downto 0); + subtype TILEMAP_A_t is std_logic_vector(15 downto 0); + subtype TILE_A_t is std_logic_vector(16 downto 0); + subtype TILE_D_t is std_logic_vector(23 downto 0); + subtype ATTR_A_t is std_logic_vector(15 downto 0); + subtype ATTR_D_t is std_logic_vector(15 downto 0); + + type to_TILEMAP_CTL_t is record + map_d : TILEMAP_D_t; + tile_d : TILE_D_t; + attr_d : ATTR_D_t; + end record; + + type to_TILEMAP_CTL_a is array (natural range <>) of to_TILEMAP_CTL_t; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t; + + type from_TILEMAP_CTL_t is record + map_a : TILEMAP_A_t; + tile_a : TILE_A_t; + attr_a : ATTR_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_TILEMAP_CTL_a is array (natural range <>) of from_TILEMAP_CTL_t; + + subtype PAL_ENTRY_t is std_logic_vector(15 downto 0); + type PAL_A_t is array (natural range <>) of PAL_ENTRY_t; + + subtype BYTE_t is std_logic_vector(7 downto 0); + type BYTE_A_t is array (natural range <>) of BYTE_t; + + subtype WORD_t is std_logic_vector(15 downto 0); + type WORD_A_t is array (natural range <>) of WORD_t; + + type to_GRAPHICS_t is record + pal : PAL_A_t(0 to 15); + -- for various uses + bit8 : BYTE_A_t(0 to 7); + bit16 : WORD_A_t(0 to 3); + -- 'native' graphics stream + hsync : std_logic; + vsync : std_logic; + rgb : RGB_t; + end record; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t; + + type from_GRAPHICS_t is record + y : std_logic_vector(10 downto 0); + hblank : std_logic; + vblank : std_logic; + end record; + + component pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + --H_SCALE : integer; + --V_SCALE : integer; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : from_VIDEO_CTL_t; + + -- Outputs to video + video_o : out to_VIDEO_t + ); + end component pace_video_controller; + + component tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component tilemapCtl; + + component bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component bitmapCtl; + +end package video_controller_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg_body.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg_body.vhd new file mode 100644 index 00000000..996e5867 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_controller_pkg_body.vhd @@ -0,0 +1,29 @@ +library work; +--use work.pace_pkg.all; + +package body video_controller_pkg is + + function NULL_RGB return RGB_t is + begin + return (others => (others => '0')); + end NULL_RGB; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t is + begin + return (others => (others => '0')); + end NULL_TO_BITMAP_CTL; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t is + begin + return ((others => '0'), (others => '0'), (others => '0')); + end NULL_TO_TILEMAP_CTL; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t is + begin + return ((others => (others => '0')), + (others => (others => '0')), + (others => (others => '0')), + '0', '0', NULL_RGB); + end NULL_TO_GRAPHICS; + +end package body video_controller_pkg; diff --git a/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_mixer.vhd b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_mixer.vhd new file mode 100644 index 00000000..fb4b4aa4 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/Kung_MiST/rtl/video_mixer.vhd @@ -0,0 +1,66 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity pace_video_mixer is + port + ( + --bitmap_rgb : in RGB_t; + --bitmap_set : in std_logic; + bitmap_ctl_o : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_o : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + sprite_rgb : in RGB_t; + sprite_set : in std_logic; + sprite_pri : in std_logic; + + video_ctl_i : in from_VIDEO_CTL_t; + graphics_i : in to_GRAPHICS_t; + rgb_o : out RGB_t + ); +end entity pace_video_mixer; + +architecture SYN of pace_video_mixer is + signal bg_rgb : RGB_t; +begin + + GEN_BITMAPS : + if PACE_VIDEO_NUM_BITMAPS = 1 generate + bg_rgb <= bitmap_ctl_o(1).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 2 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 3 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb when bitmap_ctl_o(2).set = '1' else + bitmap_ctl_o(3).rgb when bitmap_ctl_o(3).set = '1' else + (others => (others => '0')); + else generate + bg_rgb <= (others => (others => '0')); + end generate GEN_BITMAPS; + + GEN_TILEMAPS : + if PACE_VIDEO_NUM_TILEMAPS = 1 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + elsif PACE_VIDEO_NUM_TILEMAPS = 2 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + tilemap_ctl_o(2).rgb when tilemap_ctl_o(2).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + else generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + end generate GEN_TILEMAPS; + +end architecture SYN; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf index 317e418d..7e0b14c7 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/LodeRunner_MiST.qsf @@ -266,10 +266,10 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top - set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top # end DESIGN_PARTITION(Top) # ------------------------- # end ENTITY(LodeRunner_MiST) -# --------------------------- \ No newline at end of file +# --------------------------- +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD index 8dc75400..dc3fb666 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Graphics.VHD @@ -269,5 +269,4 @@ begin sprite_ctl_o <= sprite_ctl_o_s; - end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv index bbc4ef58..a244cfc1 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/LodeRunner_MiST.sv @@ -40,7 +40,10 @@ localparam CONF_STR = { "V,v1.0.",`BUILD_DATE }; - +wire rotate = status[2]; +wire [1:0] scanlines = status[4:3]; +wire blend = status[5]; +wire service = status[6]; assign LED = ~ioctl_downl; assign SDRAM_CLK = clk_sd; @@ -65,21 +68,39 @@ wire [7:0] joystick_0; wire [7:0] joystick_1; wire scandoublerD; wire ypbpr; -wire [11:0] audio; -wire hs, vs; -wire blankn = 1'b1;//todo -wire [3:0] g,b,r; +wire no_csync; wire key_pressed; wire [7:0] key_code; wire key_strobe; +user_io #( + .STRLEN(($size(CONF_STR)>>3))) +user_io( + .clk_sys (clk_sys ), + .conf_str (CONF_STR ), + .SPI_CLK (SPI_SCK ), + .SPI_SS_IO (CONF_DATA0 ), + .SPI_MISO (SPI_DO ), + .SPI_MOSI (SPI_DI ), + .buttons (buttons ), + .switches (switches ), + .scandoubler_disable (scandoublerD ), + .ypbpr (ypbpr ), + .no_csync (no_csync ), + .key_strobe (key_strobe ), + .key_pressed (key_pressed ), + .key_code (key_code ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), + .status (status ) + ); + wire [14:0] rom_addr; wire [15:0] rom_do; wire [13:0] snd_addr; wire [15:0] snd_do; - wire [14:0] sp_addr; wire [31:0] sp_do; @@ -165,15 +186,20 @@ always @(posedge clk_sys) begin end +wire [11:0] audio; +wire hs, vs; +wire blankn = 1'b1;//todo +wire [3:0] g,b,r; + target_top target_top( - .clock_50(clk_sys),//40MHz - .clock_vid(clk_vid),//25.263158MHz + .clock_sys(clk_sys),//4xclk_vid + .clock_vid(clk_vid),//11MHz .clk_aud(clk_aud),//0.895MHz .reset_in(reset), .audio_out(audio), .usr_coin1(m_coin1), .usr_coin2(m_coin2), - .usr_service(status[6]), + .usr_service(service), .usr_start1(m_one_player), .usr_start2(m_two_players), .p1_up(m_up), @@ -188,18 +214,18 @@ target_top target_top( .p2_rt(m_right2), .p2_f1(m_fire2A), .p2_f2(m_fire2B), - .VGA_VS(hs), - .VGA_HS(vs), - .VGA_R(r), - .VGA_G(g), - .VGA_B(b), + .VGA_VS(vs), + .VGA_HS(hs), + .VGA_R(r), + .VGA_G(g), + .VGA_B(b), .cpu_rom_addr(rom_addr), .cpu_rom_do( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ), .snd_rom_addr(snd_addr), - .snd_rom_do(snd_addr[0] ? snd_do[15:8] : snd_do[7:0]) + .snd_rom_do(snd_addr[0] ? snd_do[15:8] : snd_do[7:0]) ); -mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(9)) mist_video( +mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video( .clk_sys ( clk_sys ), .SPI_SCK ( SPI_SCK ), .SPI_SS3 ( SPI_SS3 ), @@ -214,33 +240,13 @@ mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(9)) mist_video( .VGA_B ( VGA_B ), .VGA_VS ( VGA_VS ), .VGA_HS ( VGA_HS ), - .rotate ( { 1'b1, status[2] } ), - .ce_divider ( 1'b1 ), - .scandoubler_disable( 1),//scandoublerD ), - .scanlines ( status[4:3] ), - .blend ( status[5] ), - .ypbpr ( ypbpr ) - ); - -user_io #( - .STRLEN(($size(CONF_STR)>>3))) -user_io( - .clk_sys (clk_sys ), - .conf_str (CONF_STR ), - .SPI_CLK (SPI_SCK ), - .SPI_SS_IO (CONF_DATA0 ), - .SPI_MISO (SPI_DO ), - .SPI_MOSI (SPI_DI ), - .buttons (buttons ), - .switches (switches ), - .scandoubler_disable (scandoublerD ), - .ypbpr (ypbpr ), - .key_strobe (key_strobe ), - .key_pressed (key_pressed ), - .key_code (key_code ), - .joystick_0 (joystick_0 ), - .joystick_1 (joystick_1 ), - .status (status ) + .rotate ( { 1'b1, rotate } ), + .ce_divider ( 1'b0 ), + .scandoubler_disable( scandoublerD ), + .scanlines ( scanlines ), + .blend ( blend ), + .ypbpr ( ypbpr ), + .no_csync ( no_csync ) ); wire dac_o; @@ -267,7 +273,7 @@ arcade_inputs inputs ( .key_code ( key_code ), .joystick_0 ( joystick_0 ), .joystick_1 ( joystick_1 ), - .rotate ( status[2] ), + .rotate ( rotate ), .orientation ( 2'b10 ), .joyswap ( 1'b0 ), .oneplayer ( 1'b1 ), diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd index 2ba93794..abcb4631 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/Sound_Board.vhd @@ -178,7 +178,7 @@ cpu_di <= port2_ddr when ports_cs = '1' and cpu_addr(3 downto 0) = X"1" else port1_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"2" else port2_in when ports_cs = '1' and cpu_addr(3 downto 0) = X"3" else - rom_do when rom_cs = '1' else X"55"; + snd_rom_do when rom_cs = '1' else X"55"; process (clock_E) begin @@ -346,14 +346,9 @@ port map( test_cc => open ); -rom_cpu : entity work.snd_prg -port map( - clk => clock_E, -- E clock input (falling edge) - addr => cpu_addr(13 downto 0), - data => rom_do -); --- snd_rom_addr <= cpu_addr(13 downto 0); + + snd_rom_addr <= cpu_addr(13 downto 0); -- cpu wram diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd index cc47e1a0..7e2c8831 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/platform_pkg.vhd @@ -8,62 +8,41 @@ use work.platform_variant_pkg.all; use work.video_controller_pkg.all; package platform_pkg is - constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_VGA_640x480_60Hz; - constant PACE_CLK0_DIVIDE_BY : natural := 3; - constant PACE_CLK0_MULTIPLY_BY : natural := 5; -- 24*5/3 = 40MHz - constant PACE_CLK1_DIVIDE_BY : natural := 19; - constant PACE_CLK1_MULTIPLY_BY : natural := 20; -- 24*20/19 = 25.263158MHz - constant PACE_VIDEO_H_SCALE : integer := 1; - constant PACE_VIDEO_V_SCALE : integer := 1; - constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '0'; - constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '0'; --- constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_ARCADE_STD_336x240_60Hz; --- constant PACE_CLK0_DIVIDE_BY : natural := 1; --- constant PACE_CLK0_MULTIPLY_BY : natural := 1; -- 24*1/1 = 24MHz --- constant PACE_CLK1_DIVIDE_BY : natural := 57; --- constant PACE_CLK1_MULTIPLY_BY : natural := 17; -- 24*17/57 = 7.157895MHz --- constant PACE_VIDEO_H_SCALE : integer := 1; --- constant PACE_VIDEO_V_SCALE : integer := 1; --- constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '0'; --- constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '0'; - - --constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_CVBS_720x288p_50Hz; - --constant PACE_CLK0_DIVIDE_BY : natural := 8; - --constant PACE_CLK0_MULTIPLY_BY : natural := 9; -- 24*9/8 = 27MHz - --constant PACE_CLK1_DIVIDE_BY : natural := 16; - --constant PACE_CLK1_MULTIPLY_BY : natural := 9; -- 24*9/16 = 13.5MHz - --constant PACE_VIDEO_H_SCALE : integer := 2; - --constant PACE_VIDEO_V_SCALE : integer := 1; - --constant PACE_ENABLE_ADV724 : std_logic := '1'; - --constant USE_VIDEO_VBLANK_INTERRUPT : boolean := false; + constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_PAL_576x288_50Hz; + constant PACE_CLK0_DIVIDE_BY : natural := 27; + constant PACE_CLK0_MULTIPLY_BY : natural := 44; -- 27*44/27 = 44MHz + constant PACE_CLK1_DIVIDE_BY : natural := 27; + constant PACE_CLK1_MULTIPLY_BY : natural := 11; -- 27*11/27 = 11MHz + constant PACE_VIDEO_H_SCALE : integer := 1; + constant PACE_VIDEO_V_SCALE : integer := 1; + constant PACE_ENABLE_ADV724 : std_logic := '1'; + constant USE_VIDEO_VBLANK_INTERRUPT : boolean := false; + constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '1'; + constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '1'; constant PACE_VIDEO_BORDER_RGB : RGB_t := RGB_BLACK; constant M62_VIDEO_H_SIZE : integer := 384; - constant M62_VIDEO_H_OFFSET : integer := (512-M62_VIDEO_H_SIZE)/2; + constant M62_VIDEO_H_OFFSET : integer := (512-M62_VIDEO_H_SIZE)/2; constant M62_VIDEO_V_SIZE : integer := 256; - - constant PACE_VIDEO_NUM_BITMAPS : natural := 0; - constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; - constant PACE_VIDEO_NUM_SPRITES : natural := 32; - constant PACE_VIDEO_H_SIZE : integer := M62_VIDEO_H_SIZE; - constant PACE_VIDEO_V_SIZE : integer := M62_VIDEO_V_SIZE; - constant PACE_VIDEO_L_CROP : integer := 0; - constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; - constant PACE_VIDEO_PIPELINE_DELAY : integer := 5; - - constant PACE_INPUTS_NUM_BYTES : integer := 6; - - constant CLK0_FREQ_MHz : natural := - 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; - constant CPU_FREQ_MHz : natural := 3; - - constant M62_CPU_CLK_ENA_DIVIDE_BY : natural := CLK0_FREQ_MHz / CPU_FREQ_MHz; - - - + constant PACE_VIDEO_NUM_BITMAPS : natural := 0; + constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; + constant PACE_VIDEO_NUM_SPRITES : natural := 32; + constant PACE_VIDEO_H_SIZE : integer := M62_VIDEO_H_SIZE; + constant PACE_VIDEO_V_SIZE : integer := M62_VIDEO_V_SIZE; + constant PACE_VIDEO_L_CROP : integer := 0; + constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; + constant PACE_VIDEO_PIPELINE_DELAY : integer := 5; + + constant PACE_INPUTS_NUM_BYTES : integer := 6; + + constant CLK0_FREQ_MHz : natural := + 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; + constant CPU_FREQ_MHz : natural := 3; + + constant M62_CPU_CLK_ENA_DIVIDE_BY : natural := CLK0_FREQ_MHz / CPU_FREQ_MHz; type from_PLATFORM_IO_t is record not_used : std_logic; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd index 8e360627..ebe4c7e7 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/pll_mist.vhd @@ -14,11 +14,11 @@ -- ************************************************************ -- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! -- --- 13.1.0 Build 162 10/23/2013 SJ Web Edition +-- 13.1.4 Build 182 03/12/2014 Patches 4.26 SJ Web Edition -- ************************************************************ ---Copyright (C) 1991-2013 Altera Corporation +--Copyright (C) 1991-2014 Altera Corporation --Your use of Altera Corporation's design tools, logic functions --and other software and tools, and its AMPP partner logic --functions, and any output files from any of the foregoing @@ -166,19 +166,19 @@ BEGIN bandwidth_type => "AUTO", clk0_divide_by => 27, clk0_duty_cycle => 50, - clk0_multiply_by => 40, + clk0_multiply_by => 44, clk0_phase_shift => "0", - clk1_divide_by => 43, + clk1_divide_by => 27, clk1_duty_cycle => 50, - clk1_multiply_by => 40, + clk1_multiply_by => 11, clk1_phase_shift => "0", - clk2_divide_by => 3, + clk2_divide_by => 27, clk2_duty_cycle => 50, - clk2_multiply_by => 8, + clk2_multiply_by => 88, clk2_phase_shift => "0", - clk3_divide_by => 5400, + clk3_divide_by => 9000, clk3_duty_cycle => 50, - clk3_multiply_by => 179, + clk3_multiply_by => 299, clk3_phase_shift => "0", compensate_clock => "CLK0", inclk0_input_frequency => 37037, @@ -262,17 +262,17 @@ END SYN; -- Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0" -- Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" -- Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "27" --- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "43" --- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "3" +-- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "27" -- Retrieval info: PRIVATE: DIV_FACTOR3 NUMERIC "27" -- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE3 STRING "50.00000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "40.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "25.116280" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "72.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "0.895000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "44.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "11.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "88.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "0.897000" -- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0" -- Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" -- Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" @@ -301,15 +301,15 @@ END SYN; -- Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" -- Retrieval info: PRIVATE: MIRROR_CLK2 STRING "0" -- Retrieval info: PRIVATE: MIRROR_CLK3 STRING "0" --- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "40" --- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "40" --- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "8" +-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "44" +-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "11" +-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "88" -- Retrieval info: PRIVATE: MULT_FACTOR3 NUMERIC "1" -- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" --- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "40.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "25.26315800" --- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "72.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "0.89500000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "44.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "11.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "88.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "0.89700000" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" @@ -371,19 +371,19 @@ END SYN; -- Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO" -- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "27" -- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "40" +-- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "44" -- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "43" +-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "27" -- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "40" +-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "11" -- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "3" +-- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "27" -- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "8" +-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "88" -- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "5400" +-- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "9000" -- Retrieval info: CONSTANT: CLK3_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "179" +-- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "299" -- Retrieval info: CONSTANT: CLK3_PHASE_SHIFT STRING "0" -- Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" -- Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037" diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd index a4bbbccb..4064a09c 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/target_top.vhd @@ -9,40 +9,40 @@ use work.video_controller_pkg.all; use work.platform_pkg.all; entity target_top is port( - clock_50 : in std_logic; + clock_sys : in std_logic; clock_vid : in std_logic; clk_aud : in std_logic; - reset_in : in std_logic; - audio_out : out std_logic_vector(11 downto 0); + reset_in : in std_logic; + audio_out : out std_logic_vector(11 downto 0); usr_coin1 : in std_logic; - usr_coin2 : in std_logic; - usr_service : in std_logic; - usr_start1 : in std_logic; - usr_start2 : in std_logic; - p1_up : in std_logic; - p1_dw : in std_logic; - p1_lt : in std_logic; - p1_rt : in std_logic; - p1_f1 : in std_logic; - p1_f2 : in std_logic; + usr_coin2 : in std_logic; + usr_service : in std_logic; + usr_start1 : in std_logic; + usr_start2 : in std_logic; + p1_up : in std_logic; + p1_dw : in std_logic; + p1_lt : in std_logic; + p1_rt : in std_logic; + p1_f1 : in std_logic; + p1_f2 : in std_logic; - p2_up : in std_logic; - p2_dw : in std_logic; - p2_lt : in std_logic; - p2_rt : in std_logic; - p2_f1 : in std_logic; - p2_f2 : in std_logic; - - VGA_VS : out std_logic; - VGA_HS : out std_logic; - VGA_R : out std_logic_vector(3 downto 0); - VGA_G : out std_logic_vector(3 downto 0); - VGA_B : out std_logic_vector(3 downto 0); - cpu_rom_addr : out std_logic_vector(14 downto 0); - cpu_rom_do : in std_logic_vector(7 downto 0); - snd_rom_addr : out std_logic_vector(13 downto 0); - snd_rom_do : in std_logic_vector(7 downto 0) - ); + p2_up : in std_logic; + p2_dw : in std_logic; + p2_lt : in std_logic; + p2_rt : in std_logic; + p2_f1 : in std_logic; + p2_f2 : in std_logic; + + VGA_VS : out std_logic; + VGA_HS : out std_logic; + VGA_R : out std_logic_vector(3 downto 0); + VGA_G : out std_logic_vector(3 downto 0); + VGA_B : out std_logic_vector(3 downto 0); + cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + snd_rom_addr : out std_logic_vector(13 downto 0); + snd_rom_do : in std_logic_vector(7 downto 0) + ); end target_top; architecture SYN of target_top is @@ -59,7 +59,7 @@ architecture SYN of target_top is signal sound_data : std_logic_vector(7 downto 0); begin - clkrst_i.clk(0) <= clock_50; + clkrst_i.clk(0) <= clock_sys; clkrst_i.clk(1) <= clock_vid; clkrst_i.arst <= reset_in; clkrst_i.arst_n <= not clkrst_i.arst; @@ -93,7 +93,7 @@ end generate GEN_RESETS; -- select_sound => sound_data, -- audio_out => audio_out, -- snd_rom_addr => snd_rom_addr, --- snd_rom_do => snd_rom_do, + -- snd_rom_do => snd_rom_do, -- dbg_cpu_addr => open -- ); @@ -140,8 +140,6 @@ pace_inst : entity work.pace -- not currently wired to any inputs inputs_i.jamma_n.coin_cnt <= (others => '1'); --- inputs_i.jamma_n.coin(2) <= '1'; --- inputs_i.jamma_n.service <= '1'; inputs_i.jamma_n.tilt <= '1'; inputs_i.jamma_n.test <= '1'; end SYN; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd index 14da0c20..9372578d 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller.vhd @@ -258,6 +258,16 @@ begin v_back_porch_r <= 13; v_border_r <= (240-VIDEO_V_SIZE)/2; + when PACE_VIDEO_PAL_576x288_50Hz => + -- pixclk=11 MHz + h_front_porch_r <= 2*6; + h_sync_r <= 2*28; + h_back_porch_r <= 2*30; + h_border_r <= (576-VIDEO_H_SIZE)/2; + v_front_porch_r <= 8; + v_sync_r <= 3; + v_back_porch_r <= 13; + v_border_r <= (288-VIDEO_V_SIZE)/2; when others => null; end case; diff --git a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd index 183bfe23..526be3c8 100644 --- a/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd +++ b/Arcade_MiST/IremM62 Hardware/LodeRunner_MiST/rtl/video_controller_pkg.vhd @@ -21,7 +21,8 @@ package video_controller_pkg is PACE_VIDEO_ARCADE_STD_336x240_60Hz, -- arcade std resolution (7.16MHz) PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64, -- arcade std resolution (28.64MHz) PACE_VIDEO_CVBS_720x288p_50Hz, -- generic composite - PACE_VIDEO_LCM_320x240_60Hz -- DE2 LCD + PACE_VIDEO_LCM_320x240_60Hz, -- DE2 LCD + PACE_VIDEO_PAL_576x288_50Hz ); type PACEVideoDisplay_t is diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qpf b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qpf new file mode 100644 index 00000000..bd3ad814 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2011 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II +# Version 10.1 Build 197 01/19/2011 Service Pack 1 SJ Full Version +# Date created = 11:47:13 October 18, 2011 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "10.1" +DATE = "11:47:13 October 18, 2011" + +# Revisions + +PROJECT_REVISION = "Sonson_MiST" diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qsf b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qsf new file mode 100644 index 00000000..7c7f9830 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/Sonson_MiST.qsf @@ -0,0 +1,269 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 1991-2013 Altera Corporation +# Your use of Altera Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Altera Program License +# Subscription Agreement, Altera MegaCore Function License +# Agreement, or other applicable license agreement, including, +# without limitation, that your use is for the sole purpose of +# programming logic devices manufactured by Altera and sold by +# Altera or its authorized distributors. Please refer to the +# applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus II 64-Bit +# Version 13.1.0 Build 162 10/23/2013 SJ Web Edition +# Date created = 21:06:00 February 29, 2020 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# Sonson_MiST_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus II software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + + +# Project-Wide Assignments +# ======================== +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL +set_global_assignment -name LAST_QUARTUS_VERSION 13.1 +set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl" +set_global_assignment -name SMART_RECOMPILE ON + +# Pin & Location Assignments +# ========================== +set_location_assignment PIN_7 -to LED +set_location_assignment PIN_54 -to CLOCK_27 +set_location_assignment PIN_144 -to VGA_R[5] +set_location_assignment PIN_143 -to VGA_R[4] +set_location_assignment PIN_142 -to VGA_R[3] +set_location_assignment PIN_141 -to VGA_R[2] +set_location_assignment PIN_137 -to VGA_R[1] +set_location_assignment PIN_135 -to VGA_R[0] +set_location_assignment PIN_133 -to VGA_B[5] +set_location_assignment PIN_132 -to VGA_B[4] +set_location_assignment PIN_125 -to VGA_B[3] +set_location_assignment PIN_121 -to VGA_B[2] +set_location_assignment PIN_120 -to VGA_B[1] +set_location_assignment PIN_115 -to VGA_B[0] +set_location_assignment PIN_114 -to VGA_G[5] +set_location_assignment PIN_113 -to VGA_G[4] +set_location_assignment PIN_112 -to VGA_G[3] +set_location_assignment PIN_111 -to VGA_G[2] +set_location_assignment PIN_110 -to VGA_G[1] +set_location_assignment PIN_106 -to VGA_G[0] +set_location_assignment PIN_136 -to VGA_VS +set_location_assignment PIN_119 -to VGA_HS +set_location_assignment PIN_65 -to AUDIO_L +set_location_assignment PIN_80 -to AUDIO_R +set_location_assignment PIN_105 -to SPI_DO +set_location_assignment PIN_88 -to SPI_DI +set_location_assignment PIN_126 -to SPI_SCK +set_location_assignment PIN_127 -to SPI_SS2 +set_location_assignment PIN_91 -to SPI_SS3 +set_location_assignment PIN_13 -to CONF_DATA0 +set_location_assignment PIN_49 -to SDRAM_A[0] +set_location_assignment PIN_44 -to SDRAM_A[1] +set_location_assignment PIN_42 -to SDRAM_A[2] +set_location_assignment PIN_39 -to SDRAM_A[3] +set_location_assignment PIN_4 -to SDRAM_A[4] +set_location_assignment PIN_6 -to SDRAM_A[5] +set_location_assignment PIN_8 -to SDRAM_A[6] +set_location_assignment PIN_10 -to SDRAM_A[7] +set_location_assignment PIN_11 -to SDRAM_A[8] +set_location_assignment PIN_28 -to SDRAM_A[9] +set_location_assignment PIN_50 -to SDRAM_A[10] +set_location_assignment PIN_30 -to SDRAM_A[11] +set_location_assignment PIN_32 -to SDRAM_A[12] +set_location_assignment PIN_83 -to SDRAM_DQ[0] +set_location_assignment PIN_79 -to SDRAM_DQ[1] +set_location_assignment PIN_77 -to SDRAM_DQ[2] +set_location_assignment PIN_76 -to SDRAM_DQ[3] +set_location_assignment PIN_72 -to SDRAM_DQ[4] +set_location_assignment PIN_71 -to SDRAM_DQ[5] +set_location_assignment PIN_69 -to SDRAM_DQ[6] +set_location_assignment PIN_68 -to SDRAM_DQ[7] +set_location_assignment PIN_86 -to SDRAM_DQ[8] +set_location_assignment PIN_87 -to SDRAM_DQ[9] +set_location_assignment PIN_98 -to SDRAM_DQ[10] +set_location_assignment PIN_99 -to SDRAM_DQ[11] +set_location_assignment PIN_100 -to SDRAM_DQ[12] +set_location_assignment PIN_101 -to SDRAM_DQ[13] +set_location_assignment PIN_103 -to SDRAM_DQ[14] +set_location_assignment PIN_104 -to SDRAM_DQ[15] +set_location_assignment PIN_58 -to SDRAM_BA[0] +set_location_assignment PIN_51 -to SDRAM_BA[1] +set_location_assignment PIN_85 -to SDRAM_DQMH +set_location_assignment PIN_67 -to SDRAM_DQML +set_location_assignment PIN_60 -to SDRAM_nRAS +set_location_assignment PIN_64 -to SDRAM_nCAS +set_location_assignment PIN_66 -to SDRAM_nWE +set_location_assignment PIN_59 -to SDRAM_nCS +set_location_assignment PIN_33 -to SDRAM_CKE +set_location_assignment PIN_43 -to SDRAM_CLK +set_location_assignment PLL_1 -to "pll:pll|altpll:altpll_component" + +# Classic Timing Assignments +# ========================== +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON + +# Analysis & Synthesis Assignments +# ================================ +set_global_assignment -name FAMILY "Cyclone III" +set_global_assignment -name TOP_LEVEL_ENTITY SonSon_MiST +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 +set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 +set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP +set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED +set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON +set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE ON +set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 +set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF +set_global_assignment -name SEARCH_PATH common/CPU/T80/ -tag from_archive +set_global_assignment -name SEARCH_PATH common/mist/ -tag from_archive +set_global_assignment -name SEARCH_PATH rtl/ -tag from_archive + +# Fitter Assignments +# ================== +set_global_assignment -name DEVICE EP3C25E144C8 +set_global_assignment -name ENABLE_CONFIGURATION_PINS OFF +set_global_assignment -name ENABLE_NCE_PIN OFF +set_global_assignment -name ENABLE_BOOT_SEL_PIN OFF +set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "PASSIVE SERIAL" +set_global_assignment -name CRC_ERROR_OPEN_DRAIN OFF +set_global_assignment -name FORCE_CONFIGURATION_VCCIO ON +set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL" +set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" +set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON +set_global_assignment -name FITTER_EFFORT "STANDARD FIT" + +# Assembler Assignments +# ===================== +set_global_assignment -name GENERATE_RBF_FILE ON +set_global_assignment -name USE_CONFIGURATION_DEVICE OFF + +# SignalTap II Assignments +# ======================== +set_global_assignment -name ENABLE_SIGNALTAP OFF +set_global_assignment -name USE_SIGNALTAP_FILE output_files/mcr3.stp + +# Power Estimation Assignments +# ============================ +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" + +# Advanced I/O Timing Assignments +# =============================== +set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise +set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall +set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise +set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall + +# ----------------------------- +# start ENTITY(LodeRunner_MiST) + + # Pin & Location Assignments + # ========================== + + # Fitter Assignments + # ================== + + # start DESIGN_PARTITION(Top) + # --------------------------- + + # Incremental Compilation Assignments + # =================================== + + # end DESIGN_PARTITION(Top) + # ------------------------- + +# end ENTITY(LodeRunner_MiST) +# --------------------------- +set_global_assignment -name SYSTEMVERILOG_FILE rtl/SonSon_MiST.sv +set_global_assignment -name VHDL_FILE rtl/target_top.vhd +set_global_assignment -name VHDL_FILE rtl/platform_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/platform.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/pace_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/pace.vhd +set_global_assignment -name VHDL_FILE rtl/Graphics.VHD +set_global_assignment -name VHDL_FILE rtl/video_mixer.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/video_controller.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/tilemapctl.vhd +set_global_assignment -name VHDL_FILE rtl/spritereg.vhd +set_global_assignment -name VHDL_FILE rtl/spritectl.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg_body.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_pkg.vhd +set_global_assignment -name VHDL_FILE rtl/sprite_array.vhd +set_global_assignment -name VHDL_FILE rtl/bitmapctl_e.vhd +set_global_assignment -name VHDL_FILE rtl/cpu09s.vhd +set_global_assignment -name VHDL_FILE rtl/sound.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/YM2149.sv +set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv +set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd +set_global_assignment -name VHDL_FILE rtl/dprom_2r.vhd +set_global_assignment -name VHDL_FILE rtl/dpram.vhd +set_global_assignment -name VHDL_FILE rtl/spram.vhd +set_global_assignment -name VHDL_FILE rtl/sprom.vhd +set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top +set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_A[*] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[0] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_BA[1] +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQMH +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_DQML +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nRAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCAS +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nWE +set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to SDRAM_nCS +set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name FAST_INPUT_REGISTER ON -to SDRAM_DQ[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_A[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQ[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_BA[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQML +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_DQMH +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nRAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCAS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nWE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_nCS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CKE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to SDRAM_CLK +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[*] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_HS +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_VS +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_L +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_R +set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to SPI_DO +set_global_assignment -name VERILOG_FILE "rtl/mc6809-master/mc6809i.v" +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/clean.bat b/Arcade_MiST/SonSon Hardware/Sonson_MiST/clean.bat new file mode 100644 index 00000000..c9a2cb06 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/clean.bat @@ -0,0 +1,15 @@ +@echo off +del /s *.bak +del /s *.orig +del /s *.rej +rmdir /s /q db +rmdir /s /q incremental_db +rmdir /s /q output +rmdir /s /q simulation +rmdir /s /q greybox_tmp +del PLLJ_PLLSPE_INFO.txt +del *.qws +del *.ppf +del *.qip +del *.ddb +pause diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/Graphics.VHD b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/Graphics.VHD new file mode 100644 index 00000000..9b3d355e --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/Graphics.VHD @@ -0,0 +1,270 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.std_logic_arith.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity Graphics is + port + ( + bitmap_ctl_i : in to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_ctl_o : out from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_i : in to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_ctl_o : out from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_i : in to_SPRITE_REG_t; + sprite_ctl_i : in to_SPRITE_CTL_t; + sprite_ctl_o : out from_SPRITE_CTL_t; + spr0_hit : out std_logic; + + graphics_i : in to_GRAPHICS_t; + graphics_o : out from_GRAPHICS_t; + + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t + ); + +end Graphics; + +architecture SYN of Graphics is + + alias clk : std_logic is video_i.clk; + + signal from_video_ctl : from_VIDEO_CTL_t; + signal bitmap_ctl_o_s : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal tilemap_ctl_o_s : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal sprite_ctl_o_s : from_SPRITE_CTL_t; + signal sprite_pri : std_logic; + + signal rgb_data : RGB_t; + -- before OSD is mixed in + signal video_o_s : to_VIDEO_t; + +begin + + -- dodgy OSD transparency... + video_o.clk <= video_o_s.clk; + video_o.rgb.r <= video_o_s.rgb.r; + video_o.rgb.g <= video_o_s.rgb.g; + video_o.rgb.b <= video_o_s.rgb.b; + video_o.hsync <= video_o_s.hsync; + video_o.vsync <= video_o_s.vsync; + video_o.hblank <= video_o_s.hblank; + video_o.vblank <= video_o_s.vblank; + + graphics_o.y <= from_video_ctl.y; + -- should this be the 'real' vblank or the 'active' vblank? + -- - use the real for now + graphics_o.hblank <= video_o_s.hblank; + graphics_o.vblank <= video_o_s.vblank; + --graphics_o.vblank <= from_video_ctl.vblank; + + pace_video_controller_inst : entity work.pace_video_controller + generic map + ( + CONFIG => PACE_VIDEO_CONTROLLER_TYPE, + DELAY => PACE_VIDEO_PIPELINE_DELAY, + H_SIZE => PACE_VIDEO_H_SIZE, + V_SIZE => PACE_VIDEO_V_SIZE, + L_CROP => PACE_VIDEO_L_CROP, + R_CROP => PACE_VIDEO_R_CROP, + H_SCALE => PACE_VIDEO_H_SCALE, + V_SCALE => PACE_VIDEO_V_SCALE, + H_SYNC_POL => PACE_VIDEO_H_SYNC_POLARITY, + V_SYNC_POL => PACE_VIDEO_V_SYNC_POLARITY, + BORDER_RGB => PACE_VIDEO_BORDER_RGB + ) + port map + ( + -- clocking etc + video_i => video_i, + + -- register interface + reg_i.h_scale => "000", + reg_i.v_scale => "000", + -- video data signals (in) + rgb_i => rgb_data, + + -- video control signals (out) + video_ctl_o => from_video_ctl, + + -- VGA signals (out) + video_o => video_o_s + ); + + pace_video_mixer_inst : entity work.pace_video_mixer + port map + ( + bitmap_ctl_o => bitmap_ctl_o_s, + tilemap_ctl_o => tilemap_ctl_o_s, + sprite_rgb => sprite_ctl_o_s.rgb, + sprite_set => sprite_ctl_o_s.set, + sprite_pri => sprite_pri, + + video_ctl_i => from_video_ctl, + graphics_i => graphics_i, + rgb_o => rgb_data + ); + + GEN_NO_BITMAPS : if PACE_VIDEO_NUM_BITMAPS = 0 generate + --bitmap_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + end generate GEN_NO_BITMAPS; + + GEN_BITMAP_1 : if PACE_VIDEO_NUM_BITMAPS > 0 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(1), + ctl_o => bitmap_ctl_o_s(1), + + graphics_i => graphics_i + ); + end generate GEN_BITMAP_1; + + GEN_BITMAP_2 : if PACE_VIDEO_NUM_BITMAPS > 1 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(2), + ctl_o => bitmap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_2; + + GEN_BITMAP_3 : if PACE_VIDEO_NUM_BITMAPS > 2 generate + + forground_bitmapctl_inst : entity work.bitmapCtl(BITMAP_3) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => bitmap_ctl_i(3), + ctl_o => bitmap_ctl_o_s(3), + + graphics_i => graphics_i + ); + + end generate GEN_BITMAP_3; + + bitmap_ctl_o <= bitmap_ctl_o_s; + + GEN_NO_TILEMAPS : if PACE_VIDEO_NUM_TILEMAPS = 0 generate + --tilemap_ctl_o_s(1) <= ((others => '0'), (others => '0'), (others => '0'), + -- (others => (others => '0')), '0'); + end generate GEN_NO_TILEMAPS; + + GEN_TILEMAP_1 : if PACE_VIDEO_NUM_TILEMAPS > 0 generate + + foreground_mapctl_inst : entity work.tilemapCtl(TILEMAP_1) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(1), + ctl_o => tilemap_ctl_o_s(1), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_1; + + GEN_TILEMAP_2 : if PACE_VIDEO_NUM_TILEMAPS > 1 generate + + background_mapctl_inst : entity work.tilemapCtl(TILEMAP_2) + generic map + ( + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + video_ctl => from_video_ctl, + + ctl_i => tilemap_ctl_i(2), + ctl_o => tilemap_ctl_o_s(2), + + graphics_i => graphics_i + ); + + end generate GEN_TILEMAP_2; + + tilemap_ctl_o <= tilemap_ctl_o_s; + + GEN_NO_SPRITES : if PACE_VIDEO_NUM_SPRITES = 0 generate + sprite_ctl_o_s <= ((others => '0'), (others => (others => '0')), '0'); + sprite_pri <= '0'; + spr0_hit <= '0'; + end generate GEN_NO_SPRITES; + + GEN_SPRITES : if PACE_VIDEO_NUM_SPRITES > 0 generate + + sprites_inst : sprite_array + generic map + ( + N_SPRITES => PACE_VIDEO_NUM_SPRITES, + DELAY => PACE_VIDEO_PIPELINE_DELAY + ) + port map + ( + reset => video_i.reset, + + -- register interface + reg_i => sprite_reg_i, + + -- video control signals + video_ctl => from_video_ctl, + + graphics_i => graphics_i, + + row_a => sprite_ctl_o_s.a, + row_d => sprite_ctl_i.d, + + rgb => sprite_ctl_o_s.rgb, + set => sprite_ctl_o_s.set, + pri => sprite_pri, + spr0_set => spr0_hit + ); + + end generate GEN_SPRITES; + + sprite_ctl_o <= sprite_ctl_o_s; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/SonSon_MiST.sv b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/SonSon_MiST.sv new file mode 100644 index 00000000..51c1cb8f --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/SonSon_MiST.sv @@ -0,0 +1,281 @@ +module SonSon_MiST( + output LED, + output [5:0] VGA_R, + output [5:0] VGA_G, + output [5:0] VGA_B, + output VGA_HS, + output VGA_VS, + output AUDIO_L, + output AUDIO_R, + input SPI_SCK, + output SPI_DO, + input SPI_DI, + input SPI_SS2, + input SPI_SS3, + input CONF_DATA0, + input CLOCK_27, + + output [12:0] SDRAM_A, + inout [15:0] SDRAM_DQ, + output SDRAM_DQML, + output SDRAM_DQMH, + output SDRAM_nWE, + output SDRAM_nCAS, + output SDRAM_nRAS, + output SDRAM_nCS, + output [1:0] SDRAM_BA, + output SDRAM_CLK, + output SDRAM_CKE +); + +`include "rtl/build_id.v" + +localparam CONF_STR = { + "SONSON;ROM;", + "O2,Rotate Controls,Off,On;", + "O34,Scanlines,Off,25%,50%,75%;", + "O5,Blending,Off,On;", + "O6,Freeze,Off,On;", + "O7,Flip,Off,On;", + "O8,Test,Off,On;", + "T0,Reset;", + "V,v1.0.",`BUILD_DATE +}; + +wire rotate = status[2]; +wire [1:0] scanlines = status[4:3]; +wire blend = status[5]; +wire freeze = status[6]; +wire flip = status[7]; +wire test = status[8]; + +assign LED = ~ioctl_downl; +assign SDRAM_CKE = 1; + +wire clk_sys, clk_vid; +wire pll_locked; +pll_mist pll( + .inclk0(CLOCK_27), + .areset(0), + .c0(clk_sys),//20 + .c1(clk_vid),//40 + .c2(SDRAM_CLK), + .locked(pll_locked) + ); + +wire [31:0] status; +wire [1:0] buttons; +wire [1:0] switches; +wire [7:0] joystick_0; +wire [7:0] joystick_1; +wire scandoublerD; +wire ypbpr; +wire no_csync; +wire key_pressed; +wire [7:0] key_code; +wire key_strobe; + +user_io #( + .STRLEN(($size(CONF_STR)>>3))) +user_io( + .clk_sys (clk_sys ), + .conf_str (CONF_STR ), + .SPI_CLK (SPI_SCK ), + .SPI_SS_IO (CONF_DATA0 ), + .SPI_MISO (SPI_DO ), + .SPI_MOSI (SPI_DI ), + .buttons (buttons ), + .switches (switches ), + .scandoubler_disable (scandoublerD ), + .ypbpr (ypbpr ), + .no_csync (no_csync ), + .key_strobe (key_strobe ), + .key_pressed (key_pressed ), + .key_code (key_code ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), + .status (status ) + ); + +wire [15:0] cpu_rom_addr; +//wire [15:0] rom_addr; +wire [15:0] rom_do; + +wire [12:0] tile_rom_addr; +//wire [12:0] tile_addr; +wire [15:0] tile_do; + +wire [14:0] sp_addr; //todo +wire [31:0] sp_do; //todo + +wire ioctl_downl; +wire [7:0] ioctl_index; +wire ioctl_wr; +wire [24:0] ioctl_addr; +wire [7:0] ioctl_dout; + +data_io data_io( + .clk_sys ( clk_sys ), + .SPI_SCK ( SPI_SCK ), + .SPI_SS2 ( SPI_SS2 ), + .SPI_DI ( SPI_DI ), + .ioctl_download( ioctl_downl ), + .ioctl_index ( ioctl_index ), + .ioctl_wr ( ioctl_wr ), + .ioctl_addr ( ioctl_addr ), + .ioctl_dout ( ioctl_dout ) +); + +wire [24:0] sp_ioctl_addr = ioctl_addr - 17'h10000; //todo + +reg port1_req, port2_req; +sdram sdram( + .*, + .init_n ( pll_locked ), + .clk ( SDRAM_CLK ), + + // port1 used for main + sound CPU + .port1_req ( port1_req ), + .port1_ack ( ), + .port1_a ( ioctl_addr[23:1] ), + .port1_ds ( {ioctl_addr[0], ~ioctl_addr[0]} ), + .port1_we ( ioctl_downl ), + .port1_d ( {ioctl_dout, ioctl_dout} ), + .port1_q ( ), + + .cpu1_addr ( ioctl_downl ? 16'hffff : {1'b0, cpu_rom_addr[15:1]} ), + .cpu1_q ( rom_do ), + .cpu2_addr ( ioctl_downl ? 16'hffff : (16'h6000 + tile_rom_addr[12:1]) ), + .cpu2_q ( tile_do ), + + // port2 for sprite graphics + .port2_req ( port2_req ), + .port2_ack ( ), + .port2_a ( {sp_ioctl_addr[23:1]} ), + .port2_ds ( {sp_ioctl_addr[0], ~sp_ioctl_addr[0]} ), + .port2_we ( ioctl_downl ), + .port2_d ( {ioctl_dout, ioctl_dout} ), + .port2_q ( ), + + .sp_addr ( ioctl_downl ? 15'h7fff : sp_addr ), + .sp_q ( sp_do ) +); + +// ROM download controller +always @(posedge clk_sys) begin + reg ioctl_wr_last = 0; + ioctl_wr_last <= ioctl_wr; + if (ioctl_downl) begin + if (~ioctl_wr_last && ioctl_wr) begin + port1_req <= ~port1_req; + port2_req <= ~port2_req; + end + end + // async clock domain crossing here (clk_snd -> clk_sys) +end + +// reset signal generation +reg reset = 1; +reg rom_loaded = 0; +always @(posedge clk_sys) begin + reg ioctl_downlD; + reg [15:0] reset_count; + ioctl_downlD <= ioctl_downl; + + if (status[0] | buttons[1] | ~rom_loaded) reset_count <= 16'hffff; + else if (reset_count != 0) reset_count <= reset_count - 1'd1; + + if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1; + reset <= reset_count != 16'h0000; + +end + +wire [11:0] audio; +wire hs, vs, hb, vb; +wire blankn = ~(hb | vb); +wire [3:0] g,b,r; +wire vma; +target_top target_top( + .clk_sys(clk_sys), + .clk_vid(clk_vid), + .reset_in(reset), + .vma(vma), + .snd_l(), + .snd_r(), + .vid_hs(hs), + .vid_vs(vs), + .vid_hb(hb), + .vid_vb(vb), + .vid_r(r), + .vid_g(g), + .vid_b(b), + + .inputs_p1(~{2'b00,m_down,m_up,m_right,m_left,1'b0,m_fireC}), + .inputs_p2(~{2'b00,m_down2,m_up2,m_right2,m_left2,1'b0,m_fire2C}), + .inputs_sys(~{2'b00,m_coin2,m_coin1,2'b00,m_two_players,m_one_player}), + .inputs_dip1(~{flip,test,"011111"}), + .inputs_dip2(~{freeze,"1111111"}), + .cpu_rom_addr(cpu_rom_addr), + .cpu_rom_do(cpu_rom_addr[0] ? rom_do[15:8] : rom_do[7:0]), + .tile_rom_addr(tile_rom_addr), + .tile_rom_do(tile_do) + ); + +mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video( + .clk_sys ( clk_sys ), + .SPI_SCK ( SPI_SCK ), + .SPI_SS3 ( SPI_SS3 ), + .SPI_DI ( SPI_DI ), + .R ( blankn ? r : 0 ), + .G ( blankn ? g : 0 ), + .B ( blankn ? b : 0 ), + .HSync ( hs ), + .VSync ( vs ), + .VGA_R ( VGA_R ), + .VGA_G ( VGA_G ), + .VGA_B ( VGA_B ), + .VGA_VS ( VGA_VS ), + .VGA_HS ( VGA_HS ), + .rotate ( { 1'b1, rotate } ), + .ce_divider ( 1'b0 ), + .scandoubler_disable( 1),// scandoublerD ), + .scanlines ( scanlines ), + .blend ( blend ), + .ypbpr ( ypbpr ), + .no_csync ( no_csync ) + ); + +wire dac_o; +assign AUDIO_L = dac_o; +assign AUDIO_R = dac_o; + +dac #( + .C_bits(12)) +dac( + .clk_i(clk_sys), + .res_n_i(1), + .dac_i(audio), + .dac_o(dac_o) + ); + +wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF; +wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F; +wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players; + +arcade_inputs inputs ( + .clk ( clk_sys ), + .key_strobe ( key_strobe ), + .key_pressed ( key_pressed ), + .key_code ( key_code ), + .joystick_0 ( joystick_0 ), + .joystick_1 ( joystick_1 ), + .rotate ( rotate ), + .orientation ( 2'b10 ), + .joyswap ( 1'b0 ), + .oneplayer ( 1'b1 ), + .controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ), + .player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ), + .player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} ) +); + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/YM2149.sv b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/YM2149.sv new file mode 100644 index 00000000..eae73bb3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/YM2149.sv @@ -0,0 +1,329 @@ +// +// Copyright (c) MikeJ - Jan 2005 +// Copyright (c) 2016-2018 Sorgelig +// +// All rights reserved +// +// Redistribution and use in source and synthezised forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// Redistributions in synthesized form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// Neither the name of the author nor the names of other contributors may +// be used to endorse or promote products derived from this software without +// specific prior written permission. +// +// THIS CODE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// + + +// BDIR BC MODE +// 0 0 inactive +// 0 1 read value +// 1 0 write value +// 1 1 set address +// + +module YM2149 +( + input CLK, // Global clock + input CE, // PSG Clock enable + input RESET, // Chip RESET (set all Registers to '0', active hi) + input BDIR, // Bus Direction (0 - read , 1 - write) + input BC, // Bus control + input A8, + input A9_L, + input [7:0] DI, // Data In + output [7:0] DO, // Data Out + output [7:0] CHANNEL_A, // PSG Output channel A + output [7:0] CHANNEL_B, // PSG Output channel B + output [7:0] CHANNEL_C, // PSG Output channel C + + input SEL, + input MODE, + + output [5:0] ACTIVE, + + input [7:0] IOA_in, + output [7:0] IOA_out, + + input [7:0] IOB_in, + output [7:0] IOB_out +); + +assign ACTIVE = ~ymreg[7][5:0]; +assign IOA_out = ymreg[7][6] ? ymreg[14] : 8'hff; +assign IOB_out = ymreg[7][7] ? ymreg[15] : 8'hff; + +reg [7:0] addr; +reg [7:0] ymreg[16]; +wire cs = !A9_L & A8; + +// Write to PSG +reg env_reset; +always @(posedge CLK) begin + if(RESET) begin + ymreg <= '{default:0}; + ymreg[7] <= '1; + addr <= '0; + env_reset <= 0; + end else begin + env_reset <= 0; + if(cs & BDIR) begin + if(BC) addr <= DI; + else if(!addr[7:4]) begin + ymreg[addr[3:0]] <= DI; + env_reset <= (addr == 13); + end + end + end +end + +// Read from PSG +assign DO = dout; +reg [7:0] dout; +always_comb begin + dout = 8'hFF; + if(cs & ~BDIR & BC & !addr[7:4]) begin + case(addr[3:0]) + 0: dout = ymreg[0]; + 1: dout = ymreg[1][3:0]; + 2: dout = ymreg[2]; + 3: dout = ymreg[3][3:0]; + 4: dout = ymreg[4]; + 5: dout = ymreg[5][3:0]; + 6: dout = ymreg[6][4:0]; + 7: dout = ymreg[7]; + 8: dout = ymreg[8][4:0]; + 9: dout = ymreg[9][4:0]; + 10: dout = ymreg[10][4:0]; + 11: dout = ymreg[11]; + 12: dout = ymreg[12]; + 13: dout = ymreg[13][3:0]; + 14: dout = ymreg[7][6] ? ymreg[14] : IOA_in; + 15: dout = ymreg[7][7] ? ymreg[15] : IOB_in; + endcase + end +end + +reg ena_div; +reg ena_div_noise; + +// p_divider +always @(posedge CLK) begin + reg [3:0] cnt_div; + reg noise_div; + + if(CE) begin + ena_div <= 0; + ena_div_noise <= 0; + if(!cnt_div) begin + cnt_div <= {SEL, 3'b111}; + ena_div <= 1; + + noise_div <= (~noise_div); + if (noise_div) ena_div_noise <= 1; + end else begin + cnt_div <= cnt_div - 1'b1; + end + end +end + + +reg [2:0] noise_gen_op; + +// p_noise_gen +always @(posedge CLK) begin + reg [16:0] poly17; + reg [4:0] noise_gen_cnt; + + if(CE) begin + if (ena_div_noise) begin + if (!ymreg[6][4:0] || noise_gen_cnt >= ymreg[6][4:0] - 1'd1) begin + noise_gen_cnt <= 0; + poly17 <= {(poly17[0] ^ poly17[2] ^ !poly17), poly17[16:1]}; + end else begin + noise_gen_cnt <= noise_gen_cnt + 1'd1; + end + noise_gen_op <= {3{poly17[0]}}; + end + end +end + +wire [11:0] tone_gen_freq[1:3]; +assign tone_gen_freq[1] = {ymreg[1][3:0], ymreg[0]}; +assign tone_gen_freq[2] = {ymreg[3][3:0], ymreg[2]}; +assign tone_gen_freq[3] = {ymreg[5][3:0], ymreg[4]}; + +reg [3:1] tone_gen_op; + +//p_tone_gens +always @(posedge CLK) begin + integer i; + reg [11:0] tone_gen_cnt[1:3]; + + if(CE) begin + // looks like real chips count up - we need to get the Exact behaviour .. + + for (i = 1; i <= 3; i = i + 1) begin + if(ena_div) begin + if (tone_gen_freq[i]) begin + if (tone_gen_cnt[i] >= (tone_gen_freq[i] - 1'd1)) begin + tone_gen_cnt[i] <= 0; + tone_gen_op[i] <= ~tone_gen_op[i]; + end else begin + tone_gen_cnt[i] <= tone_gen_cnt[i] + 1'd1; + end + end else begin + tone_gen_op[i] <= ymreg[7][i]; + tone_gen_cnt[i] <= 0; + end + end + end + end +end + +reg env_ena; +wire [15:0] env_gen_comp = {ymreg[12], ymreg[11]} ? {ymreg[12], ymreg[11]} - 1'd1 : 16'd0; + +//p_envelope_freq +always @(posedge CLK) begin + reg [15:0] env_gen_cnt; + + if(CE) begin + env_ena <= 0; + if(ena_div) begin + if (env_gen_cnt >= env_gen_comp) begin + env_gen_cnt <= 0; + env_ena <= 1; + end else begin + env_gen_cnt <= (env_gen_cnt + 1'd1); + end + end + end +end + +reg [4:0] env_vol; + +wire is_bot = (env_vol == 5'b00000); +wire is_bot_p1 = (env_vol == 5'b00001); +wire is_top_m1 = (env_vol == 5'b11110); +wire is_top = (env_vol == 5'b11111); + +always @(posedge CLK) begin + reg env_hold; + reg env_inc; + + // envelope shapes + // C AtAlH + // 0 0 x x \___ + // + // 0 1 x x /___ + // + // 1 0 0 0 \\\\ + // + // 1 0 0 1 \___ + // + // 1 0 1 0 \/\/ + // ___ + // 1 0 1 1 \ + // + // 1 1 0 0 //// + // ___ + // 1 1 0 1 / + // + // 1 1 1 0 /\/\ + // + // 1 1 1 1 /___ + + if(env_reset | RESET) begin + // load initial state + if(!ymreg[13][2]) begin // attack + env_vol <= 5'b11111; + env_inc <= 0; // -1 + end else begin + env_vol <= 5'b00000; + env_inc <= 1; // +1 + end + env_hold <= 0; + end + else if(CE) begin + if (env_ena) begin + if (!env_hold) begin + if (env_inc) env_vol <= (env_vol + 5'b00001); + else env_vol <= (env_vol + 5'b11111); + end + + // envelope shape control. + if(!ymreg[13][3]) begin + if(!env_inc) begin // down + if(is_bot_p1) env_hold <= 1; + end else if (is_top) env_hold <= 1; + end else if(ymreg[13][0]) begin // hold = 1 + if(!env_inc) begin // down + if(ymreg[13][1]) begin // alt + if(is_bot) env_hold <= 1; + end else if(is_bot_p1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alt + if(is_top) env_hold <= 1; + end else if(is_top_m1) env_hold <= 1; + end else if(ymreg[13][1]) begin // alternate + if(env_inc == 1'b0) begin // down + if(is_bot_p1) env_hold <= 1; + if(is_bot) begin + env_hold <= 0; + env_inc <= 1; + end + end else begin + if(is_top_m1) env_hold <= 1; + if(is_top) begin + env_hold <= 0; + env_inc <= 0; + end + end + end + end + end +end + +reg [5:0] A,B,C; +always @(posedge CLK) begin + A <= {MODE, ~((ymreg[7][0] | tone_gen_op[1]) & (ymreg[7][3] | noise_gen_op[0])) ? 5'd0 : ymreg[8][4] ? env_vol[4:0] : { ymreg[8][3:0], ymreg[8][3]}}; + B <= {MODE, ~((ymreg[7][1] | tone_gen_op[2]) & (ymreg[7][4] | noise_gen_op[1])) ? 5'd0 : ymreg[9][4] ? env_vol[4:0] : { ymreg[9][3:0], ymreg[9][3]}}; + C <= {MODE, ~((ymreg[7][2] | tone_gen_op[3]) & (ymreg[7][5] | noise_gen_op[2])) ? 5'd0 : ymreg[10][4] ? env_vol[4:0] : {ymreg[10][3:0], ymreg[10][3]}}; +end + +wire [7:0] volTable[64] = '{ + //YM2149 + 8'h00, 8'h01, 8'h01, 8'h02, 8'h02, 8'h03, 8'h03, 8'h04, + 8'h06, 8'h07, 8'h09, 8'h0a, 8'h0c, 8'h0e, 8'h11, 8'h13, + 8'h17, 8'h1b, 8'h20, 8'h25, 8'h2c, 8'h35, 8'h3e, 8'h47, + 8'h54, 8'h66, 8'h77, 8'h88, 8'ha1, 8'hc0, 8'he0, 8'hff, + + //AY8910 + 8'h00, 8'h00, 8'h03, 8'h03, 8'h04, 8'h04, 8'h06, 8'h06, + 8'h0a, 8'h0a, 8'h0f, 8'h0f, 8'h15, 8'h15, 8'h22, 8'h22, + 8'h28, 8'h28, 8'h41, 8'h41, 8'h5b, 8'h5b, 8'h72, 8'h72, + 8'h90, 8'h90, 8'hb5, 8'hb5, 8'hd7, 8'hd7, 8'hff, 8'hff +}; + +assign CHANNEL_A = volTable[A]; +assign CHANNEL_B = volTable[B]; +assign CHANNEL_C = volTable[C]; + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/bitmapctl_e.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/bitmapctl_e.vhd new file mode 100644 index 00000000..8d309476 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/bitmapctl_e.vhd @@ -0,0 +1,29 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; + +entity bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity bitmapCtl; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/build_id.tcl b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/build_id.tcl new file mode 100644 index 00000000..938515d8 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/build_id.tcl @@ -0,0 +1,35 @@ +# ================================================================================ +# +# Build ID Verilog Module Script +# Jeff Wiencrot - 8/1/2011 +# +# Generates a Verilog module that contains a timestamp, +# from the current build. These values are available from the build_date, build_time, +# physical_address, and host_name output ports of the build_id module in the build_id.v +# Verilog source file. +# +# ================================================================================ + +proc generateBuildID_Verilog {} { + + # Get the timestamp (see: http://www.altera.com/support/examples/tcl/tcl-date-time-stamp.html) + set buildDate [ clock format [ clock seconds ] -format %y%m%d ] + set buildTime [ clock format [ clock seconds ] -format %H%M%S ] + + # Create a Verilog file for output + set outputFileName "rtl/build_id.v" + set outputFile [open $outputFileName "w"] + + # Output the Verilog source + puts $outputFile "`define BUILD_DATE \"$buildDate\"" + puts $outputFile "`define BUILD_TIME \"$buildTime\"" + close $outputFile + + # Send confirmation message to the Messages window + post_message "Generated build identification Verilog module: [pwd]/$outputFileName" + post_message "Date: $buildDate" + post_message "Time: $buildTime" +} + +# Comment out this line to prevent the process from automatically executing when the file is sourced: +generateBuildID_Verilog \ No newline at end of file diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/cpu09s.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/cpu09s.vhd new file mode 100644 index 00000000..e404bbdf --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/cpu09s.vhd @@ -0,0 +1,5679 @@ +--===========================================================================-- +-- -- +-- Synthesizable 6809 instruction compatible VHDL CPU core -- +-- -- +--===========================================================================-- +-- +-- File name : cpu09.vhd +-- +-- Entity name : cpu09 +-- +-- Purpose : 6809 instruction compatible CPU core written in VHDL +-- Not cycle compatible with the original 6809 CPU +-- +-- Dependencies : ieee.std_logic_1164 +-- ieee.std_logic_unsigned +-- +-- Author : John E. Kent +-- +-- Email : dilbert57@opencores.org +-- +-- Web : http://opencores.org/project,system09 +-- +-- +-- Copyright (C) 2003 - 2010 John Kent +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +--===========================================================================-- +-- -- +-- Revision History -- +-- -- +--===========================================================================-- +-- +-- Version 0.1 - 26 June 2003 - John Kent +-- Added extra level in state stack +-- fixed some calls to the extended addressing state +-- +-- Version 0.2 - 5 Sept 2003 - John Kent +-- Fixed 16 bit indexed offset (was doing read rather than fetch) +-- Added/Fixed STY and STS instructions. +-- ORCC_STATE ANDed CC state rather than ORed it - Now fixed +-- CMPX Loaded ACCA and ACCB - Now fixed +-- +-- Version 1.0 - 6 Sep 2003 - John Kent +-- Initial release to Open Cores +-- reversed clock edge +-- +-- Version 1.1 - 29 November 2003 John kent +-- ACCA and ACCB indexed offsets are 2's complement. +-- ALU Right Mux now sign extends ACCA & ACCB offsets +-- Absolute Indirect addressing performed a read on the +-- second byte of the address rather than a fetch +-- so it formed an incorrect address. Now fixed. +-- +-- Version 1.2 - 29 November 2003 John Kent +-- LEAX and LEAY affect the Z bit only +-- LEAS and LEAU do not affect any condition codes +-- added an extra ALU control for LEA. +-- +-- Version 1.3 - 12 December 2003 John Kent +-- CWAI did not work, was missed a PUSH_ST on calling +-- the ANDCC_STATE. Thanks go to Ghassan Kraidy for +-- finding this fault. +-- +-- Version 1.4 - 12 December 2003 John Kent +-- Missing cc_ctrl assignment in otherwise case of +-- lea_state resulted in cc_ctrl being latched in +-- that state. +-- The otherwise statement should never be reached, +-- and has been fixed simply to resolve synthesis warnings. +-- +-- Version 1.5 - 17 january 2004 John kent +-- The clear instruction used "alu_ld8" to control the ALU +-- rather than "alu_clr". This mean the Carry was not being +-- cleared correctly. +-- +-- Version 1.6 - 24 January 2004 John Kent +-- Fixed problems in PSHU instruction +-- +-- Version 1.7 - 25 January 2004 John Kent +-- removed redundant "alu_inx" and "alu_dex' +-- Removed "test_alu" and "test_cc" +-- STD instruction did not set condition codes +-- JMP direct was not decoded properly +-- CLR direct performed an unwanted read cycle +-- Bogus "latch_md" in Page2 indexed addressing +-- +-- Version 1.8 - 27 January 2004 John Kent +-- CWAI in decode1_state should increment the PC. +-- ABX is supposed to be an unsigned addition. +-- Added extra ALU function +-- ASR8 slightly changed in the ALU. +-- +-- Version 1.9 - 20 August 2005 +-- LSR8 is now handled in ASR8 and ROR8 case in the ALU, +-- rather than LSR16. There was a problem with single +-- operand instructions using the MD register which is +-- sign extended on the first 8 bit fetch. +-- +-- Version 1.10 - 13 September 2005 +-- TFR & EXG instructions did not work for the Condition Code Register +-- An extra case has been added to the ALU for the alu_tfr control +-- to assign the left ALU input (alu_left) to the condition code +-- outputs (cc_out). +-- +-- Version 1.11 - 16 September 2005 +-- JSR ,X should not predecrement S before calculating the jump address. +-- The reason is that JSR [0,S] needs S to point to the top of the stack +-- to fetch a valid vector address. The solution is to have the addressing +-- mode microcode called before decrementing S and then decrementing S in +-- JSR_STATE. JSR_STATE in turn calls PUSH_RETURN_LO_STATE rather than +-- PUSH_RETURN_HI_STATE so that both the High & Low halves of the PC are +-- pushed on the stack. This adds one extra bus cycle, but resolves the +-- addressing conflict. I've also removed the pre-decement S in +-- JSR EXTENDED as it also calls JSR_STATE. +-- +-- Version 1.12 - 6th June 2006 +-- 6809 Programming reference manual says V is not affected by ASR, LSR and ROR +-- This is different to the 6800. CLR should reset the V bit. +-- +-- Version 1.13 - 7th July 2006 +-- Disable NMI on reset until S Stack pointer has been loaded. +-- Added nmi_enable signal in sp_reg process and nmi_handler process. +-- +-- Version 1.14 - 11th July 2006 +-- 1. Added new state to RTI called rti_entire_state. +-- This state tests the CC register after it has been loaded +-- from the stack. Previously the current CC was tested which +-- was incorrect. The Entire Flag should be set before the +-- interrupt stacks the CC. +-- 2. On bogus Interrupts, int_cc_state went to rti_state, +-- which was an enumerated state, but not defined anywhere. +-- rti_state has been changed to rti_cc_state so that bogus interrupt +-- will perform an RTI after entering that state. +-- 3. Sync should generate an interrupt if the interrupt masks +-- are cleared. If the interrupt masks are set, then an interrupt +-- will cause the the PC to advance to the next instruction. +-- Note that I don't wait for an interrupt to be asserted for +-- three clock cycles. +-- 4. Added new ALU control state "alu_mul". "alu_mul" is used in +-- the Multiply instruction replacing "alu_add16". This is similar +-- to "alu_add16" except it sets the Carry bit to B7 of the result +-- in ACCB, sets the Zero bit if the 16 bit result is zero, but +-- does not affect The Half carry (H), Negative (N) or Overflow (V) +-- flags. The logic was re-arranged so that it adds md or zero so +-- that the Carry condition code is set on zero multiplicands. +-- 5. DAA (Decimal Adjust Accumulator) should set the Negative (N) +-- and Zero Flags. It will also affect the Overflow (V) flag although +-- the operation is undefined. It's anyones guess what DAA does to V. +-- +-- Version 1.15 - 25th Feb 2007 - John Kent +-- line 9672 changed "if Halt <= '1' then" to "if Halt = '1' then" +-- Changed sensitivity lists. +-- +-- Version 1.16 - 5th February 2008 - John Kent +-- FIRQ interrupts should take priority over IRQ Interrupts. +-- This presumably means they should be tested for before IRQ +-- when they happen concurrently. +-- +-- Version 1.17 - 18th February 2008 - John Kent +-- NMI in CWAI should mask IRQ and FIRQ interrupts +-- +-- Version 1.18 - 21st February 2008 - John Kent +-- Removed default register settings in each case statement +-- and placed them at the beginning of the state sequencer. +-- Modified the SYNC instruction so that the interrupt vector(iv) +-- is not set unless an unmasked FIRQ or IRQ is received. +-- +-- Version 1.19 - 25th February 2008 - John Kent +-- Enumerated separate states for FIRQ/FAST and NMIIRQ/ENTIRE +-- Enumerated separate states for MASKI and MASKIF states +-- Removed code on BSR/JSR in fetch cycle +-- +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +entity cpu09 is + generic ( + CLK_POL : std_logic := '0' + ); + port ( + clk : in std_logic; + clk_en : in std_logic := '1'; + rst : in std_logic; + vma : out std_logic; + addr : out std_logic_vector(15 downto 0); + rw : out std_logic; + data_out : out std_logic_vector(7 downto 0); + data_in : in std_logic_vector(7 downto 0); + irq : in std_logic; + firq : in std_logic; + nmi : in std_logic; + halt : in std_logic; + hold : in std_logic + ); +end cpu09; + +architecture rtl of cpu09 is + + constant EBIT : integer := 7; + constant FBIT : integer := 6; + constant HBIT : integer := 5; + constant IBIT : integer := 4; + constant NBIT : integer := 3; + constant ZBIT : integer := 2; + constant VBIT : integer := 1; + constant CBIT : integer := 0; + + -- + -- Interrupt vector modifiers + -- + constant RST_VEC : std_logic_vector(2 downto 0) := "111"; + constant NMI_VEC : std_logic_vector(2 downto 0) := "110"; + constant SWI_VEC : std_logic_vector(2 downto 0) := "101"; + constant IRQ_VEC : std_logic_vector(2 downto 0) := "100"; + constant FIRQ_VEC : std_logic_vector(2 downto 0) := "011"; + constant SWI2_VEC : std_logic_vector(2 downto 0) := "010"; + constant SWI3_VEC : std_logic_vector(2 downto 0) := "001"; + constant RESV_VEC : std_logic_vector(2 downto 0) := "000"; + + type state_type is (-- Start off in Reset + reset_state, + -- Fetch Interrupt Vectors (including reset) + vect_lo_state, vect_hi_state, + -- Fetch Instruction Cycle + fetch_state, + -- Decode Instruction Cycles + decode1_state, decode2_state, decode3_state, + -- Calculate Effective Address + imm16_state, + indexed_state, index8_state, index16_state, index16_2_state, + pcrel8_state, pcrel16_state, pcrel16_2_state, + indexaddr_state, indexaddr2_state, + postincr1_state, postincr2_state, + indirect_state, indirect2_state, indirect3_state, + extended_state, + -- single ops + single_op_read_state, + single_op_exec_state, + single_op_write_state, + -- Dual op states + dual_op_read8_state, dual_op_read16_state, dual_op_read16_2_state, + dual_op_write8_state, dual_op_write16_state, + -- + sync_state, halt_state, error_state, + -- + andcc_state, orcc_state, + tfr_state, exg_state, exg1_state, + lea_state, + -- Multiplication + mul_state, mulea_state, muld_state, + mul0_state, mul1_state, mul2_state, mul3_state, + mul4_state, mul5_state, mul6_state, mul7_state, + -- Branches + lbranch_state, sbranch_state, + -- Jumps, Subroutine Calls and Returns + jsr_state, jmp_state, + push_return_hi_state, push_return_lo_state, + pull_return_hi_state, pull_return_lo_state, + -- Interrupt cycles + int_nmiirq_state, int_firq_state, + int_entire_state, int_fast_state, + int_pcl_state, int_pch_state, + int_upl_state, int_uph_state, + int_iyl_state, int_iyh_state, + int_ixl_state, int_ixh_state, + int_dp_state, + int_accb_state, int_acca_state, + int_cc_state, + int_cwai_state, + int_maski_state, int_maskif_state, + -- Return From Interrupt + rti_cc_state, rti_entire_state, + rti_acca_state, rti_accb_state, + rti_dp_state, + rti_ixl_state, rti_ixh_state, + rti_iyl_state, rti_iyh_state, + rti_upl_state, rti_uph_state, + rti_pcl_state, rti_pch_state, + -- Push Registers using SP + pshs_state, + pshs_pcl_state, pshs_pch_state, + pshs_upl_state, pshs_uph_state, + pshs_iyl_state, pshs_iyh_state, + pshs_ixl_state, pshs_ixh_state, + pshs_dp_state, + pshs_acca_state, pshs_accb_state, + pshs_cc_state, + -- Pull Registers using SP + puls_state, + puls_cc_state, + puls_acca_state, puls_accb_state, + puls_dp_state, + puls_ixl_state, puls_ixh_state, + puls_iyl_state, puls_iyh_state, + puls_upl_state, puls_uph_state, + puls_pcl_state, puls_pch_state, + -- Push Registers using UP + pshu_state, + pshu_pcl_state, pshu_pch_state, + pshu_spl_state, pshu_sph_state, + pshu_iyl_state, pshu_iyh_state, + pshu_ixl_state, pshu_ixh_state, + pshu_dp_state, + pshu_acca_state, pshu_accb_state, + pshu_cc_state, + -- Pull Registers using UP + pulu_state, + pulu_cc_state, + pulu_acca_state, pulu_accb_state, + pulu_dp_state, + pulu_ixl_state, pulu_ixh_state, + pulu_iyl_state, pulu_iyh_state, + pulu_spl_state, pulu_sph_state, + pulu_pcl_state, pulu_pch_state ); + + type stack_type is array(2 downto 0) of state_type; + type st_type is (idle_st, push_st, pull_st ); + type addr_type is (idle_ad, fetch_ad, read_ad, write_ad, pushu_ad, pullu_ad, pushs_ad, pulls_ad, int_hi_ad, int_lo_ad ); + type dout_type is (cc_dout, acca_dout, accb_dout, dp_dout, + ix_lo_dout, ix_hi_dout, iy_lo_dout, iy_hi_dout, + up_lo_dout, up_hi_dout, sp_lo_dout, sp_hi_dout, + pc_lo_dout, pc_hi_dout, md_lo_dout, md_hi_dout ); + type op_type is (reset_op, fetch_op, latch_op ); + type pre_type is (reset_pre, fetch_pre, latch_pre ); + type cc_type is (reset_cc, load_cc, pull_cc, latch_cc ); + type acca_type is (reset_acca, load_acca, load_hi_acca, pull_acca, latch_acca ); + type accb_type is (reset_accb, load_accb, pull_accb, latch_accb ); + type dp_type is (reset_dp, load_dp, pull_dp, latch_dp ); + type ix_type is (reset_ix, load_ix, pull_lo_ix, pull_hi_ix, latch_ix ); + type iy_type is (reset_iy, load_iy, pull_lo_iy, pull_hi_iy, latch_iy ); + type sp_type is (reset_sp, latch_sp, load_sp, pull_hi_sp, pull_lo_sp ); + type up_type is (reset_up, latch_up, load_up, pull_hi_up, pull_lo_up ); + type pc_type is (reset_pc, latch_pc, load_pc, pull_lo_pc, pull_hi_pc, incr_pc ); + type md_type is (reset_md, latch_md, load_md, fetch_first_md, fetch_next_md, shiftl_md ); + type ea_type is (reset_ea, latch_ea, load_ea, fetch_first_ea, fetch_next_ea ); + type iv_type is (latch_iv, reset_iv, nmi_iv, irq_iv, firq_iv, swi_iv, swi2_iv, swi3_iv, resv_iv); + type nmi_type is (reset_nmi, set_nmi, latch_nmi ); + type left_type is (cc_left, acca_left, accb_left, dp_left, + ix_left, iy_left, up_left, sp_left, + accd_left, md_left, pc_left, ea_left ); + type right_type is (ea_right, zero_right, one_right, two_right, + acca_right, accb_right, accd_right, + md_right, md_sign5_right, md_sign8_right ); + type alu_type is (alu_add8, alu_sub8, alu_add16, alu_sub16, alu_adc, alu_sbc, + alu_and, alu_ora, alu_eor, + alu_tst, alu_inc, alu_dec, alu_clr, alu_neg, alu_com, + alu_lsr16, alu_lsl16, + alu_ror8, alu_rol8, alu_mul, + alu_asr8, alu_asl8, alu_lsr8, + alu_andcc, alu_orcc, alu_sex, alu_tfr, alu_abx, + alu_seif, alu_sei, alu_see, alu_cle, + alu_ld8, alu_st8, alu_ld16, alu_st16, alu_lea, alu_nop, alu_daa ); + + signal op_code: std_logic_vector(7 downto 0); + signal pre_code: std_logic_vector(7 downto 0); + signal acca: std_logic_vector(7 downto 0); + signal accb: std_logic_vector(7 downto 0); + signal cc: std_logic_vector(7 downto 0); + signal cc_out: std_logic_vector(7 downto 0); + signal dp: std_logic_vector(7 downto 0); + signal xreg: std_logic_vector(15 downto 0); + signal yreg: std_logic_vector(15 downto 0); + signal sp: std_logic_vector(15 downto 0); + signal up: std_logic_vector(15 downto 0); + signal ea: std_logic_vector(15 downto 0); + signal pc: std_logic_vector(15 downto 0); + signal md: std_logic_vector(15 downto 0); + signal left: std_logic_vector(15 downto 0); + signal right: std_logic_vector(15 downto 0); + signal out_alu: std_logic_vector(15 downto 0); + signal iv: std_logic_vector(2 downto 0); + signal nmi_req: std_logic; + signal nmi_ack: std_logic; + signal nmi_enable: std_logic; + + signal state: state_type; + signal next_state: state_type; + signal saved_state: state_type; + signal return_state: state_type; + signal state_stack: stack_type; + signal st_ctrl: st_type; + signal pc_ctrl: pc_type; + signal ea_ctrl: ea_type; + signal op_ctrl: op_type; + signal pre_ctrl: pre_type; + signal md_ctrl: md_type; + signal acca_ctrl: acca_type; + signal accb_ctrl: accb_type; + signal ix_ctrl: ix_type; + signal iy_ctrl: iy_type; + signal cc_ctrl: cc_type; + signal dp_ctrl: dp_type; + signal sp_ctrl: sp_type; + signal up_ctrl: up_type; + signal iv_ctrl: iv_type; + signal left_ctrl: left_type; + signal right_ctrl: right_type; + signal alu_ctrl: alu_type; + signal addr_ctrl: addr_type; + signal dout_ctrl: dout_type; + signal nmi_ctrl: nmi_type; + + +begin + +---------------------------------- +-- +-- State machine stack +-- +---------------------------------- +--state_stack_proc: process( clk, hold, state_stack, st_ctrl, +-- return_state, fetch_state ) +state_stack_proc: process( clk, state_stack ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + state_stack(0) <= state_stack(0); + state_stack(1) <= state_stack(1); + state_stack(2) <= state_stack(2); + else + case st_ctrl is + when idle_st => + state_stack(0) <= state_stack(0); + state_stack(1) <= state_stack(1); + state_stack(2) <= state_stack(2); + when push_st => + state_stack(0) <= return_state; + state_stack(1) <= state_stack(0); + state_stack(2) <= state_stack(1); + when pull_st => + state_stack(0) <= state_stack(1); + state_stack(1) <= state_stack(2); + state_stack(2) <= fetch_state; + when others => + state_stack(0) <= state_stack(0); + state_stack(1) <= state_stack(1); + state_stack(2) <= state_stack(2); + end case; + end if; + end if; -- clk_en + end if; -- clk'event + saved_state <= state_stack(0); +end process; + +---------------------------------- +-- +-- Program Counter Control +-- +---------------------------------- + +--pc_reg: process( clk, pc_ctrl, hold, pc, out_alu, data_in ) +pc_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + pc <= pc; + else + case pc_ctrl is + when reset_pc => + pc <= "0000000000000000"; + when load_pc => + pc <= out_alu(15 downto 0); + when pull_lo_pc => + pc(7 downto 0) <= data_in; + when pull_hi_pc => + pc(15 downto 8) <= data_in; + when incr_pc => + pc <= pc + 1; + when others => + -- when latch_pc => + pc <= pc; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +---------------------------------- +-- +-- Effective Address Control +-- +---------------------------------- + +--ea_reg: process( clk, ea_ctrl, hold, ea, out_alu, data_in, dp ) +ea_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + ea <= ea; + else + case ea_ctrl is + when reset_ea => + ea <= "0000000000000000"; + when fetch_first_ea => + ea(7 downto 0) <= data_in; + ea(15 downto 8) <= dp; + when fetch_next_ea => + ea(15 downto 8) <= ea(7 downto 0); + ea(7 downto 0) <= data_in; + when load_ea => + ea <= out_alu(15 downto 0); + when others => + -- when latch_ea => + ea <= ea; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Accumulator A +-- +-------------------------------- +--acca_reg : process( clk, acca_ctrl, hold, out_alu, acca, data_in ) +acca_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + acca <= acca; + else + case acca_ctrl is + when reset_acca => + acca <= "00000000"; + when load_acca => + acca <= out_alu(7 downto 0); + when load_hi_acca => + acca <= out_alu(15 downto 8); + when pull_acca => + acca <= data_in; + when others => + -- when latch_acca => + acca <= acca; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Accumulator B +-- +-------------------------------- +--accb_reg : process( clk, accb_ctrl, hold, out_alu, accb, data_in ) +accb_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + accb <= accb; + else + case accb_ctrl is + when reset_accb => + accb <= "00000000"; + when load_accb => + accb <= out_alu(7 downto 0); + when pull_accb => + accb <= data_in; + when others => + -- when latch_accb => + accb <= accb; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- X Index register +-- +-------------------------------- +--ix_reg : process( clk, ix_ctrl, hold, out_alu, xreg, data_in ) +ix_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + xreg <= xreg; + else + case ix_ctrl is + when reset_ix => + xreg <= "0000000000000000"; + when load_ix => + xreg <= out_alu(15 downto 0); + when pull_hi_ix => + xreg(15 downto 8) <= data_in; + when pull_lo_ix => + xreg(7 downto 0) <= data_in; + when others => + -- when latch_ix => + xreg <= xreg; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Y Index register +-- +-------------------------------- +--iy_reg : process( clk, iy_ctrl, hold, out_alu, yreg, data_in ) +iy_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + yreg <= yreg; + else + case iy_ctrl is + when reset_iy => + yreg <= "0000000000000000"; + when load_iy => + yreg <= out_alu(15 downto 0); + when pull_hi_iy => + yreg(15 downto 8) <= data_in; + when pull_lo_iy => + yreg(7 downto 0) <= data_in; + when others => + -- when latch_iy => + yreg <= yreg; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- S stack pointer +-- +-------------------------------- +--sp_reg : process( clk, sp_ctrl, hold, sp, out_alu, data_in, nmi_enable ) +sp_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + sp <= sp; + nmi_enable <= nmi_enable; + else + case sp_ctrl is + when reset_sp => + sp <= "0000000000000000"; + nmi_enable <= '0'; + when load_sp => + sp <= out_alu(15 downto 0); + nmi_enable <= '1'; + when pull_hi_sp => + sp(15 downto 8) <= data_in; + nmi_enable <= nmi_enable; + when pull_lo_sp => + sp(7 downto 0) <= data_in; + nmi_enable <= '1'; + when others => + -- when latch_sp => + sp <= sp; + nmi_enable <= nmi_enable; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- U stack pointer +-- +-------------------------------- +--up_reg : process( clk, up_ctrl, hold, up, out_alu, data_in ) +up_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + up <= up; + else + case up_ctrl is + when reset_up => + up <= "0000000000000000"; + when load_up => + up <= out_alu(15 downto 0); + when pull_hi_up => + up(15 downto 8) <= data_in; + when pull_lo_up => + up(7 downto 0) <= data_in; + when others => + -- when latch_up => + up <= up; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- Memory Data +-- +-------------------------------- +--md_reg : process( clk, md_ctrl, hold, out_alu, data_in, md ) +md_reg : process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + md <= md; + else + case md_ctrl is + when reset_md => + md <= "0000000000000000"; + when load_md => + md <= out_alu(15 downto 0); + when fetch_first_md => -- sign extend md for branches + md(15 downto 8) <= data_in(7) & data_in(7) & data_in(7) & data_in(7) & + data_in(7) & data_in(7) & data_in(7) & data_in(7) ; + md(7 downto 0) <= data_in; + when fetch_next_md => + md(15 downto 8) <= md(7 downto 0); + md(7 downto 0) <= data_in; + when shiftl_md => + md(15 downto 1) <= md(14 downto 0); + md(0) <= '0'; + when others => + -- when latch_md => + md <= md; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- Condition Codes +-- +---------------------------------- + +--cc_reg: process( clk, cc_ctrl, hold, cc_out, cc, data_in ) +cc_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + cc <= cc; + else + case cc_ctrl is + when reset_cc => + cc <= "11010000"; -- set EBIT, FBIT & IBIT + when load_cc => + cc <= cc_out; + when pull_cc => + cc <= data_in; + when others => + -- when latch_cc => + cc <= cc; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +---------------------------------- +-- +-- Direct Page register +-- +---------------------------------- + +--dp_reg: process( clk, dp_ctrl, hold, out_alu, dp, data_in ) +dp_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + dp <= dp; + else + case dp_ctrl is + when reset_dp => + dp <= "00000000"; + when load_dp => + dp <= out_alu(7 downto 0); + when pull_dp => + dp <= data_in; + when others => + -- when latch_dp => + dp <= dp; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +---------------------------------- +-- +-- interrupt vector +-- +---------------------------------- + +--iv_mux: process( clk, iv_ctrl, hold, iv ) +iv_mux: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + iv <= iv; + else + case iv_ctrl is + when reset_iv => + iv <= RST_VEC; + when nmi_iv => + iv <= NMI_VEC; + when swi_iv => + iv <= SWI_VEC; + when irq_iv => + iv <= IRQ_VEC; + when firq_iv => + iv <= FIRQ_VEC; + when swi2_iv => + iv <= SWI2_VEC; + when swi3_iv => + iv <= SWI3_VEC; + when resv_iv => + iv <= RESV_VEC; + when others => + iv <= iv; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- op code register +-- +---------------------------------- + +--op_reg: process( clk, op_ctrl, hold, op_code, data_in ) +op_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + op_code <= op_code; + else + case op_ctrl is + when reset_op => + op_code <= "00010010"; + when fetch_op => + op_code <= data_in; + when others => + -- when latch_op => + op_code <= op_code; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- pre byte op code register +-- +---------------------------------- + +--pre_reg: process( clk, pre_ctrl, hold, pre_code, data_in ) +pre_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold= '1' then + pre_code <= pre_code; + else + case pre_ctrl is + when reset_pre => + pre_code <= "00000000"; + when fetch_pre => + pre_code <= data_in; + when others => + -- when latch_pre => + pre_code <= pre_code; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +-------------------------------- +-- +-- state machine +-- +-------------------------------- + +--change_state: process( clk, rst, state, hold, next_state ) +change_state: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if rst = '1' then + state <= reset_state; + else + if hold = '1' then + state <= state; + else + state <= next_state; + end if; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + -- output + +------------------------------------ +-- +-- Nmi register +-- +------------------------------------ + +--nmi_reg: process( clk, nmi_ctrl, hold, nmi_ack ) +nmi_reg: process( clk ) +begin + if clk'event and clk = CLK_POL then + if clk_en = '1' then + if hold = '1' then + nmi_ack <= nmi_ack; + else + case nmi_ctrl is + when set_nmi => + nmi_ack <= '1'; + when reset_nmi => + nmi_ack <= '0'; + when others => + -- when latch_nmi => + nmi_ack <= nmi_ack; + end case; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + +------------------------------------ +-- +-- Detect Edge of NMI interrupt +-- +------------------------------------ + +--nmi_handler : process( clk, rst, nmi, nmi_ack, nmi_req, nmi_enable ) +nmi_handler : process( rst, clk ) +begin + if rst='1' then + nmi_req <= '0'; + elsif clk'event and clk = CLK_POL then + if clk_en = '1' then + if (nmi='1') and (nmi_ack='0') and (nmi_enable='1') then + nmi_req <= '1'; + else + if (nmi='0') and (nmi_ack='1') then + nmi_req <= '0'; + end if; + end if; + end if; -- clk_en + end if; -- clk'event +end process; + + +---------------------------------- +-- +-- Address output multiplexer +-- +---------------------------------- + +addr_mux: process( addr_ctrl, pc, ea, up, sp, iv ) +begin + case addr_ctrl is + when idle_ad => + vma <= '0'; + addr <= "1111111111111111"; + rw <= '1'; + when fetch_ad => + vma <= '1'; + addr <= pc; + rw <= '1'; + when read_ad => + vma <= '1'; + addr <= ea; + rw <= '1'; + when write_ad => + vma <= '1'; + addr <= ea; + rw <= '0'; + when pushs_ad => + vma <= '1'; + addr <= sp; + rw <= '0'; + when pulls_ad => + vma <= '1'; + addr <= sp; + rw <= '1'; + when pushu_ad => + vma <= '1'; + addr <= up; + rw <= '0'; + when pullu_ad => + vma <= '1'; + addr <= up; + rw <= '1'; + when int_hi_ad => + vma <= '1'; + addr <= "111111111111" & iv & "0"; + rw <= '1'; + when int_lo_ad => + vma <= '1'; + addr <= "111111111111" & iv & "1"; + rw <= '1'; + when others => + vma <= '0'; + addr <= "1111111111111111"; + rw <= '1'; + end case; +end process; + +-------------------------------- +-- +-- Data Bus output +-- +-------------------------------- +dout_mux : process( dout_ctrl, md, acca, accb, dp, xreg, yreg, sp, up, pc, cc ) +begin + case dout_ctrl is + when cc_dout => -- condition code register + data_out <= cc; + when acca_dout => -- accumulator a + data_out <= acca; + when accb_dout => -- accumulator b + data_out <= accb; + when dp_dout => -- direct page register + data_out <= dp; + when ix_lo_dout => -- X index reg + data_out <= xreg(7 downto 0); + when ix_hi_dout => -- X index reg + data_out <= xreg(15 downto 8); + when iy_lo_dout => -- Y index reg + data_out <= yreg(7 downto 0); + when iy_hi_dout => -- Y index reg + data_out <= yreg(15 downto 8); + when up_lo_dout => -- U stack pointer + data_out <= up(7 downto 0); + when up_hi_dout => -- U stack pointer + data_out <= up(15 downto 8); + when sp_lo_dout => -- S stack pointer + data_out <= sp(7 downto 0); + when sp_hi_dout => -- S stack pointer + data_out <= sp(15 downto 8); + when md_lo_dout => -- alu output + data_out <= md(7 downto 0); + when md_hi_dout => -- alu output + data_out <= md(15 downto 8); + when pc_lo_dout => -- low order pc + data_out <= pc(7 downto 0); + when pc_hi_dout => -- high order pc + data_out <= pc(15 downto 8); + when others => + data_out <= "00000000"; + end case; +end process; + +---------------------------------- +-- +-- Left Mux +-- +---------------------------------- + +left_mux: process( left_ctrl, acca, accb, cc, dp, xreg, yreg, up, sp, pc, ea, md ) +begin + case left_ctrl is + when cc_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= cc; + when acca_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= acca; + when accb_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= accb; + when dp_left => + left(15 downto 8) <= "00000000"; + left(7 downto 0) <= dp; + when accd_left => + left(15 downto 8) <= acca; + left(7 downto 0) <= accb; + when md_left => + left <= md; + when ix_left => + left <= xreg; + when iy_left => + left <= yreg; + when sp_left => + left <= sp; + when up_left => + left <= up; + when pc_left => + left <= pc; + when others => +-- when ea_left => + left <= ea; + end case; +end process; + +---------------------------------- +-- +-- Right Mux +-- +---------------------------------- + +right_mux: process( right_ctrl, md, acca, accb, ea ) +begin + case right_ctrl is + when ea_right => + right <= ea; + when zero_right => + right <= "0000000000000000"; + when one_right => + right <= "0000000000000001"; + when two_right => + right <= "0000000000000010"; + when acca_right => + if acca(7) = '0' then + right <= "00000000" & acca(7 downto 0); + else + right <= "11111111" & acca(7 downto 0); + end if; + when accb_right => + if accb(7) = '0' then + right <= "00000000" & accb(7 downto 0); + else + right <= "11111111" & accb(7 downto 0); + end if; + when accd_right => + right <= acca & accb; + when md_sign5_right => + if md(4) = '0' then + right <= "00000000000" & md(4 downto 0); + else + right <= "11111111111" & md(4 downto 0); + end if; + when md_sign8_right => + if md(7) = '0' then + right <= "00000000" & md(7 downto 0); + else + right <= "11111111" & md(7 downto 0); + end if; + when others => +-- when md_right => + right <= md; + end case; +end process; + +---------------------------------- +-- +-- Arithmetic Logic Unit +-- +---------------------------------- + +alu: process( alu_ctrl, cc, left, right, out_alu, cc_out ) +variable valid_lo, valid_hi : boolean; +variable carry_in : std_logic; +variable daa_reg : std_logic_vector(7 downto 0); +begin + + case alu_ctrl is + when alu_adc | alu_sbc | + alu_rol8 | alu_ror8 => + carry_in := cc(CBIT); + when alu_asr8 => + carry_in := left(7); + when others => + carry_in := '0'; + end case; + + valid_lo := left(3 downto 0) <= 9; + valid_hi := left(7 downto 4) <= 9; + + if (cc(CBIT) = '0') then + if( cc(HBIT) = '1' ) then + if valid_hi then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + else + if valid_lo then + if valid_hi then + daa_reg := "00000000"; + else + daa_reg := "01100000"; + end if; + else + if( left(7 downto 4) <= 8 ) then + daa_reg := "00000110"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + else + if ( cc(HBIT) = '1' )then + daa_reg := "01100110"; + else + if valid_lo then + daa_reg := "01100000"; + else + daa_reg := "01100110"; + end if; + end if; + end if; + + case alu_ctrl is + when alu_add8 | alu_inc | + alu_add16 | alu_adc | alu_mul => + out_alu <= left + right + ("000000000000000" & carry_in); + when alu_sub8 | alu_dec | + alu_sub16 | alu_sbc => + out_alu <= left - right - ("000000000000000" & carry_in); + when alu_abx => + out_alu <= left + ("00000000" & right(7 downto 0)) ; + when alu_and => + out_alu <= left and right; -- and/bit + when alu_ora => + out_alu <= left or right; -- or + when alu_eor => + out_alu <= left xor right; -- eor/xor + when alu_lsl16 | alu_asl8 | alu_rol8 => + out_alu <= left(14 downto 0) & carry_in; -- rol8/asl8/lsl16 + when alu_lsr16 => + out_alu <= carry_in & left(15 downto 1); -- lsr16 + when alu_lsr8 | alu_asr8 | alu_ror8 => + out_alu <= "00000000" & carry_in & left(7 downto 1); -- ror8/asr8/lsr8 + when alu_neg => + out_alu <= right - left; -- neg (right=0) + when alu_com => + out_alu <= not left; + when alu_clr | alu_ld8 | alu_ld16 | alu_lea => + out_alu <= right; -- clr, ld + when alu_st8 | alu_st16 | alu_andcc | alu_orcc | alu_tfr => + out_alu <= left; + when alu_daa => + out_alu <= left + ("00000000" & daa_reg); + when alu_sex => + if left(7) = '0' then + out_alu <= "00000000" & left(7 downto 0); + else + out_alu <= "11111111" & left(7 downto 0); + end if; + when others => + out_alu <= left; -- nop + end case; + + -- + -- carry bit + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(CBIT) <= (left(7) and right(7)) or + (left(7) and not out_alu(7)) or + (right(7) and not out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(CBIT) <= ((not left(7)) and right(7)) or + ((not left(7)) and out_alu(7)) or + (right(7) and out_alu(7)); + when alu_add16 => + cc_out(CBIT) <= (left(15) and right(15)) or + (left(15) and not out_alu(15)) or + (right(15) and not out_alu(15)); + when alu_sub16 => + cc_out(CBIT) <= ((not left(15)) and right(15)) or + ((not left(15)) and out_alu(15)) or + (right(15) and out_alu(15)); + when alu_ror8 | alu_lsr16 | alu_lsr8 | alu_asr8 => + cc_out(CBIT) <= left(0); + when alu_rol8 | alu_asl8 => + cc_out(CBIT) <= left(7); + when alu_lsl16 => + cc_out(CBIT) <= left(15); + when alu_com => + cc_out(CBIT) <= '1'; + when alu_neg | alu_clr => + cc_out(CBIT) <= out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0); + when alu_mul => + cc_out(CBIT) <= out_alu(7); + when alu_daa => + if ( daa_reg(7 downto 4) = "0110" ) then + cc_out(CBIT) <= '1'; + else + cc_out(CBIT) <= '0'; + end if; + when alu_andcc => + cc_out(CBIT) <= left(CBIT) and cc(CBIT); + when alu_orcc => + cc_out(CBIT) <= left(CBIT) or cc(CBIT); + when alu_tfr => + cc_out(CBIT) <= left(CBIT); + when others => + cc_out(CBIT) <= cc(CBIT); + end case; + -- + -- Zero flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_inc | alu_dec | + alu_neg | alu_com | alu_clr | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_ld8 | alu_st8 | alu_sex | alu_daa => + cc_out(ZBIT) <= not( out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_add16 | alu_sub16 | alu_mul | + alu_lsl16 | alu_lsr16 | + alu_ld16 | alu_st16 | alu_lea => + cc_out(ZBIT) <= not( out_alu(15) or out_alu(14) or out_alu(13) or out_alu(12) or + out_alu(11) or out_alu(10) or out_alu(9) or out_alu(8) or + out_alu(7) or out_alu(6) or out_alu(5) or out_alu(4) or + out_alu(3) or out_alu(2) or out_alu(1) or out_alu(0) ); + when alu_andcc => + cc_out(ZBIT) <= left(ZBIT) and cc(ZBIT); + when alu_orcc => + cc_out(ZBIT) <= left(ZBIT) or cc(ZBIT); + when alu_tfr => + cc_out(ZBIT) <= left(ZBIT); + when others => + cc_out(ZBIT) <= cc(ZBIT); + end case; + + -- + -- negative flag + -- + case alu_ctrl is + when alu_add8 | alu_sub8 | + alu_adc | alu_sbc | + alu_and | alu_ora | alu_eor | + alu_rol8 | alu_ror8 | alu_asr8 | alu_asl8 | alu_lsr8 | + alu_inc | alu_dec | alu_neg | alu_com | alu_clr | + alu_ld8 | alu_st8 | alu_sex | alu_daa => + cc_out(NBIT) <= out_alu(7); + when alu_add16 | alu_sub16 | + alu_lsl16 | alu_lsr16 | + alu_ld16 | alu_st16 => + cc_out(NBIT) <= out_alu(15); + when alu_andcc => + cc_out(NBIT) <= left(NBIT) and cc(NBIT); + when alu_orcc => + cc_out(NBIT) <= left(NBIT) or cc(NBIT); + when alu_tfr => + cc_out(NBIT) <= left(NBIT); + when others => + cc_out(NBIT) <= cc(NBIT); + end case; + + -- + -- Interrupt mask flag + -- + case alu_ctrl is + when alu_andcc => + cc_out(IBIT) <= left(IBIT) and cc(IBIT); + when alu_orcc => + cc_out(IBIT) <= left(IBIT) or cc(IBIT); + when alu_tfr => + cc_out(IBIT) <= left(IBIT); + when alu_seif | alu_sei => + cc_out(IBIT) <= '1'; + when others => + cc_out(IBIT) <= cc(IBIT); -- interrupt mask + end case; + + -- + -- Half Carry flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(HBIT) <= (left(3) and right(3)) or + (right(3) and not out_alu(3)) or + (left(3) and not out_alu(3)); + when alu_andcc => + cc_out(HBIT) <= left(HBIT) and cc(HBIT); + when alu_orcc => + cc_out(HBIT) <= left(HBIT) or cc(HBIT); + when alu_tfr => + cc_out(HBIT) <= left(HBIT); + when others => + cc_out(HBIT) <= cc(HBIT); + end case; + + -- + -- Overflow flag + -- + case alu_ctrl is + when alu_add8 | alu_adc => + cc_out(VBIT) <= (left(7) and right(7) and (not out_alu(7))) or + ((not left(7)) and (not right(7)) and out_alu(7)); + when alu_sub8 | alu_sbc => + cc_out(VBIT) <= (left(7) and (not right(7)) and (not out_alu(7))) or + ((not left(7)) and right(7) and out_alu(7)); + when alu_add16 => + cc_out(VBIT) <= (left(15) and right(15) and (not out_alu(15))) or + ((not left(15)) and (not right(15)) and out_alu(15)); + when alu_sub16 => + cc_out(VBIT) <= (left(15) and (not right(15)) and (not out_alu(15))) or + ((not left(15)) and right(15) and out_alu(15)); + when alu_inc => + cc_out(VBIT) <= ((not left(7)) and left(6) and left(5) and left(4) and + left(3) and left(2) and left(1) and left(0)); + when alu_dec | alu_neg => + cc_out(VBIT) <= (left(7) and (not left(6)) and (not left(5)) and (not left(4)) and + (not left(3)) and (not left(2)) and (not left(1)) and (not left(0))); +-- 6809 Programming reference manual says +-- V not affected by ASR, LSR and ROR +-- This is different to the 6800 +-- John Kent 6th June 2006 +-- when alu_asr8 => +-- cc_out(VBIT) <= left(0) xor left(7); +-- when alu_lsr8 | alu_lsr16 => +-- cc_out(VBIT) <= left(0); +-- when alu_ror8 => +-- cc_out(VBIT) <= left(0) xor cc(CBIT); + when alu_lsl16 => + cc_out(VBIT) <= left(15) xor left(14); + when alu_rol8 | alu_asl8 => + cc_out(VBIT) <= left(7) xor left(6); +-- +-- 11th July 2006 - John Kent +-- What DAA does with V is anyones guess +-- It is undefined in the 6809 programming manual +-- + when alu_daa => + cc_out(VBIT) <= left(7) xor out_alu(7) xor cc(CBIT); +-- CLR resets V Bit +-- John Kent 6th June 2006 + when alu_and | alu_ora | alu_eor | alu_com | alu_clr | + alu_st8 | alu_st16 | alu_ld8 | alu_ld16 | alu_sex => + cc_out(VBIT) <= '0'; + when alu_andcc => + cc_out(VBIT) <= left(VBIT) and cc(VBIT); + when alu_orcc => + cc_out(VBIT) <= left(VBIT) or cc(VBIT); + when alu_tfr => + cc_out(VBIT) <= left(VBIT); + when others => + cc_out(VBIT) <= cc(VBIT); + end case; + + case alu_ctrl is + when alu_andcc => + cc_out(FBIT) <= left(FBIT) and cc(FBIT); + when alu_orcc => + cc_out(FBIT) <= left(FBIT) or cc(FBIT); + when alu_tfr => + cc_out(FBIT) <= left(FBIT); + when alu_seif => + cc_out(FBIT) <= '1'; + when others => + cc_out(FBIT) <= cc(FBIT); + end case; + + case alu_ctrl is + when alu_andcc => + cc_out(EBIT) <= left(EBIT) and cc(EBIT); + when alu_orcc => + cc_out(EBIT) <= left(EBIT) or cc(EBIT); + when alu_tfr => + cc_out(EBIT) <= left(EBIT); + when alu_see => + cc_out(EBIT) <= '1'; + when alu_cle => + cc_out(EBIT) <= '0'; + when others => + cc_out(EBIT) <= cc(EBIT); + end case; +end process; + +------------------------------------ +-- +-- state sequencer +-- +------------------------------------ +process( state, saved_state, + op_code, pre_code, + cc, ea, md, iv, + irq, firq, nmi_req, nmi_ack, halt ) +variable cond_true : boolean; -- variable used to evaluate coditional branches +begin + -- Registers preserved + cc_ctrl <= latch_cc; + acca_ctrl <= latch_acca; + accb_ctrl <= latch_accb; + dp_ctrl <= latch_dp; + ix_ctrl <= latch_ix; + iy_ctrl <= latch_iy; + up_ctrl <= latch_up; + sp_ctrl <= latch_sp; + pc_ctrl <= latch_pc; + md_ctrl <= latch_md; + ea_ctrl <= latch_ea; + iv_ctrl <= latch_iv; + op_ctrl <= latch_op; + pre_ctrl <= latch_pre; + nmi_ctrl <= latch_nmi; + -- ALU Idle + left_ctrl <= pc_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + -- Bus idle + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + -- Next State Fetch + st_ctrl <= idle_st; + return_state <= fetch_state; + next_state <= fetch_state; + + case state is + when reset_state => -- released from reset + -- reset the registers + op_ctrl <= reset_op; + pre_ctrl <= reset_pre; + cc_ctrl <= reset_cc; + acca_ctrl <= reset_acca; + accb_ctrl <= reset_accb; + dp_ctrl <= reset_dp; + ix_ctrl <= reset_ix; + iy_ctrl <= reset_iy; + up_ctrl <= reset_up; + sp_ctrl <= reset_sp; + pc_ctrl <= reset_pc; + ea_ctrl <= reset_ea; + md_ctrl <= reset_md; + iv_ctrl <= reset_iv; + nmi_ctrl <= reset_nmi; + next_state <= vect_hi_state; + + -- + -- Jump via interrupt vector + -- iv holds interrupt type + -- fetch PC hi from vector location + -- + when vect_hi_state => + -- fetch pc low interrupt vector + pc_ctrl <= pull_hi_pc; + addr_ctrl <= int_hi_ad; + next_state <= vect_lo_state; + -- + -- jump via interrupt vector + -- iv holds vector type + -- fetch PC lo from vector location + -- + when vect_lo_state => + -- fetch the vector low byte + pc_ctrl <= pull_lo_pc; + addr_ctrl <= int_lo_ad; + next_state <= fetch_state; + -- + -- Here to fetch an instruction + -- PC points to opcode + -- Should service interrupt requests at this point + -- either from the timer + -- or from the external input. + -- + when fetch_state => + -- fetch the op code + op_ctrl <= fetch_op; + pre_ctrl <= fetch_pre; + ea_ctrl <= reset_ea; + -- Fetch op code + addr_ctrl <= fetch_ad; + -- + case op_code(7 downto 6) is + when "10" => -- acca + case op_code(3 downto 0) is + when "0000" => -- suba + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0001" => -- cmpa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + when "0010" => -- sbca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0011" => + case pre_code is + when "00010000" => -- page 2 -- cmpd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when "00010001" => -- page 3 -- cmpu + left_ctrl <= up_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when others => -- page 1 -- subd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + end case; + when "0100" => -- anda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0101" => -- bita + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + when "0110" => -- ldaa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "0111" => -- staa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + when "1000" => -- eora + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1001" => -- adca + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1010" => -- oraa + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1011" => -- adda + left_ctrl <= acca_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + when "1100" => + case pre_code is + when "00010000" => -- page 2 -- cmpy + left_ctrl <= iy_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when "00010001" => -- page 3 -- cmps + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + when others => -- page 1 -- cmpx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub16; + cc_ctrl <= load_cc; + end case; + when "1101" => -- bsr / jsr + null; + when "1110" => -- ldx + case pre_code is + when "00010000" => -- page 2 -- ldy + left_ctrl <= iy_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + iy_ctrl <= load_iy; + when others => -- page 1 -- ldx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + ix_ctrl <= load_ix; + end case; + when "1111" => -- stx + case pre_code is + when "00010000" => -- page 2 -- sty + left_ctrl <= iy_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + when others => -- page 1 -- stx + left_ctrl <= ix_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + end case; + when others => + null; + end case; + when "11" => -- accb dual op + case op_code(3 downto 0) is + when "0000" => -- subb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0001" => -- cmpb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sub8; + cc_ctrl <= load_cc; + when "0010" => -- sbcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_sbc; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0011" => -- addd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "0100" => -- andb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0101" => -- bitb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_and; + cc_ctrl <= load_cc; + when "0110" => -- ldab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld8; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "0111" => -- stab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + when "1000" => -- eorb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_eor; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1001" => -- adcb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_adc; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1010" => -- orab + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ora; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1011" => -- addb + left_ctrl <= accb_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add8; + cc_ctrl <= load_cc; + accb_ctrl <= load_accb; + when "1100" => -- ldd + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "1101" => -- std + left_ctrl <= accd_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + when "1110" => -- ldu + case pre_code is + when "00010000" => -- page 2 -- lds + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + sp_ctrl <= load_sp; + when others => -- page 1 -- ldu + left_ctrl <= up_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + cc_ctrl <= load_cc; + up_ctrl <= load_up; + end case; + when "1111" => + case pre_code is + when "00010000" => -- page 2 -- sts + left_ctrl <= sp_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + when others => -- page 1 -- stu + left_ctrl <= up_left; + right_ctrl <= md_right; + alu_ctrl <= alu_st16; + cc_ctrl <= load_cc; + end case; + when others => + null; + end case; + when others => + null; + end case; + if halt = '1' then + iv_ctrl <= reset_iv; + next_state <= halt_state; + -- service non maskable interrupts + elsif (nmi_req = '1') and (nmi_ack = '0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= int_nmiirq_state; + -- service maskable interrupts + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if(nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + end if; + -- + -- FIRQ & IRQ are level sensitive + -- + if (firq = '1') and (cc(FBIT) = '0') then + iv_ctrl <= firq_iv; + next_state <= int_firq_state; + elsif (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_nmiirq_state; + else + -- Advance the PC to fetch next instruction byte + iv_ctrl <= reset_iv; -- default to reset + pc_ctrl <= incr_pc; + next_state <= decode1_state; + end if; + end if; + -- + -- Here to decode instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode1_state => + -- fetch first byte of address or immediate data + ea_ctrl <= fetch_first_ea; + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + case op_code(7 downto 4) is + -- + -- direct single op (2 bytes) + -- 6809 => 6 cycles + -- cpu09 => 5 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_hi=dp / ea_lo=(pc) / pc=pc+1 + -- 3 md_lo=(ea) / pc=pc + -- 4 alu_left=md / md=alu_out / pc=pc + -- 5 (ea)=md_lo / pc=pc + -- + -- Exception is JMP + -- 6809 => 3 cycles + -- cpu09 => 3 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_hi=dp / ea_lo=(pc) / pc=pc+1 + -- 3 pc=ea + -- + when "0000" => + -- advance the PC + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "1110" => -- jmp + next_state <= jmp_state; + when "1111" => -- clr + next_state <= single_op_exec_state; + when others => + next_state <= single_op_read_state; + end case; + + -- acca / accb inherent instructions + when "0001" => + case op_code(3 downto 0) is + -- + -- Page2 pre byte + -- pre=(pc) / pc=pc+1 + -- op=(pc) / pc=pc+1 + -- + when "0000" => -- page2 + op_ctrl <= fetch_op; + -- advance pc + pc_ctrl <= incr_pc; + next_state <= decode2_state; + + -- + -- Page3 pre byte + -- pre=(pc) / pc=pc+1 + -- op=(pc) / pc=pc+1 + -- + when "0001" => -- page3 + op_ctrl <= fetch_op; + -- advance pc + pc_ctrl <= incr_pc; + next_state <= decode3_state; + + -- + -- nop - No operation ( 1 byte ) + -- 6809 => 2 cycles + -- cpu09 => 2 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 decode + -- + when "0010" => -- nop + next_state <= fetch_state; + + -- + -- sync - halt execution until an interrupt is received + -- interrupt may be NMI, IRQ or FIRQ + -- program execution continues if the + -- interrupt is asserted for 3 clock cycles + -- note that registers are not pushed onto the stack + -- CPU09 => Interrupts need only be asserted for one clock cycle + -- + when "0011" => -- sync + next_state <= sync_state; + + -- + -- lbra -- long branch (3 bytes) + -- 6809 => 5 cycles + -- cpu09 => 4 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 + -- 3 md_hi=md_lo / md_lo=(pc) / pc=pc+1 + -- 4 pc=pc+md + -- + when "0110" => + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= lbranch_state; + + -- + -- lbsr - long branch to subroutine (3 bytes) + -- 6809 => 9 cycles + -- cpu09 => 6 cycles + -- 1 op=(pc) /pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 / sp=sp-1 + -- 3 md_hi=md_lo / md_lo=(pc) / pc=pc+1 + -- 4 (sp)= pc_lo / sp=sp-1 / pc=pc + -- 5 (sp)=pc_hi / pc=pc + -- 6 pc=pc+md + -- + when "0111" => + -- pre decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= lbranch_state; + + when "1001" => -- daa + left_ctrl <= acca_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_daa; + cc_ctrl <= load_cc; + acca_ctrl <= load_acca; + next_state <= fetch_state; + + when "1010" => -- orcc + -- increment the pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= orcc_state; + + when "1100" => -- andcc + -- increment the pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= andcc_state; + + when "1101" => -- sex + -- have sex + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_sex; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + next_state <= fetch_state; + + when "1110" => -- exg + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= exg_state; + + when "1111" => -- tfr + -- increment the pc + pc_ctrl <= incr_pc; + -- call transfer as a subroutine + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= tfr_state; + + when others => + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= fetch_state; + end case; + -- + -- Short branch conditional + -- 6809 => always 3 cycles + -- cpu09 => always = 3 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 / test cc + -- 3 if cc tru pc=pc+md else pc=pc + -- + when "0010" => -- branch conditional + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= sbranch_state; + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + -- + -- lea - load effective address (2+ bytes) + -- 6809 => 4 cycles + addressing mode + -- cpu09 => 4 cycles + addressing mode + -- 1 op=(pc) / pc=pc+1 + -- 2 md_lo=(pc) / pc=pc+1 + -- 3 calculate ea + -- 4 ix/iy/sp/up = ea + -- + case op_code(3 downto 0) is + when "0000" | -- leax + "0001" | -- leay + "0010" | -- leas + "0011" => -- leau + -- advance PC + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= lea_state; + next_state <= indexed_state; + + -- + -- pshs - push registers onto sp stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_lo=(pc) / pc=pc+1 + -- 3 if ea(7 downto 0) != "00000000" then sp=sp-1 + -- 4 if ea(7) = 1 (sp)=pcl, sp=sp-1 + -- 5 if ea(7) = 1 (sp)=pch + -- if ea(6 downto 0) != "0000000" then sp=sp-1 + -- 6 if ea(6) = 1 (sp)=upl, sp=sp-1 + -- 7 if ea(6) = 1 (sp)=uph + -- if ea(5 downto 0) != "000000" then sp=sp-1 + -- 8 if ea(5) = 1 (sp)=iyl, sp=sp-1 + -- 9 if ea(5) = 1 (sp)=iyh + -- if ea(4 downto 0) != "00000" then sp=sp-1 + -- 10 if ea(4) = 1 (sp)=ixl, sp=sp-1 + -- 11 if ea(4) = 1 (sp)=ixh + -- if ea(3 downto 0) != "0000" then sp=sp-1 + -- 12 if ea(3) = 1 (sp)=dp + -- if ea(2 downto 0) != "000" then sp=sp-1 + -- 13 if ea(2) = 1 (sp)=accb + -- if ea(1 downto 0) != "00" then sp=sp-1 + -- 14 if ea(1) = 1 (sp)=acca + -- if ea(0 downto 0) != "0" then sp=sp-1 + -- 15 if ea(0) = 1 (sp)=cc + -- + when "0100" => -- pshs + -- advance PC + pc_ctrl <= incr_pc; + next_state <= pshs_state; + + -- + -- puls - pull registers of sp stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- + when "0101" => -- puls + -- advance PC + pc_ctrl <= incr_pc; + next_state <= puls_state; + + -- + -- pshu - push registers onto up stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- + when "0110" => -- pshu + -- advance PC + pc_ctrl <= incr_pc; + next_state <= pshu_state; + + -- + -- pulu - pull registers of up stack + -- 6809 => 5 cycles + registers + -- cpu09 => 3 cycles + registers + -- + when "0111" => -- pulu + -- advance PC + pc_ctrl <= incr_pc; + next_state <= pulu_state; + + -- + -- rts - return from subroutine + -- 6809 => 5 cycles + -- cpu09 => 4 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 decode op + -- 3 pc_hi = (sp) / sp=sp+1 + -- 4 pc_lo = (sp) / sp=sp+1 + -- + when "1001" => + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= pull_return_hi_state; + + -- + -- add accb to index register + -- *** Note: this is an unsigned addition. + -- does not affect any condition codes + -- 6809 => 3 cycles + -- cpu09 => 2 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 alu_left=ix / alu_right=accb / ix=alu_out / pc=pc + -- + when "1010" => -- abx + left_ctrl <= ix_left; + right_ctrl <= accb_right; + alu_ctrl <= alu_abx; + ix_ctrl <= load_ix; + next_state <= fetch_state; + + when "1011" => -- rti + next_state <= rti_cc_state; + + when "1100" => -- cwai #$ + -- pre decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= reset_iv; + -- increment pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + return_state <= int_entire_state; -- set entire flag + next_state <= andcc_state; + + when "1101" => -- mul + next_state <= mul_state; + + when "1111" => -- swi + -- predecrement SP + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= swi_iv; + next_state <= int_entire_state; + + when others => + next_state <= fetch_state; + + end case; + -- + -- Accumulator A Single operand + -- source = acca, dest = acca + -- Do not advance PC + -- Typically 2 cycles 1 bytes + -- 1 opcode fetch + -- 2 post byte fetch / instruction decode + -- Note that there is no post byte + -- so do not advance PC in decode cycle + -- Re-run opcode fetch cycle after decode + -- + when "0100" => -- acca single op + left_ctrl <= acca_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= one_right; + alu_ctrl <= alu_dec; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= one_right; + alu_ctrl <= alu_inc; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + acca_ctrl <= latch_acca; + cc_ctrl <= load_cc; + when "1110" => -- jmp (not defined) + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + acca_ctrl <= load_acca; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + acca_ctrl <= latch_acca; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- Single Operand accb + -- source = accb, dest = accb + -- Typically 2 cycles 1 bytes + -- 1 opcode fetch + -- 2 post byte fetch / instruction decode + -- Note that there is no post byte + -- so do not advance PC in decode cycle + -- Re-run opcode fetch cycle after decode + -- + when "0101" => + left_ctrl <= accb_left; + case op_code(3 downto 0) is + when "0000" => -- neg + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0011" => -- com + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0100" => -- lsr + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0110" => -- ror + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "0111" => -- asr + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1000" => -- asl + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1001" => -- rol + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1010" => -- dec + right_ctrl <= one_right; + alu_ctrl <= alu_dec; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1011" => -- undefined + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1100" => -- inc + right_ctrl <= one_right; + alu_ctrl <= alu_inc; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when "1101" => -- tst + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + accb_ctrl <= latch_accb; + cc_ctrl <= load_cc; + when "1110" => -- jmp (undefined) + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + when "1111" => -- clr + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + accb_ctrl <= load_accb; + cc_ctrl <= load_cc; + when others => + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + accb_ctrl <= latch_accb; + cc_ctrl <= latch_cc; + end case; + next_state <= fetch_state; + -- + -- Single operand indexed + -- Two byte instruction so advance PC + -- EA should hold index offset + -- + when "0110" => -- indexed single op + -- increment the pc + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + case op_code(3 downto 0) is + when "1110" => -- jmp + return_state <= jmp_state; + when "1111" => -- clr + return_state <= single_op_exec_state; + when others => + return_state <= single_op_read_state; + end case; + next_state <= indexed_state; + -- + -- Single operand extended addressing + -- three byte instruction so advance the PC + -- Low order EA holds high order address + -- + when "0111" => -- extended single op + -- increment PC + pc_ctrl <= incr_pc; + st_ctrl <= push_st; + case op_code(3 downto 0) is + when "1110" => -- jmp + return_state <= jmp_state; + when "1111" => -- clr + return_state <= single_op_exec_state; + when others => + return_state <= single_op_read_state; + end case; + next_state <= extended_state; + + when "1000" => -- acca immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd # + "1100" | -- cmpx # + "1110" => -- ldx # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + -- + -- bsr offset - Branch to subroutine (2 bytes) + -- 6809 => 7 cycles + -- cpu09 => 5 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 md_hi=sign(pc) / md_lo=(pc) / sp=sp-1 / pc=pc+1 + -- 3 (sp)=pc_lo / sp=sp-1 + -- 4 (sp)=pc_hi + -- 5 pc=pc+md + -- + when "1101" => -- bsr + -- pre decrement SP + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- + st_ctrl <= push_st; + return_state <= sbranch_state; + next_state <= push_return_lo_state; + + when others => + next_state <= fetch_state; + end case; + + when "1001" => -- acca direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd + "1100" | -- cmpx + "1110" => -- ldx + next_state <= dual_op_read16_state; + + when "0111" => -- sta direct + next_state <= dual_op_write8_state; + + when "1111" => -- stx direct + -- idle ALU + left_ctrl <= ix_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_nop; + cc_ctrl <= latch_cc; + sp_ctrl <= latch_sp; + next_state <= dual_op_write16_state; + + -- + -- jsr direct - Jump to subroutine in direct page (2 bytes) + -- 6809 => 7 cycles + -- cpu09 => 5 cycles + -- 1 op=(pc) / pc=pc+1 + -- 2 ea_hi=0 / ea_lo=(pc) / sp=sp-1 / pc=pc+1 + -- 3 (sp)=pc_lo / sp=sp-1 + -- 4 (sp)=pc_hi + -- 5 pc=ea + -- + when "1101" => -- jsr direct + -- pre decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- + st_ctrl <= push_st; + return_state <= jmp_state; + next_state <= push_return_lo_state; + + when others => + next_state <= dual_op_read8_state; + end case; + + when "1010" => -- acca indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd + "1100" | -- cmpx + "1110" => -- ldx + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "0111" => -- staa ,x + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= indexed_state; + + when "1111" => -- stx ,x + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when "1101" => -- jsr ,x + -- DO NOT pre decrement SP + st_ctrl <= push_st; + return_state <= jsr_state; + next_state <= indexed_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= indexed_state; + end case; + + when "1011" => -- acca extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- subd + "1100" | -- cmpx + "1110" => -- ldx + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "0111" => -- staa > + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= extended_state; + + when "1111" => -- stx > + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when "1101" => -- jsr >extended + -- DO NOT pre decrement sp + st_ctrl <= push_st; + return_state <= jsr_state; + next_state <= extended_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= extended_state; + end case; + + when "1100" => -- accb immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd # + "1100" | -- ldd # + "1110" => -- ldu # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + when others => + next_state <= fetch_state; + + end case; + + + when "1101" => -- accb direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldu + next_state <= dual_op_read16_state; + + when "0111" => -- stab direct + next_state <= dual_op_write8_state; + + when "1101" => -- std direct + next_state <= dual_op_write16_state; + + when "1111" => -- stu direct + next_state <= dual_op_write16_state; + + when others => + next_state <= dual_op_read8_state; + end case; + + when "1110" => -- accb indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldu + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "0111" => -- stab indexed + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= indexed_state; + + when "1101" => -- std indexed + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when "1111" => -- stu indexed + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= indexed_state; + end case; + + when "1111" => -- accb extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- addd + "1100" | -- ldd + "1110" => -- ldu + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "0111" => -- stab extended + st_ctrl <= push_st; + return_state <= dual_op_write8_state; + next_state <= extended_state; + + when "1101" => -- std extended + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when "1111" => -- stu extended + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when others => + st_ctrl <= push_st; + return_state <= dual_op_read8_state; + next_state <= extended_state; + end case; + + when others => + null; + end case; + + -- + -- Here to decode prefix 2 instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode2_state => + -- fetch first byte of address or immediate data + ea_ctrl <= fetch_first_ea; + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + case op_code(7 downto 4) is + -- + -- lbcc -- long branch conditional + -- 6809 => branch 6 cycles, no branch 5 cycles + -- cpu09 => always 5 cycles + -- 1 pre=(pc) / pc=pc+1 + -- 2 op=(pc) / pc=pc+1 + -- 3 md_hi=sign(pc) / md_lo=(pc) / pc=pc+1 + -- 4 md_hi=md_lo / md_lo=(pc) / pc=pc+1 + -- 5 if cond pc=pc+md else pc=pc + -- + when "0010" => + -- increment the pc + pc_ctrl <= incr_pc; + next_state <= lbranch_state; + + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + case op_code(3 downto 0) is + when "1111" => -- swi 2 + -- predecrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= swi2_iv; + next_state <= int_entire_state; + + when others => + next_state <= fetch_state; + end case; + + when "1000" => -- acca immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd # + "1100" | -- cmpy # + "1110" => -- ldy # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1001" => -- acca direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd < + "1100" | -- cmpy < + "1110" => -- ldy < + next_state <= dual_op_read16_state; + + when "1111" => -- sty < + next_state <= dual_op_write16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1010" => -- acca indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd ,ind + "1100" | -- cmpy ,ind + "1110" => -- ldy ,ind + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "1111" => -- sty ,ind + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when others => + next_state <= fetch_state; + end case; + + when "1011" => -- acca extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpd < + "1100" | -- cmpy < + "1110" => -- ldy < + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "1111" => -- sty > + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1100" => -- accb immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef # + "1100" | -- undef # + "1110" => -- lds # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1101" => -- accb direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef < + "1100" | -- undef < + "1110" => -- lds < + next_state <= dual_op_read16_state; + + when "1111" => -- sts < + next_state <= dual_op_write16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1110" => -- accb indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef ,ind + "1100" | -- undef ,ind + "1110" => -- lds ,ind + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when "1111" => -- sts ,ind + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= indexed_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1111" => -- accb extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- undef > + "1100" | -- undef > + "1110" => -- lds > + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + + when "1111" => -- sts > + st_ctrl <= push_st; + return_state <= dual_op_write16_state; + next_state <= extended_state; + + when others => + next_state <= fetch_state; + end case; + + when others => + next_state <= fetch_state; + end case; + -- + -- Here to decode instruction + -- and fetch next byte of intruction + -- whether it be necessary or not + -- + when decode3_state => + ea_ctrl <= fetch_first_ea; + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + dout_ctrl <= md_lo_dout; + case op_code(7 downto 4) is + -- + -- Single byte stack operators + -- Do not advance PC + -- + when "0011" => + case op_code(3 downto 0) is + when "1111" => -- swi3 + -- predecrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + iv_ctrl <= swi3_iv; + next_state <= int_entire_state; + when others => + next_state <= fetch_state; + end case; + + when "1000" => -- acca immediate + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu # + "1100" | -- cmps # + "1110" => -- undef # + st_ctrl <= push_st; + return_state <= fetch_state; + next_state <= imm16_state; + when others => + next_state <= fetch_state; + end case; + + when "1001" => -- acca direct + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu < + "1100" | -- cmps < + "1110" => -- undef < + st_ctrl <= idle_st; + return_state <= fetch_state; + next_state <= dual_op_read16_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1010" => -- acca indexed + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu ,X + "1100" | -- cmps ,X + "1110" => -- undef ,X + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= indexed_state; + + when others => + next_state <= fetch_state; + + end case; + + when "1011" => -- acca extended + -- increment the pc + pc_ctrl <= incr_pc; + case op_code(3 downto 0) is + when "0011" | -- cmpu > + "1100" | -- cmps > + "1110" => -- undef > + st_ctrl <= push_st; + return_state <= dual_op_read16_state; + next_state <= extended_state; + when others => + next_state <= fetch_state; + end case; + + when others => + next_state <= fetch_state; + end case; + + -- + -- here if ea holds low byte + -- Direct + -- Extended + -- Indexed + -- read memory location + -- + when single_op_read_state => + -- read memory into md + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + next_state <= single_op_exec_state; + + when single_op_exec_state => + case op_code(3 downto 0) is + when "0000" => -- neg + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_neg; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0011" => -- com + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_com; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0100" => -- lsr + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_lsr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0110" => -- ror + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ror8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "0111" => -- asr + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_asr8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1000" => -- asl + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_asl8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1001" => -- rol + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_rol8; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1010" => -- dec + left_ctrl <= md_left; + right_ctrl <= one_right; + alu_ctrl <= alu_dec; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1011" => -- undefined + next_state <= fetch_state; + when "1100" => -- inc + left_ctrl <= md_left; + right_ctrl <= one_right; + alu_ctrl <= alu_inc; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when "1101" => -- tst + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st8; + cc_ctrl <= load_cc; + next_state <= fetch_state; + when "1110" => -- jmp + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ld16; + pc_ctrl <= load_pc; + next_state <= fetch_state; + when "1111" => -- clr + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_clr; + cc_ctrl <= load_cc; + md_ctrl <= load_md; + next_state <= single_op_write_state; + when others => + next_state <= fetch_state; + end case; + -- + -- single operand 8 bit write + -- Write low 8 bits of ALU output + -- EA holds address + -- MD holds data + -- + when single_op_write_state => + -- write ALU low byte output + addr_ctrl <= write_ad; + dout_ctrl <= md_lo_dout; + next_state <= fetch_state; + + -- + -- here if ea holds address of low byte + -- read memory location + -- + when dual_op_read8_state => + -- read first data byte from ea + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + next_state <= fetch_state; + + -- + -- Here to read a 16 bit value into MD + -- pointed to by the EA register + -- The first byte is read + -- and the EA is incremented + -- + when dual_op_read16_state => + -- increment the effective address + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- read the high byte of the 16 bit data + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + next_state <= dual_op_read16_2_state; + + -- + -- here to read the second byte + -- pointed to by EA into MD + -- + when dual_op_read16_2_state => + -- read the low byte of the 16 bit data + md_ctrl <= fetch_next_md; + addr_ctrl <= read_ad; + next_state <= fetch_state; + + -- + -- 16 bit Write state + -- EA hold address of memory to write to + -- Advance the effective address in ALU + -- decode op_code to determine which + -- register to write + -- + when dual_op_write16_state => + -- increment the effective address + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- write the ALU hi byte at ea + addr_ctrl <= write_ad; + if op_code(6) = '0' then + case op_code(3 downto 0) is + when "1111" => -- stx / sty + case pre_code is + when "00010000" => -- page 2 -- sty + dout_ctrl <= iy_hi_dout; + when others => -- page 1 -- stx + dout_ctrl <= ix_hi_dout; + end case; + when others => + dout_ctrl <= md_hi_dout; + end case; + else + case op_code(3 downto 0) is + when "1101" => -- std + dout_ctrl <= acca_dout; -- acca is high byte of ACCD + when "1111" => -- stu / sts + case pre_code is + when "00010000" => -- page 2 -- sts + dout_ctrl <= sp_hi_dout; + when others => -- page 1 -- stu + dout_ctrl <= up_hi_dout; + end case; + when others => + dout_ctrl <= md_hi_dout; + end case; + end if; + next_state <= dual_op_write8_state; + + -- + -- Dual operand 8 bit write + -- Write 8 bit accumulator + -- or low byte of 16 bit register + -- EA holds address + -- decode opcode to determine + -- which register to apply to the bus + -- Also set the condition codes here + -- + when dual_op_write8_state => + if op_code(6) = '0' then + case op_code(3 downto 0) is + when "0111" => -- sta + dout_ctrl <= acca_dout; + when "1111" => -- stx / sty + case pre_code is + when "00010000" => -- page 2 -- sty + dout_ctrl <= iy_lo_dout; + when others => -- page 1 -- stx + dout_ctrl <= ix_lo_dout; + end case; + when others => + dout_ctrl <= md_lo_dout; + end case; + else + case op_code(3 downto 0) is + when "0111" => -- stb + dout_ctrl <= accb_dout; + when "1101" => -- std + dout_ctrl <= accb_dout; -- accb is low byte of accd + when "1111" => -- stu / sts + case pre_code is + when "00010000" => -- page 2 -- sts + dout_ctrl <= sp_lo_dout; + when others => -- page 1 -- stu + dout_ctrl <= up_lo_dout; + end case; + when others => + dout_ctrl <= md_lo_dout; + end case; + end if; + -- write ALU low byte output + addr_ctrl <= write_ad; + next_state <= fetch_state; + + -- + -- 16 bit immediate addressing mode + -- + when imm16_state => + -- increment pc + pc_ctrl <= incr_pc; + -- fetch next immediate byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + st_ctrl <= pull_st; + next_state <= saved_state; + + -- + -- md & ea holds 8 bit index offset + -- calculate the effective memory address + -- using the alu + -- + when indexed_state => + -- + -- decode indexing mode + -- + if md(7) = '0' then + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= md_sign5_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + st_ctrl <= pull_st; + next_state <= saved_state; + + else + case md(3 downto 0) is + when "0000" => -- ,R+ + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + left_ctrl <= sp_left; + end case; + -- + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + next_state <= postincr1_state; + + when "0001" => -- ,R++ + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + next_state <= postincr2_state; + + when "0010" => -- ,-R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + ix_ctrl <= load_ix; + when "01" => + left_ctrl <= iy_left; + iy_ctrl <= load_iy; + when "10" => + left_ctrl <= up_left; + up_ctrl <= load_up; + when others => + -- when "11" => + left_ctrl <= sp_left; + sp_ctrl <= load_sp; + end case; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + ea_ctrl <= load_ea; + st_ctrl <= pull_st; + next_state <= saved_state; + + when "0011" => -- ,--R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + ix_ctrl <= load_ix; + when "01" => + left_ctrl <= iy_left; + iy_ctrl <= load_iy; + when "10" => + left_ctrl <= up_left; + up_ctrl <= load_up; + when others => + -- when "11" => + left_ctrl <= sp_left; + sp_ctrl <= load_sp; + end case; + right_ctrl <= two_right; + alu_ctrl <= alu_sub16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0100" => -- ,R (zero offset) + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0101" => -- ACCB,R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= accb_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0110" => -- ACCA,R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= acca_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "0111" => -- undefined + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "1000" => -- offset8,R + md_ctrl <= fetch_first_md; -- pick up 8 bit offset + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= index8_state; + + when "1001" => -- offset16,R + md_ctrl <= fetch_first_md; -- pick up first byte of 16 bit offset + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= index16_state; + + when "1010" => -- undefined + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "1011" => -- ACCD,R + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= accd_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when "1100" => -- offset8,PC + -- fetch 8 bit offset + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= pcrel8_state; + + when "1101" => -- offset16,PC + -- fetch offset + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= pcrel16_state; + + when "1110" => -- undefined + case md(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + when others => +-- when "1111" => -- [,address] + -- advance PC to pick up address + md_ctrl <= fetch_first_md; + addr_ctrl <= fetch_ad; + pc_ctrl <= incr_pc; + next_state <= indexaddr_state; + end case; + end if; + + -- load index register with ea plus one + when postincr1_state => + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + case md(6 downto 5) is + when "00" => + ix_ctrl <= load_ix; + when "01" => + iy_ctrl <= load_iy; + when "10" => + up_ctrl <= load_up; + when others => + -- when "11" => + sp_ctrl <= load_sp; + end case; + -- return to previous state + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- load index register with ea plus two + when postincr2_state => + -- increment register by two (address) + left_ctrl <= ea_left; + right_ctrl <= two_right; + alu_ctrl <= alu_add16; + case md(6 downto 5) is + when "00" => + ix_ctrl <= load_ix; + when "01" => + iy_ctrl <= load_iy; + when "10" => + up_ctrl <= load_up; + when others => + -- when "11" => + sp_ctrl <= load_sp; + end case; + -- return to previous state + if md(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + -- + -- ea = index register + md (8 bit signed offset) + -- ea holds post byte + -- + when index8_state => + case ea(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + -- ea = index reg + md + right_ctrl <= md_sign8_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- fetch low byte of 16 bit indexed offset + when index16_state => + -- advance pc + pc_ctrl <= incr_pc; + -- fetch low byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + next_state <= index16_2_state; + + -- ea = index register + md (16 bit offset) + -- ea holds post byte + when index16_2_state => + case ea(6 downto 5) is + when "00" => + left_ctrl <= ix_left; + when "01" => + left_ctrl <= iy_left; + when "10" => + left_ctrl <= up_left; + when others => + -- when "11" => + left_ctrl <= sp_left; + end case; + -- ea = index reg + md + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + -- + -- pc relative with 8 bit signed offest + -- md holds signed offset + -- + when pcrel8_state => + -- ea = pc + signed md + left_ctrl <= pc_left; + right_ctrl <= md_sign8_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- pc relative addressing with 16 bit offset + -- pick up the low byte of the offset in md + -- advance the pc + when pcrel16_state => + -- advance pc + pc_ctrl <= incr_pc; + -- fetch low byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + next_state <= pcrel16_2_state; + + -- pc relative with16 bit signed offest + -- md holds signed offset + when pcrel16_2_state => + -- ea = pc + md + left_ctrl <= pc_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- indexed to address + -- pick up the low byte of the address + -- advance the pc + when indexaddr_state => + -- advance pc + pc_ctrl <= incr_pc; + -- fetch low byte + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + next_state <= indexaddr2_state; + + -- indexed to absolute address + -- md holds address + -- ea hold indexing mode byte + when indexaddr2_state => + -- ea = md + left_ctrl <= pc_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + ea_ctrl <= load_ea; + -- return to previous state + if ea(4) = '0' then + st_ctrl <= pull_st; + next_state <= saved_state; + else + next_state <= indirect_state; + end if; + + -- + -- load md with high byte of indirect address + -- pointed to by ea + -- increment ea + -- + when indirect_state => + -- increment ea + left_ctrl <= ea_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + ea_ctrl <= load_ea; + -- fetch high byte + md_ctrl <= fetch_first_md; + addr_ctrl <= read_ad; + next_state <= indirect2_state; + -- + -- load md with low byte of indirect address + -- pointed to by ea + -- ea has previously been incremented + -- + when indirect2_state => + -- fetch high byte + md_ctrl <= fetch_next_md; + addr_ctrl <= read_ad; + dout_ctrl <= md_lo_dout; + next_state <= indirect3_state; + -- + -- complete idirect addressing + -- by loading ea with md + -- + when indirect3_state => + -- load ea with md + left_ctrl <= ea_left; + right_ctrl <= md_right; + alu_ctrl <= alu_ld16; + ea_ctrl <= load_ea; + -- return to previous state + st_ctrl <= pull_st; + next_state <= saved_state; + + -- + -- ea holds the low byte of the absolute address + -- Move ea low byte into ea high byte + -- load new ea low byte to for absolute 16 bit address + -- advance the program counter + -- + when extended_state => -- fetch ea low byte + -- increment pc + pc_ctrl <= incr_pc; + -- fetch next effective address bytes + ea_ctrl <= fetch_next_ea; + addr_ctrl <= fetch_ad; + -- return to previous state + st_ctrl <= pull_st; + next_state <= saved_state; + + when lea_state => -- here on load effective address + -- load index register with effective address + left_ctrl <= pc_left; + right_ctrl <= ea_right; + alu_ctrl <= alu_lea; + case op_code(3 downto 0) is + when "0000" => -- leax + cc_ctrl <= load_cc; + ix_ctrl <= load_ix; + when "0001" => -- leay + cc_ctrl <= load_cc; + iy_ctrl <= load_iy; + when "0010" => -- leas + sp_ctrl <= load_sp; + when "0011" => -- leau + up_ctrl <= load_up; + when others => + null; + end case; + next_state <= fetch_state; + + -- + -- jump to subroutine + -- sp=sp-1 + -- call push_return_lo_state to save pc + -- return to jmp_state + -- + when jsr_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- call push_return_state + st_ctrl <= push_st; + return_state <= jmp_state; + next_state <= push_return_lo_state; + + -- + -- Load pc with ea + -- (JMP) + -- + when jmp_state => + -- load PC with effective address + left_ctrl <= pc_left; + right_ctrl <= ea_right; + alu_ctrl <= alu_ld16; + pc_ctrl <= load_pc; + next_state <= fetch_state; + + -- + -- long branch or branch to subroutine + -- pick up next md byte + -- md_hi = md_lo + -- md_lo = (pc) + -- pc=pc+1 + -- if a lbsr push return address + -- continue to sbranch_state + -- to evaluate conditional branches + -- + when lbranch_state => + pc_ctrl <= incr_pc; + -- fetch the next byte into md_lo + md_ctrl <= fetch_next_md; + addr_ctrl <= fetch_ad; + -- if lbsr - push return address + -- then continue on to short branch + if op_code = "00010111" then + st_ctrl <= push_st; + return_state <= sbranch_state; + next_state <= push_return_lo_state; + else + next_state <= sbranch_state; + end if; + + -- + -- here to execute conditional branch + -- short conditional branch md = signed 8 bit offset + -- long branch md = 16 bit offset + -- + when sbranch_state => + left_ctrl <= pc_left; + right_ctrl <= md_right; + alu_ctrl <= alu_add16; + -- Test condition for branch + if op_code(7 downto 4) = "0010" then -- conditional branch + case op_code(3 downto 0) is + when "0000" => -- bra + cond_true := (1 = 1); + when "0001" => -- brn + cond_true := (1 = 0); + when "0010" => -- bhi + cond_true := ((cc(CBIT) or cc(ZBIT)) = '0'); + when "0011" => -- bls + cond_true := ((cc(CBIT) or cc(ZBIT)) = '1'); + when "0100" => -- bcc/bhs + cond_true := (cc(CBIT) = '0'); + when "0101" => -- bcs/blo + cond_true := (cc(CBIT) = '1'); + when "0110" => -- bne + cond_true := (cc(ZBIT) = '0'); + when "0111" => -- beq + cond_true := (cc(ZBIT) = '1'); + when "1000" => -- bvc + cond_true := (cc(VBIT) = '0'); + when "1001" => -- bvs + cond_true := (cc(VBIT) = '1'); + when "1010" => -- bpl + cond_true := (cc(NBIT) = '0'); + when "1011" => -- bmi + cond_true := (cc(NBIT) = '1'); + when "1100" => -- bge + cond_true := ((cc(NBIT) xor cc(VBIT)) = '0'); + when "1101" => -- blt + cond_true := ((cc(NBIT) xor cc(VBIT)) = '1'); + when "1110" => -- bgt + cond_true := ((cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '0'); + when "1111" => -- ble + cond_true := ((cc(ZBIT) or (cc(NBIT) xor cc(VBIT))) = '1'); + when others => + null; + end case; + else + cond_true := (1 = 1); -- lbra, lbsr, bsr + end if; + if cond_true then + pc_ctrl <= load_pc; + end if; + next_state <= fetch_state; + + -- + -- push return address onto the S stack + -- + -- (sp) = pc_lo + -- sp = sp - 1 + -- + when push_return_lo_state => + -- decrement the sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write PC low + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_lo_dout; + next_state <= push_return_hi_state; + + -- + -- push program counter hi byte onto the stack + -- (sp) = pc_hi + -- sp = sp + -- return to originating state + -- + when push_return_hi_state => + -- write pc hi bytes + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_hi_dout; + st_ctrl <= pull_st; + next_state <= saved_state; + + when pull_return_hi_state => + -- increment the sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pulls_ad; + next_state <= pull_return_lo_state; + + when pull_return_lo_state => + -- increment the SP + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pulls_ad; + dout_ctrl <= pc_lo_dout; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when andcc_state => + -- AND CC with md + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_andcc; + cc_ctrl <= load_cc; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when orcc_state => + -- OR CC with md + left_ctrl <= md_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_orcc; + cc_ctrl <= load_cc; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when tfr_state => + -- select source register + case md(7 downto 4) is + when "0000" => + left_ctrl <= accd_left; + when "0001" => + left_ctrl <= ix_left; + when "0010" => + left_ctrl <= iy_left; + when "0011" => + left_ctrl <= up_left; + when "0100" => + left_ctrl <= sp_left; + when "0101" => + left_ctrl <= pc_left; + when "1000" => + left_ctrl <= acca_left; + when "1001" => + left_ctrl <= accb_left; + when "1010" => + left_ctrl <= cc_left; + when "1011" => + left_ctrl <= dp_left; + when others => + left_ctrl <= md_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_tfr; + -- select destination register + case md(3 downto 0) is + when "0000" => -- accd + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "0001" => -- ix + ix_ctrl <= load_ix; + when "0010" => -- iy + iy_ctrl <= load_iy; + when "0011" => -- up + up_ctrl <= load_up; + when "0100" => -- sp + sp_ctrl <= load_sp; + when "0101" => -- pc + pc_ctrl <= load_pc; + when "1000" => -- acca + acca_ctrl <= load_acca; + when "1001" => -- accb + accb_ctrl <= load_accb; + when "1010" => -- cc + cc_ctrl <= load_cc; + when "1011" => --dp + dp_ctrl <= load_dp; + when others => + null; + end case; + -- + st_ctrl <= pull_st; + next_state <= saved_state; + + when exg_state => + -- save destination register + case md(3 downto 0) is + when "0000" => + left_ctrl <= accd_left; + when "0001" => + left_ctrl <= ix_left; + when "0010" => + left_ctrl <= iy_left; + when "0011" => + left_ctrl <= up_left; + when "0100" => + left_ctrl <= sp_left; + when "0101" => + left_ctrl <= pc_left; + when "1000" => + left_ctrl <= acca_left; + when "1001" => + left_ctrl <= accb_left; + when "1010" => + left_ctrl <= cc_left; + when "1011" => + left_ctrl <= dp_left; + when others => + left_ctrl <= md_left; + end case; + right_ctrl <= zero_right; + alu_ctrl <= alu_tfr; + ea_ctrl <= load_ea; + -- call tranfer microcode + st_ctrl <= push_st; + return_state <= exg1_state; + next_state <= tfr_state; + + when exg1_state => + -- restore destination + left_ctrl <= ea_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_tfr; + -- save as source register + case md(7 downto 4) is + when "0000" => -- accd + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + when "0001" => -- ix + ix_ctrl <= load_ix; + when "0010" => -- iy + iy_ctrl <= load_iy; + when "0011" => -- up + up_ctrl <= load_up; + when "0100" => -- sp + sp_ctrl <= load_sp; + when "0101" => -- pc + pc_ctrl <= load_pc; + when "1000" => -- acca + acca_ctrl <= load_acca; + when "1001" => -- accb + accb_ctrl <= load_accb; + when "1010" => -- cc + cc_ctrl <= load_cc; + when "1011" => --dp + dp_ctrl <= load_dp; + when others => + null; + end case; + next_state <= fetch_state; + + when mul_state => + -- move acca to md + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + md_ctrl <= load_md; + next_state <= mulea_state; + + when mulea_state => + -- move accb to ea + left_ctrl <= accb_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_st16; + ea_ctrl <= load_ea; + next_state <= muld_state; + + when muld_state => + -- clear accd + left_ctrl <= acca_left; + right_ctrl <= zero_right; + alu_ctrl <= alu_ld8; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + next_state <= mul0_state; + + when mul0_state => + -- if bit 0 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(0) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul1_state; + + when mul1_state => + -- if bit 1 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(1) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul2_state; + + when mul2_state => + -- if bit 2 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(2) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul3_state; + + when mul3_state => + -- if bit 3 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(3) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul4_state; + + when mul4_state => + -- if bit 4 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(4) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul5_state; + + when mul5_state => + -- if bit 5 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(5) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul6_state; + + when mul6_state => + -- if bit 6 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(6) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= mul7_state; + + when mul7_state => + -- if bit 7 of ea set, add accd to md + left_ctrl <= accd_left; + if ea(7) = '1' then + right_ctrl <= md_right; + else + right_ctrl <= zero_right; + end if; + alu_ctrl <= alu_mul; + cc_ctrl <= load_cc; + acca_ctrl <= load_hi_acca; + accb_ctrl <= load_accb; + md_ctrl <= shiftl_md; + next_state <= fetch_state; + + -- + -- Enter here on pushs + -- ea holds post byte + -- + when pshs_state => + -- decrement sp if any registers to be pushed + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + -- idle address + addr_ctrl <= idle_ad; + dout_ctrl <= cc_dout; + if ea(7 downto 0) = "00000000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + if ea(7) = '1' then + next_state <= pshs_pcl_state; + elsif ea(6) = '1' then + next_state <= pshs_upl_state; + elsif ea(5) = '1' then + next_state <= pshs_iyl_state; + elsif ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_pcl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_lo_dout; + next_state <= pshs_pch_state; + + when pshs_pch_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(6 downto 0) = "0000000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write pc hi + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_hi_dout; + if ea(6) = '1' then + next_state <= pshs_upl_state; + elsif ea(5) = '1' then + next_state <= pshs_iyl_state; + elsif ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + + when pshs_upl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= pushs_ad; + dout_ctrl <= up_lo_dout; + next_state <= pshs_uph_state; + + when pshs_uph_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(5 downto 0) = "000000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write pc hi + addr_ctrl <= pushs_ad; + dout_ctrl <= up_hi_dout; + if ea(5) = '1' then + next_state <= pshs_iyl_state; + elsif ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_iyl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write iy low + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_lo_dout; + next_state <= pshs_iyh_state; + + when pshs_iyh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(4 downto 0) = "00000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write iy hi + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_hi_dout; + if ea(4) = '1' then + next_state <= pshs_ixl_state; + elsif ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_ixl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_lo_dout; + next_state <= pshs_ixh_state; + + when pshs_ixh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(3 downto 0) = "0000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_hi_dout; + if ea(3) = '1' then + next_state <= pshs_dp_state; + elsif ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_dp_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(2 downto 0) = "000" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write dp + addr_ctrl <= pushs_ad; + dout_ctrl <= dp_dout; + if ea(2) = '1' then + next_state <= pshs_accb_state; + elsif ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_accb_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(1 downto 0) = "00" then + sp_ctrl <= latch_sp; + else + sp_ctrl <= load_sp; + end if; + -- write accb + addr_ctrl <= pushs_ad; + dout_ctrl <= accb_dout; + if ea(1) = '1' then + next_state <= pshs_acca_state; + elsif ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_acca_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(0) = '1' then + sp_ctrl <= load_sp; + else + sp_ctrl <= latch_sp; + end if; + -- write acca + addr_ctrl <= pushs_ad; + dout_ctrl <= acca_dout; + if ea(0) = '1' then + next_state <= pshs_cc_state; + else + next_state <= fetch_state; + end if; + + when pshs_cc_state => + -- idle sp + -- write cc + addr_ctrl <= pushs_ad; + dout_ctrl <= cc_dout; + next_state <= fetch_state; + + -- + -- enter here on PULS + -- ea hold register mask + -- + when puls_state => + if ea(0) = '1' then + next_state <= puls_cc_state; + elsif ea(1) = '1' then + next_state <= puls_acca_state; + elsif ea(2) = '1' then + next_state <= puls_accb_state; + elsif ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_cc_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pulls_ad; + if ea(1) = '1' then + next_state <= puls_acca_state; + elsif ea(2) = '1' then + next_state <= puls_accb_state; + elsif ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_acca_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pulls_ad; + if ea(2) = '1' then + next_state <= puls_accb_state; + elsif ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_accb_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pulls_ad; + if ea(3) = '1' then + next_state <= puls_dp_state; + elsif ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_dp_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read dp + dp_ctrl <= pull_dp; + addr_ctrl <= pulls_ad; + if ea(4) = '1' then + next_state <= puls_ixh_state; + elsif ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_ixh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pulls_ad; + next_state <= puls_ixl_state; + + when puls_ixl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pulls_ad; + if ea(5) = '1' then + next_state <= puls_iyh_state; + elsif ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_iyh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull iy hi + iy_ctrl <= pull_hi_iy; + addr_ctrl <= pulls_ad; + next_state <= puls_iyl_state; + + when puls_iyl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read iy low + iy_ctrl <= pull_lo_iy; + addr_ctrl <= pulls_ad; + if ea(6) = '1' then + next_state <= puls_uph_state; + elsif ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_uph_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull up hi + up_ctrl <= pull_hi_up; + addr_ctrl <= pulls_ad; + next_state <= puls_upl_state; + + when puls_upl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read up low + up_ctrl <= pull_lo_up; + addr_ctrl <= pulls_ad; + if ea(7) = '1' then + next_state <= puls_pch_state; + else + next_state <= fetch_state; + end if; + + when puls_pch_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pulls_ad; + next_state <= puls_pcl_state; + + when puls_pcl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pulls_ad; + next_state <= fetch_state; + + -- + -- Enter here on pshu + -- ea holds post byte + -- + when pshu_state => + -- decrement up if any registers to be pushed + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(7 downto 0) = "00000000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write idle bus + if ea(7) = '1' then + next_state <= pshu_pcl_state; + elsif ea(6) = '1' then + next_state <= pshu_spl_state; + elsif ea(5) = '1' then + next_state <= pshu_iyl_state; + elsif ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + -- + -- push PC onto U stack + -- + when pshu_pcl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write pc low + addr_ctrl <= pushu_ad; + dout_ctrl <= pc_lo_dout; + next_state <= pshu_pch_state; + + when pshu_pch_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(6 downto 0) = "0000000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write pc hi + addr_ctrl <= pushu_ad; + dout_ctrl <= pc_hi_dout; + if ea(6) = '1' then + next_state <= pshu_spl_state; + elsif ea(5) = '1' then + next_state <= pshu_iyl_state; + elsif ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_spl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write sp low + addr_ctrl <= pushu_ad; + dout_ctrl <= sp_lo_dout; + next_state <= pshu_sph_state; + + when pshu_sph_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(5 downto 0) = "000000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write sp hi + addr_ctrl <= pushu_ad; + dout_ctrl <= sp_hi_dout; + if ea(5) = '1' then + next_state <= pshu_iyl_state; + elsif ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_iyl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write iy low + addr_ctrl <= pushu_ad; + dout_ctrl <= iy_lo_dout; + next_state <= pshu_iyh_state; + + when pshu_iyh_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(4 downto 0) = "00000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write iy hi + addr_ctrl <= pushu_ad; + dout_ctrl <= iy_hi_dout; + if ea(4) = '1' then + next_state <= pshu_ixl_state; + elsif ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_ixl_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + up_ctrl <= load_up; + -- write ix low + addr_ctrl <= pushu_ad; + dout_ctrl <= ix_lo_dout; + next_state <= pshu_ixh_state; + + when pshu_ixh_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(3 downto 0) = "0000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write ix hi + addr_ctrl <= pushu_ad; + dout_ctrl <= ix_hi_dout; + if ea(3) = '1' then + next_state <= pshu_dp_state; + elsif ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_dp_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(2 downto 0) = "000" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write dp + addr_ctrl <= pushu_ad; + dout_ctrl <= dp_dout; + if ea(2) = '1' then + next_state <= pshu_accb_state; + elsif ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_accb_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(1 downto 0) = "00" then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write accb + addr_ctrl <= pushu_ad; + dout_ctrl <= accb_dout; + if ea(1) = '1' then + next_state <= pshu_acca_state; + elsif ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_acca_state => + -- decrement up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + if ea(0) = '0' then + up_ctrl <= latch_up; + else + up_ctrl <= load_up; + end if; + -- write acca + addr_ctrl <= pushu_ad; + dout_ctrl <= acca_dout; + if ea(0) = '1' then + next_state <= pshu_cc_state; + else + next_state <= fetch_state; + end if; + + when pshu_cc_state => + -- idle up + -- write cc + addr_ctrl <= pushu_ad; + dout_ctrl <= cc_dout; + next_state <= fetch_state; + + -- + -- enter here on PULU + -- ea hold register mask + -- + when pulu_state => + -- idle UP + -- idle bus + if ea(0) = '1' then + next_state <= pulu_cc_state; + elsif ea(1) = '1' then + next_state <= pulu_acca_state; + elsif ea(2) = '1' then + next_state <= pulu_accb_state; + elsif ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_cc_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pullu_ad; + if ea(1) = '1' then + next_state <= pulu_acca_state; + elsif ea(2) = '1' then + next_state <= pulu_accb_state; + elsif ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_acca_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pullu_ad; + if ea(2) = '1' then + next_state <= pulu_accb_state; + elsif ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_accb_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pullu_ad; + if ea(3) = '1' then + next_state <= pulu_dp_state; + elsif ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_dp_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read dp + dp_ctrl <= pull_dp; + addr_ctrl <= pullu_ad; + if ea(4) = '1' then + next_state <= pulu_ixh_state; + elsif ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_ixh_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pullu_ad; + next_state <= pulu_ixl_state; + + when pulu_ixl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pullu_ad; + if ea(5) = '1' then + next_state <= pulu_iyh_state; + elsif ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_iyh_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read iy hi + iy_ctrl <= pull_hi_iy; + addr_ctrl <= pullu_ad; + next_state <= pulu_iyl_state; + + when pulu_iyl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read iy low + iy_ctrl <= pull_lo_iy; + addr_ctrl <= pullu_ad; + if ea(6) = '1' then + next_state <= pulu_sph_state; + elsif ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_sph_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read sp hi + sp_ctrl <= pull_hi_sp; + addr_ctrl <= pullu_ad; + next_state <= pulu_spl_state; + + when pulu_spl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read sp low + sp_ctrl <= pull_lo_sp; + addr_ctrl <= pullu_ad; + if ea(7) = '1' then + next_state <= pulu_pch_state; + else + next_state <= fetch_state; + end if; + + when pulu_pch_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pullu_ad; + next_state <= pulu_pcl_state; + + when pulu_pcl_state => + -- increment up + left_ctrl <= up_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + up_ctrl <= load_up; + -- read pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pullu_ad; + next_state <= fetch_state; + + -- + -- pop the Condition codes + -- + when rti_cc_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read cc + cc_ctrl <= pull_cc; + addr_ctrl <= pulls_ad; + next_state <= rti_entire_state; + + -- + -- Added RTI cycle 11th July 2006 John Kent. + -- test the "Entire" Flag + -- that has just been popped off the stack + -- + when rti_entire_state => + -- + -- The Entire flag must be recovered from the stack + -- before testing. + -- + if cc(EBIT) = '1' then + next_state <= rti_acca_state; + else + next_state <= rti_pch_state; + end if; + + when rti_acca_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read acca + acca_ctrl <= pull_acca; + addr_ctrl <= pulls_ad; + next_state <= rti_accb_state; + + when rti_accb_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read accb + accb_ctrl <= pull_accb; + addr_ctrl <= pulls_ad; + next_state <= rti_dp_state; + + when rti_dp_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read dp + dp_ctrl <= pull_dp; + addr_ctrl <= pulls_ad; + next_state <= rti_ixh_state; + + when rti_ixh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read ix hi + ix_ctrl <= pull_hi_ix; + addr_ctrl <= pulls_ad; + next_state <= rti_ixl_state; + + when rti_ixl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read ix low + ix_ctrl <= pull_lo_ix; + addr_ctrl <= pulls_ad; + next_state <= rti_iyh_state; + + when rti_iyh_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read iy hi + iy_ctrl <= pull_hi_iy; + addr_ctrl <= pulls_ad; + next_state <= rti_iyl_state; + + when rti_iyl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read iy low + iy_ctrl <= pull_lo_iy; + addr_ctrl <= pulls_ad; + next_state <= rti_uph_state; + + + when rti_uph_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read up hi + up_ctrl <= pull_hi_up; + addr_ctrl <= pulls_ad; + next_state <= rti_upl_state; + + when rti_upl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- read up low + up_ctrl <= pull_lo_up; + addr_ctrl <= pulls_ad; + next_state <= rti_pch_state; + + when rti_pch_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull pc hi + pc_ctrl <= pull_hi_pc; + addr_ctrl <= pulls_ad; + next_state <= rti_pcl_state; + + when rti_pcl_state => + -- increment sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_add16; + sp_ctrl <= load_sp; + -- pull pc low + pc_ctrl <= pull_lo_pc; + addr_ctrl <= pulls_ad; + next_state <= fetch_state; + + -- + -- here on IRQ or NMI interrupt + -- pre decrement the sp + -- Idle bus cycle + -- + when int_nmiirq_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + next_state <= int_entire_state; + + -- + -- set Entire Flag on SWI, SWI2, SWI3 and CWAI, IRQ and NMI + -- clear Entire Flag on FIRQ + -- before stacking all registers + -- + when int_entire_state => + -- set entire flag + alu_ctrl <= alu_see; + cc_ctrl <= load_cc; + next_state <= int_pcl_state; + + -- + -- here on FIRQ interrupt + -- pre decrement the sp + -- Idle bus cycle + -- + when int_firq_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + next_state <= int_fast_state; + -- + -- clear Entire Flag on FIRQ + -- before stacking all registers + -- + when int_fast_state => + -- clear entire flag + alu_ctrl <= alu_cle; + cc_ctrl <= load_cc; + next_state <= int_pcl_state; + + when int_pcl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc low + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_lo_dout; + next_state <= int_pch_state; + + when int_pch_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write pc hi + addr_ctrl <= pushs_ad; + dout_ctrl <= pc_hi_dout; + if cc(EBIT) = '1' then + next_state <= int_upl_state; + else + next_state <= int_cc_state; + end if; + + when int_upl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write up low + addr_ctrl <= pushs_ad; + dout_ctrl <= up_lo_dout; + next_state <= int_uph_state; + + when int_uph_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= up_hi_dout; + next_state <= int_iyl_state; + + when int_iyl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_lo_dout; + next_state <= int_iyh_state; + + when int_iyh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= iy_hi_dout; + next_state <= int_ixl_state; + + when int_ixl_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix low + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_lo_dout; + next_state <= int_ixh_state; + + when int_ixh_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write ix hi + addr_ctrl <= pushs_ad; + dout_ctrl <= ix_hi_dout; + next_state <= int_dp_state; + + when int_dp_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= pushs_ad; + dout_ctrl <= dp_dout; + next_state <= int_accb_state; + + when int_accb_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write accb + addr_ctrl <= pushs_ad; + dout_ctrl <= accb_dout; + next_state <= int_acca_state; + + when int_acca_state => + -- decrement sp + left_ctrl <= sp_left; + right_ctrl <= one_right; + alu_ctrl <= alu_sub16; + sp_ctrl <= load_sp; + -- write acca + addr_ctrl <= pushs_ad; + dout_ctrl <= acca_dout; + next_state <= int_cc_state; + + when int_cc_state => + -- write cc + addr_ctrl <= pushs_ad; + dout_ctrl <= cc_dout; + case iv is + when NMI_VEC => + next_state <= int_maskif_state; + when SWI_VEC => + next_state <= int_maskif_state; + when FIRQ_VEC => + next_state <= int_maskif_state; + when IRQ_VEC => + next_state <= int_maski_state; + when SWI2_VEC => + next_state <= vect_hi_state; + when SWI3_VEC => + next_state <= vect_hi_state; + when others => + if op_code = "00111100" then -- CWAI + next_state <= int_cwai_state; + else + next_state <= rti_cc_state; -- spurious interrupt, do a RTI + end if; + end case; + + -- + -- wait here for an inteerupt + -- + when int_cwai_state => + if (nmi_req = '1') and (nmi_ack='0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= int_maskif_state; + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if (nmi_req = '0') and (nmi_ack='1') then + nmi_ctrl <= reset_nmi; + end if; + -- + -- FIRQ is level sensitive + -- + if (firq = '1') and (cc(FBIT) = '0') then + iv_ctrl <= firq_iv; + next_state <= int_maskif_state; + -- + -- IRQ is level sensitive + -- + elsif (irq = '1') and (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_maski_state; + else + iv_ctrl <= reset_iv; + next_state <= int_cwai_state; + end if; + end if; + + when int_maski_state => + alu_ctrl <= alu_sei; + cc_ctrl <= load_cc; + next_state <= vect_hi_state; + + when int_maskif_state => + alu_ctrl <= alu_seif; + cc_ctrl <= load_cc; + next_state <= vect_hi_state; + + -- + -- According to the 6809 programming manual: + -- If an interrupt is received and is masked + -- or lasts for less than three cycles, the PC + -- will advance to the next instruction. + -- If an interrupt is unmasked and lasts + -- for more than three cycles, an interrupt + -- will be generated. + -- Note that I don't wait 3 clock cycles. + -- John Kent 11th July 2006 + -- + when sync_state => + if (nmi_req = '1') and (nmi_ack='0') then + iv_ctrl <= nmi_iv; + nmi_ctrl <= set_nmi; + next_state <= int_nmiirq_state; + else + -- + -- nmi request is not cleared until nmi input goes low + -- + if (nmi_req = '0') and (nmi_ack='1') then + iv_ctrl <= reset_iv; + nmi_ctrl <= reset_nmi; + end if; + -- + -- FIRQ is level sensitive + -- + if (firq = '1') then + if (cc(FBIT) = '0') then + iv_ctrl <= firq_iv; + next_state <= int_firq_state; + else + iv_ctrl <= reset_iv; + next_state <= fetch_state; + end if; + -- + -- IRQ is level sensitive + -- + elsif (irq = '1') then + if (cc(IBIT) = '0') then + iv_ctrl <= irq_iv; + next_state <= int_nmiirq_state; + else + iv_ctrl <= reset_iv; + next_state <= fetch_state; + end if; + else + iv_ctrl <= reset_iv; + next_state <= sync_state; + end if; + end if; + + + when halt_state => + if halt = '1' then + next_state <= halt_state; + else + next_state <= fetch_state; + end if; + + when others => -- halt on undefine states + next_state <= error_state; + end case; +end process; + +end rtl; + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dpram.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dpram.vhd new file mode 100644 index 00000000..672d33d3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dpram.vhd @@ -0,0 +1,131 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dpram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock_a : IN STD_LOGIC ; + clock_b : IN STD_LOGIC ; + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren_a : IN STD_LOGIC := '1'; + wren_b : IN STD_LOGIC := '1'; + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END dpram; + + +ARCHITECTURE SYN OF dpram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + read_during_write_mode_port_b : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock1 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q_a <= sub_wire0(width_a-1 DOWNTO 0); + q_b <= sub_wire1(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK1", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK1", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + numwords_b => 2**widthad_a, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + read_during_write_mode_port_b => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + widthad_b => widthad_a, + width_a => width_a, + width_b => width_a, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK1" + ) + PORT MAP ( + wren_a => wren_a, + clock0 => clock_a, + wren_b => wren_b, + clock1 => clock_b, + address_a => address_a, + address_b => address_b, + data_a => data_a, + data_b => data_b, + q_a => sub_wire0, + q_b => sub_wire1 + ); + + + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dprom_2r.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dprom_2r.vhd new file mode 100644 index 00000000..a17e0e58 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/dprom_2r.vhd @@ -0,0 +1,135 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY dprom_2r IS + GENERIC + ( + INIT_FILE : string := ""; + --NUMWORDS_A : natural; + WIDTHAD_A : natural; + WIDTH_A : natural := 8; + --NUMWORDS_B : natural; + WIDTHAD_B : natural; + WIDTH_B : natural := 8; + outdata_reg_a : string := "UNREGISTERED"; + outdata_reg_b : string := "UNREGISTERED" + ); + PORT + ( + address_a : in std_logic_vector (WIDTHAD_A-1 downto 0); + address_b : in std_logic_vector (WIDTHAD_B-1 downto 0); + clock : in std_logic ; + q_a : out std_logic_vector (WIDTH_A-1 downto 0); + q_b : out std_logic_vector (WIDTH_B-1 downto 0) + ); +END dprom_2r; + + +ARCHITECTURE SYN OF dprom_2r IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire2 : STD_LOGIC ; + SIGNAL sub_wire3_bv : BIT_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire3 : STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + SIGNAL sub_wire4_bv : BIT_VECTOR (WIDTH_B-1 DOWNTO 0); + SIGNAL sub_wire4 : STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_reg_b : STRING; + clock_enable_input_a : STRING; + clock_enable_input_b : STRING; + clock_enable_output_a : STRING; + clock_enable_output_b : STRING; + indata_reg_b : STRING; + init_file : STRING; + init_file_layout : STRING; + intended_device_family : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + numwords_b : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_aclr_b : STRING; + outdata_reg_a : STRING; + outdata_reg_b : STRING; + power_up_uninitialized : STRING; + ram_block_type : STRING; + widthad_a : NATURAL; + widthad_b : NATURAL; + width_a : NATURAL; + width_b : NATURAL; + width_byteena_a : NATURAL; + width_byteena_b : NATURAL; + wrcontrol_wraddress_reg_b : STRING + ); + PORT ( + wren_a : IN STD_LOGIC ; + wren_b : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (WIDTHAD_A-1 DOWNTO 0); + address_b : IN STD_LOGIC_VECTOR (WIDTHAD_B-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + q_b : OUT STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (WIDTH_A-1 DOWNTO 0); + data_b : IN STD_LOGIC_VECTOR (WIDTH_B-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + sub_wire2 <= '0'; + sub_wire3_bv(WIDTH_A-1 DOWNTO 0) <= (others => '0'); + sub_wire3 <= To_stdlogicvector(sub_wire3_bv); + sub_wire4_bv(WIDTH_B-1 DOWNTO 0) <= (others => '0'); + sub_wire4 <= To_stdlogicvector(sub_wire4_bv); + q_a <= sub_wire0(WIDTH_A-1 DOWNTO 0); + q_b <= sub_wire1(WIDTH_B-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_reg_b => "CLOCK0", + clock_enable_input_a => "BYPASS", + clock_enable_input_b => "BYPASS", + clock_enable_output_a => "BYPASS", + clock_enable_output_b => "BYPASS", + indata_reg_b => "CLOCK0", + init_file => INIT_FILE, + init_file_layout => "PORT_A", + intended_device_family => "Cyclone III", + lpm_type => "altsyncram", + numwords_a => 2**WIDTHAD_A, + numwords_b => 2**WIDTHAD_B, + operation_mode => "BIDIR_DUAL_PORT", + outdata_aclr_a => "NONE", + outdata_aclr_b => "NONE", + outdata_reg_a => outdata_reg_a, + outdata_reg_b => outdata_reg_b, + power_up_uninitialized => "FALSE", + ram_block_type => "M9K", + widthad_a => WIDTHAD_A, + widthad_b => WIDTHAD_B, + width_a => WIDTH_A, + width_b => WIDTH_B, + width_byteena_a => 1, + width_byteena_b => 1, + wrcontrol_wraddress_reg_b => "CLOCK0" + ) + PORT MAP ( + wren_a => sub_wire2, + wren_b => sub_wire2, + clock0 => clock, + address_a => address_a, + address_b => address_b, + data_a => sub_wire3, + data_b => sub_wire4, + q_a => sub_wire0, + q_b => sub_wire1 + ); + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/README.md b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/README.md new file mode 100644 index 00000000..64469dad --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/README.md @@ -0,0 +1,109 @@ +# Cycle Accurate MC6809 Core + +## Details + +This is a Verilog implementation of the Motorola MC6809 and MC6809E microprocessors from late 1970s. It is intentionally implemented in a manner to make it as similar as possible to the original microprocessors. + +When this was implemented, other 6809 cores already had been written. These other cores were in use and had been verified. Although I've never used any of these cores, I'm confident that they're excellent replications of the instruction set. However, none (as far as I know) was verified to be cycle-accurate. Encouragement from several sources (particularly one very generous source) convinced me to invest the time. + +Beyond merely cycle-accurate, the goal was to attempt to preserve as much of the actual bus signals and protocols as possible. Signals such as DMABREQ, TSC, MRDY, and LIC, while infrequently used were still implemented. Bus traffic was identified with a Logic Analyzer and matched to the 6809's specs (and, truthfully, when the specs were vague, details captured from hard MC6809/MC6809E part behavior). The particulars in the Motorola specifications were replicated. + +The goal was cycle accuracy and that dictated much of the design. This was never intended to be a supercharged superset of a MC6809. If you're looking to mega-power your existing system, this might not be the best choice. (Read the section on What This Is Not for explanation.) + +## Purpose, License + +I invested the time in the desire that *people use it*. I haven't given away hardware designs or software since the 1980s. However, this seems like a worthwhile exception. + +While the source is completely available, this is *not* an "open-source *group* project". You may modify it as you see fit. If you find errors, notifying me would be appreciated. Still, this is **not** a group project. I don't intend that to come off as rude quite so much as frank. I may choose to modify the core in the future; many "open-source group projects" seem to me to become interesting social studies in design-by-commitee, and how much time is required just to manage multiple people with multiple inclinations becomes significant. I confess that this scenario is not something that appeals to me. [Outside of a day job, I prefer to work with a very small and fairly private group.] If you're enthusiastic or appreciative, use the core in a design and I'll be thrilled - tell me about it, and I'll explain to you how thrilled I am. + +Refer to the [licensing](./documentation/LICENSE.md) requirements if you choose to leverage this work. + +This isn't an attempt to deal with part scarcity. Any variant of 6809 is still quite easy to obtain (at darned cheap prices, too). In truth, *far cheaper* than an FPGA. + +The actual target are people who are reimplementing retro-devices (Arcade games, Computers) that have incorporated entire designs into an FPGA, but require cycle accuracy. The core's required space on an FPGA isn't overwhelming once you hit a certain range of parts and integration. (If you're looking at CPLDs, you might want to scale up a bit.) + +## Implementation + +The core was implemented using Motorola's original documentation. Particularly, **Figure 18** in the MC6809 and MC6809E datasheets. There is a very close mapping between those five pages of diagrams and the bus and cycle activity of the CPU. + +I have noticed that some repositories of HDL tend to be only slightly more organized than *people tossing HDL files "over the wall"*. Explanations of how they work, how you as a consumer of the HDL should deal with it, etc. tend to be lacking or totally non-existent. + +I do have an interest (outside of this project) in HDL education; not quite in tutorials, but in implementations of HDMI, USB, SATA, etc. and explaining clearly how an implementation works - along with the hardware standard at the same time. + +Please - if you're not experienced in an HDL already, this cpu core isn't likely very useful to you as a learning mechanism. There are wonderful tutorials out there already; I highly recommend learning, experimenting, and so forth *first*, before attempting to absorb this design. + +## Validation + +The design was validated in multiple fashions, including against a Vectrex from 1982, a TRS-80 Color Computer 3, A slew of Williams Arcade games, and another wave of Taito Arcade games. + +Literal bus compatibility was achieved using a [GODIL-40](http://www.oho-elektronik.de/) against the above scenarios. I can't say enough nice things about the [GODIL](http://www.oho-elektronik.de/) design. Slick, compact. It's darned nice work. The only bad thing is that they're in short supply. (Oh, and they're 10x-20x the price of a hard CPU. I wouldn't recommend replacing your daily-use CPUs with a soft CPU in a GODIL unless you have a strong reason for doing so.) + +Functional testing was against the list of platforms above. They all work. + +Actual instruction cycle testing was done with the frequent help of Erik Gavriluk, who donated his time, consideration, and even hardware to the project. In this case, MAME sports a cycle-accurate 6809 emulator; Erik generated code that ran (nearly) every instruction in every addressing mode, and then ran that through MAME and kept an absolute cycle count. I captured the soft core's bus on a GODIL running the exact same code and matched the cycle counts. To improve things, Erik provided me with the register contents after every instruction. I wrote a testbench to run the same code and validated that the registers changed after each instruction identically in each scenario and in the exact same number of cycles. The result was gratifying. (Ahem, once it worked. Believe me, the CoCo, the cycle testing, the GODIL - they *all* pointed me at problems. I won't claim that the design is flawless - nothing I've ever written truly is - but effort *has* been made to actually verify the thing, and I'll list each of the platforms and experiences. [I'll even grumpily point out that Stargate has illegal instructions in it that they're darned lucky the 6809 happened to walk over.] + +Precise control signal testing (Interrupts, /HALT) were primarily done on JROK's Williams board. The Williams arcade games had a blitter, and it used /HALT to gain the bus and take action. JROK had done some extensive timing validation to prove that his implementation of the Williams design was **accurate**. I contacted him and being as he's an incredibly nice person, he gave me some advice and access to his source + prebuilt binaries. I was quite thankful - I found bus timing errors (related to /HALT and related to /IRQ latency) in the same vein (how many cycles before the next-new-instruction does each have to be asserted in order to be serviced at the beginning of the next instruction?) as a result. A very worthwhile endeavor, as I'd been convinced that I was correct; however, his code led me to swap hard CPUs with my soft core on analyzer captures and to realize that despite my intention to match the documentation perfectly there were cases where the documentation left details unclear, requiring comparison between a hard CPU and my existing timing. + +## What This Is Not + +This isn't an attempt to deal with parts scarcity, nor prepare for it. I can't imagine that 6809s will become *hard to get* in the next decade or so. There isn't a ton of volume required and there are lots of warehouses from companies that make their entire businesses on out-of-production parts. + +This isn't an attempt to make a faster MC6809. The implementation would have been different had that been a goal. It has extensive 'dead' cycles on the bus to fit MC6809 specifications. If I conditionally remove them, it would be significantly more efficient than a real MC6809 (but once again, not cycle-accurate). + +This core does not include HD6309 instructions. I did check, and without the 'dead' cycles mentioned above (the things that make it cycle-accurate), every instruction is at least as efficient as the HD6309, and most are more efficient. (I do have advantages of 40 years of technology over the original MC6809 design team, and at least 30 years over the HD6309 design team.) New registers and instructions from the HD6309 aren't there. Once again, that wasn't the goal. [I may still enable a dynamic mechanism to switch between cycle-accurate and minimum-cycles-required as an instantiation parameter.] + +If your goal really is "a super 6809", I have [strong opinions](./documentation/super6809.md) on the topic. + +## Perfection? + +While I'd love to say that this is a perfect replica, logic-level details of the implementation of the CPU aren't available. The Motorola documentation is *excellent*, but still not complete. + +I know of inconsistencies - but inconsistencies that I expect are trivial. Anything deemed as serious has been dealt with as soon as I've been made aware of it. + +The instructions have been heavily validated, and I'm confident in their accuracy - but not quite so arrogant as to insist that there could not be an oversight. (I'm not a young man any longer; I've been wrong too many times to be as remotely as confident as I was when I was 16.) + +Should issues be discovered, expect transparency and fixes - even if it's an incredibly rare edge case. [If you're actively using `/DMABREQ`, please contact me. You're the first.] + +## How does it work? + +This isn't quite the same question as the next, but if you really want to dig in and grasp the implementation, I've written a summary of the design [here](./documentation/CoreDesign.md). + +## How Do I Use It? + +### Samples + +Application of the core in a GODIL is provided. With this, you can - although for what reason, I'm not sure - plug-replace a MC6809 or MC6809E in nearly any design (*note the oscillator in the Vectrex instead of the crystal*). This is intended to demonstrate compatibility. + +A sample implementation is provided against a cheap Xilinx Spartan 6 LX9 board from eBay (China), a cheap Altera Cyclone IV EP4CE6 board (also from eBay, China), and two Cyclone V boards from terasic. These aren't attempting to run at original speeds, so I set them to 25Mhz for no reason other than "I can". These are intended to demonstrate use of the core entirely internal to an FPGA. + +### General Guidelines + +A list of general guidelines is provided. They are likely worth reading if you consider using this core. + +## Documentation + +1. [Explanation of the CPU Core design.](./documentation/CoreDesign.md) +2. [Validation Efforts.](./documentation/Validation.md) +3. [Implementation Examples](./documentation/samples.md). + +## Who Am I? + +Despite a certain degree of desire to remain anonymous, that seems pointless in today's world. + +My name is Greg Miller; I learned assembly in 1981 on a 6809 in a TRS-80 Color Computer, leaving me *fond* of this CPU architecture. + +Not surprisingly, I work in the tech industry (although quite definitely not implementing legacy hardware in FPGAs), do not represent my employer in any capacity whatsoever here, and have a family and a mortgage. + +You can contact me via: + + gregmiller6809@gmail.com + + +## Final Thoughts + +I'll keep track of my [Final Thoughts](./documentation/FinalThoughts.md) on the project. + +## Acknowledgements + +[I do want to thank a few people](documentation/Acknowledgements.md). + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809.v new file mode 100644 index 00000000..b19d1552 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809.v @@ -0,0 +1,80 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 08:11:34 09/23/2016 +// Design Name: +// Module Name: mc6809e +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module mc6809( + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + output E, + output Q, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + input EXTAL, + input XTAL, + input nHALT, + input nRESET, + input MRDY, + input nDMABREQ + + , output [111:0] RegData + + ); + +reg [1:0] clk_phase=2'b00; + +wire CLK; +assign CLK=EXTAL; + +wire LIC; +wire BUSY; +wire AVMA; +reg rE; +reg rQ; +assign E = rE; +assign Q = rQ; + +mc6809i cpucore(.D(D), .DOut(DOut), .ADDR(ADDR), .RnW(RnW), .E(E), .Q(Q), .BS(BS), .BA(BA), .nIRQ(nIRQ), .nFIRQ(nFIRQ), + .nNMI(nNMI), .AVMA(AVMA), .BUSY(BUSY), .LIC(LIC), .nHALT(nHALT), .nRESET(nRESET), .nDMABREQ(nDMABREQ) + ,.RegData(RegData) + ); + +always @(negedge CLK) +begin + case (clk_phase) + 2'b00: + rE <= 0; + 2'b01: + rQ <= 1; + 2'b10: + rE <= 1; + 2'b11: + rQ <= 0; + endcase + + if (MRDY == 1'b1) + clk_phase <= clk_phase + 2'b01; +end + + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809e.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809e.v new file mode 100644 index 00000000..396a9fa3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809e.v @@ -0,0 +1,48 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 08:11:34 09/23/2016 +// Design Name: +// Module Name: mc6809e +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module mc6809e( + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + input E, + input Q, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + output AVMA, + output BUSY, + output LIC, + input nHALT, + input nRESET + + ); + + + +mc6809i cpucore (.D(D), .DOut(DOut), .ADDR(ADDR), .RnW(RnW), .E(E), .Q(Q), .BS(BS), .BA(BA), .nIRQ(nIRQ), .nFIRQ(nFIRQ), + .nNMI(nNMI), .AVMA(AVMA), .BUSY(BUSY), .LIC(LIC), .nHALT(nHALT), .nRESET(nRESET), .nDMABREQ(1) + ); + + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809i.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809i.v new file mode 100644 index 00000000..5725aab4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809i.v @@ -0,0 +1,4156 @@ +`timescale 1ns / 1ns +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: Greg Miller +// Copyright (c) 2016, Greg Miller +// +// Create Date: 14:26:59 08/13/2016 +// Design Name: +// Module Name: mc6809 +// Project Name: Cycle-Accurate 6809 Core +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: Intended to be standalone Vanilla Verilog. +// +// Revision: +// Revision 1.0 - Initial Release +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +// +// The 6809 has incomplete instruction decoding. A collection of instructions, if met, end up actually behaving like +// a binary-adjacent neighbor. +// +// The soft core permits three different behaviors for this situation, controlled by the instantiation parameter +// ILLEGAL_INSTRUCTIONS +// +// "GHOST" - Mimic the 6809's incomplete decoding. This is as similar to a hard 6809 as is practical. [DEFAULT] +// +// "STOP" - Cause the soft core to cease execution, placing $DEAD on the address bus and R/W to 'read'. Interrupts, +// bus control (/HALT, /DMABREQ), etc. are ignored. The core intentionally seizes in this instance. +// (Frankly, this is useful when making changes to the core and you have a logic analyzer connected.) +// +// "IGNORE"- Cause the soft core to merely ignore illegal instructions. It will consider them 1-byte instructions and +// attempt to fetch and run an exception 1 byte later. +// + +module mc6809i +#( + parameter ILLEGAL_INSTRUCTIONS="GHOST" +) +( + + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + input E, + input Q, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + output AVMA, + output BUSY, + output LIC, + input nHALT, + input nRESET, + input nDMABREQ, + output [111:0] RegData +); + +reg [7:0] DOutput; + +assign DOut = DOutput; + +reg RnWOut; // Combinatorial + +reg rLIC; +assign LIC = rLIC; + +reg rAVMA; +assign AVMA = rAVMA; + +reg rBUSY; +assign BUSY = rBUSY; + +// Bus control +// BS BA +// 0 0 normal (CPU running, CPU is master) +// 0 1 Interrupt Ack +// 1 0 Sync Ack +// 1 1 CPU has gone high-Z on A, D, R/W +// + +assign RnW = RnWOut; + + +///////////////////////////////////////////////// +// Vectors +`define RESET_VECTOR 16'HFFFE +`define NMI_VECTOR 16'HFFFC +`define SWI_VECTOR 16'HFFFA +`define IRQ_VECTOR 16'HFFF8 +`define FIRQ_VECTOR 16'HFFF6 +`define SWI2_VECTOR 16'HFFF4 +`define SWI3_VECTOR 16'HFFF2 +`define Reserved_VECTOR 16'HFFF0 + +////////////////////////////////////////////////////// +// Latched registers +// + +// The last-latched copy. +reg [7:0] a; +reg [7:0] b; +reg [15:0] x; +reg [15:0] y; +reg [15:0] u; +reg [15:0] s; +reg [15:0] pc; +reg [7:0] dp; +reg [7:0] cc; +reg [15:0] tmp; +reg [15:0] addr; +reg [15:0] ea; + + +// Debug ability to export register contents +assign RegData[7:0] = a; +assign RegData[15:8] = b; +assign RegData[31:16] = x; +assign RegData[47:32] = y; +assign RegData[63:48] = s; +assign RegData[79:64] = u; +assign RegData[87:80] = cc; +assign RegData[95:88] = dp; +assign RegData[111:96] = pc; + + + +// The values as being calculated +reg [7:0] a_nxt; +reg [7:0] b_nxt; +reg [15:0] x_nxt; +reg [15:0] y_nxt; +reg [15:0] u_nxt; +reg [15:0] s_nxt; +reg [15:0] pc_nxt; +reg [7:0] dp_nxt; +reg [7:0] cc_nxt; +reg [15:0] addr_nxt; +reg [15:0] ea_nxt; +reg [15:0] tmp_nxt; + +reg BS_nxt; +reg BA_nxt; + +// for ADDR, BS/BA, assign them to the flops +assign BS = BS_nxt; +assign BA = BA_nxt; +assign ADDR=addr_nxt; + +localparam CC_E= 8'H80; +localparam CC_F= 8'H40; +localparam CC_H= 8'H20; +localparam CC_I= 8'H10; +localparam CC_N= 8'H08; +localparam CC_Z= 8'H04; +localparam CC_V= 8'H02; +localparam CC_C= 8'H01; + +localparam CC_E_BIT= 3'd7; +localparam CC_F_BIT= 3'd6; +localparam CC_H_BIT= 3'd5; +localparam CC_I_BIT= 3'd4; +localparam CC_N_BIT= 3'd3; +localparam CC_Z_BIT= 3'd2; +localparam CC_V_BIT= 3'd1; +localparam CC_C_BIT= 3'd0; + +// Convenience calculations +reg [15:0] pc_p1; +reg [15:0] pc_p2; +reg [15:0] pc_p3; +reg [15:0] s_p1; +reg [15:0] s_m1; +reg [15:0] u_p1; +reg [15:0] u_m1; +reg [15:0] addr_p1; +reg [15:0] ea_p1; + +////////////////////////////////////////////////////// +// NMI Mask +// +// NMI is supposed to be masked - despite the name - until the 6809 loads a value into S. +// Frankly, I'm cheating slightly. If someone does a LDS #$0, it won't disable the mask. Pretty much anything else +// that changes the value of S from the default (which is currently $0) will clear the mask. A reset will set the mask again. +reg NMIMask; + +reg NMILatched; +reg NMISample; +reg NMISample2; +reg NMIClear; +reg NMIClear_nxt; +wire wNMIClear = NMIClear; + +reg IRQLatched; + +reg IRQSample; +reg IRQSample2; +reg FIRQLatched; +reg FIRQSample; +reg FIRQSample2; +reg HALTLatched; +reg HALTSample; +reg HALTSample2; +reg DMABREQLatched; +reg DMABREQSample; +reg DMABREQSample2; + +// Interrupt types +localparam INTTYPE_NMI = 3'H0 ; +localparam INTTYPE_IRQ = 3'H1 ; +localparam INTTYPE_FIRQ = 3'H2 ; +localparam INTTYPE_SWI = 3'H3 ; +localparam INTTYPE_SWI2 = 3'H4 ; +localparam INTTYPE_SWI3 = 3'H5 ; + +reg [2:0] IntType; +reg [2:0] IntType_nxt; + +////////////////////////////////////////////////////// +// Instruction Fetch Details +// +reg InstPage2; +reg InstPage3; +reg InstPage2_nxt; +reg InstPage3_nxt; + +reg [7:0] Inst1; +reg [7:0] Inst2; +reg [7:0] Inst3; +reg [7:0] Inst1_nxt; +reg [7:0] Inst2_nxt; +reg [7:0] Inst3_nxt; + + +localparam CPUSTATE_RESET = 7'd0; +localparam CPUSTATE_RESET0 = 7'd1; + +localparam CPUSTATE_RESET2 = 7'd3; +localparam CPUSTATE_FETCH_I1 = 7'd4; +localparam CPUSTATE_FETCH_I1V2 = 7'd5; +localparam CPUSTATE_FETCH_I2 = 7'd8; + +localparam CPUSTATE_LBRA_OFFSETLOW = 7'd17; +localparam CPUSTATE_LBRA_DONTCARE = 7'd18; +localparam CPUSTATE_LBRA_DONTCARE2 = 7'd19; + + + +localparam CPUSTATE_BRA_DONTCARE = 7'd20; + +localparam CPUSTATE_BSR_DONTCARE1 = 7'd21; +localparam CPUSTATE_BSR_DONTCARE2 = 7'd22; +localparam CPUSTATE_BSR_RETURNLOW = 7'd23; +localparam CPUSTATE_BSR_RETURNHIGH = 7'd24; + +localparam CPUSTATE_TFR_DONTCARE1 = 7'd26; +localparam CPUSTATE_TFR_DONTCARE2 = 7'd27; +localparam CPUSTATE_TFR_DONTCARE3 = 7'd28; +localparam CPUSTATE_TFR_DONTCARE4 = 7'd29; + +localparam CPUSTATE_EXG_DONTCARE1 = 7'd30; +localparam CPUSTATE_EXG_DONTCARE2 = 7'd31; +localparam CPUSTATE_EXG_DONTCARE3 = 7'd32; +localparam CPUSTATE_EXG_DONTCARE4 = 7'd33; +localparam CPUSTATE_EXG_DONTCARE5 = 7'd34; +localparam CPUSTATE_EXG_DONTCARE6 = 7'd35; + +localparam CPUSTATE_ABX_DONTCARE = 7'd36; + +localparam CPUSTATE_RTS_HI = 7'd38; +localparam CPUSTATE_RTS_LO = 7'd39; +localparam CPUSTATE_RTS_DONTCARE2 = 7'd40; + +localparam CPUSTATE_16IMM_LO = 7'd41; +localparam CPUSTATE_ALU16_DONTCARE = 7'd42; +localparam CPUSTATE_DIRECT_DONTCARE = 7'd43; + +localparam CPUSTATE_ALU_EA = 7'd44; + +localparam CPUSTATE_ALU_DONTCARE = 7'd46; +localparam CPUSTATE_ALU_WRITEBACK = 7'd47; + +localparam CPUSTATE_LD16_LO = 7'd48; + +localparam CPUSTATE_ST16_LO = 7'd49; +localparam CPUSTATE_ALU16_LO = 7'd50; + + + + +localparam CPUSTATE_JSR_DONTCARE = 7'd53; +localparam CPUSTATE_JSR_RETLO = 7'd54; +localparam CPUSTATE_JSR_RETHI = 7'd55; +localparam CPUSTATE_EXTENDED_ADDRLO = 7'd56; +localparam CPUSTATE_EXTENDED_DONTCARE = 7'd57; +localparam CPUSTATE_INDEXED_BASE = 7'd58; + + +localparam CPUSTATE_IDX_DONTCARE3 = 7'd60; + +localparam CPUSTATE_IDX_OFFSET_LO = 7'd61; +localparam CPUSTATE_IDX_16OFFSET_LO = 7'd62; + +localparam CPUSTATE_IDX_16OFF_DONTCARE0= 7'd63; +localparam CPUSTATE_IDX_16OFF_DONTCARE1= 7'd64; +localparam CPUSTATE_IDX_16OFF_DONTCARE2= 7'd65; +localparam CPUSTATE_IDX_16OFF_DONTCARE3= 7'd66; + +localparam CPUSTATE_IDX_DOFF_DONTCARE1 = 7'd68; +localparam CPUSTATE_IDX_DOFF_DONTCARE2 = 7'd69; +localparam CPUSTATE_IDX_DOFF_DONTCARE3 = 7'd70; +localparam CPUSTATE_IDX_PC16OFF_DONTCARE = 7'd71; + +localparam CPUSTATE_IDX_EXTIND_LO = 7'd72; +localparam CPUSTATE_IDX_EXTIND_DONTCARE = 7'd73; + +localparam CPUSTATE_INDIRECT_HI = 7'd74; +localparam CPUSTATE_INDIRECT_LO = 7'd75; +localparam CPUSTATE_INDIRECT_DONTCARE = 7'd76; +localparam CPUSTATE_MUL_ACTION = 7'd77; + +localparam CPUSTATE_PSH_DONTCARE1 = 7'd80; +localparam CPUSTATE_PSH_DONTCARE2 = 7'd81; +localparam CPUSTATE_PSH_DONTCARE3 = 7'd82; +localparam CPUSTATE_PSH_ACTION = 7'd83; + +localparam CPUSTATE_PUL_DONTCARE1 = 7'd84; +localparam CPUSTATE_PUL_DONTCARE2 = 7'd85; +localparam CPUSTATE_PUL_ACTION = 7'd86; + +localparam CPUSTATE_NMI_START = 7'd87; +localparam CPUSTATE_IRQ_DONTCARE = 7'd88; +localparam CPUSTATE_IRQ_START = 7'd89; +localparam CPUSTATE_IRQ_DONTCARE2 = 7'd90; +localparam CPUSTATE_IRQ_VECTOR_HI = 7'd91; +localparam CPUSTATE_IRQ_VECTOR_LO = 7'd92; +localparam CPUSTATE_FIRQ_START = 7'd93; +localparam CPUSTATE_CC_DONTCARE = 7'd94; +localparam CPUSTATE_SWI_START = 7'd95; + +localparam CPUSTATE_TST_DONTCARE1 = 7'd96; +localparam CPUSTATE_TST_DONTCARE2 = 7'd97; + +localparam CPUSTATE_DEBUG = 7'd98; + +localparam CPUSTATE_16IMM_DONTCARE = 7'd99; + +localparam CPUSTATE_HALTED = 7'd100; + +localparam CPUSTATE_HALT_EXIT2 = 7'd102; +localparam CPUSTATE_STOP = 7'd105; +localparam CPUSTATE_STOP2 = 7'd106; +localparam CPUSTATE_STOP3 = 7'd107; + + +localparam CPUSTATE_CWAI = 7'd108; +localparam CPUSTATE_CWAI_DONTCARE1 = 7'd109; +localparam CPUSTATE_CWAI_POST = 7'd110; + +localparam CPUSTATE_DMABREQ = 7'd111; +localparam CPUSTATE_DMABREQ_EXIT = 7'd112; +localparam CPUSTATE_SYNC = 7'd113; +localparam CPUSTATE_SYNC_EXIT = 7'd114; + +localparam CPUSTATE_INT_DONTCARE = 7'd115; + + +reg [6:0] CpuState = CPUSTATE_RESET; +reg [6:0] CpuState_nxt = CPUSTATE_RESET; + +reg [6:0] NextState = CPUSTATE_RESET; +reg [6:0] NextState_nxt = CPUSTATE_RESET; + +wire [6:0] PostIllegalState; + +// If we encounter something like an illegal addressing mode (an index mode that's illegal for instance) +// What state should we go to? +generate +if (ILLEGAL_INSTRUCTIONS=="STOP") +begin : postillegal + assign PostIllegalState = CPUSTATE_STOP; +end +else +begin + assign PostIllegalState = CPUSTATE_FETCH_I1; +end +endgenerate + + + +/////////////////////////////////////////////////////////////////////// + +// +// MapInstruction - Considering how the core was instantiated, this +// will either directly return D[7:0] *or* remap values from D[7:0] +// that relate to undefined instructions in the 6809 to the instructions +// that the 6809 actually executed when these were encountered, due to +// incomplete decoding. +// +// NEG, COM, LSR, DEC - these four instructions, in Direct, Inherent (A or B) +// Indexed, or Extended addressing do not actually decode bit 0 on the instruction. +// Thus, for instance, a $51 encountered will be executed as a $50, which is a NEGB. +// + +// Specifically, the input is an instruction; if it matches an unknown instruction that the +// 6809 is known to ghost to another instruction, the output of the function +// is the the instruction that actually gets executed. Otherwise, the output is the +// input. + +function [7:0] MapInstruction(input [7:0] i); +reg [3:0] topnyb; +reg [3:0] btmnyb; +reg [7:0] newinst; +begin + newinst = i; + + topnyb = i[7:4]; + btmnyb = i[3:0]; + + if ( (topnyb == 4'H0) || + (topnyb == 4'H4) || + (topnyb == 4'H5) || + (topnyb == 4'H6) || + (topnyb == 4'H7) + ) + begin + if (btmnyb == 4'H1) + newinst = {topnyb, 4'H0}; + if (btmnyb == 4'H2) + newinst = {topnyb, 4'H3}; + if (btmnyb == 4'H5) + newinst = {topnyb, 4'H4}; + if (btmnyb == 4'HB) + newinst = {topnyb, 4'HA}; + end + MapInstruction = newinst; +end +endfunction + + +wire [7:0] MappedInstruction; +generate +if (ILLEGAL_INSTRUCTIONS=="GHOST") +begin : ghost + assign MappedInstruction = MapInstruction(D); +end +else +begin + assign MappedInstruction = D; +end +endgenerate + + + +/////////////////////////////////////////////////////////////////////// + +function IllegalInstruction(input [7:0] i); +reg [3:0] hi; +reg [3:0] lo; +reg illegal; +begin + illegal = 1'b0; + hi = i[7:4]; + lo = i[3:0]; + if ( (hi == 4'H0) || (hi == 4'H4) || (hi == 4'H5) || (hi == 4'H6) || (hi == 4'H7) ) + begin + if ( (lo == 4'H1) || (lo == 4'H2) || (lo == 4'H5) || (lo == 4'HB) ) + illegal = 1'b1; + if (lo == 4'HE) + if ( (hi == 4'H4) || (hi == 4'H5) ) + illegal = 1'b1; + end + if (hi == 4'H3) + begin + if ( (lo == 4'H8) || (lo == 4'HE) ) + illegal = 1'b1; + end + if (hi == 4'H1) + begin + if ( (lo == 4'H4) || (lo == 4'H5) || (lo == 4'H8) || (lo == 4'HB) ) + illegal = 1'b1; + end + if ( (hi == 4'H8) || (hi == 4'HC) ) + begin + if ( (lo == 4'H7) || (lo == 4'HF) ) + illegal = 1'b1; + if ( lo == 4'HD ) + if (hi == 4'HC) + illegal = 1'b1; + end + IllegalInstruction = illegal; +end +endfunction + +wire IsIllegalInstruction; + +generate +if (ILLEGAL_INSTRUCTIONS=="GHOST") +begin : never_illegal + assign IsIllegalInstruction = 1'b0; +end +else +begin + assign IsIllegalInstruction = IllegalInstruction(Inst1); +end +endgenerate + +wire [6:0] IllegalInstructionState; +generate +if (ILLEGAL_INSTRUCTIONS=="IGNORE") +begin : illegal_state + assign IllegalInstructionState = CPUSTATE_FETCH_I1; +end +else if (ILLEGAL_INSTRUCTIONS=="STOP") +begin + assign IllegalInstructionState = CPUSTATE_STOP; +end +else +begin + assign IllegalInstructionState = 7'd0; +end +endgenerate + + +/////////////////////////////////////////////////////////////////////// + + +always @(negedge NMISample2 or posedge wNMIClear) +begin + if (wNMIClear == 1) + NMILatched <= 1; + else if (NMIMask == 0) + NMILatched <= 0; + else + NMILatched <= 1; +end + +// +// The 6809 specs say that the CPU control signals are sampled on the falling edge of Q. +// It also says that the interrupts require 1 cycle of synchronization time. +// That's vague, as it doesn't say where "1 cycle" starts or ends. Starting from the +// falling edge of Q, the next cycle notices an assertion. From checking a hard 6809 on +// an analyzer, what they really mean is that it's sampled on the falling edge of Q, +// but there's a one cycle delay from the falling edge of E (0.25 clocks from the falling edge of Q +// where the signals were sampled) before it can be noticed. +// So, SIGNALSample is the latched value at the falling edge of Q +// SIGNALSample2 is the latched value at the falling edge of E (0.25 clocks after the line above) +// SIGNALLatched is the latched value at the falling edge of E (1 cycle after the line above) +// +// /HALT and /DMABREQ are delayed one cycle less than interrupts. The 6809 specs infer these details, +// but don't list the point-of-reference they're written from (for instance, they say that an interrupt requires +// a cycle for synchronization; however, it isn't clear whether that's from the falling Q to the next falling Q, +// a complete intermediate cycle, the falling E to the next falling E, etc.) - which, in the end, required an +// analyzer on the 6809 to determine how many cycles before a new instruction an interrupt (or /HALT & /DMABREQ) +// had to be asserted to be noted instead of the next instruction running start to finish. +// +always @(negedge Q) +begin + NMISample <= nNMI; + + IRQSample <= nIRQ; + + FIRQSample <= nFIRQ; + + HALTSample <= nHALT; + + DMABREQSample <= nDMABREQ; + + +end + + +reg rnRESET=0; // The latched version of /RESET, useful 1 clock after it's latched +always @(negedge E) +begin + rnRESET <= nRESET; + + NMISample2 <= NMISample; + + IRQSample2 <= IRQSample; + IRQLatched <= IRQSample2; + + FIRQSample2 <= FIRQSample; + FIRQLatched <= FIRQSample2; + + HALTSample2 <= HALTSample; + HALTLatched <= HALTSample2; + + DMABREQSample2 <= DMABREQSample; + DMABREQLatched <= DMABREQSample2; + + + if (rnRESET == 1) + begin + CpuState <= CpuState_nxt; + + // Don't interpret this next item as "The Next State"; it's a special case 'after this + // generic state, go to this programmable state', so that a single state + // can be shared for many tasks. [Specifically, the stack push/pull code, which is used + // for PSH, PUL, Interrupts, RTI, etc. + NextState <= NextState_nxt; + + // CPU registers latch from the combinatorial circuit + a <= a_nxt; + b <= b_nxt; + x <= x_nxt; + y <= y_nxt; + s <= s_nxt; + u <= u_nxt; + cc <= cc_nxt; + dp <= dp_nxt; + pc <= pc_nxt; + tmp <= tmp_nxt; + addr <= addr_nxt; + ea <= ea_nxt; + + InstPage2 <= InstPage2_nxt; + InstPage3 <= InstPage3_nxt; + Inst1 <= Inst1_nxt; + Inst2 <= Inst2_nxt; + Inst3 <= Inst3_nxt; + NMIClear <= NMIClear_nxt; + + IntType <= IntType_nxt; + + if (s != s_nxt) // Once S changes at all (default is '0'), release the NMI Mask. + NMIMask <= 1'b0; + end + else + begin + CpuState <= CPUSTATE_RESET; + NMIMask <= 1'b1; // Mask NMI until S is loaded. + NMIClear <= 1'b0; // Mark us as not having serviced NMI + end +end + + +///////////////////////////////////////////////////////////////// +// Decode the Index byte + +localparam IDX_REG_X = 3'd0; +localparam IDX_REG_Y = 3'd1; +localparam IDX_REG_U = 3'd2; +localparam IDX_REG_S = 3'd3; +localparam IDX_REG_PC = 3'd4; + +localparam IDX_MODE_POSTINC1 = 4'd0; +localparam IDX_MODE_POSTINC2 = 4'd1; +localparam IDX_MODE_PREDEC1 = 4'd2; +localparam IDX_MODE_PREDEC2 = 4'd3; +localparam IDX_MODE_NOOFFSET = 4'd4; +localparam IDX_MODE_B_OFFSET = 4'd5; +localparam IDX_MODE_A_OFFSET = 4'd6; +localparam IDX_MODE_5BIT_OFFSET= 4'd7; // Special case, not bit pattern 7; the offset sits in the bit pattern +localparam IDX_MODE_8BIT_OFFSET= 4'd8; +localparam IDX_MODE_16BIT_OFFSET = 4'd9; +localparam IDX_MODE_D_OFFSET = 4'd11; +localparam IDX_MODE_8BIT_OFFSET_PC = 4'd12; +localparam IDX_MODE_16BIT_OFFSET_PC= 4'd13; +localparam IDX_MODE_EXTENDED_INDIRECT = 4'd15; + +// Return: +// Register base [3 bits] +// Indirect [1 bit] +// Mode [4 bits] + +function [7:0] IndexDecode(input [7:0] postbyte); +reg [2:0] regnum; +reg indirect; +reg [3:0] mode; +begin + indirect = 0; + mode = 0; + + if (postbyte[7] == 0) // 5-bit + begin + mode = IDX_MODE_5BIT_OFFSET; + end + else + begin + mode = postbyte[3:0]; + indirect = postbyte[4]; + end + if ((mode != IDX_MODE_8BIT_OFFSET_PC) && (mode != IDX_MODE_16BIT_OFFSET_PC)) + regnum[2:0] = postbyte[6:5]; + else + regnum[2:0] = IDX_REG_PC; + + IndexDecode = {indirect, mode, regnum}; +end +endfunction + +wire [3:0] IndexedMode; +wire IndexedIndirect; +wire [2:0] IndexedRegister; + +assign {IndexedIndirect, IndexedMode, IndexedRegister} = IndexDecode(Inst2); + +///////////////////////////////////////////////////////////////// +// Is this a JMP instruction? (irrespective of addressing mode) +function IsJMP(input [7:0] inst); +reg [3:0] hi; +reg [3:0] lo; +begin + hi = inst[7:4]; + lo = inst[3:0]; + + IsJMP = 0; + if ((hi == 4'H0) || (hi == 4'H6) || (hi == 4'H7)) + if (lo == 4'HE) + IsJMP = 1; +end +endfunction + +/////////////////////////////////////////////////////////////////// +// Is this an 8-bit Store? + +localparam ST8_REG_A = 1'b0; +localparam ST8_REG_B = 1'b1; + +function [1:0] IsST8(input [7:0] inst); +reg regnum; +reg IsStore; +begin + + IsStore = 1'b0; + regnum = 1'b1; + + if ( (Inst1 == 8'H97) || (Inst1 == 8'HA7) || (Inst1 == 8'HB7) ) + begin + IsStore = 1'b1; + regnum = 1'b0; + end + else if ( (Inst1 == 8'HD7) || (Inst1 == 8'HE7) || (Inst1 == 8'HF7) ) + begin + IsStore = 1'b1; + regnum = 1'b1; + end + IsST8 = {IsStore, regnum}; +end +endfunction + +wire IsStore8; +wire Store8RegisterNum; + +assign {IsStore8, Store8RegisterNum} = IsST8(Inst1); + + +///////////////////////////////////////////////////////////////// +// Is this a 16-bit Store? + +localparam ST16_REG_X = 3'd0; +localparam ST16_REG_Y = 3'd1; +localparam ST16_REG_U = 3'd2; +localparam ST16_REG_S = 3'd3; +localparam ST16_REG_D = 3'd4; + + +function [3:0] IsST16(input [7:0] inst); +reg [3:0] hi; +reg [3:0] lo; +reg [2:0] regnum; +reg IsStore; +begin + hi = inst[7:4]; + lo = inst[3:0]; + IsStore = 1'b0; + regnum = 3'b111; + + if ((inst == 8'H9F) || (inst == 8'HAF) || (inst == 8'HBF)) + begin + IsStore = 1; + if (~InstPage2) + regnum = ST16_REG_X; + else + regnum = ST16_REG_Y; + end + else if ((inst == 8'HDF) || (inst == 8'HEF) || (inst == 8'HFF)) + begin + IsStore = 1; + if (~InstPage2) + regnum = ST16_REG_U; + else + regnum = ST16_REG_S; + end + else if ((inst == 8'HDD) || (inst == 8'HED) || (inst == 8'HFD)) + begin + IsStore = 1; + regnum = ST16_REG_D; + end + + IsST16 = {IsStore, regnum}; +end +endfunction + +wire IsStore16; +wire [2:0] StoreRegisterNum; + +assign {IsStore16, StoreRegisterNum} = IsST16(Inst1); + +///////////////////////////////////////////////////////////////// +// Is this a special Immediate mode instruction, ala +// PSH, PUL, EXG, TFR, ANDCC, ORCC +function IsSpecialImm(input [7:0] inst); +reg is; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = inst[7:4]; + lo = inst[3:0]; + is = 0; + + if (hi == 4'H1) + begin + if ( (lo == 4'HA) || (lo == 4'HC) || (lo == 4'HE) || (lo == 4'HF) ) // ORCC, ANDCC, EXG, TFR + is = 1; + end + else if (hi == 4'H3) + begin + if ( (lo >= 4'H3) && (lo <= 4'H7) ) // PSHS, PULS, PSHU, PULU + is = 1; + end + else + is = 0; + + IsSpecialImm = is; +end +endfunction +wire IsSpecialImmediate = IsSpecialImm(Inst1); + +///////////////////////////////////////////////////////////////// +// Is this a one-byte instruction? [The 6809 reads 2 bytes for every instruction, minimum (it can read more). On a one-byte, we have to ensure that we haven't skipped the PC ahead. +function IsOneByteInstruction(input [7:0] inst); +reg is; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = inst[7:4]; + lo = inst[3:0]; + is = 1'b0; + + if ( (hi == 4'H4) || (hi == 4'H5) ) + is = 1'b1; + else if ( hi == 4'H1) + begin + if ( (lo == 4'H2) || (lo == 4'H3) || (lo == 4'H9) || (lo == 4'HD) ) + is = 1'b1; + end + else if (hi == 4'H3) + begin + if ( (lo >= 4'H9) && (lo != 4'HC) ) + is = 1'b1; + end + else + is = 1'b0; + + IsOneByteInstruction = is; +end +endfunction + +///////////////////////////////////////////////////////////////// +// ALU16 - Simpler than the 8 bit ALU + +localparam ALU16_REG_X = 3'd0; +localparam ALU16_REG_Y = 3'd1; +localparam ALU16_REG_U = 3'd2; +localparam ALU16_REG_S = 3'd3; +localparam ALU16_REG_D = 3'd4; + +function [2:0] ALU16RegFromInst(input Page2, input Page3, input [7:0] inst); +reg [2:0] srcreg; +begin + srcreg = 3'b111; // default + casex ({Page2, Page3, inst}) // Note pattern for the matching below + 10'b1010xx0011: // 1083, 1093, 10A3, 10B3 CMPD + srcreg = ALU16_REG_D; + 10'b1010xx1100: // 108C, 109C, 10AC, 10BC CMPY + srcreg = ALU16_REG_Y; + 10'b0110xx0011: // 1183, 1193, 11A3, 11B3 CMPU + srcreg = ALU16_REG_U; + 10'b0110xx1100: // 118C, 119C, 11AC, 11BC CMPS + srcreg = ALU16_REG_S; + 10'b0010xx1100: // 8C,9C,AC,BC CMPX + srcreg = ALU16_REG_X; + + 10'b0011xx0011: // C3, D3, E3, F3 ADDD + srcreg = ALU16_REG_D; + + 10'b0011xx1100: // CC, DC, EC, FC LDD + srcreg = ALU16_REG_D; + 10'b0010xx1110: // 8E LDX, 9E LDX, AE LDX, BE LDX + srcreg = ALU16_REG_X; + 10'b0011xx1110: // CE LDU, DE LDU, EE LDU, FE LDU + srcreg = ALU16_REG_U; + 10'b1010xx1110: // 108E LDY, 109E LDY, 10AE LDY, 10BE LDY + srcreg = ALU16_REG_Y; + 10'b1011xx1110: // 10CE LDS, 10DE LDS, 10EE LDS, 10FE LDS + srcreg = ALU16_REG_S; + 10'b0010xx0011: // 83, 93, A3, B3 SUBD + srcreg = ALU16_REG_D; + + 10'H03A: // 3A ABX + srcreg = ALU16_REG_X; + 10'H030: // 30 LEAX + srcreg = ALU16_REG_X; + 10'H031: // 31 LEAY + srcreg = ALU16_REG_Y; + 10'H032: // 32 LEAS + srcreg = ALU16_REG_S; + 10'H033: // 32 LEAU + srcreg = ALU16_REG_U; + default: + srcreg = 3'b111; + endcase + ALU16RegFromInst = srcreg; +end +endfunction + +wire [2:0] ALU16Reg = ALU16RegFromInst(InstPage2, InstPage3, Inst1); + +localparam ALUOP16_SUB = 3'H0; +localparam ALUOP16_ADD = 3'H1; +localparam ALUOP16_LD = 3'H2; +localparam ALUOP16_CMP = 3'H3; +localparam ALUOP16_LEA = 3'H4; +localparam ALUOP16_INVALID = 3'H7; + +function [3:0] ALU16OpFromInst(input Page2, input Page3, input [7:0] inst); +reg [2:0] aluop; +reg writeback; +begin + aluop = 3'b111; + writeback = 1'b1; + casex ({Page2, Page3, inst}) + 10'b1010xx0011: // 1083, 1093, 10A3, 10B3 CMPD + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b1010xx1100: // 108C, 109C, 10AC, 10BC CMPY + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b0110xx0011: // 1183, 1193, 11A3, 11B3 CMPU + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b0110xx1100: // 118C, 119C, 11AC, 11BC CMPS + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + 10'b0010xx1100: // 8C,9C,AC,BC CMPX + begin + aluop = ALUOP16_CMP; + writeback = 1'b0; + end + + 10'b0011xx0011: // C3, D3, E3, F3 ADDD + aluop = ALUOP16_ADD; + + 10'b0011xx1100: // CC, DC, EC, FC LDD + aluop = ALUOP16_LD; + 10'b001xxx1110: // 8E LDX, 9E LDX, AE LDX, BE LDX, CE LDU, DE LDU, EE LDU, FE LDU + aluop = ALUOP16_LD; + 10'b101xxx1110: // 108E LDY, 109E LDY, 10AE LDY, 10BE LDY, 10CE LDS, 10DE LDS, 10EE LDS, 10FE LDS + aluop = ALUOP16_LD; + + 10'b0010xx0011: // 83, 93, A3, B3 SUBD + aluop = ALUOP16_SUB; + + 10'H03A: // 3A ABX + aluop = ALUOP16_ADD; + + 10'b00001100xx: // $30-$33, LEAX, LEAY, LEAS, LEAU + aluop = ALUOP16_LEA; + + default: + aluop = ALUOP16_INVALID; + endcase + ALU16OpFromInst = {writeback, aluop}; +end +endfunction + +wire ALU16OpWriteback; +wire [2:0] ALU16Opcode; + +assign {ALU16OpWriteback, ALU16Opcode} = ALU16OpFromInst(InstPage2, InstPage3, Inst1); + +wire IsALU16Opcode = (ALU16Opcode != 3'b111); + +function [23:0] ALU16Inst(input [2:0] operation16, input [15:0] a_arg, input [15:0] b_arg, input [7:0] cc_arg); +reg [7:0] cc_out; +reg [15:0] ALUFn; +reg carry; +reg borrow; +begin + cc_out = cc_arg; + case (operation16) + ALUOP16_ADD: + begin + {cc_out[CC_C_BIT], ALUFn} = {1'b0, a_arg} + b_arg; + cc_out[CC_V_BIT] = (a_arg[15] & b_arg[15] & ~ALUFn[15]) | (~a_arg[15] & ~b_arg[15] & ALUFn[15]); + end + + ALUOP16_SUB: + begin + {cc_out[CC_C_BIT], ALUFn} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[15] & ~b_arg[15] & ~ALUFn[15]) | (~a_arg[15] & b_arg[15] & ALUFn[15]); + end + + ALUOP16_LD: + begin + ALUFn = b_arg; + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP16_CMP: + begin + {cc_out[CC_C_BIT], ALUFn} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[15] & ~b_arg[15] & ~ALUFn[15]) | (~a_arg[15] & b_arg[15] & ALUFn[15]); + end + + ALUOP16_LEA: + begin + ALUFn = a_arg; + end + + default: + ALUFn = 16'H0000; + + endcase + cc_out[CC_Z_BIT] = (ALUFn[15:0] == 16'H0000); + if (operation16 != ALUOP16_LEA) + cc_out[CC_N_BIT] = ALUFn[15]; + ALU16Inst = {cc_out, ALUFn}; +end +endfunction + +reg [2:0] ALU16_OP; +reg [15:0] ALU16_A; +reg [15:0] ALU16_B; +reg [7:0] ALU16_CC; + +// Top 8 bits == CC, bottom 8 bits = output value +wire [23:0] ALU16 = ALU16Inst(ALU16_OP, ALU16_A, ALU16_B, ALU16_CC); + + +///////////////////////////////////////////////////////////////// +// ALU + +// The ops are organized from the 4 low-order bits of the instructions for the first set of ops, then 16-31 are the second set - even though bit 4 isn't representative. +localparam ALUOP_NEG = 5'd0; +localparam ALUOP_COM = 5'd3; +localparam ALUOP_LSR = 5'd4; +localparam ALUOP_ROR = 5'd6; +localparam ALUOP_ASR = 5'd7; +localparam ALUOP_ASL = 5'd8; +localparam ALUOP_LSL = 5'd8; +localparam ALUOP_ROL = 5'd9; +localparam ALUOP_DEC = 5'd10; +localparam ALUOP_INC = 5'd12; +localparam ALUOP_TST = 5'd13; +localparam ALUOP_CLR = 5'd15; + +localparam ALUOP_SUB = 5'd16; +localparam ALUOP_CMP = 5'd17; +localparam ALUOP_SBC = 5'd18; +localparam ALUOP_AND = 5'd20; +localparam ALUOP_BIT = 5'd21; +localparam ALUOP_LD = 5'd22; +localparam ALUOP_EOR = 5'd24; +localparam ALUOP_ADC = 5'd25; +localparam ALUOP_OR = 5'd26; +localparam ALUOP_ADD = 5'd27; + +function [5:0] ALUOpFromInst(input [7:0] inst); +reg [4:0] op; +reg writeback; +begin + // Okay, this turned out to be simpler than I expected ... + op = {inst[7], inst[3:0]}; + case (op) + ALUOP_CMP: + writeback = 0; + ALUOP_TST: + writeback = 0; + ALUOP_BIT: + writeback = 0; + default: + writeback = 1; + endcase + ALUOpFromInst = {writeback, op}; +end +endfunction + +wire [4:0] ALU8Op; +wire ALU8Writeback; + +assign {ALU8Writeback, ALU8Op} = ALUOpFromInst(Inst1); + +reg [7:0] ALU_A; +reg [7:0] ALU_B; +reg [7:0] ALU_CC; +reg [4:0] ALU_OP; + + +function [15:0] ALUInst(input [4:0] operation, input [7:0] a_arg, input [7:0] b_arg, input [7:0] cc_arg); +reg [7:0] cc_out; +reg [7:0] ALUFn; +reg carry; +reg borrow; +begin + cc_out = cc_arg; + case (operation) + ALUOP_NEG: + begin + ALUFn[7:0] = ~a_arg + 1'b1; + cc_out[CC_C_BIT] = (ALUFn[7:0] != 8'H00); + cc_out[CC_V_BIT] = (a_arg == 8'H80); + end + + ALUOP_LSL: + begin + {cc_out[CC_C_BIT], ALUFn} = {a_arg, 1'b0}; + cc_out[CC_V_BIT] = a_arg[7] ^ a_arg[6]; + end + + ALUOP_LSR: + begin + {ALUFn, cc_out[CC_C_BIT]} = {1'b0, a_arg}; + end + + ALUOP_ASR: + begin + {ALUFn, cc_out[CC_C_BIT]} = {a_arg[7], a_arg}; + end + + ALUOP_ROL: + begin + {cc_out[CC_C_BIT], ALUFn} = {a_arg, cc_arg[CC_C_BIT]}; + cc_out[CC_V_BIT] = a_arg[7] ^ a_arg[6]; + end + + ALUOP_ROR: + begin + {ALUFn, cc_out[CC_C_BIT]} = {cc_arg[CC_C_BIT], a_arg}; + end + + ALUOP_OR: + begin + ALUFn[7:0] = (a_arg | b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_ADD: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} + {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[7] & b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & ~b_arg[7] & ALUFn[7]); + cc_out[CC_H_BIT] = a_arg[4] ^ b_arg[4] ^ ALUFn[4]; + end + + ALUOP_SUB: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[7] & ~b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & b_arg[7] & ALUFn[7]); + end + + ALUOP_AND: + begin + ALUFn[7:0] = (a_arg & b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_BIT: + begin + ALUFn[7:0] = (a_arg & b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_EOR: + begin + ALUFn[7:0] = (a_arg ^ b_arg); + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_CMP: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} - {1'b0, b_arg}; + cc_out[CC_V_BIT] = (a_arg[7] & ~b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & b_arg[7] & ALUFn[7]); + end + + ALUOP_COM: + begin + ALUFn[7:0] = ~a_arg; + cc_out[CC_V_BIT] = 1'b0; + cc_out[CC_C_BIT] = 1'b1; + end + + ALUOP_ADC: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} + {1'b0, b_arg} + cc_arg[CC_C_BIT]; + cc_out[CC_V_BIT] = (a_arg[7] & b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & ~b_arg[7] & ALUFn[7]); + cc_out[CC_H_BIT] = a_arg[4] ^ b_arg[4] ^ ALUFn[4]; + end + + ALUOP_LD: + begin + ALUFn[7:0] = b_arg; + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_INC: + begin + {carry, ALUFn} = {1'b0, a_arg} + 1'b1; + cc_out[CC_V_BIT] = (~a_arg[7] & ALUFn[7]); + end + + ALUOP_DEC: + begin + {carry, ALUFn[7:0]} = {1'b0, a_arg} - 1'b1; + cc_out[CC_V_BIT] = (a_arg[7] & ~ALUFn[7]); + end + + ALUOP_CLR: + begin + ALUFn[7:0] = 8'H00; + cc_out[CC_V_BIT] = 1'b0; + cc_out[CC_C_BIT] = 1'b0; + end + + ALUOP_TST: + begin + ALUFn[7:0] = a_arg; + cc_out[CC_V_BIT] = 1'b0; + end + + ALUOP_SBC: + begin + {cc_out[CC_C_BIT], ALUFn[7:0]} = {1'b0, a_arg} - {1'b0, b_arg} - cc_arg[CC_C_BIT]; + cc_out[CC_V_BIT] = (a_arg[7] & ~b_arg[7] & ~ALUFn[7]) | (~a_arg[7] & b_arg[7] & ALUFn[7]); + end + + default: + ALUFn = 8'H00; + + endcase + + cc_out[CC_N_BIT] = ALUFn[7]; + cc_out[CC_Z_BIT] = (ALUFn == 8'H00); + ALUInst = {cc_out[7:0], ALUFn[7:0]}; +end +endfunction + + +// Top 8 bits == CC, bottom 8 bits = output value +wire [15:0] ALU = ALUInst(ALU_OP, ALU_A, ALU_B, ALU_CC); + +//////////////////////////////////////////////////////////// + +localparam TYPE_INHERENT = 3'd0; +localparam TYPE_IMMEDIATE = 3'd1; +localparam TYPE_DIRECT = 3'd2; +localparam TYPE_RELATIVE = 3'd3; +localparam TYPE_INDEXED = 3'd4; +localparam TYPE_EXTENDED = 3'd5; + +localparam TYPE_INVALID = 3'd7; + +// Function to decode the addressing mode the instruction uses +function [2:0] addressing_mode_type(input [7:0] inst); +begin + casex (inst) + 8'b0000???? : addressing_mode_type = TYPE_DIRECT; + 8'b0001???? : + begin + casex (inst[3:0]) + 4'b0010: + addressing_mode_type = TYPE_INHERENT; + + 4'b0011: + addressing_mode_type = TYPE_INHERENT; + + 4'b1001: + addressing_mode_type = TYPE_INHERENT; + + 4'b1101: + addressing_mode_type = TYPE_INHERENT; + + 4'b0110: + addressing_mode_type = TYPE_RELATIVE; + + 4'b0111: + addressing_mode_type = TYPE_RELATIVE; + + 4'b1010: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1100: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1110: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1111: + addressing_mode_type = TYPE_IMMEDIATE; + + default: + addressing_mode_type = TYPE_INVALID; + endcase + end + + 8'b0010????: addressing_mode_type = TYPE_RELATIVE; + 8'b0011????: + begin + casex(inst[3:0]) + 4'b00??: + addressing_mode_type = TYPE_INDEXED; + + 4'b01??: + addressing_mode_type = TYPE_IMMEDIATE; + + 4'b1001: + addressing_mode_type = TYPE_INHERENT; + + 4'b101?: + addressing_mode_type = TYPE_INHERENT; + + 4'b1100: + addressing_mode_type = TYPE_INHERENT; + + 4'b1101: + addressing_mode_type = TYPE_INHERENT; + + 4'b1111: + addressing_mode_type = TYPE_INHERENT; + + default: + addressing_mode_type = TYPE_INVALID; + endcase + end + + 8'b010?????: addressing_mode_type = TYPE_INHERENT; + + 8'b0110????: addressing_mode_type = TYPE_INDEXED; + + 8'b0111????: addressing_mode_type = TYPE_EXTENDED; + + 8'b1000????: + begin + casex (inst[3:0]) + 4'b0111: addressing_mode_type = TYPE_INVALID; + 4'b1111: addressing_mode_type = TYPE_INVALID; + 4'b1101: addressing_mode_type = TYPE_RELATIVE; + default: addressing_mode_type = TYPE_IMMEDIATE; + endcase + end + + 8'b1001????: addressing_mode_type = TYPE_DIRECT; + 8'b1010????: addressing_mode_type = TYPE_INDEXED; + 8'b1011????: addressing_mode_type = TYPE_EXTENDED; + 8'b1100????: addressing_mode_type = TYPE_IMMEDIATE; + 8'b1101????: addressing_mode_type = TYPE_DIRECT; + 8'b1110????: addressing_mode_type = TYPE_INDEXED; + 8'b1111????: addressing_mode_type = TYPE_EXTENDED; + + endcase +end +endfunction + +wire [2:0] AddrModeType = addressing_mode_type(Inst1); + +////////////////////////////////////////////////// + +// Individual opcodes that are the top of a column of states. + +localparam OPCODE_INH_ABX = 8'H3A; +localparam OPCODE_INH_RTS = 8'H39; +localparam OPCODE_INH_RTI = 8'H3B; +localparam OPCODE_INH_CWAI = 8'H3C; +localparam OPCODE_INH_MUL = 8'H3D; +localparam OPCODE_INH_SWI = 8'H3F; +localparam OPCODE_INH_SEX = 8'H1D; +localparam OPCODE_INH_NOP = 8'H12; +localparam OPCODE_INH_SYNC = 8'H13; +localparam OPCODE_INH_DAA = 8'H19; + +localparam OPCODE_IMM_ORCC = 8'H1A; +localparam OPCODE_IMM_ANDCC = 8'H1C; +localparam OPCODE_IMM_EXG = 8'H1E; +localparam OPCODE_IMM_TFR = 8'H1F; +localparam OPCODE_IMM_PSHS = 8'H34; +localparam OPCODE_IMM_PULS = 8'H35; +localparam OPCODE_IMM_PSHU = 8'H36; +localparam OPCODE_IMM_PULU = 8'H37; + +localparam OPCODE_IMM_SUBD = 8'H83; +localparam OPCODE_IMM_CMPX = 8'H8C; +localparam OPCODE_IMM_LDX = 8'H8E; +localparam OPCODE_IMM_ADDD = 8'HC3; +localparam OPCODE_IMM_LDD = 8'HCC; +localparam OPCODE_IMM_LDU = 8'HCE; +localparam OPCODE_IMM_CMPD = 8'H83; // Page2 +localparam OPCODE_IMM_CMPY = 8'H8C; // Page2 +localparam OPCODE_IMM_LDY = 8'H8E; // Page2 +localparam OPCODE_IMM_LDS = 8'HCE; // Page2 +localparam OPCODE_IMM_CMPU = 8'H83; // Page3 +localparam OPCODE_IMM_CMPS = 8'H8C; // Page3 + +localparam EXGTFR_REG_D = 4'H0; +localparam EXGTFR_REG_X = 4'H1; +localparam EXGTFR_REG_Y = 4'H2; +localparam EXGTFR_REG_U = 4'H3; +localparam EXGTFR_REG_S = 4'H4; +localparam EXGTFR_REG_PC = 4'H5; +localparam EXGTFR_REG_A = 4'H8; +localparam EXGTFR_REG_B = 4'H9; +localparam EXGTFR_REG_CC = 4'HA; +localparam EXGTFR_REG_DP = 4'HB; + +function IsALU8Set0(input [7:0] instr); +reg result; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = instr[7:4]; + lo = instr[3:0]; + if ( (hi == 4'H0) || (hi == 4'H4) || (hi == 4'H5) || (hi == 4'H6) || (hi == 4'H7) ) + begin + if ( (lo != 4'H1) && (lo != 4'H2) && (lo != 4'H5) && (lo != 4'HB) && (lo != 4'HE) ) // permit NEG, COM, LSR, ROR, ASR, ASL/LSL, ROL, DEC, INC, TST, CLR + result = 1; + else + result = 0; + end + else + result = 0; + IsALU8Set0 = result; +end +endfunction + +function IsALU8Set1(input [7:0] instr); +reg result; +reg [3:0] hi; +reg [3:0] lo; +begin + hi = instr[7:4]; + lo = instr[3:0]; + if ( (hi >= 4'H8) ) + begin + if ( (lo <= 4'HB) && (lo != 4'H3) && (lo != 4'H7) ) // 8-bit SUB, CMP, SBC, AND, BIT, LD, EOR, ADC, OR, ADD + result = 1; + else + result = 0; + end + else + result = 0; + IsALU8Set1 = result; +end +endfunction + +// Determine if the instruction is performing an 8-bit op (ALU only) +function ALU8BitOp(input [7:0] instr); +begin + ALU8BitOp = IsALU8Set0(instr) | IsALU8Set1(instr); +end +endfunction + +wire Is8BitInst = ALU8BitOp(Inst1); + +function IsRegA(input [7:0] instr); +reg result; +reg [3:0] hi; +begin + hi = instr[7:4]; + if ((hi == 4'H4) || (hi == 4'H8) || (hi == 4'H9) || (hi == 4'HA) || (hi == 4'HB) ) + result = 1; + else + result = 0; + IsRegA = result; +end +endfunction + +wire IsTargetRegA = IsRegA(Inst1); + +// +// +// Decode +// 00-0F = DIRECT +// 10-1F = INHERENT, RELATIVE, IMMEDIATE +// 20-2F = RELATIVE +// 30-3F = INDEXED, IMMEDIATE (pus, pul), INHERENT +// 40-4F = INHERENT +// 50-5F = INHERENT +// 60-6F = INDEXED +// 70-7F = EXTENDED +// 80-8F = IMMEDIATE, RELATIVE (BSR) +// 90-9F = DIRECT +// A0-AF = INDEXED +// B0-BF = EXTENDED +// C0-CF = IMMEDIATE +// D0-DF = DIRECT +// E0-EF = INDEXED +// F0-FF = EXTENDED + +// DIRECT; 00-0F, 90-9F, D0-DF +// INHERENT; 10-1F (12, 13, 19, 1D), 30-3F (39-3F), 40-4F, 50-5F, +// RELATIVE: 10-1F (16, 17), 20-2F, 80-8F (8D) +// IMMEDIATE: 10-1F (1A, 1C, 1E, 1F), 30-3F (34-37), 80-8F (80-8C, 8E), C0-CF +// INDEXED: 60-6F, A0-AF, E0-EF +// EXTENDED: 70-7F, B0-Bf, F0-FF + +localparam INST_LBRA = 8'H16; // always -- shitty numbering, damnit +localparam INST_LBSR = 8'H17; // + +localparam INST_BRA = 8'H20; // always +localparam INST_BRN = 8'H21; // never +localparam INST_BHI = 8'H22; // CC.Z = 0 && CC.C = 0 +localparam INST_BLS = 8'H23; // CC.Z != 0 && CC.C != 0 +localparam INST_BCC = 8'H24; // CC.C = 0 +localparam INST_BHS = 8'H24; // same as BCC +localparam INST_BCS = 8'H25; // CC.C = 1 +localparam INST_BLO = 8'H25; // same as BCS +localparam INST_BNE = 8'H26; // CC.Z = 0 +localparam INST_BEQ = 8'H27; // CC.Z = 1 +localparam INST_BVC = 8'H28; // V = 1 +localparam INST_BVS = 8'H29; // V = 0 +localparam INST_BPL = 8'H2A; // CC.N = 0 +localparam INST_BMI = 8'H2B; // CC.N = 1 +localparam INST_BGE = 8'H2C; // CC.N = CC.V +localparam INST_BLT = 8'H2D; // CC.N != CC.V +localparam INST_BGT = 8'H2E; // CC.N = CC.V && CC.Z = 0 +localparam INST_BLE = 8'H2F; // CC.N != CC.V && CC.Z = 1 +localparam INST_BSR = 8'H8D; // always + +localparam NYB_BRA = 4'H0; // always +localparam NYB_BRN = 4'H1; // never +localparam NYB_BHI = 4'H2; // CC.Z = 0 && CC.C = 0 +localparam NYB_BLS = 4'H3; // CC.Z != 0 && CC.C != 0 +localparam NYB_BCC = 4'H4; // CC.C = 0 +localparam NYB_BHS = 4'H4; // same as BCC +localparam NYB_BCS = 4'H5; // CC.C = 1 +localparam NYB_BLO = 4'H5; // same as BCS +localparam NYB_BNE = 4'H6; // CC.Z = 0 +localparam NYB_BEQ = 4'H7; // CC.Z = 1 +localparam NYB_BVC = 4'H8; // V = 0 +localparam NYB_BVS = 4'H9; // V = 1 +localparam NYB_BPL = 4'HA; // CC.N = 0 +localparam NYB_BMI = 4'HB; // CC.N = 1 +localparam NYB_BGE = 4'HC; // CC.N = CC.V +localparam NYB_BLT = 4'HD; // CC.N != CC.V +localparam NYB_BGT = 4'HE; // CC.N = CC.V && CC.Z = 0 +localparam NYB_BLE = 4'HF; // CC.N != CC.V && CC.Z = 1 + + + +function take_branch(input [7:0] Inst1, input [7:0] cc); +begin + take_branch = 0; //default + if ( (Inst1 == INST_BSR) || (Inst1 == INST_LBSR) || (Inst1 == INST_LBRA) ) + take_branch = 1; + else + case (Inst1[3:0]) + NYB_BRA: + take_branch = 1; + NYB_BRN: + take_branch = 0; + NYB_BHI: + if ( ( cc[CC_Z_BIT] | cc[CC_C_BIT] ) == 0) + take_branch = 1; + NYB_BLS: + if ( cc[CC_Z_BIT] | cc[CC_C_BIT] ) + take_branch = 1; + NYB_BCC: + if ( cc[CC_C_BIT] == 0 ) + take_branch = 1; + NYB_BCS: + if ( cc[CC_C_BIT] == 1 ) + take_branch = 1; + NYB_BNE: + if ( cc[CC_Z_BIT] == 0 ) + take_branch = 1; + NYB_BEQ: + if ( cc[CC_Z_BIT] == 1 ) + take_branch = 1; + NYB_BVC: + if ( cc[CC_V_BIT] == 0) + take_branch = 1; + NYB_BVS: + if ( cc[CC_V_BIT] == 1) + take_branch = 1; + NYB_BPL: + if ( cc[CC_N_BIT] == 0 ) + take_branch = 1; + NYB_BMI: + if (cc[CC_N_BIT] == 1) + take_branch = 1; + NYB_BGE: + if ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 0) + take_branch = 1; + NYB_BLT: + if ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 1) + take_branch = 1; + NYB_BGT: + if ( ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 0) & (cc[CC_Z_BIT] == 0) ) + take_branch = 1; + NYB_BLE: + if ( ((cc[CC_N_BIT] ^ cc[CC_V_BIT]) == 1) | (cc[CC_Z_BIT] == 1) ) + take_branch = 1; + endcase +end +endfunction + +wire TakeBranch = take_branch(Inst1, cc); + +///////////////////////////////////////////////////////////////////// +// Convenience function for knowing the contents for TFR, EXG +function [15:0] EXGTFRRegister(input [3:0] regid); +begin + case (regid) + EXGTFR_REG_D: + EXGTFRRegister = {a, b}; + EXGTFR_REG_X: + EXGTFRRegister = x; + EXGTFR_REG_Y: + EXGTFRRegister = y; + EXGTFR_REG_U: + EXGTFRRegister = u; + EXGTFR_REG_S: + EXGTFRRegister = s; + EXGTFR_REG_PC: + EXGTFRRegister = pc_p1; // For both EXG and TFR, this is used on the 2nd byte in the instruction's cycle. The PC intended to transfer is actually the next byte. + EXGTFR_REG_DP: + EXGTFRRegister = {8'HFF, dp}; + EXGTFR_REG_A: + EXGTFRRegister = {8'HFF, a}; + EXGTFR_REG_B: + EXGTFRRegister = {8'HFF, b}; + EXGTFR_REG_CC: + EXGTFRRegister = {8'HFF, cc}; + default: + EXGTFRRegister = 16'H0; + endcase +end +endfunction +wire [15:0] EXGTFRRegA = EXGTFRRegister(D[7:4]); +wire [15:0] EXGTFRRegB = EXGTFRRegister(D[3:0]); + +// CPU state machine +always @(*) +begin + rLIC = 1'b0; + rAVMA = 1'b1; + rBUSY = 1'b0; + + addr_nxt = 16'HFFFF; + pc_p1 = (pc+16'H1); + pc_p2 = (pc+16'H2); + pc_p3 = (pc+16'H3); + s_p1 = (s+16'H1); + s_m1 = (s-16'H1); + u_p1 = (u+16'H1); + u_m1 = (u-16'H1); + addr_p1 = (addr+16'H1); + ea_p1 = (ea+16'H1); + BS_nxt = 1'b0; + BA_nxt = 1'b0; + + // These may be overridden below, but the "next" version by default should be + // the last latched version. + IntType_nxt = IntType; + NMIClear_nxt = NMIClear; + NextState_nxt = NextState; + a_nxt = a; + b_nxt = b; + x_nxt = x; + y_nxt = y; + s_nxt = s; + u_nxt = u; + cc_nxt = cc; + dp_nxt = dp; + pc_nxt = pc; + tmp_nxt = tmp; + ea_nxt = ea; + + ALU_A = 8'H00; + ALU_B = 8'H00; + ALU_CC = 8'H00; + ALU_OP = 5'H00; + + ALU16_OP = 3'H0; + ALU16_A = 16'H0000; + ALU16_B = 16'H0000; + ALU16_CC = 8'H00; + + DOutput = 8'H00; + RnWOut = 1'b1; // read + + Inst1_nxt = Inst1; + Inst2_nxt = Inst2; + Inst3_nxt = Inst3; + InstPage2_nxt = InstPage2; + InstPage3_nxt = InstPage3; + + CpuState_nxt = CpuState; + + case (CpuState) + CPUSTATE_RESET: + begin + addr_nxt = 16'HFFFF; + a_nxt = 0; + b_nxt = 0; + x_nxt = 0; + y_nxt = 0; + s_nxt = 16'HFFFD; // Take care about removing the reset of S. There's logic depending on the delta between s and s_nxt to clear NMIMask. + u_nxt = 0; + cc_nxt = CC_F | CC_I; // reset disables interrupts + dp_nxt = 0; + ea_nxt = 16'HFFFF; + + RnWOut = 1; // read + rLIC = 1'b0; // Instruction incomplete + NMIClear_nxt= 1'b0; + IntType_nxt = 3'b111; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_RESET0; + end + + CPUSTATE_RESET0: + begin + addr_nxt = `RESET_VECTOR; + rBUSY = 1'b1; + pc_nxt[15:8] = D[7:0]; + BS_nxt = 1'b1; // ACK RESET + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_RESET2; + end + + CPUSTATE_RESET2: + begin + addr_nxt = addr_p1; + BS_nxt = 1'b1; // ACK RESET + pc_nxt[7:0] = D[7:0]; + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_FETCH_I1: + begin + if (~DMABREQLatched) + begin + addr_nxt = pc; + RnWOut = 1'b1; + rAVMA = 1'b0; + tmp_nxt = {tmp[15:4], 4'b1111}; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_DMABREQ; + end + else if (~HALTLatched) + begin + addr_nxt = pc; + RnWOut = 1'b1; + rAVMA = 1'b0; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_HALTED; + end + else // not halting, run the inst byte fetch + begin + addr_nxt = pc; // Set the address bus for the next instruction, first byte + pc_nxt = pc_p1; + RnWOut = 1; // Set for a READ + Inst1_nxt = MappedInstruction; + InstPage2_nxt = 0; + InstPage3_nxt = 0; + + // New instruction fetch; service interrupts pending + if (NMILatched == 0) + begin + pc_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_NMI_START; + end + else if ((FIRQLatched == 0) && (cc[CC_F_BIT] == 0)) + begin + pc_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FIRQ_START; + end + else if ((IRQLatched == 0) && (cc[CC_I_BIT] == 0)) + begin + pc_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_START; + end + + // The actual 1st byte checks + else if (Inst1_nxt == 8'H10) // Page 2 Note, like the 6809, $10 $10 $10 $10 has the same effect as a single $10. + begin + InstPage2_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else if (Inst1_nxt == 8'H11) // Page 3 + begin + InstPage3_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I2; + end + end // if not halting + end + + CPUSTATE_FETCH_I1V2: + begin + addr_nxt = pc; // Set the address bus for the next instruction, first byte + pc_nxt = pc_p1; + RnWOut = 1; // Set for a READ + Inst1_nxt = MappedInstruction; + + if (Inst1_nxt == 8'H10) // Page 2 Note, like the 6809, $10 $10 $10 $10 has the same effect as a single $10. + begin + if (InstPage3 == 0) // $11 $11 $11 $11 ... $11 $10 still = Page 3 + InstPage2_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else if (Inst1_nxt == 8'H11) // Page 3 + begin + if (InstPage2 == 0) // $10 $10 ... $10 $11 still = Page 2 + InstPage3_nxt = 1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1V2; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I2; + end + end + + + CPUSTATE_FETCH_I2: // We've fetched the first byte. If a $10 or $11 (page select), mark those flags and fetch the next byte as instruction byte 1. + begin + addr_nxt = addr_p1; // Address bus++ + pc_nxt = pc_p1; + Inst2_nxt = D[7:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + + if (IsIllegalInstruction) // Skip illegal instructions + begin + + rAVMA = 1'b1; + CpuState_nxt = IllegalInstructionState; + rLIC = 1'b1; + end + else + begin + // First byte Decode for this stage + case (AddrModeType) + TYPE_INDEXED: + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDEXED_BASE; + end + + + TYPE_EXTENDED: + begin + ea_nxt[15:8] = Inst2_nxt; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_EXTENDED_ADDRLO; + end + TYPE_DIRECT: + begin + ea_nxt = {dp, Inst2_nxt}; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_DIRECT_DONTCARE; + end + + TYPE_INHERENT: + begin + if (Inst1 == OPCODE_INH_NOP) + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_DAA) // Bcd lunacy + begin + if ( ((cc[CC_C_BIT]) || (a[7:4] > 4'H9)) || + ((a[7:4] > 4'H8) && (a[3:0] > 4'H9)) ) + tmp_nxt[7:4] = 4'H6; + else + tmp_nxt[7:4] = 4'H0; + + if ((cc[CC_H_BIT]) || (a[3:0] > 4'H9)) + tmp_nxt[3:0] = 4'H6; + else + tmp_nxt[3:0] = 4'H0; + + // DAA handles carry in the weirdest way. + // If it's already set, it remains set, even if carry-out is 0. + // If it wasn't set, but the output of the operation is set, carry-out gets set. + {tmp_nxt[8], a_nxt} = {1'b0, a} + tmp_nxt[7:0]; + + cc_nxt[CC_C_BIT] = cc_nxt[CC_C_BIT] | tmp_nxt[8]; + + cc_nxt[CC_N_BIT] = a_nxt[7]; + cc_nxt[CC_Z_BIT] = (a_nxt == 8'H00); + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_SYNC) + begin + CpuState_nxt = CPUSTATE_SYNC; + rLIC = 1'b1; + rAVMA = 1'b0; + end + else if (Inst1 == OPCODE_INH_MUL) + begin + tmp_nxt = 16'H0000; + ea_nxt[15:8] = 8'H00; + ea_nxt[7:0] = a; + a_nxt = 8; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_MUL_ACTION; + end + else if (Inst1 == OPCODE_INH_RTS) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_RTS_HI; + end + else if (Inst1 == OPCODE_INH_RTI) + begin + rAVMA = 1'b1; + tmp_nxt = 16'H1001; // Set tmp[12] to indicate an RTI being processed, and at least pull CC. + CpuState_nxt = CPUSTATE_PUL_ACTION; + NextState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_SWI) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_SWI_START; + end + else if (Inst1 == OPCODE_INH_CWAI) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_CWAI; + end + else if (Inst1 == OPCODE_INH_SEX) + begin + a_nxt = {8{b[7]}}; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_INH_ABX) + begin + x_nxt = x + b; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_ABX_DONTCARE; + end + else + begin + ALU_OP = ALU8Op; + if (IsTargetRegA) + ALU_A = a; + else + ALU_A = b; + + ALU_B = 0; + ALU_CC = cc; + cc_nxt = ALU[15:8]; + + if (ALU8Writeback) + begin + if (IsTargetRegA) + a_nxt = ALU[7:0]; + else + b_nxt = ALU[7:0]; + end + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + if (IsOneByteInstruction(Inst1)) // This check is probably superfluous. Every inherent instruction is 1 byte on the 6809. + pc_nxt = pc; // The 6809 auto-reads 2 bytes for every instruction. :( Adjust by not incrementing PC on the 2nd byte read. + end + + TYPE_IMMEDIATE: + begin + if (IsSpecialImmediate) + begin + if (Inst1 == OPCODE_IMM_ANDCC) + begin + pc_nxt = pc_p1; + cc_nxt = cc & D; //cc_nxt & Inst2_nxt; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_CC_DONTCARE; + end + else if (Inst1 == OPCODE_IMM_ORCC) + begin + pc_nxt = pc_p1; + cc_nxt = cc | D; //cc_nxt | Inst2_nxt; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_CC_DONTCARE; + end + else if ( (Inst1 == OPCODE_IMM_PSHS) | (Inst1 == OPCODE_IMM_PSHU) ) + begin + pc_nxt = pc_p1; + tmp_nxt[15] = 1'b0; + tmp_nxt[14] = Inst1[1]; // Mark whether to save to U or S. + tmp_nxt[13] = 1'b0; // Not pushing due to an interrupt. + tmp_nxt[13:8] = 6'H00; + tmp_nxt[7:0] = Inst2_nxt; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PSH_DONTCARE1; + NextState_nxt = CPUSTATE_FETCH_I1; + end + else if ( (Inst1 == OPCODE_IMM_PULS) | (Inst1 == OPCODE_IMM_PULU) ) + begin + pc_nxt = pc_p1; + tmp_nxt[15] = 1'b0; + tmp_nxt[14] = Inst1[1]; // S (0) or U (1) stack in use. + tmp_nxt[13:8] = 6'H00; + tmp_nxt[7:0] = Inst2_nxt; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PUL_DONTCARE1; + NextState_nxt = CPUSTATE_FETCH_I1; + end + else if (Inst1 == OPCODE_IMM_TFR) + begin + // The second byte lists the registers; Top nybble is reg #1, bottom is reg #2. + + case (Inst2_nxt[3:0]) + EXGTFR_REG_D: + {a_nxt,b_nxt} = EXGTFRRegA; + EXGTFR_REG_X: + x_nxt = EXGTFRRegA; + EXGTFR_REG_Y: + y_nxt = EXGTFRRegA; + EXGTFR_REG_U: + u_nxt = EXGTFRRegA; + EXGTFR_REG_S: + s_nxt = EXGTFRRegA; + EXGTFR_REG_PC: + pc_nxt = EXGTFRRegA; + EXGTFR_REG_DP: + dp_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_A: + a_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_B: + b_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_CC: + cc_nxt = EXGTFRRegA[7:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE1; + + end + else if (Inst1 == OPCODE_IMM_EXG) + begin + // The second byte lists the registers; Top nybble is reg #1, bottom is reg #2. + + case (Inst2_nxt[7:4]) + EXGTFR_REG_D: + {a_nxt,b_nxt} = EXGTFRRegB; + EXGTFR_REG_X: + x_nxt = EXGTFRRegB; + EXGTFR_REG_Y: + y_nxt = EXGTFRRegB; + EXGTFR_REG_U: + u_nxt = EXGTFRRegB; + EXGTFR_REG_S: + s_nxt = EXGTFRRegB; + EXGTFR_REG_PC: + pc_nxt = EXGTFRRegB; + EXGTFR_REG_DP: + dp_nxt = EXGTFRRegB[7:0]; + EXGTFR_REG_A: + a_nxt = EXGTFRRegB[7:0]; + EXGTFR_REG_B: + b_nxt = EXGTFRRegB[7:0]; + EXGTFR_REG_CC: + cc_nxt = EXGTFRRegB[7:0]; + default: + begin + end + endcase + case (Inst2_nxt[3:0]) + EXGTFR_REG_D: + {a_nxt,b_nxt} = EXGTFRRegA; + EXGTFR_REG_X: + x_nxt = EXGTFRRegA; + EXGTFR_REG_Y: + y_nxt = EXGTFRRegA; + EXGTFR_REG_U: + u_nxt = EXGTFRRegA; + EXGTFR_REG_S: + s_nxt = EXGTFRRegA; + EXGTFR_REG_PC: + pc_nxt = EXGTFRRegA; + EXGTFR_REG_DP: + dp_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_A: + a_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_B: + b_nxt = EXGTFRRegA[7:0]; + EXGTFR_REG_CC: + cc_nxt = EXGTFRRegA[7:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE1; + end + end + // Determine if this is an 8-bit ALU operation. + else if (Is8BitInst) + begin + ALU_OP = ALU8Op; + if (IsTargetRegA) + ALU_A = a; + else + ALU_A = b; + + ALU_B = Inst2_nxt; + ALU_CC = cc; + cc_nxt = ALU[15:8]; + + if (ALU8Writeback) + begin + if (IsTargetRegA) + a_nxt = ALU[7:0]; + else + b_nxt = ALU[7:0]; + end + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else // Then it must be a 16 bit instruction + begin + // 83 SUBD + // 8C CMPX + // 8E LDX + // C3 ADDD + // CC LDD + // CE LDU + // 108E CMPD + // 108C CMPY + // 108E LDY + // 10CE LDS + // 1183 CMPU + // 118C CMPS + // Wow, they were just stuffing them in willy-nilly ... + + // LD* 16 bit immediate + if (IsALU16Opcode) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_16IMM_LO; + end + // there's a dead zone here; I need an else to take us back to CPUSTATE_FETCHI1 if we want to ignore illegal instructions, to CPUSTATE_DEAD if we want to catch them. + + end + + end + + TYPE_RELATIVE: + begin + // Is this a LB** or a B**? + // If InstPage2 is set, it's a long branch; if clear, a normal branch. + if ( (InstPage2) || (Inst1 == INST_LBRA) || (Inst1 == INST_LBSR) ) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_LBRA_OFFSETLOW; + end + else + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_BRA_DONTCARE; + end + + end + default: + begin + CpuState_nxt = CPUSTATE_FETCH_I1; + end + endcase + end + end + + + CPUSTATE_LBRA_OFFSETLOW: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + Inst3_nxt = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_LBRA_DONTCARE; + end + + CPUSTATE_LBRA_DONTCARE: + begin + addr_nxt = 16'HFFFF; + if ( TakeBranch ) + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_LBRA_DONTCARE2; + end + else + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + + CPUSTATE_BRA_DONTCARE: + begin + addr_nxt = 16'HFFFF; + tmp_nxt = pc; + if (TakeBranch) + begin + pc_nxt = pc + { {8{Inst2[7]}}, Inst2[7:0]}; // Sign-extend the 8 bit offset to 16. + + if (Inst1 == INST_BSR) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_DONTCARE1; + end + else + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + else + begin + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + end + + CPUSTATE_LBRA_DONTCARE2: + begin + tmp_nxt= pc; + addr_nxt = 16'HFFFF; + + // Take branch + pc_nxt = pc + {Inst2[7:0], Inst3[7:0]}; + if (Inst1 == INST_LBSR) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_DONTCARE1; + end + else + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + + CPUSTATE_BSR_DONTCARE1: + begin + addr_nxt = pc; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_BSR_DONTCARE2; + end + + CPUSTATE_BSR_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_RETURNLOW; + end + + CPUSTATE_BSR_RETURNLOW: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + DOutput[7:0] = tmp[7:0]; + RnWOut = 0; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_BSR_RETURNHIGH; + end + + CPUSTATE_BSR_RETURNHIGH: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + DOutput[7:0] = tmp[15:8]; + RnWOut = 0; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; // after this, RnWOut must go to 1, and the bus needs the PC placed on it. + end + + CPUSTATE_TFR_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE2; + end + + CPUSTATE_TFR_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE3; + end + + CPUSTATE_TFR_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TFR_DONTCARE4; + end + + CPUSTATE_TFR_DONTCARE4: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; // Instruction done! + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_EXG_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE2; + end + + CPUSTATE_EXG_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE3; + end + + CPUSTATE_EXG_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE4; + end + + CPUSTATE_EXG_DONTCARE4: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXG_DONTCARE5; + end + + CPUSTATE_EXG_DONTCARE5: + begin + rAVMA = 1'b0; + addr_nxt = 16'HFFFF; + CpuState_nxt = CPUSTATE_EXG_DONTCARE6; + end + + CPUSTATE_EXG_DONTCARE6: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; // Instruction done! + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_ABX_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; // Instruction done! + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_RTS_HI: + begin + addr_nxt = s; + s_nxt = s_p1; + pc_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_RTS_LO; + end + + CPUSTATE_RTS_LO: + begin + addr_nxt = s; + s_nxt = s_p1; + pc_nxt[7:0] = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_RTS_DONTCARE2; + end + + CPUSTATE_RTS_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_16IMM_LO: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + ALU16_B = {Inst2, D[7:0]}; + + case (ALU16Reg) + ALU16_REG_X: + ALU16_A = x; + ALU16_REG_D: + ALU16_A = {a, b}; + ALU16_REG_Y: + ALU16_A = y; + ALU16_REG_U: + ALU16_A = u; + ALU16_REG_S: + ALU16_A = s; + default: + ALU16_A = 16'H0; + endcase + + if (ALU16OpWriteback) + begin + case (ALU16Reg) + ALU16_REG_X: + {cc_nxt, x_nxt} = ALU16; + ALU16_REG_D: + {cc_nxt, a_nxt, b_nxt} = ALU16; + ALU16_REG_Y: + {cc_nxt, y_nxt} = ALU16; + ALU16_REG_U: + {cc_nxt, u_nxt} = ALU16; + ALU16_REG_S: + {cc_nxt, s_nxt} = ALU16; + default: + begin + end + endcase + end + else + cc_nxt = ALU16[23:16]; + + if (ALU16_OP == ALUOP16_LD) + begin + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_16IMM_DONTCARE; + end + end + + CPUSTATE_DIRECT_DONTCARE: + begin + addr_nxt = 16'HFFFF; + + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + CPUSTATE_ALU_EA: + begin + + // Is Figure 18/5 Column 2? JMP (not Immediate Mode) + // This actually isn't done here. All checks passing in to ALU_EA should check for a JMP; FIXME EVERYWHERE + + // Is Figure 18/5 Column 8? TST (not immediate mode) + // THIS IS BURIED IN THE COLUMN 3 section with comparisons to ALUOP_TST. + + // Is Figure 18/5 Column 3? + if (IsALU8Set1(Inst1)) + begin + addr_nxt = ea; + + ALU_OP = ALU8Op; + ALU_B = D[7:0]; + ALU_CC = cc; + + if (IsTargetRegA) + ALU_A = a; + else + ALU_A = b; + + cc_nxt = ALU[15:8]; + + if ( (ALU8Writeback) ) + begin + if (IsTargetRegA) + a_nxt = ALU[7:0]; + else + b_nxt = ALU[7:0]; + end + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + // Is Figure 18/5 Column 4? (Store, 8 bits) + else if (IsStore8) + begin + addr_nxt = ea; + RnWOut = 0; // write + + ALU_OP = ALUOP_LD; // load has the same CC characteristics as store + ALU_A = 8'H00; + ALU_CC = cc; + + case (Store8RegisterNum) + ST8_REG_A: + begin + DOutput = a; + ALU_B = a; + end + ST8_REG_B: + begin + DOutput = b; + ALU_B = b; + end + + + endcase + + cc_nxt = ALU[15:8]; + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + // Is Figure 18/5 Column 5? (Load, 16 bits) + else if (IsALU16Opcode & (ALU16Opcode == ALUOP16_LD)) + begin + addr_nxt = ea; + ea_nxt = ea_p1; + + case (ALU16Reg) + ALU16_REG_X: + x_nxt[15:8] = D[7:0]; + ALU16_REG_D: + a_nxt = D[7:0]; + ALU16_REG_Y: + y_nxt[15:8] = D[7:0]; + ALU16_REG_S: + s_nxt[15:8] = D[7:0]; + ALU16_REG_U: + u_nxt[15:8] = D[7:0]; + default: + begin + end + endcase + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_LD16_LO; + + end + + // Is Figure 18/5 Column 6? (Store, 16 bits) + else if (IsStore16) + begin + addr_nxt = ea; + ea_nxt = ea_p1; + + ALU16_OP = ALUOP16_LD; // LD and ST have the same CC characteristics + ALU16_CC = cc; + ALU16_A = 8'H00; + + case (StoreRegisterNum) + ST16_REG_X: + begin + DOutput[7:0] = x[15:8]; + ALU16_B = x; + end + ST16_REG_Y: + begin + DOutput[7:0] = y[15:8]; + ALU16_B = y; + end + ST16_REG_U: + begin + DOutput[7:0] = u[15:8]; + ALU16_B = u; + end + ST16_REG_S: + begin + DOutput[7:0] = s[15:8]; + ALU16_B = s; + end + ST16_REG_D: + begin + DOutput[7:0] = a[7:0]; + ALU16_B = {a,b}; + end + default: + begin + end + endcase + + cc_nxt = ALU16[23:16]; + + RnWOut = 0; // Write + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_ST16_LO; + end + + // Is Figure 18/5 Column 7? + else if (IsALU8Set0(Inst1)) + begin + // These are registerless instructions, ala + // ASL, ASR, CLR, COM, DEC, INC, (LSL), LSR, NEG, ROL, ROR + // and TST (special!) + // They require READ, Modify (the operation above), WRITE. Between the Read and the Write cycles, there's actually a /VMA + // cycle where the 6809 likely did the operation. We'll include a /VMA cycle for accuracy, but we'll do the work primarily in the first cycle. + addr_nxt = ea; + + ALU_OP = ALU8Op; + ALU_A = D[7:0]; + ALU_CC = cc; + tmp_nxt[15:8] = cc; // for debug only + tmp_nxt[7:0] = ALU[7:0]; + cc_nxt = ALU[15:8]; + if (ALU8Op == ALUOP_TST) + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TST_DONTCARE1; + end + else + begin + rAVMA = 1'b0; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_ALU_DONTCARE; + end + + end + + // Is Figure 18/5 Column 8? TST + // NOTE: + // THIS IS BURIED IN THE COLUMN 3 section with comparisons to ALUOP_TST. [Directly above.] + + + // Is Figure 18/5 Column 9? (16-bit ALU ops, non-load) + else if (IsALU16Opcode && (ALU16Opcode != ALUOP16_LD) && ((Inst1 < 8'H30) || (Inst1 > 8'H33)) ) // 30-33 = LEAX, LEAY, LEAS, LEAU; don't include them here. + begin + addr_nxt = ea; + ea_nxt = ea_p1; + + tmp_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_ALU16_LO; + + end + + // Is Figure 18/5 Column 10? JSR (not Immediate Mode) + else if ((Inst1 == 8'H9D) || (Inst1 == 8'HAD) || (Inst1 == 8'HBD)) // JSR + begin + pc_nxt = ea; + addr_nxt = ea; + tmp_nxt = pc; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_JSR_DONTCARE; + end + // Is Figure 18/5 Column 11? LEA(X,Y,S,U) + else if ((Inst1 >= 8'H30) && (Inst1<= 8'H33)) + begin + addr_nxt = 16'HFFFF; // Ack, actually a valid cycle, this isn't a dontcare (/VMA) cycle! + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + ALU16_A = ea; + + case (ALU16Reg) + ALU16_REG_X: + {cc_nxt, x_nxt} = ALU16; + ALU16_REG_Y: + {cc_nxt, y_nxt} = ALU16; + ALU16_REG_U: + u_nxt = ALU16[15:0]; + ALU16_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + + end + + end + + + CPUSTATE_ALU_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rBUSY = 1'b1; // We do nothing here, but on the real 6809, they did the modify phase here. :| + CpuState_nxt = CPUSTATE_ALU_WRITEBACK; + end + + CPUSTATE_ALU_WRITEBACK: + begin + addr_nxt = ea; + RnWOut = 0; // Write + DOutput = tmp[7:0]; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_LD16_LO: + begin + addr_nxt = ea; + + case (ALU16Reg) + ALU16_REG_X: + begin + x_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = x[15:8]; + end + ALU16_REG_D: + begin + b_nxt = D[7:0]; + ALU16_B[15:8] = a; + end + ALU16_REG_Y: + begin + y_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = y[15:8]; + end + ALU16_REG_S: + begin + s_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = s[15:8]; + end + ALU16_REG_U: + begin + u_nxt[7:0] = D[7:0]; + ALU16_B[15:8] = u[15:8]; + end + default: + begin + end + + endcase + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + ALU16_A = 8'H00; + ALU16_B[7:0] = D[7:0]; + cc_nxt = ALU16[23:16]; + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_ST16_LO: + begin + addr_nxt = ea; + ea_nxt = ea_p1; + case (StoreRegisterNum) + ST16_REG_X: + DOutput[7:0] = x[7:0]; + ST16_REG_Y: + DOutput[7:0] = y[7:0]; + ST16_REG_U: + DOutput[7:0] = u[7:0]; + ST16_REG_S: + DOutput[7:0] = s[7:0]; + ST16_REG_D: + DOutput[7:0] = b[7:0]; + default: + begin + end + endcase + RnWOut = 0; // write + + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_ALU16_LO: + begin + addr_nxt = ea; + + ALU16_OP = ALU16Opcode; + ALU16_CC = cc; + + ALU16_B = {tmp[15:8], D[7:0]}; + + case (ALU16Reg) + ALU16_REG_X: + ALU16_A = x; + ALU16_REG_D: + ALU16_A = {a, b}; + ALU16_REG_Y: + ALU16_A = y; + ALU16_REG_S: + ALU16_A = s; + ALU16_REG_U: + ALU16_A = u; + default: + ALU16_A = 16'H0; + + endcase + + if (ALU16OpWriteback) + begin + case (ALU16Reg) + ALU16_REG_X: + {cc_nxt, x_nxt} = ALU16; + ALU16_REG_D: + {cc_nxt, a_nxt, b_nxt} = ALU16; + ALU16_REG_Y: + {cc_nxt, y_nxt} = ALU16; + ALU16_REG_U: + {cc_nxt, u_nxt} = ALU16; + ALU16_REG_S: + {cc_nxt, s_nxt} = ALU16; + default: + begin + end + endcase + end + else + cc_nxt = ALU16[23:16]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_ALU16_DONTCARE; + end + + CPUSTATE_ALU16_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + + CPUSTATE_JSR_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_JSR_RETLO; + end + + CPUSTATE_JSR_RETLO: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + RnWOut = 0; + DOutput = tmp[7:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_JSR_RETHI; + end + + CPUSTATE_JSR_RETHI: + begin + addr_nxt = s_m1; + s_nxt = s_m1; + RnWOut = 0; + DOutput = tmp[15:8]; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_EXTENDED_ADDRLO: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + ea_nxt[7:0] = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_EXTENDED_DONTCARE; + end + + CPUSTATE_EXTENDED_DONTCARE: + begin + addr_nxt = 16'HFFFF; + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + CPUSTATE_INDEXED_BASE: + begin + addr_nxt = pc; + + Inst3_nxt = D[7:0]; + + case (IndexedRegister) + IDX_REG_X: + ALU16_A = x; + IDX_REG_Y: + ALU16_A = y; + IDX_REG_U: + ALU16_A = u; + IDX_REG_S: + ALU16_A = s; + IDX_REG_PC: + ALU16_A = pc_p1; + default: + ALU16_A = 16'H0; + endcase + ALU16_OP = ALUOP16_ADD; + + case (IndexedMode) + IDX_MODE_NOOFFSET: + begin + case (IndexedRegister) + IDX_REG_X: + ea_nxt = x; + IDX_REG_Y: + ea_nxt = y; + IDX_REG_U: + ea_nxt = u; + IDX_REG_S: + ea_nxt = s; + default: + ea_nxt = 16'H0; + endcase + + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea_nxt; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + end + + IDX_MODE_5BIT_OFFSET: + begin + // The offset is the bottom 5 bits of the Index Postbyte, which is Inst2 here. + // We'll sign-extend it to 16 bits. + ALU16_B = { {11{Inst2[4]}}, Inst2[4:0] }; + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + end + + + IDX_MODE_8BIT_OFFSET_PC: + begin + ALU16_B = { {8{D[7]}}, D[7:0] }; + pc_nxt = pc_p1; + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + end + + IDX_MODE_8BIT_OFFSET: + begin + ALU16_B = { {8{D[7]}}, D[7:0] }; + pc_nxt = pc_p1; + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + end + + IDX_MODE_A_OFFSET: + begin + ALU16_B = { {8{a[7]}}, a[7:0] }; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + ea_nxt = ALU16[15:0]; + end + + IDX_MODE_B_OFFSET: + begin + ALU16_B = { {8{b[7]}}, b[7:0] }; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_DONTCARE3; + ea_nxt = ALU16[15:0]; + end + + IDX_MODE_D_OFFSET: + begin + ALU16_B = {a, b}; + + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_DOFF_DONTCARE1; + end + + IDX_MODE_POSTINC1: + begin + ALU16_B = 16'H1; + ea_nxt = ALU16_A; + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + IDX_MODE_POSTINC2: + begin + ALU16_B = 16'H2; + ea_nxt = ALU16_A; + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE0; + end + + IDX_MODE_PREDEC1: + begin + ALU16_B = 16'HFFFF; // -1 + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + ea_nxt = ALU16[15:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + IDX_MODE_PREDEC2: + begin + ALU16_B = 16'HFFFE; // -2 + case (IndexedRegister) + IDX_REG_X: + x_nxt = ALU16[15:0]; + IDX_REG_Y: + y_nxt = ALU16[15:0]; + IDX_REG_U: + u_nxt = ALU16[15:0]; + IDX_REG_S: + s_nxt = ALU16[15:0]; + default: + begin + end + endcase + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE0; + end + + IDX_MODE_16BIT_OFFSET_PC: + begin + tmp_nxt[15:8] = D[7:0]; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFFSET_LO; + end + + IDX_MODE_16BIT_OFFSET: + begin + tmp_nxt[15:8] = D[7:0]; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFFSET_LO; + end + + IDX_MODE_EXTENDED_INDIRECT: + begin + ea_nxt[15:8] = D[7:0]; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_EXTIND_LO; + end + + default: + begin + rLIC = 1'b1; + CpuState_nxt = PostIllegalState; + end + + endcase + end + + CPUSTATE_IDX_OFFSET_LO: + begin + tmp_nxt[7:0] = D[7:0]; + addr_nxt = pc; + pc_nxt = pc_p1; + ALU16_B = tmp_nxt; + + case (IndexedRegister) + IDX_REG_X: + ALU16_A = x; + IDX_REG_Y: + ALU16_A = y; + IDX_REG_U: + ALU16_A = u; + IDX_REG_S: + ALU16_A = s; + IDX_REG_PC: + ALU16_A = pc; + default: + ALU16_A = 16'H0; + endcase + ALU16_OP = ALUOP16_ADD; + + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE1; + end + + + CPUSTATE_IDX_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + end + + CPUSTATE_IDX_16OFFSET_LO: + begin + addr_nxt = pc; + pc_nxt = pc_p1; + + case (IndexedRegister) + IDX_REG_X: + ALU16_A = x; + IDX_REG_Y: + ALU16_A = y; + IDX_REG_U: + ALU16_A = u; + IDX_REG_S: + ALU16_A = s; + IDX_REG_PC: + ALU16_A = pc_nxt; // Whups; tricky; not part of the actual pattern + default: + ALU16_A = x; // Default to something + endcase + + ALU16_OP = ALUOP16_ADD; + + ALU16_B = {tmp[15:8], D[7:0]}; + + ea_nxt = ALU16[15:0]; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE1; + end + + CPUSTATE_IDX_16OFF_DONTCARE1: + begin + addr_nxt = pc; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + CPUSTATE_IDX_16OFF_DONTCARE0: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + CPUSTATE_IDX_16OFF_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + if (IndexedRegister == IDX_REG_PC) + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_PC16OFF_DONTCARE; + end + else + begin + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE3; + end + end + + CPUSTATE_IDX_PC16OFF_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE3; + end + + + CPUSTATE_IDX_16OFF_DONTCARE3: + begin + addr_nxt = 16'HFFFF; + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + end + + CPUSTATE_IDX_DOFF_DONTCARE1: + begin + addr_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_DOFF_DONTCARE2; + end + + CPUSTATE_IDX_DOFF_DONTCARE2: + begin + addr_nxt = pc_p2; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IDX_16OFF_DONTCARE2; + end + + CPUSTATE_IDX_DOFF_DONTCARE3: + begin + addr_nxt = pc_p3; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_DOFF_DONTCARE2; + end + + CPUSTATE_IDX_EXTIND_LO: + begin + ea_nxt[7:0] = D[7:0]; + addr_nxt = pc; + pc_nxt = pc_p1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IDX_EXTIND_DONTCARE; + end + + CPUSTATE_IDX_EXTIND_DONTCARE: + begin + addr_nxt = pc; + if (IndexedIndirect) + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_HI; + end + else + begin + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + end + + CPUSTATE_INDIRECT_HI: + begin + addr_nxt = ea; + tmp_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + rBUSY = 1'b1; + CpuState_nxt = CPUSTATE_INDIRECT_LO; + end + + CPUSTATE_INDIRECT_LO: + begin + addr_nxt = ea_p1; + ea_nxt[15:8] = tmp_nxt[15:8]; + ea_nxt[7:0] = D[7:0]; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_INDIRECT_DONTCARE; + end + + CPUSTATE_INDIRECT_DONTCARE: + begin + addr_nxt = 16'HFFFF; + if (IsJMP(Inst1)) + begin + pc_nxt = ea; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + else + begin + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_ALU_EA; + end + end + + CPUSTATE_MUL_ACTION: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + // tmp = result + // ea = additor (the shifted multiplicand) + // a = counter + // b is the multiplier (which gets shifted right) + if (a != 8'H00) + begin + if (b[0]) + begin + tmp_nxt = tmp + ea; + end + ea_nxt = {ea[14:0], 1'b0}; + b_nxt = {1'b0, b[7:1]}; + a_nxt = a - 8'H1; + end + else + begin + {a_nxt, b_nxt} = tmp; + + cc_nxt[CC_Z_BIT] = (tmp == 0); + cc_nxt[CC_C_BIT] = tmp[7]; + rLIC = 1'b1; // Instruction done! + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + end + + CPUSTATE_PSH_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PSH_DONTCARE2; + end + + CPUSTATE_PSH_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PSH_DONTCARE3; + end + + CPUSTATE_PSH_DONTCARE3: + begin + addr_nxt = (Inst1[1]) ? u : s; + + CpuState_nxt = CPUSTATE_PSH_ACTION; + end + + CPUSTATE_PSH_ACTION: + begin + rAVMA = 1'b1; + if (tmp[7] & ~(tmp[15])) // PC_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = pc[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[7] & (tmp[15])) // PC_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = pc[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[7] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[6] & ~(tmp[15])) // U/S_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = (tmp[14]) ? s[7:0] : u[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[6] & (tmp[15])) // U/S_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = (tmp[14]) ? s[15:8] : u[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[6] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[5] & ~(tmp[15])) // Y_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = y[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[5] & (tmp[15])) // Y_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = y[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[5] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[4] & ~(tmp[15])) // X_LO + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = x[7:0]; + RnWOut = 1'b0; // write + tmp_nxt[15] = 1'b1; + end + else if (tmp[4] & (tmp[15])) // X_HI + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = x[15:8]; + RnWOut = 1'b0; // write + tmp_nxt[4] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[3]) // DP + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = dp; + RnWOut = 1'b0; // write + tmp_nxt[3] = 1'b0; + end + else if (tmp[2]) // B + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = b; + RnWOut = 1'b0; // write + tmp_nxt[2] = 1'b0; + end + else if (tmp[1]) // A + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = a; + RnWOut = 1'b0; // write + tmp_nxt[1] = 1'b0; + end + else if (tmp[0]) // CC + begin + addr_nxt = (tmp[14]) ? u_m1 : s_m1; + if (tmp[14]) + u_nxt = u_m1; + else + s_nxt = s_m1; + DOutput = cc; + RnWOut = 1'b0; // write + tmp_nxt[0] = 1'b0; + end + if (tmp[13]) // Then we're pushing for an IRQ, and LIC is supposed to be set. + rLIC = 1'b1; + if (tmp_nxt[7:0] == 8'H00) + begin + if (NextState == CPUSTATE_FETCH_I1) + begin + rAVMA = 1'b1; + rLIC = 1'b1; + end + else + rAVMA = 1'b0; + CpuState_nxt = NextState; + end + end + + CPUSTATE_PUL_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_PUL_DONTCARE2; + end + + CPUSTATE_PUL_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PUL_ACTION; + end + + CPUSTATE_PUL_ACTION: + begin + rAVMA = 1'b1; + if (tmp[0]) // CC + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + cc_nxt = D[7:0]; + if (tmp[12] == 1'b1) // This pull is from an RTI, the E flag comes from the retrieved CC, and set the tmp_nxt accordingly, indicating what other registers to retrieve + begin + if (D[CC_E_BIT]) + tmp_nxt[7:0] = 8'HFE; // Retrieve all registers (ENTIRE) [CC is already retrieved] + else + tmp_nxt[7:0] = 8'H80; // Retrieve PC and CC [CC is already retrieved] + end + else + tmp_nxt[0] = 1'b0; + end + else if (tmp[1]) // A + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + a_nxt = D[7:0]; + tmp_nxt[1] = 1'b0; + end + else if (tmp[2]) // B + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + b_nxt = D[7:0]; + tmp_nxt[2] = 1'b0; + end + else if (tmp[3]) // DP + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + dp_nxt = D[7:0]; + tmp_nxt[3] = 1'b0; + end + else if (tmp[4] & (~tmp[15])) // X_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + x_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[4] & tmp[15]) // X_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + x_nxt[7:0] = D[7:0]; + tmp_nxt[4] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[5] & (~tmp[15])) // Y_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + y_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[5] & tmp[15]) // Y_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + y_nxt[7:0] = D[7:0]; + tmp_nxt[5] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[6] & (~tmp[15])) // U/S_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + if (tmp[14]) + s_nxt[15:8] = D[7:0]; + else + u_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[6] & tmp[15]) // U/S_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + if (tmp[14]) + s_nxt[7:0] = D[7:0]; + else + u_nxt[7:0] = D[7:0]; + tmp_nxt[6] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else if (tmp[7] & (~tmp[15])) // PC_HI + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + pc_nxt[15:8] = D[7:0]; + tmp_nxt[15] = 1'b1; + end + else if (tmp[7] & tmp[15]) // PC_LO + begin + addr_nxt = (tmp[14]) ? u : s; + if (tmp[14]) + u_nxt = u_p1; + else + s_nxt = s_p1; + pc_nxt[7:0] = D[7:0]; + tmp_nxt[7] = 1'b0; + tmp_nxt[15] = 1'b0; + end + else + begin + addr_nxt = (tmp[14]) ? u : s; + if (NextState == CPUSTATE_FETCH_I1) + begin + rAVMA = 1'b1; + rLIC = 1'b1; + end + else + rAVMA = 1'b0; + CpuState_nxt = NextState; + end + end + + CPUSTATE_NMI_START: + begin + NMIClear_nxt = 1'b1; + addr_nxt = pc; + // tmp stands as the bits to push to the stack + tmp_nxt = 16'H20FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC; set LIC on every push + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + IntType_nxt = INTTYPE_NMI; + cc_nxt[CC_E_BIT] = 1'b1; + end + + CPUSTATE_IRQ_START: + begin + addr_nxt = pc; + tmp_nxt = 16'H20FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC; set LIC on every push + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + IntType_nxt = INTTYPE_IRQ; + cc_nxt[CC_E_BIT] = 1'b1; + end + + CPUSTATE_FIRQ_START: + begin + addr_nxt = pc; + tmp_nxt = 16'H2081; // Save to the S stack, PC, CC; set LIC on every push + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + IntType_nxt = INTTYPE_FIRQ; + cc_nxt[CC_E_BIT] = 1'b0; + end + + CPUSTATE_SWI_START: + begin + addr_nxt = pc; + tmp_nxt = 16'H00FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC + + NextState_nxt = CPUSTATE_IRQ_DONTCARE2; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_DONTCARE; + if (InstPage3) + IntType_nxt = INTTYPE_SWI3; + if (InstPage2) + IntType_nxt = INTTYPE_SWI2; + else + IntType_nxt = INTTYPE_SWI; + + cc_nxt[CC_E_BIT] = 1'b1; + end + + CPUSTATE_IRQ_DONTCARE: + begin + NMIClear_nxt = 1'b0; + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PSH_ACTION; + end + + + CPUSTATE_IRQ_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + rLIC = 1'b1; + end + + CPUSTATE_IRQ_VECTOR_HI: + begin + case (IntType) + INTTYPE_NMI: + begin + addr_nxt = `NMI_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_IRQ: + begin + addr_nxt = `IRQ_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI: + begin + addr_nxt = `SWI_VECTOR; + end + INTTYPE_FIRQ: + begin + addr_nxt = `FIRQ_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI2: + begin + addr_nxt = `SWI2_VECTOR; + end + INTTYPE_SWI3: + begin + addr_nxt = `SWI3_VECTOR; + end + default: // make the default an IRQ, even though it really should never happen + begin + addr_nxt = `IRQ_VECTOR; + BS_nxt = 1'b1; // ACK Interrupt + end + endcase + + pc_nxt[15:8] = D[7:0]; + rAVMA = 1'b1; + rBUSY = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_LO; + + + end + + CPUSTATE_IRQ_VECTOR_LO: + begin + case (IntType) + INTTYPE_NMI: + begin + addr_nxt = `NMI_VECTOR+16'H1; + cc_nxt[CC_I_BIT] = 1'b1; + cc_nxt[CC_F_BIT] = 1'b1; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_IRQ: + begin + addr_nxt = `IRQ_VECTOR+16'H1; + cc_nxt[CC_I_BIT] = 1'b1; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI: + begin + addr_nxt = `SWI_VECTOR+16'H1; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + rLIC = 1'b1; + end + INTTYPE_FIRQ: + begin + addr_nxt = `FIRQ_VECTOR+16'H1; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + BS_nxt = 1'b1; // ACK Interrupt + end + INTTYPE_SWI2: + begin + addr_nxt = `SWI2_VECTOR+16'H1; + rLIC = 1'b1; + end + INTTYPE_SWI3: + begin + addr_nxt = `SWI3_VECTOR+16'H1; + rLIC = 1'b1; + end + default: + begin + end + endcase + + pc_nxt[7:0] = D[7:0]; + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_INT_DONTCARE; + end + + CPUSTATE_INT_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + rLIC = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_CC_DONTCARE: + begin + addr_nxt = pc; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_TST_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_TST_DONTCARE2; + end + + CPUSTATE_TST_DONTCARE2: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_DEBUG: + begin + addr_nxt = tmp; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_16IMM_DONTCARE: + begin + addr_nxt = 16'HFFFF; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_SYNC: + begin + addr_nxt = 16'HFFFF; + BA_nxt = 1'b1; + rLIC = 1'b1; + rAVMA = 1'b0; + + if (~(NMILatched & FIRQLatched & IRQLatched)) + begin + CpuState_nxt = CPUSTATE_SYNC_EXIT; + end + end + + CPUSTATE_SYNC_EXIT: + begin + addr_nxt = 16'HFFFF; + BA_nxt = 1'b1; + rLIC = 1'b1; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + + CPUSTATE_DMABREQ: + begin + rAVMA = 1'b0; + addr_nxt = 16'HFFFF; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + tmp_nxt[3:0] = tmp[3:0] - 1'b1; + if ( (tmp[3:0] == 4'H0) | (DMABREQSample2) ) + begin + CpuState_nxt = CPUSTATE_DMABREQ_EXIT; + end + end + + CPUSTATE_DMABREQ_EXIT: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_HALTED: + begin + rAVMA = 1'b0; + addr_nxt = 16'HFFFF; + BS_nxt = 1'b1; + BA_nxt = 1'b1; + rLIC = 1'b1; + if (HALTSample2) + begin + CpuState_nxt = CPUSTATE_HALT_EXIT2; + end + end + + + CPUSTATE_HALT_EXIT2: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_FETCH_I1; + end + + CPUSTATE_STOP: + begin + addr_nxt = 16'HDEAD; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_STOP2; + end + + CPUSTATE_STOP2: + begin + addr_nxt = pc; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_STOP3; + end + + CPUSTATE_STOP3: + begin + addr_nxt = 16'H0000; //{Inst1, Inst2}; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_STOP; + end + + // The otherwise critically useful Figure 18 in the 6809 datasheet contains an error; + // it lists that CWAI has a tri-stated bus while it waits for an interrupt. + // That is not true. SYNC tristates the bus, as do things like /HALT and /DMABREQ. + // CWAI does not. It waits with /VMA cycles on the bus until an interrupt occurs. + // The implementation here fits with the 6809 Programming Manual and other Motorola + // sources, not with that typo in Figure 18. + CPUSTATE_CWAI: + begin + addr_nxt = pc; + cc_nxt = {1'b1, (cc[6:0] & Inst2[6:0])}; // Set E flag, AND CC with CWAI argument + tmp_nxt = 16'H00FF; // Save to the S stack, PC, U, Y, X, DP, B, A, CC + + NextState_nxt = CPUSTATE_CWAI_POST; + rAVMA = 1'b0; + CpuState_nxt = CPUSTATE_CWAI_DONTCARE1; + end + + CPUSTATE_CWAI_DONTCARE1: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b1; + CpuState_nxt = CPUSTATE_PSH_ACTION; + end + + CPUSTATE_CWAI_POST: + begin + addr_nxt = 16'HFFFF; + rAVMA = 1'b0; + + CpuState_nxt = CPUSTATE_CWAI_POST; + + // Wait for an interrupt + if (NMILatched == 0) + begin + rAVMA = 1'b1; + IntType_nxt = INTTYPE_NMI; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + end + else if ((FIRQLatched == 0) && (cc[CC_F_BIT] == 0)) + begin + rAVMA = 1'b1; + cc_nxt[CC_F_BIT] = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + IntType_nxt = INTTYPE_FIRQ; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + end + else if ((IRQLatched == 0) && (cc[CC_I_BIT] == 0)) + begin + rAVMA = 1'b1; + cc_nxt[CC_I_BIT] = 1'b1; + IntType_nxt = INTTYPE_IRQ; + CpuState_nxt = CPUSTATE_IRQ_VECTOR_HI; + end + end + + default: // Picky darned Verilog. + begin + CpuState_nxt = PostIllegalState; + end + + endcase +end + +endmodule + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809s.v b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809s.v new file mode 100644 index 00000000..9c49239a --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/mc6809-master/mc6809s.v @@ -0,0 +1,82 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 09/18/2016 09:25:01 PM +// Design Name: +// Module Name: 6809 Superset module of MC6809 and MC6809E signals +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module mc6809s( + input [7:0] D, + output [7:0] DOut, + output [15:0] ADDR, + output RnW, + input CLK4, + output BS, + output BA, + input nIRQ, + input nFIRQ, + input nNMI, + output AVMA, + output BUSY, + output LIC, + input nRESET, + input nHALT, + input nDMABREQ, + output E, + output Q, + output reg [1:0] clk4_cnt, + output [111:0] RegData +); + + reg rE; + reg rQ; + assign E = rE; + assign Q = rQ; + reg nCoreRESET; + + mc6809i corecpu(.D(D), .DOut(DOut), .ADDR(ADDR), .RnW(RnW), .E(rE), .Q(rQ), .BS(BS), .BA(BA), .nIRQ(nIRQ), .nFIRQ(nFIRQ), .nNMI(nNMI), .AVMA(AVMA), .BUSY(BUSY), .LIC(LIC), .nRESET(nCoreRESET), + .nDMABREQ(nDMABREQ), .nHALT(nHALT), .RegData(RegData) ); + + always @(posedge CLK4) + begin + clk4_cnt <= clk4_cnt+2'b01; + + if (nRESET == 0) + begin + clk4_cnt <= 0; + nCoreRESET <= 0; + end + + if ( clk4_cnt == 2'b00 ) // RISING EDGE OF E + rE <= 1; + + if (clk4_cnt == 2'b01) // RISING EDGE OF Q + rQ <= 1; + + if (clk4_cnt == 2'b10) // FALLING EDGE OF E + rE <= 0; + + if (clk4_cnt == 2'b11) // FALLING EDGE OF Q + begin + rQ <= 0; + nCoreRESET <= 1; + end + end + + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace.vhd new file mode 100644 index 00000000..9693c4e4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace.vhd @@ -0,0 +1,160 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity PACE is + port + ( + -- clocks and resets + clkrst_i : in from_CLKRST_t; + vma : out std_logic; + -- controller inputs + inputs_p1 : in std_logic_vector(7 downto 0); + inputs_p2 : in std_logic_vector(7 downto 0); + inputs_sys : in std_logic_vector(7 downto 0); + inputs_dip1 : in std_logic_vector(7 downto 0); + inputs_dip2 : in std_logic_vector(7 downto 0); + -- video + video_i : in from_VIDEO_t; + video_o : out to_VIDEO_t; + + -- audio + audio_i : in from_AUDIO_t; + audio_o : out to_AUDIO_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + cpu_rom_addr : out std_logic_vector(15 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + tile_rom_addr : out std_logic_vector(12 downto 0); + tile_rom_do : in std_logic_vector(15 downto 0) + ); +end entity PACE; + +architecture SYN of PACE is + + constant CLK_1US_COUNTS : integer := + integer(27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY); + + signal to_tilemap_ctl : to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + signal from_tilemap_ctl : from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + signal to_bitmap_ctl : to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + signal from_bitmap_ctl : from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + signal to_sprite_reg : to_SPRITE_REG_t; + signal to_sprite_ctl : to_SPRITE_CTL_t; + signal from_sprite_ctl : from_SPRITE_CTL_t; + signal spr0_hit : std_logic; + + signal to_graphics : to_GRAPHICS_t; + signal from_graphics : from_GRAPHICS_t; + + signal to_sound : to_SOUND_t; + signal from_sound : from_sound_t; + +begin + + + platform_inst : entity work.platform + port map + ( + -- clocking and reset + clkrst_i => clkrst_i, + vma => vma, + -- controller inputs + inputs_p1 => inputs_p1, + inputs_p2 => inputs_p2, + inputs_sys => inputs_sys, + inputs_dip1 => inputs_dip1, + inputs_dip2 => inputs_dip2, + + -- graphics + bitmap_i => from_bitmap_ctl, + bitmap_o => to_bitmap_ctl, + + tilemap_i => from_tilemap_ctl, + tilemap_o => to_tilemap_ctl, + + sprite_reg_o => to_sprite_reg, + sprite_i => from_sprite_ctl, + sprite_o => to_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => from_graphics, + graphics_o => to_graphics, + + -- sound + snd_i => from_sound, + snd_o => to_sound, + platform_i => platform_i, + platform_o => platform_o, + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do, + tile_rom_addr => tile_rom_addr, + tile_rom_do => tile_rom_do + ); + + graphics_inst : entity work.Graphics + Port Map + ( + bitmap_ctl_i => to_bitmap_ctl, + bitmap_ctl_o => from_bitmap_ctl, + + tilemap_ctl_i => to_tilemap_ctl, + tilemap_ctl_o => from_tilemap_ctl, + + sprite_reg_i => to_sprite_reg, + sprite_ctl_i => to_sprite_ctl, + sprite_ctl_o => from_sprite_ctl, + spr0_hit => spr0_hit, + + graphics_i => to_graphics, + graphics_o => from_graphics, + + -- video (incl. clk) + video_i => video_i, + video_o => video_o + ); + + SOUND_BLOCK : block + signal snd_data_l : std_logic_vector(7 downto 0); + signal snd_data_r : std_logic_vector(7 downto 0); + signal snd_a : std_logic_vector(15 downto 0); + begin + + snd_a <= std_logic_vector(resize(unsigned(to_sound.a), snd_a'length)); + + sound_inst : entity work.Sound + generic map + ( + CLK_MHz => CLK0_FREQ_MHz + ) + port map + ( + sysclk => clkrst_i.clk(0), -- fudge for now + reset => clkrst_i.rst(0), + + sndif_rd => to_sound.rd, + sndif_wr => to_sound.wr, + sndif_addr => snd_a, + sndif_datai => to_sound.d, + + snd_clk => audio_o.clk, + snd_data_l => snd_data_l, + snd_data_r => snd_data_r, + sndif_datao => from_sound.d + ); + + -- route audio to both channels + audio_o.ldata <= snd_data_l & "00000000"; + audio_o.rdata <= snd_data_r & "00000000"; + + end block SOUND_BLOCK; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg.vhd new file mode 100644 index 00000000..0a6944d6 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg.vhd @@ -0,0 +1,147 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; + +package pace_pkg is + + -- + -- PACE constants which *MUST* be defined + -- + + type PACETargetType is + ( + PACE_TARGET_NANOBOARD_NB1, + PACE_TARGET_DE0, + PACE_TARGET_DE0_CV, -- 5CEBA4 + PACE_TARGET_DE0_NANO, -- EP4CE22 + PACE_TARGET_DE1, + PACE_TARGET_DE2, + PACE_TARGET_DE2_70, -- EP2C70 + PACE_TARGET_DE2_115, -- EP4CE115 + PACE_TARGET_P2, -- A02 build + PACE_TARGET_P2A, -- A04/A build (SRAM byte selects) + PACE_TARGET_P3M, + PACE_TARGET_S3A_700, -- Spartan 3A/N Starter Kit + PACE_TARGET_RC10, + PACE_TARGET_NX2_12, + PACE_TARGET_NEXYS_3, -- Digilent S6 board + PACE_TARGET_CYC3DEV, + PACE_TARGET_CYC5GXDEV, + PACE_TARGET_COCO3PLUS, + PACE_TARGET_S5A, + PACE_TARGET_CARTEBLANCHE_250, + PACE_TARGET_CARTEBLANCHE_500, + PACE_TARGET_BEMICRO, + PACE_TARGET_OPENEP3C16, + PACE_TARGET_MIST, + PACE_TARGET_CHAMELEON64, + PACE_TARGET_RETRORAMBLINGS_CYC3, -- Generic EP3C25 board with custom io boards + PACE_TARGET_S5A_R2_EP4C, + PACE_TARGET_S5A_R2_EP3SL, + PACE_TARGET_S5A_R2B0_EP4C, + PACE_TARGET_S5A_R2B0_EP3SL, + PACE_TARGET_S5A_R2C0_EP4C, + PACE_TARGET_S5A_R2C0_EP3SL, + PACE_TARGET_S5L_A0_EP4C, + PACE_TARGET_S5L_A0_EP3SL, + PACE_TARGET_NAVICO_ROCKY, + PACE_TARGET_NGPACE, + PACE_TARGET_S6M_A0 + ); + + type PACEFpgaVendor_t is + ( + PACE_FPGA_VENDOR_ALTERA, + PACE_FPGA_VENDOR_XILINX, + PACE_FPGA_VENDOR_LATTICE + ); + + type PACEFpgaFamily_t is + ( + PACE_FPGA_FAMILY_CYCLONE1, + PACE_FPGA_FAMILY_CYCLONE2, + PACE_FPGA_FAMILY_CYCLONE3, + PACE_FPGA_FAMILY_CYCLONE4, + PACE_FPGA_FAMILY_CYCLONE5, + PACE_FPGA_FAMILY_CYCLONE6, + PACE_FPGA_FAMILY_STRATIX_III, + PACE_FPGA_FAMILY_SPARTAN3, + PACE_FPGA_FAMILY_SPARTAN3A, + PACE_FPGA_FAMILY_SPARTAN3E + ); + + type PACEJamma_t is + ( + PACE_JAMMA_NONE, + PACE_JAMMA_MAPLE, + PACE_JAMMA_NGC, + PACE_JAMMA_PS2 + ); + + -- Types + + type ByteArrayType is array (natural range <>) of std_logic_vector(7 downto 0); + + type from_CLKRST_t is record + arst : std_logic; + arst_n : std_logic; + rst : std_logic_vector(0 to 3); + clk_ref : std_logic; --reference clock + clk : std_logic_vector(0 to 3); + end record; + + + + + type from_AUDIO_t is record + clk : std_logic; + end record; + + type to_AUDIO_t is record + clk : std_logic; + ldata : std_logic_vector(15 downto 0); + rdata : std_logic_vector(15 downto 0); + end record; + + function NULL_TO_AUDIO return to_AUDIO_t; + + type from_SPI_t is record + din : std_logic; + end record; + + type to_SPI_t is record + clk : std_logic; + mode : std_logic; + sel : std_logic; + ena : std_logic; + dout : std_logic; + end record; + + subtype SND_A_t is std_logic_vector(7 downto 0); + subtype SND_D_t is std_logic_vector(7 downto 0); + + type to_SOUND_t is record + a : SND_A_t; + d : SND_D_t; + rd : std_logic; + wr : std_logic; + end record; + + type from_SOUND_t is record + d : SND_D_t; + end record; + + function NULL_TO_SOUND return to_SOUND_t; + + -- create a constant that automatically determines + -- whether this is simulation or synthesis + constant IN_SIMULATION : BOOLEAN := false + -- synthesis translate_off + or true + -- synthesis translate_on + ; + constant IN_SYNTHESIS : boolean := not IN_SIMULATION; + +end; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg_body.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg_body.vhd new file mode 100644 index 00000000..552d7946 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pace_pkg_body.vhd @@ -0,0 +1,17 @@ +library work; + +package body pace_pkg is + + + function NULL_TO_AUDIO return to_AUDIO_t is + begin + return ('0', (others => '0'), (others => '0')); + end NULL_TO_AUDIO; + + function NULL_TO_SOUND return to_SOUND_t is + begin + return ((others => '0'), (others => '0'), '0', '0'); + end NULL_TO_SOUND; + + +end package body pace_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform.vhd new file mode 100644 index 00000000..bef11d3c --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform.vhd @@ -0,0 +1,567 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity platform is + port + ( + -- clocking and reset + clkrst_i : in from_CLKRST_t; + vma : out std_logic; + -- controller inputs + inputs_p1 : in std_logic_vector(7 downto 0); + inputs_p2 : in std_logic_vector(7 downto 0); + inputs_sys : in std_logic_vector(7 downto 0); + inputs_dip1 : in std_logic_vector(7 downto 0); + inputs_dip2 : in std_logic_vector(7 downto 0); + + bitmap_i : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + bitmap_o : out to_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + + tilemap_i : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + tilemap_o : out to_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + + sprite_reg_o : out to_SPRITE_REG_t; + sprite_i : in from_SPRITE_CTL_t; + sprite_o : out to_SPRITE_CTL_t; + spr0_hit : in std_logic; + + -- various graphics information + graphics_i : in from_GRAPHICS_t; + graphics_o : out to_GRAPHICS_t; + + snd_i : in from_SOUND_t; + snd_o : out to_SOUND_t; + platform_i : in from_PLATFORM_IO_t; + platform_o : out to_PLATFORM_IO_t; + + cpu_rom_addr : out std_logic_vector(15 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + tile_rom_addr : out std_logic_vector(12 downto 0); + tile_rom_do : in std_logic_vector(15 downto 0) + ); + +end platform; + +architecture SYN of platform is + + alias clk_20M : std_logic is clkrst_i.clk(0); + alias rst_20M : std_logic is clkrst_i.rst(0); + alias clk_video : std_logic is clkrst_i.clk(1); + signal cpu_reset : std_logic; + + -- uP signals + signal clk_2M_en : std_logic; + signal cpu_clk_en : std_logic; + signal cpu_r_wn : std_logic; + signal cpu_a : std_logic_vector(15 downto 0); + signal cpu_d_i : std_logic_vector(7 downto 0); + signal cpu_d_o : std_logic_vector(7 downto 0); + signal cpu_irq : std_logic; + + -- ROM signals + signal rom_cs : std_logic; + + -- RAM signals + signal wram_cs : std_logic; + signal wram_wr : std_logic; + signal wram_d_o : std_logic_vector(7 downto 0); + signal vram_cs : std_logic; + signal vram_d_o : std_logic_vector(7 downto 0); + signal vram_wr : std_logic; + signal cram_cs : std_logic; + signal cram_d_o : std_logic_vector(7 downto 0); + signal cram_wr : std_logic; + signal sprite_cs : std_logic; + + -- I/O signals + signal scroll_cs : std_logic; + signal in0_cs : std_logic; + signal in1_cs : std_logic; + signal in2_cs : std_logic; + signal dsw1_cs : std_logic; + signal dsw2_cs : std_logic; + + signal rom4_d_o : std_logic_vector(7 downto 0); + signal rom8_d_o : std_logic_vector(7 downto 0); + signal romC_d_o : std_logic_vector(7 downto 0); + signal rom_d_o : std_logic_vector(7 downto 0); + + signal cpu_rn_w : std_logic; + + COMPONENT mc6809i + GENERIC ( ILLEGAL_INSTRUCTIONS : STRING := "GHOST" ); + PORT + ( + D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); + DOut : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); + ADDR : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); + RnW : OUT STD_LOGIC; + E : IN STD_LOGIC; + Q : IN STD_LOGIC; + BS : OUT STD_LOGIC; + BA : OUT STD_LOGIC; + nIRQ : IN STD_LOGIC; + nFIRQ : IN STD_LOGIC; + nNMI : IN STD_LOGIC; + AVMA : OUT STD_LOGIC; + BUSY : OUT STD_LOGIC; + LIC : OUT STD_LOGIC; + nHALT : IN STD_LOGIC; + nRESET : IN STD_LOGIC; + nDMABREQ : IN STD_LOGIC; + RegData : OUT STD_LOGIC_VECTOR(111 DOWNTO 0) + ); +END COMPONENT; + +begin + + wram_cs <= '1' when STD_MATCH(cpu_a, "0000------------") else '0';-- RAM $0000-$0FFF + vram_cs <= '1' when STD_MATCH(cpu_a, "000100----------") else '0';-- video ram $1000-$13FF + cram_cs <= '1' when STD_MATCH(cpu_a, "000101----------") else '0';-- colour ram $1400-$17FF + sprite_cs <= '1' when STD_MATCH(cpu_a, X"20"&"001-----") else + '1' when STD_MATCH(cpu_a, X"20"&"01------") else + '0';-- sprite 'ram' $2020-$207F + -- I/O + scroll_cs <= '1' when STD_MATCH(cpu_a, X"3000") else '0'; + in0_cs <= '1' when STD_MATCH(cpu_a, X"3002") else '0'; + in1_cs <= '1' when STD_MATCH(cpu_a, X"3003") else '0'; + in2_cs <= '1' when STD_MATCH(cpu_a, X"3004") else '0'; + dsw1_cs <= '1' when STD_MATCH(cpu_a, X"3005") else '0'; + dsw2_cs <= '1' when STD_MATCH(cpu_a, X"3006") else '0'; + rom_cs <= '1' when (cpu_a > X"3FFF") else '0'; + + -- memory block write enables + wram_wr <= wram_cs and clk_2M_en and not cpu_r_wn; + vram_wr <= vram_cs and clk_2M_en and not cpu_r_wn; + cram_wr <= cram_cs and clk_2M_en and not cpu_r_wn; + + -- memory read mux + cpu_d_i <= wram_d_o when wram_cs = '1' else + vram_d_o when vram_cs = '1' else + cram_d_o when cram_cs = '1' else + inputs_p1 when in0_cs = '1' else + inputs_p2 when in1_cs = '1' else + inputs_sys when in2_cs = '1' else + inputs_dip1 when dsw1_cs = '1' else + inputs_dip2 when dsw2_cs = '1' else + -- flip off, service off, coin A, 1C1C +-- (X"80" or X"40" or X"10" or X"0F") when dsw1_cs = '1' else + -- freeze off, easy, 20K/80K/100K, 3 lives +-- (X"80" or X"60" or X"08" or X"03") when dsw2_cs = '1' else + rom_d_o when rom_cs = '1' else +-- cpu_rom_do when rom_cs = '1' else + (others => 'Z'); + + + -- system timing + process (clk_20M, rst_20M) + variable count : integer range 0 to 10-1; + begin + if rst_20M = '1' then + count := 0; + elsif rising_edge(clk_20M) then + clk_2M_en <= '0'; -- default + case count is + when 0 => + clk_2M_en <= '1'; + when others => + null; + end case; + if count = count'high then + count := 0; + else + count := count + 1; + end if; + end if; + end process; + + -- cpu09 core uses negative clock edge + --cpu_clk_en <= not (clk_2M_en and not platform_pause); + cpu_clk_en <= clk_2M_en; + + -- add game reset later + cpu_reset <= rst_20M; + +-- cpu_inst : entity work.cpu09 + -- generic map + -- ( + -- CLK_POL => '1' + -- ) +-- port map +-- ( +-- clk => clk_20M, + -- clk_en => cpu_clk_en, +-- rst => cpu_reset, +-- rw => cpu_r_wn, + -- vma => vma, + --ba => open, + --bs => open, + -- addr => cpu_a, +-- data_in => cpu_d_i, +-- data_out => cpu_d_o, +-- halt => '0', +-- hold => '0', +-- irq => cpu_irq, +-- firq => '0', +--- nmi => '0' +-- ); + +--changed for test + cpu_inst : mc6809i + port map + ( + D => cpu_d_i, + DOut => cpu_d_o, + ADDR => cpu_a, + RnW => cpu_r_wn, + E => cpu_clk_en, + Q => clk_20M, + BS => open, + BA => open, + nIRQ => not cpu_irq, + nFIRQ => '1', + nNMI => '1', + AVMA => open, + BUSY => open, + LIC => open, + nHALT => '1', + nRESET => not cpu_reset, + nDMABREQ => '1', + RegData => open + ); + + + +--WRAm_cs + wram_inst : entity work.spram + generic map + ( + widthad_a => 12, + width_a => 8 + ) + port map + ( + address => cpu_a(11 downto 0), + clock => clk_20M, + data => cpu_d_o, + wren => wram_wr, + q => wram_d_o + ); + + -- irq vblank interrupt + process (clk_20M, rst_20M) + variable vblank_r : std_logic_vector(3 downto 0); + alias vblank_prev : std_logic is vblank_r(vblank_r'left); + alias vblank_um : std_logic is vblank_r(vblank_r'left-1); + begin + if rst_20M = '1' then + vblank_r := (others => '0'); + cpu_irq <= '0'; + elsif rising_edge(clk_20M) then + if vblank_um = '1' and vblank_prev = '0' then + cpu_irq <= '1'; + elsif vblank_um = '0' then + cpu_irq <= '0'; + end if; + -- numeta the vblank + vblank_r := vblank_r(vblank_r'left-1 downto 0) & graphics_i.vblank; + end if; + end process; + + -- scroll register + process (clk_20M, rst_20M) + begin + if rst_20M = '1' then + graphics_o.bit8(0) <= (others => '0'); + elsif rising_edge(clk_20M) then + if scroll_cs and clk_2M_en and not cpu_r_wn then + graphics_o.bit8(0) <= cpu_d_o; + end if; + end if; + end process; + + + rom_4000_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_01e.hex", + widthad_a => 14 + ) + port map + ( + clock => clk_20M, + address => cpu_a(13 downto 0), + q => rom4_d_o + ); + + rom_8000_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_02e.hex", + widthad_a => 14 + ) + port map + ( + clock => clk_20M, + address => cpu_a(13 downto 0), + q => rom8_d_o + ); + + rom_C000_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_03e.hex", + widthad_a => 14 + ) + port map + ( + clock => clk_20M, + address => cpu_a(13 downto 0), + q => romC_d_o + ); + + rom_d_o <= rom4_d_o when STD_MATCH(cpu_a, "01--------------") else + rom8_d_o when STD_MATCH(cpu_a, "10--------------") else + romC_d_o; + +--cpu_rom_addr <= cpu_a(15 downto 0); +--rom_d_o <= cpu_rom_do; + + -- wren_a *MUST* be GND for CYCLONEII_SAFE_WRITE=VERIFIED_SAFE + vram_inst : entity work.dpram + generic map + ( + init_file => "./roms/vram.hex", + widthad_a => 10 + ) + port map + ( + clock_b => clk_20M, + address_b => cpu_a(9 downto 0), + wren_b => vram_wr, + data_b => cpu_d_o, + q_b => vram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).map_a(9 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).map_d(7 downto 0) + ); + tilemap_o(1).map_d(tilemap_o(1).map_d'left downto 8) <= (others => 'Z'); + + -- wren_a *MUST* be GND for CYCLONEII_SAFE_WRITE=VERIFIED_SAFE + cram_inst : entity work.dpram + generic map + ( + init_file => "./roms/cram.hex", + widthad_a => 10 + ) + port map + ( + clock_b => clk_20M, + address_b => cpu_a(9 downto 0), + wren_b => cram_wr, + data_b => cpu_d_o, + q_b => cram_d_o, + + clock_a => clk_video, + address_a => tilemap_i(1).attr_a(9 downto 0), + wren_a => '0', + data_a => (others => 'X'), + q_a => tilemap_o(1).attr_d(7 downto 0) + ); + tilemap_o(1).attr_d(tilemap_o(1).attr_d'left downto 8) <= (others => 'Z'); + + --tile rom (bit 0) + ss_7_b6_inst : entity work.sprom + generic map + ( + init_file => "./roms/ss_7_b6.hex", + widthad_a => 13 + ) + port map + ( + clock => clk_video, + address => tilemap_i(1).tile_a(12 downto 0), + q => tilemap_o(1).tile_d(7 downto 0) + ); + + -- tile rom (bit 1)---will not fit in FPGA Block Ram + -- ss_8_b5_inst : entity work.sprom + -- generic map + -- ( + -- init_file => "./roms/ss_8_b5.hex", + -- widthad_a => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address => tilemap_i(1).tile_a(12 downto 0), + -- q => tilemap_o(1).tile_d(15 downto 8) + -- ); + +--tile_rom_addr <= tilemap_i(1).tile_a(12 downto 0); +--tilemap_o(1).tile_d(15 downto 0) <= tile_rom_do(15 downto 0); + + BLK_SPRITES : block---will not fit in FPGA Block Ram + signal bit0_1 : std_logic_vector(7 downto 0); -- offset 0 + signal bit0_2 : std_logic_vector(7 downto 0); -- offset 0 + signal bit0_3 : std_logic_vector(7 downto 0); -- offset 16 + signal bit0_4 : std_logic_vector(7 downto 0); -- offset 16 + signal bit1_1 : std_logic_vector(7 downto 0); + signal bit1_2 : std_logic_vector(7 downto 0); + signal bit1_3 : std_logic_vector(7 downto 0); + signal bit1_4 : std_logic_vector(7 downto 0); + signal bit2_1 : std_logic_vector(7 downto 0); + signal bit2_2 : std_logic_vector(7 downto 0); + signal bit2_3 : std_logic_vector(7 downto 0); + signal bit2_4 : std_logic_vector(7 downto 0); + + signal sprite_a_00 : std_logic_vector(12 downto 0); + signal sprite_a_16 : std_logic_vector(12 downto 0); + + begin + + -- registers + sprite_reg_o.clk <= clk_20M; + sprite_reg_o.clk_ena <= clk_2M_en; + sprite_reg_o.a <= cpu_a(sprite_reg_o.a'range); + sprite_reg_o.d <= cpu_d_o; + sprite_reg_o.wr <= sprite_cs and clk_2M_en and not cpu_r_wn; + + -- - sprite data consists of: + -- 16 consecutive bytes for the 1st half + -- then the next 16 bytes for the 2nd half + -- - because we need to fetch an entire row at once + -- use dual-port memory to access both halves of each row + + -- generate address for each port + -- sprite_a_00 <= sprite_i.a(12 downto 5) & '0' & sprite_i.a(3 downto 0); + -- sprite_a_16 <= sprite_i.a(12 downto 5) & '1' & sprite_i.a(3 downto 0); + + -- sprite rom (bit 0, part 1/2) + -- ss_9_m5_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_9_m5.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit0_1, + -- address_b => sprite_a_16, + -- q_b => bit0_3 + -- ); + + -- sprite rom (bit 0, part 2/2) + -- ss_10_m6_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_10_m6.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + --- q_a => bit0_2, + -- address_b => sprite_a_16, + -- q_b => bit0_4 + -- ); + +-- sprite_o.d(15 downto 0) <= (bit0_1 & bit0_3) when sprite_i.a(13) = '0' else +-- (bit0_2 & bit0_4); + + -- sprite rom (bit 1, part 1/2) + -- ss_11_m3_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_11_m3.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit1_1, + -- address_b => sprite_a_16, + -- q_b => bit1_3 +-- ); + + -- sprite rom (bit 0, part 2/2) + -- ss_12_m4_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_12_m4.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, +-- address_a => sprite_a_00, + -- q_a => bit1_2, + -- address_b => sprite_a_16, +--- q_b => bit1_4 + --- ); + + -- sprite_o.d(31 downto 16) <= (bit1_1 & bit1_3) when sprite_i.a(13) = '0' else +-- (bit1_2 & bit1_4); + + -- sprite rom (bit 2, part 1/2) + -- ss_13_m1_inst : entity work.dprom_2r + -- generic map + -- ( + -- init_file => "./roms/ss_13_m1.hex", + -- widthad_a => 13, + -- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit2_1, + -- address_b => sprite_a_16, + -- q_b => bit2_3 + -- ); + + -- sprite rom (bit 2, part 2/2) +-- ss_14_m2_inst : entity work.dprom_2r +-- generic map +-- ( +-- init_file => "./roms/ss_14_m2.hex", + -- widthad_a => 13, +-- widthad_b => 13 + -- ) + -- port map + -- ( + -- clock => clk_video, + -- address_a => sprite_a_00, + -- q_a => bit2_2, + -- address_b => sprite_a_16, + -- q_b => bit2_4 + -- ); + + -- sprite_o.d(47 downto 32) <= (bit2_1 & bit2_3) when sprite_i.a(13) = '0' else + -- (bit2_2 & bit2_4); + + end block BLK_SPRITES; + + -- unused outputs + + graphics_o.bit16(0) <= (others => '0'); + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform_pkg.vhd new file mode 100644 index 00000000..83d03cdc --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/platform_pkg.vhd @@ -0,0 +1,212 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; + +package platform_pkg is + + constant PACE_HAS_PLL : boolean := true; + + constant PACE_VIDEO_CONTROLLER_TYPE : PACEVideoController_t := PACE_VIDEO_VGA_800x600_60Hz; --40 + constant PACE_CLK0_DIVIDE_BY : natural := 27; + constant PACE_CLK0_MULTIPLY_BY : natural := 20; -- 20MHz + constant PACE_CLK1_DIVIDE_BY : natural := 27; + constant PACE_CLK1_MULTIPLY_BY : natural := 40; -- 40MHz + constant PACE_VIDEO_H_SCALE : integer := 2; + constant PACE_VIDEO_V_SCALE : integer := 2; + constant PACE_VIDEO_H_SYNC_POLARITY : std_logic := '1'; + constant PACE_VIDEO_V_SYNC_POLARITY : std_logic := '1'; + + + constant PACE_VIDEO_BORDER_RGB : RGB_t := RGB_BLACK; + + constant PACE_VIDEO_NUM_BITMAPS : natural := 0; + constant PACE_VIDEO_NUM_TILEMAPS : natural := 1; + constant PACE_VIDEO_NUM_SPRITES : natural := 24; + constant PACE_VIDEO_H_SIZE : integer := 256; -- 240 + constant PACE_VIDEO_V_SIZE : integer := 256; -- 240 + constant PACE_VIDEO_L_CROP : integer := (256-240)/2; + constant PACE_VIDEO_R_CROP : integer := PACE_VIDEO_L_CROP; + constant PACE_VIDEO_PIPELINE_DELAY : integer := 3; + + constant PACE_INPUTS_NUM_BYTES : integer := 4; + + -- + -- Platform-specific constants (optional) + -- + + constant CLK0_FREQ_MHz : natural := + 27 * PACE_CLK0_MULTIPLY_BY / PACE_CLK0_DIVIDE_BY; + + constant WILLIAMS_CPU_CLK_ENA_DIVIDE_BY : natural := + CLK0_FREQ_MHz / 3; + + type palette_entry_t is array (0 to 2) of std_logic_vector(5 downto 0); + type palette_entry_a is array (0 to 255) of palette_entry_t; + + constant pal : palette_entry_a := + ( + 1 => (0=>"100111", 1=>"100111", 2=>"100111"), + 2 => (0=>"000000", 1=>"100011", 2=>"000000"), + 3 => (0=>"011100", 1=>"001011", 2=>"000111"), + 4 => (0=>"100111", 1=>"001011", 2=>"000111"), + 5 => (0=>"101111", 1=>"011000", 2=>"000000"), + 6 => (0=>"101111", 1=>"101111", 2=>"101111"), + 7 => (0=>"011100", 1=>"011100", 2=>"011100"), + 8 => (0=>"000000", 1=>"010000", 2=>"011000"), + 9 => (0=>"010000", 1=>"011000", 2=>"100111"), + 10 => (0=>"011000", 1=>"010000", 2=>"011000"), + 11 => (0=>"100011", 1=>"011000", 2=>"100011"), + 12 => (0=>"101011", 1=>"101011", 2=>"000000"), + 13 => (0=>"101011", 1=>"100111", 2=>"101011"), + 14 => (0=>"011100", 1=>"011100", 2=>"110100"), + 15 => (0=>"110100", 1=>"000000", 2=>"000000"), + 17 => (0=>"110100", 1=>"110100", 2=>"110100"), + 18 => (0=>"100111", 1=>"100111", 2=>"100111"), + 19 => (0=>"110100", 1=>"100111", 2=>"011100"), + 20 => (0=>"101011", 1=>"000000", 2=>"000000"), + 21 => (0=>"011100", 1=>"000000", 2=>"000000"), + 22 => (0=>"101011", 1=>"011100", 2=>"000000"), + 23 => (0=>"111000", 1=>"101111", 2=>"000000"), + 24 => (0=>"111100", 1=>"000000", 2=>"000000"), + 25 => (0=>"100011", 1=>"000000", 2=>"100111"), + 26 => (0=>"011000", 1=>"000000", 2=>"101011"), + 27 => (0=>"011100", 1=>"011100", 2=>"111000"), + 28 => (0=>"111100", 1=>"011100", 2=>"000000"), + 29 => (0=>"000000", 1=>"100011", 2=>"000000"), + 30 => (0=>"000000", 1=>"101011", 2=>"000000"), + 31 => (0=>"000011", 1=>"000011", 2=>"000011"), + others => (others => (others => '0')) + ); + + -- Colour Look-up Table (CLUT) : Table of palette entries + -- - each row has four (4) palette indexes + -- decoded from 2 bits of tile data + + type tile_clut_entry_t is array (0 to 3) of std_logic_vector(3 downto 0); + type tile_clut_entry_a is array (0 to 63) of tile_clut_entry_t; + + constant tile_clut : tile_clut_entry_a := + ( + 0 => (0=>X"0", 1=>X"B", 2=>X"0", 3=>X"0"), + 1 => (0=>X"0", 1=>X"C", 2=>X"0", 3=>X"0"), + 2 => (0=>X"0", 1=>X"D", 2=>X"0", 3=>X"0"), + 3 => (0=>X"0", 1=>X"E", 2=>X"0", 3=>X"0"), + 4 => (0=>X"0", 1=>X"F", 2=>X"0", 3=>X"0"), + 6 => (0=>X"0", 1=>X"1", 2=>X"0", 3=>X"0"), + 7 => (0=>X"0", 1=>X"2", 2=>X"0", 3=>X"0"), + 8 => (0=>X"0", 1=>X"3", 2=>X"0", 3=>X"0"), + 9 => (0=>X"0", 1=>X"4", 2=>X"0", 3=>X"0"), + 10 => (0=>X"0", 1=>X"5", 2=>X"0", 3=>X"0"), + 11 => (0=>X"0", 1=>X"6", 2=>X"0", 3=>X"0"), + 12 => (0=>X"0", 1=>X"7", 2=>X"0", 3=>X"0"), + 13 => (0=>X"0", 1=>X"8", 2=>X"0", 3=>X"0"), + 14 => (0=>X"0", 1=>X"9", 2=>X"0", 3=>X"0"), + 15 => (0=>X"0", 1=>X"A", 2=>X"0", 3=>X"0"), + 16 => (0=>X"0", 1=>X"8", 2=>X"9", 3=>X"E"), + 17 => (0=>X"0", 1=>X"A", 2=>X"B", 3=>X"D"), + 18 => (0=>X"0", 1=>X"3", 2=>X"4", 3=>X"5"), + 19 => (0=>X"0", 1=>X"7", 2=>X"1", 3=>X"6"), + 20 => (0=>X"0", 1=>X"3", 2=>X"4", 3=>X"2"), + 21 => (0=>X"0", 1=>X"7", 2=>X"0", 3=>X"6"), + 22 => (0=>X"0", 1=>X"2", 2=>X"3", 3=>X"4"), + 23 => (0=>X"0", 1=>X"2", 2=>X"A", 3=>X"B"), + 24 => (0=>X"0", 1=>X"9", 2=>X"6", 3=>X"E"), + 25 => (0=>X"0", 1=>X"1", 2=>X"6", 3=>X"7"), + 26 => (0=>X"0", 1=>X"7", 2=>X"1", 3=>X"6"), + 27 => (0=>X"0", 1=>X"2", 2=>X"C", 3=>X"6"), + 28 => (0=>X"0", 1=>X"C", 2=>X"F", 3=>X"2"), + 29 => (0=>X"0", 1=>X"2", 2=>X"B", 3=>X"6"), + 30 => (0=>X"0", 1=>X"2", 2=>X"F", 3=>X"6"), + 31 => (0=>X"0", 1=>X"2", 2=>X"B", 3=>X"D"), + 32 => (0=>X"0", 1=>X"2", 2=>X"1", 3=>X"6"), + 33 => (0=>X"0", 1=>X"2", 2=>X"9", 3=>X"E"), + 34 => (0=>X"0", 1=>X"2", 2=>X"4", 3=>X"F"), + 35 => (0=>X"0", 1=>X"2", 2=>X"9", 3=>X"6"), + 36 => (0=>X"0", 1=>X"2", 2=>X"F", 3=>X"6"), + 37 => (0=>X"0", 1=>X"C", 2=>X"3", 3=>X"5"), + 38 => (0=>X"0", 1=>X"1", 2=>X"3", 3=>X"5"), + 39 => (0=>X"0", 1=>X"4", 2=>X"5", 3=>X"6"), + 40 => (0=>X"0", 1=>X"7", 2=>X"1", 3=>X"5"), + 41 => (0=>X"0", 1=>X"9", 2=>X"E", 3=>X"C"), + 42 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"3"), + 43 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"6"), + 44 => (0=>X"0", 1=>X"1", 2=>X"5", 3=>X"6"), + 45 => (0=>X"0", 1=>X"4", 2=>X"5", 3=>X"2"), + 46 => (0=>X"0", 1=>X"4", 2=>X"5", 3=>X"C"), + 47 => (0=>X"0", 1=>X"E", 2=>X"9", 3=>X"6"), + 48 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"2"), + 49 => (0=>X"0", 1=>X"4", 2=>X"F", 3=>X"6"), + 50 => (0=>X"0", 1=>X"B", 2=>X"D", 3=>X"6"), + 51 => (0=>X"C", 1=>X"D", 2=>X"E", 3=>X"0"), + 52 => (0=>X"1", 1=>X"2", 2=>X"3", 3=>X"4"), + 53 => (0=>X"5", 1=>X"6", 2=>X"7", 3=>X"8"), + 54 => (0=>X"9", 1=>X"A", 2=>X"B", 3=>X"C"), + 55 => (0=>X"D", 1=>X"E", 2=>X"0", 3=>X"F"), + 56 => (0=>X"2", 1=>X"3", 2=>X"4", 3=>X"5"), + 57 => (0=>X"6", 1=>X"7", 2=>X"8", 3=>X"9"), + 58 => (0=>X"A", 1=>X"B", 2=>X"C", 3=>X"D"), + 59 => (0=>X"E", 1=>X"0", 2=>X"F", 3=>X"1"), + 60 => (0=>X"3", 1=>X"4", 2=>X"5", 3=>X"6"), + 61 => (0=>X"7", 1=>X"8", 2=>X"9", 3=>X"A"), + 62 => (0=>X"B", 1=>X"C", 2=>X"D", 3=>X"E"), + 63 => (0=>X"0", 1=>X"F", 2=>X"1", 3=>X"2"), + others => (others => X"0") + ); + + -- Colour Look-up Table (CLUT) : Table of palette entries + -- - each row has four (8) palette indexes + -- decoded from 8 bits of sprite data + + type sprite_clut_entry_t is array (0 to 7) of std_logic_vector(3 downto 0); + type sprite_clut_entry_a is array (0 to 31) of sprite_clut_entry_t; + + constant sprite_clut : sprite_clut_entry_a := + ( + 0 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"7", 5=>X"8", 6=>X"B", 7=>X"0"), + 1 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"C", 5=>X"6", 6=>X"B", 7=>X"0"), + 2 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"4", 4=>X"C", 5=>X"8", 6=>X"B", 7=>X"0"), + 3 => (0=>X"F", 1=>X"C", 2=>X"4", 3=>X"F", 4=>X"F", 5=>X"F", 6=>X"F", 7=>X"0"), + 4 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"6", 4=>X"7", 5=>X"E", 6=>X"B", 7=>X"0"), + 5 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"8", 4=>X"7", 5=>X"B", 6=>X"F", 7=>X"0"), + 6 => (0=>X"F", 1=>X"3", 2=>X"6", 3=>X"A", 4=>X"D", 5=>X"E", 6=>X"B", 7=>X"0"), + 7 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"8", 4=>X"7", 5=>X"B", 6=>X"E", 7=>X"C"), + 8 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"5", 4=>X"8", 5=>X"D", 6=>X"E", 7=>X"0"), + 9 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"F", 4=>X"7", 5=>X"E", 6=>X"D", 7=>X"0"), + 10 => (0=>X"F", 1=>X"1", 2=>X"4", 3=>X"7", 4=>X"8", 5=>X"2", 6=>X"C", 7=>X"0"), + 11 => (0=>X"F", 1=>X"1", 2=>X"4", 3=>X"7", 4=>X"5", 5=>X"2", 6=>X"C", 7=>X"0"), + 12 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"8", 5=>X"9", 6=>X"6", 7=>X"0"), + 13 => (0=>X"F", 1=>X"F", 2=>X"F", 3=>X"4", 4=>X"8", 5=>X"5", 6=>X"F", 7=>X"0"), + 14 => (0=>X"F", 1=>X"5", 2=>X"6", 3=>X"7", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"F"), + 15 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"4", 4=>X"C", 5=>X"F", 6=>X"B", 7=>X"0"), + 16 => (0=>X"F", 1=>X"F", 2=>X"8", 3=>X"4", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"C"), + 17 => (0=>X"F", 1=>X"F", 2=>X"8", 3=>X"4", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"C"), + 18 => (0=>X"F", 1=>X"1", 2=>X"6", 3=>X"7", 4=>X"8", 5=>X"D", 6=>X"C", 7=>X"E"), + 19 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"5", 4=>X"D", 5=>X"8", 6=>X"E", 7=>X"0"), + 20 => (0=>X"F", 1=>X"1", 2=>X"6", 3=>X"4", 4=>X"D", 5=>X"2", 6=>X"0", 7=>X"C"), + 21 => (0=>X"F", 1=>X"1", 2=>X"8", 3=>X"7", 4=>X"A", 5=>X"B", 6=>X"0", 7=>X"C"), + 22 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"B", 4=>X"2", 5=>X"8", 6=>X"6", 7=>X"0"), + 23 => (0=>X"F", 1=>X"1", 2=>X"4", 3=>X"C", 4=>X"7", 5=>X"8", 6=>X"6", 7=>X"0"), + 24 => (0=>X"F", 1=>X"1", 2=>X"D", 3=>X"E", 4=>X"6", 5=>X"7", 6=>X"8", 7=>X"0"), + 25 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"4", 4=>X"7", 5=>X"8", 6=>X"C", 7=>X"0"), + 26 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"3", 4=>X"A", 5=>X"B", 6=>X"0", 7=>X"6"), + 27 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"3", 4=>X"4", 5=>X"5", 6=>X"0", 7=>X"6"), + 28 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"3", 4=>X"D", 5=>X"E", 6=>X"0", 7=>X"6"), + 29 => (0=>X"F", 1=>X"1", 2=>X"F", 3=>X"E", 4=>X"7", 5=>X"A", 6=>X"B", 7=>X"0"), + 30 => (0=>X"F", 1=>X"1", 2=>X"2", 3=>X"4", 4=>X"6", 5=>X"7", 6=>X"8", 7=>X"0"), + 31 => (0=>X"F", 1=>X"1", 2=>X"3", 3=>X"7", 4=>X"A", 5=>X"6", 6=>X"9", 7=>X"0"), + others => (others => X"0") + ); + + type from_PLATFORM_IO_t is record + not_used : std_logic; + end record; + + type to_PLATFORM_IO_t is record + not_used : std_logic; + end record; + +end; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.qip b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.qip new file mode 100644 index 00000000..d4720390 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.qip @@ -0,0 +1,4 @@ +set_global_assignment -name IP_TOOL_NAME "ALTPLL" +set_global_assignment -name IP_TOOL_VERSION "13.1" +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) "pll_mist.vhd"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "pll_mist.ppf"] diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.vhd new file mode 100644 index 00000000..faf66714 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/pll_mist.vhd @@ -0,0 +1,429 @@ +-- megafunction wizard: %ALTPLL% +-- GENERATION: STANDARD +-- VERSION: WM1.0 +-- MODULE: altpll + +-- ============================================================ +-- File Name: pll_mist.vhd +-- Megafunction Name(s): +-- altpll +-- +-- Simulation Library Files(s): +-- altera_mf +-- ============================================================ +-- ************************************************************ +-- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +-- +-- 13.1.0 Build 162 10/23/2013 SJ Web Edition +-- ************************************************************ + + +--Copyright (C) 1991-2013 Altera Corporation +--Your use of Altera Corporation's design tools, logic functions +--and other software and tools, and its AMPP partner logic +--functions, and any output files from any of the foregoing +--(including device programming or simulation files), and any +--associated documentation or information are expressly subject +--to the terms and conditions of the Altera Program License +--Subscription Agreement, Altera MegaCore Function License +--Agreement, or other applicable license agreement, including, +--without limitation, that your use is for the sole purpose of +--programming logic devices manufactured by Altera and sold by +--Altera or its authorized distributors. Please refer to the +--applicable agreement for further details. + + +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY pll_mist IS + PORT + ( + areset : IN STD_LOGIC := '0'; + inclk0 : IN STD_LOGIC := '0'; + c0 : OUT STD_LOGIC ; + c1 : OUT STD_LOGIC ; + c2 : OUT STD_LOGIC ; + locked : OUT STD_LOGIC + ); +END pll_mist; + + +ARCHITECTURE SYN OF pll_mist IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (4 DOWNTO 0); + SIGNAL sub_wire1 : STD_LOGIC ; + SIGNAL sub_wire2 : STD_LOGIC ; + SIGNAL sub_wire3 : STD_LOGIC ; + SIGNAL sub_wire4 : STD_LOGIC ; + SIGNAL sub_wire5 : STD_LOGIC ; + SIGNAL sub_wire6 : STD_LOGIC_VECTOR (1 DOWNTO 0); + SIGNAL sub_wire7_bv : BIT_VECTOR (0 DOWNTO 0); + SIGNAL sub_wire7 : STD_LOGIC_VECTOR (0 DOWNTO 0); + + + + COMPONENT altpll + GENERIC ( + bandwidth_type : STRING; + clk0_divide_by : NATURAL; + clk0_duty_cycle : NATURAL; + clk0_multiply_by : NATURAL; + clk0_phase_shift : STRING; + clk1_divide_by : NATURAL; + clk1_duty_cycle : NATURAL; + clk1_multiply_by : NATURAL; + clk1_phase_shift : STRING; + clk2_divide_by : NATURAL; + clk2_duty_cycle : NATURAL; + clk2_multiply_by : NATURAL; + clk2_phase_shift : STRING; + compensate_clock : STRING; + inclk0_input_frequency : NATURAL; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + operation_mode : STRING; + pll_type : STRING; + port_activeclock : STRING; + port_areset : STRING; + port_clkbad0 : STRING; + port_clkbad1 : STRING; + port_clkloss : STRING; + port_clkswitch : STRING; + port_configupdate : STRING; + port_fbin : STRING; + port_inclk0 : STRING; + port_inclk1 : STRING; + port_locked : STRING; + port_pfdena : STRING; + port_phasecounterselect : STRING; + port_phasedone : STRING; + port_phasestep : STRING; + port_phaseupdown : STRING; + port_pllena : STRING; + port_scanaclr : STRING; + port_scanclk : STRING; + port_scanclkena : STRING; + port_scandata : STRING; + port_scandataout : STRING; + port_scandone : STRING; + port_scanread : STRING; + port_scanwrite : STRING; + port_clk0 : STRING; + port_clk1 : STRING; + port_clk2 : STRING; + port_clk3 : STRING; + port_clk4 : STRING; + port_clk5 : STRING; + port_clkena0 : STRING; + port_clkena1 : STRING; + port_clkena2 : STRING; + port_clkena3 : STRING; + port_clkena4 : STRING; + port_clkena5 : STRING; + port_extclk0 : STRING; + port_extclk1 : STRING; + port_extclk2 : STRING; + port_extclk3 : STRING; + self_reset_on_loss_lock : STRING; + width_clock : NATURAL + ); + PORT ( + areset : IN STD_LOGIC ; + clk : OUT STD_LOGIC_VECTOR (4 DOWNTO 0); + inclk : IN STD_LOGIC_VECTOR (1 DOWNTO 0); + locked : OUT STD_LOGIC + ); + END COMPONENT; + +BEGIN + sub_wire7_bv(0 DOWNTO 0) <= "0"; + sub_wire7 <= To_stdlogicvector(sub_wire7_bv); + sub_wire4 <= sub_wire0(2); + sub_wire3 <= sub_wire0(0); + sub_wire1 <= sub_wire0(1); + c1 <= sub_wire1; + locked <= sub_wire2; + c0 <= sub_wire3; + c2 <= sub_wire4; + sub_wire5 <= inclk0; + sub_wire6 <= sub_wire7(0 DOWNTO 0) & sub_wire5; + + altpll_component : altpll + GENERIC MAP ( + bandwidth_type => "AUTO", + clk0_divide_by => 27, + clk0_duty_cycle => 50, + clk0_multiply_by => 20, + clk0_phase_shift => "0", + clk1_divide_by => 27, + clk1_duty_cycle => 50, + clk1_multiply_by => 40, + clk1_phase_shift => "0", + clk2_divide_by => 50, + clk2_duty_cycle => 50, + clk2_multiply_by => 163, + clk2_phase_shift => "0", + compensate_clock => "CLK0", + inclk0_input_frequency => 37037, + intended_device_family => "Cyclone III", + lpm_hint => "CBX_MODULE_PREFIX=pll_mist", + lpm_type => "altpll", + operation_mode => "NORMAL", + pll_type => "AUTO", + port_activeclock => "PORT_UNUSED", + port_areset => "PORT_USED", + port_clkbad0 => "PORT_UNUSED", + port_clkbad1 => "PORT_UNUSED", + port_clkloss => "PORT_UNUSED", + port_clkswitch => "PORT_UNUSED", + port_configupdate => "PORT_UNUSED", + port_fbin => "PORT_UNUSED", + port_inclk0 => "PORT_USED", + port_inclk1 => "PORT_UNUSED", + port_locked => "PORT_USED", + port_pfdena => "PORT_UNUSED", + port_phasecounterselect => "PORT_UNUSED", + port_phasedone => "PORT_UNUSED", + port_phasestep => "PORT_UNUSED", + port_phaseupdown => "PORT_UNUSED", + port_pllena => "PORT_UNUSED", + port_scanaclr => "PORT_UNUSED", + port_scanclk => "PORT_UNUSED", + port_scanclkena => "PORT_UNUSED", + port_scandata => "PORT_UNUSED", + port_scandataout => "PORT_UNUSED", + port_scandone => "PORT_UNUSED", + port_scanread => "PORT_UNUSED", + port_scanwrite => "PORT_UNUSED", + port_clk0 => "PORT_USED", + port_clk1 => "PORT_USED", + port_clk2 => "PORT_USED", + port_clk3 => "PORT_UNUSED", + port_clk4 => "PORT_UNUSED", + port_clk5 => "PORT_UNUSED", + port_clkena0 => "PORT_UNUSED", + port_clkena1 => "PORT_UNUSED", + port_clkena2 => "PORT_UNUSED", + port_clkena3 => "PORT_UNUSED", + port_clkena4 => "PORT_UNUSED", + port_clkena5 => "PORT_UNUSED", + port_extclk0 => "PORT_UNUSED", + port_extclk1 => "PORT_UNUSED", + port_extclk2 => "PORT_UNUSED", + port_extclk3 => "PORT_UNUSED", + self_reset_on_loss_lock => "OFF", + width_clock => 5 + ) + PORT MAP ( + areset => areset, + inclk => sub_wire6, + clk => sub_wire0, + locked => sub_wire2 + ); + + + +END SYN; + +-- ============================================================ +-- CNX file retrieval info +-- ============================================================ +-- Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0" +-- Retrieval info: PRIVATE: BANDWIDTH STRING "1.000" +-- Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz" +-- Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low" +-- Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1" +-- Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0" +-- Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0" +-- Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0" +-- Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0" +-- Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0" +-- Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0" +-- Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0" +-- Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0" +-- Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0" +-- Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" +-- Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "27" +-- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "50" +-- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" +-- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "20.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "40.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "88.019997" +-- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0" +-- Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" +-- Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" +-- Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0" +-- Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0" +-- Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575" +-- Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1" +-- Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "27.000" +-- Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz" +-- Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000" +-- Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1" +-- Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1" +-- Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz" +-- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone III" +-- Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1" +-- Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1" +-- Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1" +-- Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available" +-- Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "deg" +-- Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT2 STRING "ps" +-- Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any" +-- Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" +-- Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" +-- Retrieval info: PRIVATE: MIRROR_CLK2 STRING "0" +-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "20" +-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "40" +-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "163" +-- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "20.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "13.50000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "88.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz" +-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT2 STRING "MHz" +-- Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0" +-- Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT2 STRING "0.00000000" +-- Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "deg" +-- Retrieval info: PRIVATE: PHASE_SHIFT_UNIT2 STRING "deg" +-- Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0" +-- Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "1" +-- Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" +-- Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0" +-- Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0" +-- Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0" +-- Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0" +-- Retrieval info: PRIVATE: RECONFIG_FILE STRING "pll_mist.mif" +-- Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0" +-- Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0" +-- Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0" +-- Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0" +-- Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000" +-- Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz" +-- Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500" +-- Retrieval info: PRIVATE: SPREAD_USE STRING "0" +-- Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" +-- Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" +-- Retrieval info: PRIVATE: STICKY_CLK1 STRING "1" +-- Retrieval info: PRIVATE: STICKY_CLK2 STRING "1" +-- Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" +-- Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1" +-- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" +-- Retrieval info: PRIVATE: USE_CLK0 STRING "1" +-- Retrieval info: PRIVATE: USE_CLK1 STRING "1" +-- Retrieval info: PRIVATE: USE_CLK2 STRING "1" +-- Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA1 STRING "0" +-- Retrieval info: PRIVATE: USE_CLKENA2 STRING "0" +-- Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0" +-- Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" +-- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all +-- Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO" +-- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "27" +-- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "20" +-- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "27" +-- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "40" +-- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "50" +-- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" +-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "163" +-- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" +-- Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" +-- Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037" +-- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" +-- Retrieval info: CONSTANT: LPM_TYPE STRING "altpll" +-- Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL" +-- Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO" +-- Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_USED" +-- Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena2 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED" +-- Retrieval info: CONSTANT: SELF_RESET_ON_LOSS_LOCK STRING "OFF" +-- Retrieval info: CONSTANT: WIDTH_CLOCK NUMERIC "5" +-- Retrieval info: USED_PORT: @clk 0 0 5 0 OUTPUT_CLK_EXT VCC "@clk[4..0]" +-- Retrieval info: USED_PORT: @inclk 0 0 2 0 INPUT_CLK_EXT VCC "@inclk[1..0]" +-- Retrieval info: USED_PORT: areset 0 0 0 0 INPUT GND "areset" +-- Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0" +-- Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1" +-- Retrieval info: USED_PORT: c2 0 0 0 0 OUTPUT_CLK_EXT VCC "c2" +-- Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0" +-- Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked" +-- Retrieval info: CONNECT: @areset 0 0 0 0 areset 0 0 0 0 +-- Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0 +-- Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 +-- Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 +-- Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1 +-- Retrieval info: CONNECT: c2 0 0 0 0 @clk 0 0 1 2 +-- Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0 +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.vhd TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.ppf TRUE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.inc FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.cmp FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.bsf FALSE +-- Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist_inst.vhd FALSE +-- Retrieval info: LIB_FILE: altera_mf +-- Retrieval info: CBX_MODULE_PREFIX: ON diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/cram.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/cram.hex new file mode 100644 index 00000000..43e8f186 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/cram.hex @@ -0,0 +1,65 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:10002000000C0C0C0C0C0C00000000000000282838 +:100030002828000000000000000000000000000070 +:1000400000002C2C2C2C2C2C2C2C0000002C2C2CCC +:100050002C2C2C2C2C0000000000000000000000C4 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000A3A2A34F00000000007A000000009F +:1000B0000000000000000000000000006E6E000064 +:1000C0000000A3A2A34F000000007A7A0000000005 +:1000D0000000000000000000000000006E6E000044 +:1000E0005959595959595959595959595959595980 +:1000F0000000595959595959595959595959595922 +:10010000595959595959595959595959595959595F +:100110000000595959595959595959595959595901 +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:1001600059595959595959595959595959594A4A1D +:100170004A4A4A4A4A4A5959595959595959595949 +:1001800059595959595959595959595959594A0047 +:1001900000000000004A595959595959595959599B +:1001A000000000000000000000000000000000004F +:1001B0000000C3000000000000000000000000007C +:1001C000000000000000000000000000000000002F +:1001D0000000C7C300000000000000000000000095 +:1001E000595959595959595959595959595959597F +:1001F000595959595959595959595959595959596F +:10020000595959595959595959595959595959595E +:10021000595959595959595959595959595959594E +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:1002600059595959595959595959595959595959FE +:1002700059595959595959595959595959595959EE +:1002800059595959595959595959595959595959DE +:1002900059595959595959595959595959595959CE +:1002A00000000000000000000000000000006E6E72 +:1002B000000000000000000000000000000000003E +:1002C00000000000000000000000000000006E6E52 +:1002D000000000000000000000000000000000001E +:1002E000595959595959595959595959595959597E +:1002F0005959595900005959595959595959595920 +:10030000595959595959595959595959595959595D +:1003100059595959000059595959595959595959FF +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:1003600059595959595959595959595959595959FD +:1003700059595959595959595959595959595959ED +:1003800059595959595959595959595959595959DD +:1003900059595959595959595959595959595959CD +:1003A000616161616161616161616161616161613D +:1003B000616161616161616161616161616161612D +:1003C000616161616161616161616161616161611D +:1003D000616161616161616161616161616161610D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson.zip b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson.zip new file mode 100644 index 00000000..d5b6fc40 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson.zip differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/make.bat b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/make.bat new file mode 100644 index 00000000..1f1c106b --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/make.bat @@ -0,0 +1,7 @@ +copy /b ss.01e + ss.02e + ss.03e cpu.rom + +copy /b ss_7.b6 + ss_8.b5 tile.rom + +copy /b ss_9.m5 + ss_10.m6 + ss_11.m3 + ss_12.m4 + ss_13.m1 + ss_14.m2 sprite.rom + +copy /b cpu.rom + tile.rom + sprite.rom SONSON.ROM diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.01e b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.01e new file mode 100644 index 00000000..0efa9b56 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.01e differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.02e b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.02e new file mode 100644 index 00000000..255605a9 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.02e differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.03e b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.03e new file mode 100644 index 00000000..10c09cc9 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss.03e differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_10.m6 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_10.m6 new file mode 100644 index 00000000..a9d439ac Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_10.m6 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_11.m3 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_11.m3 new file mode 100644 index 00000000..8354826a Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_11.m3 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_12.m4 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_12.m4 new file mode 100644 index 00000000..a8af35aa Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_12.m4 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_13.m1 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_13.m1 new file mode 100644 index 00000000..919a8121 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_13.m1 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_14.m2 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_14.m2 new file mode 100644 index 00000000..23704afe Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_14.m2 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_6.c11 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_6.c11 new file mode 100644 index 00000000..f06add7b Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_6.c11 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_7.b6 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_7.b6 new file mode 100644 index 00000000..ef2b104d Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_7.b6 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_8.b5 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_8.b5 new file mode 100644 index 00000000..61a170a2 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_8.b5 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_9.m5 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_9.m5 new file mode 100644 index 00000000..cd0b326e Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ss_9.m5 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb1.k11 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb1.k11 new file mode 100644 index 00000000..48de6994 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb1.k11 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb2.c4 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb2.c4 new file mode 100644 index 00000000..34c3eda6 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb2.c4 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb3.h7 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb3.h7 new file mode 100644 index 00000000..3d65b642 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb3.h7 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb4.b2 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb4.b2 new file mode 100644 index 00000000..86660493 Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb4.b2 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb5.b1 b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb5.b1 new file mode 100644 index 00000000..190bd6af Binary files /dev/null and b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/sonson/ssb5.b1 differ diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_01e.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_01e.hex new file mode 100644 index 00000000..f6fdf81e --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_01e.hex @@ -0,0 +1,1025 @@ +:100000001A50108E0032138E2020C66086F8A7800A +:100010005A26FB313F26EFC601F730185FF7300054 +:10002000F73008C6001F9B318D000F7E427AC4F264 +:10003000905C8CEAD4D2DCC2D6C28E1000C61810F6 +:100040008E14008608E780A7A08C13FF23F7C60153 +:10005000F730185FF73000F7300886068E00003062 +:100060001F26FC4A26F6C6001F9B4F5F8E0000ED40 +:10007000818C0FFF23F910CE0300CE02808E01C0C9 +:100080009F169F148E01809F129F10CCFFFFED8161 +:10009000ED818C01C023F734408E03A033882010FB +:1000A0008E0020CC1000A780E7C0313F26F83540F5 +:1000B0008E03E0C66086F8A7805A26FB8D69BD4195 +:1000C00034BD4167108E41E68E0300ECA4ED81EC57 +:1000D00022ED81EC24ED81EC26ED818C032823EBCD +:1000E000AEA4EC229FD8DDDA8E0328108E41EEC636 +:1000F0000534048D256AE426FA32615F8601F73003 +:1001000010B73019F73019B730195FD7E6D7E7C6FF +:1001100001D7E586011CEF16009B3420C60CA6A073 +:10012000A7805A26F935A0B6300543973AB630066F +:1001300043973B39CC0101FD0033FD00385F963A0F +:10014000840F810F26015CD751488E423AAE86D685 +:100150003AC5102605BF00332003BF0038D63AC485 +:100160002086083D975239963B84038E41FAA68635 +:1001700097505F963B85042602C601D753D63BC4F1 +:100180001854548E41FEAE85A68097559F56963BD7 +:10019000846044444444448E425AA686975439109D +:1001A0008EFFFF10AF818C01C025038E01809F124E +:1001B0008E41BEAD969E12EC844824E320F747138F +:1001C000479D47DA4CBB4CBE4EFD4F55505C5073BB +:1001D00050E1514F54B051D854E75280530B5367FC +:1001E000548254A3425E000100001815221F000231 +:1001F00000000A10131120131F1D030405074206F7 +:1002000042134220422D00000200000000000000C6 +:1002100000000000000300000000000000000000DB +:1002200081000200000006000000100000810003B1 +:10023000000000060000001200000101010201039D +:100240000104010501060107020102030205030181 +:100250000302030404010403FF00000418204F5F9D +:10026000DDF68E4000108E5F80DCF6EB818900DDCC +:10027000F6313F26F4DCF6DD4E3910CE1000CE000C +:10028000004F30C4A7808C0FFF23F930C4A1841025 +:1002900026004130018C0FFF23F38B1124E4CE1094 +:1002A000004F30C4A7808C17FF23F930C4A18410FD +:1002B00026003F30018C17FF23F38B1124E43420F8 +:1002C0005FBD4713C61BBD47DABD43308E0000300B +:1002D0001F26FC3934203410C601F730185FBD47A3 +:1002E00013C61CBD47DA3001E6E08D24E6E08D2020 +:1002F00020FE34203410C601F730185FBD4713C606 +:100300001CBD47DA3001E6E08D06E6E08D0220FEF6 +:100310001F98444444448D021F983404C62C840F13 +:100320008B90198940198030E7890400A7803584B3 +:10033000C626BD47DA4F5FDDCA8E4000E680D7C8CB +:100340008D1A8CFF0025F5DCCA10B3FFFC2606C60B +:1003500024BD47DA39C625BD47DA20FEC608D7C90D +:10036000D6C854D4C806CB06CAC900562408DCCA6D +:1003700088A0C801DDCA0AC926E639D605588E43C9 +:10038000AEAD95D63D53D43CC403C103261FC60170 +:10039000D7E55FD7E6BD95DA4FBD63395FD708D79C +:1003A0000BD70E0C05D605C10725020F053943BC36 +:1003B00044D9453E458445FA468D46B6D608588E02 +:1003C00043C46E9544FC43CC44FC43E7C601D7E8E4 +:1003D000CC0000BD9604CC122CBD9604D63B53C471 +:1003E00018F704700C0839D624C40F26028D013981 +:1003F000D63BC418F10470270FF70470CC0190BDF0 +:100400009604CC0E00BD96048E10E6F60033B600BE +:1004100034BD449D8E1126F60038B600398D7E8E8F +:100420001166108E4472ECA1ED81E6A0E781CE4406 +:1004300075D65258DB5233C5ECC1ED81E6C4E78472 +:100440008E1170108E4489C606A6A0A7805A26F980 +:100450003001D650E7848E11A6108E448FC605A6B3 +:10046000A0A7805A26F9963B84604444444444A79C +:1004700001391124231F16161F1E1010131F191ED9 +:10048000101010132215141924231F1E231F1E1CC5 +:100490001526151C1622151510201C11290D512684 +:1004A000213402E780108E447BC608A6A0A7805A9C +:1004B00026F930043502A781C606A6A0A7805A26D1 +:1004C000F939108E4494C609A6A0A7805A26F9C609 +:1004D0000C8610A7805A26FB39D608588E44E16E48 +:1004E0009544FC44E944FC4503C601D7E8CC000030 +:1004F000BD9604CC021DBD96040C0839D6E8260230 +:100500000C08398E1111D6408D1A8E1131D6428DBC +:10051000138E1191D63A8D0C8E11B1D63B8D058E6E +:1005200011D1D63C862C340686085F6861C900E785 +:1005300084E6E4E789040030014A26EE3586D608D1 +:10054000588E45466E9544FC454E44FC4561C601B7 +:10055000D7E8CC0000BD9604CC021EBD96040C0862 +:10056000394FD640C50127014CB7301F4FD642C581 +:100570000127014CB7301E8601D63CC501270286F3 +:100580000097E539D608588E458C6E9544FC459405 +:1005900045AA45B37F0470C601D7E8CC0000BD96DC +:1005A00004CC021FBD96040C0839D6E826040C08BA +:1005B000203339D64153D440C5012633C50426150E +:1005C000C5082601397A0470F604702A18F6631FEC +:1005D000F7047020107C0470F604708E6320E11F15 +:1005E00023037F04708E1111F60470BD4310398E01 +:1005F0006320F60470A6857E6339D608588E4602BD +:100600006E9544FC460A44FC461BC62CF7047086D3 +:100610000FBD96044F5FDD900C08398D06BD466214 +:1006200097E639D64153D440C5042609C508261794 +:10063000C501262439F60470CB04C13C23015FF7C1 +:100640000470860F7E9604F60470C0042A02C63C2D +:10065000F70470860F7E9604C62CF70470860F7E12 +:1006600096049643439442D642C504260BC50826F9 +:100670000F85012613DC9039DC90C3008DDD9039A5 +:10068000DC9083008DDD90394F5FDD9039D60858BE +:100690008E46956E9544FC469D44FC46B5C601D7F2 +:1006A000E8CC0000BD9604CC1100BD9604CC020934 +:1006B000BD96040C0839D608588E46BE6E9544FC8B +:1006C00046C644FC46EDC601D7E8CC0000BD960402 +:1006D0008E0490C601E710CCAFACED1E6F1DBD9629 +:1006E00017CC0080ED15C680E7180C08398D0ABDBF +:1006F000FECFBD470CBDFF0939D64153D440C501DB +:1007000027098E0490E601CB40E701398E0490BDA5 +:10071000FFB3398E1000108E0020C620D7F4CC1005 +:1007200000E7890400A7800AF426F6313F26EBC6CD +:1007300000BD47DA108E00D88E104DD6E9BD4EBEF2 +:100740000D212617D620C401270AC601BD47DAC6E7 +:1007500003BD47DAC602BD47DA2015D620C40127FB +:100760000AC601BD47DAC605BD47DAC604BD47DA89 +:10077000D620C4012718108E00748E108DD6E9BDC6 +:100780004EBE108E00708E1057D6E9BD4EBE108E34 +:10079000006C8E1042D6E9BD4EBE0FE8395D2B1DB0 +:1007A000D7F58E10A0C620D7F4CC1000E78904003E +:1007B000A7800AF426F60AF526EB0FE839C47FC1B4 +:1007C0001F221686203DC310001F01CC1000E789B0 +:1007D0000400A7808C13FF23F5393440582521C429 +:1007E0007F8E4821EE85AEC1A6C0E6C027FCC13F82 +:1007F000272DC12F27F0C030A7890400E78020EA09 +:100800008E4821EE85AEC1A6C0E6C027FCC13F27B9 +:100810000EC12F27F0A7890400C610E78020EA3513 +:10082000C0486F487748864890489A48A448AE48E0 +:10083000D248F5494D49FD4A0E4A254A3B4A984A55 +:10084000A54AB24AC64ADA4AEE4AFF4B114B114B4F +:10085000114B284B324B3C4B4E4B584B674BC54CC6 +:100860002E4C4B4C5B4C6F4C7F4C934C9D4CAC10C6 +:100870002E28484947483F106B28544F54414C405C +:1008800053434F52453F10210C534F4E534F4E3F51 +:1008900010390C544F4E544F4E3F10220C534F4EB4 +:1008A000534F4E3F10390C544F4E544F4E3F13C1CF +:1008B0003840435245444954404040404040404005 +:1008C0004040404040404040404040404040404028 +:1008D000403F13C108404652454540504C415940A5 +:1008E0004040404040404040404040404040404008 +:1008F000404040403F11E92C53434F524540405245 +:10090000414E4B494E472F1226103153542F123768 +:10091000105054532F126628324E442F127728500D +:1009200054532F12A6043352442F12B70450545379 +:100930002F12E61C3454482F12F71C5054532F1317 +:10094000260C3554482F13370C5054533F10212C8C +:10095000434F4C4F5240302F10412C434F4C4F527D +:1009600040312F10612C434F4C4F5240322F108199 +:100970002C434F4C4F5240332F10A12C434F4C4F20 +:100980005240342F10C12C434F4C4F5240352F1042 +:10099000E12C434F4C4F5240362F11012C434F4C0A +:1009A0004F5240372F11212C434F4C4F5240382F7C +:1009B00011412C434F4C4F5240392F11612C434F62 +:1009C0004C4F5240412F11812C434F4C4F524042CB +:1009D0002F11A12C434F4C4F5240432F11C12C4398 +:1009E0004F4C4F5240442F11E12C434F4C4F52403B +:1009F000452F12012C434F4C4F5240463F138A2C37 +:100A00003A40434150434F4D40313938343F11A7AC +:100A100010504C45415345404445504F5349544074 +:100A2000434F494E3F11A70C505245535340535426 +:100A300041525440425554544F4E3F11E62C544FAE +:100A400054414C4053434F52454052414E4B494E06 +:100A5000472F1223103153542F1239105054532F53 +:100A6000126328324E442F1279285054532F12A368 +:100A7000043352442F12B9045054532F12E31C3440 +:100A800054482F12F91C5054532F13230C3554483B +:100A90002F13390C5054533F10810447414D4540AA +:100AA0004F5645523F10960447414D45404F5645DD +:100AB000523F132604414E444045564552592F1388 +:100AC00037045054533F12C604324E4440424F4EF6 +:100AD00055532F12D7045054533F126604315354C8 +:100AE00040424F4E55532F1277045054533F120932 +:100AF000283140504C41594552404F4E4C593F12BD +:100B0000092831404F52403240504C4159455253D0 +:100B10003F12470C454E54455240594F555240499B +:100B20004E495449414C533F12A810534F4E534F16 +:100B30004E3F12B210544F4E544F4E3F10E92C43CB +:100B40004F4E47524154554C4154494F4E3F12AAC3 +:100B50002C52414D404F4B3F12AA2C52414D404E1A +:100B60004F40474F4F443F10CA2C494E50555440B8 +:100B7000544553542F11042C50314040404053579A +:100B8000495443482F11242C503240404040535781 +:100B9000495443482F11842C444950403140535705 +:100BA000495443482F11A42C4449504032405357D4 +:100BB000495443482F11C42C434F494E404053578A +:100BC000495443483F10CA2C4F5554505554405433 +:100BD0004553542F11042C50314053484F5440403A +:100BE000404040434F494E40434F554E544552407C +:100BF000312F11242C50324053484F544040404034 +:100C000040434F494E40434F554E54455240322F7A +:100C100011442C50314053544152544040404053B1 +:100C2000435245454E40524556455253453F10CAE2 +:100C30002C534F554E4440544553542F11042C53BC +:100C40004F554E4440434F4445403F11682C424F5E +:100C50004E55532F11762C5054533F11AE2C414E0C +:100C6000442F11F02C3330303030405054533F1269 +:100C7000682C424F4E55532F12762C5054533F122E +:100C8000AE2C414E442F12F02C33303030304050D7 +:100C900054533F128A2C524F4D404F4B3F128A2CD7 +:100CA000524F4D404E4F40474F4F443F126A2C52D7 +:100CB0004F4D4054455354494E473FD7E93934408E +:100CC00096221027009234048E00705D2A038E0055 +:100CD00074108E4D845810AEA5A682ABA219A784BD +:100CE000A682A9A219A784A682A9A219A784A6826E +:100CF000A9A219A784EC841093D82209251EEC021E +:100D00001093DA2517CE00D8EC84EDC4EC02ED4246 +:100D1000D6E9108E00D88E104DBD4EBE8E104210FA +:100D20008E006CD6E9BD4EBE0D99270E8D2C8E100F +:100D30008D108E0074D6E9BD4EBE6DE02A1A8E105D +:100D400057108E0070D6E9BD4EBE8D0E8E108D10E0 +:100D50008E0074D6E9BD4EBE35C034408E0070CED4 +:100D60000074108E0078A682ABC219A7A2A682A931 +:100D7000C219A7A2A682A9C219A7A2A682A9C219AE +:100D8000A7A235C000E04DF24DF64DFA4DFE4E02E1 +:100D90004E064E0A4E0E4E124E164E1A4E1E4E2243 +:100DA0004E264E2A4E2E4E324E364E3A4E3E4E4233 +:100DB0004E464E4A4E4E4E524E564E5A4E5E4E6223 +:100DC0004E664E6A4E6E4E724E764E7A4E7E4E8213 +:100DD0004E864E8A4E8E4E924E964E9A4E9E4EA203 +:100DE0004EA64EAA4EAE4EB24EB64EBA4EBE000003 +:100DF0000010000000200000003000000040000053 +:100E00000050000000600000007000000080000042 +:100E10001000000020000000300000004000000032 +:100E20005000000060000000700000008000000022 +:100E3000900000010000000005000000100000000C +:100E4000010000000050000001000000030000004D +:100E500000500000020000003000000040000000D0 +:100E600050000000600000007000000080000000E2 +:100E70000150000001500000005000002000000060 +:100E800090000001000000000500000005000000C7 +:100E9000100000020000000005000000100000002B +:100EA00015000000200000001000000000300000CD +:100EB0005000000000900000010000030000341406 +:100EC000C608D7F48610A7800AF426FA3504AEE4E3 +:100ED000860497F48D140AF426FA3510C610860796 +:100EE0006D842605E7804A26F739A6A44444444485 +:100EF0008D02A6A0840FE7890400A780390D222760 +:100F000014108E4F1686085424063406ADB43506E8 +:100F100031224A26F2394F264F2B4F304F354F3A68 +:100F20004F3F4F444F498E006C20238E0070201E8F +:100F30008E007420198E0F6020148E0F64200F8E87 +:100F40000F68200A8E00D820058E00E020004F5F39 +:100F5000ED81ED8439108E4F168604542406340634 +:100F6000ADB4350631224A26F2394F724F7E4F8A90 +:100F70004F968E1042108E006CD6E97E4EBE8E10BB +:100F800057108E0070D6E97E4EBE8E108D108E00EA +:100F900074D6E97E4EBE8E104D108E00D8D6E97EF6 +:100FA0004EBE34103606C61036044F5F3606360283 +:100FB00031438E4FF26444664524028D2130036A2A +:100FC0004326F230433146C603A682840FA7A2A669 +:100FD0008444444444840FA7A25A26ED359034300B +:100FE000C6034FA6A2A98219A7A45A26F635B000B7 +:100FF00000010000020000040000080000160000CC +:10100000320000640001280002560005120010247E +:10101000002048004096008192016384032768BD48 +:101020004FA2C610E784E701E702E703E704E705FC +:1010300096E930890400A784A701A702A703A704A3 +:10104000A7053089FC00C606A6C4260833415A26E7 +:10105000F7A78439A6C0A7805A26F9390D51260E64 +:10106000C606BD47DADC258E13C9BD501F39C60739 +:101070007E47DA34408E648586073DC30003AE8B1D +:10108000108E13C0CE17C0C61034048D1331A903BF +:101090004233C903426AE426F2BDB9220FE835C4DF +:1010A000C60D3404E68034108E653B4F58495849CC +:1010B0005849308B8D0835106AE426E83584EC8178 +:1010C000A7A4E7A8E0EC81A721E7A8E131A8C0EC3C +:1010D00081A7C4E7C8E0EC81A741E7C8E133C8C0F5 +:1010E000393440C608BD47DAC6053404CE512C3425 +:1010F00040E642AE45E7890400E7890401E7890438 +:1011000002E789040310AEC4AE43E642BD4EBE35CD +:1011100040AEC4300410AE458604E680E7A04A26FF +:10112000F933476AE426C835043540390300101204 +:101130002F122A030828126F126A03100412AF122A +:10114000AA03181C12EF12EA03200C132F132A34DF +:1011500040C60DBD47DAC6053404CE51B53440E66D +:1011600042AE45E7890400E7890401E7890402E704 +:10117000890403E7890405E7890406E7890407E78A +:1011800089040810AEC4AE43E642BD4EBE3540AE43 +:10119000C4300410AE458608E680E7A04A810422E8 +:1011A000F73121E680E7A04A26F933476AE426AD05 +:1011B0003504354039032810123112270334281220 +:1011C00071126703400412B112A7034C1C12F112F2 +:1011D000E703580C133113270D22102700715D27E8 +:1011E000285A266B0D8926218600C6108E10978DF1 +:1011F0006FD6592714C1042302C6045D270BD7F408 +:101200008E1097108E52588D240D8826428600C667 +:10121000108E10828D4AD6585D2734C1042302C631 +:10122000045D272BD7F48E1082108E5250ECA4ED63 +:1012300089040034103088E0EC22ED890400351078 +:10124000EC24ED84EC26ED88E030020AF426DE3949 +:1012500099999595F4F5E4E59F9F9F9F7C7D7A7B16 +:10126000108E0008A7890400E780313F26F6108E13 +:1012700000083088D8A7890400E780313F26F63976 +:101280003440D655274AC1012719C181270220536E +:10129000C610BD47DACE52EF9E563108AE41E6C4C5 +:1012A000BD4EBEC611BD47DACE52EC34409E56C686 +:1012B0000430043104CE00FC4FA682A9A219A7C2B3 +:1012C0005A26F63540108E00F8AE41E6C4BD4EBE3B +:1012D000C612BD47DACE52E99E563184AE41E6C40D +:1012E000BD4EBEBD52F235403904126F0412CF0418 +:1012F000132F9E2527140D532604301F2707C614CD +:10130000BD47DA2005C613BD47DA393440CA02D7D3 +:10131000F48E1021CE53328D25C60ED7F5CE53361E +:101320008D1CCE533A8D170AF526F2CE53368D0E0C +:1013300035C0222322242526252732333234318911 +:10134000040096F4A7A0E6C4E780C60ED7F6A7A0CF +:10135000E641E780A7A0E642E7800AF626F0A7A0CC +:10136000E643E78030023934408E5390108E540AA1 +:10137000EE81C6083404C60FA6A0A7C90400A68043 +:10138000A7C05A26F333C8116AE426EA326135C091 +:1013900010A910101003040506071010100B0C0DF7 +:1013A00010101112131415161718191A1B1C1D1ED4 +:1013B000202122232425262728292A2B2C2D2E30B4 +:1013C0003132333435363738393A3B3C3D3E404193 +:1013D00042434445464748494A4B4C4D4E50515272 +:1013E000535455565758595A5B5C5D5E6061626351 +:1013F0006465666768696A6B6C6D6E107172101057 +:1014000010107778791010101010000000A7A7A70F +:10141000A7A7000000A7A7A700A7A7A7A7A7A7A7F8 +:10142000A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A74C +:10143000A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A73C +:10144000A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A72C +:10145000A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A71C +:10146000A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A70C +:10147000A7A7A700A7A700000000A7A7A700000034 +:10148000000034408E102033890400C635860210D7 +:101490008E0020E780A7C0313F26F88B04853C26CC +:1014A000EE35C08E14001F98ED818C17FF25F93999 +:1014B0008E06003189FF609FEC588E5551EC851FD8 +:1014C00001C300A0DDEAC610D7F41A10EC81EDA12B +:1014D000EC81EDA1EC81EDA1EC81EDA1EC81EDA120 +:1014E0001CEF0AF426E4399EEA8C631F2462109EE6 +:1014F000ECEC81EDA1EC81EDA1EC81EDA1EC81EDB5 +:10150000A1EC81EDA1EC81EDA1EC81EDA1EC81EDEF +:10151000A1EC81EDA1EC81EDA1EC81EDA1EC81EDDF +:10152000A1EC81EDA1EC81EDA1EC81EDA1EC81EDCF +:10153000A1EC81EDA1EC81EDA1EC81EDA1EC81EDBF +:10154000A1108C06282504108E0560109FEC9FEAE0 +:10155000395587564F571757DF5807587F59475AFD +:101560000F5AD75AFF5B775C3F5D075DCF5DF75E33 +:101570006F5F375FFF60C760EF6167618F6207620F +:101580002F62A762F7631F040010CA0050C8F6005C +:1015900000040012CE007048F40000040011D200D4 +:1015A0009088F50000040010DC00E0C8F40000049E +:1015B0000011C6013088F5000004001246013068B1 +:1015C00000000104001252019068F40000040013AE +:1015D0005A01D028F70000040012C2021048F60099 +:1015E00000040011CA025088F40000040010CE026A +:1015F00070C8F500000400125802C068F40000042E +:1016000000114A0350A8F60000040011DA03D08844 +:10161000F500000400125A03D06800000104001312 +:101620005E03F028F70000040011CE047088F60075 +:10163000000400115C04E0A8F40000040011DC04C4 +:10164000E088000001040011DE04F08800000104BD +:101650000011C0050088000001040010CA0550C830 +:10166000F600000400134C056028F400000400128A +:1016700052059068F9000004001340060028F500A8 +:101680000004001248064068F90000040010D20669 +:1016900090C8F40000040011DA06D088F7000004B6 +:1016A0000011C8074088F60000040011520790A8F6 +:1016B000FA00000400135407A028F50000040012EB +:1016C0005E07F068F40000040011460830A8F50039 +:1016D00000040012CA085048F70000040012DA089B +:1016E000D0480000010400115C08E0A8F4000004E8 +:1016F0000012CC096048F50000040011D20990885E +:10170000F40000040012DA09D048000001040013BC +:101710005A09D028000001040010C60A30C8F6009B +:1017200000040011CC0A6088F80000040012540A7A +:10173000A0680000010400115A0AD0A8F5000004B6 +:101740000012C20B1048FA00000400134A0B502884 +:10175000F70000040011D20B9088F900000400107B +:10176000D80BC0C8FC0000040011C20C1088F8009F +:1017700000040012CA0C5048000001040012D40CEE +:10178000A048F40000040011D80CC088F600000442 +:101790000011440D20A8F500000400124E0D7068E1 +:1017A000F40000040013560DB028F90000040011E5 +:1017B0005C0DE0A8FB0000040012440E2068F70056 +:1017C00000040011C60E3088F90000040011480E14 +:1017D00040A8000001040010CA0E50C80000010417 +:1017E0000012D00F8048000002040013500F802820 +:1017F00000000200001000000000000000040011C2 +:10180000540FA0A8000002040011D40FA08800000B +:1018100002040012540FA068000002000010000033 +:1018200000000000000000100000000000000000A8 +:101830000010000000000000000000100000000088 +:101840000000000000100000000000000000001078 +:101850000000000000000000001000000000000078 +:101860000000001000000000000000000010000058 +:101870000000000000000010000000000000000454 +:101880000011441320A8FD0000040012C8134048B2 +:10189000F800000400115413A0A8F6000004001280 +:1018A0005A13D068FA000004001342141028FF00F5 +:1018B000000400124E147068000000040012D014DE +:1018C000804800000104001252149068F7000004E0 +:1018D0000011C6153088F800000400124815406851 +:1018E000000001040011CA155088FC000004001318 +:1018F0005815C028F40000040011401600A8F40098 +:1019000000040012CA165048F60000040011D21656 +:101910009088FA0000040010D816C0C8F90000042E +:1019200000115617B0A8F50000040011D817C088A0 +:101930000000010400115A17D0A8F700000400129B +:101940005C17E068000001040011C0180088000066 +:101950000104001240180068000001040012C018C1 +:101960000048000001040011D0188088FC00000429 +:101970000011441920A8F80000040012481940681A +:101980000100000400115419A0A8FE000004001377 +:101990005C19E028FA0000040011C21A1088F60051 +:1019A000000400114A1A50A8F40000040012D01AD2 +:1019B0008048070000040011D81AC088F70000040E +:1019C0000012C21B10480500000400134C1B6028C5 +:1019D000FB0000040012561BB068F9000004001060 +:1019E000D81BC0C8030000040012D01C80480000AF +:1019F00001040012521C9068000001040013521CE4 +:101A00009028000001040012D21CA048000001042C +:101A10000013421D1028F80000040011C61D308874 +:101A2000030000040011521D90A8F40000040012ED +:101A30005C1DE068060000040010C61E30C8FA00F5 +:101A400000040011481E40A8000001040010CA1E36 +:101A500050C8F90000040012D21E9048060000048D +:101A60000012441F2068F60000040011D01F868871 +:101A7000070000040013581FC028010000040010D4 +:101A8000DA1FD0C8FB000004001248204068F700AD +:101A9000000400134A2050280000010400124C20CA +:101AA0006068FF00000400115820C0A80400000472 +:101AB0000011C4212088FD00000400124621306876 +:101AC000000001040012C821404800000104001376 +:101AD0004A215028000001040011502280A8010072 +:101AE00002040012502280680100020400135022F8 +:101AF0008028010002040011D22290880100020413 +:101B00000012D22290480100020400125422A06860 +:101B100001000200001000000000000000000010A2 +:101B200000000000000000000010000000000000A5 +:101B30000000001000000000000000000010000085 +:101B40000000000000000010000000000000000085 +:101B50000010000000000000000000100000000065 +:101B60000000000000100000000000000000001055 +:101B700000000000000000040011C22610880000D0 +:101B800001040010C82640C8FE00000400115026C1 +:101B900080A80200000400125826C0680400000457 +:101BA0000012C6273048F90000040011CC276088D5 +:101BB0000300000400115427A0A8FA00000400123A +:101BC000DA27D048FF0000040011422810A80100C5 +:101BD00000040011C6283088F900000400125228C1 +:101BE00090680000010400135228902800000104AE +:101BF0000012C22910480200000400114A2950A80E +:101C0000FB0000040011D229908805000004001098 +:101C1000DA29D0C8FD0000040013442A2028070058 +:101C2000000400124C2A60680600000400115E2ABD +:101C3000F0A80000010400125E2AF0680000010410 +:101C40000011C02B0088000001040011422B10A8D5 +:101C5000000001040012422B106800000104001370 +:101C6000582BC028000000040010C82C40C8F60003 +:101C700000040011D42CA088040000040012582C89 +:101C8000C068000001040012DE2CF04803000004CC +:101C90000011C22D1088010000040013482D4028B7 +:101CA000060000040011502D80A8F7000004001069 +:101CB000DA2DD0C8FD0000040012442E2068F80080 +:101CC000000400134E2E7028070000040011D62EC9 +:101CD000B088FA00000400115C2EE0A806000004A1 +:101CE0000012C82F4048FF0000040011CE2F70885A +:101CF000000001040011D02F8088000001040011B1 +:101D0000D22F9088000001040011C030008800002C +:101D100001040011423010A80000010400114C30F1 +:101D200060A80200000400125630B06801000004F0 +:101D3000001242311068060000040011483140A82A +:101D4000000001040010CA3150C8FA00000400115C +:101D5000D431A08807000004001346323028010067 +:101D600000040012CE327048FE0000040010D4328D +:101D7000A0C8FC0000040011DC32E088060000046A +:101D8000001246333068FD000004001352339028DF +:101D90000700000400115833C0A80300000400121B +:101DA000DE33F0480600000400124C346068040082 +:101DB00000040011D0348088000001040011543464 +:101DC000A0A8000001040010D834C0C8000001041D +:101DD00000114E3570A8030002040012CE35704881 +:101DE0000300020400134E357028030002040011A2 +:101DF0005435A0A8030002040012D435A048030003 +:101E000002040011D635B0880300020400125635D2 +:101E1000B068030002000010000000000000000095 +:101E20000010000000000000000000100000000092 +:101E30000000000000100000000000000000001082 +:101E40000000000000000000001000000000000082 +:101E50000000001000000000000000000010000062 +:101E6000000000000000001000000000000000045E +:101E70000012463930680200000400134C39602813 +:101E8000000001040012523990680400000400119F +:101E90005A39D0A8060000040010C63A30C8050020 +:101EA000000400114A3A50A8000000040010D63A7D +:101EB000B0C8000000040011D63AB0880300010445 +:101EC0000012C43B2048070000040013523B902836 +:101ED000020000040012563BB06804000004001128 +:101EE0005C3BE0A8050000040012443C20680400AC +:101EF00000040010CE3C70C8070000040011D23C62 +:101F00009088060000040012D83CC048030000047A +:101F10000011DA3DD088060000040012DC3DE048E4 +:101F2000000001040010DE3DF0C8050000040013AD +:101F30005E3DF028000001040012C03E0048000091 +:101F400001040013423E1028000001040011523E1B +:101F500090A8040000040012D63EB0480700000418 +:101F60000012463F3068000001040012483F4068FC +:101F7000000001040010CC3F60C8060000040011FE +:101F8000DA3FD088020000040011C4402088050018 +:101F900000040011504080A80600000400135440C3 +:101FA000A028070000040011DC40E08804000004C1 +:101FB0000010C64130C80300000400124C416068A4 +:101FC0000600000400115641B0A8040000040013EC +:101FD0005C41E028060000040012C64230480500BB +:101FE00000040012DA42D0480700000400125C42EC +:101FF000E068020000040011DE42F08800000104E5 +:102000000011444320A8060000040011D04380883A +:102010000200000400135443A02800000104001033 +:10202000DA43D0C8040000040012424410680600DD +:102030000004001348444028070000040012CC4468 +:102040006048000001040010D644B0C8030000043A +:102050000011C2451088070000040012D0458048D6 +:102060000600000400125845C06805000004001373 +:102070005E45F028070000040010C84640C806006E +:1020800000040011DC46E0880000010400125E46F6 +:10209000F068000001040012C0470048000001047D +:1020A000001342471028000001040012C4472048D2 +:1020B00000000104001246473068000001040011CE +:1020C000C84740880000010400134E4870280200F1 +:1020D00002040012CE4870480200020400114E486B +:1020E00070A80200020400115448A0A802000204D3 +:1020F0000012D448A0480200020400135448A0284B +:10210000020002040011D648B08802000204001246 +:102110005648B068020002000010000000000000F5 +:10212000000000100000000000000000001000008F +:10213000000000000000001000000000000000008F +:10214000001000000000000000000010000000006F +:10215000000000000010000000000000000000105F +:10216000000000000000000400134E4C7028000026 +:1021700002040012CE4C70480000020400114E4CC4 +:1021800070A8000002040011544CA0A80000020432 +:102190000012D44CA048000002040013544CA028A4 +:1021A000000002040012564CB06800000204001146 +:1021B000D64CB088000002000010000000000000B3 +:1021C00000000010000000000000000000100000EF +:1021D00000000000000000100000000000000000EF +:1021E00000100000000000000000001000000000CF +:1021F00000000000001000000000000000000010BF +:10220000000000000000000400134E50702803007E +:1022100002040012CE5070480300020400114E5018 +:1022200070A80300020400115450A0A80300020487 +:102230000012D450A0480300020400135450A028F8 +:102240000300020400125650B0680300020400119B +:10225000D650B0880300020000100000000000000B +:10226000000000100000000000000000001000004E +:10227000000000000000001000000000000000004E +:10228000001000000000000000000010000000002E +:10229000000000000010000000000000000000101E +:1022A0000000000000000004001342541028060043 +:1022B00000040011CA54508807000004001254544E +:1022C000A068040000040012DA54D048060000049C +:1022D0000011C2551088070000040012CA5550486A +:1022E0000500000400135655B02807000004001133 +:1022F000DC55E088060000040012C25610480400B5 +:10230000000400134A5650280500000400125256DB +:102310009068070000040011DA56D0880600001803 +:10232000000201030405060708090B0A0C0D0E0F35 +:10233000101112141315161718C6808D121F89203C +:102340000EC6808D021F890D5226040D2227121001 +:102350009E14E7A0108C02002504108E01C0109F6F +:1023600014390D1826198D2B2528C18026198D2387 +:10237000588E63ABEC85D7188E63DD30869F199E2F +:10238000190A18E6809F19F730105FF730195CF7CB +:102390003019399E169C14270FE6808C0200250305 +:1023A0008E01C09F161CFE391A013900010101027D +:1023B0000103010401050106010701080109010AE1 +:1023C000010B010C010D010E010F01100111011291 +:1023D000011301140115011601170118010001096B +:1023E000040203090A0B0C060F08080E1000111254 +:1023F00013141516171886007E634186027E63410A +:102400000D221026FF8C86017E633986037E634190 +:1024100086047E634186057E634186067E6341862F +:10242000077E634186087E634186097E6341860B91 +:102430007E6341860A7E6341860C7E6341860D7E03 +:102440006341860E7E63410D221027FF45860F7E75 +:10245000634186107E634186117E634186127E63EE +:102460004186137E634186147E634186157E6341F7 +:102470000D221027FF1C86167E634186177E63415E +:1024800086187E63410500006D3B825B0500006E8F +:102490000B82DB0500006EDB835B0101146FAB83F5 +:1024A000DB030000707B845B050000714B84DB055F +:1024B0000000721B855B05000072EB85DB010114D7 +:1024C00073BB865B030000748B86DB050000755BC5 +:1024D000875B050000762B87DB05000076FB885BB9 +:1024E00001011477CB88DB030000789B895B050032 +:1024F00000796B89DB0500007A3B8A5B0500007B75 +:102500000B8ADB0101147BDB8B5B0300007CAB8B54 +:10251000DB0101147D7B8C5B0300007E4B8CDB01B7 +:1025200001147F1B8D5B0300007FEB8DDB0200003D +:1025300080BB8E5B01020F818B8EDB1010101000B0 +:1025400000000090809181404040409282938340FF +:10255000404040948495854040404096869787400F +:1025600040404098889989404040409A8A9B8B40DF +:10257000404040B6A6B7A740404040B8A8B9A940DF +:10258000404040BAAABBAB40404040F4E4F5E540CF +:10259000404040F6E6F7E740404040F8E8F9E940BF +:1025A000404040FAEAFBEB40404040FCECFDED408F +:1025B000404040FEEEFFEF40404040100011014916 +:1025C0004949491202130349494949140415054967 +:1025D0004949491606170749494949180819094937 +:1025E0004949491A0A1B0B494949491C0C1D0D4907 +:1025F0004949491E0E1F0F49494949302031214997 +:102600004949493222332349494949342435254926 +:10261000494949D8C8D9C961616161DACADBCB616E +:10262000616161DCCCDDCD61616161DECEDFCF61F6 +:10263000616161F0E0F1E161616161F2E2F3E36146 +:1026400061616170607161454545457262736345C2 +:1026500045454574647565454545457666776745E6 +:1026600045454578687969454545457A6A7B6B45B6 +:102670004545457C6C7D6D4545454590809181592A +:102680005959599282938359595959948495855926 +:1026900059595996869787595959599888998959F6 +:1026A0005959599A8A9B8B5D5D5D5D9C8C9D8D5DB2 +:1026B0005D5D5D9E8E9F8F5D5D5D5DB0A0B1A15D36 +:1026C0005D5D5DB2A2B3A35D5D5D5DB4A4B5A55DC6 +:1026D0005D5D5DB6A6B7A75D5D5D5DB8A8B9A9658E +:1026E000656565BAAABBAB65656565BCACBDAD6526 +:1026F000656565BEAEBFAF65656565D0C0D1C165B6 +:10270000656565D2C2D3C265656565D4C4D5C56546 +:10271000656565D6C6D7C765656565F6E6F7E7659D +:10272000656565F8E8F9E965656565FAEAFBEB65F5 +:10273000656565FCECFDED65656565FEEEFFEF65C5 +:10274000656565100011016A6A6A6A120213036AFC +:102750006A6A6A140415056A6A6A6AB0A0B1A14679 +:102760007E467EB2A2B3A3467E467EB4A4B5A546FD +:102770007E467EB6A6B7A7467E467EB8A8B9A946CD +:102780007E467EBAAABBAB467E467EBCACBDAD469D +:102790007E467EB0A0B1A142864286B2A2B3A342D9 +:1027A000864286B4A4B5A542864286B6A6B7A7429D +:1027B000864286B8A8B9A942864286BAAABBAB426D +:1027C000864286BCACBDAD428642865040514145F2 +:1027D0004545455242534345454545544455454575 +:1027E0004545455646574745454545584859494545 +:1027F0004545455A4A5B4B454545455C4C5D4C4516 +:102800004545455E4E5F4F45454545504051414D1C +:102810004D4D4D524253434D4D4D4D544455454DF4 +:102820004D4D4D564657474D4D4D4D584859494DC4 +:102830004D4D4D5A4A5B4B4D4D4D4D5C4C5D4D4D94 +:102840004D4D4D5E4E5F4F4D4D4D4DF0E0F1E14E23 +:102850004E4E4EF2E2F3E34E4E4E4EF4E4F5E54EAC +:102860004E4E4EF6E6F7E74E4E4E4EF8E8F9E94E7C +:102870004E4E4EFAEAFBEB4E4E4E4EB8A8D7C76509 +:10288000656565BAAAB7A740404040F0E0F1E14A6B +:102890004A4A4AF2E2F3E34A4A4A4AF4E4F5E54A8C +:1028A0004A4A4AF6E6F7E74A4A4A4AF8E8F9E94A5C +:1028B0004A4A4AFAEAFBEB4A4A4A4A000000000048 +:1028C0000000000000000000000000000000000008 +:1028D000000000FCEC10ED4A4A004A10EE10EF0038 +:1028E0004A004A10FDFFFE004A4A4ABCACBDAD4C4E +:1028F0004C4C4CBEAEBFAF4C4C4C4CB4A4B5A54CEC +:102900004C4C4CD0C0D1C14C4C4C4CF0E0F1E14CA3 +:102910004C4C4CDECEDFCF4C4C4C4CF2E2F3E34C53 +:102920004C4C4CBCACBDAD40404040BEAEBFAF40D7 +:10293000404040B4A4B5A540404040D0C0D1C140C3 +:10294000404040F0E0F1E140404040DECEDFCF408B +:10295000404040F2E2F3E340404040BCACBDAD44F7 +:10296000444444BEAEBFAF44444444B4A4B5A544BB +:10297000444444D0C0D1C144444444F0E0F1E14473 +:10298000444444DECEDFCF44444444F2E2F3E34423 +:10299000444444BCACBDAD48484848BEAEBFAF4857 +:1029A000484848B4A4B5A548484848D0C0D1C14813 +:1029B000484848F0E0F1E148484848DECEDFCF48DB +:1029C000484848F2E2F3E3484848487E6E7F6F4D3E +:1029D0004D4D4D3E2E3F2E4D4D4D4D3C2C3D2C4DE5 +:1029E0004D4D4D3A2A3B2B4D4D4D4D9E8E9F8F4E5A +:1029F0004E4E4E5E4E5F4F4E4E4E4E5C4C5D4D4EBB +:102A00004E4E4E5A4A5B4B4E4E4E4E584859494ECA +:102A10004E4E4E7E6E7F6E414141413E2E3F2F41D4 +:102A20004141413C2C3D2D414141413A2A3B2B4102 +:102A30004141419E8E9F8F424242425E4E5F4F42D5 +:102A40004242425C4C5D4D424242425A4A5B4B42DA +:102A500042424258485949424242427E6E7F6F4547 +:102A60004545453E2E3F2F454545453C2C3D2D4592 +:102A70004545453A2A3B2B454545459E8E9F8F4609 +:102A80004646465E4E5F4F464646465C4C5D4D466A +:102A90004646465A4A5B4B4646464658485949467A +:102AA0004646467E6E7F6F494949493E2E3F2F4933 +:102AB0004949493C2C3D2D494949493A2A3B2B4932 +:102AC0004949499E8E9F8F4A4A4A4A5E4E5F4F4A05 +:102AD0004A4A4A5C4C5D4D4A4A4A4A5A4A5B4B4A0A +:102AE0004A4A4A584859494A4A4A4A00000000009E +:102AF00000000000000000000000000000000000D6 +:102B000000000000000000000000000000000000C5 +:102B100000000000000000000000000000000000B5 +:102B200000000093839484CBCBCBCB95859686CB4A +:102B3000CBCBCBB1A1B2A2CBCBCBCBB3A3B4A4CBE9 +:102B4000CBCBCBB5A5B6A6CBCBCBCBB7A7B8A8CBB9 +:102B5000CBCBCB1010D0100000CB00D1C1D2C2CB58 +:102B6000CBCBCBD3C3D4C4CBCBCBCBD5C5D6C6CBA9 +:102B7000CBCBCBD7C7D8C8CBCBCBCBD9101010CBB6 +:102B80000000001010F0E00000CBCBF1E1F2E1CB4F +:102B9000CBCBCBF3E3F4E4CBCBCBCBF5E5F6E6CB79 +:102BA000CBCBCBF7E7F8E8CBCBCBCBF9E91010CB0D +:102BB000CB0000BCACBDADCBCBCBCBBEAEBFAFCBA7 +:102BC000CBCBCBDCCCDDCDCBCBCBCBDECEDFCFCB01 +:102BD000CBCBCBFFEF9181A3A34F4FFCEC9181A313 +:102BE000A34F4FFDED9181A3A34F4F101092820090 +:102BF00000A3A30000000000000000F0E0F1E142AB +:102C0000424242F2E2F3E242424242F4E4F5E54259 +:102C1000424242F6E6F7E742424242F8E8F9E94228 +:102C2000424242FAEAFBEB42424242F0E0F1E14624 +:102C3000464646F2E2F3E346464646F4E4F5E54608 +:102C4000464646F6E6F7E746464646F8E8F9E946D8 +:102C5000464646FAEAFBEB464646463A103B1072B9 +:102C60000072003C2C3D2D72727272706071616E48 +:102C70006E6E6E726273636E6E6E6E746475657A7C +:102C80006A7B6B766677676E6E6E6E78687969467A +:102C90005A465A7A6A7B6B6E6E6E6E7C6C7D6D7A6C +:102CA0007A7A7A7E6E7F6F6E6E6E6E90809787BF37 +:102CB000BFBFBF98889989BFBFBFBF9A8A9B8BBF90 +:102CC000BFBFBF9C8C9D8DBFBFBFBF9E8E9F8FBF60 +:102CD000BFBFBFB0A0B9A9BFBFBFBFBAAABBABBF80 +:102CE000BFBFBF92823828A3A3A2A292823929A390 +:102CF000A3A2A29282DACAA3A3A3A39282DBCBA34C +:102D0000A3A3A338289181A2A24F4F39299181A270 +:102D1000A24F4FDACA9181A3A34F4FDBCB9181A37E +:102D2000A34F4FFAEA9181A3A34F4FFBEB9181A3ED +:102D3000A34F4FFEEE9181A3A34F4F1B2800280005 +:102D400028002800280028001C290029002A002A21 +:102D5000002A002BF61D2A002A002B002B002B0036 +:102D600029D51E2B002B0029002C0029002A002029 +:102D70002C0029002A0028002A002C001C28002AE8 +:102D8000002B0029002B0028001B29002B002C0001 +:102D90002A002C0029001E2A002C0028002B00737A +:102DA000002C001D2B0028002C00290074000000BE +:102DB0001F2C002C0028002A0074002800202A0064 +:102DC00000002900290075002A001F2B0028002A76 +:102DD000002B0028002B001D29002A002B002A00B0 +:102DE0002B0029001E2B002B002900290029002A76 +:102DF000001C2A0029002A002B002A002B001B2C73 +:102E0000002C002C002C002C002C001B4B004B0035 +:102E10004B004B0000004B001C4C004D004D004C83 +:102E2000004B004CF61D4D004E0050004E004C0073 +:102E30004DD41E4E004F004F0050004D004E00205C +:102E40004F004C004E004D004F004F001D4D0050F4 +:102E5000004F004E004E0051001E4F0051004D002B +:102E60004C004D004B001B4E004B004C004F004CE3 +:102E7000004D001C50004D00500051004F004C0010 +:102E80001E4D004C004D00730050004E001D4C00C4 +:102E90004F004F0074004D004F00204F004E005077 +:102EA0000074004C004D001C4E004D005100750098 +:102EB0004F004C001D50004F0000004B004E004DD5 +:102EC000001E4B004C004B004F004D004E001C51AB +:102ED00000510051005100510051001B520052009E +:102EE00052005200520052001D5300540058005826 +:102EF00000580054F61C5400560056005500560069 +:102F000058D31E5500550054005600570057001F57 +:102F10005600570059005400580059001B570054E0 +:102F20000000005600590052002058005300520083 +:102F30005700730056001C5500540057005700748A +:102F40000053001E570058005600580074005400EB +:102F50001B5600590054005900750058001D5800B8 +:102F6000520058000000520056001F5400550057F0 +:102F700000520058005700205500560058005800D5 +:102F8000560055001C560058005300550054005779 +:102F9000001B5300550056005400570058001D599F +:102FA00000590059005900590059001C6500620081 +:102FB00062006200620062001D66006300650063DB +:102FC00000670063F61F670064006300650064002B +:102FD00066FF1E6400650067006400660064001BF5 +:102FE0006500660065006500650066002064006796 +:102FF0000066006700670067001D660066006400E9 +:103000006700670000001C670067006700000000A1 +:103010000000007976797679767976797679760016 +:103020007B787B787B787B787B787B78007B787B80 +:10303000787B787B787B787B78007B787B787B7873 +:103040007B787B787B78007B787A787A787A787A64 +:10305000787A78007B787B787B787B787B787B7854 +:10306000007C777C777C777C777C777C77001D0091 +:1030700000000000000000000000001E620065006B +:1030800063006400630062001D6300660064006505 +:1030900000650063F6206400670066006700620058 +:1030A00066FF1B6500640067006600640065001C25 +:1030B0006600730062006300650067001D670074AE +:1030C0000064006400660064001F64007400630014 +:1030D0006600670065001D6500750065006500639A +:1030E0000073001E630066006600670064007400E1 +:1030F0001C660067006700620062007400206700C1 +:10310000630065006300630075001F620062006475 +:10311000006400650066001D6300640066006200D4 +:103120006600650020650065006500650067006455 +:10313000001E6400670063006300630063001F6695 +:10314000006600640066006400650020160016003A +:1031500016000000160016001C17001800170000CB +:1031600000190017F61D18001900170016001800A6 +:1031700018FE1E190017001A001800170017001F6C +:103180001A00170016001900190019002073001802 +:103190000017001800180018001C7400190018000F +:1031A0001A00170019001D74001700190016001AE4 +:1031B0000017001F75001800180018000000180004 +:1031C0001E16001700170019001600170020170020 +:1031D000190018001700180019001C180018001A10 +:1031E000001800190018001F190017001600190018 +:1031F000180017001D18001900180018001A0018F0 +:10320000001E1700170019001700160019001D1ADC +:10321000001A001A001A001A001A001E010001000C +:103220000100010001000000200200030004000270 +:1032300000020001F61F0300020005000400040064 +:1032400002FD1B0400040002000500050003001E2F +:103250000500050003000300030004001D03000235 +:103260000004000400040006001F02000400010026 +:103270000500020001002004000300050002000117 +:103280000002001E0200060002000300040003000A +:103290001D0300000003000600020002001F0500DD +:1032A000010004007300050004001B060003000673 +:1032B00000740003000500200100040001007400F8 +:1032C000050002001E020002000300750004000158 +:1032D000001C0400030004000100020006001B069D +:1032E00000060006000600060000001D2D002D004F +:1032F0002D002D002D002D001C2E002E002F003241 +:10330000002E002EF6202F002F002E002E00310060 +:1033100031FC1E3000310032003200320030001B20 +:103320003100330033003100300032001D32000024 +:103330000031003200330033001C31002D002F001B +:103340003000730000001F32002E00300031007486 +:10335000002D002031002F003200330074003100B6 +:103360001E2D002E0031002D00750030001D2E0096 +:1033700032002E0032002D0032001C2F00310033AD +:10338000002F002F002F001D31002F000000300003 +:10339000300031002030002E002D0032003100328C +:1033A000001E32002F003200310032002E001D338B +:1033B00000330033003300330033001E6A006A001C +:1033C0006A006A006A006A001F6C006D006B006E84 +:1033D000006C006DF6206D006E006B006F006D00DC +:1033E0006FFB1C6E006F006C006C006F006C001BAC +:1033F0006F006A006F006D006E006F001E6B006C46 +:10340000006E006B006C006D001D6D006F006D00A4 +:103410006F006D006F001F6F0000006F0000006FF5 +:103420000000008E8B8E8B8E8B8E8B8E8B8E8B0006 +:10343000908D908D908D908D908D908D00908D9031 +:103440008D908D908D908D908D00908D908D908D24 +:10345000908D908D908D00908D8F8D8F8D8F8D8F15 +:103460008D8F8D00908D908D908D908D908D908D05 +:1034700000918C918C918C918C918C918C0020007E +:1034800000000000000000000000001B6D006D0047 +:103490006E006A006A006A00206C006E006D006FAA +:1034A000006D006FF61F6B006F006F0073006C0003 +:1034B0006CFB1C6E006C006C0074006F006D001ED5 +:1034C0006F006A006C0074006B006B001D6A006B7B +:1034D000006B0075006F006E001F6D006F006A00CA +:1034E0006A006E006F00206E006C006D006C006B57 +:1034F000006D001B6C006B006E006F006D006F00B4 +:103500001D73006E006F006D006C006C001F740076 +:103510006A006C006B006E006D001C74006D006A28 +:10352000006E006F006E001E75006C006A006C007B +:103530006A006B00206C006A006D006F006D006F08 +:10354000001C6E006F006C006D006C006A001D6D49 +:10355000006B006F006C006F006C001B0700070021 +:1035600000000700070007001D0800080000000811 +:1035700000080008F62008000800070008000800FE +:1035800069FA1E6900080008000800080008001F0A +:1035900008000800690008006900080020080069A8 +:1035A0000008000800080008001C080008000800C7 +:1035B0000900090008001B690008000800730000EA +:1035C0000008001E08000900080074000700080039 +:1035D0001D0800000069007400080008001F0800B2 +:1035E0000000080075000800080020080007000817 +:1035F000000700080069001E0800080008006900B4 +:10360000080008001F690008000800080069000899 +:10361000001C0800080008000800080008001B093A +:1036200000090009000900090009001B1000000042 +:1036300010001000100010002011001000120012E5 +:1036400000120011F61B12001100120011001100EF +:1036500012F91D1200120011001200120012001CBB +:103660001100110010001200110010001E100012B5 +:1036700000110011000000120020120010001100C3 +:103680001000100011001C11001100730011001136 +:103690000012001D11000000740012001200110041 +:1036A0001B1000100074001200110010001F120007 +:1036B00011007500100012001200201100100010FF +:1036C000001100110011001D120012001000000076 +:1036D000100012001E130011001100100010001144 +:1036E000001B1400120012001100110010001C1524 +:1036F00000100011001200120010001E44004400CF +:1037000044004400440000001D45004600470045B9 +:1037100000460044D61F46004800460047004800C7 +:103720004AD5204700450048004900490073001C65 +:103730004800470047004800470074001E49004AFF +:103740000045004A00460074001D4A0044004A003B +:103750000000470075001F44004500440000004978 +:103760000044001C45004600450044004500480058 +:10377000204600490048004900470049001C470016 +:103780004A0049004500460047001F480000004726 +:10379000004700480046001D490000004700460061 +:1037A000480048001E4500440048004800490047C2 +:1037B00000204600480046004700460049001C4AD9 +:1037C000004A004A004A004A004A001DD800D900B9 +:1037D000D900DB00DA00DD001CDA00DA00D800DAFC +:1037E00000DB00D8D620DC00DB00DA00DC00DC00E7 +:1037F000D9D41BDD00D800DD00D900DD00DB001DC1 +:10380000DB00DD00DC00D800D800DC001FD900DCC4 +:103810000000000000D90000001CDD00DB000000FB +:103820000000DC000000807D807D807D807D807DCB +:10383000807D00827F827F827F827F827F827F0085 +:10384000827F827F827F827F827F827F00827F82EF +:103850007F827F827F827F827F00827F827F827FE2 +:10386000827F827F827F00827F817F817F817F81D3 +:103870007F817F00827F827F827F827F827F827FC3 +:1038800000837E837E837E837E837E837E001D0015 +:1038900000000000000000000000001DD800D9005A +:1038A000DA00DB00DC00DC001BD900DA00DB00DC26 +:1038B00000DD00DBD61FDA00DB00DC00D800DB0017 +:1038C000DAD420DC00DC00DD00D9007300D8001D54 +:1038D000DB00DD00D900DA007400D9001FDD00DB59 +:1038E00000D800DC007400DD001BDC00DA00DA0028 +:1038F000DD007500DC001CD900DC00DC00DB00DA38 +:1039000000DB0020D800D900DD00D900DB00DA00A0 +:103910001CDA00D800DB00DD00D800D9001FDD0074 +:10392000DA007300D800DC00D8001EDC00DC007474 +:1039300000DB00D900DD001CDB00DD007400DC00D2 +:10394000DB00DC001BD800DB007500DA00DD00DBEB +:103950000020D900DC00DD00DD00DC00DA001EDB29 +:1039600000D800DB00DB00DA00D9001D4100420076 +:1039700040004200430042001F3C00430042003C24 +:103980000042003DD61B3D003E003C003F003D0094 +:103990003ED3203E003F0041003D003F003F001D60 +:1039A000420041007300410040003C001C3E003DCD +:1039B0000074003D003E0041001F3C000000740008 +:1039C000400042003D001B3F004100750043003DA8 +:1039D0000040001D3D003D003E003C004300420011 +:1039E00020400043003F0042003F003D001E3D00DC +:1039F0003F004000410000003C001D42003E003FEF +:103A0000003F000000410020430041003C003D0019 +:103A100042003D001F41003C003E0040003D004090 +:103A2000001C40003D00420041003C003F001B3FA5 +:103A3000003E003D003C003E003E001D0A000C0020 +:103A40000D000B000A000D001C0B000D000A000DFC +:103A5000000E000FD61E0C0073000E000C000D00AF +:103A60000EFF1F0D0074000D000B0000000B001B6B +:103A70000F0074000F000E0000000A00200E0075F9 +:103A8000000B000F000C000D001C0A000D000C00C4 +:103A90000D000A000B00200C000E000E000C000FA1 +:103AA000000C001E0D000F000F000B000C000E009C +:103AB0001C0F000B000D0000000A000C00200B0082 +:103AC0000E000A000C000B0000001B0E000D000B86 +:103AD000000D000A000F001F0D000F000C000F006A +:103AE0000B000D001C0F000C000D000E000C000B55 +:103AF000001E0C0000000F000C000D000C001D0A41 +:103B0000000B000E000B000D000E001E34003400F0 +:103B100034003400680034002035003600360037A9 +:103B200000000036D61F350037003800380034005A +:103B300038FE1B3B003800370039003B0039001CC1 +:103B40003400390039003A00730035001D38003662 +:103B50000035003B00740036002039003B003A007D +:103B6000000074003A001C3A003400370000007571 +:103B7000003B001E360035003800340034000000E1 +:103B80001B370037003B003700390000001F3800AA +:103B90003800000038003A00340020390039003481 +:103BA00000360036003A001D3A0036003500390074 +:103BB0003B0037001E35003A0037003A0034003829 +:103BC000001F3600350036003700380039001D3B35 +:103BD000003B003B003B003B003B001EE100DE00E1 +:103BE000E100E100E200DE0020E200E000DF00E2B0 +:103BF00000E300DFD61CDE00E200DE00E300DE00B2 +:103C0000E0FD1FE000E300E200DE00DF00E1001B5A +:103C1000E300DF00E300E000E100E20020E200E179 +:103C2000000000E200DE00E3001CE100E200000012 +:103C30000000DF000000878487848784878487846E +:103C4000878400898689868986898689868986000F +:103C50008986898689868986898689860089868972 +:103C60008689868986898689860089868986898665 +:103C70008986898689860089868886888688868856 +:103C80008688860089868986898689868986898646 +:103C9000008A858A858A858A858A858A85001D00AD +:103CA00000000000000000000000001EE100DE0037 +:103CB000E200DE00DE00DE001DE200E100E300E1E4 +:103CC00000E100E1D61FDE00E200E000E300E200D8 +:103CD000E2FD20E100E300DF00E200E300E0001C81 +:103CE000DF00DF00E300DF00DE0073001DE000E026 +:103CF00000DE00E000E00074001FE300E100DF00F0 +:103D0000E100DF0074001CE200E300E200E000E1FB +:103D100000750020E100DF00E100E200E200E100C8 +:103D20001EE100DE00E300E300E300E2001FE30029 +:103D3000E100E000E100E000E00020E200E30073C9 +:103D400000DF00E000DF001DDE00E0007400DE00A8 +:103D5000DE00E3001BE000E2007400E100E300E2AB +:103D6000001FE000E1007500E200E200DE001CE15F +:103D700000DF00E100E000E100E1001F65006200FB +:103D800067006300640063002064006500660062F1 +:103D900000650064D61E6300620064006500660072 +:103DA00066FC1B6200670065006400620063001C23 +:103DB0006700660066006300670065001D640065BB +:103DC0000000006200660064001E630066000000E0 +:103DD00000006500000079767976797679767976D3 +:103DE0007976007B787B787B787B787B787B780032 +:103DF0007B787B787B787B787B787B78007B787BA3 +:103E0000787B787B787B787B78007B787B787B7895 +:103E10007B787B787B78007B787A787A787A787A86 +:103E2000787A78007B787B787B787B787B787B7876 +:103E3000007C777C777C777C777C777C77001D00B3 +:103E400000000000000000000000001F650062008C +:103E500062006400640065001D6400630066006326 +:103E600000650066D61B6300730065006200630096 +:103E700067FC1E6600740067006200620066002036 +:103E80006700740064006500640065001C620075D2 +:103E90000063006600630063001F63006300650049 +:103EA0006700660062001B650062006400650067D1 +:103EB0000064001E64006300630066006500630028 +:103EC0001D6600640062006400640065001F6700F6 +:103ED0006500630063006300730020650066006591 +:103EE000006500640074001B6400670066006400E5 +:103EF000650074001D660064006300660064007560 +:103F0000001E6200650062006700630066001F63B8 +:103F100000640066006300660063001ED800D900DC +:103F2000D900D900D900DA001FD900DA00DA00D8A8 +:103F300000DA00DBD620DA00DD00D800DA00DB0092 +:103F4000DCFB1DDB00DC00DB00DB00D800DD001C3F +:103F5000DC00D800DC00DC00DC00D8001BDD00DB6E +:103F6000000000DD00DD00D9001EDC00DA000000EA +:103F70000000D8000000807D807D807D807D807D78 +:103F8000807D00827F827F827F827F827F827F002E +:103F9000827F827F827F827F827F827F00827F8298 +:103FA0007F827F827F827F827F00827F827F827F8B +:103FB000827F827F827F00827F817F817F817F817C +:103FC0007F817F00827F827F827F827F827F827F6C +:103FD00000837E837E837E837E837E837E001E00BD +:103FE00000000000000000000000001DD800D90003 +:103FF000D900DA00DD00DB001ED900DA00DA00DCCF +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_02e.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_02e.hex new file mode 100644 index 00000000..5ce8268e --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_02e.hex @@ -0,0 +1,1025 @@ +:1000000000DB00DCD61CDA00D800DD00DB00DB0002 +:10001000DDFB20DB00DB00DB00DD00DD00DA001DA6 +:10002000DC00DC00D800D800D800D8001FDD00D8E4 +:1000300000D9007300D900D9001CDC00DD00DD0010 +:100040007400DB00DB001E7300DC00DA007400DDEE +:1000500000D800207400DA00DC007500D800DC0055 +:100060001B7400DB00D800DC00DB00DA001E75002A +:10007000D900D900DA00DC00DD0020DA00D800DB8E +:1000800000DB00DA00D9001DDC00DA00DC00DD0056 +:10009000D900DB001CDD00DC00DA00D900D800DC70 +:1000A000001FDA00DB00D900D800DB00DD001BDB1D +:1000B00000D900D800DC00DC00D8001DEE00EE0006 +:1000C000EE00EE00EE00EE001EF100F100F200F195 +:1000D00000F300F3D61CF200F300F200F300F0008E +:1000E000EFFA20F300F200F300F000F400F2001D3C +:1000F000F400F000F100EF00EE00F1001FEE00F15F +:1001000000F000F300EF00F0001CEF00F300EF0040 +:10011000F200F100F3001EF300F200F400F300F32C +:1001200000EF0020F200F400EE00F100F000F0001B +:100130001BEF00EE00F300F200F200F1001EF300EE +:10014000F300EF00F400F100F20020F200F100F102 +:1001500000EE00F200F3001DF100F000F000F200EC +:10016000F300F2001CF100F200F200F300EF00F0E7 +:10017000001FF300F300F300F300F300EF001BF4A3 +:1001800000F400F400F400F400F4001DEE00EE00B2 +:10019000EE00EE00EE00EE001EF100F100F200F1C4 +:1001A00000F300F4001CF200F300F200F300F00092 +:1001B000000020F300F200F300F000F4D1CF001DA6 +:1001C000F400F000F100EF0000D2D0001FEE00F1CB +:1001D00000F000F300C9C300001CEF00F300EF00C3 +:1001E000F200CAC4BF001EF300F200F400F300CB1B +:1001F000C5C0BD20F200F400EE00F100CCC6C1BEC7 +:100200001BEF00EE00F300F200CDC7C2001EF300AA +:10021000F300EF00F400CEC8000020F200F100F17E +:1002200000EE0000D1CF001DF100F000F000F20060 +:10023000EED2D0001CF100F200F200F300EF00005B +:10024000001FF300F300F300F300F300EE001BF4D3 +:1002500000F400F400F400F400F40008888880083A +:10026000888880088888800888888008888880082E +:10027000888880088888800888888008888880081E +:10028000888880088888800888888008888880080E +:10029000888880088888800888888008888800087E +:1002A00088880008888880088888800808888008EE +:1002B000088880088888800888888008888880085E +:1002C00088888008888880088888800888888008CE +:1002D00088888008888880088888800888808008C6 +:1002E00088808008888880088888800888888008B6 +:1002F000888880088888800888888008888880089E +:10030000888880088888800888888008888880088D +:10031000888880088888800888888008888880087D +:10032000888880088888800888888008888880086D +:10033000888880088888800888888008888880085D +:10034000888880088088800880888008888880085D +:10035000888880088888800888888008888880083D +:10036000888880088888800888888008888880082D +:10037000888880088888800888888008888880081D +:10038000888880088088800880888008888880081D +:1003900088888008888880088888800888888008FD +:1003A000888880088888800888888008880880086D +:1003B000880880088888800888888008888880085D +:1003C00088888008888880088888800888888008CD +:1003D00088888008888880088888800888888008BD +:1003E00088888008888880088888800888888008AD +:1003F000888880088888800888888008888880089D +:10040000888880088888800888888008888800080C +:10041000888800088800000888000008888880080C +:10042000888880088888800888888008888880086C +:10043000888880088888800888888008888880085C +:10044000888880088888800888888008888880084C +:10045000888880088888800888888008888880083C +:10046000888880088888800888888008888880082C +:10047000888880088888800888888008888880081C +:10048000888880088888800888888008888880080C +:1004900088888008888880088888800888888008FC +:1004A00088888008888880088888800888888008EC +:1004B00088888008888880088888800888888008DC +:1004C00088888008888880088888800888888008CC +:1004D000888880088888800888888008880880083C +:1004E000880880088808800888088008888880082C +:1004F000888880088888800888888008888880089C +:10050000888880088888800888888008888880088B +:100510008888800888888008888880088880800883 +:100520008880800888888008888880088888800873 +:10053000888880088888800888888008888880085B +:10054000888880088888800888888008888880084B +:1005500088888008888880088888800888880008BB +:1005600088880008888880088888800888888008AB +:10057000888880088888800888888008888880081B +:10058000888880088888800888888008888880080B +:1005900088888008888880088888800888888008FB +:1005A00088888008088880080888800888888008EB +:1005B00088888008888880088888800888888008DB +:1005C00088888008888880088888800888888008CB +:1005D00088888008888800088888000888888008BB +:1005E00088888008888880088888800888888008AB +:1005F000888880088888800888888008888880089B +:10060000888880080888800808888008888800080A +:1006100088880008888880088888800888888008FA +:10062000888880088888800888888008888880086A +:100630008888800888888008888880088088800862 +:100640008088800888888008888880088888800852 +:10065000888880088888800888888008888880083A +:10066000888880088888800888888008888880082A +:10067000888880088888800888888008888880081A +:10068000888880088888800888888008888880080A +:1006900088888008080800080808000888888008FA +:1006A00088888008888880088888800888888008EA +:1006B00088888008888880088888800888888008DA +:1006C00088888008888880088888800888888008CA +:1006D00088888008888880088888800888888008BA +:1006E00088888008888880088888800888888008AA +:1006F000888880088888800888888008888880089A +:100700008888800888888008888880088888800889 +:100710008888800888888008888880088888800879 +:100720008888800888888008888880088888800869 +:100730008888800888888008888880088888800859 +:100740008888800888888008888880088888800849 +:100750008888800888888008888880088088800841 +:100760008088800880888008808880088888800841 +:100770008888800888888008888880088888800819 +:100780008888800888888008888880088888800809 +:100790008888800888808008888080088888800809 +:1007A0008888800808888008088880080888800869 +:1007B0000888800888888008888880088888800859 +:1007C00088888008888880088888800888888008C9 +:1007D0008888800888888008888880080888800839 +:1007E0000888800888888008888880088888800829 +:1007F0008888800888888008888880088888800899 +:100800008888800888808008888080088888800898 +:1008100088888008888880088888800808888008F8 +:1008200008888008888880088888800888888008E8 +:1008300088888008888880088888800888088008D8 +:1008400088088008888880088888800888888008C8 +:1008500088888008888880088888800888880008B8 +:1008600088880008888880088888800888888008A8 +:100870008888800888888008888880088888800818 +:100880008888800888888008888880088808800888 +:100890008808800888088008880880088888800878 +:1008A00088888008888880088888800888888008E8 +:1008B0008888800808888008088880080888800858 +:1008C0000888800888888008888880088888800848 +:1008D00088888008888880088888800888888008B8 +:1008E00088888008888880088888800888888008A8 +:1008F0008888800888888008888880088888800898 +:10090000888880088008000880080008800800089F +:10091000800800088888800888888008888880087F +:100920008888800888888008888880088888800867 +:100930008888800888888008888880088888800857 +:100940008888800888888008888880088888800847 +:100950008888800888888008888880088888800837 +:100960008888800888888008888880088888800827 +:100970008888800888888008888880088888800817 +:100980008888800888888008888880088888800807 +:1009900088888008888880088888800888888008F7 +:1009A00088888008888880088888800888888008E7 +:1009B00088888008888880088888800888888008D7 +:1009C00088888008888880088888800888888008C7 +:1009D00088888008888880088888800888888008B7 +:1009E00088888008888880088888800888888008A7 +:1009F0008888800888888008888880088888800897 +:100A00008888800888888008888880080888800806 +:100A100008888008888880088888800888888008F6 +:100A2000888880088888800888888008888080086E +:100A3000888080088880800888808008888880086E +:100A40008888800888888008888880088888800846 +:100A50008888800888888008888880088888800836 +:100A60008888800888888008888880088888800826 +:100A7000888880088880800888808008888080082E +:100A8000888080088888800888888008888880080E +:100A900088888008888880088888800888888008F6 +:100AA0008888800888088008880880088888000866 +:100AB0008888000888888008888880088888800856 +:100AC0008888800888888008888880080888800846 +:100AD0000888800888888008888880088888800836 +:100AE00088888008888080088880800888888008B6 +:100AF0008888800888888008888880088888800896 +:100B00008888800888888008888880088808800805 +:100B10008808800888088008880880088888000875 +:100B200088880008888800088888000880888008ED +:100B3000808880088888800888888008888880085D +:100B40008888800888888008888880088888800845 +:100B50008888800888888008888880088888800835 +:100B60008888800888888008888880088888800825 +:100B70008888800888888008888880088888800815 +:100B8000888880088088800880888008800800081D +:100B900080080008888880088888800888888008FD +:100BA00088888008888880088888800888888008E5 +:100BB00088888008888880088888800888888008D5 +:100BC00088888008888880088888800888888008C5 +:100BD00088888008888880088888800888888008B5 +:100BE00088888008888880088888800888888008A5 +:100BF0008888800888888008888880088888800895 +:100C00008888800888888008888880088888800884 +:100C10008888800888888008888880088888800874 +:100C20008888800888888008888880088888800864 +:100C30008888800888888008888880088888800854 +:100C40008888800888888008888880088888800844 +:100C50008888800888888008888880088888800834 +:100C60008888800888888008888880088888800824 +:100C70008888800888888008888880088888800814 +:100C8000888880088088800880888008800800081C +:100C900080080008888880088888800888888008FC +:100CA00088888008888880088888800888888008E4 +:100CB00088888008888880088888800888888008D4 +:100CC00088888008888880088888800888888008C4 +:100CD00088888008888880088888800888888008B4 +:100CE00088888008888880088888800888888008A4 +:100CF0008888800888888008888880088888800894 +:100D00008888800888888008888880088888800883 +:100D10008888800888888008888880088888800873 +:100D20008888800888888008888880088888800863 +:100D30008888800888888008888880088888800853 +:100D40008888800888888008888880088888800843 +:100D50008888800888888008888880088888800833 +:100D60008888800888888008888880088888800823 +:100D70008888800888888008888880088888800813 +:100D8000888880088088800880888008800800081B +:100D900080080008888880088888800888888008FB +:100DA00088888008888880088888800888888008E3 +:100DB00088888008888880088888800888888008D3 +:100DC00088888008888880088888800888888008C3 +:100DD00088888008888880088888800888888008B3 +:100DE00088888008888880088888800888888008A3 +:100DF0008888800888888008888880088888800893 +:100E00008888800888888008888880088888800882 +:100E10008888800888888008888880088888800872 +:100E20008888800888888008888880088888800862 +:100E30008888800888888008888880088888800852 +:100E40008888800888888008888880088888800842 +:100E50008888800888888008888880088888800832 +:100E60008888800888888008888880088888800822 +:100E70008888800888888008888880088888800812 +:100E80008888800888888008888880088888800802 +:100E900088888008888880088888800888888008F2 +:100EA00088888008888880088888800888888008E2 +:100EB00088888008888880088888800888888008D2 +:100EC00088888008888880088888800888888008C2 +:100ED00088888008888880088888800888888008B2 +:100EE0008888800888888008888880088888000822 +:100EF000888800088888000888880008888000089A +:100F000088800008888000088880000888800008A1 +:100F10008880000888800008888000088880000891 +:100F20008880000888880008888800088880000871 +:100F30008880000888800008888000088888000869 +:100F400088880008888800088888000888888008C1 +:100F500088888008888880088888804F5FDD65DD04 +:100F600090D7675FD75DD761D77ED77CD77DC6FF27 +:100F7000D77B9E56EC84DD5EDD62E602D760D764E7 +:100F8000D6540D2226015FD75ABD8FB0D6505A1FB6 +:100F900098DD58CC032CBD9604D620C401D7998681 +:100FA0000CBD96044FD699C801DD88C604D79C397C +:100FB0009E4EBCFFFA2704C63BD75A39BD6447DCB6 +:100FC00065DD900F928E05604FC614A784300A5AD3 +:100FD00026F9D667860BBD9604C601D7E88608D6E3 +:100FE00067BD9604BD9094C608D7934F5FD78AD744 +:100FF0008BD66786073D8E6485308BEC03DD94ECE1 +:1010000005DD8EDD6A34108D743510D6A0D79FE6CD +:1010100002D7A0EC84D79E4A97982626D6675CC153 +:101020001A23015FD76786073D8E6485308BEC8479 +:101030009798D79EE602D7A0EC03DD94EC05DD8EF1 +:10104000DD6A0F9DD65AD7967F06288E06385FE751 +:1010500080E780E780E780E780E780E780E780E758 +:1010600080E780E780E7808E00A64F5FED81ED810D +:10107000ED81ED81E7844F5FDD9AD7A3399E8E1015 +:101080008E0100C620D7C8EC81EDA1EC81EDA10A4C +:10109000C826F4398E04C06F10CC0001ED13D69928 +:1010A0002731D689262DCC0490ED0EC601E7104FCE +:1010B0005FED11CC0020D390ED15C688E718C6016E +:1010C000E71ACCAFD0ED1E6F1DCC0520ED88EEC623 +:1010D00002E70CD68826358E0490CC04C0ED0EC6EF +:1010E00001E7104F5FED11CC0000ED13CC0020D3D1 +:1010F00090ED15C668E718C601E71ACCAFACED1E37 +:101100006F1DCC04E0ED88EEC602E70C39CE02403C +:10111000DFD6CC0001D323DD238D2CBD916ABD9198 +:10112000B4BD4127BD6362BD91D5BD4134BD4167AA +:10113000963B85802608D602588E9141AD953B435B +:101140007B92589296963610DFC810CE03E0CE20E0 +:1011500080C60635303630353036303530363035AD +:101160003036305A26ED10DEC839D6E5F73018DCB7 +:10117000E6B73000F73008D68B27389E8C318904CB +:1011800000CE03A0C60DD7C8E6C820A6C0A784E736 +:10119000A43088E031A8E0E6C820A6C0A784E7A470 +:1011A0003088E031A8E00AC826DEE6C820A6C0A73D +:1011B00084E7A4398E00433101C607A682A7A25A4C +:1011C00026F9B6300443973CB63002439740B63018 +:1011D00003439742398E0030CE301F8D0E3005CE3E +:1011E000301E8D078D22D7C88D32394FE602270A6F +:1011F0005AE702C11E2610A7C439E68427096A846B +:101200004CA7C4C63CE70239D63CDA3D53D43ED4A1 +:101210003FC430272C3404BD64003584D6C8C510C3 +:1012200027058E00308D1BD6C8C52027058E0035BA +:101230008D10D6C8C5002709CC0001D3252702DDB3 +:1012400025396C846C01A601A10325F5E6044FD372 +:10125000252502DD256F0139BD95DAC601D7E8CC19 +:10126000032CBD9604CC0000BD9604C601D7E54F03 +:101270009722978B97E697E75FDD00DD03DD06DDBC +:1012800009DD0CD708D70BD70E0C02D63AC540277C +:1012900004C6FFD702399605488E92A4AD96BD9339 +:1012A0001E8D0D39933E9348949294B694D59574BF +:1012B000D625DA26DA512733D63CC40F272D8D2CBC +:1012C000242997200F210D5126071DD325DD25DD6B +:1012D00027860197224F5FDD03DD06DD09DD0C0F58 +:1012E000050F080F0B0F0EC602D702391A01340181 +:1012F0000D51260C9E25272296532604301F2710B9 +:10130000C502270CC6FF96532602C6FE860135810C +:10131000C5012706C6FF860035811CFE3584DC2505 +:101320001093272718DD27CC0338BD9604CC07007F +:10133000BD9604C605D7050F080F0B0F0E39CC87D5 +:10134000CDDD780F7A0C0539960848108E93516ED2 +:10135000B6935B938F93BA941A94630DE8262F8EFD +:1013600064855F86073D308BEC05DD8EBD907DC6C4 +:1013700001D7998601DD584F5FDD88BD90948601C5 +:1013800097E5860197E8CC0119BD96040C08390D44 +:10139000E82626CC1000BD9604CC020ABD9604CCEB +:1013A0000338BD9604CC0700BD9604CC1000BD9652 +:1013B00004CC020BBD96040C08394F5FDD90C601CA +:1013C000D79D8E0490108E04C0C601E710E7304F01 +:1013D0005FED11ED31E70CE72CCC001CED15C68854 +:1013E000E718CC00D0ED35C688E738CC9BB6DD4A8F +:1013F000CC9BC4DD4C0F480F493430BDA98A353031 +:10140000CC940AED1BED3B0C0839010002000000F2 +:1014100002C001000000000002408E070831882051 +:101420006F026F22C601E710E7304F5FED11ED311B +:10143000C608E713C609E7333430BDB19A3530CC5E +:101440000200ED11CC005CED15C6B4E718CC02002B +:10145000ED31CC0090ED35C6B4E738CC000ADD069E +:101460000C0839BD9A2CBDA98ABDB19ABDE7D6BD7D +:10147000E7DFBDFECFBDFF1ABDFF3DBDFF09D6248E +:10148000C43F260D9E06301F9F0626050C050F083B +:1014900039398E001E9F034F5FDD440F480F498E80 +:1014A0009A6E9F4A8E9B149F4CC601D7200C050F45 +:1014B000080F0B0F0E39BD9646D624C43F26F69E64 +:1014C00003301F9F0326EEBD95DA0FE60C050F08CB +:1014D0000F0B0F0E399608108E94DE486EB694E806 +:1014E00094F995229533955C0DE8260C860197E8D2 +:1014F000CC0119BD96040C08390DE82624CC100047 +:10150000BD9604CC0900BD9604CC020ABD9604CC5D +:101510000338BD9604CC0700BD960486F097070CEF +:1015200008390A07260C860197E8CC0119BD9604F4 +:101530000C08390DE82624CC1000BD9604CC0A0016 +:10154000BD9604CC020ABD9604CC0338BD9604CCEB +:101550000700BD960486F097070C08390A07261382 +:1015600096259A269A5126050F080F05390C050F66 +:10157000080F0B3996088E957C486E969582959A41 +:1015800095CD0DE82613BD95DA0FE60F8BCC01192A +:10159000BD9604C601D7E80C08390DE8262EBD9586 +:1015A000DACC020CBD9604CC020ABD9604CC100025 +:1015B000BD9604CC0700BD9604CC0324BD9604CC94 +:1015C0000E00BD9604CC00F0DD060C08399E0630F6 +:1015D0001F9F0626040F050F0839C6063444CE04A3 +:1015E00040CCF8F81F0131843636363636166AE4B8 +:1015F00026F635C4D679D87853585809790978D65B +:1016000079D77A39109E10EDA1108C01C0250410F5 +:101610008E0180109F1039E61D261810AE1EECA119 +:10162000A784E701E6A02A0510AEA4C47FE71D1039 +:10163000AF1E396A1D399605488E963E6E96A2C534 +:1016400096469BD29D60D608588E964E6E959658BB +:1016500096A6979D97E397F9D60B588E96606E9550 +:101660009662D60E8E966A586E95966E9692D6E8CB +:10167000261FCC053FBD9604CC032CBD9604CC00A0 +:10168000000D222603CC011ABD9604C601D7E80C32 +:101690000E39D6E8260FBD8F5BBD63F6BD64700CB6 +:1016A000080F0B0F0E39D60B8E96AE586E9596BA64 +:1016B00096C097109749977B978ABD8FBC0C0B39C2 +:1016C0008E0828108E0010C620BD97937F06388E96 +:1016D0000A28108E0006BD97937F06488E0AE810F0 +:1016E0008E0004BD97937F06588E0B68108E000203 +:1016F000BD97937F06688E0BA8108E0004BD97934C +:101700007F06788E0E28108E0001BD97930C0B3942 +:101710008E0CE8108E0006C620BD97937F06888E3B +:101720000DA8108E0004BD97937F06A88E0C28107C +:101730008E0006BD97937F06988E0768108E000670 +:10174000BD97937F06B80C0B398E04E0108E000411 +:10175000C620BD97938E0E48108E0003C630BD97ED +:10176000938E0708108E0003C620BD97930F9A7FB3 +:1017700006D87F05507F05580C0B398E0ED8108E79 +:101780000004C620BD97930C0B39D6E826040C083C +:101790000F0B394FA7103085313F26F839D60B583B +:1017A0008E97A56E9597AB97C697D2BD9A2CBDA57F +:1017B000E2BDE2B3BDEF51BDFED8D688D489260183 +:1017C000390C0B0F0E39BD6452BD6466C604D70ACE +:1017D0000C0BD624C43F260A0A0A26060C080F0B57 +:1017E0000F0E390C055FD708D70BD70E395FD7021C +:1017F000D705D708D70BD70E39D60B588E98016E60 +:1018000095980798359861D60E588E980F6E9598D2 +:1018100015981B9830C603D70C0C0EBDA5E2BDE28F +:10182000B3BDEF51BDFED8D624C43F26020C0E39FD +:101830000C0B0F0E39D60E588E983D6E9598419828 +:1018400058D6E82612BD95DABD63F6C601D7E8CCB6 +:10185000011ABD96040C0E39D6E826040C0B0F0EA7 +:1018600039D60E588E98696E959877989898DF9922 +:101870002C998999E99A180FE6CC021ABD9604D6DC +:101880007E5CC1092302C6104FDDDC5FDDDEDD902A +:101890008E07486F100C0E39D68826408E0490C6ED +:1018A00001E710CC0020ED15C6A0E718CC0220BD42 +:1018B00096048E116D108E00DCD6E9BD4EBED6A505 +:1018C000271AC10126168E0748C601E710CC004032 +:1018D000ED15C680E718CC0221BD96040C0E39D652 +:1018E00020C5012744D68926408E04C0C601E710D2 +:1018F000CC0020ED15C660E718CC0222BD96048E00 +:10190000126D108E00DCD6E9BD4EBED6A5271AC1D9 +:101910000226168E0748C601E710CC0040ED15C61A +:1019200040E718CC0223BD96040C0E39C603D7C875 +:10193000CE99628E0828C603D0C886053D31CBEC0F +:10194000A1ED1E6F1DECA1ED15E6A4E718C601E799 +:1019500010BD96173088200AC826DBC605D70D0CA7 +:101960000E3999710090209979005020998100706A +:10197000205CDD0A5DDD90997183FE0A86FE9099F8 +:101980007940FF0A41FF909981BD99C5BD999CD6C8 +:1019900024C43F26060A0D26020C0E39BDFECF8E4A +:1019A0000490BDFFB38E04C0BDFFB38E0748BDFFDA +:1019B000B3C603D7C88E0828BDFFB33088200AC835 +:1019C00026F67EFF098E0490BD96178E04C0BD9644 +:1019D000178E0748BD9617C603D7C88E0828BD9630 +:1019E000173088200AC826F639D6882606CC040087 +:1019F000BD9604D620C501270AD6892606CC0480C8 +:101A0000BD9604D6A5270E5A2604C6342002C6B4B5 +:101A10008604BD96040C0E390C7E4F5FD767DD65DA +:101A2000BD645CC601D7080F0B0F0E39DC44DD46E0 +:101A30000D2227079640D642DD4439CE0044108E51 +:101A4000004A8D09334131228D038D1339E6442636 +:101A50000BAEA4EC81A7C4E744AFA4396A4439D6DD +:101A600024C4072608DC44CA018A01DD4439083051 +:101A70002001103008301005086020080858202088 +:101A8000085000000010051008350430080110103F +:101A9000010109100420081010580910094009011B +:101AA0001101041008300000205808100837000108 +:101AB0002019000D010D0011010F0003012000018C +:101AC00005001400380000001E001D003500000055 +:101AD000070000000B0007000C0008000F00670063 +:101AE000110029002B00010007001B0104000F0159 +:101AF00017000501120005010E00170110000E016C +:101B000017000A10110023084F00C1042200020828 +:101B1000290001200450201008391030040520103D +:101B2000091011100420085810100820041020502B +:101B300009250401102008010000091021100805E2 +:101B400020100450202009300840111008200505FD +:101B50001020093021050820012010100011000F6D +:101B600000030020A6010000080000001000000093 +:101B70000800000004000000010000000100000057 +:101B80000100000010000000040000000800000038 +:101B90000001000000010000000100000001000041 +:101BA0000001000000010000001000000008000417 +:101BB000000000080020083F10402040084004605A +:101BC00000FF00FF043F104020400440086000FF79 +:101BD00000FFD608588E9BDA6E959BE49BFF9C32E3 +:101BE0009CD59CFF0F8B0FE6BD95DA4F5FFD037010 +:101BF000FD0372FD0374FD0376F703780C08398E3C +:101C0000006C108E0300BD9C81251FC601F7037078 +:101C1000860590C8B703730AC82703BD9C97BD9C6F +:101C2000B6CC1010EDA1EDA12005C601F703820C82 +:101C30000839D620272D8E0070108E0300BD9C81A0 +:101C4000251DC601F70371860590C8B703740AC83D +:101C500027028D438D60CC1010EDA1EDA18D0E0CEF +:101C6000082009C601F7038EC604D70839F60373A6 +:101C7000F10374260BC10427047C0373397F0370BE +:101C800039C605D7C8BD9CBF4D260931280AC826CC +:101C9000F41A01391CFE3934308E0320108E0328CB +:101CA000EC83EDA3EC83EDA3EC83EDA3EC83EDA338 +:101CB0000AC826EC35B0EC81EDA1EC84EDA139EC3D +:101CC0008410A3A42509220AEC0210A32224034FA6 +:101CD000200286FF398E0074108E0328BD9D2425B6 +:101CE0001BC601F70372860590C8B703758D4A8D30 +:101CF000C5CC1010EDA1EDA1EDA1EDA10C0839D6D8 +:101D0000202712F60370FA0371FA03721027FADD26 +:101D10000F080C0539F60370FA03721027FACE0F7C +:101D2000080C0539C605D7C88D954D2609312C0AF2 +:101D3000C826F51A01391CFE3934308E0358108E2E +:101D40000364EC83EDA3EC83EDA3EC83EDA3EC83C0 +:101D5000EDA3EC83EDA3EC83EDA30AC826E435B034 +:101D6000BD9A2CD608588E9D6FAD957E92B0399D48 +:101D7000779DA8A26997EDD60B588E9D7F6E959D95 +:101D8000859D8F9D9F0F8B0FE6BD95DA0C0B39BD9E +:101D90006461CC011ABD9604C601D7E80C0B39D694 +:101DA000E826040F0B0C0839D60B588E9DB06E95A3 +:101DB0009DB69DFA9EDCBDA1F0CC0217BD9604F63F +:101DC0000372FA03702714CC0218BD96048E0480A7 +:101DD000C601E784108EA1D0BD9F37F60372FA03C7 +:101DE000712714CC0219BD96048E04B0C601E78495 +:101DF000108EA1D8BD9F370C0B39BD9E01BD9E37FB +:101E000039F60370FA0372270ABD9EC1F6037226E3 +:101E100017200EF60371271EC6018E0380E70220ED +:101E200007C6018E0380E70EBD9EA68E0380E602E4 +:101E3000E40E27020C0B39F60378588E9E406E95FF +:101E40009E469E739EA0D620270C108EA1D8AE264B +:101E5000E684C53C2619108EA1D0AE26E684C53C8A +:101E6000260DDC23C30D48FD03767C037820037F19 +:101E7000037839D620270C108EA1D8AE26E684C56B +:101E80003C2619108EA1D0AE26E684C53C260DDC7A +:101E90002310B3037626087C037820037A0378396D +:101EA0007F03780C0B39108EA1D8BD9F75AE22E64A +:101EB0000227037F04B08E04B08657C6C0BD9FF9C9 +:101EC00039108EA1D0BD9F75AE22E60227037F0494 +:101ED000808E04808656C6C3BD9FF939F6037027ED +:101EE00009F603738E0398BD9F25F6037127098EAB +:101EF000039CF60374BD9F25F603722703BD9F055F +:101F00000F0B0C0839F60375860C3D8E0398108E66 +:101F1000032C31ABEC81EDA1EC81EDA1EC81EDA1C5 +:101F2000EC81EDA139585858108E030431A5EC818D +:101F3000EDA1EC81EDA1394F5FAE22ED84ED07ED0F +:101F400002C654E706AEA4C63FE780E780E780E715 +:101F500084AE22E6018610AE2458AE85E7890400DF +:101F6000A781E7890400A781E7890400A781E789A1 +:101F70000400A78439AE22E6022621AE26E60253EB +:101F8000E484C501270AAE22E606C152250F243D8E +:101F9000BDA056BDA0B1BDA108BDA16139AE22E66C +:101FA00006CEA214A6C5E601EEA4A7C53474BDA151 +:101FB000B635745CC1042710E701BDA056BDA0B1C1 +:101FC000BDA108BDA1612004C601E70239AE228689 +:101FD0003FE601EEA4A7C5E606C1522706C601E703 +:101FE000022015E60127026A01BDA056BDA0B1BDC1 +:101FF000A108BDA161BDA1B639A78810E788115F0E +:10200000E705EE22A646C611BDC29CC10F26056C8F +:10201000465C20085A26046A4620015C585858CB72 +:102020003CC1BC2204E7062004C63CE706484848F9 +:1020300048340286C4A0E0817C240686C4A7082018 +:1020400002A708BDFECF8E0490BDFFB38E04C0BDB5 +:10205000FFB3BDFF0939EE22E643588EA0606E95AE +:10206000A064A08EAE26E60253E484C508260AE6E4 +:1020700002E484C508261020146C466C46E646C16E +:1020800054230A6F4620066C43C614E74539AE2632 +:10209000E602E484C50827166A4526146C466C4699 +:1020A000E646C15423026F46C60AE74520026A434A +:1020B00039EE22E6C4588EA0BB6E95A0BFA0E7AE55 +:1020C00026E60253E484C504260AE602E484C50435 +:1020D000260E20126A466A462A0CC654E746200697 +:1020E0006CC4C614E74439AE26E602E484C504276E +:1020F000146A4426126A466A462A04C654E746C64B +:102100000AE74420026AC439EE22E647588EA1123B +:102110006E95A116A140AE26E60253E484C52026A2 +:102120000AE602E484C52026102014E646CB11C13D +:10213000542302200AE74620066C47C614E74939B3 +:10214000AE26E602E484C52027146A492612E64634 +:10215000CB11C1542202E746C60AE74920026A476A +:1021600039EE22E648588EA16B6E95A16FA197AE0D +:1021700026E60253E484C510260AE602E484C5106C +:10218000260E2012E646C0112A02200AE746200643 +:102190006C48C614E74A39AE26E602E484C5102727 +:1021A000126A4A2610E646C0112B02E746C60AE725 +:1021B0004A20026A48393440EE24AE22E601AEA439 +:1021C000A68558AEC5A784862CA78904003540395A +:1021D00003980380A1E00044039C038CA1E8004520 +:1021E00012E712E912EB12ED12F212F412F612F8E3 +:1021F0008EA212EE81C6053404C611862CA7C9042E +:1022000000A680A7C05A26F333C82F6AE426EA3214 +:10221000613910C82F10111012101310141015105E +:10222000161017101819101A101B101C101D101E54 +:10223000101F10201021221023102410251026100A +:102240002710281029102A00100110021003100472 +:10225000100B100D102C103F051006100710081061 +:1022600009100E102B105F104FD60B588EA2716EF6 +:1022700095A279A293A29EA2B5BD646BBD95DACC5E +:10228000011ABD9604CC0900BD9604CC00B4DD064D +:102290000C0B399E06301F9F0626020C0B39BD958C +:1022A000DACC011ABD9604CC0A00BD9604CC00B469 +:1022B000DD060C0B399E06301F9F062607BD63F610 +:1022C0000C080F0B39D608588EA2CD6E95A2D3A359 +:1022D00008A335D6E82630CC053FBD9604BD63F68D +:1022E000C601D7E8CC0B00BD9604CC0800BD96040F +:1022F000CC0114BD9604CC1000BD9604CC1300BDD7 +:102300009604BD64800C0839CC0138DD064F5FDDD2 +:1023100090D7E6BD95DAC606D7C88E08284F5FED80 +:1023200011C601E710C606D0C8E7143088200AC8D5 +:1023300026EB0C0839BDA3998D038D12398E082820 +:10234000C606D7C88D263088200AC826F739BDFEB4 +:10235000CF8E0828BDFF6A308820C605D7C8BDFFCC +:10236000B33088200AC826F6BDFF0939E6102708D1 +:10237000CEA379EC11486ED639A3C9A4ECA502E628 +:102380000D2613EE0EA6C02A04EEC420F8A71AE606 +:10239000C0E70DEF0E396A0D39DC06830001DD065A +:1023A00026090C055FD708D70BD70E39E61A5858FF +:1023B000EB1AEE1B33C5EC16E341ED16E615E9C446 +:1023C000E715EC18E343ED1839E61458D7C9CEA445 +:1023D00010ECC5ED1BCEA476D6C9ECC5ED0E6F0D85 +:1023E000D6C9CEA482EEC5ECC1ED15E6C4E718CE81 +:1023F000A494D6C9EEC5EF1E6F1D6C11E61410260D +:10240000F215CED97BECC1ED04ECC4ED067ED52AE5 +:10241000A41CA449A449A449A449A449000000005B +:10242000000000800000000100FF000000000080AC +:10243000FFFF00FF00FFFF800000FFFF0001000022 +:102440000000008000010001000000000000000109 +:10245000000000000140FEC00000000100FFFEC0BF +:10246000FEC0FFFF000000FFFEC0014000000001B1 +:10247000000001400140A58CA597A5ACA5C1A5CC45 +:10248000A5D7A48EA491A491A491A491A49100F89D +:102490006800F828DA79AFACAFD0A4A0A4AEA4BC91 +:1024A00058DD035ADD0359DD035ADD83A4A084FE01 +:1024B0000383FE0385FE0383FE83A4AE4AFF03422B +:1024C000FF0343FF0342FF83A4BCA4D0A4D8A4E02D +:1024D0005EDD035FDD83A4D087FE0388FE83A4D87E +:1024E00044FF0345FF83A4E055C05281BDA37FBDD7 +:1024F000A3ACBDA540E61A2728E6141027302B7E92 +:10250000961758CEA5086ED5A50CA522E614C003D3 +:102510002B0FCEA4CA58ECC5ED1E6F1DBD96176CCF +:102520001239CE0828EC55830008DDCAE614C00332 +:1025300086103DD3CAED15E658C00CE7187E9617F5 +:10254000E614260CE618C038CB02C10422028D0125 +:1025500039CE0848C606D7C9E650C5022626E65435 +:10256000C103250BCC0200ED51C602E75020151027 +:102570008EA4E6E65458ECA5EDC4C612E75D6F4D97 +:10258000C602E75033C8200AC926CD39019002306F +:10259000086800FFFFA58C0050015000FF060600F0 +:1025A000000406000C01A000FFFFA597000401A095 +:1025B00000FF080600000206000C013000FFFFA526 +:1025C000AC0044017000FF00FFFFA5C10030018096 +:1025D00000FF00FFFFA5CC0018019000FF00FFFFE7 +:1025E000A5D7BDA98ABDA689BDA893BDB018BDB3A6 +:1025F0006FBDB0D1D69C2652BDB19ABDB9BABDBB94 +:10260000DEBDBF30BDC2D5BDDE95BDDBEDBDC69B19 +:10261000BDCEFABDCBC8BDD317BDD54BBDE1AF0F05 +:10262000A139D2D650B0D3D660B0D4D670B0D5D6FA +:1026300080B0D6D690B0D7D6A0B0D8D66070D9D654 +:102640007070DAD68070DBD690700D7E263A8E08D8 +:1026500028108E000A0D222602313CC1022520CE10 +:10266000A622C602E710ECC1A784E701E6C04FD35B +:1026700090ED15E6C0E718308820313F26E4396F29 +:1026800010308820313F26F739D69D8EA691586E9E +:1026900095A697A787A7F0DC91C3008DDD91240252 +:1026A0000C9097E684089893261C96938808979335 +:1026B000968A850126048D1120028D3FBDA82F8D9D +:1026C0006FC601D78B390F8B394FD68AC313E0DD24 +:1026D0008C8E03A1109E94C60DD7C8E6A04F584912 +:1026E00058495849CE653B33CBECC4ED84EC44EDFE +:1026F000882030020AC826E30C8A394FD68AC313D1 +:10270000E0DD8C8E03A1109E94C60DD7C8E6A04FC5 +:10271000584958495849CE653B33CBEC42ED84ECDF +:1027200046ED882030020AC826E3109F940C8A39AF +:10273000D68AC41F2650D78ABD54E70A982633D6B6 +:102740005AC11C24055CD75AD796D6675CC11A2596 +:10275000015FD76786073D8E6485308BD69ED79DF7 +:10276000EC849798D79ED6A0D79FE602D7A0DC909E +:10277000DD65D66786073D8E6485308BEC03DD947E +:10278000EC05DD8EDD6A39D624C43F260D0A9F266E +:10279000090F9DCC0100FD0F4839DC904CDDCA8E3D +:1027A0000560C614D7C80FC9E684270FE609C10221 +:1027B0002609DCCA10A30425020CC9300A0AC8265F +:1027C000E7D6C9260A0F9DCC0100FD0F482001392C +:1027D000CE0550C668E744CC0100EDC4CE0708C65C +:1027E0000AE753D67DE742D67DC10624020C7D3927 +:1027F0008D15D624C43F260E0A9F260A0FA5C604AF +:10280000D7080F0B0F0E39D624C50F2611CEA81FDF +:10281000C5102603CEA827108E10F4BDB78A39C67E +:10282000C4C7C54C4C4C4CC6C4C7C5B8B8B8B8D65C +:102830008A5A58584FC301001F029E8EEC81EDA1A9 +:10284000EC81EDA19F8E39EC15C300089390545490 +:1028500054DB8AC41F5858CE010033C5E6185454BF +:10286000541F98545454C40333C597D58407108E0D +:10287000A88BE6A6E5C42710E618C40FC002C10E57 +:102880002206C005501A01391CFE3980402010086C +:102890000402018E0F48E6842747E60158CEA8A21D +:1028A0006ED5A8A6A8AECC0800ED026C0139D624DE +:1028B000CB03C503262BC606D7C8C606D0C85810FA +:1028C0008EA92210AEA5E603585858CEA8E233C50B +:1028D000BDB78A0AC826E36C036A0226044F5FED7F +:1028E0008439D0C0D1C14E4E4E4ED2C2D3C34E4E0B +:1028F0004E4ED4C4D5C54E4E4E4ED6C6D7C74E4EFC +:102900004E4ED8C8D9C94E4E4E4EDACADBCB4E4ECB +:102910004E4EDCCCDDCD4E4E4E4EDECEDFCF4E4E9B +:102920004E4E139E131E129E121E119E111ED6A1F4 +:102930002712EC159390830008108300E82205CC41 +:10294000FF00ED11398E0490318830E613EA33260A +:1029500038E618E038CB08C110242EEC15A335C397 +:10296000000C10830018242183000C2A074353C352 +:1029700000011E123406CC000CA3E44756EDE4E33C +:1029800015ED15EC35A3E1ED35398E04909644D65E +:1029900046ED088D12D689260D3088309645D647EB +:1029A000ED088D03209F39E61027FBE61310260360 +:1029B000EABDACFEEC1148CEA9F7ADD6BDAB52BD19 +:1029C000AD108D0139D69D262DE611C1052727E6CC +:1029D00008E409C43C261FEC16C3008DED16240242 +:1029E0006C15E60D270DEE0EEC56C3008DED56244A +:1029F000026C55BD961739AA03AA26AB82AC38AC37 +:102A0000C4ACDCC601E7106F0DCCAA16ED1B6F1D20 +:102A1000BD96176C113901AA0200000002C0014DD9 +:102A200000000000024058CEAA30ADD5BDACFE3942 +:102A3000AA326A18BDAACF8D0725028D2F7EAAF46F +:102A4000BDAB3DE408C5042607C50826111A0139A7 +:102A50008603A11A2705A71ABDAAB51CFE3986014F +:102A6000A11A27F7A71ABDAAB51CFE39E61A5AEE15 +:102A70001B585833C5E61AC50226118D22E60D27CC +:102A80001A10AE0E1E128D171E12200F8D1CE60D91 +:102A9000270910AE0E1E128D111E12BD961739ECAD +:102AA00016E3C4ED1624026C1539EC16A3C4ED161A +:102AB00024026A1539A61A2715CEAFA4E6142703F7 +:102AC000CEAFC84A48ECC6ED1E6F1D7E961739E69C +:102AD0000953E408C5102706CC0200ED1139A611F0 +:102AE0008105270FC520270BE618C1282305CC0335 +:102AF00000ED1139BDA8472405EB18E71839BDAB27 +:102B00000F2406CC0500ED1139CC0300ED1139EE90 +:102B10000EE6505A2623E618C010E058CB08C11024 +:102B20002217C00350D7D4EC15A355C3000B108354 +:102B300000162405D6D41A01391CFE5F39EC159312 +:102B4000901F98C60C81082202C4FB81D82502C4BC +:102B5000F739EC1593901083000824143406CC0048 +:102B600008A3E1E315ED15E611C1051026EAA83921 +:102B7000108300D0250B8300D0EDE3EC15A3E1ED2D +:102B80001539CEAB8F58ADD5BDAA40BDACFE39AB23 +:102B900097AB9DAC04AC15E618E70A6C12EE1B333C +:102BA0004EEC18E3C4ED18E60D270910AE0EEC3814 +:102BB000E3C4ED38BDA8472513BDABDD2515E618E8 +:102BC000E00AC1202305CC0300ED1139C608E70A4D +:102BD0006C1239CC0302ED11C610E70A39EE0EE68D +:102BE000505A261DE6515A2618E658E018C10E2202 +:102BF00010EC15A355C3000E1083001C22031A010C +:102C0000391CFE39E60D2704EE0E6C586C186A0A62 +:102C100026026C1239E60D2704EE0E6A586A18BDBA +:102C2000A84724F0E60D2704EE0E6C586C18CC0172 +:102C300000ED11C6307EAAD258CEAC45ADD5BDAAA6 +:102C400040BDACFE39AC4DAC53AC68AC79C608E7BE +:102C50000A6C12E60D2704EE0E6C586C186A0A26F0 +:102C6000066C12C610E70A39E60D2704EE0E6A5804 +:102C70006A186A0A26026C1239EE1B3346EC18A356 +:102C8000C4ED18E60D270910AE0EEC38A3C4ED38DC +:102C9000BDA847241CD7C8EB18E718E60D2708EE97 +:102CA0000ED6C8EB58E758CC0100ED11C6307EAA0D +:102CB000D2BDAB0F24C2EB18E718CC0500ED11C64E +:102CC000307EAAD258CEACCA6ED5ACCEACD5C6FF3B +:102CD000E7106C12394F5FE710ED1139BDAACFBD77 +:102CE000AA402503BDAA6C8D0139BDAB0F2409EEA6 +:102CF0000EE658CB0EE71839CC0300ED11394FEE34 +:102D00000EE6505A2607E651C10526014CA70D399B +:102D1000A60C273EE60953E408C50127353430BD2B +:102D200064243530EE88EEA650270333C820C60150 +:102D3000E7504F5FED51E61AA6132702C601E75A86 +:102D4000EC15ED55E618E758A61181052604C008D4 +:102D5000E75839108E0490A63343A430840131A87B +:102D600030E63353E430C401340631A8D08D023547 +:102D700086D699271CE6632718E662270EEC3510E5 +:102D8000A3A825240331A8301CFE3931A8301CFE2D +:102D900039E66227031CFE391A0139EC1148CEAD21 +:102DA000B3ADD6D69D260BEC16C3008DED162402CE +:102DB0006C1539ADC3ADFCADFCAE16AE30AE5CAE3D +:102DC00072AE9958CEADC96ED5ADD1ADF1AFFCB0F4 +:102DD0000A3430BD64333530C602E710CEADCDE6DF +:102DE0001458ECC5ED1E6F1DBD9617C63CE70A6C66 +:102DF000126A0A1026E8206F126C1139BD96176A04 +:102E0000186A18E618C1F82508C6F8E718C603E7D7 +:102E10001139AFACAFD0CEAE12E61458ECC5ED1EF2 +:102E20006F1DBD9617C601E71AC6F8E7186C113971 +:102E3000CE0058E61433C5E6C42706CC0500ED11D4 +:102E400039CC020EEB14BD9604CE0088E61433C5CF +:102E5000C601E7C46F13CC0400ED1139CE0058E66B +:102E60001433C56AC4860CE614BD9604CC0600ED86 +:102E70001139E61458CEAF96ECC5ED1E6F1DBD9608 +:102E800017DC90830008ED15C668E718C601E71A3D +:102E9000C610E70B6C116F123958CEAED3ADD5E624 +:102EA0000B260EBDAD10E608C43C27EC8D067EAAAD +:102EB000CF6A0B39CEAE12E61458ECC5ED1E6F1D6D +:102EC000BD9617C601E71AC601E7106F13CC0000C4 +:102ED000ED1139AEDBAEE1AEF4AF11C610E70A6C0E +:102EE000126A0A1026005DCEAF62ECC1EF06A71A87 +:102EF000E70A6C12BDAF446A0A2615EE06ECC1EF74 +:102F000006A71AE70A4C26086F1AC606E70A6C12CB +:102F100039BDAF448D0ED624C43F26076A0A260366 +:102F2000BDAEB439E60AC1032219CEAE12D624C50D +:102F30000F2610C5102603CEAF96E61458EEC5E650 +:102F4000C4E78439CEAF69E61A5858EB1A33C5EC9A +:102F500016E341ED16E615E9C4E715EC18E343ED79 +:102F6000183901980550011CFF0000000000000105 +:102F70002000000000CBFF35000000FEE0FFFF3521 +:102F8000FF35FFFEE00000FFFF3500CB0000000131 +:102F9000200000CB00CBAF9AAF9F53C0FFAF9A5435 +:102FA000C1FFAF9FAFACAFACAFBAAFAC40C0044154 +:102FB000C00450C00441C084AFAC408004418004D0 +:102FC000508004418084AFBAAFD0AFD0AFDEAFD075 +:102FD00048C10449C10451C10449C184AFD04881EA +:102FE00004498104518104498184AFDE46C201470E +:102FF000C281AFEC4EC2014FC281AFF442C0024366 +:10300000C00244C00245C082AFFC4AC1024BC102AB +:103010004CC1024DC182B00A8E04E0108E04908D26 +:1030200019308820108E04908D10108E04C08E05EB +:10303000208D07308820108E04C0E6102708E61186 +:1030400058CEB047ADD539B05EB075B0A1B0B100C3 +:103050000000000600000000FFFA000000006A2CDB +:10306000EC15ED08CCAFECED1E6F1DBD9617CCB086 +:103070004FED1B6C11BDB0C0EE1BE61A58EB1A33B6 +:10308000C5EC16E341ED16E615E9C4E715EC15A30A +:1030900008C30060108300C01025E57BC602E7115D +:1030A00039CCAFF4ED1E6F1DC604E70A6C117E9695 +:1030B000176A0A1026E5606C2C4F5FED11E7103996 +:1030C000EC159390C1F025084F5FED11E7106C2CC3 +:1030D00039D69D26138E0550CE0708DFC88D0A30DD +:1030E00008CE0728DFC8200139E6842708E6015802 +:1030F000CEB0F66ED539B102B115B12EB155B16E63 +:10310000B187D6A4270ECCB18AED06E604545454F8 +:10311000E7056C0139D68B2714E605CE03A031C52F +:10312000EE06ECC4EDA4EC48EDA8206C0139D68B7A +:103130002722E605CE03A031C5EE06EC42EDA4EC55 +:103140004AEDA820DEC8C601E7504F5FED51E60505 +:10315000E74C6C0139D68B2714E605CE03A031C5A8 +:10316000EE06EC44EDA4EC4CEDA8206C0139D68BB6 +:103170002714E605CE03A031C5EE06EC46EDA4EC1F +:103180004EEDA8206C01396F84391A0A1B0B1C0CF8 +:103190001D0D42424242424242428E07088D083093 +:1031A00088208D03308820E6102708CEB1B4EC11BA +:1031B000486ED639B1BCB1F3B23DB28658CEB1C279 +:1031C0006ED5B1C6B1E9E60C585858E718DC90C383 +:1031D00000F8ED15C620E70D6C12E61358CEB2913B +:1031E000ECC5ED1E6F1D7E96176A0D2605CC0200FC +:1031F000ED113958CEB1F96ED5B209B231BD96177D +:10320000E6142704C6C3E70139E613C10A27048D73 +:10321000EC2018E60286063DCEB32733CBE61458E1 +:10322000EB1433C5EF1E6F1DBD9617C660E70D6C1E +:10323000128D116A0D2605CC0300ED1139E6132A13 +:1032400003BD9617EC159390108300F8250B3440BE +:103250008D083540CC0300ED1139E60326276C03B9 +:10326000E6132B21C109221DE61D2619CE0E28AF1B +:103270004E6F53E613C10926026C534F5FED51C6E2 +:1032800001E7506413394F5FE710ED1139B2A7B26F +:10329000C1B2CFB2D7B2DFB2E7B2EFB2F7B2FFB38B +:1032A00007B30FB317B31F37F9053CF9053DF9050F +:1032B0003EF9053FF9053EF9053DF9053CF985B2B2 +:1032C000A782CB059DCB059ECB059FCB85B2C1E2E6 +:1032D000D10032C4FFB2CFC4D70033C4FFB2D7C3CA +:1032E000C00034C4FFB2DF80D20035C4FFB2E7C1F2 +:1032F000D30036C4FFB2EFC0D70037C4FFB2F7E146 +:10330000D40038C4FFB2FFE3D00039C4FFB307E4F0 +:10331000CE003AC4FFB30FC2D3002FC4FFB317814E +:10332000CA0021C4FFB31735C4FF35C3FF36C4FF3D +:1033300036C3FF37C4FF37C3FF38C4FF38C3FF3974 +:10334000C4FF39C3FF3AC4FF3AC3FF2FC4FF2FC3E2 +:10335000FF6C12E610C4FDCA40E710D6A2E7135C6A +:10336000D17B23015FD7A27EB1DA6C127EB1FD8ED4 +:103370000560C614D7C8E684270AE601A60948CE28 +:10338000B38BADD6300A0AC826EC39B391B69BB7D9 +:10339000CB58CEB3976ED5B603B611B639B663B671 +:1033A00064B69A706071616E6E6E6E7E0E7F10C72D +:1033B000C3C3007C107D6D7A007A7A4F3F6F5FB394 +:1033C000B3B3B3786879698E8E8E8EBEAEBFAF8A86 +:1033D0008A8A8A746475657A7A7A7A737574769F44 +:1033E0009F9F9F02000801BBB7B7B7726273637AF1 +:1033F0007A7A7A3A2A3B2B6E6E6E6E766677676EB5 +:103400006E6E6E3E2E3F2F76767676C210C31070AB +:103410000070007E6E7F6F6E6E6E6E1808190982E6 +:10342000828282161017076E006E6E1F092F0AAF78 +:10343000AFABAB524253436E6E6E6E504051416E15 +:103440006E6E6E3A2A3B2B4D4D4D4D3C2C3D2D4D15 +:103450004D4D4D3E2E3F2F4D4D4D4D7E6E7F6F4D50 +:103460004D4D4D584859494E4E4E4E5A4A5B4B4E63 +:103470004E4E4E5C4C5D4D4E4E4E4E5E4E5F4F4E30 +:103480004E4E4EDECEDFCF4C4C4C4C3A2A3B2B49B5 +:103490004949493C2C3D2D494949493E2E3F2F4938 +:1034A0004949497E6E7F6F49494949584859494AB7 +:1034B0004A4A4A5A4A5B4B4A4A4A4A5C4C5D4D4A20 +:1034C0004A4A4A5E4E5F4F4A4A4A4ADECEDFCF48FA +:1034D0004848483A2A3B2B454545453C2C3D2D451F +:1034E0004545453E2E3F2F454545457E6E7F6F4500 +:1034F00045454558485949464646465A4A5B4B4613 +:103500004646465C4C5D4D464646465E4E5F4F46DF +:10351000464646DECEDFCF444444443A2A3B2B4164 +:103520004141413C2C3D2D414141413E2E3F2F41E7 +:103530004141417E6E7F6F41414141584859494266 +:103540004242425A4A5B4B424242425C4C5D4D42CF +:103550004242425E4E5F4F42424242DECEDFCF40A9 +:10356000404040061056104E004E00061056104EB9 +:10357000004E00541056104E004E00541056104E7F +:10358000004E00571056104E004E00571056104E69 +:10359000004E00441056104E004E00441056104E7F +:1035A000004E006A1056104E004E006A1056104E23 +:1035B000004E00451056104E004E00451056104E5D +:1035C000004E006B1056104E004E006B1056104E01 +:1035D000004E00551056104E004E00551056104E1D +:1035E000004E006C1056104E004E006C1056104EDF +:1035F000004E00461047104E004E00461047104E39 +:10360000004E00E6062731DC904C10A30423296C01 +:1036100001D68B2723E606545454CE03A031C5CEE1 +:10362000B403E6071D58495849584933CBECC4ED5B +:10363000A4EC44EDA8206C0139D68B2726E606546D +:103640005454CE03A031C5CEB403E6071D584958E3 +:1036500049584933CBEC42EDA4EC46EDA820CC010F +:1036600003ED843910AE02CEB5C3E6071D584958A4 +:1036700049584933CBECC4A7A4E7A8E0EC42A72102 +:10368000E7A8E131A90400EC44A7A4E7A8E0EC46D0 +:10369000A721E7A8E1CC0405ED843958CEB6A16E88 +:1036A000D5B700B705B706B715B742B743B7480A4D +:1036B000040A040A040A040A030A03FFB6C8B6D0BF +:1036C000B6D8B6E0B6E8B6F0D210D310500050002D +:1036D000D410D51050005000D610D7105000500014 +:1036E000D8C8D9C950505050DACADBCB50505050CE +:1036F000DCCCDDCD505050508C108D104C004C0067 +:10370000CC0101ED8439BDB7534F5FED078D0CCC73 +:103710000403ED8439BDB7538D0139E6082621CE67 +:10372000B6AFE60758ECC52B11A708E784E60758A3 +:10373000CEB6BCEEC58D516C0739CC0304ED84398F +:103740006A0839CC0406ED84BDB753CEB6F88D387F +:103750006F8439EC049390C10422026F8439E60827 +:103760002615EE02ECC12A04EEC4ECC1ED84ECC1D6 +:10377000ED07EF028D04396A0839E6074F584958BA +:10378000495849CEB40333CB8D21ECC4A7A4E7A894 +:10379000E0EC42A721E7A8E131A90400EC44A7A48A +:1037A000E7A8E0EC46A721E7A8E139E605C4F8540C +:1037B0005454108E100031A5E606C4F8545454E752 +:1037C000E2C61FE0E086203D31AB3958CEB7D16E5E +:1037D000D5B883B89FB8C3B8EAB91CB7E3B80BB87B +:1037E00033B85B030308000303090003030A000462 +:1037F000040B0304040C0304040D0304040E03046B +:10380000040F0300041003FFFFB7E30303110003D9 +:103810000312000303130004041403040415030437 +:10382000041603040417030404180300041903FF17 +:10383000FFB80B03031A0003031B0003031C00045F +:10384000041D0304041E0304041F030404200304D2 +:1038500004210300042203FFFFB833030323000302 +:10386000032400030325000404260304042703049F +:103870000428030404290304042A0300042B03FF7F +:10388000FFB85BDC904C10A3042337CEB7DBE60710 +:1038900058EEC5A6C1C601ED84ECC1ED07EF02D616 +:1038A0008B271FE606545454CE03A031C5CEB40373 +:1038B000E60786083D33CBECC4EDA4EC44EDA8202C +:1038C0006C0139D68B2722E606545454CE03A0311E +:1038D000C5CEB403E60786083D33CBEC42EDA4EC3D +:1038E00046EDA820CC0303ED8439BDB753BDB7AB7B +:1038F00031A90400CEB90CD624C40C33C5ECC4A73E +:10390000A4E7A8E0EC42A721E7A8E1394D4D4D4DD1 +:10391000494949494545454541414141BDB7537E26 +:10392000B75E8E0560C614D7F4DC904CDDF5A68436 +:10393000850427028D0D300A0AF426F239B952B9EE +:1039400088B989DCF510A304233EE60958CEB93DB9 +:103950006ED5BDB7ABE6071D584958495849CEB496 +:103960000333CBECC1A7A4E7A8E0ECC1A721E7A8EB +:10397000E131A90400ECC1A7A4E7A8E0ECC1A721AC +:10398000E7A8E1CC0103ED8439CEB7DBE60758EEBA +:10399000C5EF026F08BDB75ECC0303ED8439E609BD +:1039A000261510AE0AECA1A71AE709ECA1ED1E6FCF +:1039B0001D10AF0A7E96176A09398E0828C610D7DF +:1039C000C8E610270EEC1148CEB9DDADD6BDBB312F +:1039D000BDA92E3088200AC826E739B9E9B9FABA54 +:1039E00033BA89BA9DBAB3BAFD58CEB9F2ADD57E15 +:1039F000BA7BB351B9DAB36AB9DA58CEBA006ED528 +:103A0000BA02C602EA10E710C605E702DC90C3005E +:103A1000F8ED15CCBBC5ED1BCEBB65D6C8C403867F +:103A2000033D33CBEF1E6F1DBD96170CA66C116FB7 +:103A300012E61258CEBA396ED5BA3DBA5CE60D26FA +:103A4000036C1239D69D260BEC16C3008DED16249F +:103A5000026C15D624C41F26026A0D39BDBB46EC84 +:103A6000159390108300F6240ECEBA78E603A6C50F +:103A70005FED11C601E71039020304EC159390C104 +:103A8000F82505CC0502ED113958CEBA8F6ED5BA9E +:103A900093BA976F1A6C12BDBB468DDF3958CEBAF8 +:103AA000A36ED5BAA7BAADC603E71A6C12BDBB4662 +:103AB0008DC93958CEBABDADD5BDBA7B39BAC3BAF6 +:103AC000CDBAE5C603E71AEC15ED046C12BDBB4692 +:103AD000EC04A31510830030230AEC15ED04C60195 +:103AE000E71A6C1239BDBB46EC15A304108300180D +:103AF00023F2EC15ED04C603E71A6A123958CEBB5F +:103B0000036ED5BB09BB1FBB28CEBB99E61458EC8E +:103B1000C5ED1E6F1DBD9617C620E7086C12396AE9 +:103B2000081026DAF26C12394F5FE710ED110AA681 +:103B300039E6112B10E613270C6F13CCBB7FED1E5B +:103B40006F1D7E961739EE1BE61A5858EB1A33C5CF +:103B5000EC16E341ED16E615E9C4E715EC18E3436E +:103B6000ED187E96178FCA028ECA028DCA028CCAC1 +:103B7000028BCA028ACA0289CA0288CA82BB6597B6 +:103B8000CA0296CA0295CA0294CA0293CA0292CA8B +:103B90000291CA0290CA82BB7FBB9DBBB198CA0288 +:103BA00099CA029ACA029BCA029CCA0231C4FFBBCC +:103BB000A398CA0299CA029ACA029BCA029CCA0264 +:103BC00031C3FFBBB7000000000000006000000030 +:103BD00000000000FFFFA0000000000000008E0AAF +:103BE00028C606D7C8E610270BEC1148CEBBFEADA1 +:103BF000D6BDA92E3088200AC826EA39BC04BC20CC +:103C0000BC6CBCAA58CEBC18ADD5EC159390C1F8CD +:103C10002305CC0202ED1139B351BBFBB36ABBFBE8 +:103C2000CEBC26586ED5BC2ABC4DCCBE82ED1BCC7A +:103C3000BD01ED1E6F1DBD9617E60C58CEBDAFEC55 +:103C4000C5ED0A5FE709BDB99E0CA76C12E60D260B +:103C500009C601E7106C116F12396A0DD69D260B4B +:103C6000EC16C3008DED1624026C153958CEBC72CB +:103C70006ED5BC748D10BDB99EBDBC0AE61A2A056E +:103C8000CC0202ED1139EE1BD69D58EEC5E61A584E +:103C900058EB1A33C5EC16E341ED16E615E9C4E717 +:103CA00015EC18E343ED187E961758CEBCB06ED5D0 +:103CB000BCBABCD0BCD9BCE0BCE9CEBD63E61458EC +:103CC000ECC5ED1E6F1DBD9617C620E7086C1239B6 +:103CD0006A081026D9416C1239C6FFE7106C1239F8 +:103CE0004F5FE710ED110AA739CEBD89E61458ECF5 +:103CF000C5ED1E6F1DBD9617C620E708C601E71269 +:103D00003910C50311C50312C50311C583BD0118C0 +:103D100045031945031745031645FFBD0F15458398 +:103D2000BD1D144583BD22134583BD27140583BDE6 +:103D30002C150583BD31160583BD36170583BD3BA4 +:103D4000168583BD40158583BD45148583BD4A1303 +:103D50008583BD4F14C583BD5415C583BD5916C594 +:103D600083BD5EBD67BD781AC7031BC7031CC703AD +:103D70001DC70300C7FFBD671AC7031BC7031CC7C6 +:103D8000031DC70303C7FFBD78BD8DBD9E1AC703C2 +:103D90001BC7031CC7031DC70332C4FFBD8D1AC751 +:103DA000031BC7031CC7031DC70332C3FFBD9EBD52 +:103DB000B10A08BD5E0906BD010813BD0F0706BDA7 +:103DC0001D0606BD220506BD270406BD2C0306BD43 +:103DD000310206BD360106BD3B1006BD400F06BDD3 +:103DE000450E06BD4A0D06BD4F0C06BD540B06BD63 +:103DF000590A06BD5E090CBD01090CBD010813BDC1 +:103E00000F0706BD1D0606BD220506BD270406BD1B +:103E10002C0306BD310206BD360106BD3B1006BDB2 +:103E2000400F06BD450E06BD4A0D06BD4F0C06BD32 +:103E3000540B06BD590A06BD5E090CBD01090CBD37 +:103E4000010813BD0F0706BD1D0606BD220506BDF0 +:103E5000270406BD2C0306BD310206BD360106BD92 +:103E60003B1006BD400F06BD450E06BD4A0D06BD02 +:103E70004F0C06BD540B06BD590A06BD5E0930BD88 +:103E800001FFBE86BEDB00008D000000028D000039 +:103E9000000266FF3C0001F7FE96000151FE27007C +:103EA000008DFE00FFFFC9FE27FFFF27FE96FFFEE5 +:103EB000B4FF3CFFFE8D0000FFFEB400C4FFFF23F3 +:103EC000016AFFFFC901D900008D02000001510104 +:103ED000D90001F7016A00026600C400000000007A +:103EE00000020000000001D9FF3C00016AFE9600BC +:103EF00000C4FE27000000FE00FFFF3CFE27FFFE7F +:103F000096FE96FFFE27FF3CFFFE000000FFFE2707 +:103F100000C4FFFE96016AFFFF3C01D900000002C9 +:103F2000000000C401D900016A016A0001D900C47F +:103F30008E0AE8C604D7C8E610270BEC1148CEBF9E +:103F400050ADD6BDA92E3088200AC826EA39BF5AFE +:103F5000BF6BBFA0BFE5C047C05658CEBF63ADD54D +:103F60007EC048B351BF4DB36ABF4D58CEBF716ECE +:103F7000D5BF75BF81CCC1EEED1BBDC1160CA86CC1 +:103F800012E60D2609C601E7106C116F12396A0D91 +:103F9000D69D260BEC16C3008DED1624026C153948 +:103FA00058CEBFA66ED5BFA88D178D0139EC0AD3A8 +:103FB00090A315C300041083000822046F126C1133 +:103FC00039EE1BD69D58EEC5E61A5858EB1A33C584 +:103FD000EC16E341ED16E615E9C4E715EC18E343EA +:103FE000ED187E961758CEBFEB6ED5BFF3C00FC04D +:103FF00018C0346F1AD696C43054545454CEC007E7 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_03e.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_03e.hex new file mode 100644 index 00000000..1d572d63 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_03e.hex @@ -0,0 +1,1025 @@ +:10000000E6C5E70D6C1239F0D8C0A8907860488D2D +:10001000B06A0D26026C1239D6C85ADB24C40726F2 +:1000200012BDAD5310AF0EBDC0ADBDC1168618A731 +:100030000D6C12398D8B8D038D0E39E618C1F825A4 +:10004000F9CC0402ED113939EC159390C1F825F77C +:10005000CC0402ED113958CEC05C6ED5C066C07CB0 +:10006000C085C08CC095CEC1A2E61458ECC5ED1E6B +:100070006F1DBD9617C620E7086C12396A08102656 +:10008000D5956C1239C6FFE7106C12394F5FE71037 +:10009000ED110AA839CEC1C8E61458ECC5ED1E6FA3 +:1000A0001DBD9617C620E708C601E712398D2C96AC +:1000B000CC48CEC0B76ED6C0BFC0C6C0CDC0D486F7 +:1000C0001190CEA71A3986019BCEA71A3986099BB3 +:1000D000CEA71A39860990CEA71A390FCC10AE0ECA +:1000E000EC35A31524094353C300010CCC08CCA65E +:1000F00038A0182403400CCCDDCABDC29CD7CDC6A5 +:10010000048105220E5A810224095A96CA4491CDCF +:1001100024015AD7CE39A61A270ECEC1294A48EC57 +:10012000C6ED1E6F1D7E961739C149C157C15CC10E +:1001300061C166C16BC170C175C17AC17FC184C123 +:1001400089C18EC193C198C19D1099031199031261 +:100150009903119983C1491619FFC157151983C114 +:100160005C141983C161131983C166145983C16B6F +:10017000155983C170165983C175175983C17A16F1 +:10018000D983C17F15D983C18414D983C18913D977 +:1001900083C18E149983C193159983C1981699834D +:1001A000C19DC1A6C1B71AC7031BC7031CC7031D46 +:1001B000C70300C7FFC1A61AC7031BC7031CC70399 +:1001C0001DC70303C7FFC1B7C1CCC1DD1AC7031BDD +:1001D000C7031CC7031DC70331C4FFC1CC1AC70323 +:1001E0001BC7031CC7031DC70331C3FFC1DDC1F219 +:1001F000C24700008D000000028D0000000266FF73 +:100200003C0001F7FE96000151FE2700008DFE0024 +:10021000FFFFC9FE27FFFF27FE96FFFEB4FF3CFF4E +:10022000FE8D0000FFFEB400C4FFFF23016AFFFF44 +:10023000C901D900008D020000015101D90001F768 +:10024000016A00026600C400000000000002000015 +:10025000000001D9FF3C00016AFE960000C4FE27A1 +:10026000000000FE00FFFF3CFE27FFFE96FE96FF0B +:10027000FE27FF3CFFFE000000FFFE2700C4FFFE3C +:1002800096016AFFFF3C01D900000002000000C493 +:1002900001D900016A016A0001D900C43404C6080A +:1002A00034045F48594CE26124034AEB616AE42656 +:1002B000F23262393406C61034044F5F684169C4B3 +:1002C00059496C41E262A26124046A41E3616AE433 +:1002D00026EA3263398E0B68C602D7C8E610270BB0 +:1002E000EC1148CEC2F5ADD6BDA92E3088200AC883 +:1002F00026EA39C2FDC30EC350C3C0C3F358CEC3F0 +:1003000006ADD57EC3E5B351C2F2B36AC2F258CE90 +:10031000C3146ED5C318C333C601E710CCC5EEEDC8 +:100320001BBDC4B50AA40CA9C610E70CC609E70C8E +:100330006C1239E60D27046A0D20056C116F123915 +:10034000D69D260BEC16C3008DED1624026C1539D4 +:1003500058CEC3566ED5C35EC396C3A6C3ACD6C82B +:100360005ADB24C4012626BDAD5310AF0E2406CCA3 +:100370000200ED1139BDC44DBDC4B58608A70D6C92 +:10038000126A0C2608C609E70CC602E712BDC4298A +:10039000BDC3E57EC3D96A0D26026A12BDC429BD5C +:1003A000C3E5BDC3D939C610E70D6C126A0D26042A +:1003B000C600E712BD9617BDC3E5BDC3D97EC340D5 +:1003C00058CEC3C66ED5C3CAC3D3C609E71ABDC4C7 +:1003D000B56C12BDC4298D0D39E618C1F82505CCC0 +:1003E0000302ED1139EC159390C1F825EBCC030213 +:1003F000ED113958CEC3F96ED5C3FFC415C41ECE56 +:10040000C5C8E61458ECC5ED1E6F1DBD9617C62075 +:10041000E7086C12396A081026D1FC6C12394F5F5C +:10042000E710ED110CA40AA939EE1BD69D58EEC5B4 +:10043000E61A5858EB1A33C5EC16E341ED16E615EB +:10044000E9C4E715EC18E343ED187E961710AE0EDD +:10045000CEC45BE61A58ADD5E71A39C4B2C48FC40E +:100460008FC48FC486C486C486C486C497C497C408 +:1004700097C497C47DC47DC47DC47DC48FEC151022 +:10048000A335251B2022EC1510A335251B2010E6D3 +:1004900018E13825132008E618E13825022009E67E +:1004A0001AC11026015F5C39E61AC1012602C61185 +:1004B0005A39C60139A61A270ECEC4C84A48ECC616 +:1004C000ED1E6F1D7E961739C4E8C4F6C504C5122B +:1004D000C520C52EC53CC54AC558C566C574C5826C +:1004E000C590C59EC5ACC5BA6E04036F0403700405 +:1004F000036F0483C4E8710403720403730403727A +:100500000483C4F67404037504037604037504833A +:10051000C504770403780403790403780483C512BF +:100520007A04037B04037C04037B0483C5207744A3 +:1005300003784403794403784483C52E74440375D7 +:100540004403764403754483C53C714403724403F9 +:10055000734403724483C54A6EC4036FC40370C4FA +:10056000036FC483C55871C40372C40373C4037298 +:10057000C483C56674C40375C40376C40375C48399 +:10058000C57477C40378C40379C40378C483C5826F +:100590007AC4037BC4037CC4037BC483C590778483 +:1005A00003788403798403788483C59E74840375F7 +:1005B0008403768403758483C5AC718403728403D9 +:1005C000738403728483C5BAC5CCC5DD1AC7031B07 +:1005D000C7031CC7031DC70300C7FFC5CC1AC70349 +:1005E0001BC7031CC7031DC70303C7FFC5DDC5F237 +:1005F000C64700008D000000028D0000000266FF6B +:100600003C0001F7FE96000151FE2700008DFE0020 +:10061000FFFFC9FE27FFFF27FE96FFFEB4FF3CFF4A +:10062000FE8D0000FFFEB400C4FFFF23016AFFFF40 +:10063000C901D900008D020000015101D90001F764 +:10064000016A00026600C400000000000200000011 +:100650000001D9FF3C00016AFE960000C4FE27009D +:100660000000FE00FFFF3CFE27FFFE96FE96FFFE09 +:1006700027FF3CFFFE000000FFFE2700C4FFFE96A0 +:10068000016AFFFF3C01D900000002000000C40124 +:10069000D900016A016A0001D900C48E0C28C6067F +:1006A000D7C8E610270BEC1148CEC6BBADD6BDA906 +:1006B0002E3088200AC826EA39C6C9C6DAC6EAC773 +:1006C00044C7F2C8ABC920C9A058CEC6D2ADD57EAA +:1006D000C726B351C6B8B36AC6B8CCCB96ED1BBD1E +:1006E000CA570CAA6C116F12E61258CEC6F06ED51E +:1006F000C6F4C711E60D2607C601E7106C12396A69 +:100700000DD69D260BEC16C3008DED1624026C153C +:1007100039BDCA31EC159390830008108300E024A2 +:10072000046C116F1239EC159390C1F82505CC06B5 +:1007300002ED1139BDA8472506CC0400ED1139EBB7 +:1007400018E718398D066A188DEA20DA58CEC75591 +:10075000ADD58D3039C75BC76CC775D6C85ADB2499 +:10076000C407102602CBC650E70D6C126A0D102686 +:1007700002BF6C12396F12BDC7A7E11A2705E71A2D +:10078000BDCA5739E613261EEE0EE658E018CB0414 +:10079000C1082212D696C1182407EC1510A35523C0 +:1007A00005CC0300ED1139C601A6132626B6048335 +:1007B000BA04B3261EBDAD5310AF0E252DE638E0AA +:1007C00018CB04C108220DEC1510A3352303C60372 +:1007D00039C60139E618E1382308CC0400ED11C60A +:1007E0000239CC0500ED11C60439CC0300ED11C669 +:1007F000013958CEC7FBADD57EC726C80DC823C862 +:100800002EC887C89DCB7ACB7ACB88CB88E61ACE08 +:10081000C80558ECC5ED1E6F1DC610E70D6C127EA5 +:10082000961739BDCA316A0D1026CDEB6C12D6A4CD +:100830002713E613260FCE0ED88604E650270F3373 +:10084000C8204A26F6BDCA57CC0201ED1139C600B0 +:10085000E753EC15ED55E618E758C601E7504F5F32 +:10086000ED51AF4EC603E75A10AE0EEC3510A3158E +:100870002304C601E75AE65AE71A6C136C1239CB07 +:1008800072CB72CB6ACB6AE61A58CEC87FECC5ED44 +:100890001E6F1DBD9617C610E70D6C12396A0D103C +:1008A00026CD74CC0201ED117ECA5758CEC8B4AD26 +:1008B000D57EC726C8BEC8C7C8DAC8E3C8FDBDCA4A +:1008C00057C608E70D6C12BD96176C186A0D2609FD +:1008D0006C12C610E70D7E9617396A186A0D26024B +:1008E0006C1239EE1B334DEC18E3C4ED18BDA8476C +:1008F000240AEB18E7186C12C608E70D396A0D10C8 +:1009000026CD14EE0EC601E71AEC1510A3552304EC +:10091000C603E71AC60AE70DCC0200ED117ECA57DE +:1009200058CEC929ADD57EC726C933C940C948C9E3 +:100930006DC976BDCA57E618E70CC608E70D6C12FC +:100940006A0D1026CCD16C12EE1B33C817EC18E3DD +:10095000C4ED18BDA847250EE618E00CC1202305FC +:10096000CC0400ED1139C608E70D6C12396C186A19 +:100970000D26026C12396A18BDA8471024CC98EBDA +:1009800018E718EE0EC601E71AEC1510A35523045C +:10099000C603E71AC60AE70DCC0200ED117ECA575E +:1009A00058CEC9A66ED5C9B0C9E3C9ECC9F3C9FC14 +:1009B000CEC9CBE61458EEC5E61A58ECC5ED1E6F4D +:1009C0001DBD9617C620E7086C1239C9CFC9D9CA10 +:1009D000C2CAC2CAAECAAECAAECAEACAEACAD6CA8F +:1009E000D6CAD66A081026CC2E6C1239C6FFE7107C +:1009F0006C12394F5FE710ED110AAA39CECA19E619 +:100A00001458EEC5E61A58ECC5ED1E6F1DBD9617BD +:100A1000C620E708C601E71239CA1DCA27CB12CB88 +:100A200012CAFECAFECAFECB3ACB3ACB26CB26CBA5 +:100A300026EE1BE613270333C819E61A5858EB1A9B +:100A400033C5EC16E341ED16E615E9C4E715EC18DD +:100A5000E343ED187E9617A61A2715CECA71E61342 +:100A60002703CECA794A48ECC6ED1E6F1D7E961745 +:100A700039CA81CA8FCAA0CA8FCB4ECA8FCB5CCA73 +:100A80008FA08C03A18C03A28C03A18C83CA81A5A7 +:100A90008C03A68C03A78C00A68C02A58CFFCA8FA2 +:100AA000A0CC03A1CC03A2CC03A1CC83CAA0AECC22 +:100AB00003AFCC03B0CC03B1CC03B2CD0302C7FF6C +:100AC000CABDAE8C03AF8C03B08C03B18C03B28D66 +:100AD0000302C7FFCAD1AECC03AFCC03B0CC03B185 +:100AE000CC03B2CD031EC7FFCAE5AE8C03AF8C03A7 +:100AF000B08C03B18C03B28D031EC7FFCAF9AECC14 +:100B000003AFCC03B0CC03B1CC03B2CD0332C4FFEE +:100B1000CB0DAE8C03AF8C03B08C03B18C03B28DC4 +:100B20000332C4FFCB21AECC03AFCC03B0CC03B1B6 +:100B3000CC03B2CD0332C3FFCB35AE8C03AF8C03F5 +:100B4000B08C03B18C03B28D0332C3FFCB49AB8CA5 +:100B500003AC8C03AD8C03AC8C83CB4EABCC03AC21 +:100B6000CC03ADCC03ACCC83CB5CA3CC03A4CCFF37 +:100B7000CB6AA38C03A48CFFCB72A88C03A98C0333 +:100B8000AA8C03A98C83CB7AA8CC03A9CC03AACCCA +:100B900003A9CC83CB880000000000000100000006 +:100BA000000000FD80FFFF00000000000002800048 +:100BB000000000000001800000000000FE80FFFE39 +:100BC00080000000000002808E0ED8C604D7C8E660 +:100BD000102710CECBF5E61358EEC5EC1148ADD674 +:100BE000BDCBEB3088200AC826E539D6A12705CC35 +:100BF0000302ED1139CBFBCC03CC0BCC13CC3BCC9B +:100C00003ECCADCD13CD26CD96CDFFCE51CE64CE0C +:100C100073CEAACCCCDBED1BEC15ED08EE0EE65A3C +:100C2000CECC335A58ECC5ED1E6F1DBD96176C1116 +:100C30006F1239CCF4CCF4CCEFCCEF6C113958CE28 +:100C4000CC446ED5CC48CC5ACECC63E61A5A58EC7C +:100C5000C5ED1E6F1DBD96176C128D3E8D0D8D2C32 +:100C60007E9617CCFECCFECCF9CCF9E61A271CEE0A +:100C70001B5858EB1AC00533C5EC16E341ED16E6D8 +:100C800015E9C4E715EC18E343ED1839EC1593901A +:100C9000C1F82505CC0302ED1139EC15A308C300FA +:100CA00062108300C42505CC0300ED113958CECC69 +:100CB000B36ED5CCB9CCD2CE25CECD03E61AC103C6 +:100CC0002703CECD0BEF1E6F1DC608E70D6C127EFD +:100CD00096176A0D1026C93F6C12390002000000F9 +:100CE0000000000000FFFE0000000000000000B354 +:100CF000CCFFCCEFB38CFFCCF4B4CCFFCCF9B48CEC +:100D0000FFCCFEB5CC05B6CCFFCD03B58C05B68CBB +:100D1000FFCD0BCCCE2CED1E6F1DBD9617C606E782 +:100D20000D6C116F12396A0D26FBD696C4305454DF +:100D300054CECD3EECC5ED1BCC0200ED1139CD46B5 +:100D4000CD5ACD6ECD820000000000000180000071 +:100D50000000000000FFFE80000000000000000016 +:100D600001C000000000000000FFFE400000000085 +:100D700000000000022000000000000000FFFDE075 +:100D8000000000000000000002C0000000000000A1 +:100D900000FFFD400000E61258CECDA3ADD58D4139 +:100DA0007ECDEFCDA7CDADEC15ED0C6C128D13EC17 +:100DB00015A30CC30062108300C42305CC0300ED0F +:100DC0001139EE1BE61A5858EB1A33C5EC16E341FD +:100DD000ED16E615E9C4E715EC18E343ED187E9629 +:100DE00017EC159390C1F82505CC0302ED1139D607 +:100DF0009D260BEC16C3008DED1624026C15395898 +:100E0000CECE056ED5CE0BCE1CCE25CCCE3AED1E69 +:100E10006F1DBD9617C620E7086C12396A081026A8 +:100E2000C7F56C12394F5FE710ED1139E8D503E9CA +:100E3000D503EAD503EBD583CE2CECD503EDD50352 +:100E4000EED503EED503EFD503F0D503F1D583CE70 +:100E500049CCCEC7ED1E6F1DBD9617C606E70D6CBB +:100E6000116F12396A0D26FBCCCEE6ED1BCC0200C9 +:100E7000ED1139E61258CECE81ADD5BDCDE17ECD96 +:100E8000EFCE85CE8BEC15ED0C6C12EE1BE61A58EE +:100E900058EB1A33C5EC16E341ED16E615E9C4E745 +:100EA00015EC18E343ED187E961758CECEB06ED5EC +:100EB000CEB6CE1CCE25CCCED5ED1E6F1DBD961761 +:100EC000C610E7086C123989E4038AE4038BE40353 +:100ED0008CE483CEC78DE4038EE4038FE40390E4B7 +:100EE0000391E4FFCED50000000000000260000086 +:100EF0000000000000FFFDA000008E0CE8C606D731 +:100F0000C8E610270BEC1148CECF1AADD6BDA92EDE +:100F10003088200AC826EA39CF28CF39CF4ECFA84B +:100F200087CDD02DD0A2D12258CECF31ADD57ECF16 +:100F30008AB351CF17B36ACF17C60AE713CCD2F0E2 +:100F4000ED1BBDD1A20CAB6C116F127ED18358CEBC +:100F5000CF546ED5CF58CF75E60D2607C601E710E2 +:100F60006C12396A0DD69D260BEC16C3008DED165A +:100F700024026C1539BDD183EC15939083000810C1 +:100F80008300E024046C116F1239EC159390C1F8C2 +:100F90002505CC0602ED1139BDA8472506CC040075 +:100FA000ED1139EB18E718398D076A188DEA8DDADB +:100FB0003958CECFB8ADD539CFBECFCFCFD8D6C820 +:100FC0005ADB24C407102601BAC632E70D6C126A38 +:100FD0000D102601AE6C12396F12BDCFE7E11A2752 +:100FE00005E71ABDD1A239C603A6132726B6048386 +:100FF000BA04B3261EBDAD5310AF0E252DE638E062 +:1010000018CB08C110220DEC1510A3352303C6031D +:1010100039C60139E618E1382308CC0400ED11C6C1 +:101020000239CC0500ED11C60439C6013958CED0BD +:1010300036ADD57ECF8AD040D04FD062D06BD08332 +:10104000E61326026A13BDD1A2C608E70D6C12BDD5 +:1010500096176C186A0D26096C12C610E70D7E965D +:1010600017396A186A0D26026C1239EE1BEC18E368 +:101070004DED18BDA847240AEB18E7186C12C606F8 +:10108000E70D396A0D1026C58EEE0EC601E71AEC83 +:101090001510A3552304C603E71ACC0200ED117EF8 +:1010A000D1A258CED0ABADD57ECF8AD0B5D0C8D0E6 +:1010B000D0D0F3D0FCE61326026A13BDD1A2E61805 +:1010C000E70CC608E70D6C126A0D1026C5496C12B4 +:1010D000EE1BEC18E3C817ED18BDA847250EE6185F +:1010E000E00CC1202305CC0400ED1139C606E70D44 +:1010F0006C12396C186A0D26026C12396A18BDA878 +:10110000471024C512EB18E718EE0EC601E71AECDB +:101110001510A3552304C603E71ACC0200ED117E77 +:10112000D1A258CED1286ED5D132D14DD156D15D74 +:10113000D166CED1F0E61458EEC5E61A58ECC5EDEE +:101140001E6F1DBD9617C620E7086C12396A08107D +:1011500026C4C46C1239C6FFE7106C12394F5FE722 +:1011600010ED110AAB39CED270E61458EEC5E61A6E +:1011700058ECC5ED1E6F1DBD9617C620E708C601C9 +:10118000E71239E61AEE1B5858EB1A33C5EC16E392 +:1011900041ED16E615E9C4E715EC18E343ED187EBA +:1011A0009617A61A270ECED1B54A48ECC6ED1E6F8B +:1011B0001D7E961739D1BDD1CBD1E2D1CB30A20360 +:1011C00031A20332A20631A283D1BD33A20134A2DF +:1011D0000135A20136A20635A20134A20133A2FFD5 +:1011E000D1CB30E20331E20332E20631E283D1E2D5 +:1011F000D1F4D1FED222D222D208D208D208D256BD +:10120000D256D23CD23CD23C38E20339E20339E236 +:10121000033AE2033AE2033BE2033BE20302C7FF85 +:10122000D20838A20339A20339A2033AA2033AA290 +:10123000033BA2033BA20302C7FFD22238E20339D9 +:10124000E20339E2033AE2033AE2033BE2033BE220 +:10125000031EC7FFD23C38A20339A20339A2033AC6 +:10126000A2033AA2033BA2033BA2031EC7FFD2562E +:10127000D274D27ED2A2D2A2D288D288D288D2D63A +:10128000D2D6D2BCD2BCD2BC38E20339E20339E2B6 +:10129000033AE2033AE2033BE2033BE20332C4FFD8 +:1012A000D28838A20339A20339A2033AA2033AA290 +:1012B000033BA2033BA20332C4FFD2A238E20339AC +:1012C000E20339E2033AE2033AE2033BE2033BE2A0 +:1012D0000332C3FFD2BC38A20339A20339A2033AB6 +:1012E000A2033AA2033BA2033BA20332C3FFD2D61E +:1012F00000000000000001000000000000FE00FFF0 +:10130000FF000000000000020000008D000440000B +:10131000000000180012108E0DA8C604D7C8E610F1 +:10132000270BEC1148CED337ADD6BDA92E3088207F +:101330000AC826EA39D341D352D384D3DCD421D48A +:101340004658CED34AADD57ED3CEB351D334B36A4B +:10135000D334C601E710CED3093102C607A6C0A711 +:10136000A05A26F96F0DDC90C300E8ED15C6F8E72A +:1013700018BDD49DCED507E61AA6C5A7010CAC6C46 +:10138000116F12398D088D1B8D44BDD43639EC1682 +:10139000A303ED16E615E202E715EC18E306ED18D7 +:1013A0007ED4AB6C0DCED310EC04E342ED04EC0222 +:1013B000E941A9C4ED02EC07A345ED07E606E244C6 +:1013C000E706EC0610A34422046C116F1239EC15E9 +:1013D0009390C1F82505CC0402ED11398D088D1BC1 +:1013E0008DECBDD43639EC16A303ED16E615E202FA +:1013F000E715EC18A306ED187ED4ABCED310EC04A1 +:10140000A342ED04EC02E241A2C4ED02EC07E34585 +:10141000ED07E606E944E7066A0D26046F126C1133 +:1014200039BDD49DEC15830010ED15CCF800ED18F6 +:10143000CC0100ED1139D69D260BEC16C3008DEDC5 +:101440001624026C153958CED44C6ED5D456D46CB3 +:10145000D475D47CD485CED4C7E61458ECC5ED1E23 +:101460006F1DBD9617C620E7086C12396A08102652 +:10147000C1A56C1239C6FFE7106C12394F5FE71037 +:10148000ED110AAC39CED4E7E61458ECC5ED1E6F69 +:101490001DBD9617C620E708C601E71239A61A2710 +:1014A00009CCD50CED1E6F1D200139E61D26151047 +:1014B000AE1EECA15D2A05C47F10AEA1A784E71D76 +:1014C00010AF1E396A1D39D4CBD4D91AC7021BC735 +:1014D000021CC70200C7FFD4D41AC7021BC7021CD4 +:1014E000C70203C7FFD4E2D4EBD4F91AC7021BC763 +:1014F000021CC70231C4FFD4F41AC7021BC7021C66 +:10150000C70231C3FFD502008900C9006D076C070F +:101510006B076A0769076807670666066507640759 +:10152000630762076107608FD50CE61D261A10AEAF +:101530001EECA1ED84ECA1ED02E6A02A0510AEA4FC +:10154000C47FE71D10AF1E396A1D398E0E488D0B02 +:101550003088308D063088308D0139E61027FBEC5D +:101560001148CED577ADD6D69D27EFEC16C3008DAA +:10157000ED1624E66C1539D57FD6A5D7B4D86DCE37 +:10158000D585586ED5D58BD5F3D612C607E708C6D4 +:1015900010E70DC603E71AE70ABDD94BCED5CEEF4B +:1015A0001E6F1DBDD52AD696C430545454D7C85486 +:1015B000DBC8EB13CED5C2E6C56C12E78810E7880E +:1015C00011397F3F3F7F3F1F3F1F0F0F0F0F0E0649 +:1015D0001810030D051810030C041810030B031842 +:1015E00010030A021810030901181000080018104F +:1015F000FFD5CE6A0D1026FF31CEDB4BE61358EC3B +:10160000C5ED1BC603E71AE70ABDD94BBDD92A6C45 +:101610001239BDD52ACED636D696C43854D7C8543A +:10162000DBC8EB1333C5EC15939010A3C422598D7E +:10163000356F126C113900A800B000B800A000A8E6 +:1016400000B0009800A000A80090009800A00078CA +:1016500000800088007000780080006800600058FA +:10166000006000580050D696C430545454D7C85423 +:10167000DBC8CED67CEB13E6C5E70C3903040504C2 +:101680000506050607050505E61A5858EB1AEE1B70 +:1016900033C5EC16E341ED16E615E9C4E715EC1881 +:1016A000E343ED183958CED6B8ADD5BDD74ABDD72E +:1016B0003ABDD924BDD6E539D6BCD6D9BDAD531077 +:1016C000AF0EBDD6F3E71ABDD72AE10A2705E70A10 +:1016D000BDD92AC630E70D6C12BDD6886A0D10261A +:1016E000FE486F1239EC159390C1E82505CC020431 +:1016F000ED11398D038D0F39E618CB0CE138240339 +:10170000C60439C60239A6084A261EE11A271A96C7 +:1017100024842026143424BD95F43524967A84013B +:10172000488A01A11A27021F893910AE0EEC151044 +:10173000A3352303C60339C60139D624C43F26097D +:101740006A0C2605CC0300ED1139E68810264B10F3 +:101750008E04908D492408108E04C08D41253ABD19 +:10176000DD312535E68811E78810C601E7504F5F67 +:10177000ED51C602E753E618CB0CE758EC15C30051 +:1017800014ED55C603E75AEC3510A315230BC6011B +:10179000E75AEC15C30006ED55396A881039E63072 +:1017A000270FE618CB0CE038CB04C10822031CFE3F +:1017B000391A013958CED7BA6ED5D7C6D7E1D8165F +:1017C000D81DD826D83DFCD8B8ED04FCD8BAED0613 +:1017D000CCD8BCED1E6F1DBDD52AC620E7086C1203 +:1017E000396A081026FD43E614CED91858EEC5EC28 +:1017F000C1ED04ECC4ED06CED8A0E60B86063D3361 +:10180000C5E61358ECC5ED1E6F1DBDD52AC60CE705 +:101810000DC603E712394F5FE710ED11396A0D105D +:1018200026FD076A1239CED963BDD955CED848EF07 +:101830001E6F1DBDD52AC610E70D6C12396A0D103A +:1018400026FCE7C602E71239080018100308001941 +:10185000110308001A120308001B130308001C14CC +:101860000308001D150308001E16FFD84858CED8DF +:10187000736ED5D877D887CEDB9CE61358ECC5EDD0 +:101880001BC603E71A6C12BDD52ABDAD532505BD95 +:10189000D6F8E71ABDD688BDD924BDD74A7ED6E58D +:1018A000D8F0D8F5D8FFD8F5D8FAD909D8FAD8FFA2 +:1018B000D90ED8FFD904D913EAEAEAEA6E666F674F +:1018C0000358505951036E666F67035A525B5303B6 +:1018D00058505951035C545D55035A525B53035E93 +:1018E000565F57035A525B53035E565F57FFD8E962 +:1018F000931F941FFF971F941FFF9B1F941FFF9C14 +:101900001F941FFF9D1F941FFF951F941FFF961F7D +:10191000941FFF9E1F9F1FFFD91CD920E4E4E4E41D +:10192000E3E3E3E3A609271C6F09CED987E60AC5DE +:10193000022603CED997A60848ECC6ED1E6F1DBD42 +:10194000D52A200139E60AC5012717CED963C4027A +:101950002603CED969E61358EEC5ECC4ED04EC427B +:10196000ED0639D96FD973D977D97BD97FD983FA65 +:10197000FAFAFAFBFBFBFBFCFCFCFCBABABABABBFA +:10198000BBBBBBBCBCBCBCDA4FDA4FDA25D9FBD938 +:10199000D1D9D1D9D1D9A7DB21DB21DAF7DACDDA58 +:1019A000A3DAA3DAA3DA7968607B740369617B7CCC +:1019B0000368607B750369617E760368607F7703E7 +:1019C00069617E760368607B750369617B7C83D97E +:1019D000A76A627B74036A627B7C036A627B75031D +:1019E0006A627E76036A627F77036A627E76036A42 +:1019F000627B75036A627B7C83D9D16B637B7403E2 +:101A00006B637B7C036B637B75036B637E76036B1D +:101A1000637F77036B637E76036B637B75036B6316 +:101A20007B7C83D9FB6C647B74036C647B7C036C70 +:101A3000647B75036C647E76036C647F77036C64EF +:101A40007E76036C647B75036C647B7C83DA256D26 +:101A5000657B74036D657B7C026D657B75016D65CF +:101A60007E76016D657F77017A707B71037A727B78 +:101A700073037A787B7983DA687B746860037B7C94 +:101A80006961037B756860037E766961037F7768AF +:101A900060037E766961037B756860037B7C6961A6 +:101AA00083DA797B746A62037B7C6A62037B756A82 +:101AB00062037E766A62037F776A62037E766A6279 +:101AC000037B756A62037B7C6A6283DAA37B746B37 +:101AD00063037B7C6B63037B756B63037E766B6355 +:101AE000037F776B63037E766B63037B756B6303A6 +:101AF0007B7C6B6383DACD7B746C64037B7C6C646E +:101B0000037B756C64037E766C64037F776C64037F +:101B10007E766C64037B756C64037B7C6C6483DA17 +:101B2000F77B746D65037B7C6D65027B756D65016C +:101B30007E766D65017F776D65017B717A70037BC1 +:101B4000737A72037B797A7883DB3ADB51DB6ADB69 +:101B50008300008D0000000040000000008DFF4069 +:101B6000FFFFD0000000008D00C000008D000000CD +:101B7000008D000000008DFF30FFFFD0000000004E +:101B80008D00D000008D00000000F0000000008DEE +:101B9000FF20FFFF40000000008D00E0DBA2DBBB68 +:101BA000DBD400008D00000000400000FFFF40FF7C +:101BB00040FFFF400000FFFF4000C000008D00001C +:101BC00000008D0000FFFF40FF30FFFF400000FFDE +:101BD000FF4000D000008D00000000F00000FFFF7B +:101BE00040FF20FFFF400000FFFF4000E08E07683D +:101BF000C606D7C8E610270BEC1148CEDC0DADD6D3 +:101C0000BDA92E3088200AC826EA39DC15DC26DC7E +:101C10006CDD52DD7858CEDC1EADD57EDD6AB35169 +:101C2000DC0AB36ADC0A58CEDC2FADD57EDD6ADC77 +:101C300033DC5CC602E7106F1ACCDE7CED1BCC00F7 +:101C4000BED390ED15CCDDE1ED1E6F1DBD96170CDA +:101C5000ADC610E70DC60AE70C6C12396A0D1026E6 +:101C6000B9B5CC0100ED11C601E7103958CEDC75CD +:101C7000ADD57EDD6ADC7DDC94DCACDD46C601E7FB +:101C80001AEE0EEC1510A3442504C603E71ABDDDB9 +:101C9000CF6C1239BDDDB0EE0EEC44C30010A315BD +:101CA000C300041083000822026C1239D624DBC85A +:101CB000C407267CCE0490E650270AE658E018CBED +:101CC00008C1102311CE04C0E6502764E658E0187E +:101CD000CB08C110245ABDDD3125554F5FED51C6EB +:101CE00001E750C601E753EC1583000CED55E618EB +:101CF000CB04E758C603E75AE71ABDAD532514ECE9 +:101D00003510A315230DC601E75AE71AEC15C300D9 +:101D10000CED55EF0AEC0EED4EEE0EC620E70DCEA3 +:101D2000DDF5E61A58ECC5ED1E6F1DBD96176C1259 +:101D300039CE0ED88604E650270933C8204A26F645 +:101D40001A01391CFE396A0D1026B8CBBDDDCF6AE9 +:101D5000123958CEDD5AADD52010DD5EDDB0C60398 +:101D6000E71ABDDDCF6C127EDDB0EC159390C1F8A3 +:101D7000252DCC0302ED113958CEDD7E6ED5DD86E2 +:101D8000DD97DDA0DDA7CCDE6BED1E6F1DBD9617C8 +:101D9000C620E7086C12396A081026B87A6C123926 +:101DA000C6FFE7106C12394F5FE710ED110AAD392D +:101DB000E61AEE1B5858EB1A33C5EC16E341ED1644 +:101DC000E615E9C4E715EC18E343ED187E9617A66F +:101DD0001A270DCEDE1B48ECC6ED1E6F1D7E961732 +:101DE0003920E60421E60422E60423E60424E6047E +:101DF00025E6FFDDE1DDFFDDFFDDFFDE0DDE0D2889 +:101E0000A60529A6052AA60529A685DDFF28E6053B +:101E100029E6052AE60529E685DE0DDE25DE33DE28 +:101E200041DE4FDE5D1FE6831FE6831FE6831FE66C +:101E300083DE2525A60326A60327A60326A683DE82 +:101E40003325A60326A60327A60326A683DE41255F +:101E5000E60326E60327E60326E683DE4F25E603B0 +:101E600026E60327E60326E683DE5D2BE6032CE663 +:101E7000032DE6032EE6031FE6FFDE6B00000000E5 +:101E8000000000E40000000000FEC0FFFF1C000096 +:101E900000000001408E0BA8C604D7C8E610270B2F +:101EA000EC1148CEDEB5ADD6BDA92E3088200AC8CB +:101EB00026EA39DEBDDECEDF18DF6FDFAF58CEDEBB +:101EC000C6ADD57EDFCBB351DEB2B36ADEB258CE3B +:101ED000DED46ED5DED8DEF8CCE09AED1BCCE04047 +:101EE000ED1EE61AC1012605CCE032ED1E6F1DBDC8 +:101EF00096176F090CAE6C12E60D260AC601E710A4 +:101F0000CC0200ED11396A0DD69D260BEC16C300EC +:101F10008DED1624026C153958CEDF1E6ED5DF28E4 +:101F2000DF3EDF47DF4EDF57CEE04EE61458ECC50C +:101F3000ED1E6F1DBD9617C620E7086C12396A08A2 +:101F40001026B6D36C1239C6FFE7106C12394F5FFA +:101F5000E710ED110AAE39CEE074E61458ECC5ED89 +:101F60001E6F1DBD9617C620E708C601E712395837 +:101F7000CEDF756ED5DF79DF7FC610E70D6C128D71 +:101F80000F6A0D260ACCE0C7ED1BCC0300ED11391A +:101F9000E61AEE1B5858EB1A33C5EC16E341ED1662 +:101FA000E615E9C4E715EC18E343ED187E961758DB +:101FB000CEDFB56ED5DFB9DFC3C630E7064F5FEDC4 +:101FC0000A6C128D14BD96178D0139EC159390C1D2 +:101FD000F82505CC0102ED1139EE1BE61A58EB1A73 +:101FE00033C5E617EB42E717EC15E941A9C4ED1537 +:101FF000CEE030EC0AE3C4ED0A4D2A0A847FA70A3A +:10200000E609C801E709CEE0E2E60AE6C54FDED6FA +:102010003606A6065F3606BDE1623706D7CA3342EA +:10202000A608E60926059BCAA7183990CAA7183939 +:10203000028DB78F01B88F01B98F01B88F81E0325F +:10204000B7CF01B8CF01B9CF01B8CF81E040E0529E +:10205000E0631AC7031BC7031CC7031DC70300C7E0 +:10206000FFE0521AC7031BC7031CC7031DC70303A6 +:10207000C7FFE063E078E0891AC7031BC7031CC7EA +:10208000031DC70331C4FFE0781AC7031BC7031C35 +:10209000C7031DC70331C3FFE08900008D000000A6 +:1020A000028D00000001F7FE9600008DFE00FFFF8C +:1020B00027FE96FFFE8D0000FFFF23016A00008DC2 +:1020C00002000001F7016A00000000011A00000090 +:1020D000000000000000FFFF73000000000000008F +:1020E000000000060D13191F262C32283E444A50CA +:1020F000565C62686D73797E84898E93999EA2A7DF +:10210000ACB1B5B9BEC2C6CACED1D5D8DCDFE2E526 +:10211000E7EAEDEFF1F3F5F7F8FAFBFCFDFEFFFF60 +:10212000FFFFFFFFFFFFFEFDFCFBFAF8F7F5F3F101 +:10213000EFEDEAE7E5E2DFDCD8D5D1CECAC6C2BE14 +:10214000B9B5B1ACA7A29E99938E89847E79736D3F +:1021500068625C56504A443E38322C261F19130DD3 +:102160000603335CA644E646EDC4E743E645A647CE +:10217000ED45E742EC463DED46EC443DEB4689003B +:10218000ED45EC423DEB46A945ED4559C401E74418 +:10219000ECC43DEB45A944ED44334439E6423604F2 +:1021A000EC423DED42ECC03DEB418900EDC4398E7F +:1021B0000E28E610273ECEE1BEEC11486ED6E1C4F3 +:1021C000E1F5E226C601E710CCE27DED1B10AE0E74 +:1021D000A638CEE26FE6132705CEE24D8B10A71886 +:1021E000EF1E6F1DBD9617DC90830008ED15C6012C +:1021F000E71A6C113958CEE1FB6ED5E201E207E235 +:1022000012C610E70D6C12BDE2966A0D1026B407D7 +:102210006C12BDE296BD9617EC159390C1F823059C +:10222000CC0200ED1139EE0EC601E750EC15ED556C +:102230004F5FE710ED11ED5139BAC903BBC903BCBB +:10224000C903BDC903BEC903BFC983E239BA890343 +:10225000BB8903BC8903BD8903BE8903BF8983E2AF +:102260004D92B80398B80399B8039AB883E2619283 +:10227000F80398F80399F8039AF883E26F000000D6 +:102280000000000140000000000001C0FFFEC0008F +:1022900000000000FE40EE1BE61A5858EB1A33C54A +:1022A000EC16E341ED16E615E9C4E715EC18E34337 +:1022B000ED1839D624C5012652D688264D0FD5BD36 +:1022C000E35FBDE410BDE4B6BDE74DBDEB83BDECFF +:1022D0002CBDE9FABDE8A8BDE951BDEDFEBDEE5D3E +:1022E000BDE55FBDEAFBBDECB7BDECD0BDED30BDDB +:1022F000ED49BDED63BDED81BDED9FBDE7D6BDEA06 +:10230000A3BDEAC0BDEADEBDEF0139D689264FC6BE +:1023100080D7D5BDE36ABDE41BBDE4C1BDE758BDB0 +:10232000EB8EBDEC37BDEA05BDE8B3BDE95CBDEEA3 +:1023300008BDEE68BDE565BDEB06BDECC1BDECDAE0 +:10234000BDED3ABDED53BDED6FBDED8DBDEDA9BD4C +:10235000E7DFBDEAAEBDEACBBDEAE9BDEF06391065 +:102360008E04E08D0E31A8202009108E05208D03EB +:1023700031A8208E0828E6305A2625E638CB06D725 +:10238000C9EC35C30008DDCAC610D7C8E6105A2606 +:1023900008E6112B048D0A25073088200AC826EC90 +:1023A00039E618CB08D0C9CB07C10E2257EC15C3AC +:1023B000000893CAC300071083000E2247C602E735 +:1023C00030CC0200ED313430BD641F35306A022755 +:1023D0000BE6025A262BC601E7132025C602E7109A +:1023E000CC0500ED11D6D51D8401A7143430CC04E2 +:1023F0002BDAD5BD9604BD641ACC0033BDE4073595 +:10240000301A01391CFE39D396813F2402DD9639FA +:10241000108E04E08D0E31A8202009108E05208D2D +:102420000331A8208E0A28E6305A2625E638CB0646 +:10243000D7C9EC35C30008DDCAC606D7C8E6105AAE +:102440002608E6112B048D0A25073088200AC826A5 +:10245000EC39E618CB08D0C9CB08C1102255EC15D1 +:10246000C3000893CAC30008108300102245C602A7 +:10247000E710E730CC0200ED11ED313430CC04161A +:10248000DAD5BD9604BD643DD6D51D8401A714CC14 +:102490000033BDE4070AB02616CC0204ED11CC04CB +:1024A00014DAD5BD9604BD6442CC0033BDE4071AEE +:1024B0000135B01CFE39108E04E08D0E31A82020AD +:1024C00009108E05208D0331A8208E0AE8E6305AC7 +:1024D0002625E638CB06D7C9EC35C30008DDCAC6C9 +:1024E00004D7C8E6105A2608E6112B048D0A2507E2 +:1024F0003088200AC826EC39E618CB08D0C9CB08AA +:10250000C1102258EC15C3000893CAC300081083F9 +:1025100000102248C602E710E730CC0400ED11CCD1 +:102520000200ED313430CC0417DAD5BD9604BD6419 +:102530003DD6D51D8401A714CC0040BDE4070AB1E7 +:102540002616CC0404ED11CC0413DAD5BD9604BDD7 +:102550006442CC0040BDE4071A0135B01CFE3910BE +:102560008E04902004108E04C0E6305A2624EC35E8 +:10257000DDC8E638D7CA8E0560C614D7CBE684C559 +:10258000012709EC0493904D26028D1F300A0ACBD7 +:1025900026EB3900000000010102020303040405D8 +:1025A0000506060707080832323333E60958CEE538 +:1025B000B36ED5E5BBE6B2E6FFE5EED6CAE006CBE4 +:1025C00006C10C2229DCC8A304C300061083000C3A +:1025D000221CCC0404ED84E607CEE5A3E6C5DAD5DB +:1025E00086043420BD96048D1EBD641035A03900CC +:1025F00000000001010202030304040505060607AA +:1026000007080809090A0A0C9AE607108EE5FFE692 +:10261000A5DB9BD79BD69AC10625365FD79A969B9A +:10262000D79BC606BDC29C4AC10325014CCEE652CB +:10263000D67EC5F82702C607C40758EEC5A6C6B79A +:1026400006FB7F070BCE0550E606E744CC0100ED04 +:10265000C439E662E66CE676E680E68AE694E69EB3 +:10266000E6A80001020304050607080902030405A1 +:1026700005050607080903040506060606070809F6 +:1026800004050607070707070809050607080808DD +:1026900008080909060708080808080909090708B9 +:1026A00008080808090909090808080808090909A3 +:1026B0000909D6CAE006CB05C10A2295DCC8A304E5 +:1026C000C300061083000C2288E601C10126186CA5 +:1026D000018604C627DAD53420BD9604BD6429CC12 +:1026E0000080BDE40735A06C018604C629DAD53424 +:1026F00020BD9604BD642ECC00C0BDE40735A0D635 +:10270000CAE006CB05C10A2243DCC8A304C3000CFF +:1027100010830018223683000C2A164353C300018D +:10272000DDCCCC000C93CCDDCCEC3593CCED35205E +:102730000BDDCCCC000C93CCE335ED3593901083BE +:1027400000062208C601E7334F5FED3139108E04D1 +:10275000E08D0E31A8202009108E05208D0331A8B0 +:10276000208E0B68E6305A2623E638CB07D7C9EC13 +:1027700035C30008DDCAC602D7C8E6105A2606E6E9 +:10278000112B028D083088200AC826EE39E618CBB6 +:1027900008D0C9CB08C110223CEC15C3000893CA6D +:1027A000C3000810830010222CD6D51D8401A71465 +:1027B000C602E710E730CC0300ED11CC0200ED318A +:1027C0003430CC0418DAD5BD9604BD6438CC004C46 +:1027D000BDE40735B0398E0490E610275A20078EE5 +:1027E00004C0E6102751CE07088D0833C8208D039A +:1027F00033C820E6505A263FE618E058CB07C10EF2 +:102800002235EC15A355C30003108300062228C609 +:1028100002E750E614E754E6532B4DC10A26048D17 +:102820003120028D13CC0100ED510C7CD67CC10807 +:1028300025050F7CBDFB9539108EE89CE6A5DAD501 +:102840008604BD96043410BD6415CC00C0BDE407F9 +:102850003590108EE89FE642E6A5DAD58604BD964F +:10286000043410BD641535905C2616CC0300ED5180 +:10287000C601D7A10FA20C7BD67BC10323020F7B1D +:1028800039E6145CC403D7A5CC0300ED51C604D7C8 +:10289000080F0B0F0E3430BD641535B0090A0B0C50 +:1028A0000D0E0F1011122A34108E04E08D0E31A877 +:1028B000202009108E05208D0331A8208E0CE8E61B +:1028C000305A2625C606D7C8E638CB05D7C9EC3519 +:1028D000C30008DDCAE6105A2608E6112B048D0A4B +:1028E00025073088200AC826EC39E618CB08D0C95D +:1028F000CB08C1102258EC15C3000893CAC30008C6 +:10290000108300102248C602E710E730CC0600ED25 +:1029100011CC0200ED313430CC0422DAD5BD96045E +:10292000BD643DD6D51D8401A714CC0019BDE407B4 +:102930000AB32616CC0604ED11CC0414DAD5BD96E4 +:1029400004BD6442CC0040BDE4071A0135B01CFE52 +:1029500039108E04E08D0E31A8202009108E05203C +:102960008D0331A8208E0C28E6305A2625C606D7BE +:10297000C8E638CB05D7C9EC35C30008DDCAE61078 +:102980005A2608E6112B048D0A25073088200AC82C +:1029900026EC39E618CB08D0C9CB08C1102258EC78 +:1029A00015C3000893CAC30008108300102248C64C +:1029B00002E710E730CC0600ED11CC0200ED313417 +:1029C00030CC0421DAD5BD9604BD643DD6D51D8436 +:1029D00001A714CC0033BDE4070AB22616CC0604C6 +:1029E000ED11CC0424DAD5BD9604BD6442CC004C74 +:1029F000BDE4071A0135B01CFE39108E04E08D0EBF +:102A000031A8202009108E05208D0331A8208E0DBD +:102A1000A8E6305A2625C604D7C8E638CB05D7C95C +:102A2000EC35C30008DDCAE6105A2608E6112B046F +:102A30008D0A25073088200AC826EC39E618CB080D +:102A4000D0C9CB08C1102258EC15C3000893CAC3E3 +:102A50000008108300102248C602E710E730CC04BB +:102A600000ED11CC0200ED313430CC0423DAD5BDB9 +:102A70009604BD6438D6D51D8401A714CC0040BD92 +:102A8000E4070AB42616CC0404ED11CC0413DAD5FD +:102A9000BD9604BD6442CC0040BDE4071A0135B0C8 +:102AA0001CFE398E0490E6105A26324F200A8E04FE +:102AB000C0E6105A26278680CE0CE8C6067EECE9D2 +:102AC0008E0490E6105A26154F200A8E04C0E61098 +:102AD0005A260A8680CE0C28C6067EECE9398E047A +:102AE00090E6105A26F74F200A8E04C0E6105A26A8 +:102AF000EC8680CE0DA8C6047EECE9108E04E08D35 +:102B00001031A820200B108E05208D0531A8202023 +:102B100000E6305A261CEC35C30005DDC8E638CB8C +:102B200008D7CA8E0560C614D7CB8D07300A0ACBEA +:102B300026F839E684C50227F9CEEB41E609586E3E +:102B4000D5EB82EB82EB49EB82E606CB08D0CACB11 +:102B50000AC114222DEC04C3000893C8C3000B1053 +:102B6000830016221DC604E701C602E730CC02002E +:102B7000ED31EE02E644C1042608CC042FDAD57EFE +:102B8000960439108E04E08D0E31A8202009108E95 +:102B900005208D0331A8208E0BA8E6305A2625C6C5 +:102BA00004D7C8E638CB05D7C9EC35C30008DDCA61 +:102BB000E6105A2608E6112B048D0A2507308820D6 +:102BC0000AC826EC39E618CB08D0C9CB08C11022B8 +:102BD00058EC15C3000893CAC300081083001022E4 +:102BE00048C602E710E730CC0100ED11CC0200ED41 +:102BF000313430CC0419DAD5BD9604BD6438D6D54D +:102C00001D8401A714CC0033BDE4070AB62616CCF8 +:102C10000104ED11CC0413DAD5BD9604BD6442CC99 +:102C20000040BDE4071A0135B01CFE39108E04E0E7 +:102C30008D0E31A8202009108E05208D0331A8208B +:102C40008E0768E6305A2625C606D7C8E638CB0573 +:102C5000D7C9EC35C30008DDCAE6105A2608E611CC +:102C60002B048D0A25073088200AC826EC39E6187F +:102C7000CB08D0C9CB08C110223AEC15C300089389 +:102C8000CAC3000810830010222AC602E730CC0213 +:102C900000ED31C602E710CC0300ED113430CC0456 +:102CA0001ADAD5BD9604BD643DCC0033BDE40735CA +:102CB000301A01391CFE398E0490E6105A26702015 +:102CC000088E04C0E6105A2666CE0828C6102019C1 +:102CD0008E0490E6105A265720088E04C0E6105A3B +:102CE000264DCE0A28C6062000D7C8E650271BC5A9 +:102CF000022617A618A0588B07810E220DEC15A3EB +:102D000055C300071083000E230833C8200AC826C5 +:102D1000DA39E650C540270FC602E7506C52E61478 +:102D2000E754E6537EE8388601A7134F5FED11396B +:102D30008E0490E6105A26F720088E04C0E6105A3A +:102D400026EDCE0AE8C60420A08E0490E6105A268E +:102D5000DE20088E04C0E6105A26D4CE0B68C602C8 +:102D60007EECE98E0490E6105A1026FFC2200A8EEF +:102D700004C0E6105A1026FFB6CE0BA8C6047EEC9F +:102D8000E98E0490E6105A1026FFA4200A8E04C093 +:102D9000E6105A1026FF98CE0768C6067EECE98E2C +:102DA0000490E6105A265620088E04C0E6105A26D3 +:102DB0004CCE0ED8C604D7C8E650271BC50226172E +:102DC000A618A0588B06810C220DEC15A355C30044 +:102DD000061083000C230833C8200AC826DA39E617 +:102DE00050C540270BC602E7506C52E6537EE838C8 +:102DF000CC0302ED518601A7134F5FED11398E040C +:102E0000E08D0D30882020088E05208D033088202D +:102E1000E6105A2647CE0ED8C604D7C8E6505A2622 +:102E20001BE6512B17A618A0588B07810E220DEC1C +:102E300015A355C3000910830012230833C8200AC4 +:102E4000C826D939C602E710E750CC0300ED51CCB3 +:102E50000200ED11CC0430DAD5BD960439108E0491 +:102E6000E08D0E31A8202009108E05208D0331A899 +:102E700020E6305A26178E0E48C603D7C8E6105AE9 +:102E800026048D0A25073088300AC826F039E6184E +:102E9000CB08E038CB14C1282458EC15C30008A394 +:102EA00035C30014108300282248C602E730CC0244 +:102EB00000ED313430BD641F3530C601E7096A08C2 +:102EC000262DC602E710CC0200ED11D6D51D8401D7 +:102ED000A7143470CEEEF5E60B58EB0BEB13E6C5FA +:102EE000DAD58604BD9604CC0080BDE40735701A9F +:102EF00001391CFE391B1C1E1C1D201D1E251E1FFA +:102F0000268E049020038E04C0E6105A2613108EDD +:102F10000E48C603D7C88D0A250731A8300AC8262F +:102F2000F539E6305A2627E638CB08E018CB10C131 +:102F300020221BEC35C30008A315C300101083002A +:102F400020220BC601E7134F5FED111A01391CFE59 +:102F500039BDEF7CBDEFEDBDF269BDF358BDF44363 +:102F6000BDF4DCBDFA07BDF682BDF7F3BDF97ABD4D +:102F7000FAFABDFB63BDFBD6BDFC2C39D69C2709F4 +:102F8000D624C43F26020A9C398E0628EC0248CE7D +:102F9000EF946ED6EF98EFBBD690E184271CE784C0 +:102FA000C47F4F58CEFCD9EECBECC1ED06EF04CC7C +:102FB0000638ED0AC60CE7086C023910AE04EE0ABA +:102FC000640666072412E6A0E74EE6C426104F5FAB +:102FD000ED428601A7C420066FC44F5FED4210AFDB +:102FE0000433C810EF0A6A0826026F02398E0638C9 +:102FF000E6842718EC0248CEEFFC6ED6F000F00D08 +:10300000D6A626036C0239CC0101ED023958CEF068 +:10301000136ED5F019F065F080D6A4C10C2545D605 +:1030200096C43054CEF0C931C5D623C40610AEA51F +:10303000DC90C300F8DDC8C60CD7CACE0828A6A00D +:10304000A758BD95F4C407E74DE6A0E743DCC8EDFB +:10305000556F5AC680E7504F5FED5133C8200ACAFA +:1030600026DC6C0339D696C43054CEF0C933C5D6AD +:1030700023D824C406EEC5EF06C60CE7086C033956 +:10308000D6A4274496A68110273E8610CE0828E6AF +:1030900050270733C8204A26F63910AE06A6A0A747 +:1030A00058BD95F4C407E74DE6A0E743DC90C300A4 +:1030B000F8ED556F5AC680E7504F5FED5110AF06DF +:1030C0006A082604C601E70339F0E9F101F119F1B4 +:1030D00031F149F161F179F191F1A9F1C1F1D9F140 +:1030E000F1F209F221F239F251C8006800A8008813 +:1030F00000A8004800C8004800C800280028008830 +:1031000000A800C800680088004800A800280088BF +:1031100000C8002800C8004800C800A8008800486F +:1031200000280068008800C8002800C800A80048DF +:10313000004800C80068002800C800C8008800A82F +:1031400000480088002800A80028014801680148BC +:1031500001280168018801C8012801C801A80148A7 +:103160000128014801A801C8012801480188014837 +:10317000012801C801A8014801C801A80188014827 +:1031800001280168018801C8012801C801A8014877 +:1031900001C801A80188014801280168018801C807 +:1031A000012801C801A8012801A800A80188004839 +:1031B00001280068018800C8012800C801A800484B +:1031C00001C801A80088004801280168008801C8DA +:1031D000002801C800A8014800C801A801880048CB +:1031E00000280168008801C8002801C800A801481B +:1031F00001C800A80088014801280168018800C8AA +:10320000012800C801A8004800C802A80288024896 +:1032100002280268028802C8022802C802A80248DE +:1032200002C802A80288024802280268028802C86E +:10323000022802C802A8024802C802A8028802485E +:1032400002280268028802C8022802C802A80248AE +:1032500002C802A80288024802280268028802C83E +:10326000022802C802A80248028E0648E684273BCC +:10327000EC0248CEF2786ED6F27CF2AC96A7262B02 +:10328000CEF286586ED5F28AF294E60EE701C61E9B +:10329000E70F6C036A0F2613C61EE70F6A01260BA1 +:1032A000C606D7B05FE7076C026F033958CEF2B29B +:1032B0006ED5F2B4CE0A28DC90C300F8DDC8C6068D +:1032C000D7CA108EF2F8D6245454545454D896C405 +:1032D00007860C3D31ABECA1A758E74DE607E74C5C +:1032E000DCC8ED55C680E7504F5FED5133C8200A6A +:1032F000CA26E34F5FED0239C000C018C030C04895 +:10330000C060C078A000A018A030A048A060A0783D +:10331000800080188030804880608078600060186D +:103320006030604860606078C800C818C830C8481D +:10333000C860C878A800A818A830A848A860A878CD +:1033400088008818883088488860887868006818FD +:1033500068306848686068788E0658E684273BECD9 +:103360000248CEF3676ED6F36BF39B96A8262BCE5E +:10337000F375586ED5F379F383E60EE701C61EE7C1 +:103380000F6C036A0F2613C61EE70F6A01260BC6D1 +:1033900004D7B15FE7076C026F033958CEF3A16E13 +:1033A000D5F3A3BDAD53EC359390C4C0CB402602FA +:1033B000C610CB104FDDCCCE0AE8DC90C300F8DDA0 +:1033C000C8C604D7CA108EF403D624545454545497 +:1033D000D896C40758585831A5DCCCED4AECA1A7C3 +:1033E00058E74DE607E74CDCC8ED55C609E75AC675 +:1033F00080E7504F5FED5133C8200ACA26DB4F5F8C +:10340000ED02398800881888308848680068186894 +:103410003068482800281828302848A000A018A0A4 +:1034200030A048C800C818C830C848C000C018201C +:10343000002000C000C01860188000C000A01880E4 +:103440003060488E0668E684272EEC0248CEF4529F +:103450006ED6F456F47996A9261E58CEF4606ED531 +:10346000F464F46AE60EE7016C039624841F2608D0 +:103470006A0126046C026F033958CEF47F6ED5F4CE +:1034800081108EF4BCD696C4385431A5DC90C300AC +:10349000F8DDC8C602D7CACE0B68ECA1A758E74D25 +:1034A000DCC8ED55C609E75AC680E7504F5FED51BD +:1034B00033C8200ACA26E34F5FED02391800B8006E +:1034C0002000BA002800B8003000B8003800B8006A +:1034D0004000451080008830C00020508E0678E6FD +:1034E000842732EC0248CEF4EB6ED6F4EFF5169654 +:1034F000AE262258CEF4F96ED5F4FDF503E60EE7BC +:10350000016C039624841F260C6A012608C604D782 +:10351000B66C026F033958CEF51C6ED5F51ED696E3 +:10352000C430545454CEF57A10AEC5D696C40E5855 +:103530005831A5DC90C300F8DDC8C605D7CBD696B8 +:10354000C520270BDC90830008DDC8C601D7CBC699 +:1035500004D7CACE0BA8ECA1A758A748E74DDCC8F2 +:10356000ED55D6CBE75AC680E7504F5FED5133C8D3 +:10357000200ACA26E14F5FED0239F582F5C2F60254 +:10358000F642A800A818A830A848B800B818B83063 +:10359000B84898009818983098488800881888305B +:1035A000884878007818783078486800681868305B +:1035B000684858005818583058484800481848304B +:1035C0004848A800B818A830B848A000A018A030F3 +:1035D000A0489800A018B0309048A800A818A830BB +:1035E000A848A000B018A830A848A800A818A8307B +:1035F000A848A800A818A830A848A800A818A8306B +:10360000A848A800A820A838A858A800B820A8381A +:10361000A858A800A8209838A858A800A820A8381A +:103620008858A800A8207838A858A8006820A8388A +:10363000A8585800A820A838A858A8004820A8389A +:10364000A858A800A818A830B848A800A818A830FA +:10365000A848A8009818A830A8488800A818A8303A +:10366000A848A8007818A830A848A800A81868306A +:10367000A848A800A818A8305848A800A81848309A +:10368000A8488E0698E6842708EC0248CEF6926E8B +:10369000D639F696F6C596AA262A58CEF6A06ED545 +:1036A000F6A6F6AEF6BCE60EC47FE7016C03D624A0 +:1036B0005CC41F260F6A01260B6C0339C606D7B2FD +:1036C0006C026F033958CEF6CB6ED5F6CDD696C4C4 +:1036D00030545454CEF72B10AEC53420BD95F4357C +:1036E00020C4035831A5DC90C300F8DDC8C603D759 +:1036F000CBE60E2A0BDC90830008DDC8C601D7CBD1 +:10370000C606D7CACE0C28ECA1A758E74DDCC8EDF9 +:1037100055D6CBE75AC680E7504F5FED51E753339C +:10372000C8200ACA26E14F5FED0239F733F763F785 +:1037300093F7C3C800A8008800680048002800C8A4 +:1037400000A8008800680048002800C850A84088E9 +:1037500030682048102800680068086810681868F9 +:10376000206828C800A8008818681848002800C8E1 +:1037700000A8108820683048482858C820A8108819 +:1037800000880068106800A8208810680068004859 +:1037900010280088188818880068004800280088C9 +:1037A0000088108820480048104820C800C810C869 +:1037B0002028002810282068006808681068186809 +:1037C000206828C820A8108800680048202810C851 +:1037D00000A8108820682048102800C800A8188871 +:1037E00020680048182820C820A8188800682048A9 +:1037F0001828008E0688E6842708EC0248CEF803D5 +:103800006ED639F807F83896AB261458CEF8116EF4 +:10381000D5F817F820F82FE60EC47FE7016C0339BE +:10382000D624CB02C41F26F76A0126F36C0339C6DF +:1038300006D7B36C026F033958CEF83E6ED5F84008 +:10384000BDAD53EC359390C4C0CB402602C610CB1F +:10385000104FED0AD696C430545454CEF8B210AE80 +:10386000C53420BD95F43520C403860C3D31ABDC56 +:1038700090C300F8DDC8C603D7CBE60E2A0BDC9058 +:10388000830008DDC8C601D7CBCE0CE8C606D7CA70 +:10389000D6CBE75AECA1A758E74DDCC8ED55C6805A +:1038A000E7504F5FED5133C8200ACA26E34F5FED62 +:1038B0000239F8BAF8EAF91AF94A88108816880025 +:1038C000680048002800C800A80088006800481860 +:1038D0002818C800A8008818681848182818C83080 +:1038E000A81888006818483028488810881688006A +:1038F000680048002800C800A80088006800481830 +:103900002818C800A8008818681848182818C8304F +:10391000A818880068184830284888108816880039 +:10392000680048002800C800A800880068004818FF +:103930002818C800A8008818681848182818C8301F +:10394000A818880068184830284888108816880009 +:10395000680048002800C800A800880068004818CF +:103960002818C800A8008818681848182818C830EF +:10397000A81888006818483028488E06A8E68427CA +:1039800008EC0248CEF98A6ED639F98EF9C696ACA3 +:10399000261458CEF9986ED5F99EF9A7F9B6A60E59 +:1039A000847FA7016C0339D624CB03C41F26F76A92 +:1039B0000126F36C0339CE0DA8EF04C604E706D741 +:1039C000B46C026F033958CEF9CC6ED5F9D0FA0039 +:1039D000E6062727EE04C603E75ADC90C300F8ED9D +:1039E00055C6F8E7584F5FED51C680E75033C82001 +:1039F000EF046A06C60CE7016C03394F5FED02392C +:103A00006A0126026F0339D69D27FB8E06B8E6842D +:103A100027F4EC0248CEFA1A6ED6FA1EFAA858CE4F +:103A2000FA246ED5FA2AFA38FA67310686FFC606F6 +:103A3000A7A05A26FB6C03393106CE0560C614D701 +:103A4000C8E6C42719E649C1022613E646C0285431 +:103A500054545454A6A52A06861490C8A7A5334AE0 +:103A60000AC826DD6C0339D6A4C10625F9D6ADC136 +:103A70000622F3C606D7C83106CE0768E6A02B1C7F +:103A8000E74D860A3DC30560ED4EDFC91F03E646DC +:103A9000DEC9E758C680E7504F5FED5133C8200AB2 +:103AA000C826D96C026F033958CEFAAE6ED5FAB675 +:103AB000FABFFAC7FAD7D6ADC106270A7EFA2ABDE1 +:103AC000FA38E60EE70139E6012709D624C43F2675 +:103AD000026A01396C0339C606D7C8108E0768E63A +:103AE00030260DE6B80E2708C680E7304F5FED316F +:103AF00031A8200AC826E86F03398E06C8E6842755 +:103B000008CEFB0AEC02486ED639FB0EFB1AC60340 +:103B1000E706CE0E48EF046C02398D0F6A062606C2 +:103B20004F5FED02E784394060A0B0EE04E6502616 +:103B30002CC601E750DC90C300E8ED55108EFB2742 +:103B4000E606E6A5E758E60EE74BC603E006E753B0 +:103B50004F5FED5134501F31BDD58B355033C830D8 +:103B6000EF04398E06D8E684270DE60E58CEFB7892 +:103B7000EEC5EC02486ED639FB7CFB82FB86FB8CE3 +:103B8000FB93FBA9FBB1C60AE70D6C026A0D260286 +:103B90006C02396F84CE0728C6FFE753CE0558CC98 +:103BA0000100EDC4C668E74439CC010EED0C6C028F +:103BB00039EC0C830001ED0C261BCE0748E650269D +:103BC00014C601E7504F5FED51C615E74CC6FEE73E +:103BD000536F846F0E39D6A38EFBDE586E95FBE6CD +:103BE000FC17FC1EFC2B8D038D1F39D6675CC11A98 +:103BF00025015FCE648586073D33CBE641C10226B1 +:103C000007BD647BC603D7A339D69EC1012607BD75 +:103C10006457C601D7A339D69D27020CA339D69D78 +:103C200026080FA3BD645CBD64473939D622271F1F +:103C3000D624C5072619C5082616D6882611CC0411 +:103C400090DDCA8E006C108E005ECE0058201439B4 +:103C5000D68926FBCC04C0DDCA8E0070108E0062AF +:103C6000CE0059E68426189FC8E63F588EFC716E38 +:103C700095FC77FC80FC8A9EC88D1724026C3F3926 +:103C8000D655C50127F99EC82008D6552AF19EC8E9 +:103C90002000ECA410A384223DA6225F10A30222E0 +:103CA000356CC434709ECACC0C00EB14BD9604BDB8 +:103CB000640B3570DE563344E63F585833C5A622B0 +:103CC000AB4219A722A621A94119A721A6A4A9C4DC +:103CD00019A7A41A01391CFE39FD87FD8BFD8BFD48 +:103CE0008BFD8FFD93FD93FD97FD9BFD9BFD9FFD40 +:103CF0009FFDA3FDA6FDAAFDADFDB1FDB4FDB7FD81 +:103D0000BAFDBFFDBFFDBFFDBFFDC4FDC9FDC9FDBF +:103D1000CEFDD0FDD5FDDBFDDBFDE0FDE4FDE8FDE6 +:103D2000EDFDF0FDF2FDF6FDFBFDFDFE00FE02FEE9 +:103D300007FE0CFE0FFE0FFE0FFE14FE19FE1BFE0B +:103D40001EFE20FE24FE29FE2DFE32FE37FE37FE2B +:103D500037FE37FE3DFE42FE46FE46FE46FE46FE6E +:103D60004CFE52FE54FE54FE54FE59FE5EFE61FEB1 +:103D700063FE67FE6CFE70FE75FE79FE7EFE80FEC1 +:103D800080FE83FE85FE8500C0810100A0050A003B +:103D9000300807003008050420080000300805003E +:103DA000C0040600010100900506000401010401A1 +:103DB000010010060200000010060058040B050068 +:103DC0004610070B0026100705004A10070B0000DD +:103DD00000B008050A00660907050B00D008050AAF +:103DE00000A005030024010101240181010200015A +:103DF000000000A08201003402030400000200025F +:103E000000000052040B050052040B850001010064 +:103E10006407050300680E070A00000001010000A6 +:103E200000240104012401840100C0040604C0042C +:103E3000050000700A0507006C0108810100340AC2 +:103E40000704000A0104006A0806058100661007DD +:103E50000507000000C408050A01440184010001AF +:103E600002000000440101014401810100C0040678 +:103E700004C004060000440A050144018101000059 +:103E8000020001000004000178D6DC6078D6DD7005 +:103E900078D6DE8078D6DF90FF8E0768C637D7C821 +:103EA000BDFF4A3088200AC826F6398E0E48C60360 +:103EB000D7C8BDFF6A3088300AC826F6398E0ED8BA +:103EC000C604D7C8BDFF4A3088200AC826F6391074 +:103ED0008E03E0C618D7A4398DF5BDFF3D8D4A8D00 +:103EE000398DB68DC68DD6D622261ED624C520265F +:103EF000188EFE88E6805C27105A50C010E7A0ECB0 +:103F000081EDA1E680E7A020EB30A4CCF8F88C048A +:103F1000402406ED81ED8120F5398E04908D2BD65D +:103F20008926053088302022398E04E08D1C3088A7 +:103F3000208D178E05208D12308820200D8E0708C9 +:103F40008D083088208D03308820E610271B2B1920 +:103F5000D6A427150AA4E61850C010E7A0A601E6CB +:103F600084EDA1EC159390E7A039E6102744D6A480 +:103F7000C104253ED6A4C004D7A4E61850C010E75B +:103F8000A4E728C010E724E72CA604E684ED21A6C8 +:103F900005E601ED25A606E602ED29A607E603EDF6 +:103FA0002DEC159390E723E727CB10E72BE72F3174 +:103FB000A81039E61027192B17D6A427130AA4E650 +:103FC0001850C010E7A0A601E684EDA1E616E7A010 +:103FD00039FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +:103FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:103FF000FFFFFFFFFFFFFFFF910D9FB8CD014000C6 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_10_m6.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_10_m6.hex new file mode 100644 index 00000000..1f07a858 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_10_m6.hex @@ -0,0 +1,513 @@ +:1000000000000080C0A0600F8F8F0F888083048065 +:1000100000000000000000F0F0F0F070F0F0108040 +:10002000000000000080803F3F3F3F21030F10028F +:1000300000000000000000C0C0C0C0C0C0C0400040 +:1000400000000000000000FFFFFFFF870F3F410896 +:1000500000000000000000000000000000000000A0 +:1000600000000000000000FCFCFCFC1C3CFC042028 +:100070000000000000000000000000000000000080 +:1000800000000000000000F0F0F0F070F0F01080D0 +:100090000000000000000000000000000000000060 +:1000A00000000000000000C0C0C0C0C0C0C04000D0 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000001818080888C0F0701080001391F0000E1 +:10011000C07070107070F0E0C00070F8E040000037 +:100120000705010021313F1F07200107E77D00007F +:1001300000C0C040C0C0C0800000C0E0800000001F +:100140001C17070187C7FF7E1C80071F9EF4000055 +:10015000000000000000000000000080000000001F +:10016000705C1C041C1CFCF870001C7E78D0000025 +:10017000000000000000000000000000000000007F +:10018000C07070107070F0E0C00070F8E0400000C7 +:10019000000000000000000000000000000000005F +:1001A00000C0C040C0C0C0800000C0E080000000AF +:1001B000000000000000000000000000000000003F +:1001C00000000000000000000000008000000000AF +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:100200000E1D393F1E0F0F1F1F1F1F1F0F00010064 +:100210000C1810310307C7E3F5F2E3814006209C78 +:1002200003070E0F07030307070707070300000074 +:10023000834644CC80C1F1F8FDFCF8E0D0014827AA +:1002400000010303010000010101010100000000A1 +:10025000E0D191F3E0F0FCFEFFFFFEF8F40012099C +:10026000000000000000000000000000000000008E +:100270003874E4FC783C3F7F7F7F7F7E3D00040242 +:10028000000000000000000000000000000000006E +:100290000E1D393F1E0F0F1F1F1F1F1F0F000100D4 +:1002A000000000000000000000000000000000004E +:1002B00003070E0F070303070707070703000000E4 +:1002C000000000000000000000000000000000002E +:1002D0000001030301000001010101010000000011 +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000010000000100261F06000000A0 +:100310000300000000700F80FCE83001FA5C000070 +:1003200000000000000000000000090701000000BC +:1003300000000000401C03207F3A8CC0BE17000064 +:1003400000000000000000000000020100000000AA +:1003500000000000100700081F0E63F06F0500008A +:10036000000000000000000000000000000000008D +:1003700000000000040100020703987C1B0100003C +:10038000000000000000000000000000000000006D +:1003900000000000010000000100261F0600000010 +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000907010000002C +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000201000000001A +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:100400000000000000000000000080C080808080AC +:1004100000000000000000000000000000000000DC +:10042000000000000000000060B0E0E0E06060F864 +:1004300000000000000000000000000000000000BC +:10044000000000000000186CF8F8F8D8D87E3EE6EE +:10045000000000000000000000000000000080809C +:1004600000000000061B7E7E7E76765FCFB93F7E61 +:10047000000000000000000000000080A0A070202C +:10048000000001061F1F1F1DDDD7F3EECF9FDFFF0A +:10049000000080C08080808080E0E868DC8800C048 +:1004A00000092727272737757CFBF36733BFC1393E +:1004B000E0B0E0E0E06060F8FA9AFFEAC4F020887B +:1004C0000009272727877765DCF36723233F296304 +:1004D000E0B0E0E0E06078FAFA9FEAE4C0F020885B +:1004E000000927272727B7757CFBF367333F28626E +:1004F000E0B0E0E0E06060F8FA9AFFEAC4FA447025 +:10050000000927272727B7757CFBF367337F28620D +:10051000E0B8E6ECEC7870F0F090F0E0C0FA4470EF +:10052000000927272727B7757CFBF367337F2963EB +:10053000E0B0E0E0E06C7FF4F890F0E0C0F02088FC +:10054000000927272727B7757CFBF36733BFC1391D +:10055000E0B0E0E0E06060F8FA9AFFEAC4F02088DA +:100560000001070707477775DCF3671B031F0C269D +:1005700060B0E0E0E0607CFAFA97E2E0F0F0A0889A +:1005800000061B1C1A38988AB36CB8C41C1B1A329C +:1005900000F0B06020A0807E7A3675B240B070481E +:1005A0000001050006040061400040010100001840 +:1005B000602040A0E00000C8800162008000006070 +:1005C00000000204000010000000200000000808E5 +:1005D0000010200000200000444200A04000003035 +:1005E0000001070707077705BCFBF870383F1C00C0 +:1005F00060B0E6ECEC7870F0F090100010FC1000A9 +:100600001428212323239B1D3EF3ECF74D272001C3 +:100610000000F0F0F0F8F8E0E095CBFA00C8300008 +:100620001420212323235B8D9EBBB4FF7D7F5D407F +:100630000000F0F0F0F8F8E0E896CAFA0008904000 +:100640001428212323234B859A9DCB675F4E8B80F3 +:100650000000F0F0F0F8F8E0E89448F80004C83F33 +:100660001420212343839BB9B6FB7C7B574F4D401D +:100670000000F0F0F0F8F8E6EA92C8F800089040C0 +:10068000142041839BBBB3F97E7B574F4F4F4D40A6 +:100690000000F0F0F0FEFAE2E890C8F800089040A0 +:1006A000142041839BBBB3F97E7B574F4D40000024 +:1006B0000000F0F0F0FEFAE2E89000089040000040 +:1006C000142041839BBBB3F97E7B554000000000A2 +:1006D0000000F0F0F0FEFAE2E89890400000000020 +:1006E000305C4A393C1F0F07020100000000000087 +:1006F0000000142CA09CAFD3C8E4F27E3B19060086 +:10070000040901031F031B9D7EF3EDF70D0706048B +:100710000000F8F0F0F8F8F0E09DDBFAE018F020C7 +:10072000041905031F071B9D7EF3EDF70D071E053A +:100730000020F8F0F0F8F8F0EA9DDBFEE818F02869 +:100740000602120C010806E2090C12023209011A13 +:1007500000D00008180000A81422AC0014C400D473 +:1007600008040810021160008010A4CC00140200DC +:100770000000D00040300000A05101A80028200057 +:10078000304E693C3E1F0F070201000000000000D0 +:10079000000014AC609CBFCBE4F2FA7E391D060069 +:1007A000286E7D3E3F1F0F07020100000000000081 +:1007B000000014AC609CBFEBF4FAFE7F3C1F060007 +:1007C00028767F3F3F1F0F07020100000000000056 +:1007D000000014ACE09CBFFBFCFEFE7D3E1F06004B +:1007E00038767F3F3F1F0F07020100000000000026 +:1007F000000014ACE09CBFFBFCFEFE7D3F1F06002A +:10080000141010162E2E5090890603875F3F084063 +:1008100020000060707000048468F0F8F0C0800070 +:10082000145090060E8E9091494623273F9F4020FA +:1008300020080860707000848468F0F8F2C010101E +:100840000102020B0B0B00001408070F1F3F0201EF +:1008500008080808848402012161A182F28A100834 +:100860000102020B0B0B00001408070F1F3F0404CA +:1008700008080808848402012141C2C6E2920408E3 +:10088000141010162E4E90900906875F3F184000F6 +:1008900020000060707004048870F8F0C0800000D0 +:1008A000141010364E8E90100986473F3F181040A6 +:1008B00020000060707404048870F8F0C01080108C +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:100940000102020B0B0B00001428270F1F3C0301B0 +:1009500008080808848402012050918AF642101089 +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000000000C0E0F8F9E09ECEEFFFFFFBFF22 +:100A1000000000001860900000C0E0E0F0F0E0F896 +:100A2000000040201413090B0D11172F2B4C5F2FC2 +:100A300002050D106FDFBFCFE7FAFBF7FFEF5F7F17 +:100A400000C0E04103C3F3F1E0000C0E87C6C0F024 +:100A500000000000C0C0E0F0F0530100000E1F1FB6 +:100A600000000000010373793000041E3E3E1C00AC +:100A700000030F8FC7C0C08131797C38020307079C +:100A800000C0CC060030188900301808C06C26065B +:100A900000000000C060200000180C84C4000E227A +:100AA000000000060E04001C0C0C006070331341A3 +:100AB0000081337220008E066561400C0D08808C29 +:100AC000002000000000008004042001000800A0B5 +:100AD0000000000080000000020020000040000034 +:100AE0000000000000000000020000000002000002 +:100AF00000000800004009400004011200400440CA +:100B0000FFFBF3F9FDFFFFFDFDFFFF9E33041860BF +:100B1000FEF1F6F0E068E0C080E03010E01804007C +:100B2000BD985E43292717171329242A518EB0C078 +:100B3000DFDFEF6BFD7F7FBFDFE7E83D8B601C02EF +:100B4000F0C10381E0C183070703207CFFFE3C0066 +:100B50003E1C800046EEE6E0C010707020000000F1 +:100B600001183C3C1C084020070F07070300000049 +:100B7000E7E342074FE7E3081CC8F0F9F9F100008A +:100B8000CBC4FB5B5D357493E7FFFB76C7030000C6 +:100B90009CAC24D880DCAC2498F0D030000000005D +:100BA0001800024210181800011300000100000094 +:100BB000C48E46301898C3031C8682301B01040083 +:100BC000040020004005000090000000000000002C +:100BD000100080000008000000000000000000007D +:100BE00001000000012000000000000000000000E3 +:100BF0001006000011000043001004000000000077 +:100C00000000C0A0F0E8584323E303E2E0E001E085 +:100C100000000000000000FCFCFCFC1C3CFC04206C +:100C20000000C0A0F0E9514131F100F0E0F010E027 +:100C30000000000000FEFEFEFE0E1E7E9210382E0A +:100C40000000C0A0F0E9514130F100F0E0F010E008 +:100C50000000000000DCDC2AF40C1E7E9210382E0E +:100C60000000C0A0F0E9504130F100F0E0F010E0E9 +:100C70000000000000C4DC2AF40C1E7E9210382E06 +:100C80000000C0A0F0E9504130F100F0E0F010E0C9 +:100C9000000000000044942AB00C1E7E9210382EF2 +:100CA0000000C0A0F0E8504030F000F0E0F010E0AC +:100CB00000000000000000000000085C8200102C12 +:100CC0000000C0A0F0E85A4233F101F1A1F8FFFFA3 +:100CD00000187CFCFCF870F0F8F8F8F8F0E0E0FEA2 +:100CE00000000070787C7C3D3C3E7F7E7E3E137F22 +:100CF000306340C70F1C1F0C97CB0C07013FFFFF51 +:100D0000C0A0E02022E30381000280C0CE070000E3 +:100D1000705C1C041C1CFCF870001C7E78D0000069 +:100D2000D0A0E12121E01C80020280C0CE0700009B +:100D30000E020E8EFEFC380000103C7E78D00000C3 +:100D4000D0A0E12121E01C80020280C0CE0700007B +:100D50000E020E82BCBC380000103C7E78D0000031 +:100D6000D0A0E12020E01C80020280C0CE0700005D +:100D70000E000A82ACAC100000103C7E78D000005F +:100D8000D0A0E12020E01C80020280C0CE0700003D +:100D90000C0008820CA0100000103C7E78D00000EF +:100DA000D0A0E02020E01C80020280C0CE0700001E +:100DB0000C0008000000000000103C7E78D000000D +:100DC000FFFCC02020E31C81020280C0CE0700008F +:100DD000E00000008000000000103C7E78D00000A1 +:100DE00007000000040100020703987C1B010000BB +:100DF000FF7F070101C03E03F0A0C307EB700000B6 +:100E00000000C0A0F0E85A4233F101F1E1F810EC23 +:100E100000187CFCFCF870F0F8F8F8F8F0E000003E +:100E200000000070787C7C3D3C3E7F7E7E3E1C0056 +:100E3000306340C70F1C1F0C97CB0C07031980733E +:100E40000000C0A0F3EF5F4733F307F7EFEF0FF7B2 +:100E5000000000C0E0E0E0C08080C0C0C0C08000F2 +:100E6000000000000707070703030B17070703012C +:100E7000306340C70F9CDFCCD7CBCCE7E3E9E0F38E +:100E80003874E4FC783C3F7F7F7F7F7E3D00040226 +:100E9000306340C70F1C1F8CD7CB8C07031980739E +:100EA0000000000000000F070F1F3F3F3F1F0F0013 +:100EB000306340C70F1C1F8CDFDFFFFBF9EE807330 +:100EC000000000000000000007011C021D3F3F1F42 +:100ED000306340C70F1C1F0C178B8C07031980F35E +:100EE0000000000000000000070F014C221D3E7EA4 +:100EF000306340C70F1C1F0C178B8C0703198073BE +:100F00000000C0A0F1E95B4233F301F3E3EF09F61F +:100F1000000030F8F8F8F0E0E0F0F0F0F0E0C000A9 +:100F2000000000001C1E1F1F2F2E4F1F1F1F0F072A +:100F3000306340C70F1C1F0C178B8C8783998073FD +:100F4000DCA0E02020E31C81020280C0CE0700006C +:100F5000000000008000000000103C7E78D00000FF +:100F600000000000040100020703987C1B01000040 +:100F70000F01000101C03E03F0A0C307EB700000A9 +:100F8000000000000018376F5F3F3F3F1D00040264 +:100F9000306340FF77E4FBE4D7CB8C070319807301 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000F070000040100020703987C1B010000CA +:100FD000CFE1F87D5DEC0603F0A0C307EB700000E5 +:100FE0007C7C387C7E777C320703987C1B01000078 +:100FF0000F01000101C03E03F0A0C307EB70000029 +:10100000033F07010001032E3F3930180F1F3B78C3 +:1010100000DCFEFFFFDFB785C1E2FC79FFF6303C64 +:10102000033F070100032F2E1B393058FF370D03F4 +:1010300000DCFEFFFFDFD785C1E2FC79FFF670BC64 +:10104000033F070100032F2E1B3930181F173D7F68 +:1010500000DCFEFFFFDFD785C1E2FC79F7FE788078 +:10106000612153BFFFBF3FBF808040E13E2778FD35 +:10107000C0004840A2B4BC7FEFF79E9C18E0F0F897 +:10108000612153BFFFBF3FBF808040E13E7BFC003A +:10109000C0004840A2B4BC7FEFF79E9C18E078FCEB +:1010A000612153BFFFBF3FBF808040E13E273CFE30 +:1010B000C0004840A2B4BC7FEFF79E9C20F8FC0023 +:1010C00061A1F37F7F7F7F3F804040A1FEF37838AE +:1010D000CC0E5F6EAEACBC68E0F0809D1FEE1C18BD +:1010E000614193FFBF3FBFBF8040C0612778FD00D3 +:1010F000C0C8406294BCBF6FF79E9C98E0F0F800B7 +:10110000614193FFBF3FBFBF8040C06127387DE092 +:10111000C0C8406294BCBF6FF79E9C98E0E0F07836 +:1011200000000000000001007F7F000100000000BF +:101130000000007804008E50DC8E0006FC78000071 +:1011400000000913111011130B0501010101010029 +:1011500000001048880888485020000000008000E7 +:101160000000001E01006314776300413F1E000071 +:101170000000000000008000FCFE00800000000075 +:1011800000000101010101010913111011130B04E9 +:101190000000000000000000104888088848D020A7 +:1011A0000010181C0E0F071408011B04100C00007F +:1011B000000000601090601070D008088870000077 +:1011C0002030381C6E26A040000000006010403027 +:1011D0003008483000000001071C00000202221CF9 +:1011E00021307B3CCE0600004040980018000300F0 +:1011F0008080000002020C01071C010101460080F2 +:101200002032712CCE0600004040980018000400E7 +:101210008080040C000004010710310301C0000CA1 +:101220000012302C8A000000000088081000040022 +:101230008080000400000401050030010040080423 +:1012400000000F1F074321031E0812031F070000A1 +:1012500000C0CCEEFEFFE7CF41F0B000A0B0200808 +:10126000000000000307F7FFDBDFDFFFFF73000074 +:1012700000000000F0F89880E0E08098F8F00000AE +:101280000000000000000F1F1D1D1D1F0F070000A4 +:101290000000000000003CFFF7F7F7FFBE1C000055 +:1012A000000000000307F7FFDBDFDFFFFF73000034 +:1012B00000000000F0F89898F8F89898F8F000000E +:1012C000000000000307F7FFDFDFDFFFFF73000010 +:1012D00000000000F0F8B8B8F8F080B8F8F00000AE +:1012E000000000000303F3FBDBDBDFFFFB7100000A +:1012F0000000000080C0E0F0B89CFCFCFC80000016 +:10130000001F3F7F0F633F103909061F03001000C5 +:101310004090DCFCDEDE8A80C0E0000400080400AF +:1013200000000F3F7F07311F10281C041F0700001B +:1013300000C0CCEEFEFFE7CF40B0F820A0B0200800 +:10134000000F3F7F07315F08180C060701000000FF +:1013500000DCFEFEFFEFDF44A0B030A0E830200844 +:10136000000000000303F0F8DBDFDFFFFF73000085 +:1013700000000000F8F83838F8F880F8F8F80000B5 +:10138000000000000307F7F8DBDFDFFFFF7300005A +:1013900000000000F0F83838F8F8B8F8F8F000006D +:1013A000000000000707F7FFDBDBD9F9F870000049 +:1013B00000000000F8F8F88080C0C0E0E0E0000025 +:1013C0000000000000CFFF7D7D7DFFEFC700000023 +:1013D000000000707878F8F0F0F0F0F07000000095 +:1013E00000000000003C7F7777777F3E1C00000004 +:1013F0000000000000F3FFDFDFDFFFFB71000000F3 +:101400000060C4E2D2F078381D0C05030506030025 +:1014100000000000008000E0E0000080E8FC0E0614 +:1014200000000000003C7FFF8080E7C280807F00DA +:10143000000000001038FEFF000039100000FF001F +:1014400001080214204040404040202010080403BE +:10145000800000103018041C1C18003060000000D0 +:101460000000000F7FFF7F379B5D261B04030000F9 +:10147000000000E0F8FCFEFFFFFF1FFEFC3CF80050 +:10148000077F7F3F3FFFFEFC707272737078FF7FB3 +:10149000F0F0FCFCFEFE1E080060A0200C1EEE0218 +:1014A000502F2F2F2F47B7B3FFF4B3CBA38F80005C +:1014B00044DAFDF7E6F6DC38F01090F8F0C41820B6 +:1014C000502F2F2F47B7B7FBF7B0CBA3878F4080A4 +:1014D00040D4FAF5E7F6DE3CF01090F8F0C000805A +:1014E000502F2F47B7B7FFF3B7C8A38F9F3F882070 +:1014F00040D0F4FAEDF7D63EFC1090F8F0C0008032 +:10150000100F0F0F0737377B77304B33070F000073 +:1015100000D0F0F0E4F6FEFCF01090F8F0C000000F +:101520000000080F0717173B37370833070F000075 +:10153000000000D0E0F0FEFFF6F0109CF8E00000A4 +:101540000000000000080707031F1737300B3F009B +:10155000000000000000D8F0F0FEFBF21C9CF80038 +:10156000000000000000000807070F0F1737700386 +:101570000000000000000000D0F0F8F8FEFC1C8025 +:1015800000000000000000000000000000080777D5 +:101590000000000000000000000000000000D8E68D +:1015A000305C4E3331190F070201000000000000CB +:1015B00000000404809CA3F058CCC6663B190600CA +:1015C00028647A393C1F0F07020100000000000068 +:1015D00000000404809CA3D0C8E4F27D3C1F0600F8 +:1015E000387E793C3E1F0F0702010000000000001A +:1015F00000000484C09C93C8E4F2FA7F3F1F0600F9 +:10160000387E7D3E3F1F0F070201000000000000F2 +:1016100000000484C09C93E8F4FAFE7F3F1F06009C +:10162000387E7F3F3F1F0F070201000000000000CF +:1016300000000484C09CB3F8FCFEFE7F3F1F060040 +:101640000000000000000020EFFF90978FA0AF9FE8 +:1016500000000000000000088A8A8A8A8A82BEFE92 +:101660000000000000000010170F081317140F07E8 +:101670000000000000000048DBFF5EC28202C2C022 +:101680000000000000000010272F2A2A2A281F0F20 +:1016900000000000000000409CFE8A8ABABABE7CAE +:1016A0000000000000000041DFFFE1EF5F415FFF4D +:1016B00000000000000000007CFC505050505030F2 +:1016C00000000000000000A2AEBFB5F575E5AE7EDB +:1016D0000000000000000010F6F455555757D67E64 +:1016E00000000000000000222E2E2E2E1E222D1C97 +:1016F0000000000000000028AAAFABA9AA8CF9F7EF +:101700000000000000000008E3F755555514FFE7FE +:101710000000000000000020CEFF45455D59FF9EFF +:101720000000000000000080A1A1A1A1A121E0E033 +:1017300000000000000000823C7D55555545FF7DAE +:1017400000000000000000429EFE8A8A8A82FFBCE0 +:101750000000000000000020A8A8A8A8A888FBF7A7 +:101760000000000000000000000000000002020174 +:1017700000000000000000222A1E0E070913D6DC1C +:101780000000000000000004B9FBF2D65757553C9A +:1017900000000000000000204EDF85C5DDD97FDE9F +:1017A0000000000000000001C1E0A0A0A021E1C0F5 +:1017B00000000000000000047DFD85BD7D057DFF6B +:1017C00000000000000000047DFD85BE7E067DFC5B +:1017D00000000000000000222D2B2ADADA9A67E3CD +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000204F5F513F4F5555335F +:10180000337078CDCF9787834363276FAF8F4020A6 +:101810000000C0C0C0C0FCF88080C0E4E8C0600028 +:10182000003370F8CFC79787838363676F2F2C20AF +:10183000000000C0C0C0C0FCF880C0E0E0C00020D4 +:10184000337078CDCF9787834363A7EFAF8F402066 +:101850000000C0C0C0C0FCF88080C0E4E8C06000E8 +:10186000136070CDC7E4007C38707079BF9F402052 +:101870000000C0C0C044073C0000C0E4E8C06000F5 +:10188000001360F0CFC7FF77E1E070787F3F1C3036 +:10189000000000C0C0C0C0FC18000020E0C0002054 +:1018A0000910485E2FBF3F1F1F9F7F3F3F17082033 +:1018B000C0001078F0FCFCF8F8F8FCF8F8E08000C4 +:1018C000000910485E2F3FBF1F1F1FBF3F5F2F84BF +:1018D00000C0001078F0F8FCF4F8F8FCF8F8F060BC +:1018E0000910485E2F3F3F4F9F8F0F1F1F2F2480EF +:1018F000C0001078F0F8F8F0F8F0F0F8F8F06008B0 +:10190000136070CDC7E4F8087070397FBF9F402026 +:101910000000C0C0C0C07C0F1880C0E4E8C06000F8 +:10192000001360F0CFC7E77C38087070793F1C3037 +:10193000000000C0C0C0C0FC780F58E0E0C000202C +:10194000136070CDC7E4F80870B0B9FFBF9F4020A6 +:101950000000C0C0C0C07C0F1880C0E4E8C06000B8 +:10196000136070CDC7E77F7F70509078BF9F402095 +:101970000000C0C0C0C0FCF880400024E8C0600087 +:1019800000136070CFC7EF7F3F716130301818309F +:10199000000000C0C0C0C0FCF880C0E060C00020F3 +:1019A000136070CDC7E7FF7F21438741A19340209B +:1019B0000000C0C0C0C0FCF880C0E0E4E8C0600027 +:1019C00000000E6FCF86097FDF8FEE7C0C060300D0 +:1019D000000000103070E0C0F0F84B0C0410B0189C +:1019E0000000000509092D5F9FCFCF8F8F51731E17 +:1019F00000000000808080BBFEF6E2808086DBE095 +:101A000000000000000509397D7F9BCFCF9FF17258 +:101A10000000000000008080809BFEF6808086FB36 +:101A20000000000000000000051D3F5F4F8F9F7207 +:101A30000000000000000000008080BBE68286FB02 +:101A40000000000000000000000004132C50602083 +:101A500000000000000000000000000080A21FE263 +:101A6000000000000000000000F000000000000086 +:101A700000000000000000080F7F080000000000C8 +:101A8000000000000000000000FF00000000000057 +:101A900000000000000000080FFF08000000000028 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000042810088020000000000042 +:101AC000000000000800000000000000000000000E +:101AD0000000008000000004000000000000000082 +:101AE0000000C0F84F435FE1203079BF9F00000045 +:101AF0000000003070D0DCFEFEFFFEC000000000E1 +:101B00000000000000FFC76140319F5F40400000BF +:101B100000003070D0DCFEDEFFFEEC800000000034 +:101B20000000000000071F3F7F7F9F5E60000000F5 +:101B3000003070D0DCFEFEFFFEE0C00000000000C0 +:101B40000040800040201030200880202070693044 +:101B50000000000000003F7E7870380E70E08000CA +:101B60000000008000403020088020207069300094 +:101B700000000000000F1E7870380E70E08000003A +:101B8000000000000102200080800040391C00009D +:101B9000000000003F7E7810080E30E0800000005A +:101BA00000000001022000885020400020000000BA +:101BB0000000003F7E7830180E000000000000009A +:101BC000000000000102200080800040391C00005D +:101BD00000000000387E7F1F0E0830E0800000000B +:101BE0000000008000403020088020207069300014 +:101BF0000000000000081E7F7F3E0870E0800000AB +:101C00000060C4E2D2F078381D0C0503050603001D +:101C100000000000008000E0E0000080E8FC0E060C +:101C200000000000003C7FFF8080E7C280807F00D2 +:101C3000000000001038FEFF000039100000FF0017 +:101C400001080214204040404040202010080403B6 +:101C5000800000103018041C1C18003060000000C8 +:101C60000000000F7FFF7F379B5D261B04030000F1 +:101C7000000000E0F8FCFEFFFFFF1FFEFC3CF80048 +:101C8000077F7F3F3FFFFEFC707272737078FF7FAB +:101C9000F0F0FCFCFEFE1E080060A0200C1EEE0210 +:101CA000502F2F2F2F47B7B3FFF4B3CBA38F800054 +:101CB00044DAFDF7E6F6DC38F01090F8F0C41820AE +:101CC000502F2F2F47B7B7FBF7B0CBA3878F40809C +:101CD00040D4FAF5E7F6DE3CF01090F8F0C0008052 +:101CE000502F2F47B7B7FFF3B7C8A38F9F3F882068 +:101CF00040D0F4FAEDF7D63EFC1090F8F0C000802A +:101D0000100F0F0F0737377B77304B33070F00006B +:101D100000D0F0F0E4F6FEFCF01090F8F0C0000007 +:101D20000000080F0717173B37370833070F00006D +:101D3000000000D0E0F0FEFFF6F0109CF8E000009C +:101D40000000000000080707031F1737300B3F0093 +:101D5000000000000000D8F0F0FEFBF21C9CF80030 +:101D6000000000000000000807070F0F173770037E +:101D70000000000000000000D0F0F8F8FEFC1C801D +:101D800000000000000000000000000000080777CD +:101D90000000000000000000000000000000D8E685 +:101DA000305C4E3331190F070201000000000000C3 +:101DB00000000404809CA3F058CCC6663B190600C2 +:101DC00028647A393C1F0F07020100000000000060 +:101DD00000000404809CA3D0C8E4F27D3C1F0600F0 +:101DE000387E793C3E1F0F07020100000000000012 +:101DF00000000484C09C93C8E4F2FA7F3F1F0600F1 +:101E0000387E7D3E3F1F0F070201000000000000EA +:101E100000000484C09C93E8F4FAFE7F3F1F060094 +:101E2000387E7F3F3F1F0F070201000000000000C7 +:101E300000000484C09CB3F8FCFEFE7F3F1F060038 +:101E40000000000000000020EFFF90978FA0AF9FE0 +:101E500000000000000000088A8A8A8A8A82BEFE8A +:101E60000000000000000010170F081317140F07E0 +:101E70000000000000000048DBFF5EC28202C2C01A +:101E80000000000000000010272F2A2A2A281F0F18 +:101E900000000000000000409CFE8A8ABABABE7CA6 +:101EA0000000000000000041DFFFE1EF5F415FFF45 +:101EB00000000000000000007CFC505050505030EA +:101EC00000000000000000A2AEBFB5F575E5AE7ED3 +:101ED0000000000000000010F6F455555757D67E5C +:101EE00000000000000000222E2E2E2E1E222D1C8F +:101EF0000000000000000028AAAFABA9AA8CF9F7E7 +:101F00000000000000000008E3F755555514FFE7F6 +:101F10000000000000000020CEFF45455D59FF9EF7 +:101F20000000000000000080A1A1A1A1A121E0E02B +:101F300000000000000000823C7D55555545FF7DA6 +:101F400000000000000000429EFE8A8A8A82FFBCD8 +:101F50000000000000000020A8A8A8A8A888FBF79F +:101F6000000000000000000000000000000202016C +:101F700000000000000000222A1E0E070913D6DC14 +:101F80000000000000000004B9FBF2D65757553C92 +:101F900000000000000000204EDF85C5DDD97FDE97 +:101FA0000000000000000001C1E0A0A0A021E1C0ED +:101FB00000000000000000047DFD85BD7D057DFF63 +:101FC00000000000000000047DFD85BE7E067DFC53 +:101FD00000000000000000222D2B2ADADA9A67E3C5 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000204F5F513F4F55553357 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_11_m3.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_11_m3.hex new file mode 100644 index 00000000..d0690684 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_11_m3.hex @@ -0,0 +1,513 @@ +:10000000000100000000000000000080000002006D +:1000100000000004000000000000020000000000DA +:10002000000100000000000000000080000002004D +:1000300000000004000000000000020000000000BA +:10004000000100000000000000000080000002002D +:10005000000002000000000000000001000000009D +:100060000001000000000C12121E0C8000000200B3 +:1000700000000004F0101070C0C07200000000000A +:1000800000010000000000000000008000000200ED +:10009000000000020000000000000000010000005D +:1000A00000010000000000000000008000000200CD +:1000B000000000010000000000000000010000003E +:1000C000000100000000314A4A7B3180000002003C +:1000D000000000010C12904C50D28C000100000076 +:1000E000000100000000314A4A7B3180000002001C +:1000F00000000004181C985858D89A00000000000E +:1001000000000000010101004C00000000000000A0 +:10011000000020C0C0C0ECCACC00000000000000FD +:10012000000000000000014C000000000000000082 +:1001300000000000004CCACC0000000000000000DD +:100140000000000000004C01000000000000000062 +:10015000000000002CCECCE0C00000000000000039 +:10016000000101010101004C000101010101000039 +:10017000E0C0C0C0C0ECCEC0CEECC0C0C0C0E0008B +:10018000000000000000014C01010101000000001E +:100190000000000030ECEECACEC0C0C0C02000009D +:1001A000000000000000004C010000000000000002 +:1001B00000000000000CEECACEC0200000000000CD +:1001C000000000000101004C0000000000000000E1 +:1001D000000020C0C0ECCACEEC000000000000000F +:1001E000000001010101004C0000000000000000BF +:1001F00020C0C0C0C0ECCACE7CE0300000000000CF +:1002000000000000010101004000000000000000AB +:10021000000020C0C0C0E8C00800000000000000CE +:10022000000000000000014000000000000000008D +:10023000000000000048C0080000000000000000AE +:10024000000000000000400100000000000000006D +:100250000000000028C0C8E0C0000000000000004E +:1002600000000000040084FEFE7C0000000000018D +:1002700000000000400042FEFE7C00000000000084 +:100280000000004161707E3E0E0100000000080089 +:1002900000000000001000C0E0FB7E1C0000000019 +:1002A0000000080C0E0F07030000000000200000F3 +:1002B0000000004000808860E0F0783C0000000012 +:1002C00000060C0E0E0707030201014100000000AA +:1002D000000000002000000018C0C0E0E0F078003E +:1002E000010303030303018001030303030301006C +:1002F000C080808080D0800080D080808080C000DE +:1003000000000000000000400100000000000000AC +:1003100000000000000CCA40CAC02000000000001D +:1003200000000000000000000000000000000000CD +:10033000000000001064CA40C0C0C0C040000000FF +:1003400000000000000000010002000800000000A2 +:1003500000000000000020000040000080000000BD +:100360000000000000010000010000080000000083 +:100370000000000010000008008000100080000055 +:10038000000000020001001004000020000008002E +:100390000020040000000200100004400010008053 +:1003A00000000900200020004000001010000100A3 +:1003B00000400004000400020008000030000000BB +:1003C00000010000030030494B7B31800000020037 +:1003D00000000200D85C58D81818D80100000000AE +:1003E000000100000000314A4A7B31800000020019 +:1003F000000000020C1A98584CC69E000100000034 +:100400000000000000000077331199CC00000000CC +:100410000000000000E828082808886C00000000A0 +:10042000000000000000006D6D24B6DB000000003D +:1004300000000000000612B0B894D07E000000005A +:10044000000000000001007732129BEF0000000066 +:100450000000000000C65310480410DE0000000039 +:10046000000000000000006D6D24B6DB00000000FD +:1004700000000000001617B8B694D96E0000000006 +:10048000000000000000006D6D24B6DB00000000DD +:1004900000000000001010B6B6A0D67C00000000DE +:1004A000000000000000006D6D24B6DB00000000BD +:1004B00000000000000E02B8B290D86E00000000EC +:1004C000000000000000006D6D24B6DB000000009D +:1004D00000000000000E02B8B494D96E00000000C5 +:1004E000000000000000006D6D24B6DB000000007D +:1004F00000000000001210B8B898D86C000000008E +:10050000000000000000006D6D24B6DB000000005C +:1005100000000000000616B8B696D96E0000000074 +:10052000000000000000006D6D24B6DB000000003C +:1005300000000000000616B1B694D86E000000005E +:10054000000000000001007732129BEF0000000065 +:100550000000000000C65718461419CE0000000025 +:10056000000000000001007732129BEF0000000045 +:100570000000000000D05012520012DC0000000009 +:10058000000000000001007732129BEF0000000025 +:100590000000000000CE4200421018CE0000000013 +:1005A000000000000001007732129BEF0000000005 +:1005B0000000000000C65A00C69619CE00000000D8 +:1005C000000000000001007732129BEF00000000E5 +:1005D0000000000000D25018C88808CC00000000BD +:1005E0000000000000000036B6B6DB6D0000000021 +:1005F00000000000000809D8D8D868BC000000003E +:10060000000000000001007732129BEF00000000A4 +:100610000000000000C64609E68609CE0000000082 +:10062000000000000000001D4C44663B000000007C +:1006300000000000003808C0C84060B8000000009A +:100640000000000000000077331199EE0000000068 +:100650000000000000101270301090F80000000040 +:100660000000000000000077331199EE0000000048 +:100670000000000000061270381490FE0000000018 +:100680000000000000000077331199EE0000000028 +:100690000000000000021378321099EE0000000004 +:1006A0000000000000000077331199EE0000000008 +:1006B0000000000000101072322092FC00000000C8 +:1006C0000000000000000077331199EE00000000E8 +:1006D00000000000000E0270321098EE00000000D2 +:1006E0000000000000000077331199EE00000000C8 +:1006F0000000000000061A70321299EE000000009F +:100700000000000000000077331199EE00000000A7 +:100710000000000000131078381898EC000000006A +:100720000000000000000077331199EE0000000087 +:100730000000000000061679361699EE0000000051 +:100740000000000000000077331199EE0000000067 +:100750000000000000021271321098EF000000004B +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:100800000B08190C1C3F3F1E24003939F0FFF8700B +:10081000F657FFFEFEFCFC18058080D5CFFFFF3B9E +:10082000000B08190C1C3F3F1E240039390001073A +:1008300000F657FFFEFEFCFC18058080D5CAF0F8D4 +:10084000757AEB0C7F3F1F1FC7E2E1E0711B370792 +:1008500073FF1F733F3FFFFEFFC78707FAFCC0808F +:100860000F1F7E7020C1E3F577733111110F1F0F39 +:10087000869FB7F3FEF9F6F5C2CBFBFFF7F6FF074D +:100880000001031FE0E1E3FF7F7F7C7C4EF8FFFE69 +:1008900070F6DC8F878747E7FFFAFEFF32D75FBF2E +:1008A00070FF6F6F7FDFD343AF6F9F7F4FEDFEF819 +:1008B00070F8F48C8C8CC6EEAFCF87070FFEFAF879 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:100900000005010C1C1E1DCD0078FF3F3F9F5B20A2 +:100910009EE4CEFFFF7FFFFF3E7EFFFAF9FDFDF272 +:10092000000005010C1C1E1DCD0078FF7F1F040078 +:10093000009EE4CEFFFF7FFFFF3E7EFFFEFCF80837 +:1009400000006FFFFE74F81110181F39F07070511D +:100950002060783F6DE6074F635FFEFAE7DFEFF751 +:100960000070787F0E04048CFCFF5D2E6EF6FFF3A2 +:100970009C7E7CFC5E3E1C8C21B63F0E9CFCECDC1D +:1009800069F7FB675F3F7A4672606736FCFE0E01CF +:10099000880F0F0F9CF81808891E2E7FFFFB32006E +:1009A00018171F19303C6D8431383C3A3F1E3E3BCE +:1009B00003EF6F7675BBFF3F31202070FF1E0F0ADB +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E00000000000000000040000000400000000FF +:1009F00000000000000080100000001080000000D7 +:100A00000B08190C1C3F3F1E240039B97E7F3F188C +:100A1000FE57FFFEFEFCFC18058080D5CEFFFF26AA +:100A20000005010C1C1E1DCD0078FF3F9F4F2B10B1 +:100A30009EE4CEFFFF7FFFFF3E7EFFFDFDFCFE3903 +:100A400000004FFFFE74F81D1E1F1F39F07070511B +:100A50002060783F6DE6074F635FFEFAE7DFEFF750 +:100A60000B08190C1C3F3F1E240039B900000081FF +:100A7000FE57FFFEFEFCFC18048080D5C1200081DB +:100A80000001010C1C1E1DCD0078FF3F900000836B +:100A90009EE4CEFFFF7FFFFF3E7EFFFEE100008170 +:100AA000757AEBCC7F5F3F3FDFE2E1E0F17B3F27F0 +:100AB0007FFF1F733F3FFFFEFFC78707FAFCC08021 +:100AC00000BF808080808080808080808080807F68 +:100AD00020BE02112E20301F00020202020200FE80 +:100AE00000BF808080808080808080808080807F48 +:100AF00020BB08080808080C00020202020200FEDF +:100B00000C1F0F060F0F0020300F0FC00F91FB3F7F +:100B100038FCF87C3C38F673E3C7EF7EFFF4FEFC4C +:100B20000C1F0F060F0F0020300F0FC00F133F1FB9 +:100B300038FCF87C3C3CF673E3C7EF7EFFF4FEFC28 +:100B40000C1F0F060F0F0020300F0FC00F917F3FBB +:100B500038FCF87C3C3CF673E3C7EF7EFFF4FEFC08 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80001C3F1F3933135FBC184C4FE3E0624F7FAB +:100B900030F8F098C8C0FC360737C7CF7B7A38FEEC +:100BA0001C3F1FF9F3735F3C984C2F23C0C27B3F5F +:100BB00030F8F09ACFCFFF360536CCC8797B3EDCD3 +:100BC0001C3F1F3953B31F7C78ECEF6320227F3F1B +:100BD00030F8F098CCCEF7370737C7CE7878FE7C60 +:100BE0001C3F1F59B3337F7CF8EC6F2320221F7EFC +:100BF00030F8F09CCECFF7370737C6C87878F83E84 +:100C00000F0F0C18103B2F38240004240014090087 +:100C10008000F07C3CD8E8200000D000204000009C +:100C20000F0F0C18103B2F38200000000020000090 +:100C30008000F07C3CD8E8200000D000002040007C +:100C400000183B313033273C2830200000000800DA +:100C500000E0F0F030C0E020002048080010000064 +:100C60000003276FC0C367667428161008000200CF +:100C700000C0C0C000C01000284000008800100064 +:100C80000003276FC0C367667428141008000001B2 +:100C900000C0C0C000C010002840040400000000D4 +:100CA00000060F0F1C93C6C6CCE43C340C020000B7 +:100CB000000000000080002422000000000020004E +:100CC0000000181E3C3B36A6C6C6E2F71D07000012 +:100CD00000000000200824200200B402049000005C +:100CE0000000181E3C3B36A6C6C6E2F71D070000F2 +:100CF000000000002004222000000000008400000A +:100D000000000000387B7676362603617D3F0000C8 +:100D100000000070044020000000008240E000005D +:100D200000000000020074747677331000331F0C4B +:100D300000000088028040080220A048B0C0800067 +:100D400000000000020074747677331000331F0C2B +:100D500000003080008040000100A048B0C080004A +:100D6000000001000001000434777B380C00030709 +:100D700000800000008000000004F8A830E0C0C03F +:100D800000000204000B000004171B3C3E0F000192 +:100D900000902800242000241CF4DC081830F0F017 +:100DA00000020400000B000004171B3C3E0F000172 +:100DB00000000400000000041CF4DC081830F0F00F +:100DC000000008060703153740351503070608001D +:100DD000000000800090F8F48CF4F8D080B8000097 +:100DE00000000015070315354035150307150000F1 +:100DF0000020A0A8D0D0F8F48CF4F8D0D0A8A0207F +:100E000000000000150715354035150715000000D6 +:100E1000000000E8F8F0F8F48CF4F8F0F8E80000CE +:100E2000000000002E0F0F2B086145331301040052 +:100E3000000000002068F44478F0C0C040000000CA +:100E400000020306165B0F0B086145331E02080003 +:100E50000000A0A040E8F44478F0ECD06830000036 +:100E600000000103071F4F0B0861453316041000F3 +:100E70000000C060E0E8F44478F8FCF4782000005A +:100E800000000008092FBF19040019141C000000FD +:100E9000000000D8F8D0B878F06060F8C06000407A +:100EA0000009051A190F3F39840019141C000100AC +:100EB000000000D8F8D0B878F66874FAD8000000BE +:100EC0000003050F0F0F0F39348019141D010002A4 +:100ED000000000D8E8D0B878FE7A7CF88080000066 +:100EE0000000000123231F0E3E388411180A06005B +:100EF0000000C0204070E040E0F870F000A000006A +:100F0000000004156B371F060E383491180A0700CD +:100F10000000C020406CF06CE4FC78E030802000E1 +:100F200000000C171F3F1F0E0E183421580A07002F +:100F30000000C0204078FC74F8F850E06080400069 +:100F400000000102070307170F1C1B20030100000C +:100F50000000C0A0706070F4781C6C0260408000DB +:100F6000000001120F730F3F1F0C1B001301000044 +:100F70000000C0A4786778FE7C186C006440800094 +:100F80000000011A0F1F1F1F0F040F000B010000AC +:100F90000000C0AC787C7CFC781078006840800051 +:100FA00006564525311DC8F04040404040608F71D5 +:100FB00060604C5C50A60E0800000000001CEE02B1 +:100FC00020E1C9C0C19C8CCE040888914141201009 +:100FD0004080FE868680C0FC8000000404008040C3 +:100FE00040C0FE207E40C0FE408080804080844221 +:100FF000848880A2B69E86C7808040402080804042 +:10100000000603050B03091C3F3F1F0F07010000EB +:1010100000000070D880FCF4FAFAF8FCF8E0000058 +:1010200000030F1D393141007E7438381C0C02005A +:101030000040102814183A7200824C3C78F0C0002E +:1010400000000000000000000000000000000000A0 +:101050000000000000000000000000000000000090 +:101060000000000001040008080004010000000066 +:101070000000000080200010100020800000000010 +:1010800000000001060B0311130E0C040100000008 +:1010900000000080202010D03000200080000000E0 +:1010A00000000001001406232619020201000000BE +:1010B0000000C0109088689080001000C000000000 +:1010C00000000001000C1E1F1E09030301000000A8 +:1010D000000000E0C0E07090E0D0E0E00000000020 +:1010E00000000000000004060408010100000000E8 +:1010F000000000C0C0701000A0C000000000000090 +:101100000410204488962A24201A8F824320100439 +:10111000000000200068101000B8E0A040000000AF +:101120000204080810152528282712130B080402AA +:10113000000080002000800020804080000000002F +:101140000202020204080C0A080808040202020251 +:10115000000000000000000000000000000000008F +:1011600004081110202040404040202010100804A6 +:10117000000080400020201010202000000000000F +:101180000410234488800000000080804020100468 +:101190000000C03008080404040408100000000027 +:1011A0000204090A10102020202010100808040250 +:1011B000000080400020201010202040000000008F +:1011C00002020202020202020202020202020202FF +:1011D00000000000000020400000000000000000AF +:1011E0000408111224204149444022201010080410 +:1011F0000000400000A0101000E000C0000000004F +:101200000410204488962A24201A8F8A5330100410 +:10121000000018200068101000B8E0A02030100076 +:101220000204080810152528282712170E080402A2 +:101230000000B0002000800020804080406020003E +:101240000202020204080C0A08080804020302024F +:10125000000000000000000000000000008000000E +:1012600004081512222241404141212112120C048E +:1012700000008040002020901020A04060A00000CE +:1012800004103B448484030001018282442C18042E +:101290000000C030080804840404C83008080000B6 +:1012A00002040D0A12122120212111110A0A04023E +:1012B00000008040002020901020A050100000006E +:1012C00002020302020202020202020202020302FC +:1012D00000008000000020400000000000008000AE +:1012E000040811122420414944402220141C0804FF +:1012F0000000600000A0101000E000C020200000EE +:101300000000010509060A04000A070A030100009B +:1013100000000080006010100080C080000080008D +:101320000000000000060A050000010001050000A1 +:10133000000000000060145480808008008080005D +:101340000004100120461A4D9604112001050302E5 +:10135000000000509070BE75C2808428E480800038 +:101360000000000000000804020410200004000235 +:1013700000000000000000250200002864000000BA +:10138000000000000000000000000000000000005D +:10139000000000000000002000000000000000002D +:1013A0000000000000000000003F3F3F3F1E000023 +:1013B00000000000FEFEEEFEFEFEFEFEFEFE000051 +:1013C0000000000000000000002A2A20351E000056 +:1013D0000000000080988880F888A8A888FE000097 +:1013E0000000000000000000003F3F3F3F1E0000E3 +:1013F00000000000FEFEEEFEFEFEFEFEFEFE000011 +:101400002C6F47FEFEFBEDEE6E4E2868E0E0603884 +:1014100080C0206078FCFCF8004030160C3870006A +:10142000002C6FC7FEFEFBEDEEEE4E4840202E2F47 +:101430000080C0206078FCFCF8000000000000E0A4 +:101440002C6F47FEFEFBEDEE6E4EE8E8E0E0603804 +:1014500080C0206078FCFCF8000000060C387000AA +:101460001C7F7FFEFEFF03732F5F5F6EE0F060382E +:1014700080C0206078F8C0F8808000060C387000CA +:10148000001C7FFFFEFEE35DBFBF5F4740201E3FA5 +:101490000080C0206078FCFCF8F0F0C0000000E0A4 +:1014A0000E1F7F7F3FFFFFFFEBE1402020180E3F24 +:1014B00020F0FCFCF8FEFFFFD78600000010E0F8EB +:1014C000000E1F7F7F3F3FFFDFEBE1C0206038FC55 +:1014D0000020F0FCFCF8F8FEF7D787020004187E25 +:1014E0000E1F7F7F3F3F3F7FEBF1F0E0E0383CE0B5 +:1014F00020F0FCFCF8F8F8FCD68E0F070718780EE1 +:101500001C7F7FFEFEFFF70F5F5F2E66E0F0603806 +:1015100080C0206078FCF480904030160C38700059 +:10152000001C7FFFFEFEFF7F370F5F5F4E201E3FD8 +:101530000080C0206078FCFCF0809000000000E09B +:101540001C7F7FFEFEFFF70F5FDFEEE6E0F0603806 +:1015500080C0206078FCF480900000060C38700099 +:101560001C7F7FFEFEFF716E5F6FEF67E0F06038FB +:1015700080C0206078FCFCF80080E0C60C38700069 +:10158000001C7F7FFEFEFF712E5E5E2F2F171E3F19 +:101590000080C0206078FCFC78000000800000E043 +:1015A0001C7F7FFEFEFFF16E3F7EF87EFEFC603802 +:1015B00080C0206078FCFCF8002018160C38700001 +:1015C00000000852B0F9FFFFFFFDFB7B0B05020096 +:1015D000000060F0F0F0E0C00000B3F6F6FC3C184C +:1015E000000000070B0F3365E1B3BFFEFE7F7F1ED7 +:1015F00000000000808080A3C30B1FFFFFFB6380FF +:101600000000000000070B274B43E7BFBEFEFF7E34 +:1016100000000000000080808083030BFFFF7B83BD +:1016200000000000000000000513256173FEFF7E2E +:101630000000000000000000008080A31BFF7B83EF +:101640000000000000000000000004132C50602087 +:1016500000000000000000000000000080A21FE267 +:10166000000000000000000000F00000000000008A +:1016700000000000000000000077080000000000EB +:10168000000000000000000000FF0000000000005B +:10169000000000000000000000F70800000000004B +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000802000000000008A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E0000000C0F84F435FE12030F9FFFFC0000069 +:1016F00000000030F0D0D0E6E6FFFAC000000000A5 +:101700000000000000FFC7614031FF7F70600000F3 +:1017100000003070D0D0E6E6FFFCEC800000000056 +:101720000000000000071F3F7F7FFF7E6000000079 +:10173000003070D0D0E6E6FFFAF0C00000000000F4 +:101740000040BE7F7F3F1E3E2E8FE72330584E2045 +:101750000000000080000010100040300000400039 +:10176000000000C0067F3F2E8FE72330584E200038 +:101770000000000000801010004030000040000019 +:101780000000000001022080F0C0807F2E100000C9 +:101790000000000000101000001040004000000099 +:1017A00000000001022080FC7838608030000000DA +:1017B0000000000010104020101000000000000089 +:1017C0000000000001022080F0C0807F2E10000089 +:1017D0000000000000101000001040004000000059 +:1017E000000000C0067F3F2E8FE72330584E2000B8 +:1017F0000000000000801010004030000040000099 +:101800000060C0E0F0F078381D0D05030506030008 +:10181000000000000000408010F0F8F8F0F008062A +:10182000000000040C000080FFFF8080FFFF7F00AD +:101830000000000000000000FFFF0000FFFFFF00AD +:101840000C0F1D192144405140442020120804036C +:1018500010E0B880080048000020880000800000E8 +:1018600000000000000080C8E462391C070300008B +:1018700000000000000000000000E10200C4F800C9 +:101880000676552D351DCEFC7070707070788F7196 +:10189000E0E0CCDCD0A60E0800000000001CEE0248 +:1018A0004020202723448783848483C8F0E0F8F80D +:1018B000460F0F634020C8080000800000071E3854 +:1018C00040202027438487838480CBF0E0807CFC09 +:1018D00040060F674320C80800008000000078FC25 +:1018E000402020478384878384C8F3E080F0F83861 +:1018F0004000066F4F23C00808008000000078FCFD +:10190000000000070304070304004B3000003C7C88 +:10191000000000604020E8C8000080000000787CE3 +:1019200000000000000703000304083300003C7CB3 +:101930000000000000604828C00000800000787CA3 +:10194000000000000000000703040300000B300C3F +:1019500000000000000008604028C800008000402F +:101960000000000000000000000703000700000363 +:10197000000000000000000000604800E00000805F +:101980000000000000000000000000000000000750 +:1019900000000000000000000000000000000060E7 +:1019A0002046493432190E070201000000000000F1 +:1019B000000000804000900824928A6438190600D4 +:1019C00028647C3A3D1F0E07020100000000000061 +:1019D000000000000000802090A8B67D3C1F06009B +:1019E000387E7B3D3E1F0E07020100000000000014 +:1019F000000000804000B018ACB6BA7F3F1F060060 +:101A0000387E7D3E3F1F0E070201000000000000EF +:101A10000000008040009028B4BABE7F3F1F06003F +:101A2000387E7F3F3F1F0E070201000000000000CC +:101A3000000000804000B038BCBEBE7F3F1F0600E3 +:101A400000000000000000FF10101F18083F3010B9 +:101A5000000000000000000C0C0C0C0C0C7C404042 +:101A6000000000000000001F18080F1C181B0804CD +:101A7000000000000000007F642493030383030040 +:101A8000000000000000001E3830333333371008E8 +:101A90000000000000000078E0400C7C444C404016 +:101AA00000000000000000FF20203E3090BEA0A0FB +:101AB00000000000000000F880806060606060202E +:101AC00000000000000000FFD1D1591999195050B1 +:101AD00000000000000000D81B1B9A9A9898B84894 +:101AE000000000000000003B33333333133B311060 +:101AF000000000000000003C3434323133770684AB +:101B000000000000000000080000414141000804FE +:101B1000000000000000002040200404000020100D +:101B200000000000000000808181818181010000AF +:101B30000000000000000082000010101000824130 +:101B40000000000000000042024008080800412098 +:101B50000000000000000020202020202000008441 +:101B60000000000000000000000000000002020170 +:101B700000000000000000222212080408101010CB +:101B800000000000000000040808008040404128D8 +:101B900000000000000000204040040400002090ED +:101BA00000000000000000010100808080010100B1 +:101BB00000000000000000040080808040000082DF +:101BC00000000000000000040080808242020180CA +:101BD0000000000000000022242020484808048261 +:101BE00000000000000000000000000000000000F5 +:101BF00000000000000000204040402040444422FB +:101C00000000000000060F1F2F2721100C0300000A +:101C1000000000000000C0F0FEFEFE7E00847800A0 +:101C2000C6EEFE7E3C1E1F1F1E1E0E070301000097 +:101C30000000000000000000000084C6E3FBFF007D +:101C4000000848202010080F0707030100000000CB +:101C5000000000000000E0E0F0F0F8F8FC7C1C045C +:101C60000000183EBFBFBFBFBF9FDF4F20100F0057 +:101C700000000000C0F8F8F0E0E080000000E000A4 +:101C8000008050A412E02F213F1D1F0F0703010009 +:101C900000000000C05078DC74DE76DE76D8AC70D0 +:101CA00000001426123216212112140C020000002A +:101CB000000000000000000030C000000000000034 +:101CC000000018062A321E212112140C0200000006 +:101CD000000000000000000030C000000000000014 +:101CE00000000C2232121A212112140C02000000F2 +:101CF000000000000000000030C0000000000000F4 +:101D000000000822083010202010100802000000F7 +:101D100000000000000000000000000000000000C3 +:101D2000000000020810102020101008020000001F +:101D30000000000010000000000000000000000093 +:101D400000000002081010202010100802000000FF +:101D50000000000000000000000000040028000057 +:101D600000000002081010202010102802140000AB +:101D70000000000000000000000000000000000063 +:101D80000000000202121F252812160C0601000096 +:101D90000000000020604080F860001060800000BB +:101DA0000000084002128E233812160C2201040093 +:101DB000000020000020A8403040805860C0000093 +:101DC00001080000320A4D2020940244061101004F +:101DD0000040200000204240302022044492400075 +:101DE0000101044111980040000020400A50040005 +:101DF000008406388C00080C0406080C081458806F +:101E0000000002200040002000000000002002002E +:101E10008000008400000000000004100200200088 +:101E20000010180080C00000000080C00000080CF6 +:101E3000004060000000080C00000000084C60003A +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_12_m4.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_12_m4.hex new file mode 100644 index 00000000..aa9a3a68 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_12_m4.hex @@ -0,0 +1,513 @@ +:100000000000000000D050F0F0F0F0F7FFFCFB7FA4 +:100010000000000000000008080808880808E878C8 +:1000200000000000004040C0C0C0C0DEFCF0EFFD9A +:100030000000000000000020202020202020A0E060 +:10004000000000000000000000000078F0C0BEF7D3 +:100050000000000000000080808080808080808020 +:100060000000000000000002020202E2C202FADE0A +:100070000000000000000000000000000000000080 +:100080000000000000000008080808880808E87858 +:100090000000000000000000000000000000000060 +:1000A0000000000000000020202020202020A0E0F0 +:1000B0000000000000000000000000000000000040 +:1000C00000000000000000808080808080808080B0 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:100100007E7E7FFFF77370787EB7C7FEC6E0FFFF85 +:10011000388888E88888081830E088041CBCF8E033 +:10012000F8FAFEFFDECEC0E0F8DF1EF81882FFFF0F +:10013000E02020A020202060C080201070F0E0800F +:10014000E3E8F8FE78380081E37E78E0610BFFFE9B +:10015000808080808080808000008040C0C08000DF +:100160008EA2E2FAE2E202068CF8E281872FFEF824 +:10017000000000000000000000000000000000007F +:10018000388888E88888081830E088041CBCF8E0C3 +:10019000000000000000000000000000000000005F +:1001A000E02020A020202060C080201070F0E0809F +:1001B000000000000000000000000000000000003F +:1001C000808080808080808000008040C0C080006F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:100200001F3F3F3F3F1F1F3F3F3F3F3F1F0F020129 +:1002100033A6E8C2E4E9399D8F8F8FDF9FE9C16083 +:10022000070F0F0F0F07070F0F0F0F0F0703000028 +:10023000CCE9FAF0F9FACEE7E3E3E3F7E7FAB058EE +:10024000010303030301010303030303010000008F +:10025000F3FAFEFCFEFEF3F9F8F8F8FDF9FE2C16B1 +:10026000000000000000000000000000000000008E +:100270007CFEFFFFFF7F7CFEFEFEFEFF7E3F0B0548 +:10028000000000000000000000000000000000006E +:100290001F3F3F3F3F1F1F3F3F3F3F3F1F0F020199 +:1002A000000000000000000000000000000000004E +:1002B000070F0F0F0F07070F0F0F0F0F0703000098 +:1002C000000000000000000000000000000000002E +:1002D00001030303030101030303030301000000FF +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:100300000100000102030303020E1920391F0F032D +:10031000FCFFFFFFFF8FF0780003078605A3FFFFB8 +:100320000000000000000000000306080E070300A4 +:100330007F3F3F7FBFE3FCDE8080412141E8FFFF3C +:1003400000000000000000000000010203010000A6 +:100350001F0F0F1F2F383F3720E0900890FAFF3F04 +:10036000000000000000000000000000000000008D +:10037000070303070B0E0F0D08386482E47E3F0F5E +:10038000000000000000000000000000000000006D +:100390000100000102030303020E1920391F0F039D +:1003A000000000000000000000000000000000004D +:1003B0000000000000000000000306080E07030014 +:1003C000000000000000000000000000000000002D +:1003D0000000000000000000000001020301000016 +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000004000C0E020CC +:1004300000000000000000000000000000000000BC +:100440000000000000000000009000F0F888CCF7E9 +:10045000000000000000000000000000000080809C +:10046000000000000000002480BCFEE2F3BD01009B +:1004700000000000000000000000000020E04050EC +:10048000000000000009606F7F387CEFC000C07F73 +:1004900000000000000000008080C878501408C0F0 +:1004A00000082022383B1F0E1FFBF080F0DFF939D7 +:1004B0008000004000C0E02032DE1C0D06F0D0F8C5 +:1004C00000082022389B0F0E9FF380E0203F377FEB +:1004D0008000004000C0E0323EDC0D0600F0D0F8A5 +:1004E00000082022383B9F0E1FFBF080F03F367E35 +:1004F0008000004000C0E02032DE1C0D06F67C705B +:1005000000082022383B9F0E1FFBF080F07F367ED4 +:10051000800E084E0CC4E83830D0100000F67C7015 +:1005200000082022383B9F0E1FFBF080F07F377FB2 +:100530008000004000C6E43F38D0100000F0D0F842 +:1005400000082022383B9F0E1FFBF080F0DFF939B6 +:100550008000004000C0E02032DE1C0D06F0D0F824 +:1005600000000003195B6F1E9FF387DA021F163E1F +:100570000080804000C0FC323ED4854230F0D0F88C +:10058000000618181C3C888BB36CD8C41C1B123A8C +:1005900000C090C0C08080B6BE75171200B0507801 +:1005A0000001040404040061400060010100081817 +:1005B00060004080C0200080C443020080002070A2 +:1005C00000000204020010000000200000000808E3 +:1005D0000010202020200040444200A04000203095 +:1005E00000000002181B7F7EFFFFFF9FFF3F0000FF +:1005F0000006084E0CDCF83830F0F0F0F0F00000A7 +:100600001A373E3F3C3CFCEEC78F5B387F383F01DA +:1006100000F008B888C808181EEE3604FCF4E8FE9E +:100620001A3F3E3C3C3C7CFEE7C7CBF84768737FF3 +:1006300000F0089888C808181CEE3404FCF4E8FEA2 +:100640001A373E3F3C3C7CFEE7E3F67C7F71F7FFC8 +:1006500000F008B888C808181CECB484FCF8F73F10 +:100660001A3F3E3C7CFCE4C6CFFB476C7970737F3D +:1006700000F0089888C80C1E1CEC3404FCF4E8FE5A +:100680001A3F7EFCE4C4CCFE476F78707170737FB4 +:1006900000F008988CCE0C1C1CEC3404FCF4E8FE32 +:1006A0001A3F7EFCE4C4CCFE476F7870737F000075 +:1006B00000F008988CCE0C1C1CECFCF4E8FE00004A +:1006C0001A3F7EFCE4C4CCFE476F7B7F0000000035 +:1006D00000F008988CCE0C1C1CE4E8FE0000000022 +:1006E0002866793432190E0703010000000000006B +:1006F000000018B87860DC0B24928A653C1F060065 +:100700000A171F1F1C1C7CFFF78F5B393F1A1D1F28 +:1007100000F008F888C8F8181EEE3614FCF4D0FC77 +:100720000A1F1F1F1C1E7DFFF7AF5B393F1A1D1FDD +:1007300000F028F8A8C8F8585EEE7656FCF4D0FC15 +:100740000A061A1C021964E2815CB6CC321C031A38 +:1007500000D0D00848300008B47325A814EC20D489 +:100760000C040810031162008850A4CE001502008A +:100770000000D000503000A0A05189A8002820001F +:1007800028747C3A3D1F0E070301000000000000A2 +:10079000000018383860CC2390A8B67D3E1F0600B4 +:1007A00038767B3D3E1F0E0703010000000000006D +:1007B000000018B8F860DC1BACB6BA7D3F1F06001D +:1007C000387E7D3E3F1F0E07030100000000000041 +:1007D000000018B87860DC2BB4BABE7F3F1F06005B +:1007E000387E7F3F3F1F0E0703010000000000001E +:1007F000000018B8F860DC3BBCBEBE7F3F1F06009F +:100800001411131933335FBFFF7F7DFB672F0E7FFA +:1008100070F0F090C8C8FCFAFEFFFFFEFCF8E0FCA8 +:100820001471F37973F3BFBF7F5F3D3BA7EF703067 +:1008300070FCFE9FCFCEFEF8FCFCF8F8FBFE1C1807 +:10084000070F0F040E0E1F1F1F0F0F170F0F0E7F26 +:10085000E8F8F8F87C7CFEFFDFFFFFFEFEFE70F894 +:10086000070F0F040E0E1F1F1F0F0F170FCF3C0C8B +:10087000E8F8F8F87C7CFEFFDFFDFEFEFEFE3CF8AB +:10088000141113193353BFFF7F7FFB672F1E7F00A7 +:1008900070F0F090989CFAFEFFFFFEFCF8E0FC0080 +:1008A0001411133959B9FF7F7FFF7B272F1F1E704B +:1008B00070F0F090CCCAFEFFFFFEFCF8F8F0F01CE0 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:10094000070F0F040E0E1F1F1F6F6F170F0F071FCC +:10095000E8F8F8F87C7CFEFFDFBFFFFEEEFEF070EB +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A0000008000400020190C7CFF713018082C0475 +:100A10000000000808903020602000000008101A34 +:100A200000006030191C0A0F0F17102E3C5F763241 +:100A300002070C1FFCF8F8FCBE8F0F0CD0D0F0F8AA +:100A40000000B0E70A2A1615E3C11818914F0610E6 +:100A5000000000004020000082D474031C3A317072 +:100A60000000000001324A4379300C3260626E3C73 +:100A7000000408D81F2E21C28A47C5B873040CCCC5 +:100A800000008C088020281A83202819C188680655 +:100A900000000000C08060000018100804C0084476 +:100AA00000000004080C4018101C004040523203A3 +:100AB000008112436000020A0CA1C00415180090C6 +:100AC0000090404C0020260004002043401000C04D +:100AD00000000000C81000244200080A02409202F0 +:100AE00000000004420010200002004044001010EA +:100AF00000019900200289080000003202000CC1A8 +:100B000004041C0E1E67820282C4E9EEB71CF8E0E2 +:100B100038131E1838B87050B09000C8F818040088 +:100B2000A3E7777F2F35151C1F3D2F2E73DEF0C0F6 +:100B300030B8FCFE82C1C0783E1FDFFFFB7C1E0385 +:100B400010E408480621428C0C0750C281837E00C5 +:100B500060BA1C002208062040884850600000004F +:100B600003332120341901402C0808040603000037 +:100B700004A3C608880C07D3000400000AFB710018 +:100B80000CC7E36B7E3647F3E6DC9FF6C603000036 +:100B900098B43C584058BC3C18E0F03000000000CD +:100BA000003104460031190002120100000000006B +:100BB0000000C620201802C31098862032030400CB +:100BC000004400010048010080860030000400005D +:100BD000220290000A0090042020900040000000B3 +:100BE0004911001000311402000805000000000047 +:100BF00010220000031000420220000082190000B1 +:100C00000000004000B454FCFCFCFCFDFFFFFE1F94 +:100C10000000000000000002020202E2C202FADE4E +:100C20000000004000B65EFEFEFEFFFFFFEFEF0F8C +:100C3000000000000001010101F1E1816DEFC7D169 +:100C40000000004000B65EFEFFFEFFFFFFEFEF0F6B +:100C500000000000002323D50BF3E1816DEFC7D125 +:100C60000000004000B65FFEFFFEFFFFFFEFEF0F4A +:100C700000000000003B23D50BF3E1816DEFC7D1ED +:100C80000000004000B65FFEFFFEFFFFFFEFEF0F2A +:100C90000000000000BB6BD54FF3E1816DEFC7D1C1 +:100CA0000000004000B75FFFFFFFFFFFFFEFEF0F07 +:100CB0000000000000FFFFFFFFFFF7A37DFFEFD361 +:100CC0000000004101B554FDFCF8FBFF7F07000068 +:100CD0000038FCFCFCFC7870F8F8F8F8F8F0180123 +:100CE00000000171FBFDFC7E7B7DFEFEFE7F3C80F3 +:100CF000C898A00890A7E7773F3FBFFF7EC00000DD +:100D00001F1FDFFFFDDC1C1E1FED713F31F8FFFFD1 +:100D10008EA2E2FAE2E202068CF8E281872FFEF868 +:100D20000F1FDEFEFEDF031F1DEC713F31F8FFFFDA +:100D3000F1FDF1710103C6FC78E8C281872FFEF84E +:100D40000F1FDEFEFEDF031F1DEC713F31F8FFFFBA +:100D5000F1FDF17D4343C6FC78E8C281872FFEF8A0 +:100D60000F1FDEFFFFDF031F1DEC713F31F8FFFF98 +:100D7000F1FFF57D5353EEFC78E8C281872FFEF832 +:100D80000F1FDEFFFFDF031F1DEC713F31F8FFFF78 +:100D9000F3FFF77DF35FEEFC78E8C281872FFEF862 +:100DA0000F1FDFFFFFDF031F1DEC713F31F8FFFF57 +:100DB000F3FFF77FFFFFFEFC78E8C281872FFEF884 +:100DC00000033FFFFFDC031E1DEC713F31F8FFFF06 +:100DD0001CF0008040C0C0C000E8C281872FFEF830 +:100DE000F81F03070B0E0F0D08386482E47E3F0FD7 +:100DF0000080F8FFFF3FC0E0000F1C18148FFFFFBA +:100E00000000004101B554FDFCF8FBFFFFE3E303E4 +:100E10000038FCFCFCFC7870F8F8F8F8F8F0E0001A +:100E200000000171FBFCFC7E7B7DFEFEFE7F3F1F10 +:100E3000C898A00890A7E7773F3FBFFF7FA707802C +:100E40000000004107B757FFFFFBFFFFFFFFFF0751 +:100E5000000000C0E0E0E0E0C080C0C0C0C0C080D2 +:100E6000000001010F0F0F0F1717172F3F1F0F0360 +:100E7000C898A00890A7E7F7FFBFFFFFFFF7E7C0FC +:100E80007CFEFFFFFF7F7CFEFEFEFEFF7E3F0B052C +:100E9000CC98A00890A7E7773F3F3F7F7FA70780C8 +:100EA00000000101030F10285E7F7F7F7F3F1F0F2F +:100EB000CC98A00890A7E7773FFFFFFFFFFFEF80E8 +:100EC0000000010103001E21401CA2FDFEFF7F3F28 +:100ED000C898A00890A7E7F7FF7F3F7FFFA787800C +:100EE0000000010103000E1120409CB2D9FEFFFF5B +:100EF000C898A00890A7E7F7FF7F3F7F7FA70780EC +:100F00000000004103B755FDFCF9FDFFFFF3F101BF +:100F1000000070F8F8F8F8F0E0F0F0F0F0F0E0C061 +:100F2000000001013F3E3F3F5F9FBFFF7F3F1F0F1C +:100F3000C898A00890A7E7773F3F3FFFFFA78780AB +:100F4000031FDFFFFFDC031E1DEC713F31F8FFFFC5 +:100F50008000008040C0C0C000E8C281872FFEF83A +:100F6000070303070B0E0F0D08386482E47E3F0F62 +:100F7000F0FEFFFFFF3FC0E0000F1C18148FFFFFC3 +:100F8000000001011F234F9FBFFF7F7F3E1F0B0506 +:100F9000CC98A07CFCFFFFFFFFBFBF7F7FA707802F +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC0000F0703070B0E0F0D08386482E47E3F0FF6 +:100FD000F0FEFFFFFF7FF8E0000F1C18148FFFFFEB +:100FE000FFFF7FFFFFFEFF7D38B86482E47E3F0F86 +:100FF000F0FEFFFFFF3FC0E0000F1C18148FFFFF43 +:10100000007B07010001032F2F012018173B3FF839 +:1010100000008080E0E0F08501028519DFBEB83E67 +:10102000007B070100032F2E020120F8F73B0F037E +:1010300000008080E0E0D00501028519DFBEF8BE27 +:10104000007B070100032F2E02012018173B3FFFF2 +:1010500000008080E0E0D00501028519DFBEF88045 +:10106000412060D2D2800000BF3FFFBF3F2040013F +:101070000000F8FC7E7C60C0A394F9FAF8008000C0 +:10108000412060D2D2800000BF3FFFBF3F40000040 +:101090000000F8FC7E7C60C0A394F9FAF800408060 +:1010A000412060D2D2800000BF3FFFBF3F202080A0 +:1010B0000000F8FC7E7C60C0A3B4F9FAE040800038 +:1010C0004160001212000000BF7F7F3F1F80402060 +:1010D0000A09D0F0707060C28080F8FEF80010102D +:1010E0004160E0D2920000803FFFBF7F26400100B8 +:1010F00000F8FCFE5C6060E394FDFAF800800000FC +:101100004160E0D2920000803FFFBF7F2620410077 +:1011100000F8FCFE5C6060E394FDFAF8008000409B +:1011200000000000000101007F7F010100000000BD +:1011300000000000F8FEF660ECF6FEFA847800008D +:101140000004050D0E0F0F1F0F0501010101010025 +:101150000020203070F0F078702000000000800047 +:10116000000000003E7F7D187B7D7F7E211E0000F9 +:101170000000000000808000FCFE80800000000075 +:101180000000010101010105050D0E0F0F1F0F04E5 +:101190000000000000000020203070F0F078F02007 +:1011A0000010181C0E031B1C080103181C0C000067 +:1011B00000000080E0F0601070C070F0F870000077 +:1011C0002030381C0EC6E040000000000060703087 +:1011D0004070783000000001071C00001C3C3E1CE1 +:1011E00022331BFCCE06000000C080181801010647 +:1011F00000800000040E0C01071C0206C7C6808098 +:10120000223311ECCE06000000C08018180404023E +:101210000080080C0004040107103202C1C80C0C45 +:10122000021210AC8A000000008080181004040232 +:1012300000800404000404010500310140480C044E +:101240000000071F1F5F3F1F1F081008010C000050 +:10125000000000809030F0ECC1808103FE68200027 +:101260000000000002048434121414048E73000081 +:1012700000000000007018000060001008F000007E +:1012800000000000000008131111111008070000F1 +:10129000000000000000204D45454541A21C000013 +:1012A0000000000002048434121414048E73000041 +:1012B00000000000007010100870101008F000000E +:1012C0000000000002048434141414048E7300001F +:1012D00000000000006020200870002008F00000DE +:1012E0000000000002028232121214048A7100000F +:1012F0000000000000000040201000007C80000082 +:10130000000E3F7F7F7F3F1F210118030C0C000060 +:1013100000000020E0F0C88000003EFB81000000DB +:101320000000073F7F3F3F1F17200008010C00000F +:10133000000000809030F0ECC0808103FE68200047 +:1013400000073F7F3F3F1F0F10000C1836000000C2 +:101350000000809030F0F8C4808103FE103020003F +:101360000000000002038030121414048E73000089 +:101370000000000000E020200078000000F80000DD +:101380000000000002048730121414048E73000061 +:101390000000000000E020200060200008F00000B5 +:1013A000000000000404843412121101887000004F +:1013B000000000000000F8000000000080E00000D5 +:1013C000000000000008D35151511028C700000050 +:1013D0000000004040404840404040C070000000D5 +:1013E0000000000000204D45454541221C00000042 +:1013F00000000000008234141414048A71000000FC +:10140000003C7A7D7D3F3F1F0F0703010203000070 +:10141000000000000000C08010F0F8F8700000002C +:1014200000000303030F00007F7F183D7F7F000053 +:10143000000000C0E0C00000FFFFC6EFFFFF00009B +:10144000010002061E3F3F3F3F3F1F1F0F070300E3 +:1014500080004078CCE6FAE2E2E4FCC890E080004C +:1014600000000000000080C864221904030000008E +:1014700000000000000000000000E00000C00000CC +:101480000222150D151DCF3F3F3D3D3C3F1F003152 +:10149000A0A08CD8D0A6E8F0F09050D0F0EC0200DC +:1014A000000000000000000000000040706000002C +:1014B00002070300000020C0000000000000000040 +:1014C000000000000000000000004070600000000C +:1014D00000020703000020C0000000000000000020 +:1014E00000000000000000000040706000000000EC +:1014F00000000207030020C0000000000000000000 +:1015000000000000000000000000000000000000DB +:1015100000000000000000000000000000000000CB +:1015200000000000000000000000000000000000BB +:1015300000000000000000000000000000000000AB +:10154000000000000000000000000000000000009B +:10155000000000000000000000000000000000008B +:10156000000000000000000000000000000000007B +:10157000000000000000000000000000000000006B +:10158000000000000000000000000000000000005B +:10159000000000000000000000000000000000004B +:1015A0000002010C1E0F06030000000000000000F6 +:1015B0000000008040009008A4B2383810000000FD +:1015C0000002050E0F0600000000000000000000F1 +:1015D0000000008040001028B43A3C1800000000D1 +:1015E00000020707030000000000000000000000E8 +:1015F00000000080400030383C1E0C00000000005D +:1016000000000603010000000000000000000000D0 +:101610000000000000002030180C04000000000052 +:1016200000000201000000000000000000000000B7 +:10163000000000000000201008040000000000006E +:10164000000000000000000000000000000000009A +:10165000000000000000000000000000000000008A +:10166000000000000000000000000000000000007A +:10167000000000000000000000000000000000006A +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E00000000000000000000000000000000000FA +:1016F00000000000000000000000000000000000EA +:1017000000000000000000C70C08282828EB00009B +:10171000000000000000001C300082BAA2A60000F9 +:1017200000000000000000404040404040C0000079 +:101730000000000000000079C3828A8A8ABA000093 +:10174000000000000000003961010505057D000072 +:1017500000000000000000101010101010770400AE +:101760000000000000000000000000000001010077 +:10177000000000000000001111010100068C0900AA +:1017800000000000000000E246040D29282828007F +:10179000000000000000001C3020023A22268000D9 +:1017A00000000000000000800000404040C0000039 +:1017B00000000000000000FB82027A4202FA820070 +:1017C00000000000000000FA82027A4101F9800066 +:1017D0000000000000000011121414242465800091 +:1017E00000000000000000000000000000000000F9 +:1017F000000000000000001E30202E0030222200D9 +:101800002C6F47FEFEFBEDEE6E4E2868E0E0603880 +:1018100080C0206078FCFCF8004030160C38700066 +:10182000002C6FC7FEFEFBEDEEEE4E4840202E2F43 +:101830000080C0206078FCFCF8000000000000E0A0 +:101840002C6F47FEFEFBEDEE6E4EE8E8E0E0603800 +:1018500080C0206078FCFCF8000000060C387000A6 +:101860001C7F7FFEFEFF03732F5F5F6EE0F060382A +:1018700080C0206078F8C0F8808000060C387000C6 +:10188000001C7FFFFEFEE35DBFBF5F4740201E3FA1 +:101890000080C0206078FCFCF8F0F0C0000000E0A0 +:1018A0000E1F7F7F3FFFFFFFEBE1402020180E3F20 +:1018B00020F0FCFCF8FEFFFFD78600000010E0F8E7 +:1018C000000E1F7F7F3F3FFFDFEBE1C0206038FC51 +:1018D0000020F0FCFCF8F8FEF7D787020004187E21 +:1018E0000E1F7F7F3F3F3F7FEBF1F0E0E0383CE0B1 +:1018F00020F0FCFCF8F8F8FCD68E0F070718780EDD +:101900001C7F7FFEFEFFF70F5F5F2E66E0F0603802 +:1019100080C0206078FCF480904030160C38700055 +:10192000001C7FFFFEFEFF7F370F5F5F4E201E3FD4 +:101930000080C0206078FCFCF0809000000000E097 +:101940001C7F7FFEFEFFF70F5FDFEEE6E0F0603802 +:1019500080C0206078FCF480900000060C38700095 +:101960001C7F7FFEFEFF716E5F6FEF67E0F06038F7 +:1019700080C0206078FCFCF80080E0C60C38700065 +:10198000001C7F7FFEFEFF712E5E5E2F2F171E3F15 +:101990000080C0206078FCFC78000000800000E03F +:1019A0001C7F7FFEFEFFF16E3F7EF87EFEFC6038FE +:1019B00080C0206078FCFCF8002018160C387000FD +:1019C00000000852B0F9FFFFFFFDFB7B0B05020092 +:1019D000000060F0F0F0E0C00000B3F6F6FC3C1848 +:1019E000000000070B0F3365E1B3BFFEFE7F7F1ED3 +:1019F00000000000808080A3C30B1FFFFFFB6380FB +:101A00000000000000070B274B43E7BFBEFEFF7E30 +:101A100000000000000080808083030BFFFF7B83B9 +:101A200000000000000000000513256173FEFF7E2A +:101A30000000000000000000008080A31BFF7B83EB +:101A40000000000000000000000004132C50602083 +:101A500000000000000000000000000080A21FE263 +:101A6000000000000000000000F000000000000086 +:101A700000000000000000000077080000000000E7 +:101A8000000000000000000000FF00000000000057 +:101A9000000000000000000000F708000000000047 +:101AA0000000000000000000000000000000000036 +:101AB0000000000000000000008020000000000086 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000000000000000000006 +:101AE000000000C048425EE02020C0C0F0C00000FE +:101AF00000000020C08080040400000000000000FE +:101B0000000000000000C6614021E070706000002D +:101B100000002040808024A4A044080000000000B1 +:101B200000000000000410285040E0604000000069 +:101B3000002040808044044020100000000000008D +:101B4000007FC180402011B1F178983C3F7F6E301A +:101B50000080C0E060C0CF1E98F0B8CE800040008A +:101B6000000000BFF940B0F178983C3F7F6E300034 +:101B700000000080E07FFE98F0B8CE8000400000BA +:101B8000000000000183FF7F8FBF7F783E1C0000B4 +:101B900000000000CF9E98F0F8EE800040000000AA +:101BA0000000000183FF7F8B57375F7F2F0000000D +:101BB000000000CF9E98B0D8EEF0F0F0E0000000FA +:101BC000000000000183FF7F8FBF7F783E1C000074 +:101BD00000000000C89E9FFFFEE88000400000005B +:101BE000000000BFF940B0F178983C3F7F6E3000B4 +:101BF00000000080E078FE9FFFBEC880004000002B +:101C0000007CFAFDFDFF7F3F1F0F0703070703005E +:101C1000000000000000C08010F0F8F8F0F00806A6 +:101C200000000303030F0080FFFF98BDFFFF7F004C +:101C3000000000C0E0C00000FFFFC6EFFFFFFF0094 +:101C4000010802163E7B7F6E7F7B3F3F1D0F07031F +:101C500080004078C4E6B2E2E2C474C890608000BC +:101C600000000000000080C8E462391C0703000087 +:101C700000000000000000000000E10200C4F800C5 +:101C800004745028240007CF7F7D7D7C7F7F8F40A8 +:101C9000C0C0C0848000E6F8F09050D0F0F0EC02B4 +:101CA000402020272344878384848388D0E08000D9 +:101CB000460D0E634020E8C8000080000004182094 +:101CC000402020274384878384808BD0E08040801D +:101CD00040060D664320E8C8000080000000008038 +:101CE00040202047838487838488D3E08030882005 +:101CF0004000066D4E23E0C8080080000000008010 +:101D0000000000070304070304004B30000000003C +:101D1000000000604020E8C80000800000000000D3 +:101D20000000000000070300030408330000000067 +:101D30000000000000604828C00000800000000093 +:101D4000000000000000000703040300000B300047 +:101D500000000000000008604028C800008000006B +:101D6000000000000000000000070300070000035F +:101D7000000000000000000000604800E00000805B +:101D8000000000000000000000000000000000074C +:101D900000000000000000000000000000000060E3 +:101DA0002046493C3E1F0E070201000000000000D3 +:101DB0000000008040009008A4B2BA7C38190600E8 +:101DC00028667D3E3F1F0E07020100000000000054 +:101DD0000000008040009028B4BABE7D3C1F060081 +:101DE000387E7F3F3F1F0E07020100000000000009 +:101DF000000000804000B038BCBEBE7F3F1F060020 +:101E0000387E7F3F3F1F0E070201000000000000E8 +:101E1000000000804000B038BCBEBE7F3F1F0600FF +:101E2000387E7F3F3F1F0E070201000000000000C8 +:101E3000000000804000B038BCBEBE7F3F1F0600DF +:101E400000000000000000200010101008202010EA +:101E50000000000000000008080808080800004012 +:101E60000000000000000010100808101010080406 +:101E7000000000000000004840241202020202009C +:101E80000000000000000010202022222220100864 +:101E900000000000000000408040080800080040EA +:101EA000000000000000004100202020100000A0E1 +:101EB0000000000000000000008040404040402042 +:101EC00000000000000000A28091111111010050DB +:101ED00000000000000000101210101010109048B8 +:101EE00000000000000000222222222212222110E3 +:101EF0000000000000000028202422212204008489 +:101F000000000000000000CF0C08696969EB0804BC +:101F1000000000000000003C702086BEA2A6201039 +:101F200000000000000000C0C1C1C1C1C1C100006B +:101F300000000000000000FBC3829A9A9ABA824116 +:101F4000000000000000007B63410D0D0D7D41206D +:101F50000000000000000030303030303077048462 +:101F6000000000000000000000000000000303016A +:101F70000000000000000033331309040E9C191008 +:101F800000000000000000E64E0C0DA968686928FA +:101F9000000000000000003C7060063E2226A09079 +:101FA00000000000000000810100C0C0C0C10100AD +:101FB00000000000000000FF8282FAC242FA828222 +:101FC00000000000000000FE8282FAC343FB818013 +:101FD00000000000000000333634346C6C6D8482E5 +:101FE00000000000000000000000000000000000F1 +:101FF000000000000000003E70606E2070666622E7 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_13_m1.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_13_m1.hex new file mode 100644 index 00000000..79a23803 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_13_m1.hex @@ -0,0 +1,513 @@ +:10000000000140000000008000000000000000002F +:10001000000040040000000000000200002000007A +:10002000000140000080000000000000000000000F +:10003000000040040000000000000200002000005A +:1000400000014000008000000000000000000000EF +:10005000002002000000000000000001002000005D +:100060000001400000000C92121E0C000000000075 +:1000700000004004F0101070C0C0720000200000AA +:1000800000014000008000000000000000000000AF +:10009000001000020000000000000000012000002D +:1000A000000140000000000000000000000000000F +:1000B000001000010000000000000000012000000E +:1000C000000140000000314A4A7B3100000000007E +:1000D000001000010C12904C50D28C000120000046 +:1000E000000140000080314A4A7B310000000000DE +:1000F00000004004181C985858D89A0000200000AE +:100100000000000001010100730000000000000079 +:1001100000002080000028B03A000000000000002D +:10012000000000000000017300000000000000005B +:10013000000000000048303A00000000000000000D +:10014000000000000000730100000000000000003B +:100150000000000028800A2080000000000000004D +:100160000001010101010073000101010101000012 +:10017000A00000000028B03BB02800000000A00054 +:1001800000000000000001730101010100000000F7 +:1001900000000000208C0A200B00000080200000DE +:1001A00000000000000000730100000000000000DB +:1001B00000000000000CAA200B80200000000000BE +:1001C00000000000010100730000000000000000BA +:1001D000000020800028B03BAC00000000000000C0 +:1001E0000000010101010073000000000000000098 +:1001F000208000000028B03B4C8020000000000060 +:1002000000000000010101007F000000000000006C +:100210000000208000002CBAFE000000000000005A +:10022000000000000000017F00000000000000004E +:1002300000000000004C3AFE00000000000000003A +:100240000000000000007F0100000000000000002E +:10025000000000002C8A0E2080000000000000003A +:100260000001030607038701837D010101010101EC +:10027000000080C0C080C200827C0000000000003E +:1002800000000041010141310F0302020404080093 +:100290000000E0F0B0F0C0400083601C00000000EF +:1002A00000000800000804030102040810200000F8 +:1002B0000000007838D868A080804024000000004A +:1002C0000002080808040402030F31410000000086 +:1002D00000000000383CECFCD800000080804800A2 +:1002E00001020202020201FF0102020202020100F7 +:1002F0004000000000587CF67C58000000004000E0 +:10030000000000000000007F01000000000000006D +:1003100000000000000CAEAA0F80200000000000CA +:10032000000000000000003F00000000000000008E +:100330000000000000042EAA0500000000000000DC +:10034000000000000000020900010200000000009F +:10035000000000000080200040400000000000007D +:100360000000000200051000040800010000000069 +:100370000000000010004008108000000000000095 +:1003800000084002080080001441000C000000003A +:10039000002084800010420000080440800000001B +:1003A00000220802800030000080001408000000D5 +:1003B0000040002410000802000048001040000027 +:1003C00000014000038030494B7B310000000000F9 +:1003D00000200200D85C58D81818D801002000006E +:1003E000000140000080314A4A7B310000000000DB +:1003F000001000020C1A98584CC69E000120000004 +:100400000000000000000066220099CC00000000FF +:100410000000000000E828082808886C00000000A0 +:1004200000000000000000494900B6DB00000000A9 +:1004300000000000000612202804D07E000000000A +:100440000000000000010066220099EF000000009B +:100450000000000000C65310480410DE0000000039 +:1004600000000000000000494900B6DB0000000069 +:1004700000000000001213282200D96E00000000C6 +:1004800000000000000000494900B6DB0000000049 +:1004900000000000001010222200D27C00000000AA +:1004A00000000000000000494900B6DB0000000029 +:1004B00000000000000E02282200D86E000000009C +:1004C00000000000000000494900B6DB0000000009 +:1004D00000000000000E02282000D96E000000007D +:1004E00000000000000000494900B6DB00000000E9 +:1004F00000000000001210282808D86C000000003E +:1005000000000000000000494900B6DB00000000C8 +:1005100000000000000212282202D96E0000000034 +:1005200000000000000000494900B6DB00000000A8 +:1005300000000000000212212200D86E000000001E +:100540000000000000010066220099EF000000009A +:100550000000000000C25318421019CE0000000035 +:100560000000000000010066220099EF000000007A +:100570000000000000D05012520012DC0000000009 +:100580000000000000010066220099EF000000005A +:100590000000000000CE4200421018CE0000000013 +:1005A0000000000000010066220099EF000000003A +:1005B0000000000000C65A00421219CE00000000E0 +:1005C0000000000000010066220099EF000000001A +:1005D0000000000000D25018480808CC00000000BD +:1005E0000000000000000024A480DB6D000000007B +:1005F0000000000000080990900068BC00000000A6 +:100600000000000000010066220099EF00000000D9 +:100610000000000000C24209620209CE0000000092 +:1006200000000000000000194840663B0000000088 +:100630000000000000380880880060B8000000005A +:100640000000000000000066220099EE000000009B +:100650000000000000101260200090F80000000070 +:100660000000000000000066220099EE000000007B +:100670000000000000061260280490FE0000000048 +:100680000000000000000066220099EE000000005B +:100690000000000000021368220099EE0000000034 +:1006A0000000000000000066220099EE000000003B +:1006B0000000000000101062220092FC0000000008 +:1006C0000000000000000066220099EE000000001B +:1006D00000000000000E0260220098EE0000000002 +:1006E0000000000000000066220099EE00000000FB +:1006F0000000000000061A60220299EE00000000CF +:100700000000000000000066220099EE00000000DA +:100710000000000000131068280898EC000000009A +:100720000000000000000066220099EE00000000BA +:100730000000000000021269220299EE0000000091 +:100740000000000000000066220099EE000000009A +:100750000000000000021261220098EF000000007B +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000014170004040000006136864EC7C7F87054 +:1008100012A90502020404E8FFFD3F0F3703C73B9E +:100820000014170004040000006136864E0701071B +:100830000012A90502020404E8FFFD3F0F3A10F878 +:10084000120D081401010000E0F8F8FD6F0B170706 +:100850009104E20D01010102053070F1C2FCC0807B +:100860000F1F3F4E3ED8F0F8787C2E0E0001100985 +:1008700082888009060A013205040401090A8401FC +:10088000000103030F0E0CA040000000304720B908 +:1008900070F2D4F7BF1F1F0B070282812A10B159D3 +:1008A00010215010002020A04C805060100116D85C +:1008B0001008840474743A1E1F0F1F77F37CFAF833 +:1008C0000000000000000000010202010000000022 +:1008D0000000000000000000804040800000000098 +:1008E0000000000000000000010202010000000002 +:1008F0000000000000000000804040800000000078 +:1009000007060004242122D200408F3FFFFF7B20F6 +:10091000A21C3201018101010040C3E6FFFFFFF28A +:100920000007060004242122D200408F7F1F070FFA +:1009300000A21C3201018101010040C3E6FCF8F86D +:100940000000232320BFFF73F1F8FFFFFF7F3F5F0D +:1009500060A00800636281819DA182C6F9E1F0F97F +:100960000F3F7F7FFEFCFCFDFFFB735191090CB331 +:10097000A4C2FCE46262ECECC3B13B02040434D4D4 +:10098000190F871F630105390101464600F00D0369 +:10099000F8FDFFFFFFFF1F8FCFFEFD04C4C932002B +:1009A000080C0000000C8CC337370606271F0327EE +:1009B000012090898B4F1FFFBF3F3F7FFFFEFDFA55 +:1009C0000000000000000000020000000000000025 +:1009D0000000000000000000200000800000000077 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A00001417000404000000613686CE61703F18A0 +:100A10001AA90502020404E8FFFD3F0F3E17DF2676 +:100A200007060004242122D200408F7FFF7F3B1065 +:100A3000A21C3201018101010040C3E7FFFFFF3921 +:100A40000000032320AFF76FEFF3FCFFFF7F3F5F52 +:100A500060A00800636281819DA102C6F9E1F0F9FE +:100A60001417000404000000603686CE4492F7FF9D +:100A70001AA90502020404E8FEFD3F0F3100C9FF78 +:100A800007020004242122D200408F3FD082D7FFEA +:100A9000A21C3201018101010040C3E6E100E1FF37 +:100AA000120D08D401411818E0F8F8FDEF6B1F276C +:100AB0009D04E20D01010102053070F1C2FCC0800D +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0007F404040404040404040404040407F00C8 +:100AF0009F04040404040400000101010101FF003B +:100B00000C17000009091F3F3F7FFFE0FF7F87337D +:100B100038EC080404081E9FFFFF9F0EC7FC8E04DC +:100B20000C17000009091F3F3F7FFFE0FF7C3100E9 +:100B300038EC0804040C1E9FFFFF9F0EC77C0ECCF0 +:100B40000C17000009091F3F3F7FFFE0FFFF630113 +:100B500038EC0804040C1E9FFFFF9F0EC7FC8E0498 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80001C371020221270F3FFEFFF1BBF7F7F4046 +:100B900030E8000040400CC6FFFFEFF87DFEC88043 +:100BA0001C3710A002F2F0F3FF6F3F3B7FBF472FCF +:100BB00030E80000404F0FC7FFFEECF87CFDE2D4A8 +:100BC0001C37102062F2F0F3FF0FBF7B3F3F403F26 +:100BD00030E80000444E0FC7FFF8EDFE7CC8807C73 +:100BE0001C371060E2F2F0F31FAF7F3B3F3F11462E +:100BF00030E80004464F0FC7F8FDEEF87CC8C0305F +:100C00000F000A1F1333373F3F3B3F3F1B1F0B00B3 +:100C10008000F0FCFCFCFCF83010D0E0E0C00000EC +:100C20000F000A1F1333373F3F37332120200000C6 +:100C30008000F0FCFCFCFCF83010D0E0E0604000EC +:100C40000018230B3F3727273F3F3B1818080800A1 +:100C500000E0F0F8F8F8F0F010A8F8F83010000014 +:100C60000003274FBF3F7F6767371F1E0F07030033 +:100C700000C0E0E0E0E0F090A8F8F8F8F8B0D000AC +:100C80000003274FBF3F7F6767371F1C0E06030116 +:100C900000C0E0E0E0E0F090A8F8FC0400000000F4 +:100CA00000070F0F1F9F9FBF3F67333F0F030000D9 +:100CB000000080C0C0F0983CBEF8E0008080E000FA +:100CC00000001E1F3F3F3FBF9FBF93B11F070000A3 +:100CD00000000000E0983C3CFEFEB4FEFCF000008A +:100CE00000001E1F3F3F3FBF9FBF93B11F07000083 +:100CF00000000000E09C3E38F0E0C080E0FC000016 +:100D00000000001C3F7F7F7F3F3F0F584C2F0000AB +:100D100000000070BC783070E0E0C0FEF8E0000039 +:100D200000000000033E7E7F7F7F3F1E0E2F1308D2 +:100D3000000000F87EFC7AFEEEFCF83870C08000FF +:100D400000000000033E7E7F7F7F3F1E0E2F1308B2 +:100D5000000030E060E060E0E3EEFC3870C080004E +:100D60000000010307051C3E7F7F7F3F0F01000746 +:100D7000008080C0C0E262EEFCFCD898B060400009 +:100D800000000307070B080C1F3F3F3F3F0F000108 +:100D900000D0F8D8FCFCDCFCFCECCCC8F85000F02F +:100DA00000020607070B080C1F3F3F3F3F0F0001E3 +:100DB0000000040484CCECFCFCECCCC8F85000F03F +:100DC00000000C0405031B28612A1B0305040C000A +:100DD0000000008000009A9458949A00008000005F +:100DE0000000001905031B2A612A1B0305190000D6 +:100DF0000020800000009A9458949A0000008020FF +:100E00000000000019051B2A612A1B0519000000BB +:100E10000000008000009A9458949A00008000001E +:100E200000000000340A0F3534427B2F1200060008 +:100E300000000000042838369880808040000000C0 +:100E40000002020424520F1534427B2F1C000C00B8 +:100E50000000000004283836988080804020000080 +:100E60000000010204264F1534427B2F14001800A5 +:100E70000000000004283836988080804020000060 +:100E8000000000080848AF1E0A0D121B1C000000DD +:100E9000000020507834180040C0C0F88040204046 +:100EA0000008001010080F7E8A0D121B1C000100A4 +:100EB000000020507834180040C0C0A29880000084 +:100EC0000000000808080E0E7A8D121B1D01010299 +:100ED000000020507834180000C0C0F80000000066 +:100EE000000000012120100F0C7E891C150D06004A +:100EF00000809060C0E00000C068D06090A000005A +:100F000000000001412018070C0E799C150D070008 +:100F100000809060C0E00000C064F840A090200015 +:100F2000000000010120100F0C0E196C550D070078 +:100F300000809060C0E00000C068D040C0A04000C9 +:100F400000020102030000130E0738230201000013 +:100F5000002040A0E0008064B8700E6220C08000D5 +:100F600000020102034000231E07081312010000C3 +:100F7000002040A0E0018062BC70086424C08000B2 +:100F800000020102030000130E03040B0A0100001B +:100F9000002040A0E0008064B860106828C0800095 +:100FA000055D6A322AE231C34F4F4F4F4F67FF4E04 +:100FB000505070242E58F6F8F0F0F0F0FCF2EC02ED +:100FC00020E1C9C0C19C8CCE868E8CDD4961201089 +:100FD0004080FE868680C0FCFCC0808686BE804045 +:100FE00040C0FE207E40C0FE7EE0C0DE40E0C64243 +:100FF000848880A2B69E86C7FEC0407E20FEC04088 +:101000000000000E1F1F1F3F3F3F3F1F0F07010043 +:101010000000C0F0F8F0ECE2F2FAF2E4C8E0800080 +:1010200000030913272B61807E6C283C1C0E0201F3 +:1010300080002030181C3C7C0186DCF48830C00025 +:101040000000000000000000002A2A20351E0000D9 +:101050000000000080988880F888A8A888FE00001A +:10106000000000000003070707070300000000005E +:101070000000000000C060A0A0E0C0000000000070 +:101080000000000007070F0F0F070F070000000008 +:1010900000000000C080C0E0F0A0C0C00000000060 +:1010A00000000001000C1E1F1E09030301000000C8 +:1010B000000000E0C0E07090E0D0E0E00000000040 +:1010C000000000010014062326190202010000009E +:1010D0000000C010B098689080201000C000000090 +:1010E0000000000000000C0A0C08010100000000D4 +:1010F000000000A0A0601000C0A0E0C00000000040 +:10110000071F3F7FFFFFF7FBFFFAFFFE7F3F1F0731 +:1011100000C0F0B80C6C76B68EBEFCBCF8F0C08097 +:1011200003070F0E1D1D383C3E3F1E1F0F0F070308 +:1011300080C0E0E0B0D0D8D878F8F0F0E0E0C0802F +:101140000303030305090D0F0B0D0F07030303032F +:10115000000000000000000000000000000000008F +:10116000060C1918343460686860303018190C06A1 +:1011700000008040002020101020200040000000CF +:10118000071F3F7FFFEFDFDFDFDFEFEF77381F075E +:1011900000C0F0F8FCFCFEFEFEFEFCFCD830C08077 +:1011A00003070F0F1F1F3B3F373F1B1F0D0F070389 +:1011B00080C0E0E0F0F0F8F8F8F8F0F0A060C0804F +:1011C00003030303030303030303030303030303EF +:1011D000000000000000206060206040000000006F +:1011E000060C191A3737676A6D65323218180C0603 +:1011F0000000C04000A0B0C0C0E080E0400000009F +:10120000071F3F7FFFFFF7FBFFFAFFFE7F3F1F0730 +:1012100000C0F8B80C6C76B68EBEFCBCF8F0D0807E +:1012200003070F0E1D1D383C3E3F1E1F0F0F070307 +:1012300080C0F0E0B0D0D8D878F8F0F0E0E0E080FE +:101240000303030305090D0F0B0D0F07030303032E +:10125000000000000000000000000000008000000E +:10126000060C1D1A36366168616131311A1B0C0695 +:1012700000008040002020901020A04060A00000CE +:10128000071F3F7FFFEFDFDFDFDFEFEF773C1F0759 +:1012900000C0F0F8FCFCFEFEFEFEFCFCD838C0806E +:1012A00003070F0F1F1F3B3F373F1B1F0F0F070386 +:1012B00080C0E0E0F0F0F8F8F8F8F0F0B060C0803E +:1012C00003030303030303030303030303030303EE +:1012D000000080000000206060206040000080006E +:1012E000060C191A3737676A6D6532321C1C0C06FA +:1012F0000000E04000A0B0C0C0E080E0602000003E +:1013000003091F3F3F0F175B9FEA776E0F07070325 +:1013100000C0E0980C6472B08A86D89CC8C0C080B7 +:1013200000040801264F17DB9F005134250F0703E7 +:1013300000000090006476F686808C3CE8C0C08097 +:1013400000041801264F17DB9F045134250F0703B3 +:10135000000000D09074FED7C6808C3CECC0C080EA +:1013600000000000000000020A04503020060403C0 +:1013700000000080000040070600003C6C40400078 +:10138000000000000000000000000000200000013C +:101390000000000000000000000000040000000049 +:1013A000000000000000000000000000000000003D +:1013B000000000000000000000000000000000002D +:1013C0000000000000000000003F3F3F3F1E000003 +:1013D00000000000FEFEEEFEFEFEFEFEFEFE000031 +:1013E0000000000000000000003F3F3F3F1E0000E3 +:1013F00000000000FEFEEEFEFEFEFEFEFEFE000011 +:101400002040468080909C965253375F1F9F50200B +:1014100000000040402000008080C0F4E8C0400090 +:10142000002040868088909C969253777F3F303092 +:1014300000000000404020000080C0E0E0C000004C +:101440002040468080909C965253979F1F9F50202B +:1014500000000040402000008080C0E4E8C0400060 +:1014600010504E808882FC40285050491F8F4020E9 +:1014700000000040402038000000C0E4E8C0400008 +:101480000010508E8088805CA2A050787F3F102092 +:10149000000000004040200000000020E0C00000EC +:1014A0000C18644120A020100E87472F3F170820FA +:1014B000201024800004040870E0E0F0F8E08000D0 +:1014C000000C1864412020A0100E07872F5F278092 +:1014D00000201024800000040470E0E0F0F8E040F8 +:1014E0000C186441202020408EC7870FDF27208002 +:1014F000201024800000000070E2E1F0FBE04008D2 +:1015000010504E80888080F85050295F1F8F4020F7 +:1015100000000040402000701080C0F4E8C040008F +:101520000010508E8088804020F85050693F102075 +:101530000000000040402000007050E0E0C00000CB +:1015400010504E80888080F85090899F1F8F4020D7 +:1015500000000040402000701080C0E4E8C040005F +:1015600010504E808880004E514280581F8F40207E +:10157000000000404020000080400024E8C04000FF +:101580000010504E808880402E5243303018162074 +:1015900000000000404020008080C0E060C00000EB +:1015A00010504E808880804E2346CD4301834020DA +:1015B000000000404020000080C0E0F4E8C040008F +:1015C000000008428090308000018340080403003E +:1015D0002000C40000800000F0788A0C0408A010ED +:1015E000000000040C08224480809090906040101D +:1015F000200002100000003A7EF622E282845A8027 +:101600000000000800040C204840808090A080402A +:101610000040000082002000001AFE36E282049A98 +:1016200000000000000400000610244040808040BC +:1016300000000000800800200002003A66E2049AE0 +:1016400000000000000100100000871C336F5F3FA6 +:10165000000000000000100000020080003BE29B40 +:101660000000000000000000F0F00000000000009A +:10167000000000000000000070770800000000007B +:101680000000000000000000FFFF0000000000005C +:101690000000000000000000F0F70800000000005B +:1016A000000000000000100C03000000000000001B +:1016B000000000000000000020C0B000000000009A +:1016C00000000400000040000000000010000000C6 +:1016D0000000000010000000000000080080000072 +:1016E0000000C0B8777D619F3F3F7FBF9F00000033 +:1016F0000000003070F0F0E6E7FFFAC000000000E4 +:101700000000000000FFB95E7F3E9F5F4040000088 +:1017100000003070F0F0E6477FFCEC800000000035 +:101720000000000000071F3F7F7F9F5E60000000F9 +:10173000003070F0F0E6E7FFFAE0C00000000000C3 +:10174000007FFFFF7F3F1FBFFFFFFF3F2F77683006 +:101750000080C0E0E0C0CF1E98F0F8FE80000000DE +:10176000000000FFFF7FBFFFFFFF3F2F77683000C3 +:1017700000000080E0FFFE98F0F8FE80000000000E +:10178000000000000183FFFFFFFFFF47381C00003F +:1017900000000000CF9E98F0F8FEC000000000009E +:1017A0000000000183FFFFFF7F2F7FFF3F0000004D +:1017B000000000CF9E98F0F8FEE0F0F0E00000009E +:1017C000000000000183FFFFFFFFFF47381C0000FF +:1017D00000000000C89E9FFFFEF8C000000000004F +:1017E000000000FFFF7FBFFFFFFF3F2F7768300043 +:1017F00000000080E0F8FE9FFFFEF880000000007F +:10180000005CBA9D8DCF4727120A06020705030028 +:1018100000000000000080402000000080F008066A +:10182000000003070F0F0080808098BD80807F003C +:10183000000000C0E0C000000000C6EF0000FF0094 +:101840000D0F1F1F3F7B7F6E7F7B3F3F1D0F0703E9 +:1018500090E0F8F8C4E6B2E2E2C474C89060800098 +:101860000000000000070D0583412018040300005C +:101870000000000000E0F0F838F001020004F80079 +:10188000075F6F373BFFF9F34F4F4F4F4F67FF7FB6 +:1018900070707C7C7EFEFEF8F0F0F0F0FCFEEE0254 +:1018A00068303037337CCFCF848FCFFCAC9087004B +:1018B000642A0D6B5928EACC08E8E8000C3CF820B3 +:1018C000683030377BCCCF878CCFFFAC98F043802B +:1018D00060240A6D5B29E8CA0CE8E8000C3C8080B3 +:1018E0006830307FCBCC878FCCFFAF90E0308F203B +:1018F0006020046A5D2BE9C80AECE8000C3C80809B +:10190000281010173B4C4F070C4F7F7C787003005A +:10191000202000685829E8CA0CE8E8000C3C800048 +:1019200000001430182F2B040B0C3F7F78F00300BD +:101930000000202818684828C90CE8E0061E80002E +:10194000000000000014080F1F242B084F7FF0F345 +:1019500000000000001828684C28CC0DE2E207BF08 +:101960000000000000000014080F03306FC88F7FD4 +:10197000000000000000001820604804E003E3FEBF +:101980000000000000000000000000000014788F3C +:101990000000000000000000000000000018267990 +:1019A00028647C3A2D1608040301000000000000A2 +:1019B00000000810186040209028B65D2C1F06001B +:1019C000387E7B3532190E0703010000000000004D +:1019D000000008905860F0182C968A673F1F060098 +:1019E000387C7C3A3D1F0E07030100000000000018 +:1019F000000008101860C02090A8B67F3F1F0600A6 +:101A0000387E7B3D3E1F0E070301000000000000F2 +:101A1000000008905860F018ACB6BA7F3F1F06006F +:101A2000387E7D3E3F1F0E070301000000000000CE +:101A3000000008905860D028B4BABE7F3F1F06004F +:101A400000000000000000200010101008202010EE +:101A50000000000000000008080808080800004016 +:101A6000000000000000001010080810101008040A +:101A700000000000000000484024120202020200A0 +:101A80000000000000000010202022222220100868 +:101A900000000000000000408040080800080040EE +:101AA000000000000000004100202020100000A0E5 +:101AB0000000000000000000008040404040402046 +:101AC00000000000000000A28091111111010050DF +:101AD00000000000000000101210101010109048BC +:101AE00000000000000000222222222212222110E7 +:101AF000000000000000002820242221220400848D +:101B000000000000000000CF0C08696969EB0804C0 +:101B1000000000000000003C702086BEA2A620103D +:101B200000000000000000C0C1C1C1C1C1C100006F +:101B300000000000000000FBC3829A9A9ABA82411A +:101B4000000000000000007B63410D0D0D7D412071 +:101B50000000000000000030303030303077048466 +:101B6000000000000000000000000000000303016E +:101B70000000000000000033331309040E9C19100C +:101B800000000000000000E64E0C0DA968686928FE +:101B9000000000000000003C7060063E2226A0907D +:101BA00000000000000000810100C0C0C0C10100B1 +:101BB00000000000000000FF8282FAC242FA828226 +:101BC00000000000000000FE8282FAC343FB818017 +:101BD00000000000000000333634346C6C6D8482E9 +:101BE00000000000000000000000000000000000F5 +:101BF000000000000000003E70606E2070666622EB +:101C00000000000000060F1F2F2721100C0300000A +:101C1000000000001808CCFCFEFEFE7E0C8C780054 +:101C200000088040241E1F1F1E160E07030100001F +:101C30000000000000000020881084CEE37BDF005D +:101C4000042D7F3F3F1F0F08040402010000000025 +:101C50008080008000002060D03028189060180438 +:101C600000002852C0C0D0C0C9E0E0733F170F0089 +:101C700000000000C0184E1F1F3FFFFEFCF0E000F8 +:101C800050EAFCFFFEFF7C34201010080402010023 +:101C900000000000008080000000000002008C7046 +:101CA00000000005171D0B3D3F1E1F0F0300000025 +:101CB00000000080E0301098F8F070E08000000034 +:101CC00000001007053F173D3F1E1F0F03000000D7 +:101CD00000000080E0301098F8F070E08000000014 +:101CE00000000003151D033D3F1E1F0F03000000F1 +:101CF00000000080E0301098F8F070E080000000F4 +:101D000000000003071F1F3F3F1F1F0F03000000BD +:101D100000000080E0301098F8F0F0E08000000053 +:101D2000000000030F1F1F3F3F1F1F0F0300000095 +:101D300000000080E0301098F8F0F0E08000000033 +:101D4000000000030F1F1F3F3F1F1F0F0300000075 +:101D500000000080E0301098F8F0F0E480280000E7 +:101D6000000000030F1F1F3F3F1F1F07030000005D +:101D700000000080E0301098F8F0F0E080000000F3 +:101D800000000003071F1F3D3E1E1F0F070100003C +:101D900000000080E0705098F87070F0E080000063 +:101DA00000000C61071FCF333E1E1F0F33010600DA +:101DB00000003080C030BC583070B07CE0E00000E3 +:101DC000010C0021374F4D38BC9C036707390300D5 +:101DD00080443084803253583A3033C4C69AE0008D +:101DE0000101066111D80060800030600E780600A5 +:101DF000808616BC8C00090C06060D1C2A1CF88077 +:101E00000002122008400020800050200528020017 +:101E10008020148400000500020005102608A000A0 +:101E200000181800C0C000000000C0C000000C0C6A +:101E30000060600000000C0C000000000C6C6000F2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_14_m2.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_14_m2.hex new file mode 100644 index 00000000..ccdd138f --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_14_m2.hex @@ -0,0 +1,513 @@ +:1000000000000040204080C040404046C8C853D750 +:100010000000000000000000000000000000607010 +:1000200000000000800000000000001820204D5D4E +:10003000000000000000000000000000000080C080 +:1000400000000000000000000000006080803677A3 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000800000D8DC5C +:100070000000000000000000000000000000000080 +:1000800000000000000000000000000000006070A0 +:100090000000000000000000000000000000000060 +:1000A000000000000000000000000000000080C010 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:10010000D65048CAC443C0E0F0FC3D42000000C0E5 +:10011000308000A00080000810008000000418E07B +:100120005842202A100E0080C0F0F608000000039C +:10013000C00000800000002040000000001060802F +:10014000630880AA4038000001C0D8200000010EDA +:10015000000000000000008000000000004080005F +:100160008C2000A800E00002040060800001063836 +:10017000000000000000000000000000000000007F +:10018000308000A00080000810008000000418E00B +:10019000000000000000000000000000000000005F +:1001A000C0000080000000204000000000106080BF +:1001B000000000000000000000000000000000003F +:1001C00000000000000000800000000000408000EF +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:100200001933262231191130302021331F0F0201FA +:1002100021A3CFCEBCF1F0F8BCBFBEE7E3F05E0394 +:10022000060C09080C06040C0C08080C0703000057 +:1002300048E8B3B36F7C7C3E2F2F6FF9F8FC9740F2 +:100240000103020203010103030202030100000093 +:10025000923A6C2C1B9F1F0F0B0B1B3EFEFF2510B1 +:10026000000000000000000000000000000000008E +:1002700064CE9B8BC66747C3C28286CF7F3F09048B +:10028000000000000000000000000000000000006E +:100290001933262231191130302021331F0F02016A +:1002A000000000000000000000000000000000004E +:1002B000060C09080C06040C0C08080C07030000C7 +:1002C000000000000000000000000000000000002E +:1002D0000103020203010103030202030100000003 +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:100300000100000102030302020B110021100C0383 +:100310008080E03F0700F01F0F1FFCF80000000185 +:1003200000000000000000000002040008040300B8 +:100330006020384F81C0FC8783C77F3E400000C0EB +:1003400000000000000000000000010002010000A9 +:1003500018080E1320303F2120B11F0F1000C030AD +:10036000000000000000000000000000000000008D +:1003700006020304080C0F08082C47038440300CC5 +:10038000000000000000000000000000000000006D +:100390000100000102030302020B110021100C03F3 +:1003A000000000000000000000000000000000004D +:1003B0000000000000000000000204000804030028 +:1003C000000000000000000000000000000000002D +:1003D0000000000000000000000001000201000019 +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:100400000000000000000000000080C0C0000000EC +:1004100000000000000000000000000000000000DC +:10042000000000000000000060F0F0400040783C58 +:1004300000000000000000000000000000000000BC +:1004400000000000000018FCFC9000D0DE0F07FD4B +:10045000000000000000000000000000000000801C +:1004600000000000067FFFA400347743C17FFEFF39 +:100470000000000000000000000080C0C0604000DC +:100480000000011F7F69000DDDD0B0DFBF7F3F009E +:10049000000080C0C0000000E0F070D890C0C00034 +:1004A000000F3F3A202377F4EC37AF1F0F40A12114 +:1004B000E0F0F0400040783C1CF6ECF8F4000070EE +:1004C000000F3F3A20E3F7F46C9F1F3F3F20215D70 +:1004D000E0F0F04000587C3C16ECF8F4F0000070BE +:1004E000000F3F3A2023F7F4EC37AF1F0F20205CBA +:1004F000E0F0F0400040783C1CF6ECF8F404484092 +:10050000000F3F3A2023F7F4EC37AF1F0F40205C79 +:10051000E0F8F04C005C782810F0E0F0F00448407F +:10052000000F3F3A2023F7F4EC37AF1F0F40215D57 +:10053000E0F0F040005C7C2C10F0E0F0F000007087 +:10054000000F3F3A2023F7F4EC37AF1F0F40A121F3 +:10055000E0F0F0400040783C1CF6ECF8F40000704D +:1005600000071F1B0163F7F46C9F1F1F1F04041C6F +:1005700060F0F04000587C3C16E4F0F0F04080F071 +:1005800000071F18183898EAF36C98C51D1B122A2B +:1005900060F0F0400080803E3E7475B2C0B05038CC +:1005A0000001070004041061400040010100001038 +:1005B00060306080C0000088844162A0C0000050AC +:1005C00000000304000010000000200000000808E4 +:1005D0000030200000200008400260A04000002001 +:1005E00000071F1A000317744834A70F07001E3EA8 +:1005F00060F0F04C005468281070E0F0E00E3C30E1 +:10060000183428333030F88C868348384D30200138 +:10061000000000B080C8080000C4020000C0200034 +:1006200018382033303078CCC68380F84568714064 +:10063000000000B080C8080008C60000002080400C +:1006400018342833303068C4C2C1E2645F60C380AC +:10065000000000B080C8080008C400800020C03F2F +:100660001838203370C0C08086FB446871606140D8 +:10067000000000B080C8080608C0000000208040CC +:10068000183860C3C08080F8466B5040616061409C +:10069000000000B080CE080008C0000000208040AC +:1006A000183860C3C08080F8466B706061400000FD +:1006B000000000B080CE080008C00020804000008C +:1006C000183860C3C08080F8466B7140000000009D +:1006D000000000B080CE080008E08040000000006C +:1006E00020464D3E2F1608040201000000000000C5 +:1006F000000010A860001C2BB43ABE5C281906004C +:10070000081509131C10789DF68349390D1214043D +:10071000000008F080C8F81000CC1210E030D020A3 +:10072000081D0D131C16799DF6A349390D121C05E1 +:10073000002028F0A0C8F8504ACC5256E830D02803 +:100740000202120C000804E2010C12003208011A25 +:1007500000D00008080000081422240014C400D4AB +:1007600008040810021160008010A4CC00140200DC +:100770000000D00040300000A05101A80028200057 +:1007800020466F3733190E070201000000000000F9 +:10079000000010A8E0009C3B3C9E8E64381D0600C3 +:1007A00028647E3B3D1F0E07020100000000000090 +:1007B00000001028A0008C3398ACB67D3C1F0600CA +:1007C00028767B3D3E1F0E0702010000000000005E +:1007D000000010A8E0009C1BACB6BA7D3E1F0600CE +:1007E00038767D3E3F1F0E0702010000000000002A +:1007F000000010A860009C2BB4BABE7D3F1F06000D +:100800001F1F1F10222270F0F9FEFF9C5830084075 +:10081000F0F0F00040400C0E9A578F00083880002E +:100820001F5F9FF0E2E2F0F1797E3F3C389040207C +:10083000F0F8F80F47460E8C985488000A381010CC +:100840000F0F0F000A0A0000141B1C383030020181 +:10085000F8F8F80804040E1F7FBF7F62167E1008A8 +:100860000F0F0F000A0A0000141B1C38303004045C +:10087000F8F8F80804040E1F7FBF7E462E7E040899 +:100880001F1F1F102262F0F0F9FE9D583018400023 +:10089000F0F0F00010140E0A974F80083880000026 +:1008A0001F1F1F3068E8F0F0F99E5D3830181040C7 +:1008B000F0F0F00044460A0B97488008381080108A +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:100940000F0F0F000A0A0020743B3C3830340301BB +:10095000F8F8F80804040E1F7FFF717A1E3E10108D +:100960000000000000000000000000000000000087 +:100970000000000000000000000000000000000077 +:100980000000000000000000000000000000000067 +:100990000000000000000000000000000000000057 +:1009A0000000000000000000000000000000000047 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F00000000000000000000000000000000000F7 +:100A000000008080201006061F61311000000400E5 +:100A100000000000080050C0800000000000180422 +:100A2000000040281A140E0B0E1E1830347360E0BC +:100A300003040E1470E0C030180504080010A080F4 +:100A40000000000204040002100000000800200062 +:100A50000000000000200000002002000C10002018 +:100A60000000000000100802403008204040223CF6 +:100A700000040050182C21420A0480C0310408C828 +:100A8000000000088000201283002011018048002F +:100A900000000000008040000000100800C000447A +:100AA000000000000008400010100000004020027C +:100AB00000000001400000080880800010100010B5 +:100AC000000000480000240000000042401000C068 +:100AD000000000000010000040000008020080003C +:100AE00000000004000000000000000004000010EE +:100AF0000000110000020008000000200200088130 +:100B000000040C060200000202000061CBE4186041 +:100B1000010D0E08109800204000C020E81C0400C1 +:100B2000E287605C36281810102A3D374DAEB0C001 +:100B30002000100402808040201817C2B4631D02F8 +:100B40000022044600204080000010020000000047 +:100B500000820000200000000008080040000000A3 +:100B600002230000201000402000000004030000C9 +:100B7000000084080008040300020000020A71005B +:100B80000C05E3624E3647A3E4980D36C40300001B +:100B900010B02C184050302C1840E03000000000FD +:100BA00000310404002101000200010000000000E7 +:100BB00000008000200000C0001804002002000097 +:100BC00000440001004801000084002000000000F3 +:100BD0002002000000001000200080000000000043 +:100BE00000110000000100020000040000000000ED +:100BF0000020000002100000022000000010000091 +:100C00000000C0500890A0B0D0105011F2F294F53E +:100C10000000000000000000000000800000D8DCA0 +:100C20000000C0500890A8B8D8185919EAEA9AFAF2 +:100C3000000000000000000000C000006CEEC610C4 +:100C40000000C0500890A8B8DB1C591DEAEA9AFEC3 +:100C500000000000002222D40AC201006CEEC6107F +:100C60000000C0500894ABB8DB1C591DEAEE9AFE98 +:100C700000000000003A22D50AC201006CEEC71045 +:100C80000000C0500894ABB8DB1C5B1DEAEE9AFE76 +:100C90000000000000BA6AD54EC201006DEEC71117 +:100CA0000000C0500893AFBEDF1D5F1FEEEF9AFE3D +:100CB0000000000000EEBFF5FFCE13217DEFCE5106 +:100CC0000000C0510991A3B7D61E5D1F2703000085 +:100CD0000038C4808084E84088800008D8F0000094 +:100CE00000000161828183676144C2C1E17130000B +:100CF000808F3F38F0C7C0E3F0FCFB1C8C80000005 +:100D0000F5D4D2F2F1D0F0F8FCFF0F10000000F0A3 +:100D10008C2000A800E0000204006080000106387A +:100D2000E9C9C8F8F8C4E2FFF8FF0F10000000F0AE +:100D30000054807000010284F880008000010638B1 +:100D4000E9C9CAFCF8C4E2FFF8FF0F10000000F088 +:100D50000054807C43418284F88000800001063882 +:100D6000EFC9CAFDF9C6E2FFF8FF0F10000000F05E +:100D70000156847C5351AA84F88000800001063813 +:100D8000EFCDCAFDFBC6E2FFF8FF0F10000000F038 +:100D90000356877CF35DAAACF8800080000106381A +:100DA000EBCFCEFBFFC6E3FFF8FF0F10000000F013 +:100DB00043D7F77DDFF7FEACF880008000010638EE +:100DC000000103FEFCC0E3FEF8FF0F10000000F07E +:100DD0000CF0008040C04040808000800001063858 +:100DE000E01E0304080C0F08082C47038440300C55 +:100DF000000080FF1F01C17F3F7FF0E0000000077F +:100E00000000C0510991A3B7D61E5D1FE7E79DF111 +:100E10000038C4808084E84088800008D8F0E00072 +:100E200000000161828083676144C2C1E1713F1C9F +:100E3000808F3F38F0C7C0E3F0FCFB1C8EC3790FF6 +:100E40000000C0510E94A4B4D71E5C1CF8F8CEFF6D +:100E5000000000C020000020400040000040C08092 +:100E6000000001010E0808081E1E142C2C160F038A +:100E7000808F3F38F0470023707C7B3C0E0319CFF6 +:100E800064CE9B8BC66747C3C28286CF7F3F09046F +:100E9000848F3F38F0C7C0E3F0FCFB9C8EC3790F12 +:100EA00000000101020F1F316E597070783C1F0F56 +:100EB000848F3F38F0C7C0E3FCF221040E73FF8F2C +:100EC0000000010102001E3F7F7FC39DBAB1603068 +:100ED000808F3F38F0C7C0E3F0FCFB9C8EC3F90F56 +:100EE0000000010102000E1F3F7FFFC39DA643408B +:100EF000808F3F38F0C7C0E3F0FCFB9C8EC3790FB6 +:100F00000000C0510B93A3B7D61F5F1EF2F3CFF8BA +:100F100000007088000008D08010000010B0E0C011 +:100F2000000001013A20202079D8B1B050381C0FC0 +:100F3000808F3F38F0C7C0E3F0FCFBDC0E43790F35 +:100F4000E0C1C3FEFCC0E3FEF8FF0F10000000F09C +:100F50008000008040C04040808000800001063852 +:100F600006020304080C0F08082C47038440300CC9 +:100F7000010081FF1F01C17F3F7FF0E000000007FB +:100F8000000001011E3F6ED8B0B0707B3F1F090406 +:100F9000848F3F04889F043B707CFB9C8EC3790F39 +:100FA0000000000000000000000000000000000041 +:100FB0000000000000000000000000000000000031 +:100FC00008060304080C0F08082C47038440300C63 +:100FD00001008183A755F97F3F7FF0E00000000703 +:100FE000C2C647C48A8AC77838AC47038440300CED +:100FF000010081FF1F01C17F3F7FF0E0000000077B +:1010000007040000206040407F3F3F1F0B15080091 +:10101000F03C929D1F1F3FFFFFFEFCF8B8642000CC +:10102000070400002060407F7F3F3F1FCB350C034B +:10103000F03C929D1F1FFFFFFFFEFCF8B86460802C +:10104000070400002060407F7F3F3F1F0B050C0717 +:10105000F03C929D1F1FFFFFFFFEFCF8B1667880F9 +:10106000413E6CD292C0C0C0C04040A12F3F400161 +:101070000000707C1C2A3F7FFFFCF8E8E0F880004D +:10108000413E6CD292C0C0C0C04040A12F4700007A +:101090000000707C1C2A3F7FFFFCF8E8E0F84080ED +:1010A000413E6CD292C0C0C0C04040A12F3F2080C2 +:1010B0000000707C1C2A3F7FFFDCF8E8F8C080004D +:1010C000413E2CD2D2C0C0C0C04040210F8F402032 +:1010D00008085C5F1F1F1E7EFCF8F8E4E0F01010AB +:1010E000417EEC92D2C0C0C0404080613F400100D0 +:1010F00000F07C5C0A3F3F7FFCECE8E0F8800000F9 +:10110000417EEC92D2C0C0C0404080613F2041008F +:1011100000F07C5C0A3F3F7FFCECE8E0F880004098 +:10112000000000000000017F007F000100000000BF +:10113000000000000000868E028600028478000015 +:1011400000010000000000120A040000000001007D +:1011500000808080000000C8D0A080808080800057 +:10116000000000000000616300610040211E0000DB +:1011700000000000000080FE02FE00800000000071 +:1011800000010000000000000000000000120B043D +:1011900000808080808080808080000000C8D02017 +:1011A000000804120900031409020300100C0000D7 +:1011B0000000000000906060B0C000008870000077 +:1011C000100824120806A040000000000000403073 +:1011D00000004830000000061B2C00000000221C0C +:1011E00010080732C8060000004080001800010007 +:1011F0000080000000020C061B2C0000014600804D +:1012000010021522C80600000040800018000400EB +:101210000080000C000004061720300201C0000C02 +:10122000100214268A00000000008008100004004C +:101230000080000400000404152030010040080470 +:10124000000E1021787C7E7C203F1F0718011C00B7 +:1012500000F03C98860F0F1F7FFEF8E00080C0383A +:101260000000000002048434121414048E73000081 +:1012700000000000007018000060001008F000007E +:1012800000000000000008131111111008070000F1 +:10129000000000000000204D45454541A21C000013 +:1012A0000000000002048434121414048E73000041 +:1012B00000000000007010100870101008F000000E +:1012C0000000000002048434141414048E7300001F +:1012D00000000000006020200870002008F00000DE +:1012E0000000000002028232121214048A7100000F +:1012F0000000000000000040201000007C80000082 +:101300001D204381F09CC0707F1F011803023C0028 +:10131000E078301E1E1E3EFEFCF0C000380C0400BB +:10132000000E100100784E60383F1F0718011C00A6 +:1013300000F03C98860F0F1F7FFEF8E00080C03859 +:101340000E100100784E60783F1F01060830400003 +:10135000F03C928E0F0F1F7EFEFCF00060004038C4 +:101360000000000002038030121414048E73000089 +:101370000000000000E020200078000000F80000DD +:101380000000000002048730121414048E73000061 +:101390000000000000E020200060200008F00000B5 +:1013A000000000000404843412121101887000004F +:1013B000000000000000F8000000000080E00000D5 +:1013C000000000000008D35151511028C700000050 +:1013D0000000004040404840404040C070000000D5 +:1013E0000000000000204D45454541221C00000042 +:1013F00000000000008234141414048A71000000FC +:101400000060C0E0F0F078381D0D0503050603000C +:1014100000000000000040C030F0F8F8F0F00806CE +:10142000000000040C000080FFFF8080FFFF7F00B1 +:101430000000000000000000FFFF0000FFFFFF00B1 +:101440000C0F1D1921444051404420201208040370 +:1014500010E0B880080048000020880000800000EC +:101460000000000000078DCDE763391C0703000072 +:101470000000000000E0F0F838F0E10200C4F800DD +:10148000077F7F3F3FFFFEFC707272737078FF7FB3 +:10149000F0F0FCFCFEFE1E080060A0200C1EEE0218 +:1014A0004020202723448783848483C8F0E0800081 +:1014B000460F0F634020C808000080000004182079 +:1014C00040202027438487838480CBF0E0804080C5 +:1014D00040060F674320C80800008000000000801D +:1014E000402020478384878384C8F3E080308820AD +:1014F0004000066F4F23C0080800800000000080F5 +:10150000000000070304070304004B300000000044 +:10151000000000604020E8C80000800000000000DB +:10152000000000000007030003040833000000006F +:101530000000000000604828C0000080000000009B +:10154000000000000000000703040300000B30004F +:1015500000000000000008604028C8000080000073 +:101560000000000000000000000703000700000367 +:10157000000000000000000000604800E000008063 +:101580000000000000000000000000000000000754 +:1015900000000000000000000000000000000060EB +:1015A00020464D3633190E070201000000000000EE +:1015B0000000008040009028349A8E64381906009C +:1015C00028647E3B3D1F0E07020100000000000062 +:1015D000000000000000A03098ACB67D3C1F060063 +:1015E000387E7B3D3E1F0E07020100000000000018 +:1015F000000000804000B018ACB6BA7F3F1F060064 +:10160000387E7D3E3F1F0E070201000000000000F3 +:101610000000008040009028B4BABE7F3F1F060043 +:10162000387E7F3F3F1F0E070201000000000000D0 +:10163000000000804000B038BCBEBE7F3F1F0600E7 +:1016400000000000000000200010101008202010F2 +:10165000000000000000000808080808080000401A +:10166000000000000000001010080810101008040E +:1016700000000000000000484024120202020200A4 +:10168000000000000000001020202222222010086C +:1016900000000000000000408040080800080040F2 +:1016A000000000000000004100202020100000A0E9 +:1016B000000000000000000000804040404040204A +:1016C00000000000000000A28091111111010050E3 +:1016D00000000000000000101210101010109048C0 +:1016E00000000000000000222222222212222110EB +:1016F0000000000000000028202422212204008491 +:101700000000000000000008000041414100080402 +:101710000000000000000020402004040000201011 +:1017200000000000000000808181818181010000B3 +:101730000000000000000082000010101000824134 +:10174000000000000000004202400808080041209C +:101750000000000000000020202020202000008445 +:101760000000000000000000000000000002020174 +:1017700000000000000000222212080408101010CF +:1017800000000000000000040808008040404128DC +:1017900000000000000000204040040400002090F1 +:1017A00000000000000000010100808080010100B5 +:1017B00000000000000000040080808040000082E3 +:1017C00000000000000000040080808242020180CE +:1017D0000000000000000022242020484808048265 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000204040402040444422FF +:101800002040468080909C965253375F1F9F502007 +:1018100000000040402000008080C0F4E8C040008C +:10182000002040868088909C969253777F3F30308E +:1018300000000000404020000080C0E0E0C0000048 +:101840002040468080909C965253979F1F9F502027 +:1018500000000040402000008080C0E4E8C040005C +:1018600010504E808882FC40285050491F8F4020E5 +:1018700000000040402038000000C0E4E8C0400004 +:101880000010508E8088805CA2A050787F3F10208E +:10189000000000004040200000000020E0C00000E8 +:1018A0000C18644120A020100E87472F3F170820F6 +:1018B000201024800004040870E0E0F0F8E08000CC +:1018C000000C1864412020A0100E07872F5F27808E +:1018D00000201024800000040470E0E0F0F8E040F4 +:1018E0000C186441202020408EC7870FDF272080FE +:1018F000201024800000000070E2E1F0FBE04008CE +:1019000010504E80888080F85050295F1F8F4020F3 +:1019100000000040402000701080C0F4E8C040008B +:101920000010508E8088804020F85050693F102071 +:101930000000000040402000007050E0E0C00000C7 +:1019400010504E80888080F85090899F1F8F4020D3 +:1019500000000040402000701080C0E4E8C040005B +:1019600010504E808880004E514280581F8F40207A +:10197000000000404020000080400024E8C04000FB +:101980000010504E808880402E5243303018162070 +:1019900000000000404020008080C0E060C00000E7 +:1019A00010504E808880804E2346CD4301834020D6 +:1019B000000000404020000080C0E0F4E8C040008B +:1019C000000008428090308000018340080403003A +:1019D0002000C40000800000F0788A0C0408A010E9 +:1019E000000000040C082244808090909060401019 +:1019F000200002100000003A7EF622E282845A8023 +:101A00000000000800040C204840808090A0804026 +:101A10000040000082002000001AFE36E282049A94 +:101A200000000000000400000610244040808040B8 +:101A300000000000800800200002003A66E2049ADC +:101A400000000000000100100000871C30604020F2 +:101A5000000000000000100000020080003B6282D5 +:101A60000000000000000000F0F000000000000096 +:101A70000000000000000000707708000000000077 +:101A80000000000000000000FFFF00000000000058 +:101A90000000000000000000F0F708000000000057 +:101AA000000000000000100C030000000000000017 +:101AB000000000000000000020C0B0000000000096 +:101AC00000000400000040000000000010000000C2 +:101AD000000000001000000000000008008000006E +:101AE0000000C0B8777D619F3F3F7FBF9F0000002F +:101AF0000000003070F0F0E6E7FFFAC000000000E0 +:101B00000000000000FFB95E7F3E9F5F4040000084 +:101B100000003070F0F0E6477FFCEC800000000031 +:101B20000000000000071F3F7F7F9F5E60000000F5 +:101B3000003070F0F0E6E7FFFAE0C00000000000BF +:101B4000007FFFFF7F3F1FBFFFFFFF3F2F57482052 +:101B50000080C0E0E0C0C0109080C0F080000000B5 +:101B6000000000FFFF7FBFFFFFFF3F2F574820000F +:101B700000000080E0F0F09080C0F08000000000E5 +:101B8000000000000183FFFFFFFFFF472810000057 +:101B900000000000C09090E0F0F0C00000000000E5 +:101BA0000000000183FFFFFF7F2F7FFF3F00000049 +:101BB000000000C09090C0E0F0E0F0F0E000000015 +:101BC000000000000183FFFFFFFFFF472810000017 +:101BD00000000000C09090E0F0F0C00000000000A5 +:101BE000000000FFFF7FBFFFFFFF3F2F574820008F +:101BF00000000080E0F0F09080C0F0800000000065 +:101C0000005CBA9DADCF4727120B06020705030003 +:101C1000000000000000C04030F0F87890F00806A6 +:101C200000000303030F0080808098BD80807F0048 +:101C3000000000C0E0C000000000C6EF0000FF0090 +:101C4000010802163E7B7F6E7F7B3F3F1D0F07031F +:101C500080004078C4E6B2E2E2C474C890608000BC +:101C60000000000000070D05834120180403000058 +:101C70000000000000E0F0F838F001020004F80075 +:101C8000075F6F373BFFF9F34F4F4F4F4F67FF7FB2 +:101C900070707C7C7EFEFEF8F0F0F0F0FCFEEE0250 +:101CA0004020202723448783848483C8A080F8F8B9 +:101CB000440A0D634020E8C80000800000071E3879 +:101CC00040202027438487838480CBA080807CFCB5 +:101CD00040040A654320E8C800008000000078FC4A +:101CE000402020478384878384C8A38080F0F8380D +:101CF0004000046A4D23E0C808008000000078FC22 +:101D0000000000070304070304004B3000003C7C84 +:101D1000000000604020E8C8000080000000787CDF +:101D200000000000000703000304083300003C7CAF +:101D30000000000000604828C00000800000787C9F +:101D4000000000000000000703040300000B300C3B +:101D500000000000000008604028C800008000402B +:101D6000000000000000000000070300070000035F +:101D7000000000000000000000604800E00000805B +:101D8000000000000000000000000000000000074C +:101D900000000000000000000000000000000060E3 +:101DA00020464D3E2F1608040201000000000000EE +:101DB0000000008040001028B43ABE5C28190600DC +:101DC00028667F3733190E0702010000000000006B +:101DD000000000804000B0383C9E8E653C1F06002D +:101DE000387C7E3B3D1F0E07020100000000000012 +:101DF000000000000000A03098ACB67F3F1F060036 +:101E0000387E7B3D3E1F0E070201000000000000EF +:101E1000000000804000B018ACB6BA7F3F1F06003B +:101E2000387E7D3E3F1F0E070201000000000000CB +:101E30000000008040009028B4BABE7F3F1F06001B +:101E400000000000000000FF10101F18083F3010B5 +:101E5000000000000000000C0C0C0C0C0C7C40403E +:101E6000000000000000001F18080F1C181B0804C9 +:101E7000000000000000007F64249303038303003C +:101E8000000000000000001E3830333333371008E4 +:101E90000000000000000078E0400C7C444C404012 +:101EA00000000000000000FF20203E3090BEA0A0F7 +:101EB00000000000000000F880806060606060202A +:101EC00000000000000000FFD1D1591999195050AD +:101ED00000000000000000D81B1B9A9A9898B84890 +:101EE000000000000000003B33333333133B31105C +:101EF000000000000000003C3434323133770684A7 +:101F000000000000000000CF0C08696969EB0804BC +:101F1000000000000000003C702086BEA2A6201039 +:101F200000000000000000C0C1C1C1C1C1C100006B +:101F300000000000000000FBC3829A9A9ABA824116 +:101F4000000000000000007B63410D0D0D7D41206D +:101F50000000000000000030303030303077048462 +:101F6000000000000000000000000000000303016A +:101F70000000000000000033331309040E9C191008 +:101F800000000000000000E64E0C0DA968686928FA +:101F9000000000000000003C7060063E2226A09079 +:101FA00000000000000000810100C0C0C0C10100AD +:101FB00000000000000000FF8282FAC242FA828222 +:101FC00000000000000000FE8282FAC343FB818013 +:101FD00000000000000000333634346C6C6D8482E5 +:101FE00000000000000000000000000000000000F1 +:101FF000000000000000003E70606E2070666622E7 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_7_b6.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_7_b6.hex new file mode 100644 index 00000000..cd07f54f --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_7_b6.hex @@ -0,0 +1,513 @@ +:1000000000003C666666663C001838581818187E72 +:10001000003C66060C30607E003C66061C06663CB2 +:10002000000E1E36667F0606007E607C6606663C15 +:10003000003C66607C66663C007E060E1C18181844 +:10004000003C66663C66663C003C66663E060C38D4 +:100050003C429DA1A19D423C0018181818001800B0 +:100060000000123F12123F1200080C0F090A383824 +:10007000003C66660C1000180000013E5415376005 +:100080000000000000000000001C3663637F636313 +:10009000007E63637E63637E003E63606060633EF8 +:1000A000007E63636363637E007F60607E60607F69 +:1000B000007F60607E606060003E63606067633EFA +:1000C000006363637F636363001E0C0C0C0C0C1EE7 +:1000D000001F06060606663C0063666C787C6E634D +:1000E000006060606060607F004163777F6B636386 +:1000F0000063737B6F676363003E63636363633EA8 +:10010000007E63637E606060003E6363636F663B96 +:10011000007E63637E6C6663003E63603E03633E05 +:10012000007F0C0C0C0C0C0C006363636363633E78 +:10013000006363636363361C00636363636B7F36D2 +:100140000063361C1C366341003333331E0C0C0C29 +:10015000007F03060C18307F073927392127E6C0B6 +:100160001010180C061E32100000003D6666663B3B +:10017000001E33333633336E000066FFFF7E3C18BB +:1001800000183E183E6B673D000060636363637058 +:10019000000E001E3303030E001C003E0C183C67CB +:1001A00000183C1B3E6B6B3B0007307E3636363604 +:1001B00000183E0C3E0C603C000C18306030180CEF +:1001C0000006667F6666060C003F03060000603F7F +:1001D000000C3F060360603E006060606063633E49 +:1001E00000067F1E36361E3C0036367F3630301E07 +:1001F0000033367C3F60603C0008087F3E1C36229E +:1002000005183E0C0660603E006065606066663CF6 +:10021000050C7F3C6C6C3C780500367F3636301E12 +:100220000533367C3F60603C0530377E36363636E7 +:1002300005183E0C3E0C603C050018306030180C70 +:100240000500667F6666060C05003F020000603F01 +:1002500000667F66666F7B6E007C18376663633E60 +:1002600000180C0C186D6D6D000000386C660300F2 +:10027000007F667F666F7B6EF080E08EF909090E65 +:10028000003078373030303700187E181E03033EB8 +:1002900000007E0303031E00007F060C1830301E92 +:1002A0000063361C1830301E00187C37661F361C61 +:1002B00000006F6060606C670000333E355D5F3743 +:1002C000003033773B37753700003E6D6D6D6D390B +:1002D0000367667F666F7B6E037B18376663633EDA +:1002E000031B0C0C186D6D6D000303386C66030066 +:1002F00003637F667F6E7B6EE090F0A091110A042D +:10030000003578373030303705187E181E03033E2D +:1003100005007E0303031E0005007E0C1830301E0E +:100320000560361C1830301E000036367E333730FC +:10033000000000363F35051E00000C0F0C1F361C58 +:1003400000000E001E040817000000003E03030E0C +:1003500005667F66666F7B6E057C18376663633E55 +:1003600005180C0C186D6D6D0005386C66030000E7 +:10037000057F667F666F7B6E0000000019191D18EF +:10038000000C3E0C7F3C6E3C0000781A3A5F5A3AF3 +:1003900000187C1B385B5B3E0000333E775D6D3A96 +:1003A00000307C307C33331E003336FE333336303E +:1003B00000006C6E7B6B0B3E000C0F0C3C6F6C38BE +:1003C000000C66607E03033E00066E766606060C31 +:1003D000003E0C183E033B3E003033773B33733313 +:1003E000003E0C183E03033E003030773B3373363B +:1003F00000187C301E38603E001830606C7E7667D6 +:1004000077D2926DA3E29CB3FF0C12D22D2062C56D +:10041000E724241818679870BC54995925854248D8 +:100420009E91906F1020404007F21121A25C40463F +:10043000F13142818181423CFF182424DAA5C204B3 +:10044000CE7C4C78989864137D442919191620CED7 +:10045000F1102121627C8989E623454539CD33336A +:1004600060E06C73737F6C000000CC3232FECC0015 +:1004700060E06976767F6900000024DADAFE240005 +:10048000E27B00000000000002FF0000000000000E +:1004900010F800000000000084F0000000000000E0 +:1004A000708800000000000089FC000000000000CF +:1004B00001FE000000000000C23900000000000042 +:1004C000109F00000000000011F900000000000073 +:1004D00048CF000000000000E7FE00000000000020 +:1004E0001E10111E06071D000000986464FC980091 +:1004F0000000669999FF66000000000000000000FF +:10050000609086E9B9BF6600F0303639696F6600E1 +:1005100070989E79999F760060B0B679393FE60071 +:10052000F0888B88887B0000F0888B88887B0000AF +:100530007F4040403F000000FE010101FF007F407E +:10054000007F4040403F800100FE010101FF00406C +:100550007F4040403F00FE01FE010101FF0000001E +:10056000F0888B88887B00F0F0888B88887B00007F +:10057000F0888B88887B0000F0888B88887B00015E +:1005800070981E3969CFFE0070981E39199F760049 +:10059000103076B9B9FF3600F08086E9393FE600C1 +:1005A00000FF00027C7C800000FF00027C7C800059 +:1005B000000000000000000040403F00000000007C +:1005C0000101FF000000000040403F00000000006B +:1005D0000101FF000000000000000000000000001A +:1005E000807F00027C7C800000FF00027C7C800019 +:1005F00000FF00027C7C800001FF00027C7C800008 +:100600002047478800027C7C20C7C70800027C7C0A +:100610008080C04060301F0701010302060CF8E033 +:10062000000000000001030700002070F8F0E0C0A7 +:100630002F3F3E3C3E000000800000000000000014 +:10064000000000000000010000000000000000C0E9 +:1006500000000000010004040000000000C0006071 +:100660000000010004040209000000C00060A008AE +:10067000E0C7C70800027C7C20C7C70800027C7C5A +:100680008000204747880002800020C7C70800027A +:1006900000000000010004040000000000C0006031 +:1006A0000000010004040201000000C00060A00876 +:1006B000010004040201100800C00060A008902896 +:1006C00004040201100804020060A0089028488871 +:1006D0000201100804020100A00890284888008048 +:1006E0001008040201000000902848880484442473 +:1006F0008000E0C7C7080002800020C7C7080002CA +:10070000808FA02000202020007A02020002020236 +:10071000E0C7C70800027C7C21C6C60800027C7CBA +:1007200084C2C2C3C1C1C3C682840000000080600D +:100730008CC4C2C0C0C1C2C2162C205060808000D0 +:1007400088C5C5C6CA31C1C082040000000040800F +:1007500080C0CEF710C0C0C04A54C040A0806040E6 +:1007600080C0C0C1C1C1C3C30204000000000000BA +:1007700080C0C0C0C020F0D0A2A4406030180000EB +:100780008020A0A08020202000020202000202029D +:100790008000E0C7C7080002800021C6C60800022A +:1007A000B367000000000000E0FC00000000000053 +:1007B000BE77000000000000F87C00000000000090 +:1007C000BF7F000000000000B8BC00000000000077 +:1007D000BF7F000000000000D8DC00000000000027 +:1007E000BD79000000000000F8FC000000000000DF +:1007F000B773000000000000F8FC000000000000DB +:10080000FF80A080808080A0FE010501010101051C +:1008100000FF80A08080808000FE010501010101B1 +:100820000000FF80A08080800000FE010501010122 +:10083000FF80800000000000FE01010101010101B4 +:10084000FF80000000000000FE0101010101010124 +:10085000FF80800000000000FE0101010101010194 +:1008600000FE828282FE0F08FE828282FE00EF2856 +:10087000FE828282FE00EF28FE828282FE00EF2846 +:10088000807F00000000000001FF00000000000069 +:10089000A0807F00000000000501FF0000000000B4 +:1008A00080A0807F00000000010501FF0000000023 +:1008B00080FF00000000000001FF000000000000B9 +:1008C000007F00000000000001FF000000000000A9 +:1008D000807F00000000000001FF00000000000019 +:1008E00008080F00000000002828EF0000000000AA +:1008F0002828EF00000000002828EF00000000007A +:1009000000FC828282FE00CFFE828282FE000FE81F +:10091000FE828282FE00E02F00FE828282FE0FE8CD +:10092000FE828282FE00EF2800FE828282FEE020AC +:1009300060B0343B6BCFF40060B0346B3BBF6400FD +:10094000103074BBBBFF140000000000000000006A +:10095000FF80808E9FB2A2A5F0080808884808088A +:10096000FF80800E5F32A2A5F008080888480808BA +:10097000C794940E5F32A2A5C02058288848080862 +:100980002828E8070000000028282FE000000000C9 +:100990002828E80F0000000028282FE000000000B1 +:1009A0002828EF00000000002020E00000000000E8 +:1009B000F08084EB3B3FE400609084EBBBBF6400BD +:1009C000F030346B6B6F64000000926D6DFF92002D +:1009D000988E8087808080800808080808080808AA +:1009E00018CEA05720C08080080828502010080882 +:1009F00018CEA05724CB8A94080868B010080808BD +:100A000000F089898A897802F0888B88887B006762 +:100A1000F0888A888A7903FCF0888B88887B007349 +:100A200000F08B88888B7880F088A19AD81B007F93 +:100A3000F088888B887803CCF0888B88887B00636B +:100A4000F088888B887803E400F0888B88887B00A6 +:100A5000F0888B88887B00F8F0888B88887B00FF83 +:100A6000F0888B88887B00E700F08B88888B788300 +:100A7000F0888B88887B00F8F088888A897903FC65 +:100A800041423E000000000054947300000000004A +:100A90000000FE000000000014C40100000000007F +:100AA0000802FE000000000080807F0000000000BF +:100AB0002951DF000000000054542700000000000E +:100AC0001515F3000000000040409F0000000000EA +:100AD0000200FE000000000040A03F0000000000F7 +:100AE0001428E700000000002414C70000000000E4 +:100AF0000401FF000000000082423E0000000000F0 +:100B0000EFA85728D090E817FF0E91514946982436 +:100B1000FD0810100846AD509FD050AE312151D283 +:100B2000FF003C42818181429F9090600E111192A2 +:100B30009C8A8A9262091516FFB0C8C8B60911319D +:100B40009F292954B454235467140AED2D4A348A3A +:100B5000FF324A85878CB442DF101052EDADC60AD1 +:100B6000FF1C22414141225C7EA55B2D030C0E132C +:100B7000C116862E5F32A2A5C0A058A8D868202032 +:100B8000901F00000000000024E7000000000000AB +:100B900010F2000000000000AC6700000000000040 +:100BA0003DFF0000000000004C7F0000000000003E +:100BB00028CF0000000000004AF100000000000003 +:100BC000529F000000000000853C00000000000073 +:100BD00008F70000000000000AFC00000000000010 +:100BE000A0BF00000000000013F3000000000000A0 +:100BF000188EA05700CBAAA408082850A010A85807 +:100C00001E7B92066C3D1F03F9DF4A02B6DEBD1C57 +:100C1000DEF7931034D7CF8F76BF2D48DAB7B5D82B +:100C2000BDEECA1839FBF170F1FB7324ACC7DBF6DB +:100C3000CFFFCE80912F6EC73E7D6C0099E3F74EBB +:100C4000CFBE9680295FEFC738FE73208DEC808081 +:100C500004380F2010030C00200C27469021160E9C +:100C600000C38D5060438C000026D861021D608057 +:100C70000026D861021D6080003C478C00E01B0408 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0006000000000000000300C00000000000068 +:100CF00030000000000000000600000000000000BE +:100D000040B9C6310234C8200623D40B8046211ACC +:100D100031C629224C30C804030EC12056480700B2 +:100D20001429C20C1023C01808D619A2458201420A +:100D30000876D9200060C1321C30A44084489460F9 +:100D400000027E7EFE000607087272EE0020672712 +:100D5000126666DE0020E0E4027E7EFE000027E7E9 +:100D600000027E7EFE80E0E7029E4EEE000027E756 +:100D7000027E7EFE0020E6E600027E7EFE006767C1 +:100D80001000000000000000041008000000000037 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000020000000000000041 +:100DB0001C1100000000000008800000000000007E +:100DC0000F000000000000006F00000000000000A5 +:100DD000E60E0000000000006FE0000000000000D0 +:100DE000E70F000000000000EFE00000000000003E +:100DF000ED00000000000000EF0000000000000017 +:100E000000027E7EFE80E2E700027E7EFE00672713 +:100E1000047062EE0020E7E7027E7EFE002027A736 +:100E2000047C78F20020E0E4027E7EFE000027E7EA +:100E3000027E7EFE0021E6E400027E7EFE0060E08F +:100E400000000008420F3ED9000000000009C0E386 +:100E5000000040E070FEBCFF000010004000C56FC5 +:100E60000000000004307FD9000000040061FEE7AC +:100E700000000003108060FB00000080E068FF7F3E +:100E8000E70F0000000000002F60000000000000DD +:100E9000EF00000000000000AF00000000000000B4 +:100EA0000B00000000000000E00000000000000057 +:100EB000ED00000000000000E00000000000000065 +:100EC000FFFFF7FFDFFEFFFFFFBBFFFFFD7FFFFF21 +:100ED000E7FBFFBBFFDFFFFFFDFFFDEFFFBFFFFFF6 +:100EE000FFFFF7FFDFFEFFFFFFBBFFFFFD7FFFFF01 +:100EF0009F7FFDFFEFFFFFFF7FEDFFFDEFFFFFFF98 +:100F0000000000000846E3CF00000800100CC77D79 +:100F1000000000000B4385FF0000000000C4F3FF49 +:100F2000000000000000021E0000000000004078E9 +:100F300000001F3F3F1F0F070133FAF8F8F8F0E3F6 +:100F40004040071F3F7F3F7F0167F7F6F0F0F0E179 +:100F50000418303103030707040E7EFEFFFFFFFF76 +:100F600000000F1F1F1F3F3F00089EFFFFFFFEFEF8 +:100F700000020F1F1F3F1E3E011E380000041F3FCE +:100F8000FFDBFFFBDFFFFFFFFFEFFFFD6FFFFFFF5B +:100F9000DFFFDFFFEFFF7FFE6FFF9EFFDFFBFFFF47 +:100FA000062F2D0D0603030060F4B4B060C0C0002E +:100FB0007330000000000000C107000000000000C6 +:100FC0003F4F400000000000C38F00000000000001 +:100FD0001339000000000000FEF8000000000000CF +:100FE0001F03000000000000FCF0000000000000F3 +:100FF0001C000000000000001E1C0000000000009B +:101000000F3E386060604003C685223030366F6C1A +:101010000F3F70674E39073E860FD9DB1EC6F004BE +:101020001F3F60606060400184C62E6D6969CBD34C +:10103000060E060606060600000000000008042250 +:1010400000000000000103070000404870F0FCE0D1 +:10105000010100000000000040400000000000000E +:1010600001010000000000004040000000000000FE +:1010700001010000000000004040000000000000EE +:101080001F07000000000000ED93000000000000BA +:101090007807000000000000DAFC000000000000FB +:1010A0003F1F000000000000960E0000000000003E +:1010B00002050B0610295A3155306814AC58C0800F +:1010C0000F0F1F3F3C786000E0C080000000000070 +:1010D00000000000003F02010000000000FF80004F +:1010E0000000000000FF02010000000000FC804042 +:1010F00000000000001F02010000000000FF80400F +:10110000010100000000000040400000000000005D +:10111000FF80808080808080FF00000000000080D1 +:10112000FF0101010101018180808080808080FFBA +:1011300000000000000000FF01010101010101FFAA +:101140000042810000003C660042810000183858CF +:10115000000000000000000000000020601060F0AF +:10116000000000000000000000000000485060384F +:10117000000000000000000000000000000000006F +:101180000000000000FF02010000000000FC8040A1 +:1011900080808080808080800000000000000080CF +:1011A0000101010101010181FFFFFFFFFFFFFFFFBF +:1011B000000000000000000000000000000000002F +:1011C0006666663C000000001818187E00000000EB +:1011D0000000020713256D3230D0D020E0C000009F +:1011E00000000000000000000000000000000000FF +:1011F0000004000000210000486CF4FC7C1C080086 +:101200000000010303030D06000000000010302061 +:1012100000000000000002000000000804C21010DE +:101220000C1C2C2C3E0C0C000C12101C16160C0066 +:101230001838191A1A1B190000008C5252DE8C0043 +:1012400024A0008F1EB0606228480010000000003B +:10125000000A180F5E7020220301113010000800F0 +:101260000080800F1822200710E301008042000850 +:1012700020C180000500022010E3210000020404C8 +:10128000020000010103061800E050808000000009 +:1012900001021011030A04012464C4CC9838F0C080 +:1012A0000C1606060C181E000C16160C16160C0052 +:1012B00000003048487830000C16060C06160C006A +:1012C00002A9059C18904143D0B01000C02810809E +:1012D0000229051C5810C043C08001180800108264 +:1012E0008A2905C484440883C0880001000C148046 +:1012F000800620C38000489B8000000909000092FE +:10130000000000000000000500000000000080D088 +:10131000000001000C06070F00000080C0B060C094 +:101320000000000000000000000000000000206835 +:101330000000000000070E10000000003C4E83007B +:10134000000000000000000000000000000000801D +:101350001C10101C06061C001E06060C0C0C0C00B3 +:101360000C16160E06061C0000000000007020601F +:10137000000000000101043A00000000002050C0FD +:1013800005020010180C030030E0C0048098F00043 +:10139000181000080000000000000000000000001D +:1013A0000304040808000000F4181C1408000000DE +:1013B000030604020000000000000000000000001E +:1013C0000771EEFE7F726201F0C0200E7C7EEE603F +:1013D000000000000000000000000000000000000D +:1013E0000001020800000000901010002000000022 +:1013F000371725151A1B0D00D0A0B0D8D8B0200083 +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:1014800060B0B46BBBBF64000000926D6DFF920052 +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:10150000003BFDA0A101000867FD8A8A0498DF4A1C +:10151000F3FDA1A0106CDF1AE3FD91A02010DF08FD +:1015200073FD91880959D31FECFD858809821FD866 +:10153000BCFD9091619AD22F99E7FD9284B193C836 +:1015400072DFFD908139538ACBFD909020B9DF0A7C +:101550000159FE84C908544F86FDA89810A15FC8A0 +:10156000C6FFA1C0402BDF4800CCFC90A02010009B +:101570000000000000000103000000004850E0F8F7 +:10158000080700000000000028E70000000000003D +:1015900028E700000000000028E70000000000002D +:1015A00028E80700000000002827E00000000000F5 +:1015B00028E80700000000002827E00000000000E5 +:1015C00028E700000000000028E7000000000000FD +:1015D00028E80700000000002827E00000000000C5 +:1015E00028E700000000000020E0000000000000EC +:1015F0000307070C18100000C08000000000000066 +:1016000000808000000000000000000000000000DA +:10161000C02020E0000000000000000000000000EA +:10162000F00808F8000080800000000000000000C2 +:10163000FC82827E00C0202000000000000000002C +:101640003FA0A09F00F008080080808000000000FC +:10165000CF2828E700FC8282C02020E000000000A4 +:10166000F30A0AF9003FA0A0F00808F80000808003 +:10167000FC82827E00CF2828FC82827E00C020204F +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A00080000000000000000000000000000000BA +:1016B000E00000000000000000000000000000004A +:1016C000F800000000000000000000000000000022 +:1016D0007E0000000000000000000000000000008C +:1016E0009F000000000000008000000000000000DB +:1016F000EF00000000000000E0000000000000001B +:10170000C7A86C08C0206880F30A2C1800101808BD +:10171000C7A86C08C0A0A8A0FF00241800100800EB +:10172000C0AA6C08C0A0E8007F8024180010080040 +:10173000C1AA6C08C0A0A8A4FC822418001008004C +:10174000C7A86C08C0A0A8A0FF002418001008E0DB +:10175000C6AA6C08C0A0A8A07F80241800100800AA +:101760004B4C484C4B484848000C5041910E0000EF +:10177000006384088C730000000C1041518E00003F +:10178000C46A0A3E0000000000FC82827E00000065 +:10179000A06C0A7A3E000000FE84887200000000FF +:1017A00044EA0A3E00000000FC82827E0000000045 +:1017B000AE6A8E0000000000DCD2223E0000000075 +:1017C000A46A0A3E000000002ED26600000000005D +:1017D000A46A0A3E000000009CD2AA660000000035 +:1017E0004848A850200000000162800A897000006B +:1017F00089092929C90909090909150A04000000EC +:101800000000000000000201000000000000F0B82D +:1018100000060C08080C070000000000000000FC97 +:10182000000000000000070F000000000000F8FCAE +:101830000000000000000F1F000000000000E0F0AA +:10184000D8F8787060C08000000000000001030438 +:1018500000000000C0809000000000000000003F79 +:1018600000000000000000C0000000000000007F39 +:101870000000000000000001000000000000000067 +:10188000000000000000000100000000000101FF56 +:10189000071F3C70E0C08000FF8F010000000000C7 +:1018A0000CCCEC7C3C1C0C040E0707030303010169 +:1018B000181898D8D8F8F8F8383C3E3F3F3F3F3FDB +:1018C00000000103070E0CFC1F7FE08000000000F9 +:1018D000F0FC1E07010000007F606060E0E0602017 +:1018E000E070783C3E3E1F1FFFC1C1C1C1C1C1C1F4 +:1018F00080C0E0F0F8F8F8F8282828201008030045 +:10190000070F1C387060E0C0FF0101010101017F79 +:10191000000103070F1F1F1F00F8FEFFFFFFFFFF5F +:10192000020201018180C0C0000000000090909878 +:10193000F8F8F878783939393F3860C0C08080814C +:10194000FC040404040404FC00071F3F7F7FFFFF26 +:1019500000C0F0F8F8FCFEFE20101008080804048F +:101960000F0F0F0707030383C1C1C1C1C1C1C1C1AB +:10197000F8F8F8F8F8F8F8F8040404040810C000BF +:10198000C0C1C1C0C0C06070C0F8F8F8F8380E031C +:101990003F3F3F3F3F3F1F9FF8E0C0C080808080B7 +:1019A00060606060606060C098989C9C9E9E9E9FF6 +:1019B0001919090909010000838383818180C0C04E +:1019C00080C1C1C1C161380CFFFFFFFEFEFCFC7C81 +:1019D000C38303030303030604040404040404048C +:1019E0008181C1C0E0E0F0F0C1C1C1C1C14141018C +:1019F000F8F8F8F8F8F8F8F8000000000000000126 +:101A000030383C1F0F07070F00000000C0F0FCFE3D +:101A1000CF673F1F0F0603038081C7FFFC00000054 +:101A2000C08001010302060C9F9F1F1F1F1F1F1F65 +:101A3000808080C0C0E0E0F06070383E3F3F7FDFD4 +:101A40000703010180C0E0F07C3C9CDE6F67303012 +:101A5000060C1878F0C0000004040C080818106088 +:101A6000F0F8F8F8FCFCFEFE0101010101010101A2 +:101A7000F8F8F8F8F8F8F8F803030D1E1E0C00004B +:101A80000F191830302060C0FEFEFE3C0000000040 +:101A90000202020202020707000000010FFFFFFF1F +:101AA0001C3C7FFFFFFFFFFF1F1FFFFFFFFFFFFF2C +:101AB000B0B19F9F87868783CF8783000000000097 +:101AC000F0F0F0E00000000020202020282F3F7FD1 +:101AD000000001071FFFFFFF60E0E0FFFFFFFFFFC7 +:101AE000FEFFFFFDFDFCFCFC010101FFFFFF7F3F4E +:101AF000F8F8F8F8F8F8F8F800000000307878B056 +:101B0000C0703C1F0F07030100000001FFFFFFFF33 +:101B10000D1B7FFFFFFFFFFFFFFFFFFFCFC0800018 +:101B2000FFFEF8F0800000007F3F00000000000092 +:101B30008301000000000000C0E0F07C3F1F0F07A1 +:101B40000001030FFFFFFFFFFFFFFFFFFFFEFEFC93 +:101B5000FFFFFF3F00000000FFF7E08000000000F3 +:101B6000FCF80000000000001F0F00000000000053 +:101B7000F8F0000000000000C0C08000000000007D +:101B80000000000000000000FF7F1F0700000000B1 +:101B9000FFFEF8E00000000001000203050106005E +:101BA0000404040CB8000000000000000000010064 +:101BB00000000000000010C803000000000000004A +:101BC000FFFF0F0000000000F8F0C0000000000060 +:101BD0000000000000000000000000000000000005 +:101BE000060C0C0305050000603030C0A0A000000A +:101BF000020D080000003F004080E04040C080002F +:101C00001F7FFFFF7F7F3C0F00000080C0406020EF +:101C100000000001030206060000000000010005AC +:101C2000050C0A16A0240548E05010B0A6018F2527 +:101C30000000000000808040F0FDFEDFDFBD7EFF81 +:101C4000073FFFFFFFFFFF77F0FBFFFFBFBD7DFA00 +:101C50001FFFFFFFF7F7FBFDF8F9FFFFFDFDFB7727 +:101C600007EFFFFFFFBFBFDF80E3FFFFFFFBF7F7DB +:101C700001C3FFFFFDF5EEC1F0FFFFFFFFFEFDFD1D +:101C80000000000000000000303010181818183054 +:101C90001C0C30226642412600030302C2221406B5 +:101CA00008001F7E7D1E0719DA00F8E040C080089A +:101CB00080A080640E1C0C0CFC00000000000000E2 +:101CC0000700000000000000E0000000000000002D +:101CD0003C000000000000000000000000000000C8 +:101CE0003F0F000000000000E800000000000000BE +:101CF000000000000000000078000000000000006C +:101D00000FFFFFFBF7F7EF8200000000000001006B +:101D100000000318360E46A0010704168605058547 +:101D2000EDFD0303F3E5C1E00D1E202000070303D2 +:101D3000C2C6246828A8E8E2000060504C5D183153 +:101D400000000000000000C0F0FFFFFFFFDE3EFDCE +:101D500003DFFFFFFFFFDF9F80F8FCDEEEECF4F017 +:101D6000000003070E1C1B360379FCEE9F0BD97392 +:101D7000AA4EAB70A44C8CE3000020D0A8140A9AA1 +:101D8000000000000000000000040D021515041200 +:101D9000A4C802A8EA02A8A0C545A54402A3818060 +:101DA000E0F4E6D5070080E30707E39BD0081DFFBA +:101DB000E6E4A82000C0801022440C1831E3C60CD1 +:101DC000707078C09C061743E0000000000000001F +:101DD0003F0E000000000000E000000000000000D6 +:101DE0003C6D6FD6E2D4E3D490A157A72F1B3F7D63 +:101DF0000442353222201A9D0D0D7216A31F63571F +:101E0000000000000000000010071E0C18342E26F1 +:101E100002F30B367C79B993550607538B63296916 +:101E20000F834020B89EDFEFD8200107070ECC813A +:101E3000141198216B52D483668000006088099940 +:101E40000000C060203818C400000000000000003E +:101E500000428100003C660600428100003C6606AC +:101E6000D5E3D563F2A67D5585C29EBBEF47330906 +:101E70005CB0000911120418112519251A624105D8 +:101E80000000000000030C00141B181878789090D4 +:101E90004E3A06040C1B264E61C00CC4B0984C266A +:101EA000F7F3F8BF574F2710E3C78EF7ECD9EAE0F6 +:101EB000A7238045830080C479004488888A8A8A61 +:101EC000C5F8C0A080A0A0A0000000004010381CF1 +:101ED0000C30607E000000001C06663C0000000024 +:101EE00039291C0F0503000080C0AA15C060D83C2A +:101EF000C30454AAA0430CF3CA021428D020C00083 +:101F00002569DBF7F56B6A0AF0E0C1C284810F0F27 +:101F1000CE9D3B60E1C81A349FCFC763F17C3E1F62 +:101F20000780E0F8FFBF5B2CD0010119F2E4CCD9A7 +:101F300060F0F3E74F1FAE7468C60CC08206071D41 +:101F4000C21A3327168B45A6CC629199470200002E +:101F500000428100000E1E3600428100007E607C3F +:101F600000428100003C666600428100003C6666DB +:101F700000428100003C666000428100007E060C49 +:101F80008A6864381C0600000E0C040200C0C24FB0 +:101F900005E9FAB2020D024187C301F8FCFCF0E149 +:101FA000178B86E3380F8CF0F3C6DCF102FEE007F6 +:101FB0002103800103383E0E25052531B939000281 +:101FC00043514060F0200000061C10C08C880000C7 +:101FD000667E0606000000006606663C0000000003 +:101FE0003C66663C000000003E060C380000000025 +:101FF0007C66663C000000001830303000000000B5 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_8_b5.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_8_b5.hex new file mode 100644 index 00000000..72679dc9 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_8_b5.hex @@ -0,0 +1,513 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:100400007FEFEF96FCFDE7CFFFF3EF2FFFFFFDFB44 +:10041000FFDFDFFFFF9877EFFFBB77F7FB7BFFEF97 +:10042000FE7F7FF0EFDFBFBF0FEFEFDF5FEFFFF982 +:10043000FFCFBF7F7F7FBFDFFFE7DFDF3D7BEFF7D2 +:10044000CDBBBB977777EBDCFFFBF7F7F7FBFFF351 +:10045000FFEFDFDF9F8F767EFEDEBEBEDE32EEEE8A +:1004600060E06C62626E6C000000CC2222EECC0078 +:1004700060E06964646D69000000249292B6240013 +:100480009F04000000000000FF00000000000000CA +:10049000EF07000000000000F7010000000000006E +:1004A0008F07000000000000F703000000000000BC +:1004B000FE000000000000003B0200000000000001 +:1004C000DF20000000000000EF0600000000000038 +:1004D000BF30000000000000DC0000000000000051 +:1004E0001E10111C06071C000000984444DC9800F4 +:1004F0000000661111776600000000000000000097 +:10050000609086E1B1B76600F03036316167660011 +:1005100070989A71999B760060B0B6713137E60099 +:10052000F8F0F3F3F38000FFF8F0F3F3F38000FF4B +:100530007F7F7F7F40000000FFFEFEFE00007F7F88 +:10054000007F7F7F7F4080FE00FFFEFEFE00007F79 +:100550007F7F7F7F4000FFFEFFFEFEFE0000000069 +:10056000F8F0F3F3F38000FFF8F0F3F3F38000FF0B +:10057000F8F0F3F3F38000FFF8F0F3F3F38000FEFC +:1005800070981A3161C7FA0070981A31199B760079 +:10059000103072B1B1FB3600F08086E13137E600F1 +:1005A000FF0000FC80800000FF0000FC8080000055 +:1005B00000000000000000007F7F400000000000FD +:1005C000FEFE0000000000007F7F400000000000F1 +:1005D000FEFE00000000000000000000000000001F +:1005E000FF8000FC80800000FF0000FC8080000095 +:1005F000FF0000FC80800000FE0000FC8080000006 +:10060000CF88880000FC8080CF08080000FC808034 +:10061000FFEFBF777D3F1D07FFF7FDEEBAFCD8E087 +:10062000000000000001030700002070F8F0E0C0A7 +:100630002F3F3E3C3E000000800000000000000014 +:100640000000000000000101000000000000004068 +:1006500000000000010107010000000000408000D0 +:10066000000001010701040600000040800040680E +:100670000F08080000FC8080CF08080000FC808084 +:100680000000CF88880000FC0000CF08080000FCB4 +:100690000000000001010701000000000040800090 +:1006A000000001010701040E0000004080004068C6 +:1006B00001010701040E1F130040800040680090F4 +:1006C0000701040E1F13191C800040680090307051 +:1006D000040E1F13191C3E3F40680090307078389C +:1006E0001F13191C3E3F3F3F00903070783898C868 +:1006F00000000F08080000FC0000CF08080000FC04 +:100700006F60404000C0C0C07E04040400040404C4 +:100710000F08080000FC8080CE08080000FC8080E4 +:10072000F8FCFCFDFEFEFDFBFCF8F8F8F878789884 +:10073000F7FBFDFFFFFEFCFDE4C8C898B838F8F8E9 +:10074000F0F9F9FBF0C6FEFFFCF8F8F8F8F8783895 +:10075000FFFFF1CEFFFFFFFF8C9878783838B8B8EC +:10076000FFFFFFFEFEFEFDFDFCF8F8F8F8F8F8F8D4 +:10077000FFFFFFFFFFFFDFEF7C38B8B8D8E0F8F8E5 +:1007800000404040004040C0000404040004040451 +:1007900000000F08080000FC0000CE08080000FC64 +:1007A000C4880000000000000000000000000000FD +:1007B000C0800000000000000000000000000000F9 +:1007C000C0800000000000000000000000000000E9 +:1007D000C0800000000000000000000000000000D9 +:1007E000C0820000000000000000000000000000C7 +:1007F000C0840000000000000000000000000000B5 +:10080000FFFFEFCFFFFFFFEFFFFEFCF8FEFEFEFC59 +:1008100000FFFFEFCFFFFFFF00FFFEFCF8FEFEFE34 +:100820000000FFFFEFCFFFFF0000FFFEFCF8FEFE21 +:10083000FFFF8301393F3901FFFEC68292920038E3 +:10084000FFFF03013901033FFFFE8000383E3800FF +:10085000FFFF830139393901FFFE381000002838C5 +:1008600000FEFCFCFC000F0FFEFCFCFC0000EFCFC8 +:10087000FEFCFCFC0000EFCFFEFCFCFC0000EFCF18 +:10088000CF80000000000000F80000000000000021 +:10089000EFCF800000000000FCF800000000000026 +:1008A000FFEFCF8000000000FEFCF8000000000019 +:1008B000830000000000000038000000000000007D +:1008C0003F800000000000008200000000000000E7 +:1008D00083800000000000003800000000000000DD +:1008E0000F0F000000000000CFCF0000000000004C +:1008F000CFCF000000000000CFCF000000000000BC +:1009000000FEFCFCFC0000EFFEFCFCFC00000FEF16 +:10091000FEFCFCFC0000E0CF00FEFCFCFC000FEF46 +:10092000FEFCFCFC0000EFCF00FEFCFCFC00E0C085 +:1009300060B0343262C6F40060B0346232B6640033 +:10094000103074B2B2FA1400000000000000000081 +:10095000FFFFFEEFDFB2E2E7F8F070B0D0602020DA +:10096000FFFFFEEF5F32A2A7F8F070B0D06020204A +:10097000E7E7E7EF5F32A2A7E8C810B0D060202019 +:10098000CFCF0F0800000000CFCFC0000000000054 +:10099000CFCF0F0000000000CFCFC000000000004C +:1009A000CFCF000000000000C0C000000000000029 +:1009B000F08084E23236E400609084E2B2B66400F3 +:1009C000F0303462626664000000924949DB9200B4 +:1009D000DAEFF5FFFCFFFFFFD0B03070F0F0F0F081 +:1009E0001AEFC59F3CFFFFFFD0B01040E0F8F0F0D9 +:1009F0001AEFC59F38F3F3E7D0B050E0F8F0F0F00D +:100A000000F8F1F1F3F28003F8F0F3F3F3800077EC +:100A1000F8F0F2F2F08200F8F8F0F3F3F380007BE4 +:100A200000F8F3F3F3F08000F8F0C1D393A0007F57 +:100A3000F8F0F0F3F38300E8F8F0F3F3F3800063E9 +:100A4000F8F0F0F3F38300F000F8F0F3F3F3800034 +:100A5000F8F0F3F3F38000FCF8F0F3F3F38000FF19 +:100A6000F8F0F3F3F38000F700F8F3F3F3F080030A +:100A7000F8F0F3F3F38000F8F8F0F0F3F28200F806 +:100A80007E7C40000000000067E78400000000005A +:100A9000FFFF000000000000E70702000000000068 +:100AA000F0FC000000000000FFFF800000000000DC +:100AB000CE9E0000000000006767480000000000B4 +:100AC000E6E60400000000007F7F20000000000038 +:100AD000FCFF0000000000007F3F4000000000001D +:100AE000E7CF080000000000C7E708000000000092 +:100AF000F8FE000000000000FC7C40000000000048 +:100B0000EFCF9837EFEF97FFFFF16FEFF7FFE7DFDA +:100B1000FAF7EFEFF7BF72EEDF9F9F31AF3F1F9FF6 +:100B2000FFFFC3BF7F7F7FBFFF7F7FFFF1EFEF6FCF +:100B3000FE7C7C7CFCF1E5E4FFCFBFBFF9F7EF2F33 +:100B4000DFCECEA767E7C298F7E7EDCBCB8F27F3D1 +:100B5000FECDB57E7C7B7BFE3FFFFF9DCBCB8733FD +:100B6000FFE3DFBFBFBFFFBFFF3A96CEE2E9D0EEA3 +:100B7000E56480CF1F32A227E8C810308040000013 +:100B8000FFE0000000000000DF180000000000008F +:100B9000EE0C000000000000CF8800000000000004 +:100BA000DE00000000000000FF80000000000000E8 +:100BB000CF100000000000008F06000000000000C1 +:100BC0009C20000000000000F9410000000000002F +:100BD000F100000000000000F30100000000000030 +:100BE0007F40000000000000EE0C0000000000004C +:100BF0001AAF859F00D3C3C7D0B01040E038309003 +:100C00000000046DFD7F7F3F000000B7FCFCFDFF8E +:100C10000000007CEFEFFFFF000040DAF7F7FFFF76 +:100C20000000103DF7F7F7FF000004ACDFDFFFFF27 +:100C3000000000313F7FFFFF00008093F3F7FFFFCC +:100C4000000000297FFFFFFF0000008CDECEDEFCED +:100C50007076FE8C030F3F001C1F7BE1C1B77F182D +:100C6000030FDEBC33EFDF8C30F8FD831F6EFCE03A +:100C700030F8FD831F6EFCE03873FFC3A07BFF1FBD +:100C80001F03000000000000BF1C00000000000067 +:100C9000DF8F000000000000FDD800000000000011 +:100CA000FD78000000000000FFF6000000000000DA +:100CB000EFC7000000000000FFCE000000000000B1 +:100CC000EFC7000000000000F080000000000000FE +:100CD00070C00000000000000800000000000000DC +:100CE000000000000000000068200000000000007C +:100CF0008000000000000000000000000000000074 +:100D0000387CFDC337FEFCC821F7FFDC08E17B3FE0 +:100D1000C6EDEB0F3EFCF0C00CDFEFF0381F0F0705 +:100D200001C3EFDE39F3E3C0C6CFBF79A6C78301A5 +:100D300066EFBF990081F3FF0C9EF1E04099FEF44D +:100D400000FC82827E000A09F296966E00CFA868A7 +:100D5000E4AAAA4E00C02D29FC82827E000FE8285A +:100D600000FC82827E802F28BC22D26E000FC82811 +:100D7000FC82827E00CF282A00FC82827E00A8A806 +:100D800000000000000000001E0400000000000041 +:100D90000000000000000000000000000000000053 +:100DA0000000000000000000000000000000000043 +:100DB0002E0C000000000000600000000000000099 +:100DC00007000000000000002700000000000000F5 +:100DD000EA06000000000000A7600000000000001C +:100DE000E80700000000000027E00000000000000D +:100DF000E400000000000000E70000000000000028 +:100E000000FC82827E802C2800FC82827E00886822 +:100E1000F892AE6600CF2828FC82827E004F688858 +:100E2000F884887200C02D2DFC82827E000FC828B5 +:100E3000FC82827E00CE2A2D00FC82827E00A020D1 +:100E400000002008440823E60000000002080178A2 +:100E500000004080508CE30000001000480083D860 +:100E6000000000008430FFE60002000400E11B786F +:100E70000000000210848001000000008078C0E0C3 +:100E8000E9070000000000006720000000000000EB +:100E9000E7000000000000008700000000000000E4 +:100EA0000100000000000000E00000000000000061 +:100EB000E400000000000000E0000000000000006E +:100EC00000001C006007C00000C7000007C00070E1 +:100ED000183F00C60063001F0600023800E007004C +:100EE00000001C006007C00000C7000007C00070C1 +:100EF000F0800F00780007E083720003D00E00003E +:100F0000000020000844847800000802400000E34C +:100F1000000004200002C70000000002000083005F +:100F20000000000002000D11000000004080B088A9 +:100F30007FFFE04020100807EFD51A08081836EDAB +:100F4000871F3860C0804046DEE9331610303266B5 +:100F50007C695336040C082478F28E0607010337A7 +:100F60000F3F706060604038F8FE62070F0B066E3E +:100F70001C3C73636343263EFE6658003C7A614323 +:100F800000AC000C61003F00003C0007D0001C00DA +:100F90007800E3005E00C0079E00F900300600857F +:100FA0001F3931111F1F0F00F89C8C88F8F8F000D2 +:100FB0001330000000000000C70300000000000024 +:100FC0003F8F400000000000CD8B000000000000BB +:100FD0006259000000000000FEF800000000000060 +:100FE0001F03000000000000FCF0000000000000F3 +:100FF0001C000000000000002E1C0000000000008B +:101000000F3F3F7F7F7F7F3CC7E6C0C0C0C68F8F4A +:101010000F3F7F787001073F868F1E1C10C0F0F8CD +:101020001F3F7F7F7F7F7F3E84E6CF8E8E8E0C1C9E +:10103000060E06060606060000000000000000403E +:1010400000000000000103070000000000C0E0E015 +:1010500003033F3E3F3F3F3E8080FFFFFFFFFFFF18 +:101060000303FFFEFFFFFFFE8080FCFCFCFCFCFC9A +:1010700003033F3E3F3F3F3E8080FFFFFFFFFFFFF8 +:1010800000000000000000000E1C00000000000036 +:101090007F38000000000000240000000000000075 +:1010A0000000000000000000180000000000000028 +:1010B000040E040021732100E0400018108000009D +:1010C0000F1F1F3F3E786000E0C08000000000005E +:1010D0003F3F3F3E3F000103FFFFFFFFFF00008057 +:1010E000FFFFFFFEFF000103FCFCFCFCFC00008096 +:1010F0003F3F3F3E3F000103FFFFFFFFFF00008037 +:101100000303FFFEFFFFFFFE8080FCFCFCFCFCFCF9 +:1011100000000000000000000000000000000000CF +:1011200000000000000000000000000000000000BF +:1011300000000000000000000000000000000000AF +:10114000003C7EFFFFFFFDE6003C7EFFFFFBFBDB7C +:10115000000000000000000000000000000000008F +:10116000000000000000010300000000000080C03B +:10117000000000000000000000000000000000600F +:10118000FFFFFFFEFF000103FCFCFCFCFC000080F5 +:10119000000000000000000000000000000000004F +:1011A000000000000000000000000000000000003F +:1011B000000000000000000000000000000000002F +:1011C000EEEEEEBCC1FFFFFFFBFBFBFE80FFFFFF6F +:1011D000000101000C101000C080000000000000A1 +:1011E0000307070F1E182000E0E0C0800000000089 +:1011F000060F0F06317B7B31F000000080C0C080FD +:1012000000000103030311380000008080808884FF +:10121000000000000001040C00000000000000605D +:101220000C1C2C2C3E0C0C000C12101C16160C0066 +:101230001838191A1A1B190000008C5252DE8C0043 +:10124000C184800E1FF2A2A5C08010208040000043 +:101250000030020E1F3222250000E04080481000BE +:10126000C300003E1FB0A2A0E7000000000038103D +:10127000C300000E08A0A080E7000000000C0000E2 +:101280002C0707060E0C08000000A010000000004C +:101290000913030604040000C080000000000000E1 +:1012A0000C1606060C181E000C16160C16160C0052 +:1012B00000003048487830000C16060C06160C006A +:1012C000188E801700C3828400000040A0102010F8 +:1012D000180E005700008384000000000000E0109A +:1012E000100E8007080803C4081001000040E01039 +:1012F0001008C004001013C4000001000000C0600A +:10130000000000000000000500000000000080D088 +:101310000000000000010C1F000000000040903899 +:10132000000000000000000100000000000000803C +:10133000000000000000010300000000000040E089 +:10134000000000000000030F000000000000E0F8B3 +:101350001C10101C06061C001E06060C0C0C0C00B3 +:101360000C16160E06061C0000000000000000000F +:101370000000000000001821000000000000201004 +:101380000707070304020000F0F0F0E01820000057 +:101390003F3F3F1F0F030000FCFCFCF8F0C00000C3 +:1013A0000306070D0F0E070000E0C068F0D0E00054 +:1013B000070F0F0F07030300E0F0F0F0E0C000009C +:1013C0001F0F010101020000FCFCF8F0000000000A +:1013D000000000000000000000000000000000000D +:1013E00000000C1E1E0C0000000000307878300059 +:1013F0002222120201000000101000000000000074 +:1014000000000000000000000000000000000000DC +:1014100000000000000000000000000000000000CC +:1014200000000000000000000000000000000000BC +:1014300000000000000000000000000000000000AC +:10144000000000000000000000000000000000009C +:10145000000000000000000000000000000000008C +:10146000000000000000000000000000000000007C +:10147000000000000000000000000000000000006C +:1014800060B0B462B2B664000000924949DB9200D9 +:10149000000000000000000000000000000000004C +:1014A000000000000000000000000000000000003C +:1014B000000000000000000000000000000000002C +:1014C000000000000000000000000000000000001C +:1014D000000000000000000000000000000000000C +:1014E00000000000000000000000000000000000FC +:1014F00000000000000000000000000000000000EC +:101500000000EEDCDC80000F00EEF4F48000AB8D18 +:1015100000EEDCDC8000EDCD00CEECDC8000EFC71F +:1015200000DEECF48000E0CB00FAF8F480000EEF6F +:1015300000F6ECEC8000E0C60000DEECF800018F65 +:101540000000F6ECFC80014D00F6ECEC8000EBCDE9 +:1015500000005C78B480008B00F6D4E480000DAF0E +:1015600000DCDCBC8000AE8F0000EEECDC8000C054 +:10157000000000000000010300000000000080C027 +:101580000F08000000000000CF080000000000006D +:10159000CF08000000000000CF080000000000009D +:1015A000CF0F080000000000CFC8000000000000BE +:1015B000CF0F080000000000CFC8000000000000AE +:1015C000CF08000000000000CF080000000000006D +:1015D000CF0F080000000000CFC80000000000008E +:1015E000CF08000000000000C00000000000000064 +:1015F0000307070F1E182000E0E0C0800000000075 +:10160000800000000000000000000000000000005A +:10161000E0C0C0000000000000000000000000006A +:10162000F8F0F00000800000000000000000000062 +:10163000FEFCFC8000E0C0C00000000000000000D4 +:10164000BF3F3F2000F8F0F08000000000000000E5 +:10165000EFCFCF0800FEFCFCE0C0C000000000009F +:10166000FBF3F30200BF3F3FF8F0F0000080000002 +:10167000FEFCFC8000EFCFCFFEFCFC8000E0C0C091 +:10168000000000000000000000000000000000005A +:10169000000000000000000000000000000000004A +:1016A000000000000000000000000000000000003A +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000800000000000000000000000000000008A +:1016E00020000000000000000000000000000000DA +:1016F00000000000000000000000000000000000EA +:10170000EFC78000E0C80080FBF330100018101015 +:10171000EFC78000E0C8C0C0FFFF381000181000FD +:10172000ECC48000E0C880807FFF381000181000F3 +:10173000EDC48000E0C8C0C6FEFC381000181000E0 +:10174000EFC78000E0C8C0C0FFFF3810001810F2DB +:10175000EFC48000E0C8C0C07FFF38100018100040 +:10176000F3F4F4F0F0F0F0F0804E111000000000FF +:1017700000738C8400000000008E511000000000F7 +:10178000EE8404C00000000000FEFCFC80000000AD +:10179000C0860484C0000000FCF8F2840000000051 +:1017A0006E8404C000000000FEFCFC00000000008D +:1017B000C4840000000000009E9CBC4000000000AB +:1017C000CE8404C000000000309C880000000000AF +:1017D000CE8404C000000000DE9CCC880000000025 +:1017E000F0F070200000000001728A80000000000C +:1017F000DE3E1E1E1E1E1E1E1E1E0E0400000000CB +:101800000000000000000201000000000000F0B82D +:10181000070F1F1F1F07000000000000000000FC52 +:10182000000000000000070F000000000000F8FCAE +:101830000000000000000F1F000000000000E0F0AA +:10184000D8F8F890800000000000000000000C1F95 +:1018500000000000C080E0F8000000000000003F31 +:1018600000000000000000C0000000000000007F39 +:101870000000000000000001000000000000000067 +:10188000000000000000000100000000000101FF56 +:10189000071F3F7FFFFFFFFFFFFFFFFFFFFFFFFF70 +:1018A0000FCFEFFFFFFFFFFDFCFEFEFEFFFFFFFF80 +:1018B0001F1F1F1F1F1F9F9FF0F0F0F0F0F0F0F7A9 +:1018C00000000103070F0FFF1F7FFFFFFFFFFFFF58 +:1018D000F0FCFEFFFFFFFFFF7F7F7F7FFFFFFFEF3B +:1018E000E0E0E0F0F0F0F8F8FFFFFFFFFFFFFFFFA0 +:1018F00080808080808080801F1F1F1F0F07000056 +:10190000070F1F3F7F7FFFFFFFFFFFFFFFFFFFFF6F +:101910007F7F7F7F7C7C7878FFFFFF0703010000DB +:10192000FEFEFFFFFFFFFFFFFFFF7F7F3FBFBFBF49 +:10193000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10194000FDFDFDFDFDFDFDFDFFFFFFFCF0E0E0C046 +:10195000FFFFFF3F1F0F0707EFF7F7FBFBFBFDFD47 +:10196000F8FCFCFEFEFEFFFFFFFFFFFFFFFFFFFF97 +:101970008080808080808080F8F8F8F8F0E00000B7 +:10198000FFFFFFFFFFFF7F7FC09F9FDFFFFFFFFF86 +:1019900070F0F0F0F0F0F8F8000000000000000037 +:1019A0007F7F7F7F7F7F7FFFBFBFBFBFBFBFBBBBCF +:1019B000FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF38 +:1019C000017F7FFFFFFFFFFFC080808080C0C0409D +:1019D0000303030303030307FDFDFDFDFDFDFDFD03 +:1019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:1019F00080808080808080800000000000000001E6 +:101A00003F3F1F0F0301060FFFFFFFFFFFFF7F0F89 +:101A1000FCFCF7FBFDFDFEFE000107FFFFFFFFFFE3 +:101A2000FFFFFFFFFFFEFEFDBBB9397878F8F8F83D +:101A3000FFFFFFFFFF7F7F7FFFFFFFFFF7F3F8FC54 +:101A4000FFFFFFFFFFFFFF7FE0E0F0BCDFDFEFEF16 +:101A5000070F1F7FFFFFFFFFFDFDFDFBFBFBF7EF08 +:101A6000DFDFDFDFCFCFC7C7FFFFFFFFFFFFFFFFD6 +:101A7000808080808080808003010C1E0C102040BC +:101A80000F1F1F3F3F3F7FFFC7FFFFFFFFFFFFFF0E +:101A9000FEFEFEFEFEFEFEFCFFFFFFFFFFFFFC0062 +:101AA000FFFFFFE7C0800000F8F8F8F0000000003A +:101AB0003F3F1F1F03070703FEFFFFFFFFFFFFFF5F +:101AC0003FFFFFFFFFFFFFFFEFEFEFEFEFEFEFE075 +:101AD000FFFFFFFFFFFCF000EFEFFFFF7F000000C4 +:101AE000C7C3C3C181000000FFFFFFFFFF0000006C +:101AF0008080808000000000000000043878308082 +:101B0000FF7F3F0F07010000FFFFFFFFFFFE000008 +:101B1000FEFCF0E08000000000000000000000007B +:101B200000000000000000000000000000000000B5 +:101B30000301000000000000FFFFFF3F1F0700003F +:101B4000FFFFFFFFFEF80000C0C0800000000000A3 +:101B50000000000000000000000000000000000085 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000C08000000000000025 +:101B80000000000000000000000000000000000055 +:101B90000000000000000000030100060E0E00001F +:101BA000F8F8F870000000000000000000000003DA +:101BB000000000000000E0F0000000000000000055 +:101BC0000000000000000000000000000000000015 +:101BD0000000000000001C0F00000000000038F0B2 +:101BE0000F1D1D3C38381F00F0B8B83C1C1CF80015 +:101BF0000C1E1F1F1F1F00004080E080800000009F +:101C00000F3F7F7FBF1C433000000000008080C07A +:101C100000000000000101010000000000010201BD +:101C20000F18170500A64303A08000A00210D9F0EA +:101C30000000000000000040E8F37DBFBF7BFD18FE +:101C4000031FFFFEFFEF4E88E8F5FFFF777BF2658D +:101C50002FBFFDFBF9F93C02E4FEFFFBFBFB6488B0 +:101C60000B9FFFEFDFDF5F2F4091E3FFF7F7E8C83F +:101C700000A5CFFFEEEAD13EE8F1FF7FFDFD7A023D +:101C80000F00000000000000C0C0E0E0E0E0E0C0A5 +:101C900003030B19193D3C180806040D01C0E08030 +:101CA000AA00FFFEFD1E03E18800FEFC7EE0800727 +:101CB00000802000000212A203FC000000000000CF +:101CC000F80F0300000000001FFCF00000000000FF +:101CD000C33C0000000000001F00000000000000E6 +:101CE000C0300F000000000017F8C0000000000026 +:101CF000C100000000000000877C00000000000020 +:101D000013CFF7F7EFCB107D0000000000000000BC +:101D10000000031D788040C08740406061E3E3E33A +:101D2000F3E30105FDF3EBF31E1F00101F0F1787F0 +:101D300000000004C6C6C6C6000000400010714284 +:101D40000000000000000000C8F1FFFFDD3DF902C7 +:101D500004AFFFFFFFDF3E6F4094FABDDDDAEA0C0F +:101D60000000010204081304071B9D6E9311E00795 +:101D7000CC803346C9890CE30000C0E0B0180CECFD +:101D8000C3000000000000000206061C1E16161408 +:101D9000C8CC88C8CC89C9C3E3E3430381C0C0C8A9 +:101DA000FCFEF9EFF3F87F1F0F7F1FE7EF1FFEFC2C +:101DB000C6C6C4C4C0010D0D450B13274E1C38F018 +:101DC00080E0C0001030648C1FF8000000000000AC +:101DD000C0310F000000000018E00000000000000B +:101DE00029294658A499A59918215BABB3023D7BDC +:101DF0001884DAD5CD409CDE1696631B2599A599EB +:101E0000000000000000000010000F0F0F2F27033C +:101E10000101C78FBF3E7E7C93C5C68602433371E6 +:101E200003C06070383C1E8FE0C000000830F0F83E +:101E3000080808181133236418000173FBF3F260DB +:101E40001C1E8FEFF5C000F800000000000000002D +:101E5000003C7EFFFFFDE68E003C7EFFFFFDE68E30 +:101E60009DA599A55A4629297B3D0233AB9B41305C +:101E70009E3C40CDD5DA841891A599251B734A164E +:101E80000000000000030F07232020204040C0C0B6 +:101E9000B00000000100000171F170C0E0D84C36C4 +:101EA000878380CCE672381FF0C001D9B3A61CF836 +:101EB00063C7C78200000000010188CC8844CCCCF5 +:101EC000F8C000C08040C0C00000000080E0F0F812 +:101ED000FCF1E7FE80FFFFFFFDE6FEBCC1FFFFFF58 +:101EE00015110904030000000F402AD515CA300F50 +:101EF000E30454ABA8530FFCEC0C9830E0C0000096 +:101F0000262C58F2F4642C0C81830604090A101064 +:101F100010214381000C1C3809060301C0E0703811 +:101F2000038060B0D86C361BE00103060D1B33E65E +:101F300040A060C2858B160C8C08000000010002D6 +:101F4000000000010180C86438180EC7E0F0FC7C76 +:101F5000003C7EFFFFFEFEF6003C7EFFFFFEE1FD43 +:101F6000003C7EFFFFFDE6EE003C7EFFFFFDE6EE5F +:101F7000003C7EFFFFFDE6E8003C7EFFFFFE86FCA6 +:101F80000C0C0501000000001012090404100000F0 +:101F900079516323030E1C009CCEE7030000000070 +:101FA0000C0781E0F83F03008C38E10003FFFC00E0 +:101FB00059F363C6800000001A3ABABA320202002E +:101FC000AAB1B0900000000098C00000000000001E +:101FD000EEFE86FEF8FFFFFFE6CEFEBCC1FFFFFF70 +:101FE000FCE6EEBCC1FFFFFFBEC6FCF9C3FFFFFF6E +:101FF000FDE6EEBCC1FFFFFFFBF3F7F7C7FFFFFFF6 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_9_m5.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_9_m5.hex new file mode 100644 index 00000000..8bd65fe4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/ss_9_m5.hex @@ -0,0 +1,513 @@ +:100000000000000000000C92121E0C800000020094 +:1000100000000000F0101070C0C070000020000050 +:10002000000000000080314A4A7B3180000002005D +:1000300000000000181C985858D8980000200000B4 +:1000400000000000038030494B7B3180000002003B +:1000500000000000D85C58D81818D8000020000014 +:100060000000000000000C92121E0C800000020034 +:1000700000000000F0101070C0C0700000200000F0 +:10008000000000000080314A4A7B318000000200FD +:10009000000000000C1A98584CC69E00002000007A +:1000A000000000000000314A4A7B3180000002005D +:1000B000000000000C12904C50D28C000020000078 +:1000C000000000000000314A4A7B3180000002003D +:1000D000000000000C12904C50D28C000020000058 +:1000E000000000000080314A4A7B3180000002009D +:1000F00000000000181C985858D8980000200000F4 +:1001000000000000010101004C00000000000000A0 +:10011000000030B030303C8ECC0000000000000009 +:10012000000000000000014C000000000000000082 +:1001300000000000007C0ECC000000000000000069 +:100140000000000000004C01000000000000000062 +:10015000000000003CBE3C308000000000000000B9 +:10016000000101010101004C000101010101000039 +:10017000B0303030303C8EC48E3C30303030B00047 +:10018000000000000000014C01010101000000001E +:1001900000000000209C1E9E3E303030B030000039 +:1001A000000000000000004C010000000000000002 +:1001B00000000000000CBE9E3EB0300000000000B9 +:1001C000000000000101004C0000000000000000E1 +:1001D000000030B0303C8ECEBC00000000000000BB +:1001E000000001010101004C0000000000000000BF +:1001F00030B03030303C8ECE4C90200000000000FB +:1002000000000000010101004C000000000000009F +:10021000000030B030303C8ECC0000000000000008 +:10022000000000000000014C000000000000000081 +:1002300000000000007C0ECC000000000000000068 +:100240000000000000004C01000000000000000061 +:10025000000000003CBE3C308000000000000000B8 +:100260000000020706FCFC01837C00010100000184 +:10027000000080C0C07E7E00827C00000000000084 +:10028000000020791F0E40310F010002000008001D +:100290000000C0B0F030307C1F87601C0000000000 +:1002A00000060F03010804030100000800200000FD +:1002B000000000F0E8B818B89C8E4624000000004A +:1002C00001030B09090404020309014100000000B5 +:1002D00000008080F8F8141CB8303018988C480062 +:1002E000010202020202019901020202020201005D +:1002F0006060606060781C881C786060606060008E +:10030000000000000000004C0100000000000000A0 +:10031000000000000008949E3EB030000000000085 +:10032000000000000000000C0000000000000000C1 +:10033000000000000010149E3430303030100000F7 +:10034000000000000000020000020208000000009F +:1003500000000000000000004000000080000000DD +:100360000000000000040000010800090000000077 +:1003700000000000000000001000001000800000DD +:100380000000000008010010100000240000080018 +:1003900000000080001000001008000080100080A5 +:1003A00000000102200010004000000410000100C5 +:1003B00000000000100400000008080020400000B9 +:1003C00000000000038030494B7B318000000200B8 +:1003D00000000000D85C58D81818D8000020000091 +:1003E000000000000080314A4A7B3180000002009A +:1003F000000000000C1A98584CC69E000020000017 +:1004000000000000000066EEAAEEFFCC0000000035 +:100410000000000076FF3E7EEECEFE6C0000000085 +:1004200000000000000049DBDBDBFFDB0000000018 +:1004300000000000060F3A686E67FF7E00000000B3 +:1004400000000000000166EEABEDFDEF00000000D3 +:1004500000000000E6EF7BF8CE87FFDE0000000022 +:1004600000000000000049DBDBDBFFDB00000000D8 +:1004700000000000061B3B6E6A69FF6E0000000072 +:1004800000000000000049DBDBDBFFDB00000000B8 +:1004900000000000081C3E6B6B5FFA7C000000004F +:1004A00000000000000049DBDBDBFFDB0000000098 +:1004B00000000000070F236F6E6CFF6E000000004D +:1004C00000000000000049DBDBDBFFDB0000000078 +:1004D00000000000060F236F6969FF6E0000000036 +:1004E00000000000000049DBDBDBFFDB0000000058 +:1004F000000000000F1E3C6E6E6EFE6C00000000DF +:1005000000000000000049DBDBDBFFDB0000000037 +:1005100000000000060B3B6E6B6BFF6E00000000DE +:1005200000000000000049DBDBDBFFDB0000000017 +:1005300000000000060B3B6F6A68FF6E00000000C1 +:1005400000000000000166EEABEDFDEF00000000D2 +:1005500000000000E6EB7BFECA99FFCE0000000021 +:1005600000000000000166EEABEDFDEF00000000B2 +:1005700000000000E8FC7EFFDF9FFEDC00000000C2 +:1005800000000000000166EEABEDFDEF0000000092 +:1005900000000000E7EF63E7CE9CFFCE0000000004 +:1005A00000000000000166EEABEDFDEF0000000072 +:1005B00000000000E6EF7BE74B1BFFCE00000000D1 +:1005C00000000000000166EEABEDFDEF0000000052 +:1005D00000000000EFFE7CFE4E0EEECC000000009E +:1005E000000000000000246DEDC9FF6D0000000058 +:1005F00000000000060F9FB6B626FEBC00000000FB +:1006000000000000000166EEABEDFDEF0000000011 +:1006100000000000E6EB6BEF6B0BEFCE000000007C +:10062000000000000000193B6A7B7F3B00000000D7 +:10063000000000001C3C8C9CB8B0FCB8000000001E +:1006400000000000000066EEAAEEFFEE00000000D1 +:10065000000000000C1E7EECACECFCF8000000007A +:1006600000000000000066EEAAEEFFEE00000000B1 +:1006700000000000060F7AE8AEE7FFFE0000000071 +:1006800000000000000066EEAAEEFFEE0000000091 +:1006900000000000060F7FEEAEEDFFEE0000000050 +:1006A00000000000000066EEAAEEFFEE0000000071 +:1006B00000000000081C7EEFAFDFFEFC0000000021 +:1006C00000000000000066EEAAEEFFEE0000000051 +:1006D00000000000070F63E7AEECFFEE0000000033 +:1006E00000000000000066EEAAEEFFEE0000000031 +:1006F00000000000060F7BE7AFEFFFEE00000000F8 +:1007000000000000000066EEAAEEFFEE0000000010 +:10071000000000000F1F7CEEAEEEFEEC00000000BB +:1007200000000000000066EEAAEEFFEE00000000F0 +:1007300000000000060B7BEFABEBFFEE00000000BB +:1007400000000000000066EEAAEEFFEE00000000D0 +:1007500000000000060F7FEFAEECFFEF000000008E +:100760000000000000000C12121E0C00000000002F +:100770000000000070101070C0C070000000000089 +:10078000000000000000314A4A7B310000000000F8 +:1007900000000000181C985858D89800000000006D +:1007A00000000000010030494B7B310000000000D8 +:1007B00000000000D85C58D81818D80000000000CD +:1007C000000000000000314A4A7B310000000000B8 +:1007D000000000000C1290504CC69E00000000006B +:1007E000000000000000314A4A7B31000000000098 +:1007F000000000000C1A984C58DA8C000000000031 +:100800000B081607170103012FC9400E7F3F8870A0 +:10081000F657FF6646CCFCF8FDFA787D39FCFC3BC8 +:10082000000B081607170103012FC9400E0F000027 +:1008300000F657FF6646CCFCF8FDFA783D3AF00822 +:10084000151A3F37010520183C1F1F1F3E1C3001A1 +:1008500073FF1FB3DFDB31E27D38F8F93E3C4080A7 +:100860000000717F3F3F1E8E0C4D3F1F1F1110096E +:100870008288CC8F860D0E3DBAB3CB7F3716BF076B +:100880000000003C1F1F1CBE470C5B7B4DF8FFFEA9 +:1008900010163C7DF8F8F83C1F06A281EEFC59B911 +:1008A00070FD686C7ED3CD5DBC70B461713316D8B9 +:1008B00010088CFCFCFCBE327171F8FCFF8E020843 +:1008C0000000000000000000010303010000000020 +:1008D000000000000000000080C0C0800000000098 +:1008E0000000000000000000000101000000000006 +:1008F00000000000000000000080800000000000F8 +:10090000070606072720E0F0FFC780C000845B20B1 +:10091000A204020101192341C1C1432201010DF2C8 +:1009200000070606072720E0F0FFC78060180400D4 +:1009300000A204020101192341C1C1432204180885 +:100940000000232321AFC72F2F2720C08041215231 +:1009500060A088C0F17AF9B181810206192110796D +:1009600008284700010383630380205090080CB3DC +:10097000A442BC04A2E2ECFCDF79F3F2640424D4C8 +:1009800018088418600001010D1F5E0F03F10D03AC +:10099000488583010304E4F4F5E2F584C4C9320018 +:1009A000080400060F0F9EFB3F370705201D022796 +:1009B000012010090B0501C0C6C1C08001E2151A53 +:1009C0000000000000000000020002000000000023 +:1009D00000000000000000802000208000000000D7 +:1009E0000000000000000004000000000000000003 +:1009F0000000000000000010000000008000000067 +:100A00000B081607170103012FC9408E1F4F271827 +:100A1000FE57FF6646CCFCF8FDFA787D3AF9F926D8 +:100A2000070606072720E0F0FFC7808080442B10D0 +:100A3000A204020101192341C1C143250930C6396D +:100A40000000032321AFC72F2F2320C08041215254 +:100A500060A088C0F17AF9B181810206192110796C +:100A60000B081607170103032BC940883F6D088147 +:100A7000FE57FF6646CCFCF8FCFA783D3FFF368116 +:100A8000070206072720E0F0FFC780E0BF7D28832C +:100A9000A204020101192341C1C143221FFF1E818B +:100AA000151A3FF701651818241F1F1FBE7C382137 +:100AB0007FFF1FB3DFDB31E27D38F8F93E3C408039 +:100AC0007F404040404040404040404040407F00E8 +:100AD0009E01010E10100F00000101010101FF0035 +:100AE00000BF808080808080808080808080807F48 +:100AF00020BB08080808080C00020202020200FEDF +:100B000003080F0F0F0F1000101F00DF0F9EFC3F98 +:100B1000C814F8FCFCF8FA7DFC7870F1FB0C72FC50 +:100B200003080F0F0F0F1000101F00DF0F1F3E1FD5 +:100B3000C814F8FCFCFCFA7DFC7870F1FB8CF2FC2C +:100B400003080F0F0F0F1000101F00DF0F9E7C3FD8 +:100B5000C814F8FCFCFCFA7DFC7870F1FB0C72FC0C +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B800013281F3F3F1F7FFCF8BCB0FCFF7D707F28 +:100B9000C010F0F8F8F0F038180838378786F8FEFB +:100BA00013281FFFFF9FBFFCF87C303CFFFD7C3FFC +:100BB000C010F0FAFFF0F0391B0A34308587FEDCF4 +:100BC00013281F3F7FFFFF9C88FCF07C3F3D7F3F49 +:100BD000C010F0F8F8F0F838180F3F3684B8FE7CF3 +:100BE00013281F7FFFDF9F9CE8FC703C3F3D1F7E6A +:100BF000C010F0F8F8F0F8381F0F3E3084B8F83E17 +:100C00000F000B170F2710171B3F3F1F1F0F06006A +:100C10008080F08CC0E434D8F0F0E0E0C0800000C8 +:100C20000F000B170F2710171F3737312110000047 +:100C30008080F08CC0E434D8F0F0E0E0E040800048 +:100C4000001C270E2F2F1C03171F1B1A1C08040043 +:100C500000E00008C8F830D0F0F8F0F0B020000054 +:100C600000033458BF3F5C5D4B170D0F07070100B1 +:100C700000002020E020E0F0F0F8F8F8F0F0E000CC +:100C800000033458BF3F5C5D4B170F0C0607030091 +:100C900000002020E020E0F0F0F8F8A8000000803C +:100CA0000005080813FEBDBD3B5B232F03010000B8 +:100CB000000080C0C070F8F8FCFAE84080C0D000A6 +:100CC0000000161123262DFDBDBD9DA813040000B4 +:100CD00000000000C0F0F8FCFCFE7EFCF8600000A4 +:100CE0000000161123262DFDBDBD9DA81304000094 +:100CF00000000000C0F8FCFAF8E0E080F4780000A2 +:100D00000000001C07464D4D2D3D7E5E422C00002C +:100D100000000000F8FCF0F8E0F0CA7CF8000000E9 +:100D200000000000013F0B0B4D4C2F1F3F2C130800 +:100D300000000070FCFEFEFEFCDC78B0400080008D +:100D400000000000013F0B0B4D4C2F1F3F2C1308E0 +:100D500000000070E0F0E0F1E6EE7CB040008000C2 +:100D60000000000307071F3B4B0C47370F07040722 +:100D7000004080E0C2E2F6EEFCF810D0C020400057 +:100D80000000010307070F0F1B2C2703310F010180 +:100D90000060F0F8F8FCFCD8E808E4F0E8D000F0D7 +:100DA0000001020707070F0F1B2C2703310F01015A +:100DB000000008848CECECF8E808E4F0E8D000F0DF +:100DC00000000806070315375E35150307060800FF +:100DD000000000F8F86090E8A4E8902078C00000D7 +:100DE00000000015070315355E35150307150000D3 +:100DF0000038D850202090E8A4E890202050D8381F +:100E000000000000150715355E35150715000000B8 +:100E100000000090000090E8A4E89000009000001E +:100E2000000000012D0E0F2B0B7D45331301040034 +:100E30000000C0E0C09044C86088BCBC78000000DE +:100E400000030205155A0F0B0B7D45331E020800E7 +:100E5000C0E04040801044C8608090AE562C000036 +:100E600000000102041E4F0B0B7D453316041000D9 +:100E700000000080001044C860808088402000008E +:100E80000003070F0E28BF1905021D141C000000E7 +:100E9000000000281048E0C0CE5E5CF8C060004052 +:100EA000060E0A1516083F3985021D141C000100A4 +:100EB000000000281048E0C0C8574BE6D8000000EA +:100EC0000000020808080E3935821D141D010002B9 +:100ED000000000280048E0C0804440F88080000006 +:100EE00000000C1E3C3D110E3F3986131A0A060005 +:100EF000000040802008DCBCD8E870F000A00000B2 +:100F000000183828542919060F3936931A0A070091 +:100F1000000040802002CF93DAE478E030802000A7 +:100F2000000000080021110E0F1936235A0A07008D +:100F3000000040802000C088C0E850E06080400091 +:100F4000000000191A1D191B0F1C1B2003010000B3 +:100F50000000804C2CDC4CEC789CEC82E040800063 +:100F600000000061724D31231F0C1B0013010000B3 +:100F70000000804327D946E27C98EC80E440800062 +:100F800000000001120101130F040F000B0100000B +:100F90000000804024C040E47890F880E840800061 +:100FA0000676552D351DCFFF7F7D7D7C7F7F8F7130 +:100FB000E0E0CCDCD0A6EEF8F09050D0F0FCEE02F1 +:100FC0003C9DB7BE3F636B0886CFCFFF7F7D3C184B +:100FD0007E7F01F5657F3E80FCFEFFC7C7FFFF7E79 +:100FE0007FBF813F417FBF807EFFFFFF7FFFE763C1 +:100FF000E77F7F5D6D554504FEFF7F7F3FFFFF7FED +:101000000000000E1F170300000000000000000099 +:101010000000C0F0F8C0101C0C040C1830000000D8 +:1010200000030911212D7FFF7F672F3F1F0F030151 +:101030008080C0C0E0E0C080FFFE7C340830C0008B +:1010400000000000000000000015151F0A0000004D +:10105000000000007E66667E06765656760000002A +:101060000000000000000000000000000000000080 +:101070000000000000008040400000000000000070 +:10108000000000000603030103060C04000000003A +:1010900000000000004020C03040000000000000C0 +:1010A000000000010004060306090202010000001E +:1010B00000000000A0906090802000000000000070 +:1010C00000000001000406030609020201000000FE +:1010D00000000000808060908000000000000000A0 +:1010E00000000000000004020408010100000000EC +:1010F0000000008080601000808000000000000080 +:10110000071F3F7FFFFFF3F3FFFFFFFF7F3F1F0737 +:10111000C0F0F8FCFEFE9FDFFFFFFEFEFCF8F0C013 +:1011200003070F0F1F1F3A3F3F3F1F1F0F0F0703FC +:10113000C0E0F0F0F8F8FC7CFCFCF8F8F0F0E0C05F +:1011400003030303070F0F0B0D0F0F070303030325 +:10115000808080808080808080808080808080808F +:10116000070F1F1F3F3F7F7F7F7F3F3F1F1F0F07DF +:1011700080C0E0E0F0F0F8F8F8F8F0F0E0E0C080CF +:10118000071F3F7FFFFFFFFFFFFFFFFF7F3F1F079F +:10119000C0F0F8FCFEFEFFFFFFFFFEFEFCF8F0C013 +:1011A00003070F0F1F1F3F3F3F3F1F1F0F0F070377 +:1011B000C0E0F0F0F8F8FCFCFCFCF8F8F0F0E0C05F +:1011C00003030303030303030303030303030303EF +:1011D00080808080C0E0E0C0A0E0E0C080808080AF +:1011E000070F1F1F3F3F7F7E7F7F3F3F1F1F0F0760 +:1011F00080C0E0E0F0F058E8F8F8F0F0E0E0C080FF +:10120000071F3F7FFFFFF3F3FFFFFFFF7F3F1F0736 +:10121000C0F0F8FCFEFE9FDFFFFFFEFEFCF8F0C012 +:1012200003070F0F1F1F3A3F3F3F1F1F0F0F0703FB +:10123000C0E0F0F0F8F8FC7CFCFCF8F8F0F0E0C05E +:1012400003030303070F0F0B0D0F0F070303030324 +:10125000808080808080808080808080808080808E +:10126000070F1F1F3F3F7F7F7F7F3F3F1F1F0F07DE +:1012700080C0E0E0F0F0F8F8F8F8F0F0E0E0C080CE +:10128000071F3F7FFFFFFFFFFFFFFFFF7F3F1F079E +:10129000C0F0F8FCFEFEFFFFFFFFFEFEFCF8F0C012 +:1012A00003070F0F1F1F3F3F3F3F1F1F0F0F070376 +:1012B000C0E0F0F0F8F8FCFCFCFCF8F8F0F0E0C05E +:1012C00003030303030303030303030303030303EE +:1012D00080808080C0E0E0C0A0E0E0C080808080AE +:1012E000070F1F1F3F3F7F7E7F7F3F3F1F1F0F075F +:1012F00080C0E0E0F0F058E8F8F8F0F0E0E0C080FE +:1013000003091F3F3F0F13539FEF776F0F0707032B +:10131000C0F0E0DCFEF69AD8FBC7DADECCC0E0C055 +:1013200000040801264F13D39F055135250F0703ED +:10133000002000D0F2F49EDFF6C08C3EECC0E080CE +:1013400000041801264F13DB9F055135250F0703B5 +:10135000002000D0F2F4BEDFF6C08C3EECC0E0808E +:1013600000000000000000020A04503020060403C0 +:10137000000000800000000F0640003C6C40600050 +:10138000000000000000000000000000200000013C +:101390000000000000000000000000040000200029 +:1013A00000000000000000000015151F0A000000EA +:1013B000000000007E66667E0676565676000000C7 +:1013C0000000000000000000003F3F3F3F1E000003 +:1013D00000000000FEFEEEFEFEFEFEFEFEFE000031 +:1013E0000000000000000000002A2A20351E000036 +:1013F0000000000080988880F888A8A888FE000077 +:10140000337078CDCF9787834363276FAF8F4020AA +:101410000000C0C0C0C0FCF88080C0E4E8C060002C +:10142000003370F8CFC79787838363676F2F2C20B3 +:10143000000000C0C0C0C0FCF880C0E0E0C00020D8 +:10144000337078CDCF9787834363A7EFAF8F40206A +:101450000000C0C0C0C0FCF88080C0E4E8C06000EC +:10146000136070CDC7E4007C38707079BF9F402056 +:101470000000C0C0C044073C0000C0E4E8C06000F9 +:10148000001360F0CFC7FF77E1E070787F3F1C303A +:10149000000000C0C0C0C0FC18000020E0C0002058 +:1014A0000910485E2FBF3F1F1F9F7F3F3F17082037 +:1014B000C0001078F0FCFCF8F8F8FCF8F8E08000C8 +:1014C000000910485E2F3FBF1F1F1FBF3F5F2F84C3 +:1014D00000C0001078F0F8FCF4F8F8FCF8F8F060C0 +:1014E0000910485E2F3F3F4F9F8F0F1F1F2F2480F3 +:1014F000C0001078F0F8F8F0F8F0F0F8F8F06008B4 +:10150000136070CDC7E4F8087070397FBF9F40202A +:101510000000C0C0C0C07C0F1880C0E4E8C06000FC +:10152000001360F0CFC7E77C38087070793F1C303B +:10153000000000C0C0C0C0FC780F58E0E0C0002030 +:10154000136070CDC7E4F80870B0B9FFBF9F4020AA +:101550000000C0C0C0C07C0F1880C0E4E8C06000BC +:10156000136070CDC7E77F7F70509078BF9F402099 +:101570000000C0C0C0C0FCF880400024E8C060008B +:1015800000136070CFC7EF7F3F71613030181830A3 +:10159000000000C0C0C0C0FCF880C0E060C00020F7 +:1015A000136070CDC7E7FF7F21438741A19340209F +:1015B0000000C0C0C0C0FCF880C0E0E4E8C060002B +:1015C00000000E6FCF86097FDF8FEE7C0C060300D4 +:1015D000000000103070E0C0F0F84B0C0410B018A0 +:1015E0000000000509092D5F9FCFCF8F8F51731E1B +:1015F00000000000808080BBFEF6E2808086DBE099 +:1016000000000000000509397D7F9BCFCF9FF1725C +:101610000000000000008080809BFEF6808086FB3A +:101620000000000000000000051D3F5F4F8F9F720B +:101630000000000000000000008080BBE68286FB06 +:101640000000000000000000000004132F5F7F3F37 +:1016500000000000000000000000000080A29FFBCE +:10166000000000000000000000F00000000000008A +:1016700000000000000000080F7F080000000000CC +:10168000000000000000000000FF0000000000005B +:1016900000000000000000080FFF0800000000002C +:1016A000000000000000000000000000000000003A +:1016B0000000000000042810088020000000000046 +:1016C0000000000008000000000000000000000012 +:1016D0000000008000000004000000000000000086 +:1016E000000000C048425EE02020408090000000E2 +:1016F0000000002040808C1C1C0004000000000042 +:10170000000000000000C661402180504040000001 +:1017100000002040808C3C9CA04608000000000097 +:1017200000000000000410285040804040000000ED +:10173000002040808C5C1C40240000000000000061 +:10174000007FC180402011B1F178983C2F5749208B +:101750000080C0E060C0F070F08080C0F0E08000E9 +:10176000000000BFF940B0F178983C2F57492000A5 +:1017700000000080E070F0F08080C0F0E0800000A9 +:10178000000000000183FF7F8FBF7F402910000011 +:1017900000000000F0F0F0E0F0E0B0E080000000B9 +:1017A0000000000183FF7F8B57275F7F2F00000021 +:1017B000000000F0F0F080C0E0E0F0F0E000000099 +:1017C000000000000183FF7F8FBF7F4029100000D1 +:1017D00000000000F0F0F0E0F0E0B0E08000000079 +:1017E000000000BFF940B0F178983C2F5749200025 +:1017F00000000080E070F0F08080C0F0E080000029 +:10180000005CBE9FAFCF4727120B060207050300FF +:10181000000000000080C020D0F0F87898FC0E0690 +:101820000000030303337FFF8080FFFF80807F0081 +:10183000000000C0F0F8FEFF0000FFFF0000FF0006 +:10184000000800123E7F7F7F7F7F3F3F1F0F07030F +:1018500000004068FCFEFEFEFEFCFCF8F0E08000AC +:101860000000000F7FF87232985C261B0403000012 +:10187000000000E0F81C0E07C70F1FFEFC3CF8003C +:1018800004544020200001C34F4D4D4C4F678F4002 +:10189000404040040000E6F8F09050D0F0F0EC0238 +:1018A000502F2F2F2F47B7B3FFF4B38B838FF8F848 +:1018B00044D8FCF7E6F6FCF8F01090F8F0C71E38B4 +:1018C000502F2F2F47B7B7FBF7B08B83878F7CFC48 +:1018D00040D4F8F4E7F6FEFCF01090F8F0C078FC85 +:1018E000502F2F47B7B7FFF3B788838F9FFFF83884 +:1018F00040D0F4F8ECF7F6FEFC1090F8F0C078FC5D +:10190000100F0F0F0737377B77304B33070F3C7CB7 +:1019100000D0F0F0E4F6FEFCF01090F8F0C0787C17 +:101920000000080F0717173B37370833070F3C7CB9 +:10193000000000D0E0F0FEFFF6F0109CF8E0787CAC +:101940000000000000080707031F1737300B3F0C8B +:10195000000000000000D8F0F0FEFBF21C9CF840F4 +:10196000000000000000000807070F0F1737700382 +:101970000000000000000000D0F0F8F8FEFC1C8021 +:1019800000000000000000000000000000080777D1 +:101990000000000000000000000000000000D8E689 +:1019A000305E4B3D2E1609040201000000000000CD +:1019B00000000484C09C33D8EC76FA5E2B19060034 +:1019C00028667D3633190F07020100000000000071 +:1019D00000000484C09C93E874DACE653C1F0600C6 +:1019E000387C7E3B3D1F0F07020100000000000015 +:1019F00000000404809CA3F0D8ECF67F3F1F060093 +:101A0000387E7B3D3E1F0F070201000000000000F2 +:101A100000000484C09CB3D8ECF6FA7F3F1F060098 +:101A2000387E7D3E3F1F0F070201000000000000CE +:101A300000000484C09C93E8F4FAFE7F3F1F060078 +:101A400000000000000000FFFFFF9F9F8FBFBF9FAF +:101A5000000000000000000C8E8E8E8E8EFEFEFEBA +:101A6000000000000000001F1F0F0F1F1F1F0F07A7 +:101A7000000000000000007FFFFFDFC38383C3C0BE +:101A8000000000000000001E3F3F3B3B3B3F1F0F9C +:101A90000000000000000078FCFE8EFEFEFEFE7CD2 +:101AA00000000000000000FFFFFFFFFFDFFFFFFF5F +:101AB00000000000000000F8FCFC707070707030D6 +:101AC00000000000000000FFFFFFFDFDFDFDFE7EA9 +:101AD00000000000000000D8FFFFDFDFDFDFFE7E38 +:101AE000000000000000003B3F3F3F3F1F3B3D1C0C +:101AF000000000000000003CBEBFBBB9BBFFFFF709 +:101B000000000000000000CFEFFF7D7D7DFFFFE7BC +:101B1000000000000000003CFEFFC7FFFFFFFF9E2B +:101B200000000000000000C0E1E1E1E1E1E1E0E0EF +:101B300000000000000000FBFFFFDFDFDFFFFF7D94 +:101B4000000000000000007BFFFF8F8F8FFFFFBCB5 +:101B50000000000000000030B8B8B8B8B8FFFFF7C8 +:101B6000000000000000000000000000000303016E +:101B700000000000000000333B1F0F070F9FDFDC59 +:101B800000000000000000E6FFFFFFFF7F7F7D3CBC +:101B9000000000000000003C7EFF87FFFFFFFFDE2B +:101BA0000000000000000081C1E0E0E0E0E1E1C0F1 +:101BB00000000000000000FFFFFFFFFF7FFFFFFFAE +:101BC00000000000000000FEFFFFFFFF7FFFFDFCA4 +:101BD00000000000000000333F3F3EFEFEFFE7E351 +:101BE00000000000000000000000000000000000F5 +:101BF000000000000000003E7F7F7F3F7F7777334B +:101C0000000000010301000010181E0F0300000077 +:101C1000000000E0F8F83C0C00000080FC780000B8 +:101C2000C6C66E3A140E0F0F0F0F07030100000017 +:101C300000000000000000C070E8FCF6FFFF3E005E +:101C40000000000004030107000201000000000082 +:101C5000000000000000A060D03028987018040038 +:101C600000000822404040406000100C00010000CD +:101C700000000000C0180006070F3E7EF8E00000DC +:101C800040222C1B0D17130F070703010000000053 +:101C900000000080C070F0FCFCFCFEFCF83450003A +:101CA000000004200906100E0E05030100000000CC +:101CB0000000000080E0E0F00020E0800000000074 +:101CC0000000180223240C0E0E0503010000000082 +:101CD0000000000080E0E0F00020E0800000000054 +:101CE000000008002B040C0E0E050301000000008C +:101CF0000000000080E0E0F00020E0800000000034 +:101D0000000008200127070F0F070701000000004F +:101D10000000000080E0E0F0F0E0E0800000000063 +:101D2000000000000107070F0F0707010000000077 +:101D30000000100480E4E0F0F0E0E080000000002B +:101D4000000000000107070F0F0707010000000057 +:101D50000000000080E0E0F0F0E0E09400280000E7 +:101D6000000000000107070F0F070709000000002F +:101D70000000000080E0E0F0F0E0E0800000000003 +:101D80000000000009040008060401010000000032 +:101D9000000000008080A0700000E08000000000D3 +:101DA00000000420090440000604010110000200A4 +:101DB000000010008080043000206004002000003B +:101DC00000040000094400088C00412100080000C4 +:101DD00000201000808221300000818200088000F5 +:101DE00000000000080000008000502005080000EE +:101DF00000201000000005000200010024088000FF +:101E00000000000008000000000040000100000089 +:101E1000002000000000040000000000040000009A +:101E200000000000000000000000000000000000B2 +:101E300000000000000000000000000000000000A2 +:101E40000000000000000000000000000000000092 +:101E50000000000000000000000000000000000082 +:101E60000000000000000000000000000000000072 +:101E70000000000000000000000000000000000062 +:101E80000000000000000000000000000000000052 +:101E90000000000000000000000000000000000042 +:101EA0000000000000000000000000000000000032 +:101EB0000000000000000000000000000000000022 +:101EC0000000000000000000000000000000000012 +:101ED0000000000000000000000000000000000002 +:101EE00000000000000000000000000000000000F2 +:101EF00000000000000000000000000000000000E2 +:101F000000000000000000000000000000000000D1 +:101F100000000000000000000000000000000000C1 +:101F200000000000000000000000000000000000B1 +:101F300000000000000000000000000000000000A1 +:101F40000000000000000000000000000000000091 +:101F50000000000000000000000000000000000081 +:101F60000000000000000000000000000000000071 +:101F70000000000000000000000000000000000061 +:101F80000000000000000000000000000000000051 +:101F90000000000000000000000000000000000041 +:101FA0000000000000000000000000000000000031 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000000000000000000000000001 +:101FE00000000000000000000000000000000000F1 +:101FF00000000000000000000000000000000000E1 +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/vram.hex b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/vram.hex new file mode 100644 index 00000000..b2516eb4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/roms/vram.hex @@ -0,0 +1,65 @@ +:1000000010101010101010101010101010101010F0 +:1000100010101010101010101010101010101010E0 +:1000200010231F1E231F1E1010101010101018195F +:1000300017181010101010101010101010101010B1 +:1000400010101010101010101000101010101010C0 +:1000500001000000001010101010101010101010EF +:100060001010101010101010101010101010101090 +:100070001010101010101010101010101010101080 +:100080001010101010101010101010101010101070 +:100090001010101010101010101010101010101060 +:1000A00010108229ED8110101010106D101010101A +:1000B000101010101010101010101010606110109F +:1000C00010109239FD91101010107C7D101010103E +:1000D000101010101010101010101010707110105F +:1000E00080818687828384858889808182838889CC +:1000F000101080818485868782838485868788899D +:1001000090919697929394959899909192939899AB +:10011000101090919495969792939495969798999C +:1001200010101010101010101010101010101010CF +:1001300010101010101010101010101010101010BF +:1001400010101010101010101010101010101010AF +:10015000101010101010101010101010101010109F +:100160008081848586878283848586878889ECED73 +:10017000EEEFEEEFFDFE808186878283848588899D +:100180009091949596979293949596979899FC1040 +:100190001010101010FF9091969792939495989943 +:1001A000101010101010101010101010101010104F +:1001B00010100E1010101010101010101010101041 +:1001C000101010101010101010101010101010102F +:1001D00010107E7F10101010101010101010101042 +:1001E00080818485868788898081828384858687CB +:1001F00082838485828386878485828386878889B3 +:1002000090919495969798999091929394959697AA +:100210009293949592939697949592939697989992 +:1002200010101010101010101010101010101010CE +:1002300010101010101010101010101010101010BE +:1002400010101010101010101010101010101010AE +:10025000101010101010101010101010101010109E +:10026000808184858687828384858687888980814A +:100270008889808182838485868782838485888932 +:10028000909194959697929394959697989990912A +:100290009899909192939495969792939495989912 +:1002A00010101010101010101010101010106061AD +:1002B000101010101010101010101010101010103E +:1002C000101010101010101010101010101070716D +:1002D000101010101010101010101010101010101E +:1002E00080818283848586878283848586878889C6 +:1002F000808188891010808184858687828388899F +:1003000090919293949596979293949596979899A5 +:10031000909198991010909194959697929398999E +:1003200010101010101010101010101010101010CD +:1003300010101010101010101010101010101010BD +:1003400010101010101010101010101010101010AD +:10035000101010101010101010101010101010109D +:100360008081828384858687888980818283848551 +:10037000868788898485868782838687848588891D +:100380009091929394959697989990919293949531 +:1003900096979899949596979293969794959899FD +:1003A000C8C9CACBCCCDCECFE2E3CACBC8C9CECF69 +:1003B000CCCDE0E1E2E3E0E1CCCDCECFCACBC8C901 +:1003C000D8D9DADBDCDDDEDFF2F3DADBD8D9DEDF49 +:1003D000DCDDF0F1F2F3F0F1DCDDDEDFDADBD8D9E1 +:1003E000101010101010101010101010101010100D +:1003F00010101010101010101010101010101010FD +:00000001FF diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sdram.sv b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sdram.sv new file mode 100644 index 00000000..41f5b7a8 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sdram.sv @@ -0,0 +1,348 @@ +// +// sdram.v +// +// sdram controller implementation for the MiST board +// https://github.com/mist-devel/mist-board +// +// Copyright (c) 2013 Till Harbaum +// Copyright (c) 2019 Gyorgy Szombathelyi +// +// This source file is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This source file is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// + +module sdram ( + + // interface to the MT48LC16M16 chip + inout reg [15:0] SDRAM_DQ, // 16 bit bidirectional data bus + output reg [12:0] SDRAM_A, // 13 bit multiplexed address bus + output reg SDRAM_DQML, // two byte masks + output reg SDRAM_DQMH, // two byte masks + output reg [1:0] SDRAM_BA, // two banks + output SDRAM_nCS, // a single chip select + output SDRAM_nWE, // write enable + output SDRAM_nRAS, // row address select + output SDRAM_nCAS, // columns address select + + // cpu/chipset interface + input init_n, // init signal after FPGA config to initialize RAM + input clk, // sdram clock + + input port1_req, + output reg port1_ack, + input port1_we, + input [23:1] port1_a, + input [1:0] port1_ds, + input [15:0] port1_d, + output reg [15:0] port1_q, + + input [16:1] cpu1_addr, + output reg [15:0] cpu1_q, + input [16:1] cpu2_addr, + output reg [15:0] cpu2_q, + + input port2_req, + output reg port2_ack, + input port2_we, + input [23:1] port2_a, + input [1:0] port2_ds, + input [15:0] port2_d, + output reg [31:0] port2_q, + + input [16:2] sp_addr, + output reg [31:0] sp_q +); + +localparam RASCAS_DELAY = 3'd2; // tRCD=20ns -> 2 cycles@<100MHz +localparam BURST_LENGTH = 3'b001; // 000=1, 001=2, 010=4, 011=8 +localparam ACCESS_TYPE = 1'b0; // 0=sequential, 1=interleaved +localparam CAS_LATENCY = 3'd2; // 2/3 allowed +localparam OP_MODE = 2'b00; // only 00 (standard operation) allowed +localparam NO_WRITE_BURST = 1'b1; // 0= write burst enabled, 1=only single access write + +localparam MODE = { 3'b000, NO_WRITE_BURST, OP_MODE, CAS_LATENCY, ACCESS_TYPE, BURST_LENGTH}; + +// 64ms/8192 rows = 7.8us -> 842 cycles@108MHz +localparam RFRSH_CYCLES = 10'd842; + +// --------------------------------------------------------------------- +// ------------------------ cycle state machine ------------------------ +// --------------------------------------------------------------------- + +/* + SDRAM state machine for 2 bank interleaved access + 1 word burst, CL2 +cmd issued registered + 0 RAS0 cas1 - data0 read burst terminated + 1 ras0 + 2 data1 returned + 3 CAS0 data1 returned + 4 RAS1 cas0 + 5 ras1 + 6 CAS1 data0 returned +*/ + +localparam STATE_RAS0 = 3'd0; // first state in cycle +localparam STATE_RAS1 = 3'd4; // Second ACTIVE command after RAS0 + tRRD (15ns) +localparam STATE_CAS0 = STATE_RAS0 + RASCAS_DELAY + 1'd1; // CAS phase - 3 +localparam STATE_CAS1 = STATE_RAS1 + RASCAS_DELAY; // CAS phase - 6 +localparam STATE_READ0 = 3'd0;// STATE_CAS0 + CAS_LATENCY + 2'd2; // 7 +localparam STATE_READ1 = 3'd3; +localparam STATE_DS1b = 3'd0; +localparam STATE_READ1b = 3'd4; +localparam STATE_LAST = 3'd6; + +reg [2:0] t; + +always @(posedge clk) begin + t <= t + 1'd1; + if (t == STATE_LAST) t <= STATE_RAS0; +end + +// --------------------------------------------------------------------- +// --------------------------- startup/reset --------------------------- +// --------------------------------------------------------------------- + +// wait 1ms (32 8Mhz cycles) after FPGA config is done before going +// into normal operation. Initialize the ram in the last 16 reset cycles (cycles 15-0) +reg [4:0] reset; +reg init = 1'b1; +always @(posedge clk, negedge init_n) begin + if(!init_n) begin + reset <= 5'h1f; + init <= 1'b1; + end else begin + if((t == STATE_LAST) && (reset != 0)) reset <= reset - 5'd1; + init <= !(reset == 0); + end +end + +// --------------------------------------------------------------------- +// ------------------ generate ram control signals --------------------- +// --------------------------------------------------------------------- + +// all possible commands +localparam CMD_INHIBIT = 4'b1111; +localparam CMD_NOP = 4'b0111; +localparam CMD_ACTIVE = 4'b0011; +localparam CMD_READ = 4'b0101; +localparam CMD_WRITE = 4'b0100; +localparam CMD_BURST_TERMINATE = 4'b0110; +localparam CMD_PRECHARGE = 4'b0010; +localparam CMD_AUTO_REFRESH = 4'b0001; +localparam CMD_LOAD_MODE = 4'b0000; + +reg [3:0] sd_cmd; // current command sent to sd ram +reg [15:0] sd_din; +// drive control signals according to current command +assign SDRAM_nCS = sd_cmd[3]; +assign SDRAM_nRAS = sd_cmd[2]; +assign SDRAM_nCAS = sd_cmd[1]; +assign SDRAM_nWE = sd_cmd[0]; + +reg [24:1] addr_latch[2]; +reg [24:1] addr_latch_next[2]; +reg [16:1] addr_last[2]; +reg [16:2] addr_last2[2]; +reg [15:0] din_latch[2]; +reg [1:0] oe_latch; +reg [1:0] we_latch; +reg [1:0] ds[2]; + +reg port1_state; +reg port2_state; + +localparam PORT_NONE = 2'd0; +localparam PORT_CPU1 = 2'd1; +localparam PORT_CPU2 = 2'd2; +localparam PORT_SP = 2'd1; +localparam PORT_REQ = 2'd3; + +reg [1:0] next_port[2]; +reg [1:0] port[2]; + +reg refresh; +reg [10:0] refresh_cnt; +wire need_refresh = (refresh_cnt >= RFRSH_CYCLES); + +// PORT1: bank 0,1 +always @(*) begin + if (refresh) begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end else if (port1_req ^ port1_state) begin + next_port[0] = PORT_REQ; + addr_latch_next[0] = { 1'b0, port1_a }; + end else if (cpu1_addr != addr_last[PORT_CPU1]) begin + next_port[0] = PORT_CPU1; + addr_latch_next[0] = { 8'd0, cpu1_addr }; + end else if (cpu2_addr != addr_last[PORT_CPU2]) begin + next_port[0] = PORT_CPU2; + addr_latch_next[0] = { 8'd0, cpu2_addr }; + end else begin + next_port[0] = PORT_NONE; + addr_latch_next[0] = addr_latch[0]; + end +end + +// PORT1: bank 2,3 +always @(*) begin + if (port2_req ^ port2_state) begin + next_port[1] = PORT_REQ; + addr_latch_next[1] = { 1'b1, port2_a }; + end else if (sp_addr != addr_last2[PORT_SP]) begin + next_port[1] = PORT_SP; + addr_latch_next[1] = { 1'b1, 7'd0, sp_addr, 1'b0 }; + end else begin + next_port[1] = PORT_NONE; + addr_latch_next[1] = addr_latch[1]; + end +end + +always @(posedge clk) begin + + // permanently latch ram data to reduce delays + sd_din <= SDRAM_DQ; + SDRAM_DQ <= 16'bZZZZZZZZZZZZZZZZ; + { SDRAM_DQMH, SDRAM_DQML } <= 2'b11; + sd_cmd <= CMD_NOP; // default: idle + refresh_cnt <= refresh_cnt + 1'd1; + + if(init) begin + // initialization takes place at the end of the reset phase + if(t == STATE_RAS0) begin + + if(reset == 15) begin + sd_cmd <= CMD_PRECHARGE; + SDRAM_A[10] <= 1'b1; // precharge all banks + end + + if(reset == 10 || reset == 8) begin + sd_cmd <= CMD_AUTO_REFRESH; + end + + if(reset == 2) begin + sd_cmd <= CMD_LOAD_MODE; + SDRAM_A <= MODE; + SDRAM_BA <= 2'b00; + end + end + end else begin + // RAS phase + // bank 0,1 + if(t == STATE_RAS0) begin + addr_latch[0] <= addr_latch_next[0]; + port[0] <= next_port[0]; + { oe_latch[0], we_latch[0] } <= 2'b00; + + if (next_port[0] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[0][22:10]; + SDRAM_BA <= addr_latch_next[0][24:23]; + addr_last[next_port[0]] <= addr_latch_next[0][16:1]; + if (next_port[0] == PORT_REQ) begin + { oe_latch[0], we_latch[0] } <= { ~port1_we, port1_we }; + ds[0] <= port1_ds; + din_latch[0] <= port1_d; + port1_state <= port1_req; + end else begin + { oe_latch[0], we_latch[0] } <= 2'b10; + ds[0] <= 2'b11; + end + end + end + + // bank 2,3 + if(t == STATE_RAS1) begin + refresh <= 1'b0; + addr_latch[1] <= addr_latch_next[1]; + { oe_latch[1], we_latch[1] } <= 2'b00; + port[1] <= next_port[1]; + + if (next_port[1] != PORT_NONE) begin + sd_cmd <= CMD_ACTIVE; + SDRAM_A <= addr_latch_next[1][22:10]; + SDRAM_BA <= addr_latch_next[1][24:23]; + addr_last2[next_port[1]] <= addr_latch_next[1][16:2]; + if (next_port[1] == PORT_REQ) begin + { oe_latch[1], we_latch[1] } <= { ~port1_we, port1_we }; + ds[1] <= port2_ds; + din_latch[1] <= port2_d; + port2_state <= port2_req; + end else begin + { oe_latch[1], we_latch[1] } <= 2'b10; + ds[1] <= 2'b11; + end + end + + if (next_port[1] == PORT_NONE && need_refresh && !we_latch[0] && !oe_latch[0]) begin + refresh <= 1'b1; + refresh_cnt <= 0; + sd_cmd <= CMD_AUTO_REFRESH; + end + end + + // CAS phase + if(t == STATE_CAS0 && (we_latch[0] || oe_latch[0])) begin + sd_cmd <= we_latch[0]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[0]; + if (we_latch[0]) begin + SDRAM_DQ <= din_latch[0]; + port1_ack <= port1_req; + end + SDRAM_A <= { 4'b0010, addr_latch[0][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[0][24:23]; + end + + if(t == STATE_CAS1 && (we_latch[1] || oe_latch[1])) begin + sd_cmd <= we_latch[1]?CMD_WRITE:CMD_READ; + { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + if (we_latch[1]) begin + SDRAM_DQ <= din_latch[1]; + port2_ack <= port2_req; + end + SDRAM_A <= { 4'b0010, addr_latch[1][9:1] }; // auto precharge + SDRAM_BA <= addr_latch[1][24:23]; + end + + // Data returned + if(t == STATE_READ0 && oe_latch[0]) begin + case(port[0]) + PORT_REQ: begin port1_q <= sd_din; port1_ack <= port1_req; end + PORT_CPU1: begin cpu1_q <= sd_din; end + PORT_CPU2: begin cpu2_q <= sd_din; end + default: ; + endcase; + end + + if(t == STATE_READ1 && oe_latch[1]) begin + case(port[1]) + PORT_REQ: port2_q[15:0] <= sd_din; + PORT_SP : sp_q[15:0] <= sd_din; + default: ; + endcase; + end + + if(t == STATE_DS1b && oe_latch[1]) { SDRAM_DQMH, SDRAM_DQML } <= ~ds[1]; + + if(t == STATE_READ1b && oe_latch[1]) begin + case(port[1]) + PORT_REQ: begin port2_q[31:16] <= sd_din; port2_ack <= port2_req; end + PORT_SP : begin sp_q[31:16] <= sd_din; end + default: ; + endcase; + end + end +end + +endmodule diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sound.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sound.vhd new file mode 100644 index 00000000..7ffaf8f4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sound.vhd @@ -0,0 +1,46 @@ +-------------------------------------------------------------------------------- +-- SubModule Sound +-- Created 18/08/2005 6:39:14 PM +-------------------------------------------------------------------------------- +Library IEEE; +Use IEEE.Std_Logic_1164.all; + +entity Sound is + generic + ( + CLK_MHz : natural := 0 + ); + port + ( + sysClk : in std_logic; + reset : in std_logic; + + sndif_rd : in std_logic; + sndif_wr : in std_logic; + sndif_datai : in std_logic_vector(7 downto 0); + sndif_addr : in std_logic_vector(15 downto 0); + + snd_clk : out std_logic; + snd_data_l : out std_logic_vector(7 downto 0); + snd_data_r : out std_logic_vector(7 downto 0); + sndif_datao : out std_logic_vector(7 downto 0) + ); + end entity Sound; +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +architecture Structure of Sound is + +-- Component Declarations + +-- Signal Declarations + +begin + + snd_clk <= '0'; + snd_data_l <= X"00"; + snd_data_r <= X"00"; + sndif_datao <= X"00"; + +end Structure; +-------------------------------------------------------------------------------- diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spram.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spram.vhd new file mode 100644 index 00000000..d86010fc --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spram.vhd @@ -0,0 +1,91 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY spram IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + data : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + wren : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END spram; + + +ARCHITECTURE SYN OF spram IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + power_up_uninitialized : STRING; + read_during_write_mode_port_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + wren_a : IN STD_LOGIC ; + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + data_a : IN STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "SINGLE_PORT", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + power_up_uninitialized => "FALSE", + read_during_write_mode_port_a => "NEW_DATA_NO_NBE_READ", + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + wren_a => wren, + clock0 => clock, + address_a => address, + data_a => data, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_array.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_array.vhd new file mode 100644 index 00000000..880f09f2 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_array.vhd @@ -0,0 +1,164 @@ +library IEEE; +use IEEE.std_logic_1164.all; +use ieee.numeric_std.all; +--use ieee.std_logic_arith.all; +--use IEEE.std_logic_unsigned.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); +end entity sprite_array; + +architecture SYN of sprite_array is + + type reg_a_t is array (natural range <>) of from_SPRITE_REG_t; + type ctl_i_a_t is array (natural range <>) of to_SPRITE_CTL_t; + type ctl_o_a_t is array (natural range <>) of from_SPRITE_CTL_t; + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal reg_o : reg_a_t(0 to N_SPRITES-1); + signal ctl_i : ctl_i_a_t(0 to N_SPRITES-1); + signal ctl_o : ctl_o_a_t(0 to N_SPRITES-1); + + signal ld_r : std_logic_vector(N_SPRITES-1 downto 0); + +begin + + -- Sprite Data Load Arbiter + -- - enables each sprite controller during hblank + -- to allow loading of sprite row data into row buffer + process (clk, clk_ena, reset) + variable i : integer range 0 to N_SPRITES-1; + begin + if reset = '1' then + -- enable must be 1 clock behind address to latch data after fetch + --ld_r <= (N_SPRITES-1 => '1', others => '0'); + -- make ISE 9.2.03i happy... + ld_r(ld_r'left) <= '1'; + ld_r(ld_r'left-1 downto 0) <= (others => '0'); + i := 0; + elsif rising_edge(clk) and clk_ena = '1' then + ld_r <= ld_r(ld_r'left-1 downto 0) & ld_r(ld_r'left); + if i = N_SPRITES-1 then + i := 0; + else + i := i + 1; + end if; + row_a <= ctl_o(i).a; + end if; + end process; + + -- sprite row data fan-out + GEN_ROW_D : for i in 0 to N_SPRITES-1 generate + ctl_i(i).ld <= ld_r(i); + ctl_i(i).d <= row_d; + end generate GEN_ROW_D; + + -- Sprite Priority Encoder + -- - determines which sprite pixel (if any) is to be displayed + -- We can use a clocked process here because the tilemap + -- output is 1 clock behind at this point + process (clk, clk_ena) + variable spr_on_v : std_logic := '0'; + variable spr_pri_v : std_logic := '0'; + begin + if rising_edge(clk) and clk_ena = '1' then + spr_on_v := '0'; + spr_pri_v := '0'; + for i in 0 to N_SPRITES-1 loop + -- if highest priority = 0 and pixel on + if spr_pri_v = '0' and ctl_o(i).set = '1' then + -- if no sprite on or this priority = 1 + if spr_on_v = '0' or reg_o(i).pri = '1' then + rgb <= ctl_o(i).rgb; + spr_on_v := '1'; -- flag as sprite on + spr_pri_v := reg_o(i).pri; -- store priority + end if; + end if; + end loop; + end if; + set <= spr_on_v; + pri <= spr_pri_v; + end process; + + -- for NES, and perhaps others + -- it's actually more complicated than this + -- but it'll do for now... + spr0_set <= ctl_o(0).set; + + -- + -- Component Instantiation + -- + + GEN_REGS : for i in 0 to N_SPRITES-1 generate + + sptReg_inst : entity work.sptReg + generic map + ( + INDEX => i + ) + port map + ( + reg_i => reg_i, + reg_o => reg_o(i) + ); + + sptCtl_inst : entity work.spritectl + generic map + ( + INDEX => i, + DELAY => DELAY + ) + port map + ( + -- sprite registers + reg_i => reg_o(i), + + -- video control signals + video_ctl => video_ctl, + + -- sprite control signals + ctl_i => ctl_i(i), + ctl_o => ctl_o(i), + + graphics_i => graphics_i + ); + + end generate GEN_REGS; + +end SYN; + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg.vhd new file mode 100644 index 00000000..ee5cf179 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg.vhd @@ -0,0 +1,97 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +library work; +use work.video_controller_pkg.all; + +package sprite_pkg is + + subtype SPRITE_N_t is std_logic_vector(11 downto 0); + subtype SPRITE_A_t is std_logic_vector(7 downto 0); + subtype SPRITE_D_t is std_logic_vector(7 downto 0); + + type from_SPRITE_REG_t is record + n : SPRITE_N_t; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + xflip : std_logic; + yflip : std_logic; + colour : std_logic_vector(7 downto 0); + pri : std_logic; + end record; + + type to_SPRITE_REG_t is record + clk : std_logic; + clk_ena : std_logic; + wr : std_logic; + a : SPRITE_A_t; + d : SPRITE_D_t; + end record; + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t; + + subtype SPRITE_ROW_D_t is std_logic_vector(63 downto 0); + subtype SPRITE_ROW_A_t is std_logic_vector(15 downto 0); + + type to_SPRITE_CTL_t is record + ld : std_logic; + d : SPRITE_ROW_D_t; + end record; + + type from_SPRITE_CTL_t is record + a : SPRITE_ROW_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t; + + component sprite_array is + generic + ( + N_SPRITES : integer; + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- register interface + reg_i : in to_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- extra data + graphics_i : in to_GRAPHICS_t; + + -- sprite data + row_a : out SPRITE_ROW_A_t; + row_d : in SPRITE_ROW_D_t; + + -- video data + rgb : out RGB_t; + set : out std_logic; + pri : out std_logic; + spr0_set : out std_logic + ); + end component sprite_array; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return SPRITE_ROW_D_t; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector; + +end package sprite_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg_body.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg_body.vhd new file mode 100644 index 00000000..551261b2 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprite_pkg_body.vhd @@ -0,0 +1,62 @@ +library work; +use work.pace_pkg.all; +--use work.sprite_pkg.all; + +package body sprite_pkg is + + function NULL_TO_SPRITE_REG return to_SPRITE_REG_t is + begin + return ('0', '0', '0', (others => '0'), (others => '0')); + end function NULL_TO_SPRITE_REG; + + function NULL_TO_SPRITE_CTL return to_SPRITE_CTL_t is + begin + return ('0', (others => '0')); + end function NULL_TO_SPRITE_CTL; + + function flip_row + ( + row_in : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + + constant HALF : natural := (row_in'length / 2) - 1; + + alias row_in_0 : std_logic_vector(row_in'length-1 downto 0) + is row_in; + variable row_out : std_logic_vector(row_in_0'range); + + begin + + if flip = '0' then + return row_in; + else + for i in 0 to HALF loop + row_out ((HALF-i)*2+1 downto (HALF-i)*2) := row_in_0(i*2+1 downto i*2); + end loop; + return row_out; + end if; + + end flip_row; + + function flip_1 + ( + d_i : std_logic_vector; + flip : std_logic + ) + return std_logic_vector is + alias d_i_0 : std_logic_vector(d_i'length-1 downto 0) is d_i; + variable d_o : std_logic_vector(d_i_0'range); + begin + if flip = '0' then + return d_i; + else + for i in d_i_0'range loop + d_o(i) := d_i_0(d_i_0'high-i); + end loop; + return d_o; + end if; + end function flip_1; + +end package body sprite_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritectl.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritectl.vhd new file mode 100644 index 00000000..d4758aa3 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritectl.vhd @@ -0,0 +1,160 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +-- +-- SonSon Sprite Controller +-- +-- Sprite data is 48 bits wide: +-- +-- < 16 bits >< 16 bits >< 16 bits > +-- + +entity spritectl is + generic + ( + INDEX : natural; + DELAY : integer + ); + port + ( + -- sprite registers + reg_i : in from_SPRITE_REG_t; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- sprite control signals + ctl_i : in to_SPRITE_CTL_t; + ctl_o : out from_SPRITE_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity spritectl; + +architecture SYN of spritectl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + + signal flipData : std_logic_vector(47 downto 0); -- flipped row data + +begin + + -- handle xflip + flipData(47 downto 32) <= flip_row (ctl_i.d(47 downto 32), reg_i.xflip); + flipData(31 downto 16) <= flip_row (ctl_i.d(31 downto 16), reg_i.xflip); + flipData(15 downto 0) <= flip_row (ctl_i.d(15 downto 0), reg_i.xflip); + + process (clk) + + variable rowStore : std_logic_vector(47 downto 0); -- saved row of spt to show during visibile period + variable pel : std_logic_vector(2 downto 0); + variable x : unsigned(video_ctl.x'range); + variable y : unsigned(video_ctl.y'range); + variable yMat : boolean; -- raster is between first and last line of sprite + variable xMat : boolean; -- raster in between left edge and end of line + + -- the width of rowCount determines the scanline multipler + -- - eg. (4 downto 0) is 1:1 + -- (5 downto 0) is 2:1 (scan-doubling) + variable rowCount : std_logic_vector(3+PACE_VIDEO_V_SCALE downto 0); + + variable clut_i : integer range 0 to 31; + variable clut_entry : sprite_clut_entry_t; + variable pel_i : integer range 0 to 7; + variable pal_i : integer range 0 to 15; + variable pal_entry : palette_entry_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + + x := unsigned(reg_i.x); + y := unsigned(reg_i.y); + + if video_ctl.hblank = '1' then + + xMat := false; + -- stop sprites wrapping from bottom of screen + if unsigned(video_ctl.y) = 0 then + yMat := false; + end if; + + if y = unsigned(video_ctl.y) then + -- start counting sprite row + rowCount := (others => '0'); + yMat := true; + elsif rowCount(rowCount'left downto rowCount'left-4) = "10000" then + yMat := false; + end if; + + if ctl_i.ld = '1' then + if yMat then + rowStore := flipData; -- load sprite data + else + rowStore := (others => '0'); + end if; + end if; + + elsif video_ctl.stb = '1' then + + if unsigned(video_ctl.x) = x then + -- count up at left edge of sprite + rowCount := std_logic_vector(unsigned(rowCount) + 1); + xMat := true; + end if; + + if xMat then + -- shift in next pixel + pel := rowStore(32) & rowStore(16) & rowStore(0); + rowStore(47 downto 32) := '0' & rowStore(47 downto 33); + rowStore(31 downto 16) := '0' & rowStore(31 downto 17); + rowStore(15 downto 0) := '0' & rowStore(15 downto 1); + end if; + + end if; + + -- extract R,G,B from colour palette + clut_i := to_integer(unsigned(reg_i.colour(4 downto 0))); + clut_entry := sprite_clut(clut_i); + pel_i := to_integer(unsigned(pel)); + pal_i := to_integer(unsigned(clut_entry(pel_i))); + pal_entry := pal(16 + pal_i); + ctl_o.rgb.r <= pal_entry(0) & "0000"; + ctl_o.rgb.g <= pal_entry(1) & "0000"; + ctl_o.rgb.b <= pal_entry(2) & "0000"; + + -- set pixel transparency based on match + ctl_o.set <= '0'; + if xMat and yMat and (pel_i /= 0) then + ctl_o.set <= '1'; + end if; + + end if; -- clk_ena='1' + + -- generate sprite data address + ctl_o.a(ctl_o.a'left downto 14) <= (others => '0'); + ctl_o.a(13 downto 5) <= reg_i.n(8 downto 0); + -- - sprite data consists of 16 consecutive bytes for the 1st half + -- then the next 16 bytes for the 2nd half + -- - because we need to fetch an entire row at once + -- use dual-port memory to access both halves of each row + ctl_o.a(4) <= '0'; -- used for 1st/2nd port of dual-port memory + if reg_i.yflip = '1' then + ctl_o.a(3 downto 0) <= not rowCount(rowCount'left-1 downto rowCount'left-4); + else + ctl_o.a(3 downto 0) <= rowCount(rowCount'left-1 downto rowCount'left-4); + end if; + + end if; -- rising_edge(clk) + end process; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritereg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritereg.vhd new file mode 100644 index 00000000..0635ea3e --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/spritereg.vhd @@ -0,0 +1,62 @@ +Library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.sprite_pkg.all; + +entity sptReg is + + generic + ( + INDEX : natural + ); + port + ( + reg_i : in to_SPRITE_REG_t; + reg_o : out from_SPRITE_REG_t + ); + +end sptReg; + +architecture SYN of sptReg is + + alias clk : std_logic is reg_i.clk; + alias clk_ena : std_logic is reg_i.clk_ena; + +begin + + process (clk) + variable i : integer range 0 to 31; + begin + -- sprite registers $2020-$207F, 4 bytes per sprite + i := to_integer(unsigned(reg_i.a(6 downto 2))) - 32/4; + if rising_edge(clk) then + if i = INDEX then + if reg_i.wr = '1' then + case reg_i.a(1 downto 0) is + when "00" => + reg_o.y <= std_logic_vector(RESIZE(unsigned(reg_i.d), reg_o.y'length)); + when "01" => + reg_o.yflip <= not reg_i.d(7); + reg_o.xflip <= not reg_i.d(6); + reg_o.n(8) <= reg_i.d(5); + reg_o.colour <= std_logic_vector(RESIZE(unsigned(reg_i.d(4 downto 0)), + reg_o.colour'length)); + when "10" => + reg_o.n(7 downto 0) <= reg_i.d; + when others => + reg_o.x <= std_logic_vector(RESIZE(unsigned(reg_i.d), reg_o.x'length)); + end case; + end if; + end if; + end if; + end process; + + -- usused bits + reg_o.n(reg_o.n'left downto 9) <= (others => '0'); + + reg_o.pri <= '1'; + +end SYN; + diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprom.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprom.vhd new file mode 100644 index 00000000..292a214f --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/sprom.vhd @@ -0,0 +1,83 @@ +LIBRARY ieee; +USE ieee.std_logic_1164.all; + +LIBRARY altera_mf; +USE altera_mf.all; + +ENTITY sprom IS + GENERIC + ( + init_file : string := ""; + --numwords_a : natural; + widthad_a : natural; + width_a : natural := 8; + outdata_reg_a : string := "UNREGISTERED" + ); + PORT + ( + address : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + clock : IN STD_LOGIC ; + q : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); +END sprom; + + +ARCHITECTURE SYN OF sprom IS + + SIGNAL sub_wire0 : STD_LOGIC_VECTOR (width_a-1 DOWNTO 0); + + + + COMPONENT altsyncram + GENERIC ( + address_aclr_a : STRING; + clock_enable_input_a : STRING; + clock_enable_output_a : STRING; + init_file : STRING; + intended_device_family : STRING; + lpm_hint : STRING; + lpm_type : STRING; + numwords_a : NATURAL; + operation_mode : STRING; + outdata_aclr_a : STRING; + outdata_reg_a : STRING; + widthad_a : NATURAL; + width_a : NATURAL; + width_byteena_a : NATURAL + ); + PORT ( + clock0 : IN STD_LOGIC ; + address_a : IN STD_LOGIC_VECTOR (widthad_a-1 DOWNTO 0); + q_a : OUT STD_LOGIC_VECTOR (width_a-1 DOWNTO 0) + ); + END COMPONENT; + +BEGIN + q <= sub_wire0(width_a-1 DOWNTO 0); + + altsyncram_component : altsyncram + GENERIC MAP ( + address_aclr_a => "NONE", + clock_enable_input_a => "BYPASS", + clock_enable_output_a => "BYPASS", + init_file => init_file, + intended_device_family => "Cyclone III", + lpm_hint => "ENABLE_RUNTIME_MOD=NO", + lpm_type => "altsyncram", + numwords_a => 2**widthad_a, + operation_mode => "ROM", + outdata_aclr_a => "NONE", + outdata_reg_a => outdata_reg_a, + widthad_a => widthad_a, + width_a => width_a, + width_byteena_a => 1 + ) + PORT MAP ( + clock0 => clock, + address_a => address, + q_a => sub_wire0 + ); + + + +END SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/target_top.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/target_top.vhd new file mode 100644 index 00000000..cfd9a682 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/target_top.vhd @@ -0,0 +1,107 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.platform_pkg.all; + +entity target_top is + port( + vma : out std_logic; + clk_sys : in std_logic; + clk_vid : in std_logic; + reset_in : in std_logic; + snd_l : out std_logic_vector(7 downto 0); + snd_r : out std_logic_vector(7 downto 0); + vid_hs : out std_logic; + vid_vs : out std_logic; + vid_hb : out std_logic; + vid_vb : out std_logic; + vid_r : out std_logic_vector(3 downto 0); + vid_g : out std_logic_vector(3 downto 0); + vid_b : out std_logic_vector(3 downto 0); + inputs_p1 : in std_logic_vector(7 downto 0); + inputs_p2 : in std_logic_vector(7 downto 0); + inputs_sys : in std_logic_vector(7 downto 0); + inputs_dip1 : in std_logic_vector(7 downto 0); + inputs_dip2 : in std_logic_vector(7 downto 0); + cpu_rom_addr : out std_logic_vector(15 downto 0); + cpu_rom_do : in std_logic_vector(7 downto 0); + tile_rom_addr : out std_logic_vector(12 downto 0); + tile_rom_do : in std_logic_vector(15 downto 0) + ); + +end target_top; + +architecture SYN of target_top is + + signal clkrst_i : from_CLKRST_t; + signal video_i : from_VIDEO_t; + signal video_o : to_VIDEO_t; + signal audio_i : from_AUDIO_t; + signal audio_o : to_AUDIO_t; + signal platform_i : from_PLATFORM_IO_t; + signal platform_o : to_PLATFORM_IO_t; + + +begin + +clkrst_i.clk(0) <=clk_sys; +clkrst_i.clk(1) <= clk_vid; +clkrst_i.arst <= reset_in; +clkrst_i.arst_n <= not clkrst_i.arst; + +video_i.clk <= clk_vid; +video_i.clk_ena <= '1'; +video_i.reset <= reset_in; + + GEN_RESETS : for i in 0 to 3 generate + + process (clkrst_i.clk(i), clkrst_i.arst) + variable rst_r : std_logic_vector(2 downto 0) := (others => '0'); + begin + if clkrst_i.arst = '1' then + rst_r := (others => '1'); + elsif rising_edge(clkrst_i.clk(i)) then + rst_r := rst_r(rst_r'left-1 downto 0) & '0'; + end if; + clkrst_i.rst(i) <= rst_r(rst_r'left); + end process; + + end generate GEN_RESETS; + +vid_r <= video_o.rgb.r(9 downto 6); +vid_g <= video_o.rgb.g(9 downto 6); +vid_b <= video_o.rgb.b(9 downto 6); +vid_hs <= video_o.hsync; +vid_vs <= video_o.vsync; +vid_hb <= video_o.hblank; +vid_vb <= video_o.vblank; +snd_l <= audio_o.ldata(15 downto 8); +snd_r <= audio_o.rdata(15 downto 8); + + pace_inst : entity work.pace + port map( + clkrst_i => clkrst_i, + vma => vma, + inputs_p1 => inputs_p1, + inputs_p2 => inputs_p2, + inputs_sys => inputs_sys, + inputs_dip1 => inputs_dip1, + inputs_dip2 => inputs_dip2, + video_i => video_i, + video_o => video_o, + audio_i => audio_i, + audio_o => audio_o, + platform_i => platform_i, + platform_o => platform_o, + cpu_rom_addr => cpu_rom_addr, + cpu_rom_do => cpu_rom_do, + tile_rom_addr => tile_rom_addr, + tile_rom_do => tile_rom_do + ); + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl.vhd new file mode 100644 index 00000000..1b541124 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl.vhd @@ -0,0 +1,111 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.platform_pkg.all; +use work.video_controller_pkg.all; + +-- +-- SonSon Tilemap Controller +-- + +architecture TILEMAP_1 of tilemapCtl is + + alias clk : std_logic is video_ctl.clk; + alias clk_ena : std_logic is video_ctl.clk_ena; + alias stb : std_logic is video_ctl.stb; + alias hblank : std_logic is video_ctl.hblank; + alias vblank : std_logic is video_ctl.vblank; + alias x : std_logic_vector(video_ctl.x'range) is video_ctl.x; + alias y : std_logic_vector(video_ctl.y'range) is video_ctl.y; + + alias scroll : std_logic_vector(7 downto 0) is graphics_i.bit8(0); + +begin + + -- these are constant for a whole line + ctl_o.map_a(ctl_o.map_a'left downto 10) <= (others => '0'); + ctl_o.map_a(9 downto 5) <= y(7 downto 3); + ctl_o.tile_a(ctl_o.tile_a'left downto 13) <= (others => '0'); + ctl_o.tile_a(2 downto 0) <= y(2 downto 0); + + -- generate attribute RAM address (same, different memory bank) + ctl_o.attr_a(ctl_o.map_a'left downto 10) <= (others => '0'); + ctl_o.attr_a(9 downto 5) <= y(7 downto 3); + + -- generate pixel + process (clk, clk_ena) + + variable x_adj : unsigned(x'range); + variable tile_d_r : std_logic_vector(15 downto 0); + variable attr_d_r : std_logic_vector(7 downto 0); + variable map_d_r : std_logic_vector(7 downto 0); + variable pel : std_logic_vector(1 downto 0); + + variable clut_i : integer range 0 to 63; + variable clut_entry : tile_clut_entry_t; + variable pel_i : integer range 0 to 3; + variable pal_i : integer range 0 to 255; + variable pal_entry : palette_entry_t; + + begin + + if rising_edge(clk) then + if clk_ena = '1' then + + -- video is clipped left and right (only 224 wide) + if unsigned(y) < 40 then + x_adj := unsigned(x); + else + x_adj := unsigned(x) + unsigned(scroll); + end if; + + -- 1st stage of pipeline + -- - read tile from tilemap + -- - read attribute data + if stb = '1' then + ctl_o.map_a(4 downto 0) <= std_logic_vector(x_adj(7 downto 3)); + ctl_o.attr_a(4 downto 0) <= std_logic_vector(x_adj(7 downto 3)); + end if; + + -- 2nd stage of pipeline + -- - read tile data from tile ROM + if stb = '1' then + if x_adj(2 downto 0) = "001" then + attr_d_r := ctl_i.attr_d(attr_d_r'range); + --map_d_r := ctl_i.map_d(map_d_r'range); + end if; + end if; + ctl_o.tile_a(12 downto 11) <= attr_d_r(1 downto 0); + ctl_o.tile_a(10 downto 3) <= ctl_i.map_d(7 downto 0); + + if stb = '1' then + if x_adj(2 downto 0) = "010" then + tile_d_r := ctl_i.tile_d(tile_d_r'range); + else + tile_d_r(15 downto 8) := tile_d_r(14 downto 8) & '0'; + tile_d_r(7 downto 0) := tile_d_r(6 downto 0) & '0'; + end if; + end if; + -- 1 bit from each byte + pel := tile_d_r(15) & tile_d_r(7); + + -- extract R,G,B from colour palette + clut_i := to_integer(unsigned(attr_d_r(7 downto 2))); + clut_entry := tile_clut(clut_i); + pel_i := to_integer(unsigned(pel)); + pal_i := to_integer(unsigned(clut_entry(pel_i))); + pal_entry := pal(pal_i); + ctl_o.rgb.r <= pal_entry(0) & "0000"; + ctl_o.rgb.g <= pal_entry(1) & "0000"; + ctl_o.rgb.b <= pal_entry(2) & "0000"; + + ctl_o.set <= '1'; + + end if; -- clk_ena + end if; + end process; + +end TILEMAP_1; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl_e.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl_e.vhd new file mode 100644 index 00000000..ddb64495 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/tilemapctl_e.vhd @@ -0,0 +1,28 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.platform_pkg.all; +use work.video_controller_pkg.all; + +entity tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); +end entity tilemapCtl; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller.vhd new file mode 100644 index 00000000..14da0c20 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller.vhd @@ -0,0 +1,455 @@ +library IEEE; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +library work; +use work.video_controller_pkg.all; + +entity pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + L_CROP : integer range 0 to 255; + R_CROP : integer range 0 to 255; + H_SCALE : integer; + V_SCALE : integer; + H_SYNC_POL : std_logic := '1'; + V_SYNC_POL : std_logic := '1'; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : out from_VIDEO_CTL_t; + + -- video output control & data + video_o : out to_VIDEO_t + ); +end pace_video_controller; + +architecture SYN of pace_video_controller is + + constant SIM_DELAY : time := 2 ns; + + constant VIDEO_H_SIZE : integer := H_SIZE * H_SCALE; + constant VIDEO_V_SIZE : integer := V_SIZE * V_SCALE; + + subtype reg_t is integer range 0 to 2047; + + alias clk : std_logic is video_i.clk; + alias clk_ena : std_logic is video_i.clk_ena; + alias reset : std_logic is video_i.reset; + + -- registers + signal h_front_porch_r : reg_t := 0; + signal h_sync_r : reg_t := 0; + signal h_back_porch_r : reg_t := 0; + signal h_border_r : reg_t := 0; + signal h_video_r : reg_t := 0; + signal v_front_porch_r : reg_t := 0; + signal v_sync_r : reg_t := 0; + signal v_back_porch_r : reg_t := 0; + signal v_border_r : reg_t := 0; + signal v_video_r : reg_t := 0; + + signal border_rgb_r : RGB_t := ((others=>'0'), (others=>'0'), (others=>'0')); + + -- derived values + signal h_sync_start : reg_t := 0; + signal h_back_porch_start : reg_t := 0; + signal h_left_border_start : reg_t := 0; + signal h_video_start : reg_t := 0; + signal h_right_border_start : reg_t := 0; + signal h_line_end : reg_t := 0; + signal v_sync_start : reg_t := 0; + signal v_back_porch_start : reg_t := 0; + signal v_top_border_start : reg_t := 0; + signal v_video_start : reg_t := 0; + signal v_bottom_border_start : reg_t := 0; + signal v_screen_end : reg_t := 0; + + signal hsync_s : std_logic := '0'; + signal vsync_s : std_logic := '0'; + signal hactive_s : std_logic := '0'; + signal vactive_s : std_logic := '0'; + signal hblank_s : std_logic := '0'; + signal vblank_s : std_logic := '0'; + + subtype count_t is integer range 0 to 2047; + signal x_count : count_t := 0; + signal y_count : count_t := 0; + + signal x_s : unsigned(10 downto 0) := (others => '0'); + signal y_s : unsigned(10 downto 0) := (others => '0'); + + --signal extended_reset : std_logic := '1'; + alias extended_reset : std_logic is video_i.reset; + +begin + + -- registers + reg_proc: process (reset, clk) + + begin + --if reset = '1' then + case CONFIG is + + when PACE_VIDEO_VGA_240x320_60Hz => + -- P3M, clk=11.136MHz, clk_ena=5.568MHz + h_front_porch_r <= 272-240; + h_sync_r <= 5; + h_back_porch_r <= 22; + h_border_r <= (240-VIDEO_H_SIZE)/2; + v_front_porch_r <= 326-320; + v_sync_r <= 1; + v_back_porch_r <= 5; + v_border_r <= (320-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_320x480_60Hz => + -- VGA, clk=12.588MHz + --# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio + --Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan + h_front_porch_r <= 16; + h_sync_r <= 48; + h_back_porch_r <= 16; + h_border_r <= (320-VIDEO_H_SIZE)/2; + v_front_porch_r <= (5*2); + v_sync_r <= (1*2); + v_back_porch_r <= (16*2); + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_640x480_60Hz => + -- VGA, clk=25.175MHz + h_front_porch_r <= 16; + h_sync_r <= 96; + h_back_porch_r <= 48; + h_border_r <= (640-VIDEO_H_SIZE)/2; + v_front_porch_r <= 10; + v_sync_r <= 2; + v_back_porch_r <= 33; + v_border_r <= (480-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_800x600_60Hz => + -- SVGA, clk=40MHz + h_front_porch_r <= 40; + h_sync_r <= 128; + h_back_porch_r <= 88; + h_border_r <= (800-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 4; + v_back_porch_r <= 23; + v_border_r <= (600-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1024x768_60Hz => + -- XVGA, clk=65MHz + h_front_porch_r <= 24; + h_sync_r <= 136; + h_back_porch_r <= 160; + h_border_r <= (1024-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 6; + v_back_porch_r <= 29; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1366x768_60Hz => + -- XVGA(NAVICO ROCKY), clk=72MHz + h_front_porch_r <= 88; --64; + h_sync_r <= 44; --112; + h_back_porch_r <= 148; --248; + h_border_r <= (1366-VIDEO_H_SIZE)/2; + v_front_porch_r <= 4; --3; + v_sync_r <= 5; --6; + v_back_porch_r <= 36; --18; + v_border_r <= (768-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x800_60Hz => + -- Sentinel Mode 36, clk=103.2MHz + h_front_porch_r <= 64; + h_sync_r <= 32; + h_back_porch_r <= 362-32-64; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 4; + v_back_porch_r <= 38-4-3; + v_border_r <= (800-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1280x1024_60Hz => + -- SXGA, clk=108MHz + h_front_porch_r <= 48; + h_sync_r <= 112; + h_back_porch_r <= 248; + h_border_r <= (1280-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 38; + v_border_r <= (1024-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_VGA_1680x1050_60Hz => + -- WSXGA+, clk=147.14MHz + h_front_porch_r <= 104; + h_sync_r <= 184; + h_back_porch_r <= 288; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 33; + -- WSXGA+, clk=118MHz + --h_front_porch_r <= 48; + --h_sync_r <= 32; + --h_back_porch_r <= 80; + --v_front_porch_r <= 3; + --v_sync_r <= 6; + --v_back_porch_r <= 21; + h_border_r <= (1680-VIDEO_H_SIZE)/2; + v_border_r <= (1050-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz => + -- arcade standard resolution, clk=7.16MHz + h_front_porch_r <= 34; + h_sync_r <= 34; + h_back_porch_r <= 51; + h_border_r <= (336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64 => + -- arcade standard resolution, clk=28.64MHz + h_front_porch_r <= 4*34; + h_sync_r <= 4*34; + h_back_porch_r <= 4*51; + h_border_r <= 4*(336-VIDEO_H_SIZE)/2; + v_front_porch_r <= 3; + v_sync_r <= 3; + v_back_porch_r <= 16; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_CVBS_720x288p_50Hz => + -- generic composite, clk=13.5MHz + h_front_porch_r <= (8+12); + h_sync_r <= 64; + h_back_porch_r <= (144-64-(8+12)); + h_border_r <= (720-VIDEO_H_SIZE)/2; + v_front_porch_r <= 1; + v_sync_r <= 3; + v_back_porch_r <= 20; + v_border_r <= (288-VIDEO_V_SIZE)/2; + + when PACE_VIDEO_LCM_320x240_60Hz => + -- DE1/2, clk=18MHz + h_front_porch_r <= 59; + h_sync_r <= 1; + h_back_porch_r <= 151; + h_border_r <= (320-VIDEO_H_SIZE)*3/2; + v_front_porch_r <= 8; + v_sync_r <= 1; + v_back_porch_r <= 13; + v_border_r <= (240-VIDEO_V_SIZE)/2; + + when others => + null; + end case; + + h_video_r <= VIDEO_H_SIZE; + v_video_r <= VIDEO_V_SIZE; + border_rgb_r <= BORDER_RGB; + + --end if; + end process reg_proc; + + -- register some arithmetic + init_proc: process (reset, clk, clk_ena) + begin + if reset = '1' then + null; + elsif rising_edge(clk) then + h_sync_start <= h_front_porch_r - 1; + h_back_porch_start <= h_sync_start + h_sync_r; + h_left_border_start <= h_back_porch_start + h_back_porch_r; + h_video_start <= h_left_border_start + h_border_r; + h_right_border_start <= h_video_start + h_video_r; + h_line_end <= h_right_border_start + h_border_r; + v_sync_start <= v_front_porch_r - 1; + v_back_porch_start <= v_sync_start + v_sync_r; + v_top_border_start <= v_back_porch_start + v_back_porch_r; + v_video_start <= v_top_border_start + v_border_r; + v_bottom_border_start <= v_video_start + v_video_r; + v_screen_end <= v_bottom_border_start + v_border_r; + end if; + end process init_proc; + + reset_proc: process (reset, clk) + variable count_v : integer; + begin + if reset = '1' then + --extended_reset <= '1'; + count_v := 7; + elsif rising_edge(clk) then + if count_v = 0 then + --extended_reset <= '0'; + else + count_v := count_v - 1; + end if; + end if; + end process reset_proc; + + -- video control outputs + timer_proc: process (extended_reset, clk, clk_ena) + begin + if extended_reset = '1' then + hblank_s <= '1'; + vblank_s <= '1'; + hactive_s <= '0'; + vactive_s <= '0'; + hsync_s <= not H_SYNC_POL; + x_count <= 0; + y_count <= 0; + elsif rising_edge(clk) and clk_ena = '1' then + if x_count = h_line_end then + hblank_s <= '1'; + hactive_s <= '0'; -- for 0 borders + if y_count = v_screen_end then + vblank_s <= '1'; + vactive_s <= '0'; -- for 0 borders + y_count <= 0; + else + y_s <= y_s + 1; + if y_count = v_sync_start then + vsync_s <= V_SYNC_POL; + elsif y_count = v_back_porch_start then + vsync_s <= not V_SYNC_POL; + elsif y_count = v_video_start then + vblank_s <= '0'; -- for 0 borders + vactive_s <= '1'; + y_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif y_count = v_top_border_start then + vblank_s <= '0'; + elsif y_count = v_bottom_border_start then + vactive_s <= '0'; + end if; + y_count <= y_count + 1; + end if; + x_count <= 0; + else + x_s <= x_s + 1; + if x_count = h_sync_start then + hsync_s <= H_SYNC_POL; + elsif x_count = h_back_porch_start then + hsync_s <= not H_SYNC_POL; + elsif x_count = h_video_start then + hblank_s <= '0'; -- for 0 borders + hactive_s <= '1'; + x_s <= (others => '0'); + -- check the borders last in case they're 0 + elsif x_count = h_left_border_start then + hblank_s <= '0'; + elsif x_count = h_right_border_start then + hactive_s <= '0'; + end if; + x_count <= x_count + 1; + end if; + end if; -- rising_edge(clk) and clk_ena = '1' + end process timer_proc; + + -- pass-through for tile/bitmap & sprite controllers + video_ctl_o.clk <= clk; + video_ctl_o.clk_ena <= clk_ena; + + -- for video DACs and TFT output + video_o.clk <= clk; + + BLK_VIDEO_O : block + + constant PIPELINE_DELAY : natural := DELAY+1; + + -- won't synthesize correctly under ISE if these are variables + signal hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + signal vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + + begin + + video_o_proc: process (extended_reset, clk, clk_ena) + variable hsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vsync_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable hactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + --variable vactive_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable hblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + variable vblank_v_r : std_logic_vector(PIPELINE_DELAY-1 downto 0) := (others => '0'); + alias hsync_v : std_logic is hsync_v_r(hsync_v_r'left); + alias vsync_v : std_logic is vsync_v_r(vsync_v_r'left); + alias hactive_v : std_logic is hactive_v_r(hactive_v_r'left); + alias vactive_v : std_logic is vactive_v_r(vactive_v_r'left); + alias hblank_v : std_logic is hblank_v_r(hblank_v_r'left); + alias vblank_v : std_logic is vblank_v_r(vblank_v_r'left); + variable stb_cnt_v : unsigned(3 downto 0); -- up to 16x scaling + begin + if extended_reset = '1' then + hsync_v_r := (others => not H_SYNC_POL); + vsync_v_r := (others => not V_SYNC_POL); + hactive_v_r <= (others => '0'); + vactive_v_r <= (others => '0'); + hblank_v_r := (others => '0'); + vblank_v_r := (others => '0'); + stb_cnt_v := (others => '1'); + elsif rising_edge(clk) and clk_ena = '1' then + + -- register control signals and handle scaling + video_ctl_o.hblank <= not hactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + video_ctl_o.vblank <= not vactive_s after SIM_DELAY; -- used only by the bitmap/tilemap/sprite controllers + -- handle scaling + video_ctl_o.stb <= stb_cnt_v(H_SCALE-1) after SIM_DELAY; + if hactive_s = '1' and vactive_s = '1' then + stb_cnt_v := stb_cnt_v + 2; + elsif hblank_s = '0' and vblank_s = '0' then + stb_cnt_v := (others => '1'); + end if; + video_ctl_o.x <= std_logic_vector(resize(x_s(x_s'left downto H_SCALE-1), video_ctl_o.x'length)) after SIM_DELAY; + video_ctl_o.y <= std_logic_vector(resize(y_s(y_s'left downto V_SCALE-1), video_ctl_o.y'length)) after SIM_DELAY; + + -- register video outputs + if hactive_v = '1' and vactive_v = '1' then + -- active video + if x_s(x_s'left downto H_SCALE-1) < (L_CROP + PIPELINE_DELAY) or + x_s(x_s'left downto H_SCALE-1) >= (H_SIZE - R_CROP + PIPELINE_DELAY) then + video_o.rgb <= RGB_BLACK after SIM_DELAY; + else + video_o.rgb <= rgb_i after SIM_DELAY; + end if; + elsif hblank_v = '0' and vblank_v = '0' then + -- border + video_o.rgb <= border_rgb_r after SIM_DELAY; + else + video_o.rgb.r <= (others => '0') after SIM_DELAY; + video_o.rgb.g <= (others => '0') after SIM_DELAY; + video_o.rgb.b <= (others => '0') after SIM_DELAY; + end if; + video_o.hsync <= hsync_v after SIM_DELAY; + video_o.vsync <= vsync_v after SIM_DELAY; + video_o.hblank <= hblank_v after SIM_DELAY; + video_o.vblank <= vblank_v after SIM_DELAY; + -- pipelined signals + hsync_v_r := hsync_v_r(hsync_v_r'left-1 downto 0) & hsync_s; + vsync_v_r := vsync_v_r(vsync_v_r'left-1 downto 0) & vsync_s; + hactive_v_r <= hactive_v_r(hactive_v_r'left-1 downto 0) & hactive_s; + vactive_v_r <= vactive_v_r(vactive_v_r'left-1 downto 0) & vactive_s; + hblank_v_r := hblank_v_r(hblank_v_r'left-1 downto 0) & hblank_s; + vblank_v_r := vblank_v_r(vblank_v_r'left-1 downto 0) & vblank_s; + end if; + end process video_o_proc; + + end block BLK_VIDEO_O; + +end SYN; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg.vhd new file mode 100644 index 00000000..183bfe23 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg.vhd @@ -0,0 +1,229 @@ +library IEEE; +use IEEE.std_logic_1164.all; +--use IEEE.numeric_std.all; +use ieee.std_logic_arith.all; +use ieee.std_logic_unsigned.all; + +package video_controller_pkg is + + type PACEVideoController_t is + ( + PACE_VIDEO_NONE, -- PACE video controller not used + PACE_VIDEO_VGA_240x320_60Hz, -- P3M video + PACE_VIDEO_VGA_320x480_60Hz, -- for 320x200 (12.588MHz) + PACE_VIDEO_VGA_640x480_60Hz, -- generic VGA (25.175MHz) + PACE_VIDEO_VGA_800x600_60Hz, -- generic VGA (40MHz) + PACE_VIDEO_VGA_1024x768_60Hz, -- XVGA (65MHz) + PACE_VIDEO_VGA_1366x768_60Hz, -- (NAVICO ROCKY) (72MHz) + PACE_VIDEO_VGA_1280x800_60Hz, -- Sentinel Mode 36 + PACE_VIDEO_VGA_1280x1024_60Hz, -- SXGA (108MHz) + PACE_VIDEO_VGA_1680x1050_60Hz, -- WSXGA+ (147MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz, -- arcade std resolution (7.16MHz) + PACE_VIDEO_ARCADE_STD_336x240_60Hz_28M64, -- arcade std resolution (28.64MHz) + PACE_VIDEO_CVBS_720x288p_50Hz, -- generic composite + PACE_VIDEO_LCM_320x240_60Hz -- DE2 LCD + ); + + type PACEVideoDisplay_t is + ( + PACE_DISPLAY_NONE, + PACE_DISPLAY_VGA, + PACE_DISPLAY_CVBS, + PACE_DISPLAY_TFT + ); + + type RGB_t is record + r : std_logic_vector(9 downto 0); + g : std_logic_vector(9 downto 0); + b : std_logic_vector(9 downto 0); + end record; + + type RGB_a is array (natural range <>) of RGB_t; + + function NULL_RGB return RGB_t; + + constant RGB_BLACK : RGB_t := ((others=>'0'),(others=>'0'),(others=>'0')); + constant RGB_RED : RGB_t := ((others=>'1'),(others=>'0'),(others=>'0')); + constant RGB_GREEN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'0')); + constant RGB_YELLOW : RGB_t := ((others=>'1'),(others=>'1'),(others=>'0')); + constant RGB_BLUE : RGB_t := ((others=>'0'),(others=>'0'),(others=>'1')); + constant RGB_MAGENTA : RGB_t := ((others=>'1'),(others=>'0'),(others=>'1')); + constant RGB_CYAN : RGB_t := ((others=>'0'),(others=>'1'),(others=>'1')); + constant RGB_WHITE : RGB_t := ((others=>'1'),(others=>'1'),(others=>'1')); + + type VIDEO_REG_t is record + h_scale : std_logic_vector(2 downto 0); + v_scale : std_logic_vector(2 downto 0); + end record; + + type from_VIDEO_t is record + clk : std_logic; + clk_ena : std_logic; + reset : std_logic; + end record; + + type to_VIDEO_t is record + clk : std_logic; + rgb : rgb_t; + hsync : std_logic; + vsync : std_logic; + hblank : std_logic; + vblank : std_logic; + de : std_logic; + end record; + + type from_VIDEO_CTL_t is record + clk : std_logic; + clk_ena : std_logic; + stb : std_logic; + hblank : std_logic; + vblank : std_logic; + x : std_logic_vector(10 downto 0); + y : std_logic_vector(10 downto 0); + end record; + + subtype BITMAP_D_t is std_logic_vector(23 downto 0); + subtype BITMAP_A_t is std_logic_vector(15 downto 0); + + type to_BITMAP_CTL_t is record + d : BITMAP_D_t; + end record; + + type to_BITMAP_CTL_a is array (natural range <>) of to_BITMAP_CTL_t; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t; + + type from_BITMAP_CTL_t is record + a : BITMAP_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_BITMAP_CTL_a is array (natural range <>) of from_BITMAP_CTL_t; + + subtype TILEMAP_D_t is std_logic_vector(15 downto 0); + subtype TILEMAP_A_t is std_logic_vector(15 downto 0); + subtype TILE_A_t is std_logic_vector(16 downto 0); + subtype TILE_D_t is std_logic_vector(23 downto 0); + subtype ATTR_A_t is std_logic_vector(15 downto 0); + subtype ATTR_D_t is std_logic_vector(15 downto 0); + + type to_TILEMAP_CTL_t is record + map_d : TILEMAP_D_t; + tile_d : TILE_D_t; + attr_d : ATTR_D_t; + end record; + + type to_TILEMAP_CTL_a is array (natural range <>) of to_TILEMAP_CTL_t; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t; + + type from_TILEMAP_CTL_t is record + map_a : TILEMAP_A_t; + tile_a : TILE_A_t; + attr_a : ATTR_A_t; + rgb : RGB_t; + set : std_logic; + end record; + + type from_TILEMAP_CTL_a is array (natural range <>) of from_TILEMAP_CTL_t; + + subtype PAL_ENTRY_t is std_logic_vector(15 downto 0); + type PAL_A_t is array (natural range <>) of PAL_ENTRY_t; + + subtype BYTE_t is std_logic_vector(7 downto 0); + type BYTE_A_t is array (natural range <>) of BYTE_t; + + subtype WORD_t is std_logic_vector(15 downto 0); + type WORD_A_t is array (natural range <>) of WORD_t; + + type to_GRAPHICS_t is record + pal : PAL_A_t(0 to 15); + -- for various uses + bit8 : BYTE_A_t(0 to 7); + bit16 : WORD_A_t(0 to 3); + -- 'native' graphics stream + hsync : std_logic; + vsync : std_logic; + rgb : RGB_t; + end record; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t; + + type from_GRAPHICS_t is record + y : std_logic_vector(10 downto 0); + hblank : std_logic; + vblank : std_logic; + end record; + + component pace_video_controller is + generic + ( + CONFIG : PACEVideoController_t := PACE_VIDEO_NONE; + DELAY : integer := 1; + H_SIZE : integer; + V_SIZE : integer; + --H_SCALE : integer; + --V_SCALE : integer; + BORDER_RGB : RGB_t := RGB_BLACK + ); + port + ( + -- clocking etc + video_i : in from_VIDEO_t; + + -- register interface + reg_i : in VIDEO_REG_t; + + -- video input data + rgb_i : in RGB_t; + + -- control signals (out) + video_ctl_o : from_VIDEO_CTL_t; + + -- Outputs to video + video_o : out to_VIDEO_t + ); + end component pace_video_controller; + + component tilemapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- tilemap controller signals + ctl_i : in to_TILEMAP_CTL_t; + ctl_o : out from_TILEMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component tilemapCtl; + + component bitmapCtl is + generic + ( + DELAY : integer + ); + port + ( + reset : in std_logic; + + -- video control signals + video_ctl : in from_VIDEO_CTL_t; + + -- bitmap controller signals + ctl_i : in to_BITMAP_CTL_t; + ctl_o : out from_BITMAP_CTL_t; + + graphics_i : in to_GRAPHICS_t + ); + end component bitmapCtl; + +end package video_controller_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg_body.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg_body.vhd new file mode 100644 index 00000000..996e5867 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_controller_pkg_body.vhd @@ -0,0 +1,29 @@ +library work; +--use work.pace_pkg.all; + +package body video_controller_pkg is + + function NULL_RGB return RGB_t is + begin + return (others => (others => '0')); + end NULL_RGB; + + function NULL_TO_BITMAP_CTL return to_BITMAP_CTL_t is + begin + return (others => (others => '0')); + end NULL_TO_BITMAP_CTL; + + function NULL_TO_TILEMAP_CTL return to_TILEMAP_CTL_t is + begin + return ((others => '0'), (others => '0'), (others => '0')); + end NULL_TO_TILEMAP_CTL; + + function NULL_TO_GRAPHICS return to_GRAPHICS_t is + begin + return ((others => (others => '0')), + (others => (others => '0')), + (others => (others => '0')), + '0', '0', NULL_RGB); + end NULL_TO_GRAPHICS; + +end package body video_controller_pkg; diff --git a/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_mixer.vhd b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_mixer.vhd new file mode 100644 index 00000000..fb4b4aa4 --- /dev/null +++ b/Arcade_MiST/SonSon Hardware/Sonson_MiST/rtl/video_mixer.vhd @@ -0,0 +1,66 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +library work; +use work.pace_pkg.all; +use work.video_controller_pkg.all; +use work.sprite_pkg.all; +use work.platform_pkg.all; + +entity pace_video_mixer is + port + ( + --bitmap_rgb : in RGB_t; + --bitmap_set : in std_logic; + bitmap_ctl_o : in from_BITMAP_CTL_a(1 to PACE_VIDEO_NUM_BITMAPS); + tilemap_ctl_o : in from_TILEMAP_CTL_a(1 to PACE_VIDEO_NUM_TILEMAPS); + sprite_rgb : in RGB_t; + sprite_set : in std_logic; + sprite_pri : in std_logic; + + video_ctl_i : in from_VIDEO_CTL_t; + graphics_i : in to_GRAPHICS_t; + rgb_o : out RGB_t + ); +end entity pace_video_mixer; + +architecture SYN of pace_video_mixer is + signal bg_rgb : RGB_t; +begin + + GEN_BITMAPS : + if PACE_VIDEO_NUM_BITMAPS = 1 generate + bg_rgb <= bitmap_ctl_o(1).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 2 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb; + elsif PACE_VIDEO_NUM_BITMAPS = 3 generate + bg_rgb <= bitmap_ctl_o(1).rgb when bitmap_ctl_o(1).set = '1' else + bitmap_ctl_o(2).rgb when bitmap_ctl_o(2).set = '1' else + bitmap_ctl_o(3).rgb when bitmap_ctl_o(3).set = '1' else + (others => (others => '0')); + else generate + bg_rgb <= (others => (others => '0')); + end generate GEN_BITMAPS; + + GEN_TILEMAPS : + if PACE_VIDEO_NUM_TILEMAPS = 1 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + elsif PACE_VIDEO_NUM_TILEMAPS = 2 generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + tilemap_ctl_o(1).rgb when tilemap_ctl_o(1).set = '1' else + tilemap_ctl_o(2).rgb when tilemap_ctl_o(2).set = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + else generate + rgb_o <= sprite_rgb when sprite_set = '1' and sprite_pri = '1' else + sprite_rgb when sprite_set = '1' else + bg_rgb; + end generate GEN_TILEMAPS; + +end architecture SYN;