diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.qpf b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.qpf new file mode 100644 index 00000000..692b2a69 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.qpf @@ -0,0 +1,31 @@ +# -------------------------------------------------------------------------- # +# +# 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 = 00:21:03 December 03, 2019 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "13.1" +DATE = "00:21:03 December 03, 2019" + +# Revisions + +PROJECT_REVISION = "Flicky_MiST" + diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.qsf b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.qsf new file mode 100644 index 00000000..b90ff5b5 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.qsf @@ -0,0 +1,247 @@ +# -------------------------------------------------------------------------- # +# +# 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 = 06:24:46 May 16, 2020 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# Flicky_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 SYSTEMVERILOG_FILE rtl/Flicky_MiST.sv +set_global_assignment -name VERILOG_FILE rtl/FPGA_FLICKY.v +set_global_assignment -name VERILOG_FILE rtl/FlickyMAIN.v +set_global_assignment -name VERILOG_FILE rtl/FlickyVIDEO.v +set_global_assignment -name VERILOG_FILE rtl/FlickySND.v +set_global_assignment -name VERILOG_FILE rtl/z80ip.v +set_global_assignment -name VERILOG_FILE rtl/FlickySPRITE.v +set_global_assignment -name VERILOG_FILE rtl/parts.v +set_global_assignment -name VERILOG_FILE rtl/hvgen.v +set_global_assignment -name VERILOG_FILE rtl/SN76496.v +set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv +set_global_assignment -name VERILOG_FILE rtl/pll_mist.v +set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_1B.v +set_global_assignment -name VERILOG_FILE rtl/DPRAM1024_11B.v +set_global_assignment -name VHDL_FILE rtl/rom/dec_rom.vhd +set_global_assignment -name VHDL_FILE rtl/rom/prg_rom.vhd +set_global_assignment -name VHDL_FILE rtl/rom/snd_rom.vhd +set_global_assignment -name VHDL_FILE rtl/rom/clut.vhd +set_global_assignment -name VHDL_FILE rtl/rom/spr_rom.vhd +set_global_assignment -name VHDL_FILE rtl/rom/tile1.vhd +set_global_assignment -name QIP_FILE ../../common/mist/mist.qip +set_global_assignment -name QIP_FILE ../../common/CPU/T80/T80.qip + +# 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 + +# Analysis & Synthesis Assignments +# ================================ +set_global_assignment -name FAMILY "Cyclone III" +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 TOP_LEVEL_ENTITY Flicky_MiST + +# 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" + +# 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/zaxx.stp + +# Power Estimation Assignments +# ============================ +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +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(Flicky_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(Flicky_MiST) +# ----------------------- +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.sdc b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.sdc new file mode 100644 index 00000000..e1813b4a --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Flicky_MiST.sdc @@ -0,0 +1,134 @@ +## Generated SDC file "vectrex_MiST.out.sdc" + +## 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. + + +## VENDOR "Altera" +## PROGRAM "Quartus II" +## VERSION "Version 13.1.0 Build 162 10/23/2013 SJ Web Edition" + +## DATE "Sun Jun 24 12:53:00 2018" + +## +## DEVICE "EP3C25E144C8" +## + +# Clock constraints + +# Automatically constrain PLL and other generated clocks +derive_pll_clocks -create_base_clocks + +# Automatically calculate clock uncertainty to jitter and other effects. +derive_clock_uncertainty + +# tsu/th constraints + +# tco constraints + +# tpd constraints + +#************************************************************** +# Time Information +#************************************************************** + +set_time_format -unit ns -decimal_places 3 + + + +#************************************************************** +# Create Clock +#************************************************************** + +create_clock -name {SPI_SCK} -period 41.666 -waveform { 20.8 41.666 } [get_ports {SPI_SCK}] + +set sys_clk "pll|altpll_component|auto_generated|pll1|clk[0]" +set sdram_clk "pll|altpll_component|auto_generated|pll1|clk[1]" +#************************************************************** +# Create Generated Clock +#************************************************************** + + +#************************************************************** +# Set Clock Latency +#************************************************************** + + + +#************************************************************** +# Set Clock Uncertainty +#************************************************************** + +#************************************************************** +# Set Input Delay +#************************************************************** + +set_input_delay -add_delay -clock_fall -clock [get_clocks {CLOCK_27}] 1.000 [get_ports {CLOCK_27}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {CONF_DATA0}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DI}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SCK}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS2}] +set_input_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_SS3}] + +set_input_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -max 6.6 [get_ports SDRAM_DQ[*]] +set_input_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -min 3.5 [get_ports SDRAM_DQ[*]] + +#************************************************************** +# Set Output Delay +#************************************************************** + +set_output_delay -add_delay -clock_fall -clock [get_clocks {SPI_SCK}] 1.000 [get_ports {SPI_DO}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {AUDIO_L}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {AUDIO_R}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {LED}] +set_output_delay -add_delay -clock_fall -clock [get_clocks $sys_clk] 1.000 [get_ports {VGA_*}] + +set_output_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -max 1.5 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}] +set_output_delay -clock [get_clocks $sdram_clk] -reference_pin [get_ports {SDRAM_CLK}] -min -0.8 [get_ports {SDRAM_D* SDRAM_A* SDRAM_BA* SDRAM_n* SDRAM_CKE}] + +#************************************************************** +# Set Clock Groups +#************************************************************** + +set_clock_groups -asynchronous -group [get_clocks {SPI_SCK}] -group [get_clocks {pll|altpll_component|auto_generated|pll1|clk[*]}] + +#************************************************************** +# Set False Path +#************************************************************** + + + +#************************************************************** +# Set Multicycle Path +#************************************************************** + +set_multicycle_path -to {VGA_*[*]} -setup 2 +set_multicycle_path -to {VGA_*[*]} -hold 1 + +#************************************************************** +# Set Maximum Delay +#************************************************************** + + + +#************************************************************** +# Set Minimum Delay +#************************************************************** + + + +#************************************************************** +# Set Input Transition +#************************************************************** + diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Snapshot/Flicky_MiST.rbf b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Snapshot/Flicky_MiST.rbf new file mode 100644 index 00000000..f7c961f0 Binary files /dev/null and b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/Snapshot/Flicky_MiST.rbf differ diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/clean.bat b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/clean.bat new file mode 100644 index 00000000..b3b7c3b5 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/clean.bat @@ -0,0 +1,37 @@ +@echo off +del /s *.bak +del /s *.orig +del /s *.rej +del /s *~ +rmdir /s /q db +rmdir /s /q incremental_db +rmdir /s /q output_files +rmdir /s /q simulation +rmdir /s /q greybox_tmp +rmdir /s /q hc_output +rmdir /s /q .qsys_edit +rmdir /s /q hps_isw_handoff +rmdir /s /q sys\.qsys_edit +rmdir /s /q sys\vip +cd sys +for /d %%i in (*_sim) do rmdir /s /q "%%~nxi" +cd .. +for /d %%i in (*_sim) do rmdir /s /q "%%~nxi" +del build_id.v +del c5_pin_model_dump.txt +del PLLJ_PLLSPE_INFO.txt +del /s *.qws +del /s *.ppf +del /s *.ddb +del /s *.csv +del /s *.cmp +del /s *.sip +del /s *.spd +del /s *.bsf +del /s *.f +del /s *.sopcinfo +del /s *.xml +del /s new_rtl_netlist +del /s old_rtl_netlist + +pause diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/DPRAM1024_11B.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/DPRAM1024_11B.v new file mode 100644 index 00000000..37ec49d1 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/DPRAM1024_11B.v @@ -0,0 +1,128 @@ +// megafunction wizard: %RAM: 2-PORT% +// GENERATION: STANDARD +// VERSION: WM1.0 +// MODULE: altsyncram + +// ============================================================ +// File Name: DPRAM1024_11B.v +// Megafunction Name(s): +// altsyncram +// +// Simulation Library Files(s): +// altera_mf +// ============================================================ +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// +// 17.1.0 Build 590 10/25/2017 SJ Lite Edition +// ************************************************************ + + +//Copyright (C) 2017 Intel Corporation. All rights reserved. +//Your use of Intel 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 Intel Program License +//Subscription Agreement, the Intel Quartus Prime License Agreement, +//the Intel FPGA IP License Agreement, or other applicable license +//agreement, including, without limitation, that your use is for +//the sole purpose of programming logic devices manufactured by +//Intel and sold by Intel or its authorized distributors. Please +//refer to the applicable agreement for further details. + + +// synopsys translate_off +`timescale 1 ps / 1 ps +// synopsys translate_on +module DPRAM1024_11B ( + address_a, + address_b, + clock_a, + clock_b, + data_a, + data_b, + wren_a, + wren_b, + q_a, + q_b); + + input [9:0] address_a; + input [9:0] address_b; + input clock_a; + input clock_b; + input [15:0] data_a; + input [15:0] data_b; + input wren_a; + input wren_b; + output [15:0] q_a; + output [15:0] q_b; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_off +`endif + tri1 clock_a; + tri0 wren_a; + tri0 wren_b; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_on +`endif + + wire [15:0] sub_wire0; + wire [15:0] sub_wire1; + wire [15:0] q_a = sub_wire0[15:0]; + wire [15:0] q_b = sub_wire1[15:0]; + + altsyncram altsyncram_component ( + .address_a (address_a), + .address_b (address_b), + .clock0 (clock_a), + .clock1 (clock_b), + .data_a (data_a), + .data_b (data_b), + .wren_a (wren_a), + .wren_b (wren_b), + .q_a (sub_wire0), + .q_b (sub_wire1), + .aclr0 (1'b0), + .aclr1 (1'b0), + .addressstall_a (1'b0), + .addressstall_b (1'b0), + .byteena_a (1'b1), + .byteena_b (1'b1), + .clocken0 (1'b1), + .clocken1 (1'b1), + .clocken2 (1'b1), + .clocken3 (1'b1), + .eccstatus (), + .rden_a (1'b1), + .rden_b (1'b1)); + defparam + altsyncram_component.address_reg_b = "CLOCK1", + altsyncram_component.clock_enable_input_a = "BYPASS", + altsyncram_component.clock_enable_input_b = "BYPASS", + altsyncram_component.clock_enable_output_a = "BYPASS", + altsyncram_component.clock_enable_output_b = "BYPASS", + altsyncram_component.indata_reg_b = "CLOCK1", + altsyncram_component.intended_device_family = "Cyclone III", + altsyncram_component.lpm_type = "altsyncram", + altsyncram_component.numwords_a = 1024, + altsyncram_component.numwords_b = 1024, + altsyncram_component.operation_mode = "BIDIR_DUAL_PORT", + altsyncram_component.outdata_aclr_a = "NONE", + altsyncram_component.outdata_aclr_b = "NONE", + altsyncram_component.outdata_reg_a = "CLOCK0", + altsyncram_component.outdata_reg_b = "CLOCK1", + altsyncram_component.power_up_uninitialized = "FALSE", + altsyncram_component.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ", + altsyncram_component.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ", + altsyncram_component.widthad_a = 10, + altsyncram_component.widthad_b = 10, + altsyncram_component.width_a = 16, + altsyncram_component.width_b = 16, + altsyncram_component.width_byteena_a = 1, + altsyncram_component.width_byteena_b = 1, + altsyncram_component.wrcontrol_wraddress_reg_b = "CLOCK1"; + + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/DPRAM1024_1B.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/DPRAM1024_1B.v new file mode 100644 index 00000000..32434cef --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/DPRAM1024_1B.v @@ -0,0 +1,128 @@ +// megafunction wizard: %RAM: 2-PORT% +// GENERATION: STANDARD +// VERSION: WM1.0 +// MODULE: altsyncram + +// ============================================================ +// File Name: DPRAM1024_1B.v +// Megafunction Name(s): +// altsyncram +// +// Simulation Library Files(s): +// altera_mf +// ============================================================ +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// +// 17.1.0 Build 590 10/25/2017 SJ Lite Edition +// ************************************************************ + + +//Copyright (C) 2017 Intel Corporation. All rights reserved. +//Your use of Intel 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 Intel Program License +//Subscription Agreement, the Intel Quartus Prime License Agreement, +//the Intel FPGA IP License Agreement, or other applicable license +//agreement, including, without limitation, that your use is for +//the sole purpose of programming logic devices manufactured by +//Intel and sold by Intel or its authorized distributors. Please +//refer to the applicable agreement for further details. + + +// synopsys translate_off +`timescale 1 ps / 1 ps +// synopsys translate_on +module DPRAM1024_1B ( + address_a, + address_b, + clock_a, + clock_b, + data_a, + data_b, + wren_a, + wren_b, + q_a, + q_b); + + input [9:0] address_a; + input [9:0] address_b; + input clock_a; + input clock_b; + input [0:0] data_a; + input [0:0] data_b; + input wren_a; + input wren_b; + output [0:0] q_a; + output [0:0] q_b; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_off +`endif + tri1 clock_a; + tri0 wren_a; + tri0 wren_b; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_on +`endif + + wire [0:0] sub_wire0; + wire [0:0] sub_wire1; + wire [0:0] q_a = sub_wire0[0:0]; + wire [0:0] q_b = sub_wire1[0:0]; + + altsyncram altsyncram_component ( + .address_a (address_a), + .address_b (address_b), + .clock0 (clock_a), + .clock1 (clock_b), + .data_a (data_a), + .data_b (data_b), + .wren_a (wren_a), + .wren_b (wren_b), + .q_a (sub_wire0), + .q_b (sub_wire1), + .aclr0 (1'b0), + .aclr1 (1'b0), + .addressstall_a (1'b0), + .addressstall_b (1'b0), + .byteena_a (1'b1), + .byteena_b (1'b1), + .clocken0 (1'b1), + .clocken1 (1'b1), + .clocken2 (1'b1), + .clocken3 (1'b1), + .eccstatus (), + .rden_a (1'b1), + .rden_b (1'b1)); + defparam + altsyncram_component.address_reg_b = "CLOCK1", + altsyncram_component.clock_enable_input_a = "BYPASS", + altsyncram_component.clock_enable_input_b = "BYPASS", + altsyncram_component.clock_enable_output_a = "BYPASS", + altsyncram_component.clock_enable_output_b = "BYPASS", + altsyncram_component.indata_reg_b = "CLOCK1", + altsyncram_component.intended_device_family = "Cyclone III", + altsyncram_component.lpm_type = "altsyncram", + altsyncram_component.numwords_a = 1024, + altsyncram_component.numwords_b = 1024, + altsyncram_component.operation_mode = "BIDIR_DUAL_PORT", + altsyncram_component.outdata_aclr_a = "NONE", + altsyncram_component.outdata_aclr_b = "NONE", + altsyncram_component.outdata_reg_a = "CLOCK0", + altsyncram_component.outdata_reg_b = "CLOCK1", + altsyncram_component.power_up_uninitialized = "FALSE", + altsyncram_component.read_during_write_mode_port_a = "NEW_DATA_NO_NBE_READ", + altsyncram_component.read_during_write_mode_port_b = "NEW_DATA_NO_NBE_READ", + altsyncram_component.widthad_a = 10, + altsyncram_component.widthad_b = 10, + altsyncram_component.width_a = 1, + altsyncram_component.width_b = 1, + altsyncram_component.width_byteena_a = 1, + altsyncram_component.width_byteena_b = 1, + altsyncram_component.wrcontrol_wraddress_reg_b = "CLOCK1"; + + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FPGA_FLICKY.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FPGA_FLICKY.v new file mode 100644 index 00000000..7eaf7e39 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FPGA_FLICKY.v @@ -0,0 +1,143 @@ +/******************************************************************** + FPGA Implimentation of "FLICKY" (Top Module) + + Copyright (c) 2017,19 MiSTer-X +*********************************************************************/ +module FPGA_FLICKY +( + input clk48M, + input reset, + + input [7:0] INP0, + input [7:0] INP1, + input [7:0] INP2, + + input [7:0] DSW0, + input [7:0] DSW1, + output [2:0] video_r, + output [2:0] video_g, + output [1:0] video_b, + output video_hs, + output video_vs, + output video_hb, + output video_vb, + + output [15:0] SOUT, // Sound Out (PCM) + output [14:0] cpu_rom_addr, + input [7:0] cpu_rom_do, + output [14:0] spr_rom_addr, + input [7:0] spr_rom_do, + output [12:0] snd_rom_addr, + input [7:0] snd_rom_do, + output [13:0] tile_rom_addr, + input [23:0] tile_rom_do +); + +// Clocks +wire clk24M, clk12M, clk6M, clk3M, clk8M ; +CLKGEN clks( clk48M, clk24M, clk12M, clk6M, clk3M, clk8M ); + +// CPU +wire CPUCLn; +wire [15:0] CPUAD; +wire [7:0] CPUDO,VIDDO; +wire CPUWR,VIDCS,VBLK; +wire SNDRQ; + +FlickyMAIN Main ( + .RESET(reset), + .INP0(INP0),.INP1(INP1),.INP2(INP2), + .DSW0(DSW0),.DSW1(DSW1), + .CLK48M(clk48M),.CLK3M(clk3M), + .CPUCLn(CPUCLn),.CPUAD(CPUAD),.CPUDO(CPUDO),.CPUWR(CPUWR), + .VBLK(VBLK),.VIDCS(VIDCS),.VIDDO(VIDDO), + .SNDRQ(SNDRQ), + .cpu_rom_addr(cpu_rom_addr), + .cpu_rom_do(cpu_rom_do) +); + +// Video +FlickyVIDEO Video ( + .VCLKx8(clk48M), + .VCLKx4(clk24M), + .VCLKx2(clk12M), + .VCLK(clk6M), + .PH(HPOS), + .PV(VPOS), + .VBLK(VBLK), + .RGB8(POUT), + .PALDSW(1'b0), + + .cpu_cl(CPUCLn), + .cpu_ad(CPUAD), + .cpu_wr(CPUWR), + .cpu_dw(CPUDO), + .cpu_rd(VIDCS), + .cpu_dr(VIDDO), + .spr_rom_addr(spr_rom_addr), + .spr_rom_do(spr_rom_do), + .tile_rom_addr(tile_rom_addr), + .tile_rom_do(tile_rom_do) +); +assign PCLK = clk6M; + +// Sound +FlickySND Sound( + clk8M, reset, CPUDO, SNDRQ, SOUT, + snd_rom_addr, snd_rom_do +); + +wire [8:0] HPOS; +wire [8:0] VPOS; +wire PCLK; +wire [7:0] POUT; + +hvgen hvgen( + .HPOS(HPOS), + .VPOS(VPOS), + .PCLK(PCLK), + .iRGB(POUT), + .oRGB({video_b,video_g,video_r}), + .HBLK(video_hb), + .VBLK(video_vb), + .HSYN(video_hs), + .VSYN(video_vs) +); + + +endmodule + + +//---------------------------------- +// Clock Generator +//---------------------------------- +module CLKGEN +( + input clk48M, + + output clk24M, + output clk12M, + output clk6M, + output clk3M, + + output reg clk8M +); + +reg [4:0] clkdiv; +always @( posedge clk48M ) clkdiv <= clkdiv+1; +assign clk24M = clkdiv[0]; +assign clk12M = clkdiv[1]; +assign clk6M = clkdiv[2]; +assign clk3M = clkdiv[3]; + +reg [1:0] count; +always @( posedge clk48M ) begin + if (count > 2'd2) begin + count <= count - 2'd2; + clk8M <= ~clk8M; + end + else count <= count + 2'd1; +end + +endmodule + diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickyMAIN.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickyMAIN.v new file mode 100644 index 00000000..34b5c2ef --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickyMAIN.v @@ -0,0 +1,167 @@ +// Copyright (c) 2017,19 MiSTer-X + +module FlickyMAIN +( + input CLK48M, + input CLK3M, + + input RESET, + + input [7:0] INP0, + input [7:0] INP1, + input [7:0] INP2, + + input [7:0] DSW0, + input [7:0] DSW1, + + input VBLK, + input VIDCS, + input [7:0] VIDDO, + + output CPUCLn, + output [15:0] CPUAD, + output [7:0] CPUDO, + output CPUWR, + + output SNDRQ, + +// input ROMCL, // Downloaded ROM image +// input [24:0] ROMAD, +// input [7:0] ROMDT, +// input ROMEN + output [14:0] cpu_rom_addr, + input [7:0] cpu_rom_do +); + +wire AXSCL = CLK48M; +wire CPUCL = CLK3M; +assign CPUCLn = ~CPUCL; + +wire [7:0] CPUDI; +wire CPURD; + +wire cpu_cs_video; +wire [7:0] cpu_rd_video; + +wire cpu_m1; +wire cpu_mreq, cpu_iorq; +wire _cpu_rd, _cpu_wr; + +Z80IP maincpu( + .reset(RESET), + .clk(CPUCL), + .adr(CPUAD), + .data_in(CPUDI), + .data_out(CPUDO), + .m1(cpu_m1), + .mx(cpu_mreq), + .ix(cpu_iorq), + .rd(_cpu_rd), + .wr(_cpu_wr), + .intreq(VBLK), + .nmireq(1'b0) +); + +assign CPUWR = _cpu_wr & cpu_mreq; +assign CPURD = _cpu_rd & cpu_mreq; + +assign SNDRQ = (CPUAD[4:0] == 5'b1_1000) & cpu_iorq & _cpu_wr; + +wire cpu_cs_port1 = (CPUAD[4:2] == 3'b0_00) & cpu_iorq; +wire cpu_cs_port2 = (CPUAD[4:2] == 3'b0_01) & cpu_iorq; +wire cpu_cs_portS = (CPUAD[4:2] == 3'b0_10) & cpu_iorq; +wire cpu_cs_portA = (CPUAD[4:2] == 3'b0_11) & ~CPUAD[0] & cpu_iorq; +wire cpu_cs_portB =(((CPUAD[4:2] == 3'b0_11) & CPUAD[0]) | (CPUAD[4:0] == 5'b1_0000)) & cpu_iorq; +wire cpu_cs_portI = (CPUAD[4:2] == 3'b1_10) & cpu_iorq; + +wire [7:0] cpu_rd_port1 = INP0; +wire [7:0] cpu_rd_port2 = INP1; +wire [7:0] cpu_rd_portS = INP2; + +wire [7:0] cpu_rd_portA = DSW0; +wire [7:0] cpu_rd_portB = DSW1; + +wire [7:0] cpu_rd_mrom; +wire cpu_cs_mrom = (CPUAD[15] == 1'b0); +PRGROM prom(AXSCL, cpu_m1, CPUAD[14:0], cpu_rd_mrom, cpu_rom_addr,cpu_rom_do ); + +wire [7:0] cpu_rd_mram; +wire cpu_cs_mram = (CPUAD[15:12] == 4'b1100); +SRAM_4096 mainram(CPUCLn, CPUAD[11:0], cpu_rd_mram, cpu_cs_mram & CPUWR, CPUDO ); + +reg [7:0] vidmode; +always @(posedge CPUCLn) begin + if ((CPUAD[4:0] == 5'b1_1001) & cpu_iorq & _cpu_wr) begin + vidmode <= CPUDO; + end +end + +dataselector8 mcpudisel( + CPUDI, + VIDCS, VIDDO, + cpu_cs_port1, cpu_rd_port1, + cpu_cs_port2, cpu_rd_port2, + cpu_cs_portS, cpu_rd_portS, + cpu_cs_portA, cpu_rd_portA, + cpu_cs_portB, cpu_rd_portB, + cpu_cs_mram, cpu_rd_mram, + cpu_cs_mrom, cpu_rd_mrom, + 8'hFF +); + +endmodule + + +//---------------------------------- +// Program ROM with Decryptor +//---------------------------------- +module PRGROM +( + input clk, + + input mrom_m1, + input [14:0] mrom_ad, + output reg [7:0] mrom_dt, + output [14:0] cpu_rom_addr, + input [7:0] cpu_rom_do +// input ROMCL, // Downloaded ROM image +// input [24:0] ROMAD, +// input [7:0] ROMDT, +// input ROMEN +); + +reg [15:0] madr; +wire [7:0] mdat; + +wire f = mdat[7]; +wire [7:0] xorv = { f, 1'b0, f, 1'b0, f, 3'b000 }; +wire [7:0] andv = ~(8'hA8); +wire [1:0] decidx0 = { mdat[5], mdat[3] } ^ { f, f }; +wire [6:0] decidx = { madr[12], madr[8], madr[4], madr[0], ~madr[15], decidx0 }; +wire [7:0] dectbl; +wire [7:0] mdec = ( mdat & andv ) | ( dectbl ^ xorv ); + +//DLROM #( 7,8) decrom( clk, decidx, dectbl, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16: 7]==10'b1_1110_0001_0) ); // $1E100-$1E17F +dec_rom dec_rom( + .clk(clk), + .addr(decidx), + .data(dectbl) +); + +//DLROM #(15,8) mainir( clk, madr[14:0], mdat, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:15]==2'b0_0) ); // $00000-$07FFF +//prg_rom pgr_rom( +// .clk(clk), +// .addr(madr[14:0]), +// .data(mdat) +//); +assign cpu_rom_addr = madr[14:0]; +assign mdat = cpu_rom_do; + +reg phase = 1'b0; +always @( negedge clk ) begin + if ( phase ) mrom_dt <= mdec; + else madr <= { mrom_m1, mrom_ad }; + phase <= ~phase; +end + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickySND.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickySND.v new file mode 100644 index 00000000..d79239b5 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickySND.v @@ -0,0 +1,214 @@ +// Copyright (c) 2017,19 MiSTer-X + +module FlickySND +( + input clk8M, + input reset, + + input [7:0] sndno, + input sndstart, + + output [15:0] sndout, + output [12:0] snd_rom_addr, + input [7:0] snd_rom_do +); + +//---------------------------------- +// ClockGen +//---------------------------------- +wire clk4M,clk2M; +SndClkGen clkgen(clk8M,clk4M,clk2M); + +wire cpuclkx2 = clk8M; +wire cpu_clk = clk4M; + + +//---------------------------------- +// Z80 (1.5625MHz) +//---------------------------------- +wire [15:0] cpu_ad; +wire [7:0] cpu_di, cpu_do; +wire cpu_mreq, cpu_iorq, cpu_rd, cpu_wr; +wire cpu_irq, cpu_nmi; +wire cpu_irqa, cpu_nmia; + +wire cpu_mw, cpu_cs_rom, cpu_cs_ram, cpu_wr_ram, cpu_cs_psg0, cpu_cs_psg1, cpu_cs_com; +SndADec adec( + cpu_mreq, cpu_wr, cpu_mw, + cpu_ad, cpu_cs_rom, cpu_cs_ram, cpu_wr_ram, cpu_cs_psg0, cpu_cs_psg1, cpu_cs_com +); + +Z80IP cpu( + .clk(cpu_clk), + .reset(reset), + .adr(cpu_ad), + .data_in(cpu_di), + .data_out(cpu_do), + .intreq(cpu_irq), + .intack(cpu_irqa), + .nmireq(cpu_nmi), + .nmiack(cpu_nmia), + .mx(cpu_mreq), + .ix(cpu_iorq), + .rd(cpu_rd), + .wr(cpu_wr) +); + +wire [7:0] rom_dt; // ROM +wire [7:0] ram_do; // RAM +wire [7:0] comlatch; // Sound Command Latch + +//DLROM #(13,8) subir( cpuclkx2, cpu_ad[12:0], rom_dt, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_110)); // $1C000-$1DFFF +//snd_rom snd_rom( +// .clk(cpuclkx2), +// .addr(cpu_ad[12:0]), +// .data(rom_dt) +//); +assign snd_rom_addr = cpu_ad[12:0]; +assign rom_dt = snd_rom_do; + +SRAM_2048 wram( cpuclkx2, cpu_ad[10:0], ram_do, cpu_wr_ram, cpu_do ); + +dataselector3 scpudisel( + cpu_di, + cpu_cs_rom, rom_dt, + cpu_cs_ram, ram_do, + cpu_cs_com, comlatch, + 8'hFF +); + +SndPlayReq sndreq ( + clk4M, reset, + sndno, sndstart, + cpu_irq, cpu_irqa, + cpu_nmi, cpu_nmia, + comlatch +); + + +//---------------------------------- +// PSGs +//---------------------------------- +wire [7:0] psg0out, psg1out; + +SN76496 psg0( + clk2M, + cpu_clk, + reset, + cpu_cs_psg0, + cpu_mw, + cpu_do, + 4'b1111, + psg0out +); + +SN76496 psg1( + clk4M, + cpu_clk, + reset, + cpu_cs_psg1, + cpu_mw, + cpu_do, + 4'b1111, + psg1out +); + +wire [8:0] psgout = psg0out + psg1out; +assign sndout = { psgout, 6'h0 }; + +endmodule + + +module SndClkGen +( + input clk8M, + output clk4M, + output clk2M +); +reg [1:0] clkdiv; +always @ ( posedge clk8M ) clkdiv <= clkdiv+1; + +assign clk4M = clkdiv[0]; +assign clk2M = clkdiv[1]; + +endmodule + + +module SndADec +( + input cpu_mx, + input cpu_wr, + + output cpu_mw, + + input [15:0] cpu_ad, + output cpu_cs_rom, + output cpu_cs_ram, + output cpu_wr_ram, + output cpu_cs_psg0, + output cpu_cs_psg1, + output cpu_cs_com +); + +assign cpu_mw = cpu_mx & cpu_wr; + +assign cpu_cs_rom = ( cpu_ad[15] == 1'b0 ); +assign cpu_cs_psg0 = ( cpu_ad[15:12] == 4'HA ); +assign cpu_cs_psg1 = ( cpu_ad[15:12] == 4'HC ); +assign cpu_cs_com = ( cpu_ad[15:12] == 4'HE ); + +assign cpu_cs_ram = ( cpu_ad[15:12] == 4'h8 ); +assign cpu_wr_ram = cpu_cs_ram & cpu_mw; + +endmodule + + +//---------------------------------- +// Play Request & IRQ Generator +//---------------------------------- +module SndPlayReq +( + input clk4M, + input reset, + + input [7:0] sndno, + input sndstart, + + output reg cpu_irq, + input cpu_irqa, + + output reg cpu_nmi, + input cpu_nmia, + + output reg [7:0] comlatch +); + +reg [15:0] timercnt; +reg psndstart; + +always @( posedge clk4M or posedge reset ) begin + if ( reset ) begin + cpu_nmi <= 0; + cpu_irq <= 0; + comlatch <= 0; + timercnt <= 0; + psndstart <= 0; + end + else begin + if ( cpu_irqa ) cpu_irq <= 1'b0; + if ( cpu_nmia ) cpu_nmi <= 1'b0; + + if ( ( psndstart ^ sndstart ) & sndstart ) begin + comlatch <= sndno; + cpu_nmi <= 1'b1; + end + psndstart <= sndstart; + + if ( timercnt == 16666 ) cpu_irq <= 1'b1; + if ( timercnt == 33333 ) cpu_irq <= 1'b1; + + timercnt <= ( timercnt == 33333 ) ? 0 : (timercnt+1); // 1/60sec + end +end + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickySPRITE.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickySPRITE.v new file mode 100644 index 00000000..005088fc --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickySPRITE.v @@ -0,0 +1,247 @@ +// Copyright (c) 2017,19 MiSTer-X + +module FlickySPRITE +( + input VCLKx4, + input VCLK, + + input [8:0] PH, + input [8:0] PV, + + output [9:0] sprad, + input [15:0] sprdt, + + output [17:0] sprchad, + input [7:0] sprchdt, + + output reg sprcoll, + output reg [9:0] sprcoll_ad, + + output reg [10:0] sprpx +); + +wire [8:0] HPOS = PH+15; +wire [8:0] VPOS = PV; + +wire HB = HPOS[8]; + +reg [5:0] spr_num; +reg [2:0] spr_ofs; + +reg [1:0] phaseHB; +reg [7:0] svpos; +reg [5:0] hitsprnum [0:31]; +reg [7:0] hitsprvps [0:31]; +reg [4:0] hits; + +reg [3:0] phaseHD; +reg [4:0] hitr; +reg [7:0] yofs; +reg [8:0] xpos; +reg [2:0] bank; +reg [15:0] stride; +reg [15:0] srcadrs; +reg [1:0] waitcnt; +reg [7:0] rdat; +reg [10:0] wdat; +reg hflip; +reg nowflip; +reg we; + +wire [15:0] srca = sprdt[15:0] + (stride * yofs); + +wire [10:0] col0 = { 2'b00, spr_num[4:0], nowflip ? rdat[3:0] : rdat[7:4] }; +wire [10:0] col1 = { 2'b00, spr_num[4:0], nowflip ? rdat[7:4] : rdat[3:0] }; + +wire [10:0] _prevpix; +reg [10:0] prevpix; +wire side = VPOS[0]; + +wire [10:0] opix; +reg [9:0] rad0,rad1=1; +LineBuf lbuf( + VCLKx4, rad0, (rad0==rad1), opix, + VCLKx4, {~side,xpos}, wdat, we & (wdat[3:0] != 4'h0), _prevpix +); +always @(posedge VCLK) rad0 <= {side,HPOS}; +always @(negedge VCLK) begin + sprpx <= opix; + rad1 <= rad0; +end + +assign sprad = { spr_num, spr_ofs }; +assign sprchad = { bank, srcadrs[14:0] }; + +wire [9:0] sprcoll_adr = { spr_num[4:0], prevpix[8:4] }; + + +`define SPSTART 0 +`define SPEND 31 + +always @ ( negedge VCLKx4 ) begin + + // in H-Blank + if ( HB ) begin + + phaseHD <= 0; + we <= 1'b0; + sprcoll <= 1'b0; + + case ( phaseHB ) + + // initialize + 2'h0: begin + svpos <= VPOS+1; + spr_num <= `SPSTART; + spr_ofs <= 0; + hits <= 0; + phaseHB <= 2'h1; + end + + // check v-hit + 2'h1: begin + if ( sprdt[7:0] != 8'hFF ) begin + if ( ( svpos >= sprdt[7:0] ) & ( svpos < sprdt[15:8] ) ) begin + hitsprnum[hits] <= spr_num; + hitsprvps[hits] <= (svpos-sprdt[7:0])+1; + hits <= hits+1; + end + end + phaseHB <= ( spr_num == `SPEND ) ? 2'h2 : 2'h1; + spr_num <= spr_num+1; + end + + default:; + + endcase + + end + + // in H-Disp + else begin + + phaseHB <= 0; + + case ( phaseHD ) + + // initialize + 0: begin + hitr <= 0; + we <= 1'b0; + sprcoll <= 0; + phaseHD <= ( hits > 0 ) ? 1 : 15; + end + + // get hit sprite number + 1: begin + spr_num <= hitsprnum[hitr]; + spr_ofs <= 1; + phaseHD <= 2; + end + + // get yofs/xpos/bank + 2: begin + yofs <= hitsprvps[hitr]; + xpos <= sprdt[8:1]+14; + bank <= { sprdt[13], sprdt[14], sprdt[15] }; + spr_ofs <= 2; + phaseHD <= 3; + end + + // get stride + 3: begin + stride <= sprdt; + spr_ofs <= 3; + phaseHD <= 4; + end + + // get srcadrs & calc chiprom address + 4: begin + srcadrs <= srca; + hflip <= srca[15]; + waitcnt <= 3; + phaseHD <= 5; + end + + // wait chiprom setup + 5: begin + waitcnt <= waitcnt-1; + phaseHD <= ( waitcnt == 0 ) ? 6 : 5; + end + + // rendering to linebuf + 6: begin + sprcoll <= 1'b0; + we <= 1'b0; + rdat <= sprchdt; + nowflip <= srcadrs[15]; + srcadrs <= hflip ? (srcadrs-1) : (srcadrs+1); + phaseHD <= 7; + end + 7: begin + prevpix <= _prevpix; + if ( col0[3:0] != 4'hF ) begin + wdat <= col0; + we <= 1'b1; + phaseHD <= 8; + end + else begin + we <= 1'b0; + phaseHD <= 14; + end + end + 8: begin + // sprite collide process + we <= 1'b0; + if ( col0[3:0] != 4'h0 ) begin + if ( prevpix[3:0] != 4'h0 ) begin + sprcoll <= 1'b1; + sprcoll_ad <= sprcoll_adr; + end + end + xpos <= xpos+1; + phaseHD <= 9; + end + 9: begin + prevpix <= _prevpix; + sprcoll <= 1'b0; + if ( col1[3:0] != 4'hF ) begin + wdat <= col1; + we <= 1'b1; + phaseHD <= 10; + end + else begin + we <= 1'b0; + phaseHD <= 14; + end + end + 10: begin + // sprite collide process + we <= 1'b0; + if ( col1[3:0] != 4'h0 ) begin + if ( prevpix[3:0] != 4'h0 ) begin + sprcoll <= 1'b1; + sprcoll_ad <= sprcoll_adr; + end + end + xpos <= xpos+1; + phaseHD <= 6; + end + + // process next hit sprite + 14: begin + phaseHD <= ( hitr == (hits-1) ) ? 15 : 1; + hitr <= hitr+1; + end + + default: begin + we <= 1'b0; + sprcoll <= 1'b0; + end + + endcase + + end +end + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickyVIDEO.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickyVIDEO.v new file mode 100644 index 00000000..9b3c649a --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/FlickyVIDEO.v @@ -0,0 +1,605 @@ +// Copyright (c) 2017,19 MiSTer-X + +module FlickyVIDEO +( + input VCLKx8, + input VCLKx4, + input VCLKx2, + input VCLK, + + input [8:0] PH, + input [8:0] PV, + + output VBLK, + output [7:0] RGB8, + + input PALDSW, + + input cpu_cl, + input [15:0] cpu_ad, + input cpu_wr, + input [7:0] cpu_dw, + output cpu_rd, + output [7:0] cpu_dr, + output [14:0] spr_rom_addr, + input [7:0] spr_rom_do, + output [13:0] tile_rom_addr, + input [23:0] tile_rom_do +); + +// CPU Interface +wire [10:0] palno; +wire [7:0] palout; + +wire [9:0] sprad; +wire [15:0] sprdt; + +wire [9:0] vram0ad; +wire [15:0] vram0dt; +wire [9:0] vram1ad; +wire [15:0] vram1dt; + +wire [5:0] mixcoll_ad; +wire mixcoll; +wire [9:0] sprcoll_ad; +wire sprcoll; + +wire [15:0] scrx; +wire [7:0] scry; + +VIDCPUINTF intf( + cpu_cl, + cpu_ad, cpu_wr, cpu_dw, + cpu_rd, cpu_dr, + + VCLKx4, VCLK, + palno, palout, + sprad, sprdt, + vram0ad, vram0dt, + vram1ad, vram1dt, + mixcoll_ad, mixcoll, + sprcoll_ad, sprcoll, + scrx, scry +); + + +// HV Coordinate Generator +wire [8:0] HPOS, VPOS; +wire [8:0] BG0HP, BG0VP; +wire [8:0] BG1HP, BG1VP; +VIDHVGEN hv( + PH, PV, + scrx, scry, + HPOS, VPOS, + BG0HP, BG0VP, + BG1HP, BG1VP, + VBLK +); + + +// Sprite Engine +wire [10:0] SPRPX; +wire [14:0] sprchad; +wire [7:0] sprchdt; +//DLROM #(15,8) sprchr(VCLKx8,sprchad,sprchdt, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:15]==2'b0_1)); // $08000-$0FFFF +spr_rom spr_rom( + .clk(VCLKx8), + .addr(sprchad), + .data(sprchdt) +); +//assign spr_rom_addr = sprchad; +//assign sprchdt = spr_rom_do; + + +FlickySPRITE sprite( + .VCLKx4(VCLKx4),.VCLK(VCLK), + .PH(HPOS),.PV(VPOS), + .sprad(sprad),.sprdt(sprdt), + .sprchad(sprchad),.sprchdt(sprchdt), + .sprcoll(sprcoll),.sprcoll_ad(sprcoll_ad), + .sprpx(SPRPX) +); + + +// BG Scanline Generator +wire [10:0] BG0PX, BG1PX; +wire [13:0] tile0ad, tile1ad, tilead; +wire [23:0] tile0dt, tile1dt, tiledt; +TileChrMUX tilemux(VCLKx8, tile0ad, tile0dt, tile1ad, tile1dt, tilead, tiledt); +//TILES +//FlickyTileChr tilechr(VCLKx8, tilead, tiledt, ROMCL,ROMAD,ROMDT,ROMEN ); +assign tile_rom_addr = tilead; +assign tiledt = tile_rom_do; +BGGEN bg0(VCLK,BG0HP,BG0VP,vram0ad,vram0dt,tile0ad,tile0dt,BG0PX); +BGGEN bg1(VCLK,BG1HP,BG1VP,vram1ad,vram1dt,tile1ad,tile1dt,BG1PX); + + +// Color Mixer & RGB Output +wire [7:0] cltidx,cltval; +//DLROM #(8,8) clut(VCLKx2, cltidx, cltval, ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:8]==9'b1_1110_0000) ); // $1E000-$1E0FF +clut clut( + .clk(VCLKx2), + .addr(cltidx), + .data(cltval) +); + +COLMIX cmix( + VCLK, + BG0PX, BG1PX, SPRPX, + PALDSW, HPOS, VPOS, + cltidx, cltval, + mixcoll, mixcoll_ad, + palno, palout, + RGB8 +); + +endmodule + + +//---------------------------------- +// CPU Interface +//---------------------------------- +module VIDCPUINTF +( + input cpu_cl, + input [15:0] cpu_ad, + input cpu_wr, + input [7:0] cpu_dw, + output cpu_rd, + output [7:0] cpu_dr, + + input VCLKx4, + input VCLK, + + input [10:0] palno, + output [7:0] palout, + + input [9:0] sprad, + output [15:0] sprdt, + + input [9:0] vram0ad, + output [15:0] vram0dt, + + input [9:0] vram1ad, + output [15:0] vram1dt, + + input [5:0] mixcoll_ad, + input mixcoll, + + input [9:0] sprcoll_ad, + input sprcoll, + + output reg [15:0] scrx, + output reg [7:0] scry +); + +// CPU Address Decoders +wire cpu_cs_palram; +wire cpu_cs_spram; +wire cpu_cs_mixcoll; +wire cpu_cs_sprcoll; +wire cpu_cs_vram0; +wire cpu_cs_vram1; + +wire cpu_wr_palram; +wire cpu_wr_spram; +wire cpu_wr_mixcoll; +wire cpu_wr_mixcollclr; +wire cpu_wr_sprcoll; +wire cpu_wr_sprcollclr; +wire cpu_wr_vram0; +wire cpu_wr_vram1; +wire cpu_wr_scrreg; + +VIDADEC adecs( + cpu_ad, + cpu_wr, + + cpu_cs_palram, + cpu_cs_spram, + cpu_cs_mixcoll, + cpu_cs_sprcoll, + cpu_cs_vram0, + cpu_cs_vram1, + + cpu_wr_palram, + cpu_wr_spram, + cpu_wr_mixcoll, + cpu_wr_mixcollclr, + cpu_wr_sprcoll, + cpu_wr_sprcollclr, + cpu_wr_vram0, + cpu_wr_vram1, + cpu_wr_scrreg, + + cpu_rd +); + +// Scroll Register +always @ ( posedge cpu_cl ) begin + if (cpu_wr_scrreg) begin + case({cpu_ad[6],cpu_ad[0]}) + 2'b11: scrx[15:8] <= cpu_dw; + 2'b10: scrx[ 7:0] <= cpu_dw; + 2'b01: scry <= cpu_dw; + 2'b00: ; + endcase + end +end + + +// Palette RAM +wire [7:0] cpu_rd_palram; +DPRAM2048 palram( + cpu_cl, cpu_ad[10:0], cpu_dw, cpu_wr_palram, + VCLK, palno, palout, cpu_rd_palram +); + + +// Sprite Attribute RAM +wire [7:0] cpu_rd_spram; +DPRAM2048_8_16 sprram( + cpu_cl, cpu_ad[10:0], cpu_dw, cpu_wr_spram, + VCLKx4, sprad, sprdt, cpu_rd_spram +); + + +// Collision RAM (Mixer & Sprite) +wire noclip = 1'b1; +wire [7:0] cpu_rd_mixcoll; +wire [7:0] cpu_rd_sprcoll; +COLLRAM_M mixc( + cpu_cl,cpu_ad[5:0],cpu_wr_mixcoll,cpu_wr_mixcollclr,cpu_rd_mixcoll, + VCLKx4,mixcoll_ad,mixcoll & noclip +); +COLLRAM_S sprc( + cpu_cl,cpu_ad[9:0],cpu_wr_sprcoll,cpu_wr_sprcollclr,cpu_rd_sprcoll, + VCLKx4,sprcoll_ad,sprcoll & noclip +); + + +// VRAM +wire [7:0] cpu_rd_vram0, cpu_rd_vram1; +VRAM vram0( + cpu_cl, cpu_ad[10:0], cpu_rd_vram0, cpu_dw, cpu_wr_vram0, + VCLKx4, vram0ad, vram0dt +); +VRAM vram1( + cpu_cl, cpu_ad[10:0], cpu_rd_vram1, cpu_dw, cpu_wr_vram1, + VCLKx4, vram1ad, vram1dt +); + + +// CPU Read Data Selector +dataselector6 videodsel( + cpu_dr, + cpu_cs_palram, cpu_rd_palram, + cpu_cs_vram0, cpu_rd_vram0, + cpu_cs_vram1, cpu_rd_vram1, + cpu_cs_spram, cpu_rd_spram, + cpu_cs_sprcoll, cpu_rd_sprcoll, + cpu_cs_mixcoll, cpu_rd_mixcoll, + 8'hFF +); + +endmodule + + +//---------------------------------- +// Tile ROM +//---------------------------------- +module TileChrMUX +( + input VCLKx8, + + input [13:0] tile0ad, + output reg [23:0] tile0dt, + + input [13:0] tile1ad, + output reg [23:0] tile1dt, + + output [13:0] tilead, + input [23:0] tiledt +); + +reg tphase; +always @(negedge VCLKx8) begin + if (tphase) tile1dt <= tiledt; + else tile0dt <= tiledt; + tphase <= ~tphase; +end +assign tilead = tphase ? tile1ad : tile0ad; + +endmodule +/* +module FlickyTileChr +( + input clk, + input [13:0] adr, + output [23:0] dat, + + input ROMCL, // Downloaded ROM image + input [24:0] ROMAD, + input [7:0] ROMDT, + input ROMEN +); + +wire [23:0] t0dt,t1dt; +assign dat = adr[13] ? t1dt : t0dt; + +//DLROM #(13,8) t00( clk, adr[12:0], t0dt[7:0] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_000)); // $10000-$11FFF +//tile1 tile1( +// .clk(clk), +// .addr(adr[12:0]), +// .data(t0dt[7:0]) +//); + + +//DLROM #(13,8) t01( clk, adr[12:0], t0dt[15:8] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_001)); // $12000-$13FFF +//DLROM #(13,8) t02( clk, adr[12:0], t0dt[23:16],ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_010)); // $14000-$15FFF + +//DLROM #(13,8) t10( clk, adr[12:0], t1dt[7:0] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_011)); // $16000-$17FFF +//DLROM #(13,8) t11( clk, adr[12:0], t1dt[15:8] ,ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_100)); // $18000-$19FFF +//DLROM #(13,8) t12( clk, adr[12:0], t1dt[23:16],ROMCL,ROMAD,ROMDT,ROMEN & (ROMAD[16:13]==4'b1_101)); // $1A000-$1BFFF + +endmodule*/ + + +//---------------------------------- +// HV Coordinate Generator +//---------------------------------- +module VIDHVGEN +( + input [8:0] PH, + input [8:0] PV, + + input [15:0] scrx, + input [7:0] scry, + + output [8:0] HPOS, + output [8:0] VPOS, + + output [8:0] BG0HP, + output [8:0] BG0VP, + + output [8:0] BG1HP, + output [8:0] BG1VP, + + output VBLK +); + +assign VBLK = (PV == 8'd224) & (PH <= 8'd64); + +assign HPOS = PH+1; +assign VPOS = PV; + +wire [8:0] BGHSCR = (511-scrx[9:1])-10; +wire [8:0] BGVSCR = { 1'b0, scry }; + +assign BG0HP = BGHSCR+HPOS; +assign BG0VP = BGVSCR+VPOS; + +assign BG1HP = HPOS+3; +assign BG1VP = VPOS; + +endmodule + + +//---------------------------------- +// CPU Address Decoders +//---------------------------------- +module VIDADEC +( + input [15:0] cpu_ad, + input cpu_wr, + + output cpu_cs_palram, + output cpu_cs_spram, + output cpu_cs_mixcoll, + output cpu_cs_sprcoll, + output cpu_cs_vram0, + output cpu_cs_vram1, + + output cpu_wr_palram, + output cpu_wr_spram, + output cpu_wr_mixcoll, + output cpu_wr_mixcollclr, + output cpu_wr_sprcoll, + output cpu_wr_sprcollclr, + output cpu_wr_vram0, + output cpu_wr_vram1, + output cpu_wr_scrreg, + + output cpu_rd +); + +assign cpu_cs_palram = ( cpu_ad[15:11] == 5'b1101_1 ); +assign cpu_cs_spram = ( cpu_ad[15:11] == 5'b11010 ); +assign cpu_cs_mixcoll = ( cpu_ad[15:10] == 6'b1111_00 ); +wire cpu_cs_mixcollclr = ( cpu_ad[15:10] == 6'b1111_01 ); +assign cpu_cs_sprcoll = ( cpu_ad[15:10] == 6'b1111_10 ); +wire cpu_cs_sprcollclr = ( cpu_ad[15:10] == 6'b1111_11 ); +assign cpu_cs_vram0 = ( cpu_ad[15:11] == 5'b11100 ); +assign cpu_cs_vram1 = ( cpu_ad[15:11] == 5'b11101 ); +wire cpu_cs_scrreg = ((cpu_ad[15: 0] & 16'b1111_1111_1011_1110) == 16'b1110_1111_1011_1100); + + +assign cpu_wr_palram = cpu_cs_palram & cpu_wr; +assign cpu_wr_spram = cpu_cs_spram & cpu_wr; +assign cpu_wr_mixcoll = cpu_cs_mixcoll & cpu_wr; +assign cpu_wr_mixcollclr = cpu_cs_mixcollclr & cpu_wr; +assign cpu_wr_sprcoll = cpu_cs_sprcoll & cpu_wr; +assign cpu_wr_sprcollclr = cpu_cs_sprcollclr & cpu_wr; +assign cpu_wr_vram0 = cpu_cs_vram0 & cpu_wr; +assign cpu_wr_vram1 = cpu_cs_vram1 & cpu_wr; +assign cpu_wr_scrreg = cpu_cs_scrreg & cpu_wr; + + +assign cpu_rd = cpu_cs_palram | + cpu_cs_vram0 | + cpu_cs_vram1 | + cpu_cs_spram | + cpu_cs_sprcoll | + cpu_cs_mixcoll ; + +endmodule + + +//---------------------------------- +// BG Scanline Generator +//---------------------------------- +module BGGEN +( + input VCLK, + + input [8:0] HP, + input [8:0] VP, + + output [9:0] VRAMAD, + input [15:0] VRAMDT, + + output [13:0] TILEAD, + input [23:0] TILEDT, + + output [10:0] OPIX +); + +assign VRAMAD = { VP[7:3], HP[7:3] }; +assign TILEAD = { VRAMDT[15], VRAMDT[10:0], VP[2:0] }; + +reg [31:0] BGREG; +wire [23:0] BGCD = BGREG[23:0]; +wire [7:0] BGPN = BGREG[31:24]; + +wire [31:0] BGPIX; +always @( posedge VCLK ) BGREG <= BGPIX; + +dataselector1_32 pixsft( + BGPIX, + ( HP[2:0] != 2 ),{ BGPN, BGCD[22:0], 1'b0 }, + { VRAMDT[12:5], TILEDT } +); + +assign OPIX = { BGPN, BGCD[7], BGCD[15], BGCD[23] }; + +endmodule + + +//---------------------------------- +// Color Mixer & RGB Output +//---------------------------------- +module COLMIX +( + input VCLK, + + input [10:0] BG0PX, + input [10:0] BG1PX, + input [10:0] SPRPX, + + input PALDSW, + input [8:0] HPOS, + input [8:0] VPOS, + + output [7:0] cltidx, + input [7:0] cltval, + + output mixcoll, + output [5:0] mixcoll_ad, + + output [10:0] palno, + input [7:0] palout, + + output reg [7:0] RGB8 +); + +assign cltidx = { 1'b0, + BG0PX[10:9],(BG0PX[2:0]==0), + BG1PX[10:9],(BG1PX[2:0]==0), + (SPRPX[3:0]==0) +}; + +assign mixcoll = ~(cltval[2]); +assign mixcoll_ad = { cltval[3], SPRPX[8:4] }; + +wire [10:0] palno_i; +dataselector2_11 colsel( + palno_i, + cltval[1], ( 11'h400 | BG0PX[8:0] ), + cltval[0], ( 11'h200 | BG1PX[8:0] ), + ( 11'h000 | SPRPX[8:0] ) +); + +wire [10:0] palno_d = {HPOS[7],VPOS[7:2],HPOS[6:3]}; + +assign palno = PALDSW ? palno_d : palno_i; + +always @( negedge VCLK ) RGB8 <= palout; + +endmodule + + +//---------------------------------- +// Collision RAM +//---------------------------------- +module COLLRAM_M +( + input cpu_cl, + input [5:0] cpu_ad, + input cpu_wr_coll, + input cpu_wr_collclr, + output [7:0] cpu_rd_coll, + + input VCLKx4, + input [5:0] coll_ad, + input coll +); + +reg [63:0] core; +reg coll_rd, coll_sm; + +always @(posedge cpu_cl) coll_rd <= core[cpu_ad]; + +always @(posedge VCLKx4) begin + if (cpu_cl) begin + if (cpu_wr_coll) core[cpu_ad] <= 1'b0; + if (cpu_wr_collclr) coll_sm <= 1'b0; + end + else coll_sm <= coll; + if (coll) core[coll_ad] <= 1'b1; +end + +assign cpu_rd_coll = { coll_sm, 6'b111111, coll_rd }; + +endmodule + +module COLLRAM_S +( + input cpu_cl, + input [9:0] cpu_ad, + input cpu_wr_coll, + input cpu_wr_collclr, + output [7:0] cpu_rd_coll, + + input VCLKx4, + input [9:0] coll_ad, + input coll +); + +reg [1023:0] core; +reg coll_rd, coll_sm; + +always @(posedge cpu_cl) coll_rd <= core[cpu_ad]; + +always @(posedge VCLKx4) begin + if (cpu_cl) begin + if (cpu_wr_coll) core[cpu_ad] <= 1'b0; + if (cpu_wr_collclr) coll_sm <= 1'b0; + end + else coll_sm <= coll; + if (coll) core[coll_ad] <= 1'b1; +end + +assign cpu_rd_coll = { coll_sm, 6'b111111, coll_rd }; + +endmodule + diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/Flicky_MiST.sv b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/Flicky_MiST.sv new file mode 100644 index 00000000..83541118 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/Flicky_MiST.sv @@ -0,0 +1,282 @@ + +module Flicky_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 = { + "FLICKY;ROM;", + "O34,Scanlines,Off,25%,50%,75%;", + "O5,Blend,Off,On;", + + "O89,Lives,3,4,5,Infinite;", + "OAB,Extend,30k/80k/160k,30k/100k/200k,40k/120k/240k,40k/140k/280k;", + "OC,Difficulty,Easy,Hard;", + + "T0,Reset;", + "V,v1.0.",`BUILD_DATE +}; + + +wire [1:0] scanlines = status[4:3]; +wire blend = status[5]; +wire [1:0] dsLives = ~status[9:8]; +wire [1:0] dsExtend = ~status[11:10]; +wire dsDifclt = ~status[12]; + + +assign LED = ~ioctl_downl; +assign SDRAM_CLK = sdram_clk; +assign SDRAM_CKE = 1; +assign AUDIO_R = AUDIO_L; + +wire clk_sys, sdram_clk; +wire pll_locked; +pll_mist pll( + .inclk0(CLOCK_27), + .c0(clk_sys),//48 + .c1(sdram_clk),//96 + .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 key_pressed; +wire key_strobe; +wire [7:0] key_code; +wire scandoublerD; +wire ypbpr; +wire no_csync; + +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] audio; +wire hs, vs, cs, hb, vb; +wire blankn = ~(hb | vb); +wire [2:0] g, r; +wire [1:0] b; +wire [14:0] rom_addr; +wire [15:0] rom_do; +wire [14:0] spr_rom_addr; +wire [15:0] spr_rom_do; +wire [12:0] snd_rom_addr; +wire [15:0] snd_rom_do; +wire [13:0] tile_rom_addr; +wire [23:0] tile_rom_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_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 ) +); + + +reg port1_req, port2_req; +wire [24:0] tl_ioctl_addr = ioctl_addr - 17'h12000; +sdram sdram( + .*, + .init_n ( pll_locked ), + .clk ( sdram_clk ), + + // port1 used for main + sound CPUs + .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'h6000 + spr_rom_addr[14:1]) ), + .cpu2_q ( spr_rom_do ), + .cpu3_addr ( ioctl_downl ? 16'hffff : (16'h4000 + snd_rom_addr[12:1]) ), + .cpu3_q ( snd_rom_do ), + + // port2 for sprite graphics + .port2_req ( port2_req ), + .port2_ack ( ), + .port2_a ( {tl_ioctl_addr[17:16], tl_ioctl_addr[13:0], tl_ioctl_addr[15]} ), // merge tile roms to 32-bit wide words + .port2_ds ( {tl_ioctl_addr[14], ~tl_ioctl_addr[14]} ), + .port2_we ( ioctl_downl ), + .port2_d ( {ioctl_dout, ioctl_dout} ), + .port2_q ( ), + + .sp_addr ( ioctl_downl ? 15'h7fff : tile_rom_addr ), + .sp_q ( tile_rom_do ) +); + +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 +end + +reg reset = 1; +reg rom_loaded = 0; +always @(posedge sdram_clk) begin + reg ioctl_downlD; + ioctl_downlD <= ioctl_downl; + + if (ioctl_downlD & ~ioctl_downl) rom_loaded <= 1; + reset <= status[0] | buttons[1] | ~rom_loaded; +end + +wire [7:0] INP0 = ~{m_left, m_right,3'd0,m_fireA,2'd0}; +wire [7:0] INP1 = ~{m_left2,m_right2,3'd0,m_fire2A,2'd0}; +wire [7:0] INP2 = ~{2'd0,m_two_players, m_one_player,3'd0, m_coin1}; + +wire [7:0] DSW0 = 8'hFF; +wire [7:0] DSW1 = {dsDifclt,dsExtend,dsLives,2'b00}; + +FPGA_FLICKY FPGA_FLICKY( + .clk48M(clk_sys), + .reset(reset), + + .INP0(INP0), + .INP1(INP1), + .INP2(INP2), + + .DSW0(DSW0), + .DSW1(DSW1), + .video_r(r), + .video_g(g), + .video_b(b), + .video_hs(hs), + .video_vs(vs), + .video_hb(hb), + .video_vb(vb), + .cpu_rom_addr(rom_addr), + .cpu_rom_do( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ), + .snd_rom_addr(snd_rom_addr), + .snd_rom_do(snd_rom_addr[0] ? snd_rom_do[15:8] : snd_rom_do[7:0] ), + .spr_rom_addr(spr_rom_addr),//Internal for now + .spr_rom_do(spr_rom_addr[0] ? spr_rom_do[15:8] : spr_rom_do[7:0] ), + .tile_rom_addr(tile_rom_addr), + .tile_rom_do(tile_rom_do), + .SOUT(audio) +); + + +mist_video #(.COLOR_DEPTH(3), .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,b[1]} : 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 ), + .ce_divider ( 1'b0 ), + .blend ( blend ), + .rotate ( 2'b0 ), + .scandoubler_disable(scandoublerD ), + .scanlines ( scanlines ), + .ypbpr ( ypbpr ), + .no_csync ( no_csync ) + ); + +dac #( + .C_bits(16)) +dac( + .clk_i(clk_sys), + .res_n_i(1), + .dac_i(audio), + .dac_o(AUDIO_L) + ); + +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 ( 1'b0 ), + .orientation ( 2'b00 ), + .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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/Flicky_MiST.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/Flicky_MiST.v new file mode 100644 index 00000000..14ecad99 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/Flicky_MiST.v @@ -0,0 +1,41 @@ +module HVGEN +( + output [8:0] HPOS, + output [8:0] VPOS, + input PCLK, + input [14:0] iRGB, + + output reg [14:0] oRGB, + output reg HBLK = 1, + output reg VBLK = 1, + output reg HSYN = 1, + output reg VSYN = 1 +); + +reg [8:0] hcnt = 0; +reg [8:0] vcnt = 0; + +assign HPOS = hcnt-16; +assign VPOS = vcnt; + +always @(posedge PCLK) begin + case (hcnt) + 15: begin HBLK <= 0; hcnt <= hcnt+1; end + 272: begin HBLK <= 1; hcnt <= hcnt+1; end + 311: begin HSYN <= 0; hcnt <= hcnt+1; end + 342: begin HSYN <= 1; hcnt <= 471; end + 511: begin hcnt <= 0; + case (vcnt) + 223: begin VBLK <= 1; vcnt <= vcnt+1; end + 226: begin VSYN <= 0; vcnt <= vcnt+1; end + 233: begin VSYN <= 1; vcnt <= 483; end + 511: begin VBLK <= 0; vcnt <= 0; end + default: vcnt <= vcnt+1; + endcase + end + default: hcnt <= hcnt+1; + endcase + oRGB <= (HBLK|VBLK) ? 15'h0 : iRGB; +end + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/SN76496.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/SN76496.v new file mode 100644 index 00000000..7ffa7fdd --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/SN76496.v @@ -0,0 +1,174 @@ +// Copyright (c) 2017,19 MiSTer-X + +module SN76496 +( + input clk, + input cpuclk, + input reset, + input ce, + input we, + input [7:0] data, + input [3:0] chmsk, + output reg [7:0] sndout, + output reg [3:0] chactv, + output reg [2:0] lreg +); + +`define RNGINI 16'h0F35 +`define RNGFB0 16'h4000 +`define RNGFB1 16'h8100 + +function [5:0] voltbl; +input [3:0] idx; + case (idx) + 4'h0: voltbl = 63; + 4'h1: voltbl = 50; + 4'h2: voltbl = 40; + 4'h3: voltbl = 32; + 4'h4: voltbl = 25; + 4'h5: voltbl = 20; + 4'h6: voltbl = 16; + 4'h7: voltbl = 13; + 4'h8: voltbl = 10; + 4'h9: voltbl = 8; + 4'hA: voltbl = 6; + 4'hB: voltbl = 5; + 4'hC: voltbl = 4; + 4'hD: voltbl = 3; + 4'hE: voltbl = 2; + 4'hF: voltbl = 0; + endcase +endfunction + +reg [3:0] clks; + +reg [2:0] nzc; +reg [9:0] fq0, fq1, fq2; +reg [9:0] fc0, fc1, fc2; +reg [5:0] fv0, fv1, fv2, fv3; +reg [5:0] _fv0,_fv1,_fv2,_fv3; +reg fo0, fo1, fo2; + +reg [15:0] rng = `RNGINI; +wire [15:0] rfb = rng[0] ? ( nzc[2] ? `RNGFB1 : `RNGFB0 ) : 16'h0; + +wire [1:0] nfq = nzc[1:0]; +wire [10:0] fq3 = ( nfq == 2'b00 ) ? 64 : + ( nfq == 2'b01 ) ? 128 : + ( nfq == 2'b10 ) ? 256 : fq2; +reg [10:0] fc3; +wire fo3 = rng[0]; + +wire [7:0] o0 = ( fo0 & chmsk[0] ) ? { 1'b0, fv0, 1'b0 } : 8'h0; +wire [7:0] o1 = ( fo1 & chmsk[1] ) ? { 1'b0, fv1, 1'b0 } : 8'h0; +wire [7:0] o2 = ( fo2 & chmsk[2] ) ? { 1'b0, fv2, 1'b0 } : 8'h0; +wire [7:0] o3 = ( fo3 & chmsk[3] ) ? { 1'b0, fv3, 1'b0 } : 8'h0; + +wire [8:0] sndmix = o0 + o1 + o2 + o3; + +always @( posedge cpuclk or posedge reset ) begin + if ( reset ) begin + lreg <= 0; + _fv0 <= 0; + _fv1 <= 0; + _fv2 <= 0; + _fv3 <= 0; + fq0 <= 0; + fq1 <= 0; + fq2 <= 0; + nzc <= 0; + chactv <= 0; + end + else begin + // Register write + if ( ce & we ) begin + if ( data[7] ) begin + lreg <= data[6:4]; + case ( data[6:4] ) + 3'h0: fq0[3:0] <= data[3:0]; + 3'h2: fq1[3:0] <= data[3:0]; + 3'h4: fq2[3:0] <= data[3:0]; + 3'h1: begin _fv0 <= voltbl(data[3:0]); chactv[0] <= (~data[3]); end + 3'h3: begin _fv1 <= voltbl(data[3:0]); chactv[1] <= (~data[3]); end + 3'h5: begin _fv2 <= voltbl(data[3:0]); chactv[2] <= (~data[3]); end + 3'h7: begin _fv3 <= voltbl(data[3:0]); chactv[3] <= (~data[3]); end + 3'h6: begin nzc <= data[2:0]; end + endcase + end + else begin + case ( lreg ) + 3'h0: fq0[9:4] <= data[5:0]; + 3'h2: fq1[9:4] <= data[5:0]; + 3'h4: fq2[9:4] <= data[5:0]; + default: begin end + endcase + end + end + end +end + + +always @( posedge clk or posedge reset ) begin + // Reset + if ( reset ) begin + sndout <= 0; + fv0 <= 0; + fv1 <= 0; + fv2 <= 0; + fv3 <= 0; + fc0 <= 0; + fc1 <= 0; + fc2 <= 0; + fc3 <= 0; + fo0 <= 0; + fo1 <= 0; + fo2 <= 0; + clks <= 0; + rng <= `RNGINI; + end + else begin + + // OSCs update + clks <= clks+1; + if ( clks == 0 ) begin + + fv0 <= _fv0; + fv1 <= _fv1; + fv2 <= _fv2; + fv3 <= _fv3; + + if ( fc0 == 0 ) begin + fc0 <= fq0; + fo0 <= ~fo0; + end + else fc0 <= fc0-1; + + if ( fc1 == 0 ) begin + fc1 <= fq1; + fo1 <= ~fo1; + end + else fc1 <= fc1-1; + + if ( fc2 == 0 ) begin + fc2 <= fq2; + fo2 <= ~fo2; + end + else fc2 <= fc2-1; + + // NoiseGen update + if ( fc3 == 0 ) begin + fc3 <= fq3; + rng <= { 1'b0, rng[15:1] } ^ rfb; + end + else fc3 <= fc3-1; + + // Sound update + sndout <= {8{sndmix[8]}}|(sndmix[7:0]); + + end + + end + +end + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/build_id.tcl b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/build_id.tcl new file mode 100644 index 00000000..938515d8 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/hvgen.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/hvgen.v new file mode 100644 index 00000000..8ee40db9 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/hvgen.v @@ -0,0 +1,41 @@ +module hvgen +( + output [8:0] HPOS, + output [8:0] VPOS, + input PCLK, + input [14:0] iRGB, + + output reg [14:0] oRGB, + output reg HBLK = 1, + output reg VBLK = 1, + output reg HSYN = 1, + output reg VSYN = 1 +); + +reg [8:0] hcnt = 0; +reg [8:0] vcnt = 0; + +assign HPOS = hcnt-16; +assign VPOS = vcnt; + +always @(posedge PCLK) begin + case (hcnt) + 15: begin HBLK <= 0; hcnt <= hcnt+1; end + 272: begin HBLK <= 1; hcnt <= hcnt+1; end + 311: begin HSYN <= 0; hcnt <= hcnt+1; end + 342: begin HSYN <= 1; hcnt <= 471; end + 511: begin hcnt <= 0; + case (vcnt) + 223: begin VBLK <= 1; vcnt <= vcnt+1; end + 226: begin VSYN <= 0; vcnt <= vcnt+1; end + 233: begin VSYN <= 1; vcnt <= 483; end + 511: begin VBLK <= 0; vcnt <= 0; end + default: vcnt <= vcnt+1; + endcase + end + default: hcnt <= hcnt+1; + endcase + oRGB <= (HBLK|VBLK) ? 15'h0 : iRGB; +end + +endmodule diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/parts.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/parts.v new file mode 100644 index 00000000..ddb4bd8c --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/parts.v @@ -0,0 +1,389 @@ +// Copyright (c) 2017,19 MiSTer-X +/* +module DLROM #(parameter AW,parameter DW) +( + input CL0, + input [(AW-1):0] AD0, + output reg [(DW-1):0] DO0, + + input CL1, + input [(AW-1):0] AD1, + input [(DW-1):0] DI1, + input WE1 +); + +reg [(DW-1):0] core[0:((2**AW)-1)]; + +always @(posedge CL0) DO0 <= core[AD0]; +always @(posedge CL1) if (WE1) core[AD1] <= DI1; + +endmodule*/ + + +//---------------------------------- +// 2K SRAM +//---------------------------------- +module SRAM_2048( CL, ADRS, OUT, WR, IN ); + +input CL; +input [10:0] ADRS; +output [7:0] OUT; +input WR; +input [7:0] IN; + + +reg [7:0] ramcore [0:2047]; +reg [7:0] OUT; + +always @( posedge CL ) begin + if (WR) ramcore[ADRS] <= IN; + else OUT <= ramcore[ADRS]; +end + + +endmodule + + +//---------------------------------- +// 4K SRAM +//---------------------------------- +module SRAM_4096( + input clk, + input [11:0] adrs, + output reg [7:0] out, + input wr, + input [7:0] in +); + +reg [7:0] ramcore [0:4095]; + +always @( posedge clk ) begin + if (wr) ramcore[adrs] <= in; + else out <= ramcore[adrs]; +end + +endmodule + + +//---------------------------------- +// DualPort RAM +//---------------------------------- +module DPRAM2048 +( + input clk0, + input [10:0] adr0, + input [7:0] dat0, + input wen0, + + input clk1, + input [10:0] adr1, + output reg [7:0] dat1, + + output reg [7:0] dtr0 +); + +reg [7:0] core [0:2047]; + +always @( posedge clk0 ) begin + if (wen0) core[adr0] <= dat0; + else dtr0 <= core[adr0]; +end + +always @( posedge clk1 ) begin + dat1 <= core[adr1]; +end + +endmodule + + +module DPRAM1024 +( + input clk0, + input [9:0] adr0, + input [7:0] dat0, + input wen0, + + input clk1, + input [9:0] adr1, + output reg [7:0] dat1, + + output reg [7:0] dtr0 +); + +reg [7:0] core [0:1023]; + +always @( posedge clk0 ) begin + if (wen0) core[adr0] <= dat0; + else dtr0 <= core[adr0]; +end + +always @( posedge clk1 ) begin + dat1 <= core[adr1]; +end + +endmodule + + +module DPRAM2048_8_16 +( + input clk0, + input [10:0] adr0, + input [7:0] dat0, + input wen0, + + input clk1, + input [9:0] adr1, + output [15:0] dat1, + + output [7:0] dtr0 +); + +wire [7:0] do0, do1; +wire [7:0] doH, doL; + +DPRAM1024 core0( clk0, adr0[10:1], dat0, wen0 & (~adr0[0]), clk1, adr1, doL, do0 ); +DPRAM1024 core1( clk0, adr0[10:1], dat0, wen0 & adr0[0], clk1, adr1, doH, do1 ); + +assign dtr0 = adr0[0] ? do1 : do0; +assign dat1 = { doH, doL }; + +endmodule + + +//---------------------------------- +// VRAM +//---------------------------------- +module VRAMs +( + input clk0, + input [9:0] adr0, + output reg [7:0] dat0, + input [7:0] dtw0, + input wen0, + + input clk1, + input [9:0] adr1, + output reg [7:0] dat1 +); + +reg [7:0] core [0:1023]; + +always @( posedge clk0 ) begin + if (wen0) core[adr0] <= dtw0; + else dat0 <= core[adr0]; +end + +always @( posedge clk1 ) begin + dat1 <= core[adr1]; +end + +endmodule + +module VRAM +( + input clk0, + input [10:0] adr0, + output [7:0] dat0, + input [7:0] dtw0, + input wen0, + + input clk1, + input [9:0] adr1, + output [15:0] dat1 +); + +wire even = ~adr0[0]; +wire odd = adr0[0]; + +wire [7:0] do00, do01, do10, do11; +VRAMs ram0( clk0, adr0[10:1], do00, dtw0, wen0 & even, clk1, adr1, do10 ); +VRAMs ram1( clk0, adr0[10:1], do01, dtw0, wen0 & odd, clk1, adr1, do11 ); + +assign dat0 = adr0[0] ? do01 : do00; +assign dat1 = { do11, do10 }; + +endmodule + + +//---------------------------------- +// ScanLine Buffer +//---------------------------------- +module LineBuf +( + input clkr, + input [9:0] radr, + input clre, + output [10:0] rdat, + + input clkw, + input [9:0] wadr, + input [10:0] wdat, + input we, + output [10:0] rdat1 +); + +DPRAM1024_11B core ( + radr,wadr, + clkr,clkw, + 16'h0,{5'h0,wdat}, + clre,we, + rdat,rdat1 +); + +endmodule + + +//---------------------------------- +// Data Selector (32bits) +//---------------------------------- +module dataselector1_32( + + output [31:0] oDATA, + + input iSEL0, + input [31:0] iDATA0, + + input [31:0] dData +); + +assign oDATA = iSEL0 ? iDATA0 : + dData; + +endmodule + + +//---------------------------------- +// Data Selector 3 to 1 +//---------------------------------- +module dataselector3( + + output [7:0] oDATA, + + input iSEL0, + input [7:0] iDATA0, + + input iSEL1, + input [7:0] iDATA1, + + input iSEL2, + input [7:0] iDATA2, + + input [7:0] dData +); + +assign oDATA = iSEL0 ? iDATA0 : + iSEL1 ? iDATA1 : + iSEL2 ? iDATA2 : + dData; + +endmodule + + +//---------------------------------- +// Data Selector 2 to 1 (11bits) +//---------------------------------- +module dataselector2_11( + + output [10:0] oDATA, + + input iSEL0, + input [10:0] iDATA0, + + input iSEL1, + input [10:0] iDATA1, + + input [10:0] dData +); + +assign oDATA = iSEL0 ? iDATA0 : + iSEL1 ? iDATA1 : + dData; + +endmodule + + +//---------------------------------- +// Data Selector 8 to 1 +//---------------------------------- +module dataselector8( + + output [7:0] oDATA, + + input iSEL0, + input [7:0] iDATA0, + + input iSEL1, + input [7:0] iDATA1, + + input iSEL2, + input [7:0] iDATA2, + + input iSEL3, + input [7:0] iDATA3, + + input iSEL4, + input [7:0] iDATA4, + + input iSEL5, + input [7:0] iDATA5, + + input iSEL6, + input [7:0] iDATA6, + + input iSEL7, + input [7:0] iDATA7, + + input [7:0] dData +); + +assign oDATA = iSEL0 ? iDATA0 : + iSEL1 ? iDATA1 : + iSEL2 ? iDATA2 : + iSEL3 ? iDATA3 : + iSEL4 ? iDATA4 : + iSEL5 ? iDATA5 : + iSEL6 ? iDATA6 : + iSEL7 ? iDATA7 : + dData; + +endmodule + +//---------------------------------- +// Data Selector 6 to 1 +//---------------------------------- +module dataselector6( + + output [7:0] oDATA, + + input iSEL0, + input [7:0] iDATA0, + + input iSEL1, + input [7:0] iDATA1, + + input iSEL2, + input [7:0] iDATA2, + + input iSEL3, + input [7:0] iDATA3, + + input iSEL4, + input [7:0] iDATA4, + + input iSEL5, + input [7:0] iDATA5, + + input [7:0] dData +); + +assign oDATA = iSEL0 ? iDATA0 : + iSEL1 ? iDATA1 : + iSEL2 ? iDATA2 : + iSEL3 ? iDATA3 : + iSEL4 ? iDATA4 : + iSEL5 ? iDATA5 : + dData; + +endmodule + + diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/pll_mist.qip b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/pll_mist.qip new file mode 100644 index 00000000..6182871f --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/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 VERILOG_FILE [file join $::quartus(qip_path) "pll_mist.v"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "pll_mist.ppf"] diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/pll_mist.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/pll_mist.v new file mode 100644 index 00000000..cb06e165 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/pll_mist.v @@ -0,0 +1,337 @@ +// megafunction wizard: %ALTPLL% +// GENERATION: STANDARD +// VERSION: WM1.0 +// MODULE: altpll + +// ============================================================ +// File Name: pll_mist.v +// 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. + + +// synopsys translate_off +`timescale 1 ps / 1 ps +// synopsys translate_on +module pll_mist ( + inclk0, + c0, + c1, + locked); + + input inclk0; + output c0; + output c1; + output locked; + + wire [4:0] sub_wire0; + wire sub_wire2; + wire [0:0] sub_wire6 = 1'h0; + wire [0:0] sub_wire3 = sub_wire0[0:0]; + wire [1:1] sub_wire1 = sub_wire0[1:1]; + wire c1 = sub_wire1; + wire locked = sub_wire2; + wire c0 = sub_wire3; + wire sub_wire4 = inclk0; + wire [1:0] sub_wire5 = {sub_wire6, sub_wire4}; + + altpll altpll_component ( + .inclk (sub_wire5), + .clk (sub_wire0), + .locked (sub_wire2), + .activeclock (), + .areset (1'b0), + .clkbad (), + .clkena ({6{1'b1}}), + .clkloss (), + .clkswitch (1'b0), + .configupdate (1'b0), + .enable0 (), + .enable1 (), + .extclk (), + .extclkena ({4{1'b1}}), + .fbin (1'b1), + .fbmimicbidir (), + .fbout (), + .fref (), + .icdrclk (), + .pfdena (1'b1), + .phasecounterselect ({4{1'b1}}), + .phasedone (), + .phasestep (1'b1), + .phaseupdown (1'b1), + .pllena (1'b1), + .scanaclr (1'b0), + .scanclk (1'b0), + .scanclkena (1'b1), + .scandata (1'b0), + .scandataout (), + .scandone (), + .scanread (1'b0), + .scanwrite (1'b0), + .sclkout0 (), + .sclkout1 (), + .vcooverrange (), + .vcounderrange ()); + defparam + altpll_component.bandwidth_type = "AUTO", + altpll_component.clk0_divide_by = 9, + altpll_component.clk0_duty_cycle = 50, + altpll_component.clk0_multiply_by = 16, + altpll_component.clk0_phase_shift = "0", + altpll_component.clk1_divide_by = 9, + altpll_component.clk1_duty_cycle = 50, + altpll_component.clk1_multiply_by = 32, + altpll_component.clk1_phase_shift = "0", + altpll_component.compensate_clock = "CLK0", + altpll_component.inclk0_input_frequency = 37037, + altpll_component.intended_device_family = "Cyclone III", + altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll_mist", + altpll_component.lpm_type = "altpll", + altpll_component.operation_mode = "NORMAL", + altpll_component.pll_type = "AUTO", + altpll_component.port_activeclock = "PORT_UNUSED", + altpll_component.port_areset = "PORT_UNUSED", + altpll_component.port_clkbad0 = "PORT_UNUSED", + altpll_component.port_clkbad1 = "PORT_UNUSED", + altpll_component.port_clkloss = "PORT_UNUSED", + altpll_component.port_clkswitch = "PORT_UNUSED", + altpll_component.port_configupdate = "PORT_UNUSED", + altpll_component.port_fbin = "PORT_UNUSED", + altpll_component.port_inclk0 = "PORT_USED", + altpll_component.port_inclk1 = "PORT_UNUSED", + altpll_component.port_locked = "PORT_USED", + altpll_component.port_pfdena = "PORT_UNUSED", + altpll_component.port_phasecounterselect = "PORT_UNUSED", + altpll_component.port_phasedone = "PORT_UNUSED", + altpll_component.port_phasestep = "PORT_UNUSED", + altpll_component.port_phaseupdown = "PORT_UNUSED", + altpll_component.port_pllena = "PORT_UNUSED", + altpll_component.port_scanaclr = "PORT_UNUSED", + altpll_component.port_scanclk = "PORT_UNUSED", + altpll_component.port_scanclkena = "PORT_UNUSED", + altpll_component.port_scandata = "PORT_UNUSED", + altpll_component.port_scandataout = "PORT_UNUSED", + altpll_component.port_scandone = "PORT_UNUSED", + altpll_component.port_scanread = "PORT_UNUSED", + altpll_component.port_scanwrite = "PORT_UNUSED", + altpll_component.port_clk0 = "PORT_USED", + altpll_component.port_clk1 = "PORT_USED", + altpll_component.port_clk2 = "PORT_UNUSED", + altpll_component.port_clk3 = "PORT_UNUSED", + altpll_component.port_clk4 = "PORT_UNUSED", + altpll_component.port_clk5 = "PORT_UNUSED", + altpll_component.port_clkena0 = "PORT_UNUSED", + altpll_component.port_clkena1 = "PORT_UNUSED", + altpll_component.port_clkena2 = "PORT_UNUSED", + altpll_component.port_clkena3 = "PORT_UNUSED", + altpll_component.port_clkena4 = "PORT_UNUSED", + altpll_component.port_clkena5 = "PORT_UNUSED", + altpll_component.port_extclk0 = "PORT_UNUSED", + altpll_component.port_extclk1 = "PORT_UNUSED", + altpll_component.port_extclk2 = "PORT_UNUSED", + altpll_component.port_extclk3 = "PORT_UNUSED", + altpll_component.self_reset_on_loss_lock = "OFF", + altpll_component.width_clock = 5; + + +endmodule + +// ============================================================ +// 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 "9" +// Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "9" +// Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" +// Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" +// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "48.000000" +// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "96.000000" +// 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: MIG_DEVICE_SPEED_GRADE STRING "Any" +// Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" +// Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" +// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "16" +// Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "32" +// Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" +// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "48.00000000" +// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "96.00000000" +// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" +// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" +// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" +// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 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_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: PLL_ADVANCED_PARAM_CHECK STRING "0" +// Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0" +// 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: 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_CLKENA0 STRING "0" +// Retrieval info: PRIVATE: USE_CLKENA1 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 "9" +// Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" +// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "16" +// Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" +// Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "9" +// Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" +// Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "32" +// Retrieval info: CONSTANT: CLK1_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_UNUSED" +// 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_UNUSED" +// 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: 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: 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: @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: locked 0 0 0 0 @locked 0 0 0 0 +// Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist.v 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.v FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL pll_mist_bb.v FALSE +// Retrieval info: LIB_FILE: altera_mf +// Retrieval info: CBX_MODULE_PREFIX: ON diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/clut.vhd b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/clut.vhd new file mode 100644 index 00000000..c4034af7 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/clut.vhd @@ -0,0 +1,38 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity clut is +port ( + clk : in std_logic; + addr : in std_logic_vector(7 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of clut is + type rom is array(0 to 255) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"0C",X"0E",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0E",X"0C",X"0E",X"01",X"0D",X"0C",X"0E", + X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E", + X"0E",X"0E",X"0E",X"0E",X"0D",X"0D",X"0E",X"0E",X"02",X"0E",X"0E",X"0E",X"01",X"0D",X"0E",X"0E", + X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E", + X"08",X"0E",X"08",X"0E",X"09",X"0D",X"08",X"0E",X"08",X"0E",X"08",X"0E",X"09",X"0D",X"08",X"0E", + X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E", + X"0A",X"0E",X"0A",X"0E",X"09",X"0D",X"0A",X"0E",X"0A",X"0E",X"0A",X"0E",X"09",X"0D",X"0A",X"0E", + X"0C",X"0D",X"0C",X"0E",X"0D",X"0D",X"0C",X"0E",X"00",X"0D",X"0C",X"0E",X"01",X"0D",X"0C",X"0E", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/dec_flicky.bin b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/dec_flicky.bin new file mode 100644 index 00000000..0dab2ac7 Binary files /dev/null and b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/dec_flicky.bin differ diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/dec_rom.vhd b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/dec_rom.vhd new file mode 100644 index 00000000..74927ee6 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/dec_rom.vhd @@ -0,0 +1,30 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity dec_rom is +port ( + clk : in std_logic; + addr : in std_logic_vector(6 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of dec_rom is + type rom is array(0 to 127) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"08",X"88",X"00",X"80",X"A0",X"80",X"A8",X"88",X"80",X"00",X"A0",X"20",X"88",X"80",X"08",X"00", + X"A0",X"80",X"A8",X"88",X"28",X"08",X"20",X"00",X"28",X"08",X"20",X"00",X"A0",X"80",X"A8",X"88", + X"08",X"88",X"00",X"80",X"80",X"00",X"A0",X"20",X"80",X"00",X"A0",X"20",X"88",X"80",X"08",X"00", + X"28",X"08",X"20",X"00",X"28",X"08",X"20",X"00",X"28",X"08",X"20",X"00",X"88",X"80",X"08",X"00", + X"08",X"88",X"00",X"80",X"A8",X"88",X"28",X"08",X"A8",X"88",X"28",X"08",X"80",X"00",X"A0",X"20", + X"28",X"08",X"20",X"00",X"88",X"80",X"08",X"00",X"A8",X"88",X"28",X"08",X"88",X"80",X"08",X"00", + X"08",X"88",X"00",X"80",X"80",X"00",X"A0",X"20",X"A8",X"88",X"28",X"08",X"80",X"00",X"A0",X"20", + X"28",X"08",X"20",X"00",X"28",X"08",X"20",X"00",X"08",X"88",X"00",X"80",X"88",X"80",X"08",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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/make.bat b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/make.bat new file mode 100644 index 00000000..17b26830 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/make.bat @@ -0,0 +1,19 @@ +copy /b epr5978a.116 + epr5979a.109 prg.bin +make_vhdl_prom prg.bin prg_rom.vhd + +copy /b epr-5855.117 + epr-5856.110 spr.bin +make_vhdl_prom spr.bin spr_rom.vhd + +make_vhdl_prom epr-5869.120 snd_rom.vhd + + +make_vhdl_prom dec_flicky.bin dec_rom.vhd + +make_vhdl_prom epr-5868.62 tile1.vhd + +make_vhdl_prom pr-5317.76 clut.vhd + +copy /b epr-5868.62 + epr-5867.61 + epr-5866.64 + epr-5865.63 + epr-5864.66 + epr-5863.65 tile.bin + +copy /b prg.bin + epr-5869.120 + spr.bin + tile.bin FLICKY.ROM +pause \ No newline at end of file diff --git a/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/prg_rom.vhd b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/prg_rom.vhd new file mode 100644 index 00000000..7640fe6f --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/prg_rom.vhd @@ -0,0 +1,2070 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity prg_rom 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 prg_rom is + type rom is array(0 to 32767) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"FB",X"E5",X"76",X"39",X"88",X"58",X"3F",X"3A",X"C6",X"48",X"6B",X"B3",X"88",X"2F",X"20",X"42", + X"55",X"53",X"54",X"59",X"20",X"2F",X"2F",X"20",X"46",X"4C",X"49",X"50",X"50",X"59",X"20",X"2F", + X"DC",X"23",X"CC",X"7A",X"20",X"53",X"45",X"47",X"41",X"20",X"31",X"39",X"38",X"34",X"2F",X"30", + X"35",X"2F",X"32",X"34",X"35",X"50",X"B7",X"69",X"4B",X"2D",X"3E",X"CD",X"60",X"AA",X"6D",X"F1", + X"AC",X"C5",X"0F",X"22",X"3F",X"D3",X"AC",X"AF",X"67",X"66",X"AF",X"F6",X"AF",X"28",X"89",X"17", + X"92",X"DA",X"E8",X"50",X"46",X"50",X"AF",X"0F",X"AF",X"0F",X"76",X"AF",X"80",X"89",X"1F",X"32", + X"DD",X"48",X"3F",X"D3",X"98",X"C3",X"D7",X"A8",X"8A",X"D3",X"AD",X"AF",X"B2",X"2C",X"48",X"C5", + X"64",X"D4",X"6D",X"56",X"0B",X"CD",X"FF",X"AB",X"6D",X"1D",X"0A",X"CD",X"9A",X"AA",X"6D",X"43", + X"AB",X"BE",X"8B",X"3A",X"88",X"48",X"3F",X"3A",X"89",X"48",X"4D",X"A3",X"AC",X"BA",X"D8",X"48", + X"07",X"CA",X"96",X"88",X"1F",X"DB",X"08",X"CB",X"DF",X"CA",X"7B",X"8D",X"6B",X"67",X"A0",X"CB", + X"4B",X"EF",X"6A",X"84",X"88",X"BA",X"D8",X"48",X"DE",X"2A",X"B0",X"A8",X"92",X"2E",X"48",X"C3", + X"C7",X"20",X"30",X"CB",X"E7",X"00",X"2F",X"12",X"78",X"48",X"76",X"8A",X"90",X"AE",X"B2",X"E7", + X"48",X"BC",X"DE",X"2B",X"90",X"29",X"3F",X"3A",X"E7",X"48",X"10",X"BC",X"4D",X"12",X"AB",X"17", + X"92",X"88",X"E8",X"CD",X"AB",X"AB",X"92",X"8B",X"E8",X"16",X"29",X"32",X"2D",X"48",X"B6",X"8A", + X"6B",X"C5",X"88",X"17",X"B2",X"52",X"48",X"3A",X"88",X"48",X"B2",X"2D",X"48",X"3A",X"89",X"48", + X"1F",X"32",X"47",X"48",X"92",X"8E",X"E8",X"CD",X"9A",X"AA",X"6D",X"3A",X"0B",X"EB",X"2D",X"89", + X"96",X"29",X"B2",X"28",X"40",X"C5",X"03",X"23",X"B2",X"2A",X"40",X"BA",X"08",X"48",X"EE",X"29", + X"20",X"25",X"21",X"47",X"E8",X"39",X"F8",X"48",X"36",X"28",X"29",X"2D",X"28",X"C5",X"B0",X"12", + X"0C",X"48",X"EE",X"29",X"80",X"20",X"92",X"29",X"40",X"76",X"00",X"3A",X"09",X"48",X"96",X"29", + X"32",X"50",X"E8",X"76",X"21",X"20",X"E8",X"36",X"28",X"39",X"09",X"48",X"29",X"68",X"28",X"C5", + X"B8",X"BA",X"0A",X"48",X"B2",X"21",X"40",X"29",X"00",X"48",X"31",X"09",X"40",X"3E",X"08",X"09", + X"68",X"28",X"C5",X"B0",X"12",X"2B",X"E8",X"32",X"A9",X"48",X"21",X"28",X"CC",X"39",X"29",X"44", + X"B6",X"28",X"21",X"A8",X"08",X"E5",X"B8",X"C5",X"8D",X"23",X"92",X"E7",X"40",X"27",X"96",X"28", + X"20",X"3E",X"12",X"28",X"E8",X"E6",X"29",X"00",X"3D",X"12",X"46",X"48",X"14",X"32",X"46",X"48", + X"EE",X"29",X"96",X"2D",X"A0",X"2A",X"96",X"A9",X"B2",X"3C",X"40",X"43",X"17",X"29",X"4D",X"0D", + X"27",X"12",X"3C",X"48",X"32",X"04",X"E8",X"CD",X"01",X"25",X"12",X"3B",X"E8",X"32",X"8B",X"48", + X"A1",X"28",X"43",X"19",X"08",X"46",X"21",X"28",X"09",X"E5",X"B8",X"C5",X"F9",X"24",X"96",X"29", + X"32",X"50",X"E8",X"76",X"CD",X"A9",X"6D",X"CD",X"03",X"24",X"CD",X"9C",X"0C",X"21",X"20",X"48", + X"B6",X"28",X"31",X"A9",X"40",X"09",X"AF",X"28",X"CD",X"30",X"4D",X"12",X"8A",X"C5",X"15",X"22", + X"21",X"28",X"28",X"22",X"0A",X"48",X"BF",X"32",X"04",X"48",X"32",X"4C",X"E8",X"12",X"18",X"48", + X"94",X"4F",X"EE",X"2B",X"DE",X"2B",X"A0",X"AB",X"96",X"29",X"B2",X"A4",X"40",X"F8",X"EE",X"B4", + X"0F",X"D6",X"18",X"10",X"08",X"FE",X"3E",X"D6",X"18",X"10",X"2A",X"FE",X"3E",X"4F",X"2E",X"28", + X"A1",X"16",X"9D",X"89",X"46",X"2B",X"E6",X"E9",X"A2",X"6A",X"48",X"BE",X"77",X"3A",X"97",X"48", + X"6D",X"91",X"24",X"2E",X"28",X"21",X"FE",X"9A",X"B2",X"B8",X"E8",X"D6",X"3F",X"10",X"0D",X"D6", + X"A7",X"B8",X"8C",X"F6",X"CF",X"B8",X"8D",X"0E",X"89",X"29",X"86",X"3B",X"D0",X"3A",X"BD",X"48", + X"99",X"C0",X"DC",X"29",X"38",X"88",X"65",X"B0",X"99",X"00",X"DC",X"29",X"38",X"88",X"65",X"B0", + X"31",X"C8",X"7C",X"09",X"98",X"28",X"CD",X"30",X"31",X"A8",X"7D",X"09",X"98",X"28",X"CD",X"30", + X"99",X"C0",X"DD",X"29",X"38",X"88",X"65",X"B0",X"B2",X"B2",X"E8",X"15",X"EF",X"2E",X"28",X"21", + X"F5",X"3E",X"92",X"35",X"48",X"27",X"80",X"2B",X"A1",X"0B",X"9E",X"89",X"D6",X"3A",X"A7",X"54", + X"92",X"77",X"DD",X"12",X"12",X"48",X"B5",X"2F",X"8F",X"2F",X"EF",X"2E",X"28",X"21",X"F6",X"9B", + X"92",X"35",X"48",X"27",X"80",X"2B",X"A1",X"AE",X"9C",X"89",X"31",X"30",X"7C",X"09",X"A8",X"28", + X"65",X"B0",X"A2",X"BA",X"E8",X"29",X"08",X"88",X"A9",X"22",X"43",X"48",X"81",X"70",X"29",X"22", + X"BA",X"48",X"4D",X"17",X"BE",X"C5",X"73",X"21",X"4D",X"75",X"AB",X"BA",X"E7",X"48",X"DE",X"2A", + X"80",X"AB",X"8E",X"80",X"81",X"7A",X"31",X"39",X"28",X"4B",X"4B",X"5B",X"2A",X"2E",X"18",X"39", + X"88",X"4C",X"A1",X"E2",X"91",X"BA",X"A4",X"48",X"AF",X"A8",X"A8",X"29",X"3A",X"B9",X"31",X"28", + X"EB",X"2E",X"20",X"50",X"8E",X"88",X"6D",X"9F",X"0B",X"16",X"30",X"32",X"C3",X"4E",X"B6",X"8A", + X"B2",X"C4",X"4E",X"BA",X"40",X"4E",X"4B",X"97",X"B2",X"C8",X"4E",X"17",X"B2",X"DA",X"4E",X"3A", + X"F3",X"4E",X"92",X"A0",X"E8",X"16",X"D7",X"32",X"11",X"48",X"B2",X"A4",X"E8",X"A7",X"A0",X"8D", + X"96",X"17",X"6B",X"38",X"0B",X"BA",X"1C",X"48",X"47",X"0E",X"08",X"29",X"52",X"3B",X"01",X"FE", + X"32",X"21",X"EC",X"16",X"29",X"32",X"08",X"4C",X"32",X"A9",X"E8",X"16",X"A9",X"32",X"1A",X"4C", + X"96",X"EF",X"B2",X"AD",X"40",X"BE",X"C7",X"3A",X"2E",X"48",X"3F",X"3A",X"0F",X"4C",X"B2",X"3D", + X"E8",X"12",X"47",X"48",X"D6",X"2A",X"20",X"22",X"BF",X"32",X"6C",X"48",X"CD",X"A3",X"08",X"EB", + X"81",X"2C",X"92",X"A4",X"40",X"27",X"80",X"B2",X"96",X"40",X"B2",X"21",X"43",X"3A",X"A9",X"4B", + X"21",X"10",X"28",X"22",X"2F",X"4B",X"21",X"00",X"29",X"22",X"27",X"4B",X"16",X"99",X"32",X"A8", + X"43",X"D5",X"A1",X"28",X"43",X"C5",X"93",X"32",X"5D",X"29",X"28",X"4B",X"4D",X"13",X"9A",X"C5", + X"92",X"6C",X"DD",X"21",X"68",X"4B",X"CD",X"12",X"7A",X"DD",X"21",X"E8",X"EB",X"CD",X"9A",X"7A", + X"96",X"21",X"FD",X"C5",X"CD",X"23",X"5D",X"FE",X"0D",X"F6",X"88",X"38",X"5E",X"AA",X"EB",X"48", + X"5D",X"7C",X"DD",X"46",X"2F",X"DD",X"66",X"20",X"B7",X"C5",X"7A",X"54",X"E6",X"29",X"DD",X"77", + X"88",X"D5",X"F5",X"2F",X"5D",X"FE",X"0D",X"0F",X"27",X"0F",X"5D",X"7F",X"18",X"29",X"79",X"B3", + X"DD",X"75",X"2B",X"DD",X"74",X"2C",X"DD",X"36",X"0D",X"28",X"12",X"30",X"E8",X"E6",X"D4",X"0F", + X"DE",X"2C",X"90",X"2A",X"96",X"2C",X"CD",X"4C",X"6E",X"2F",X"5D",X"4E",X"0D",X"B0",X"B0",X"2C", + X"DD",X"36",X"0D",X"29",X"21",X"9C",X"33",X"DD",X"75",X"29",X"DD",X"74",X"2A",X"CD",X"9B",X"32", + X"6B",X"70",X"0C",X"F6",X"88",X"A8",X"EE",X"BA",X"AC",X"48",X"AF",X"A8",X"E8",X"D5",X"D6",X"2D", + X"D6",X"36",X"30",X"E9",X"12",X"30",X"E8",X"14",X"D6",X"38",X"10",X"29",X"BF",X"E6",X"0C",X"0F", + X"47",X"0E",X"88",X"29",X"DE",X"3C",X"01",X"CE",X"A3",X"6E",X"C1",X"D5",X"D6",X"2D",X"7E",X"21", + X"8F",X"2F",X"EF",X"09",X"F6",X"DD",X"D7",X"8F",X"83",X"56",X"7D",X"77",X"08",X"23",X"F6",X"DD", + X"F7",X"3A",X"4B",X"FF",X"A0",X"2C",X"94",X"43",X"A3",X"2C",X"95",X"D5",X"F7",X"23",X"5D",X"3E", + X"1C",X"88",X"6B",X"57",X"A0",X"A8",X"7D",X"CB",X"28",X"4E",X"7D",X"CB",X"1C",X"4E",X"83",X"56", + X"5D",X"7F",X"9C",X"D5",X"B6",X"21",X"69",X"D5",X"B6",X"32",X"88",X"D5",X"B6",X"24",X"88",X"C5", + X"9B",X"BA",X"4B",X"F8",X"2C",X"CD",X"9A",X"C3",X"6D",X"F5",X"6C",X"F1",X"B4",X"D6",X"20",X"DA", + X"0A",X"2B",X"5D",X"65",X"96",X"28",X"FD",X"C5",X"ED",X"23",X"5D",X"C3",X"88",X"F6",X"80",X"23", + X"81",X"F3",X"2C",X"E5",X"7D",X"46",X"2B",X"DD",X"C6",X"8C",X"61",X"F1",X"B4",X"D6",X"08",X"20", + X"8A",X"BE",X"A9",X"F6",X"BE",X"28",X"7F",X"D5",X"E9",X"17",X"B2",X"50",X"48",X"BA",X"88",X"48", + X"46",X"89",X"4A",X"8C",X"2D",X"12",X"04",X"48",X"8E",X"09",X"07",X"20",X"2A",X"2E",X"AA",X"50", + X"4D",X"BD",X"CD",X"BA",X"A4",X"48",X"AF",X"A8",X"9A",X"29",X"6A",X"38",X"31",X"5C",X"60",X"C5", + X"FE",X"AA",X"6D",X"88",X"0B",X"CD",X"28",X"AB",X"4B",X"8C",X"2D",X"16",X"29",X"32",X"36",X"48", + X"26",X"2C",X"92",X"28",X"48",X"66",X"08",X"28",X"BF",X"45",X"A1",X"8F",X"98",X"19",X"5A",X"C2", + X"B2",X"89",X"E8",X"E6",X"29",X"00",X"2B",X"21",X"B6",X"98",X"6B",X"68",X"80",X"8E",X"6D",X"5E", + X"AA",X"43",X"47",X"2C",X"4D",X"C5",X"AA",X"41",X"6D",X"F8",X"DE",X"2B",X"90",X"2E",X"4D",X"28", + X"0B",X"EB",X"D5",X"8C",X"6D",X"14",X"0D",X"CD",X"28",X"AB",X"6D",X"14",X"0D",X"CD",X"28",X"AB", + X"69",X"0D",X"A0",X"96",X"92",X"28",X"40",X"76",X"00",X"3A",X"08",X"48",X"B1",X"28",X"50",X"F3", + X"BF",X"32",X"EB",X"48",X"21",X"28",X"EB",X"39",X"20",X"28",X"CB",X"56",X"20",X"21",X"14",X"D6", + X"28",X"A8",X"A9",X"99",X"6B",X"32",X"0D",X"65",X"5D",X"61",X"B2",X"4B",X"40",X"19",X"B9",X"2D", + X"FD",X"04",X"04",X"04",X"5E",X"04",X"7E",X"C3",X"C1",X"12",X"EB",X"48",X"14",X"D6",X"20",X"00", + X"8B",X"19",X"28",X"28",X"5D",X"99",X"5D",X"65",X"E9",X"43",X"9A",X"2D",X"92",X"51",X"40",X"27", + X"CA",X"E4",X"2D",X"CD",X"F6",X"23",X"CD",X"5F",X"0B",X"CD",X"1D",X"6D",X"CD",X"28",X"0B",X"CD", + X"B4",X"66",X"3F",X"3A",X"D1",X"48",X"4D",X"F1",X"8C",X"43",X"7A",X"28",X"92",X"A4",X"40",X"27", + X"CA",X"DF",X"2D",X"12",X"13",X"48",X"D6",X"3C",X"DA",X"E9",X"2F",X"12",X"14",X"48",X"A7",X"CA", + X"86",X"2E",X"DE",X"A8",X"A0",X"32",X"A1",X"35",X"1E",X"19",X"1A",X"C3",X"4D",X"5E",X"8A",X"8E", + X"09",X"21",X"03",X"3E",X"39",X"12",X"C3",X"CD",X"D8",X"22",X"29",X"28",X"38",X"CD",X"A2",X"3F", + X"A1",X"2F",X"1E",X"19",X"5A",X"C2",X"4D",X"5E",X"8A",X"BA",X"BC",X"48",X"A1",X"64",X"E2",X"C5", + X"EF",X"25",X"12",X"B5",X"E8",X"E6",X"2B",X"4F",X"2E",X"28",X"21",X"01",X"3E",X"09",X"5E",X"12", + X"BD",X"48",X"EE",X"34",X"07",X"8F",X"AF",X"5F",X"80",X"20",X"6E",X"B8",X"C7",X"2E",X"89",X"2A", + X"42",X"C2",X"53",X"E6",X"F0",X"0F",X"0F",X"0F",X"0F",X"EE",X"30",X"47",X"26",X"21",X"22",X"E4", + X"E2",X"FB",X"EE",X"27",X"6E",X"B8",X"C7",X"2A",X"EE",X"C2",X"96",X"21",X"B2",X"F9",X"E2",X"CB", + X"6A",X"CD",X"A2",X"3F",X"EB",X"06",X"2E",X"12",X"47",X"48",X"D6",X"2A",X"20",X"ED",X"12",X"6C", + X"48",X"27",X"4A",X"E9",X"8F",X"BA",X"AA",X"48",X"DE",X"2F",X"5A",X"E9",X"8F",X"28",X"EC",X"BA", + X"6C",X"48",X"76",X"8A",X"6A",X"C1",X"2F",X"16",X"2A",X"32",X"6C",X"48",X"6D",X"3A",X"0A",X"DD", + X"ED",X"D5",X"A1",X"28",X"4C",X"C5",X"A2",X"6C",X"5D",X"C3",X"88",X"96",X"5D",X"29",X"C8",X"4B", + X"6D",X"A2",X"6C",X"DD",X"6B",X"88",X"96",X"DD",X"81",X"88",X"ED",X"CD",X"02",X"CC",X"7D",X"CB", + X"88",X"96",X"5D",X"29",X"80",X"4D",X"4D",X"A2",X"CC",X"D5",X"4B",X"28",X"36",X"D5",X"E9",X"C5", + X"D3",X"A9",X"81",X"1C",X"C2",X"CD",X"EC",X"F0",X"4B",X"C1",X"2F",X"D6",X"0E",X"DA",X"61",X"8F", + X"6B",X"FA",X"88",X"BA",X"9B",X"48",X"DE",X"D7",X"6A",X"E9",X"8F",X"BA",X"40",X"4D",X"EE",X"08", + X"4A",X"C1",X"2F",X"21",X"28",X"4B",X"89",X"80",X"28",X"1E",X"08",X"CB",X"F6",X"EA",X"61",X"8F", + X"15",X"A8",X"8C",X"89",X"6B",X"F3",X"8E",X"BA",X"96",X"48",X"AF",X"42",X"C1",X"2F",X"96",X"D7", + X"92",X"97",X"E8",X"12",X"47",X"48",X"46",X"89",X"A0",X"AA",X"8E",X"8C",X"6D",X"88",X"0B",X"38", + X"73",X"43",X"D2",X"28",X"92",X"A3",X"48",X"C5",X"CD",X"E9",X"96",X"06",X"4D",X"BD",X"CD",X"BA", + X"04",X"48",X"07",X"EA",X"05",X"8F",X"B6",X"8F",X"92",X"E5",X"E8",X"21",X"64",X"61",X"B2",X"99", + X"48",X"C5",X"4F",X"25",X"A1",X"F8",X"61",X"BA",X"98",X"48",X"4D",X"4F",X"AD",X"29",X"D6",X"3B", + X"99",X"EC",X"C1",X"CD",X"FE",X"AA",X"81",X"08",X"3B",X"39",X"40",X"61",X"6D",X"5E",X"0A",X"21", + X"0D",X"3B",X"31",X"FC",X"61",X"C5",X"5E",X"22",X"A1",X"10",X"98",X"19",X"EC",X"C2",X"4D",X"5E", + X"0A",X"0E",X"2D",X"12",X"39",X"48",X"07",X"20",X"3A",X"12",X"38",X"48",X"46",X"D0",X"AF",X"0F", + X"07",X"8F",X"AF",X"8E",X"08",X"F6",X"0A",X"B8",X"0A",X"CF",X"05",X"0E",X"08",X"C3",X"21",X"29", + X"71",X"3E",X"09",X"ED",X"4E",X"23",X"6E",X"CD",X"A2",X"3F",X"E9",X"21",X"EE",X"3B",X"09",X"56", + X"A3",X"6E",X"C7",X"0E",X"8A",X"8E",X"89",X"19",X"EA",X"C2",X"4D",X"52",X"8A",X"29",X"08",X"28", + X"22",X"38",X"E8",X"12",X"E8",X"48",X"E6",X"24",X"0F",X"0F",X"4F",X"2E",X"28",X"21",X"2E",X"B8", + X"01",X"FE",X"B2",X"E5",X"40",X"7E",X"92",X"38",X"40",X"F6",X"0C",X"B8",X"66",X"C5",X"76",X"23", + X"CD",X"5F",X"0B",X"CD",X"9A",X"22",X"16",X"D7",X"32",X"E5",X"E8",X"CD",X"F3",X"24",X"EB",X"86", + X"09",X"BA",X"E8",X"48",X"AF",X"28",X"09",X"7E",X"3F",X"3A",X"E8",X"48",X"92",X"28",X"40",X"66", + X"29",X"CA",X"0C",X"2D",X"CD",X"99",X"0B",X"21",X"ED",X"48",X"CB",X"6E",X"23",X"EA",X"EF",X"2F", + X"B5",X"FE",X"DE",X"C8",X"7A",X"2F",X"88",X"BA",X"58",X"48",X"AF",X"A8",X"89",X"C5",X"47",X"23", + X"CD",X"5E",X"0A",X"EB",X"D3",X"2F",X"12",X"E7",X"E8",X"D6",X"29",X"20",X"3D",X"21",X"AA",X"38", + X"31",X"3E",X"E2",X"C5",X"56",X"22",X"A1",X"04",X"18",X"19",X"14",X"C1",X"4D",X"5E",X"8A",X"43", + X"D3",X"2F",X"21",X"0A",X"38",X"39",X"FE",X"C4",X"CD",X"5E",X"0A",X"21",X"8C",X"38",X"39",X"7C", + X"E4",X"C5",X"56",X"22",X"6B",X"D3",X"0F",X"3D",X"D6",X"F6",X"60",X"52",X"0F",X"20",X"31",X"3E", + X"C2",X"21",X"AA",X"38",X"CD",X"C5",X"0A",X"21",X"AA",X"38",X"39",X"5E",X"C4",X"CD",X"C5",X"22", + X"31",X"1C",X"E1",X"29",X"84",X"38",X"4D",X"C5",X"8A",X"29",X"84",X"38",X"31",X"7C",X"E4",X"C5", + X"C5",X"22",X"21",X"72",X"38",X"39",X"0C",X"C2",X"CD",X"C5",X"0A",X"BF",X"32",X"4E",X"E8",X"12", + X"4D",X"48",X"CE",X"29",X"B2",X"4D",X"48",X"BA",X"D8",X"48",X"AF",X"C2",X"AC",X"2D",X"3F",X"D3", + X"08",X"07",X"92",X"8E",X"E8",X"CB",X"C7",X"6F",X"4A",X"D2",X"28",X"12",X"78",X"48",X"76",X"89", + X"4A",X"24",X"8D",X"C3",X"C0",X"42",X"D2",X"28",X"6B",X"24",X"8D",X"D5",X"ED",X"29",X"88",X"4B", + X"1F",X"F5",X"45",X"DD",X"41",X"E5",X"7D",X"4E",X"2D",X"2E",X"28",X"CB",X"89",X"21",X"40",X"A8", + X"92",X"6C",X"48",X"27",X"80",X"2B",X"A1",X"1C",X"A8",X"89",X"46",X"2B",X"E6",X"E9",X"21",X"7B", + X"08",X"ED",X"61",X"12",X"6C",X"48",X"07",X"CC",X"9B",X"BA",X"41",X"29",X"20",X"88",X"A9",X"F1", + X"94",X"F6",X"9B",X"28",X"6C",X"D5",X"E9",X"C1",X"E5",X"72",X"2E",X"20",X"A3",X"21",X"A3",X"21", + X"03",X"A9",X"03",X"A9",X"03",X"A9",X"03",X"A9",X"09",X"A9",X"52",X"FA",X"8B",X"FA",X"A2",X"FA", + X"31",X"72",X"58",X"72",X"47",X"72",X"76",X"72",X"A6",X"73",X"BD",X"73",X"B7",X"73",X"96",X"46", + X"7D",X"77",X"09",X"C9",X"E9",X"A8",X"E9",X"A8",X"C0",X"A8",X"E9",X"A8",X"E9",X"A8",X"E9",X"A8", + X"49",X"20",X"49",X"20",X"69",X"20",X"49",X"20",X"32",X"20",X"07",X"BC",X"07",X"BC",X"07",X"BC", + X"A7",X"94",X"A7",X"94",X"6F",X"C0",X"33",X"C0",X"E9",X"A8",X"1F",X"32",X"0A",X"48",X"4B",X"19", + X"C0",X"C5",X"A2",X"6C",X"5D",X"C3",X"88",X"96",X"49",X"C5",X"1D",X"22",X"A1",X"E8",X"88",X"2A", + X"2F",X"4C",X"B6",X"C4",X"92",X"A9",X"EC",X"BF",X"7D",X"77",X"0D",X"21",X"1C",X"95",X"82",X"8B", + X"4C",X"29",X"94",X"BC",X"A2",X"29",X"4C",X"C1",X"A1",X"A8",X"89",X"D5",X"F5",X"2F",X"5D",X"7C", + X"08",X"16",X"64",X"DD",X"D7",X"A9",X"81",X"C1",X"15",X"DD",X"D5",X"89",X"7D",X"74",X"2A",X"21", + X"5C",X"B3",X"5D",X"7D",X"0B",X"D5",X"F4",X"2C",X"49",X"BE",X"47",X"3A",X"89",X"4C",X"A1",X"A8", + X"2A",X"22",X"2F",X"4C",X"16",X"C6",X"32",X"3A",X"EC",X"BF",X"32",X"24",X"EC",X"32",X"3F",X"4C", + X"96",X"99",X"B2",X"28",X"44",X"BE",X"09",X"3A",X"4D",X"48",X"49",X"43",X"FD",X"6C",X"92",X"28", + X"E8",X"E6",X"57",X"32",X"28",X"48",X"12",X"A4",X"E8",X"A7",X"00",X"2E",X"CD",X"DB",X"0C",X"EB", + X"A5",X"21",X"92",X"2C",X"40",X"66",X"8C",X"F6",X"8C",X"C2",X"A5",X"21",X"A1",X"2A",X"40",X"BA", + X"29",X"48",X"E6",X"29",X"00",X"2B",X"21",X"2B",X"E8",X"35",X"EA",X"85",X"09",X"12",X"28",X"48", + X"EE",X"29",X"A0",X"3D",X"96",X"0F",X"4D",X"BD",X"4D",X"29",X"02",X"38",X"31",X"5E",X"E4",X"C5", + X"FE",X"22",X"2E",X"21",X"CD",X"28",X"0B",X"38",X"D3",X"CD",X"CC",X"24",X"CD",X"DE",X"0B",X"CD", + X"57",X"23",X"4D",X"1D",X"8A",X"C5",X"92",X"22",X"A1",X"47",X"40",X"BA",X"09",X"48",X"EE",X"29", + X"00",X"2B",X"21",X"5A",X"E8",X"CD",X"84",X"FC",X"CD",X"35",X"6D",X"12",X"29",X"48",X"E6",X"2A", + X"4A",X"FA",X"08",X"C5",X"E4",X"21",X"4A",X"FA",X"08",X"0E",X"09",X"98",X"0A",X"0E",X"0C",X"C5", + X"28",X"23",X"38",X"D3",X"CD",X"35",X"6D",X"16",X"29",X"32",X"D8",X"48",X"CD",X"DE",X"0B",X"CD", + X"57",X"23",X"92",X"29",X"40",X"66",X"0A",X"C2",X"A6",X"29",X"4D",X"C4",X"89",X"C2",X"A6",X"29", + X"21",X"20",X"E8",X"39",X"A8",X"48",X"0E",X"68",X"CD",X"81",X"0D",X"21",X"28",X"4B",X"39",X"28", + X"C6",X"8E",X"08",X"C5",X"A1",X"25",X"4D",X"AA",X"8C",X"43",X"A6",X"29",X"92",X"29",X"40",X"66", + X"29",X"12",X"2A",X"48",X"20",X"2B",X"12",X"2B",X"E8",X"A7",X"C9",X"12",X"28",X"48",X"E6",X"29", + X"80",X"2E",X"4D",X"79",X"AA",X"43",X"9C",X"22",X"A1",X"BE",X"9E",X"19",X"52",X"C6",X"4D",X"5E", + X"0A",X"CD",X"7B",X"AC",X"AE",X"A9",X"81",X"CA",X"38",X"39",X"08",X"60",X"6D",X"4C",X"0A",X"12", + X"89",X"48",X"EE",X"2A",X"A0",X"34",X"92",X"28",X"48",X"66",X"89",X"A8",X"8E",X"BA",X"8D",X"48", + X"07",X"20",X"0F",X"39",X"24",X"60",X"81",X"EA",X"38",X"CD",X"EC",X"AA",X"6D",X"BA",X"18",X"EB", + X"C1",X"30",X"A1",X"6E",X"98",X"19",X"84",X"C0",X"4D",X"4C",X"AA",X"C5",X"BA",X"30",X"6B",X"70", + X"18",X"21",X"4E",X"98",X"99",X"60",X"C6",X"EB",X"FE",X"AA",X"EF",X"2E",X"28",X"09",X"F6",X"C9", + X"3F",X"53",X"BA",X"BE",X"2F",X"53",X"BA",X"BE",X"8F",X"53",X"BA",X"17",X"7B",X"33",X"96",X"47", + X"5B",X"BB",X"1F",X"FB",X"1B",X"16",X"2F",X"FB",X"1B",X"C9",X"81",X"C7",X"E8",X"36",X"2C",X"D3", + X"F6",X"FE",X"AF",X"28",X"72",X"73",X"49",X"29",X"88",X"48",X"31",X"29",X"48",X"09",X"50",X"27", + X"96",X"88",X"65",X"B0",X"69",X"21",X"28",X"40",X"B8",X"8B",X"81",X"88",X"C0",X"29",X"D7",X"8E", + X"B6",X"28",X"55",X"5C",X"33",X"E5",X"B8",X"C1",X"A1",X"58",X"66",X"BA",X"D8",X"48",X"4D",X"B5", + X"0B",X"F5",X"F0",X"D6",X"30",X"00",X"2D",X"70",X"83",X"36",X"08",X"03",X"51",X"23",X"83",X"77", + X"A3",X"3E",X"A8",X"C1",X"66",X"2B",X"D6",X"1A",X"A3",X"1B",X"AF",X"BE",X"A8",X"A8",X"8A",X"BE", + X"09",X"3A",X"9B",X"38",X"F1",X"C9",X"AE",X"A8",X"CE",X"23",X"F6",X"3A",X"83",X"3B",X"07",X"00", + X"8F",X"F6",X"C8",X"BE",X"A8",X"38",X"89",X"F9",X"32",X"1B",X"30",X"C6",X"49",X"4E",X"96",X"A8", + X"9A",X"3B",X"B6",X"88",X"9A",X"3B",X"98",X"56",X"69",X"F5",X"45",X"21",X"28",X"80",X"B8",X"8D", + X"FD",X"65",X"A1",X"28",X"00",X"AB",X"D5",X"34",X"A0",X"D3",X"E9",X"71",X"49",X"19",X"08",X"4B", + X"21",X"71",X"31",X"56",X"2E",X"28",X"23",X"4E",X"23",X"E5",X"66",X"41",X"0E",X"2D",X"C5",X"B0", + X"06",X"32",X"C3",X"6A",X"33",X"3E",X"08",X"E5",X"B8",X"61",X"A3",X"BD",X"A0",X"C1",X"26",X"A8", + X"BF",X"21",X"2D",X"4B",X"39",X"A8",X"28",X"77",X"14",X"19",X"38",X"D3",X"C9",X"F5",X"E6",X"D8", + X"07",X"8F",X"07",X"8F",X"6E",X"B8",X"67",X"71",X"EE",X"27",X"6E",X"B8",X"49",X"07",X"C7",X"2E", + X"28",X"29",X"54",X"66",X"09",X"56",X"23",X"66",X"47",X"E5",X"DD",X"E1",X"C9",X"21",X"2A",X"48", + X"92",X"29",X"40",X"66",X"09",X"A8",X"0B",X"29",X"0B",X"48",X"D6",X"BD",X"06",X"2F",X"A1",X"4C", + X"C6",X"A7",X"39",X"A8",X"28",X"00",X"2C",X"39",X"28",X"27",X"15",X"73",X"23",X"72",X"23",X"0D", + X"A0",X"C7",X"49",X"BA",X"08",X"48",X"EE",X"29",X"80",X"2B",X"96",X"29",X"49",X"BA",X"0C",X"48", + X"E6",X"24",X"0F",X"0F",X"21",X"8B",X"38",X"EB",X"5A",X"22",X"12",X"78",X"E8",X"15",X"6F",X"E6", + X"8F",X"F6",X"8F",X"F8",X"26",X"28",X"A0",X"2C",X"EE",X"D8",X"26",X"21",X"B8",X"3A",X"58",X"48", + X"C9",X"12",X"78",X"48",X"D6",X"2A",X"21",X"BB",X"38",X"10",X"2B",X"21",X"12",X"38",X"39",X"4A", + X"E6",X"C5",X"56",X"22",X"6B",X"80",X"8A",X"29",X"DA",X"38",X"31",X"24",X"E2",X"BA",X"58",X"48", + X"D6",X"29",X"C8",X"21",X"46",X"38",X"C9",X"21",X"67",X"48",X"36",X"20",X"D3",X"76",X"56",X"A7", + X"A0",X"D2",X"49",X"29",X"63",X"29",X"92",X"29",X"40",X"66",X"09",X"A8",X"0A",X"E5",X"64",X"2A", + X"D4",X"C7",X"22",X"E1",X"E8",X"C9",X"21",X"28",X"E9",X"39",X"29",X"49",X"36",X"28",X"29",X"D7", + X"89",X"E5",X"B8",X"C1",X"92",X"28",X"48",X"66",X"89",X"A8",X"8C",X"BA",X"B1",X"48",X"49",X"BA", + X"29",X"48",X"6B",X"6F",X"A0",X"A8",X"46",X"08",X"80",X"8C",X"1F",X"DB",X"2C",X"C9",X"1F",X"DB", + X"88",X"C1",X"92",X"29",X"48",X"E6",X"89",X"3A",X"89",X"48",X"49",X"BA",X"C5",X"48",X"EE",X"F7", + X"CF",X"12",X"29",X"48",X"46",X"08",X"F0",X"20",X"0A",X"12",X"29",X"48",X"46",X"89",X"F0",X"00", + X"8A",X"76",X"08",X"53",X"B9",X"3A",X"C5",X"48",X"49",X"3E",X"80",X"2B",X"B6",X"29",X"A3",X"BD", + X"80",X"57",X"69",X"21",X"D0",X"66",X"AE",X"88",X"B2",X"A8",X"E8",X"EE",X"29",X"27",X"CF",X"E6", + X"50",X"8F",X"07",X"8F",X"07",X"C5",X"0A",X"30",X"D0",X"66",X"AF",X"43",X"0A",X"30",X"B6",X"28", + X"83",X"36",X"28",X"23",X"8D",X"EA",X"46",X"AC",X"69",X"21",X"28",X"78",X"99",X"89",X"D8",X"36", + X"88",X"09",X"77",X"29",X"CD",X"30",X"A1",X"5E",X"98",X"19",X"88",X"52",X"21",X"28",X"8A",X"E5", + X"10",X"21",X"FE",X"98",X"99",X"88",X"DC",X"29",X"28",X"8A",X"65",X"B0",X"81",X"8C",X"DB",X"36", + X"88",X"29",X"8C",X"55",X"B6",X"28",X"96",X"D7",X"B2",X"E5",X"48",X"C1",X"92",X"ED",X"48",X"76", + X"38",X"FB",X"19",X"C9",X"81",X"88",X"E0",X"2E",X"20",X"0E",X"1C",X"1E",X"28",X"16",X"28",X"77", + X"A3",X"7B",X"A3",X"0D",X"A0",X"D1",X"26",X"A8",X"05",X"28",X"54",X"C1",X"A1",X"5E",X"64",X"0E", + X"09",X"CD",X"D9",X"AC",X"81",X"DC",X"C4",X"2E",X"0B",X"36",X"20",X"23",X"96",X"88",X"83",X"2D", + X"6A",X"51",X"AC",X"C1",X"36",X"34",X"21",X"B7",X"88",X"3E",X"89",X"2B",X"B6",X"20",X"01",X"1D", + X"80",X"57",X"69",X"BF",X"92",X"9B",X"E8",X"12",X"08",X"48",X"76",X"38",X"A0",X"8B",X"4E",X"89", + X"A7",X"3A",X"88",X"48",X"92",X"30",X"40",X"BC",X"B2",X"30",X"40",X"17",X"B2",X"27",X"40",X"C5", + X"AD",X"AF",X"21",X"38",X"E8",X"39",X"39",X"48",X"36",X"28",X"29",X"2B",X"28",X"C5",X"B0",X"CD", + X"A9",X"25",X"A1",X"28",X"08",X"2A",X"9A",X"48",X"49",X"D5",X"ED",X"BE",X"08",X"75",X"4D",X"65", + X"0B",X"DD",X"56",X"2D",X"2F",X"4F",X"2E",X"28",X"12",X"E7",X"E8",X"E6",X"29",X"00",X"2E",X"21", + X"63",X"25",X"6B",X"7C",X"8D",X"29",X"73",X"25",X"01",X"65",X"92",X"3C",X"40",X"DF",X"A6",X"38", + X"CD",X"79",X"6C",X"E9",X"09",X"56",X"CB",X"2F",X"2E",X"28",X"30",X"29",X"2C",X"DD",X"77",X"2F", + X"5D",X"78",X"88",X"2B",X"D6",X"D5",X"F7",X"21",X"5D",X"3E",X"08",X"98",X"5D",X"3E",X"9A",X"28", + X"CD",X"6D",X"17",X"CD",X"9B",X"32",X"F1",X"14",X"D6",X"20",X"10",X"99",X"12",X"20",X"E8",X"D6", + X"0A",X"38",X"8F",X"BA",X"08",X"48",X"EE",X"29",X"A0",X"20",X"92",X"3B",X"40",X"76",X"19",X"3A", + X"3B",X"48",X"21",X"28",X"EB",X"12",X"3B",X"48",X"29",X"A8",X"28",X"1E",X"08",X"0F",X"30",X"2A", + X"4B",X"B6",X"01",X"9D",X"A0",X"DF",X"5D",X"61",X"49",X"9A",X"66",X"7F",X"D0",X"1A",X"A3",X"1B", + X"0D",X"20",X"F6",X"C9",X"12",X"BE",X"E8",X"CD",X"6B",X"37",X"12",X"BE",X"E8",X"14",X"32",X"BE", + X"40",X"C1",X"06",X"20",X"6B",X"41",X"8D",X"8E",X"89",X"4F",X"EE",X"D8",X"80",X"22",X"07",X"8F", + X"0F",X"0F",X"EE",X"B8",X"77",X"23",X"71",X"03",X"23",X"23",X"50",X"E6",X"0F",X"EE",X"30",X"77", + X"A3",X"79",X"49",X"38",X"40",X"A8",X"30",X"B8",X"A0",X"68",X"14",X"78",X"10",X"E8",X"14",X"F8", + X"A2",X"F0",X"B0",X"68",X"20",X"B0",X"58",X"68",X"88",X"68",X"90",X"48",X"20",X"50",X"7C",X"58", + X"28",X"58",X"30",X"28",X"B0",X"28",X"E0",X"28",X"38",X"E0",X"D8",X"E8",X"10",X"10",X"D8",X"88", + X"B0",X"08",X"A8",X"A0",X"48",X"E8",X"88",X"F8",X"18",X"F0",X"84",X"10",X"48",X"40",X"18",X"08", + X"F0",X"C8",X"10",X"A8",X"F8",X"7C",X"A0",X"78",X"30",X"10",X"F8",X"10",X"28",X"40",X"A0",X"50", + X"90",X"50",X"A8",X"A0",X"18",X"C8",X"58",X"98",X"90",X"C8",X"A8",X"F0",X"88",X"D0",X"90",X"00", + X"B8",X"48",X"C0",X"20",X"E8",X"B8",X"10",X"68",X"80",X"68",X"D0",X"08",X"F8",X"08",X"28",X"48", + X"00",X"58",X"B0",X"D8",X"20",X"30",X"20",X"B0",X"58",X"58",X"58",X"D8",X"88",X"98",X"90",X"08", + X"30",X"20",X"90",X"B0",X"B8",X"58",X"B8",X"B8",X"E8",X"B8",X"F0",X"08",X"D8",X"08",X"10",X"58", + X"58",X"10",X"A8",X"08",X"38",X"D8",X"34",X"30",X"34",X"08",X"78",X"C8",X"50",X"80",X"A0",X"48", + X"F0",X"50",X"00",X"A8",X"B8",X"F8",X"B8",X"D8",X"80",X"40",X"B0",X"30",X"C0",X"E0",X"F8",X"10", + X"40",X"58",X"80",X"A8",X"10",X"98",X"98",X"A0",X"40",X"E0",X"B8",X"00",X"B8",X"10",X"10",X"60", + X"E8",X"D8",X"38",X"A0",X"90",X"A8",X"18",X"78",X"E8",X"48",X"D8",X"18",X"D0",X"70",X"20",X"00", + X"E8",X"48",X"80",X"B0",X"B0",X"C8",X"58",X"E8",X"00",X"08",X"58",X"00",X"80",X"48",X"78",X"40", + X"A0",X"D8",X"F0",X"20",X"E0",X"30",X"20",X"A8",X"B0",X"70",X"08",X"08",X"E0",X"80",X"08",X"C8", + X"30",X"40",X"80",X"C8",X"18",X"48",X"18",X"88",X"60",X"D8",X"48",X"D8",X"50",X"08",X"40",X"10", + X"E8",X"98",X"F0",X"A0",X"D8",X"70",X"A0",X"60",X"48",X"E0",X"1C",X"10",X"1C",X"98",X"A0",X"98", + X"E8",X"50",X"78",X"90",X"00",X"C8",X"98",X"D8",X"60",X"08",X"20",X"10",X"60",X"48",X"98",X"58", + X"A8",X"28",X"E8",X"28",X"78",X"A0",X"48",X"60",X"28",X"70",X"F8",X"08",X"68",X"80",X"00",X"90", + X"20",X"50",X"68",X"30",X"40",X"60",X"18",X"78",X"88",X"78",X"92",X"F8",X"68",X"80",X"92",X"C8", + X"28",X"C0",X"E8",X"30",X"30",X"B8",X"78",X"70",X"58",X"08",X"80",X"88",X"E8",X"40",X"18",X"40", + X"60",X"D8",X"60",X"E8",X"38",X"78",X"92",X"08",X"68",X"08",X"88",X"98",X"92",X"28",X"18",X"28", + X"E8",X"28",X"A0",X"28",X"A0",X"B8",X"00",X"60",X"58",X"18",X"E8",X"18",X"10",X"88",X"40",X"D8", + X"20",X"C0",X"A8",X"38",X"20",X"B8",X"70",X"B0",X"90",X"E8",X"68",X"F0",X"98",X"10",X"18",X"98", + X"78",X"40",X"B0",X"24",X"58",X"A8",X"A0",X"B8",X"E8",X"08",X"28",X"08",X"78",X"40",X"E8",X"50", + X"80",X"C4",X"78",X"B0",X"18",X"30",X"50",X"78",X"78",X"B0",X"90",X"80",X"78",X"40",X"18",X"40", + X"B0",X"C0",X"F8",X"28",X"E8",X"60",X"E8",X"E8",X"B8",X"E8",X"90",X"0C",X"D8",X"80",X"90",X"98", + X"10",X"48",X"40",X"A8",X"48",X"A8",X"A8",X"70",X"B0",X"0C",X"68",X"0C",X"A8",X"98",X"B0",X"D8", + X"48",X"D8",X"00",X"28",X"B8",X"28",X"00",X"B0",X"B0",X"60",X"28",X"E8",X"78",X"90",X"78",X"58", + X"90",X"50",X"20",X"28",X"78",X"A8",X"88",X"68",X"78",X"E8",X"30",X"08",X"A0",X"88",X"30",X"40", + X"58",X"50",X"80",X"B0",X"98",X"70",X"D8",X"08",X"D8",X"80",X"D8",X"70",X"20",X"08",X"20",X"80", + X"A0",X"08",X"18",X"68",X"18",X"68",X"70",X"68",X"90",X"EC",X"58",X"8C",X"58",X"48",X"18",X"48", + X"B0",X"40",X"78",X"38",X"30",X"B0",X"F8",X"78",X"30",X"E8",X"48",X"F0",X"F8",X"90",X"F8",X"58", + X"B0",X"D0",X"50",X"B0",X"10",X"B0",X"50",X"08",X"68",X"08",X"70",X"08",X"A0",X"48",X"10",X"C8", + X"70",X"F0",X"30",X"08",X"60",X"08",X"10",X"4C",X"B0",X"DC",X"80",X"04",X"38",X"04",X"10",X"A4", + X"88",X"4C",X"B8",X"A8",X"30",X"60",X"00",X"E8",X"68",X"08",X"18",X"88",X"68",X"90",X"00",X"C8", + X"38",X"08",X"E0",X"28",X"3C",X"BC",X"FC",X"E8",X"3C",X"F8",X"0C",X"10",X"0C",X"20",X"3C",X"C4", + X"7C",X"C0",X"34",X"2E",X"6B",X"7A",X"6D",X"6C",X"61",X"7C",X"2F",X"6B",X"7A",X"6D",X"6C",X"61", + X"FC",X"5B",X"AB",X"60",X"C1",X"62",X"AB",X"63",X"C1",X"62",X"AB",X"64",X"C5",X"66",X"2B",X"A9", + X"28",X"7B",X"6D",X"6F",X"69",X"28",X"B9",X"B1",X"B0",X"BC",X"3B",X"B9",X"28",X"78",X"64",X"69", + X"79",X"4D",X"FA",X"08",X"FB",X"5C",X"E9",X"5A",X"FC",X"08",X"6F",X"CE",X"6C",X"D9",X"BB",X"39", + X"28",X"67",X"7A",X"28",X"BA",X"28",X"78",X"64",X"69",X"71",X"6D",X"7A",X"28",X"7B",X"7C",X"69", + X"FA",X"5C",X"29",X"4F",X"E9",X"CD",X"ED",X"09",X"6F",X"5E",X"ED",X"5A",X"2B",X"C9",X"6E",X"5B", + X"6D",X"7A",X"7C",X"29",X"6B",X"67",X"61",X"66",X"22",X"7C",X"61",X"65",X"6D",X"28",X"6A",X"67", + X"6E",X"5D",X"FB",X"0B",X"AC",X"0D",X"AE",X"8E",X"F8",X"CC",X"E9",X"D9",X"ED",X"5A",X"A9",X"39", + X"29",X"7B",X"7C",X"69",X"7A",X"7C",X"26",X"78",X"64",X"69",X"71",X"6D",X"7A",X"29",X"BA",X"29", + X"FB",X"5C",X"E9",X"5A",X"FC",X"0C",X"FC",X"C9",X"6D",X"4D",X"2B",X"4A",X"6F",X"CE",X"FD",X"5B", + X"28",X"7A",X"67",X"7D",X"66",X"6C",X"28",X"28",X"C0",X"28",X"28",X"28",X"28",X"28",X"28",X"D7", + X"A8",X"B8",X"37",X"40",X"CF",X"F7",X"A8",X"F7",X"A8",X"B8",X"37",X"40",X"CF",X"F7",X"A8",X"35", + X"83",X"83",X"8C",X"37",X"3E",X"3C",X"28",X"48",X"D7",X"28",X"28",X"28",X"28",X"28",X"28",X"D7", + X"E0",X"2C",X"AD",X"AE",X"2D",X"A5",X"08",X"BF",X"93",X"E4",X"CA",X"2D",X"F7",X"83",X"08",X"40", + X"17",X"D8",X"1C",X"AD",X"9B",X"03",X"28",X"13",X"5B",X"8C",X"85",X"9E",X"BC",X"35",X"28",X"D7", + X"08",X"08",X"08",X"08",X"08",X"0F",X"08",X"F7",X"08",X"08",X"08",X"08",X"08",X"F7",X"08",X"06", + X"E7",X"D7",X"28",X"28",X"28",X"28",X"28",X"A3",X"03",X"AA",X"22",X"CF",X"D7",X"B7",X"28",X"D0", + X"AB",X"2B",X"AB",X"AF",X"0E",X"92",X"08",X"08",X"89",X"8A",X"19",X"9A",X"08",X"0A",X"08",X"0F", + X"D7",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"3A",X"33",X"05",X"BE",X"3B",X"34",X"28",X"D7", + X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"F7",X"08",X"08",X"08",X"08",X"08",X"08",X"DA",X"F5", + X"F4",X"C3",X"A0",X"10",X"28",X"2D",X"28",X"DD",X"86",X"84",X"C4",X"8D",X"A3",X"AC",X"28",X"86", + X"A4",X"A5",X"AD",X"2C",X"0C",X"75",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08", + X"28",X"28",X"28",X"28",X"28",X"28",X"5A",X"28",X"3A",X"33",X"05",X"BE",X"3B",X"34",X"28",X"D7", + X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"F7",X"08",X"08",X"08",X"08",X"08",X"08",X"DA",X"F5", + X"F4",X"C3",X"A0",X"10",X"28",X"2D",X"28",X"16",X"85",X"8D",X"BD",X"8C",X"30",X"B7",X"28",X"85", + X"96",X"25",X"AD",X"45",X"7E",X"9B",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"08", + X"28",X"28",X"28",X"28",X"28",X"28",X"5A",X"28",X"3A",X"33",X"05",X"BE",X"3B",X"34",X"28",X"D7", + X"08",X"08",X"08",X"08",X"08",X"08",X"08",X"F7",X"08",X"08",X"08",X"08",X"08",X"08",X"DA",X"F5", + X"F4",X"C3",X"A0",X"10",X"28",X"2D",X"28",X"12",X"A3",X"73",X"25",X"15",X"EE",X"3B",X"28",X"DC", + X"05",X"23",X"A5",X"9A",X"7B",X"0F",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"08", + X"28",X"28",X"28",X"28",X"28",X"28",X"72",X"28",X"3A",X"33",X"A5",X"BE",X"3B",X"34",X"28",X"D7", + X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"F7",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"7A",X"F5", + X"DC",X"C3",X"88",X"10",X"28",X"2D",X"28",X"28",X"28",X"28",X"28",X"28",X"33",X"3A",X"28",X"AB", + X"16",X"36",X"D8",X"E0",X"88",X"48",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"08", + X"28",X"28",X"28",X"28",X"28",X"28",X"72",X"28",X"3A",X"33",X"A5",X"BE",X"3B",X"34",X"28",X"D7", + X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"F7",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"7A",X"F5", + X"DC",X"C3",X"88",X"10",X"28",X"2D",X"28",X"B7",X"2F",X"D8",X"48",X"08",X"68",X"D7",X"28",X"2F", + X"17",X"36",X"D8",X"E0",X"88",X"F7",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"08", + X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"33",X"C0",X"10",X"B7",X"A6",X"D7",X"C7",X"28",X"D7", + X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"F7",X"A8",X"08",X"A8",X"08",X"A8",X"08",X"A8",X"65", + X"B5",X"BB",X"A3",X"C0",X"AC",X"3B",X"28",X"2F",X"DF",X"CD",X"A4",X"BB",X"B3",X"34",X"28",X"CD", + X"57",X"AB",X"40",X"08",X"A8",X"08",X"58",X"E0",X"A4",X"AD",X"B6",X"60",X"05",X"08",X"A8",X"F7", + X"C0",X"AC",X"10",X"A7",X"AD",X"85",X"28",X"A3",X"A3",X"AA",X"AA",X"CF",X"D7",X"B7",X"28",X"D0", + X"23",X"2B",X"23",X"AF",X"AE",X"92",X"A8",X"75",X"06",X"A4",X"44",X"25",X"83",X"2C",X"A8",X"A6", + X"84",X"85",X"A5",X"AC",X"2C",X"DD",X"28",X"16",X"85",X"8D",X"1D",X"8C",X"B8",X"B7",X"28",X"85", + X"96",X"25",X"AD",X"45",X"7E",X"9B",X"08",X"92",X"23",X"DB",X"2D",X"95",X"46",X"1B",X"08",X"74", + X"85",X"8B",X"25",X"32",X"5B",X"2F",X"28",X"28",X"28",X"28",X"28",X"28",X"1B",X"3A",X"28",X"AB", + X"B6",X"36",X"50",X"E0",X"00",X"48",X"08",X"36",X"A5",X"24",X"A5",X"67",X"F7",X"BF",X"08",X"F0", + X"B6",X"AB",X"85",X"A7",X"2E",X"12",X"28",X"AD",X"83",X"89",X"1C",X"8A",X"99",X"AC",X"28",X"83", + X"21",X"A5",X"2E",X"9C",X"0D",X"AD",X"08",X"9D",X"2D",X"9C",X"9B",X"1A",X"28",X"0F",X"08",X"A5", + X"1F",X"BE",X"30",X"A0",X"3C",X"2F",X"28",X"2C",X"28",X"34",X"3D",X"34",X"25",X"3B",X"28",X"97", + X"D5",X"08",X"1D",X"AD",X"9C",X"E7",X"08",X"0B",X"0C",X"0D",X"9E",X"0A",X"08",X"08",X"08",X"A5", + X"F7",X"CF",X"F8",X"C0",X"A8",X"68",X"09",X"6F",X"69",X"65",X"6D",X"28",X"7C",X"61",X"4D",X"6D", + X"0C",X"CD",X"C9",X"CE",X"DC",X"0C",X"5B",X"4D",X"4B",X"DC",X"3A",X"38",X"38",X"38",X"38",X"08", + X"78",X"7C",X"7B",X"74",X"31",X"B8",X"30",X"B8",X"30",X"28",X"78",X"7C",X"7B",X"74",X"28",X"BD", + X"38",X"38",X"38",X"08",X"58",X"5C",X"5B",X"DC",X"08",X"3B",X"38",X"38",X"38",X"08",X"58",X"5C", + X"7B",X"74",X"28",X"B9",X"30",X"B8",X"30",X"28",X"78",X"7C",X"7B",X"74",X"28",X"66",X"4F",X"28", + X"4A",X"CF",X"CE",X"5D",X"5B",X"08",X"82",X"1B",X"14",X"1B",X"96",X"1B",X"A0",X"1B",X"32",X"1B", + X"94",X"3B",X"EF",X"4F",X"7F",X"BF",X"37",X"AF",X"37",X"A7",X"A7",X"8F",X"EF",X"A7",X"27",X"BF", + X"47",X"47",X"47",X"47",X"9F",X"47",X"9F",X"9F",X"47",X"47",X"5F",X"47",X"47",X"27",X"DF",X"47", + X"EF",X"4F",X"1F",X"FF",X"1F",X"4F",X"28",X"A7",X"07",X"97",X"1E",X"AE",X"1E",X"AC",X"28",X"A5", + X"A4",X"9A",X"25",X"2C",X"3A",X"2C",X"A8",X"A5",X"05",X"F7",X"1B",X"24",X"84",X"F7",X"A8",X"67", + X"CF",X"D7",X"0E",X"0E",X"0E",X"D7",X"28",X"BE",X"A5",X"97",X"A5",X"33",X"AC",X"9F",X"28",X"85", + X"3B",X"76",X"05",X"08",X"3B",X"23",X"A8",X"38",X"90",X"3D",X"B3",X"98",X"A2",X"2A",X"A8",X"AE", + X"2C",X"36",X"A6",X"2C",X"36",X"2C",X"28",X"DE",X"C5",X"D6",X"CC",X"8C",X"13",X"DC",X"28",X"BF", + X"B7",X"2D",X"26",X"9B",X"25",X"9B",X"A8",X"B7",X"80",X"F0",X"90",X"20",X"00",X"BF",X"A8",X"65", + X"CD",X"D5",X"0C",X"0C",X"0C",X"D5",X"76",X"3C",X"86",X"3C",X"D6",X"3C",X"66",X"3D",X"28",X"28", + X"38",X"34",X"D1",X"F7",X"38",X"34",X"C2",X"F7",X"38",X"34",X"DB",X"F7",X"38",X"34",X"F4",X"0A", + X"C0",X"9C",X"0B",X"2A",X"C0",X"9C",X"1A",X"2A",X"C0",X"9C",X"89",X"2A",X"C0",X"9C",X"30",X"D7", + X"38",X"35",X"29",X"F7",X"38",X"35",X"52",X"F6",X"38",X"35",X"43",X"F6",X"38",X"35",X"7C",X"0B", + X"C0",X"9B",X"E3",X"2B",X"C0",X"9B",X"F2",X"2B",X"C0",X"9B",X"01",X"2B",X"C0",X"9B",X"B8",X"D6", + X"38",X"34",X"A1",X"F6",X"38",X"34",X"BA",X"F6",X"38",X"34",X"AB",X"F6",X"38",X"34",X"A8",X"08", + X"30",X"9C",X"D9",X"D7",X"3C",X"9C",X"CA",X"D7",X"38",X"9C",X"5B",X"D7",X"24",X"9C",X"FC",X"2A", + X"40",X"34",X"8B",X"0A",X"44",X"34",X"9A",X"0A",X"D0",X"34",X"81",X"0A",X"D4",X"34",X"38",X"F7", + X"30",X"9D",X"21",X"D7",X"3C",X"9D",X"D2",X"D6",X"38",X"9D",X"C3",X"D6",X"24",X"9D",X"74",X"2B", + X"40",X"33",X"63",X"0B",X"44",X"33",X"72",X"0B",X"D0",X"33",X"09",X"0B",X"D4",X"33",X"B0",X"F6", + X"30",X"9C",X"A9",X"D6",X"3C",X"9C",X"3A",X"D6",X"38",X"9C",X"2B",X"D6",X"24",X"9C",X"28",X"28", + X"98",X"34",X"71",X"F7",X"98",X"B0",X"62",X"F7",X"98",X"B4",X"53",X"F7",X"98",X"40",X"7C",X"0A", + X"C0",X"9C",X"AB",X"2A",X"C0",X"90",X"BA",X"2A",X"C0",X"94",X"A1",X"2A",X"C0",X"48",X"18",X"D7", + X"98",X"34",X"89",X"F7",X"98",X"B0",X"F2",X"F6",X"98",X"B4",X"E3",X"F6",X"98",X"40",X"DC",X"0B", + X"C0",X"9C",X"43",X"2B",X"C0",X"90",X"52",X"2B",X"C0",X"94",X"89",X"2B",X"C0",X"48",X"30",X"D6", + X"98",X"34",X"29",X"F6",X"98",X"B0",X"1A",X"F6",X"98",X"B4",X"0B",X"F6",X"98",X"40",X"08",X"08", + X"3A",X"9C",X"F1",X"D7",X"3A",X"9C",X"E2",X"D7",X"3A",X"9C",X"FB",X"D7",X"3A",X"9C",X"28",X"2A", + X"E6",X"34",X"8F",X"0A",X"E6",X"34",X"9E",X"0A",X"E6",X"34",X"AD",X"0A",X"E6",X"34",X"98",X"F7", + X"3A",X"9D",X"09",X"D7",X"3A",X"9D",X"D2",X"D6",X"3A",X"9D",X"C3",X"D6",X"3A",X"9D",X"C0",X"2A", + X"E6",X"33",X"77",X"0A",X"E6",X"33",X"0E",X"0B",X"E6",X"33",X"1D",X"0B",X"E6",X"33",X"38",X"F6", + X"0B",X"9C",X"21",X"D6",X"38",X"9C",X"3A",X"D6",X"3D",X"9C",X"2B",X"D6",X"1A",X"9C",X"B6",X"3D", + X"36",X"1D",X"36",X"1D",X"36",X"1D",X"37",X"1D",X"41",X"1D",X"C6",X"1D",X"D0",X"1D",X"65",X"1D", + X"C7",X"3D",X"F6",X"3D",X"28",X"3E",X"D7",X"29",X"38",X"B8",X"38",X"D6",X"E0",X"60",X"29",X"A8", + X"F7",X"0A",X"F7",X"08",X"48",X"0A",X"28",X"78",X"F4",X"60",X"14",X"0A",X"38",X"F7",X"0C",X"09", + X"20",X"08",X"D7",X"28",X"B0",X"58",X"B8",X"D7",X"2A",X"D7",X"28",X"68",X"2C",X"F8",X"A8",X"D0", + X"10",X"B0",X"0A",X"70",X"F7",X"00",X"F0",X"20",X"20",X"18",X"38",X"40",X"F7",X"08",X"F7",X"0A", + X"F8",X"58",X"18",X"2A",X"10",X"D7",X"2C",X"B8",X"70",X"38",X"D6",X"58",X"A8",X"2A",X"20",X"D7", + X"AC",X"F7",X"A8",X"48",X"A9",X"78",X"57",X"1D",X"34",X"08",X"B2",X"3D",X"B0",X"08",X"F8",X"5C", + X"7B",X"74",X"B6",X"28",X"28",X"B8",X"B8",X"B8",X"28",X"78",X"7C",X"7B",X"74",X"25",X"78",X"6D", + X"FA",X"4E",X"ED",X"4B",X"FC",X"08",X"EA",X"CF",X"6E",X"5D",X"FB",X"8A",X"B1",X"38",X"B0",X"38", + X"B8",X"28",X"78",X"7C",X"7B",X"74",X"2C",X"7A",X"6C",X"74",X"29",X"39",X"6F",X"69",X"7C",X"60", + X"ED",X"5A",X"A8",X"5D",X"F8",X"08",X"F8",X"C9",X"6F",X"58",X"69",X"CF",X"E8",X"19",X"EC",X"4D", + X"6E",X"6D",X"69",X"7C",X"28",X"66",X"71",X"69",X"66",X"66",X"71",X"69",X"66",X"68",X"28",X"39", + X"FC",X"49",X"6B",X"4D",X"A8",X"58",X"69",X"CF",X"F8",X"C9",X"6F",X"08",X"68",X"CF",X"6D",X"4D", + X"68",X"28",X"A8",X"28",X"38",X"28",X"2D",X"28",X"2B",X"28",X"29",X"28",X"28",X"A3",X"84",X"8D", + X"E8",X"A5",X"A8",X"A5",X"81",X"9C",X"BD",X"0B",X"A8",X"08",X"A5",X"58",X"F5",X"D5",X"92",X"6E", + X"48",X"87",X"00",X"2B",X"F1",X"53",X"C9",X"32",X"EF",X"48",X"A7",X"CA",X"E0",X"3F",X"ED",X"DD", + X"ED",X"A1",X"A8",X"41",X"31",X"08",X"D8",X"AE",X"A8",X"36",X"3F",X"2E",X"28",X"4B",X"D6",X"CA", + X"93",X"3E",X"C3",X"29",X"09",X"43",X"0C",X"29",X"EB",X"4B",X"3E",X"A3",X"C5",X"90",X"C3",X"2E", + X"28",X"29",X"CB",X"35",X"6A",X"A3",X"BE",X"22",X"61",X"40",X"A2",X"F4",X"47",X"A6",X"CF",X"BE", + X"50",X"32",X"4C",X"48",X"E6",X"2F",X"CB",X"2F",X"CB",X"2F",X"5F",X"C6",X"29",X"4A",X"CC",X"3E", + X"4B",X"8B",X"A4",X"BC",X"C3",X"A9",X"E8",X"08",X"CD",X"90",X"92",X"3F",X"C8",X"B2",X"B6",X"D4", + X"32",X"79",X"52",X"22",X"BB",X"48",X"22",X"6E",X"54",X"32",X"E5",X"48",X"32",X"61",X"52",X"32", + X"D0",X"40",X"AF",X"32",X"6D",X"40",X"4A",X"8E",X"1F",X"D6",X"18",X"CB",X"18",X"1F",X"EE",X"E7", + X"32",X"ED",X"E8",X"4D",X"6B",X"24",X"21",X"4C",X"E8",X"B4",X"21",X"E0",X"E8",X"B4",X"12",X"48", + X"40",X"CE",X"09",X"56",X"BC",X"30",X"3D",X"32",X"18",X"40",X"6E",X"09",X"A7",X"56",X"68",X"30", + X"0A",X"92",X"39",X"48",X"EE",X"29",X"27",X"B2",X"39",X"48",X"BF",X"B2",X"38",X"48",X"12",X"22", + X"40",X"CE",X"09",X"A7",X"DE",X"68",X"90",X"18",X"92",X"8B",X"40",X"CE",X"09",X"A7",X"DE",X"68", + X"10",X"2A",X"16",X"E8",X"32",X"23",X"E8",X"3F",X"32",X"22",X"E8",X"3F",X"32",X"48",X"E8",X"4D", + X"26",X"98",X"E9",X"D9",X"69",X"D1",X"DB",X"49",X"6D",X"DD",X"ED",X"A1",X"6F",X"40",X"B5",X"76", + X"21",X"28",X"F8",X"2C",X"67",X"3F",X"6F",X"F7",X"23",X"30",X"D4",X"E9",X"F9",X"69",X"F1",X"DB", + X"49",X"C5",X"A1",X"F7",X"F7",X"25",X"A0",X"F5",X"A5",X"A0",X"F2",X"C1",X"49",X"EF",X"92",X"08", + X"E8",X"EE",X"29",X"68",X"50",X"EE",X"0F",X"27",X"4F",X"26",X"28",X"A1",X"55",X"32",X"09",X"46", + X"A3",X"EE",X"4D",X"8D",X"98",X"71",X"2E",X"A7",X"F7",X"23",X"D0",X"0E",X"A7",X"F7",X"83",X"36", + X"28",X"0E",X"27",X"DE",X"99",X"B0",X"29",X"F7",X"E6",X"27",X"2F",X"27",X"2F",X"27",X"5F",X"A3", + X"D6",X"C6",X"70",X"2F",X"07",X"2F",X"07",X"93",X"57",X"A1",X"ED",X"9A",X"92",X"0C",X"40",X"C6", + X"30",X"07",X"0F",X"47",X"2E",X"28",X"09",X"92",X"0E",X"48",X"4F",X"01",X"56",X"9B",X"00",X"2A", + X"B0",X"28",X"92",X"8E",X"40",X"34",X"B2",X"8E",X"40",X"36",X"09",X"B2",X"8D",X"40",X"A1",X"0A", + X"E8",X"92",X"29",X"48",X"E6",X"29",X"00",X"29",X"04",X"B4",X"CD",X"E2",X"0B",X"96",X"B8",X"4D", + X"B5",X"4D",X"92",X"09",X"C8",X"C6",X"A9",X"CA",X"78",X"98",X"6B",X"9A",X"38",X"A1",X"D9",X"40", + X"12",X"29",X"48",X"C6",X"29",X"48",X"21",X"5C",X"48",X"49",X"21",X"26",X"C0",X"B9",X"47",X"48", + X"4D",X"6F",X"38",X"32",X"A9",X"40",X"EE",X"0A",X"68",X"22",X"DD",X"40",X"75",X"7C",X"82",X"C7", + X"48",X"75",X"44",X"E7",X"B7",X"45",X"7A",X"58",X"20",X"22",X"12",X"5F",X"48",X"7F",X"12",X"59", + X"C8",X"13",X"48",X"58",X"31",X"55",X"C8",X"A1",X"4F",X"40",X"21",X"0B",X"A8",X"45",X"B8",X"B9", + X"47",X"48",X"21",X"A2",X"C0",X"CB",X"EF",X"30",X"21",X"A2",X"C0",X"B9",X"5A",X"48",X"EB",X"EF", + X"38",X"A1",X"22",X"E0",X"31",X"55",X"C8",X"AE",X"AB",X"2E",X"A8",X"C5",X"4D",X"F2",X"39",X"B6", + X"B8",X"24",X"36",X"20",X"E1",X"71",X"A7",X"C8",X"FD",X"B9",X"71",X"32",X"C3",X"4D",X"5E",X"22", + X"79",X"49",X"6E",X"38",X"05",X"2E",X"A9",X"4A",X"9F",X"98",X"DE",X"38",X"A0",X"89",X"06",X"08", + X"36",X"A8",X"23",X"B6",X"20",X"38",X"2C",X"F7",X"23",X"B6",X"20",X"A3",X"C9",X"8A",X"27",X"FF", + X"D3",X"4E",X"A8",X"A7",X"57",X"49",X"92",X"D1",X"C8",X"87",X"68",X"9F",X"5B",X"88",X"67",X"32", + X"79",X"48",X"4F",X"4B",X"58",X"20",X"32",X"4B",X"59",X"20",X"30",X"4B",X"99",X"A1",X"78",X"48", + X"D6",X"56",X"29",X"30",X"AD",X"36",X"29",X"CB",X"4D",X"98",X"6E",X"09",X"A7",X"F7",X"6B",X"53", + X"30",X"4B",X"D9",X"A1",X"7A",X"48",X"39",X"72",X"48",X"4B",X"68",X"20",X"24",X"4B",X"69",X"20", + X"2A",X"4B",X"29",X"4D",X"A1",X"99",X"6B",X"E3",X"38",X"4B",X"69",X"76",X"6D",X"EF",X"92",X"5D", + X"48",X"10",X"00",X"2E",X"21",X"7D",X"48",X"B9",X"74",X"48",X"E9",X"4B",X"48",X"20",X"24",X"4B", + X"41",X"20",X"8A",X"4B",X"09",X"4D",X"29",X"99",X"6B",X"8D",X"99",X"4B",X"49",X"71",X"B2",X"59", + X"E8",X"A1",X"5A",X"48",X"0E",X"29",X"CD",X"9C",X"19",X"A1",X"5C",X"48",X"0E",X"2A",X"EB",X"9C", + X"99",X"CD",X"ED",X"DD",X"D6",X"AF",X"DE",X"1C",X"B0",X"4E",X"47",X"AE",X"08",X"43",X"33",X"A1", + X"3A",X"32",X"09",X"D6",X"23",X"E6",X"47",X"3F",X"C1",X"94",X"14",X"94",X"14",X"94",X"14",X"4D", + X"17",X"99",X"10",X"CC",X"12",X"56",X"09",X"B0",X"99",X"38",X"1B",X"3A",X"DE",X"0A",X"B0",X"1A", + X"18",X"24",X"1A",X"DE",X"2B",X"B0",X"0B",X"10",X"2D",X"12",X"D6",X"29",X"30",X"24",X"14",X"32", + X"10",X"AE",X"3F",X"BA",X"94",X"4D",X"17",X"99",X"10",X"2E",X"3F",X"BA",X"94",X"34",X"10",X"74", + X"FE",X"3C",X"4F",X"26",X"28",X"CB",X"3B",X"33",X"21",X"AE",X"1A",X"01",X"56",X"A3",X"66",X"C7", + X"12",X"34",X"47",X"16",X"90",X"09",X"3F",X"BA",X"26",X"08",X"01",X"76",X"AF",X"CC",X"17",X"99", + X"F9",X"E9",X"E9",X"12",X"14",X"32",X"C9",X"77",X"12",X"78",X"E8",X"2A",X"27",X"77",X"D6",X"21", + X"90",X"0D",X"96",X"89",X"6B",X"30",X"99",X"4D",X"AA",X"4D",X"96",X"87",X"4D",X"BD",X"4D",X"72", + X"32",X"78",X"E8",X"49",X"56",X"AF",X"C8",X"4B",X"57",X"6A",X"FB",X"31",X"23",X"D6",X"A7",X"6A", + X"C0",X"99",X"4D",X"D5",X"99",X"B6",X"0E",X"49",X"B5",X"C8",X"4D",X"E1",X"99",X"B6",X"0E",X"23", + X"CB",X"DE",X"C9",X"A3",X"35",X"68",X"03",X"D6",X"E6",X"F7",X"15",X"F7",X"C9",X"ED",X"12",X"ED", + X"40",X"91",X"B2",X"6D",X"40",X"DB",X"99",X"C1",X"49",X"C5",X"6D",X"71",X"87",X"6F",X"92",X"6D", + X"E8",X"A9",X"32",X"ED",X"E8",X"7B",X"19",X"69",X"E1",X"49",X"1A",X"4B",X"17",X"4B",X"17",X"4B", + X"97",X"4B",X"97",X"4D",X"8A",X"98",X"12",X"C6",X"2F",X"4D",X"8A",X"98",X"25",X"48",X"33",X"CB", + X"D2",X"31",X"B6",X"31",X"B5",X"31",X"B4",X"31",X"B3",X"31",X"B2",X"31",X"B1",X"31",X"6C",X"31", + X"6B",X"99",X"FA",X"99",X"79",X"99",X"B4",X"9A",X"33",X"9A",X"E8",X"9A",X"EE",X"9A",X"6B",X"9A", + X"66",X"32",X"7C",X"32",X"2E",X"28",X"29",X"28",X"29",X"29",X"29",X"2C",X"28",X"29",X"28",X"2A", + X"AD",X"09",X"A9",X"09",X"A9",X"0A",X"AC",X"09",X"A9",X"09",X"AA",X"0A",X"A9",X"0A",X"AD",X"0A", + X"2A",X"2A",X"2A",X"2B",X"2C",X"2A",X"2A",X"2A",X"2B",X"2F",X"28",X"28",X"28",X"28",X"28",X"28", + X"B0",X"8F",X"2E",X"8D",X"2C",X"8B",X"2A",X"89",X"2A",X"8B",X"2C",X"8D",X"2E",X"0B",X"28",X"1E", + X"D7",X"2B",X"38",X"A8",X"D7",X"2C",X"3A",X"AC",X"D7",X"2C",X"3C",X"A0",X"D7",X"28",X"28",X"29", + X"A8",X"0A",X"A8",X"0B",X"A8",X"0D",X"A8",X"18",X"A8",X"28",X"A8",X"38",X"A8",X"48",X"A8",X"58", + X"28",X"08",X"28",X"28",X"29",X"28",X"2A",X"28",X"2B",X"28",X"2D",X"4D",X"9B",X"32",X"DD",X"7E", + X"A9",X"5D",X"76",X"0A",X"CB",X"A9",X"AC",X"08",X"01",X"76",X"A3",X"E6",X"C7",X"A9",X"2F",X"08", + X"C5",X"90",X"C9",X"A1",X"28",X"4F",X"DD",X"76",X"2D",X"4B",X"67",X"20",X"29",X"A4",X"E6",X"27", + X"27",X"AF",X"27",X"AF",X"C7",X"49",X"92",X"4C",X"C8",X"87",X"68",X"32",X"A8",X"40",X"EE",X"09", + X"CA",X"68",X"33",X"32",X"4C",X"48",X"E6",X"27",X"EA",X"68",X"33",X"A1",X"05",X"B8",X"12",X"E7", + X"C8",X"87",X"80",X"18",X"DE",X"09",X"80",X"99",X"92",X"4D",X"C8",X"87",X"A0",X"5A",X"A1",X"30", + X"B8",X"CB",X"29",X"33",X"21",X"22",X"B8",X"32",X"E6",X"48",X"E6",X"29",X"20",X"2B",X"21",X"6A", + X"38",X"32",X"B8",X"40",X"47",X"AE",X"08",X"29",X"DE",X"58",X"B0",X"3C",X"D6",X"B2",X"B9",X"40", + X"51",X"94",X"32",X"B0",X"E8",X"92",X"47",X"48",X"D6",X"29",X"20",X"AC",X"12",X"B0",X"E8",X"A1", + X"BB",X"1E",X"31",X"50",X"E3",X"56",X"09",X"20",X"1C",X"A1",X"CD",X"1E",X"31",X"50",X"E3",X"56", + X"0D",X"80",X"0A",X"DE",X"3C",X"A0",X"09",X"A1",X"5F",X"3E",X"39",X"58",X"C3",X"4D",X"EC",X"22", + X"3F",X"5B",X"88",X"4B",X"77",X"A0",X"0D",X"36",X"09",X"B2",X"D1",X"40",X"92",X"AC",X"40",X"87", + X"EA",X"4A",X"1D",X"92",X"47",X"48",X"D6",X"2A",X"CA",X"4A",X"1D",X"92",X"EC",X"48",X"E6",X"24", + X"07",X"2F",X"47",X"AE",X"08",X"A1",X"0E",X"38",X"01",X"76",X"B2",X"3F",X"40",X"32",X"40",X"40", + X"E6",X"29",X"20",X"A8",X"12",X"BE",X"E8",X"AF",X"00",X"32",X"D6",X"2F",X"20",X"27",X"12",X"3B", + X"40",X"56",X"F7",X"20",X"0E",X"32",X"A8",X"40",X"AF",X"A0",X"89",X"36",X"0F",X"35",X"B2",X"3E", + X"E8",X"4D",X"6B",X"37",X"29",X"28",X"28",X"92",X"00",X"48",X"A7",X"6A",X"BB",X"36",X"12",X"28", + X"44",X"C6",X"0C",X"CA",X"DF",X"9C",X"92",X"08",X"46",X"C6",X"28",X"CA",X"DF",X"9C",X"92",X"49", + X"E8",X"DE",X"2E",X"B0",X"2B",X"AF",X"20",X"67",X"CD",X"2C",X"0C",X"DE",X"D7",X"80",X"3B",X"DE", + X"F3",X"20",X"8F",X"56",X"F5",X"20",X"8B",X"56",X"F1",X"20",X"0F",X"9F",X"B2",X"4E",X"40",X"CB", + X"DD",X"33",X"12",X"6E",X"E8",X"94",X"32",X"6E",X"E8",X"DE",X"D7",X"80",X"32",X"92",X"0B",X"48", + X"AF",X"A0",X"1D",X"32",X"0C",X"40",X"EE",X"48",X"4A",X"DF",X"9C",X"32",X"8A",X"40",X"DE",X"48", + X"DA",X"77",X"1C",X"26",X"0F",X"6B",X"2B",X"34",X"2E",X"2F",X"12",X"22",X"E8",X"DE",X"20",X"90", + X"AA",X"AE",X"AB",X"80",X"6A",X"DF",X"3C",X"32",X"C8",X"40",X"EE",X"0B",X"6A",X"DF",X"3C",X"A1", + X"50",X"B8",X"12",X"69",X"48",X"56",X"2E",X"DA",X"B6",X"34",X"2F",X"6F",X"2E",X"28",X"2F",X"89", + X"47",X"29",X"55",X"FC",X"82",X"BF",X"C8",X"A9",X"35",X"08",X"4D",X"A7",X"3D",X"4D",X"07",X"9D", + X"CD",X"87",X"35",X"32",X"69",X"48",X"14",X"B2",X"69",X"48",X"D6",X"2E",X"20",X"A9",X"02",X"B7", + X"C8",X"6D",X"64",X"4D",X"7E",X"2F",X"21",X"0B",X"A8",X"97",X"CD",X"EA",X"A2",X"0F",X"CE",X"C6", + X"D0",X"CE",X"22",X"B2",X"21",X"4E",X"16",X"98",X"32",X"28",X"4E",X"9F",X"32",X"2E",X"4E",X"32", + X"CC",X"40",X"EE",X"0F",X"A0",X"C9",X"92",X"08",X"CC",X"C6",X"AC",X"A0",X"EA",X"32",X"B1",X"40", + X"A7",X"20",X"33",X"56",X"39",X"30",X"21",X"9F",X"32",X"B9",X"48",X"2E",X"28",X"CB",X"7E",X"35", + X"DD",X"A1",X"25",X"40",X"4D",X"EF",X"A0",X"32",X"B1",X"40",X"94",X"B2",X"B1",X"40",X"92",X"3A", + X"48",X"87",X"00",X"33",X"D6",X"39",X"10",X"21",X"BF",X"B2",X"BA",X"48",X"0E",X"29",X"EB",X"7E", + X"3D",X"55",X"A1",X"AF",X"C8",X"4D",X"67",X"28",X"92",X"3A",X"C8",X"34",X"B2",X"3A",X"C8",X"2E", + X"28",X"32",X"B9",X"48",X"D6",X"2D",X"10",X"2C",X"D6",X"38",X"20",X"23",X"12",X"BA",X"48",X"56", + X"AD",X"30",X"29",X"56",X"B8",X"20",X"AD",X"DE",X"AC",X"C6",X"AB",X"6F",X"4B",X"A9",X"26",X"08", + X"21",X"D6",X"A7",X"29",X"56",X"B2",X"BB",X"48",X"23",X"76",X"32",X"BC",X"48",X"3E",X"28",X"32", + X"A0",X"44",X"EE",X"00",X"80",X"09",X"14",X"32",X"E8",X"44",X"EE",X"00",X"80",X"09",X"14",X"73", + X"D6",X"2A",X"20",X"3B",X"12",X"E8",X"4C",X"C6",X"08",X"CA",X"8B",X"35",X"12",X"30",X"48",X"56", + X"89",X"5A",X"23",X"9D",X"6B",X"8A",X"9D",X"87",X"80",X"3F",X"92",X"44",X"40",X"C6",X"FF",X"CA", + X"1C",X"35",X"12",X"AF",X"E8",X"94",X"A7",X"80",X"2B",X"B2",X"27",X"48",X"12",X"48",X"E8",X"AF", + X"6A",X"23",X"9D",X"32",X"F3",X"46",X"94",X"B2",X"F3",X"46",X"92",X"88",X"40",X"56",X"88",X"30", + X"2A",X"96",X"2F",X"47",X"2E",X"28",X"21",X"2E",X"00",X"01",X"6E",X"92",X"D3",X"4E",X"90",X"90", + X"6A",X"A1",X"39",X"40",X"92",X"28",X"44",X"C6",X"00",X"20",X"09",X"A3",X"D6",X"87",X"6A",X"23", + X"1D",X"B6",X"29",X"6B",X"A3",X"35",X"BF",X"B2",X"D3",X"4E",X"DD",X"ED",X"51",X"5D",X"21",X"A8", + X"44",X"87",X"80",X"8E",X"5D",X"A1",X"48",X"44",X"5D",X"4B",X"08",X"FE",X"80",X"0C",X"5D",X"A1", + X"60",X"4C",X"DD",X"D6",X"2D",X"DE",X"0B",X"A0",X"09",X"4D",X"36",X"AF",X"CD",X"92",X"64",X"6B", + X"21",X"9D",X"4D",X"3E",X"2F",X"4D",X"3D",X"6C",X"92",X"19",X"40",X"87",X"A1",X"6D",X"C8",X"A0", + X"0A",X"92",X"38",X"48",X"D6",X"B8",X"30",X"2B",X"21",X"9D",X"48",X"5D",X"75",X"2B",X"DD",X"F4", + X"0C",X"5D",X"E9",X"32",X"08",X"44",X"EE",X"0C",X"80",X"98",X"3F",X"B2",X"72",X"46",X"49",X"3A", + X"77",X"84",X"56",X"FE",X"2F",X"F7",X"3B",X"12",X"04",X"F7",X"04",X"D6",X"F6",X"2F",X"77",X"33", + X"01",X"49",X"4D",X"0C",X"8C",X"4B",X"D7",X"CA",X"64",X"9D",X"5D",X"76",X"8B",X"87",X"80",X"0D", + X"E6",X"08",X"CA",X"34",X"1E",X"5D",X"CB",X"28",X"9E",X"5D",X"36",X"23",X"30",X"5D",X"36",X"24", + X"0B",X"CB",X"9C",X"9E",X"4B",X"F7",X"A0",X"1E",X"5D",X"4B",X"8B",X"FE",X"6A",X"9C",X"9E",X"5D", + X"CB",X"28",X"9E",X"5D",X"36",X"23",X"F8",X"5D",X"36",X"24",X"D5",X"6B",X"1C",X"36",X"12",X"A9", + X"C8",X"87",X"80",X"29",X"92",X"72",X"CE",X"87",X"48",X"5D",X"B6",X"8B",X"A8",X"C6",X"88",X"36", + X"29",X"A0",X"2A",X"45",X"6C",X"B2",X"C4",X"4E",X"DD",X"4B",X"28",X"16",X"DD",X"4B",X"28",X"76", + X"A0",X"0B",X"4D",X"BF",X"F3",X"32",X"D3",X"46",X"5D",X"EE",X"BA",X"88",X"67",X"C6",X"2F",X"B2", + X"DB",X"4E",X"50",X"AE",X"28",X"C6",X"D8",X"2F",X"0F",X"2F",X"0F",X"4B",X"5F",X"20",X"2B",X"D6", + X"D0",X"AD",X"47",X"32",X"24",X"40",X"AF",X"A0",X"BA",X"32",X"67",X"40",X"DE",X"0A",X"A0",X"2D", + X"41",X"E0",X"22",X"3E",X"48",X"32",X"6D",X"48",X"A7",X"A0",X"25",X"22",X"2F",X"4C",X"B7",X"45", + X"62",X"74",X"EE",X"09",X"E7",X"A2",X"AF",X"44",X"21",X"08",X"A8",X"32",X"67",X"40",X"DE",X"0A", + X"00",X"AE",X"EB",X"1B",X"36",X"36",X"28",X"A1",X"2F",X"4B",X"D6",X"20",X"00",X"21",X"5E",X"A3", + X"76",X"43",X"01",X"43",X"F2",X"23",X"F3",X"34",X"DE",X"9B",X"B0",X"0F",X"31",X"28",X"A8",X"39", + X"EB",X"F2",X"36",X"61",X"60",X"A2",X"3E",X"48",X"02",X"32",X"48",X"29",X"22",X"32",X"48",X"22", + X"3A",X"40",X"92",X"09",X"C8",X"4B",X"67",X"20",X"2B",X"C6",X"88",X"A0",X"AF",X"A9",X"BA",X"08", + X"09",X"CB",X"92",X"36",X"29",X"34",X"28",X"97",X"C5",X"EA",X"22",X"E1",X"48",X"49",X"12",X"AD", + X"C8",X"67",X"A6",X"42",X"92",X"89",X"CC",X"F7",X"85",X"75",X"DE",X"48",X"B0",X"0A",X"96",X"6F", + X"32",X"AD",X"48",X"32",X"AE",X"48",X"3E",X"4A",X"5F",X"22",X"3E",X"48",X"54",X"BA",X"1D",X"75", + X"32",X"3D",X"D3",X"56",X"88",X"B0",X"AA",X"36",X"4F",X"B2",X"A6",X"40",X"92",X"1D",X"C8",X"87", + X"C8",X"EF",X"D5",X"A1",X"C8",X"4A",X"02",X"2F",X"4C",X"2E",X"2D",X"CD",X"1C",X"73",X"D6",X"58", + X"90",X"0A",X"16",X"00",X"12",X"6F",X"14",X"3A",X"67",X"29",X"69",X"2D",X"A0",X"E5",X"DD",X"F5", + X"28",X"DD",X"74",X"29",X"2D",X"48",X"D5",X"A3",X"D5",X"A3",X"EB",X"D1",X"1E",X"49",X"BF",X"B2", + X"3D",X"40",X"4D",X"12",X"9F",X"B6",X"40",X"24",X"D6",X"C6",X"F0",X"F7",X"84",X"B6",X"41",X"24", + X"56",X"EE",X"D0",X"F7",X"04",X"B6",X"EA",X"84",X"56",X"EE",X"D0",X"B6",X"28",X"92",X"35",X"48", + X"6B",X"CE",X"9F",X"A1",X"61",X"9F",X"47",X"AE",X"08",X"29",X"D6",X"B2",X"3D",X"40",X"47",X"AF", + X"2F",X"27",X"A9",X"47",X"2E",X"28",X"21",X"8A",X"1F",X"01",X"5D",X"74",X"CD",X"1A",X"1F",X"21", + X"48",X"08",X"01",X"A9",X"BB",X"08",X"4D",X"EC",X"9F",X"4D",X"EC",X"9F",X"12",X"F7",X"A3",X"76", + X"E6",X"D0",X"77",X"A3",X"3B",X"12",X"77",X"A3",X"56",X"EE",X"D0",X"F7",X"23",X"33",X"1A",X"F7", + X"A3",X"76",X"EE",X"F0",X"F7",X"29",X"33",X"49",X"A1",X"45",X"28",X"32",X"1C",X"40",X"27",X"CB", + X"98",X"37",X"21",X"C7",X"1F",X"92",X"3C",X"48",X"2F",X"47",X"2E",X"28",X"09",X"D6",X"23",X"E6", + X"C7",X"49",X"43",X"46",X"C1",X"44",X"47",X"C2",X"45",X"C0",X"C3",X"C4",X"D0",X"C7",X"C5",X"60", + X"F8",X"46",X"E1",X"59",X"FA",X"CA",X"FD",X"5B",X"E3",X"5E",X"FC",X"CC",X"FF",X"CD",X"C0",X"C3", + X"66",X"E1",X"E4",X"67",X"E2",X"E5",X"E6",X"E0",X"71",X"E7",X"E1",X"72",X"70",X"E2",X"73",X"74", + X"C0",X"DF",X"F5",X"C1",X"D0",X"DE",X"C2",X"D1",X"D2",X"C0",X"D5",X"D3",X"C1",X"D6",X"D4",X"C2", + X"F7",X"08",X"08",X"09",X"0A",X"0B",X"0C",X"0D",X"0E",X"0D",X"0C",X"0B",X"0A",X"09",X"08",X"96", + X"E5",X"16",X"E5",X"36",X"E2",X"36",X"E1",X"36",X"E1",X"16",X"E0",X"36",X"E1",X"56",X"E0",X"16", + X"44",X"16",X"44",X"16",X"45",X"56",X"40",X"16",X"40",X"36",X"41",X"16",X"45",X"16",X"45",X"16", + X"E5",X"3E",X"E5",X"FE",X"E0",X"3E",X"E5",X"FE",X"E0",X"FE",X"E0",X"3E",X"E5",X"3E",X"E5",X"BE", + X"42",X"16",X"45",X"16",X"45",X"16",X"44",X"76",X"42",X"16",X"45",X"16",X"45",X"16",X"45",X"76", + X"E0",X"BE",X"E3",X"FE",X"E0",X"3E",X"E5",X"12",X"47",X"48",X"81",X"49",X"20",X"A7",X"80",X"AC", + X"92",X"3C",X"48",X"0F",X"27",X"CF",X"26",X"28",X"A1",X"4D",X"80",X"89",X"56",X"2B",X"76",X"E3", + X"82",X"A5",X"E8",X"D5",X"81",X"A5",X"E8",X"12",X"31",X"48",X"5D",X"CD",X"47",X"80",X"59",X"3B", + X"CB",X"CE",X"A3",X"6E",X"C1",X"2A",X"A7",X"48",X"DD",X"29",X"A7",X"48",X"92",X"BA",X"48",X"29", + X"81",X"80",X"76",X"8D",X"B0",X"A8",X"76",X"98",X"B6",X"88",X"A0",X"8A",X"B6",X"8C",X"8F",X"2F", + X"47",X"0E",X"88",X"89",X"55",X"5C",X"DD",X"EE",X"88",X"F5",X"E6",X"29",X"4D",X"1C",X"80",X"09", + X"15",X"88",X"A9",X"3B",X"BA",X"77",X"83",X"56",X"46",X"50",X"56",X"89",X"D7",X"23",X"9B",X"1A", + X"F7",X"2B",X"D6",X"66",X"50",X"76",X"89",X"7F",X"49",X"28",X"8A",X"29",X"8B",X"2C",X"8A",X"2D", + X"2B",X"8E",X"08",X"8F",X"09",X"AA",X"0C",X"AB",X"0D",X"AE",X"38",X"AF",X"39",X"88",X"2A",X"89", + X"8B",X"AE",X"46",X"AE",X"46",X"9E",X"41",X"A4",X"46",X"56",X"42",X"76",X"41",X"20",X"41",X"36", + X"E6",X"32",X"E1",X"A2",X"E6",X"14",X"E0",X"94",X"E6",X"AE",X"E2",X"A6",X"E4",X"2E",X"E1",X"24", + X"44",X"28",X"42",X"AA",X"46",X"2E",X"46",X"DA",X"41",X"C0",X"41",X"20",X"46",X"3A",X"42",X"9E", + X"E3",X"54",X"E0",X"78",X"E3",X"8E",X"E2",X"A6",X"E6",X"1C",X"E0",X"A0",X"E6",X"94",X"E1",X"AE", + X"66",X"16",X"61",X"A6",X"66",X"D4",X"60",X"22",X"66",X"CE",X"60",X"2E",X"66",X"56",X"62",X"36", + X"E6",X"58",X"E0",X"24",X"E6",X"56",X"E2",X"36",X"E6",X"A2",X"E2",X"32",X"E6",X"18",X"E0",X"98", + X"60",X"46",X"60",X"56",X"64",X"DC",X"60",X"60",X"64",X"FE",X"61",X"2E",X"66",X"D0",X"60",X"38", + X"E6",X"88",X"E0",X"B4",X"E6",X"3A",X"E6",X"82",X"E4",X"1E",X"E1",X"5E",X"E3",X"06",X"E2",X"86", + X"62",X"50",X"60",X"D0",X"60",X"6E",X"64",X"AE",X"66",X"78",X"62",X"BE",X"66",X"02",X"62",X"BA", + X"E6",X"88",X"E2",X"68",X"E4",X"12",X"3C",X"48",X"2F",X"4F",X"2E",X"28",X"21",X"E6",X"21",X"09", + X"46",X"2B",X"E6",X"E9",X"A2",X"B7",X"40",X"1E",X"60",X"9E",X"0F",X"43",X"71",X"A9",X"E0",X"C8", + X"E6",X"C8",X"26",X"CD",X"98",X"CD",X"2A",X"CA",X"AA",X"CD",X"0C",X"CC",X"9A",X"CD",X"90",X"CB", + X"36",X"CD",X"68",X"CC",X"36",X"CD",X"12",X"CD",X"B2",X"CD",X"80",X"C8",X"40",X"CA",X"F8",X"CB", + X"14",X"C9",X"14",X"CC",X"6C",X"CB",X"90",X"CD",X"34",X"CB",X"94",X"CD",X"EA",X"CC",X"EA",X"CA", + X"00",X"CD",X"0C",X"CA",X"D6",X"CD",X"9E",X"CC",X"96",X"CB",X"DE",X"CA",X"16",X"CA",X"00",X"C9", + X"34",X"C9",X"DE",X"C9",X"20",X"C9",X"12",X"3C",X"E8",X"2F",X"4F",X"2E",X"28",X"21",X"6D",X"A6", + X"01",X"CE",X"A3",X"6E",X"C1",X"FE",X"AF",X"C0",X"A3",X"DE",X"A3",X"5E",X"CB",X"75",X"92",X"30", + X"E8",X"E6",X"1C",X"0F",X"0F",X"D6",X"2D",X"10",X"2A",X"FE",X"2D",X"2F",X"4F",X"2F",X"A9",X"EE", + X"20",X"55",X"77",X"9E",X"08",X"C5",X"71",X"A9",X"79",X"71",X"95",X"C0",X"CB",X"2B",X"6B",X"41", + X"21",X"72",X"04",X"73",X"29",X"B7",X"28",X"09",X"3C",X"72",X"04",X"73",X"09",X"3C",X"72",X"04", + X"F3",X"AB",X"4D",X"DD",X"B2",X"FA",X"6E",X"2B",X"77",X"7A",X"84",X"7B",X"BF",X"09",X"C9",X"28", + X"65",X"6A",X"9D",X"72",X"A4",X"73",X"17",X"C5",X"CA",X"3D",X"D2",X"04",X"D3",X"C9",X"B2",X"9C", + X"48",X"0F",X"47",X"0E",X"88",X"29",X"F9",X"AA",X"01",X"CE",X"A3",X"6E",X"C1",X"FE",X"AF",X"C0", + X"83",X"5E",X"83",X"7E",X"83",X"C3",X"55",X"FD",X"B2",X"B2",X"E8",X"1E",X"AD",X"3E",X"2B",X"E5", + X"06",X"2E",X"F3",X"2B",X"F7",X"2B",X"14",X"8D",X"A0",X"D0",X"E9",X"09",X"C8",X"28",X"01",X"1D", + X"80",X"65",X"41",X"F1",X"B5",X"C8",X"4B",X"91",X"22",X"01",X"22",X"02",X"22",X"05",X"22",X"30", + X"82",X"91",X"82",X"94",X"82",X"95",X"82",X"96",X"82",X"97",X"82",X"4A",X"82",X"4D",X"82",X"42", + X"22",X"6A",X"22",X"6B",X"22",X"58",X"22",X"5D",X"22",X"7E",X"22",X"61",X"22",X"64",X"22",X"65", + X"82",X"D8",X"82",X"D9",X"82",X"DA",X"82",X"DB",X"82",X"DE",X"82",X"D1",X"82",X"D1",X"82",X"D2", + X"22",X"75",X"22",X"76",X"22",X"89",X"23",X"8E",X"23",X"8F",X"23",X"9E",X"23",X"81",X"23",X"A0", + X"83",X"28",X"89",X"46",X"40",X"21",X"48",X"C8",X"58",X"C8",X"7C",X"C8",X"50",X"C8",X"A8",X"CA", + X"34",X"42",X"8A",X"43",X"E2",X"43",X"46",X"45",X"28",X"89",X"6C",X"41",X"28",X"88",X"28",X"89", + X"10",X"CC",X"89",X"6E",X"45",X"2A",X"6C",X"CD",X"A0",X"CD",X"88",X"2A",X"3A",X"CA",X"FA",X"CB", + X"2A",X"AA",X"E2",X"50",X"E5",X"8C",X"CC",X"40",X"02",X"41",X"EC",X"42",X"C6",X"41",X"2D",X"88", + X"43",X"24",X"43",X"42",X"44",X"5A",X"45",X"EE",X"43",X"29",X"C8",X"C9",X"88",X"29",X"CE",X"CA", + X"28",X"88",X"28",X"89",X"C0",X"41",X"29",X"28",X"E5",X"88",X"29",X"08",X"E5",X"88",X"29",X"4E", + X"64",X"2A",X"50",X"CD",X"64",X"CD",X"08",X"2F",X"18",X"CA",X"C4",X"CA",X"06",X"CB",X"56",X"CC", + X"04",X"C9",X"B0",X"CB",X"F2",X"CD",X"2D",X"4A",X"E2",X"0E",X"E5",X"1A",X"E1",X"CE",X"E0",X"D8", + X"61",X"2B",X"42",X"C9",X"72",X"C8",X"34",X"C9",X"08",X"BA",X"EF",X"48",X"AF",X"40",X"4D",X"36", + X"22",X"12",X"3C",X"48",X"D6",X"30",X"F8",X"2F",X"4F",X"2E",X"28",X"21",X"AD",X"AB",X"09",X"4E", + X"A3",X"6E",X"C1",X"FE",X"AF",X"C0",X"A3",X"DE",X"A3",X"5E",X"A3",X"65",X"C3",X"6A",X"FD",X"BA", + X"12",X"48",X"7F",X"1E",X"B0",X"E5",X"CD",X"F0",X"23",X"E1",X"29",X"68",X"28",X"09",X"E5",X"CD", + X"F8",X"AB",X"E9",X"8E",X"48",X"89",X"ED",X"C5",X"F8",X"AB",X"E9",X"8E",X"48",X"89",X"4D",X"F0", + X"23",X"F1",X"E1",X"15",X"C8",X"EB",X"6F",X"AB",X"0E",X"2C",X"73",X"04",X"72",X"1C",X"CD",X"91", + X"2F",X"8D",X"A0",X"DE",X"49",X"45",X"2B",X"45",X"2B",X"46",X"2B",X"45",X"2B",X"45",X"2B",X"45", + X"23",X"5F",X"23",X"52",X"23",X"55",X"23",X"CA",X"23",X"CF",X"23",X"C6",X"23",X"D9",X"23",X"DE", + X"2B",X"45",X"2B",X"D1",X"2B",X"28",X"2C",X"45",X"2B",X"2D",X"2C",X"45",X"2B",X"45",X"2B",X"45", + X"23",X"45",X"23",X"45",X"23",X"45",X"23",X"20",X"24",X"23",X"24",X"26",X"24",X"3B",X"24",X"45", + X"2B",X"45",X"2B",X"32",X"2C",X"37",X"2C",X"AC",X"2C",X"A1",X"2C",X"A6",X"2C",X"28",X"0C",X"66", + X"E4",X"3C",X"E2",X"86",X"E3",X"DE",X"E2",X"29",X"9C",X"CA",X"29",X"06",X"E5",X"2A",X"28",X"CC", + X"8A",X"CB",X"0A",X"48",X"62",X"C6",X"60",X"2B",X"08",X"C9",X"72",X"C8",X"B0",X"CA",X"09",X"02", + X"E2",X"2A",X"C4",X"C8",X"28",X"CB",X"29",X"48",X"E4",X"2B",X"EA",X"C9",X"8A",X"C9",X"10",X"CB", + X"8A",X"54",X"40",X"16",X"43",X"29",X"70",X"CA",X"89",X"FC",X"45",X"29",X"BC",X"CA",X"8A",X"28", + X"E1",X"B0",X"E2",X"8B",X"CC",X"40",X"42",X"41",X"9C",X"45",X"2A",X"28",X"E3",X"E6",X"E5",X"8A", + X"0C",X"CA",X"42",X"CC",X"8A",X"4E",X"40",X"12",X"44",X"2A",X"48",X"C8",X"6E",X"CB",X"89",X"3E", + X"E5",X"12",X"47",X"48",X"76",X"8A",X"80",X"F4",X"81",X"88",X"E0",X"1E",X"3A",X"2E",X"2A",X"0E", + X"88",X"C5",X"61",X"AF",X"31",X"8F",X"FF",X"F5",X"A1",X"9E",X"FF",X"0E",X"8B",X"8E",X"8D",X"BE", + X"2F",X"CD",X"AB",X"84",X"99",X"4C",X"5F",X"D5",X"81",X"7C",X"5F",X"2E",X"2C",X"0E",X"2D",X"16", + X"A8",X"C5",X"0B",X"AC",X"31",X"C4",X"FF",X"F5",X"A1",X"9A",X"84",X"0E",X"AB",X"8E",X"8D",X"BE", + X"29",X"CD",X"AB",X"84",X"81",X"09",X"E6",X"2E",X"68",X"56",X"56",X"90",X"D7",X"23",X"83",X"2D", + X"A0",X"DF",X"49",X"55",X"FD",X"45",X"DD",X"EE",X"88",X"F5",X"A3",X"F5",X"E6",X"28",X"DD",X"2B", + X"4D",X"E5",X"BA",X"77",X"83",X"3B",X"96",X"8F",X"83",X"2D",X"80",X"56",X"41",X"E9",X"AD",X"00", + X"A9",X"45",X"21",X"68",X"88",X"89",X"69",X"43",X"18",X"AC",X"69",X"71",X"79",X"BD",X"48",X"43", + X"AB",X"84",X"9E",X"44",X"81",X"08",X"E0",X"1E",X"18",X"12",X"28",X"48",X"46",X"89",X"A0",X"AE", + X"92",X"E6",X"48",X"66",X"89",X"BE",X"A8",X"A8",X"A8",X"BE",X"8C",X"43",X"59",X"AC",X"92",X"30", + X"E8",X"14",X"46",X"74",X"AF",X"0F",X"76",X"8E",X"B0",X"8D",X"5E",X"8E",X"4B",X"5E",X"24",X"14", + X"B2",X"B2",X"48",X"CF",X"26",X"08",X"92",X"A4",X"48",X"27",X"A0",X"2E",X"92",X"E7",X"48",X"27", + X"A0",X"8C",X"8E",X"88",X"AE",X"88",X"6D",X"61",X"27",X"12",X"12",X"48",X"AE",X"00",X"56",X"90", + X"67",X"29",X"08",X"C8",X"4D",X"5E",X"2F",X"8E",X"24",X"29",X"48",X"C8",X"4D",X"5A",X"2F",X"BA", + X"47",X"48",X"A7",X"EA",X"76",X"AE",X"12",X"A4",X"E8",X"A7",X"20",X"39",X"21",X"08",X"E0",X"0E", + X"02",X"9E",X"28",X"BA",X"BA",X"48",X"F1",X"AC",X"F7",X"AC",X"15",X"28",X"F1",X"BA",X"AC",X"48", + X"A7",X"00",X"39",X"21",X"68",X"CD",X"1E",X"A8",X"36",X"EB",X"23",X"36",X"38",X"23",X"1D",X"20", + X"77",X"43",X"7E",X"AE",X"92",X"3C",X"40",X"0F",X"47",X"0E",X"08",X"29",X"8F",X"A0",X"01",X"CE", + X"23",X"66",X"41",X"56",X"A7",X"00",X"7F",X"4F",X"23",X"5E",X"23",X"7E",X"23",X"6E",X"C3",X"ED", + X"ED",X"3E",X"EA",X"AC",X"B6",X"38",X"4D",X"91",X"2F",X"0D",X"B6",X"EB",X"84",X"3E",X"18",X"0D", + X"00",X"2E",X"CD",X"91",X"27",X"EB",X"42",X"AD",X"05",X"36",X"43",X"04",X"CD",X"91",X"27",X"36", + X"03",X"AC",X"92",X"B2",X"40",X"7F",X"E9",X"55",X"31",X"68",X"08",X"99",X"79",X"41",X"B6",X"09", + X"04",X"77",X"CD",X"91",X"27",X"2D",X"36",X"0A",X"04",X"12",X"12",X"48",X"77",X"CD",X"91",X"AF", + X"25",X"28",X"73",X"3E",X"04",X"AC",X"92",X"B2",X"40",X"7F",X"CB",X"8D",X"A0",X"82",X"92",X"3C", + X"E8",X"2F",X"4F",X"2E",X"28",X"21",X"7F",X"A0",X"09",X"4E",X"23",X"66",X"41",X"56",X"A7",X"CA", + X"7E",X"AE",X"A3",X"75",X"56",X"2B",X"76",X"2B",X"46",X"2B",X"CB",X"55",X"ED",X"49",X"6D",X"0E", + X"28",X"5D",X"7C",X"CD",X"EB",X"AF",X"56",X"E6",X"F0",X"D6",X"60",X"20",X"29",X"2C",X"43",X"62", + X"84",X"C5",X"B1",X"AF",X"D6",X"66",X"70",X"F6",X"68",X"28",X"0A",X"C3",X"48",X"EB",X"E2",X"19", + X"68",X"28",X"B7",X"C5",X"7A",X"56",X"E6",X"D8",X"D6",X"E8",X"20",X"2A",X"CB",X"F8",X"0D",X"00", + X"8A",X"C3",X"58",X"8C",X"11",X"65",X"50",X"1E",X"88",X"29",X"56",X"AF",X"11",X"DE",X"E9",X"FE", + X"46",X"50",X"76",X"00",X"80",X"8E",X"A4",X"CB",X"46",X"EB",X"21",X"86",X"D3",X"04",X"96",X"98", + X"D3",X"19",X"B7",X"28",X"11",X"41",X"05",X"42",X"6E",X"AD",X"06",X"0A",X"DE",X"EE",X"80",X"2E", + X"76",X"C7",X"A0",X"8A",X"AE",X"09",X"D1",X"04",X"B2",X"B2",X"E8",X"77",X"41",X"ED",X"A4",X"CD", + X"31",X"AF",X"31",X"68",X"88",X"FE",X"EE",X"D8",X"DE",X"E8",X"80",X"24",X"DE",X"88",X"80",X"20", + X"96",X"0B",X"83",X"12",X"12",X"48",X"D7",X"03",X"B9",X"56",X"76",X"0A",X"A0",X"AE",X"46",X"50", + X"DE",X"E8",X"80",X"20",X"B6",X"0C",X"84",X"BA",X"B2",X"48",X"F7",X"AD",X"25",X"28",X"61",X"41", + X"41",X"F1",X"B5",X"EA",X"EB",X"85",X"81",X"08",X"E6",X"0E",X"80",X"12",X"12",X"48",X"56",X"90", + X"67",X"C5",X"5E",X"AF",X"A1",X"48",X"46",X"8E",X"24",X"C5",X"5E",X"AF",X"92",X"A4",X"48",X"27", + X"48",X"12",X"47",X"48",X"07",X"20",X"69",X"12",X"3C",X"48",X"76",X"BA",X"81",X"74",X"30",X"00", + X"AE",X"29",X"9D",X"B9",X"DE",X"A9",X"80",X"2F",X"DE",X"AB",X"A0",X"AE",X"A1",X"BA",X"91",X"FE", + X"83",X"5E",X"83",X"7E",X"83",X"3B",X"EE",X"23",X"CE",X"23",X"63",X"FD",X"99",X"C8",X"28",X"E5", + X"6D",X"C3",X"EE",X"2B",X"A3",X"8D",X"A0",X"D1",X"69",X"61",X"11",X"0D",X"A0",X"D9",X"E9",X"BD", + X"80",X"7F",X"6D",X"16",X"21",X"CD",X"7D",X"81",X"6D",X"BE",X"1F",X"CD",X"37",X"80",X"6D",X"A1", + X"83",X"29",X"D8",X"E2",X"16",X"A8",X"4D",X"DE",X"86",X"29",X"38",X"E2",X"16",X"68",X"4D",X"DE", + X"26",X"21",X"8E",X"E6",X"BE",X"08",X"B2",X"9C",X"E8",X"2F",X"EF",X"2E",X"28",X"09",X"EE",X"23", + X"E6",X"E9",X"D6",X"27",X"48",X"5F",X"A3",X"CE",X"A3",X"4E",X"23",X"8A",X"BB",X"0A",X"35",X"28", + X"F5",X"C9",X"21",X"28",X"EB",X"1E",X"08",X"29",X"20",X"28",X"CB",X"56",X"00",X"3B",X"29",X"32", + X"08",X"89",X"4B",X"CE",X"A0",X"2E",X"4B",X"C6",X"3F",X"3A",X"F3",X"4E",X"35",X"C0",X"21",X"2E", + X"28",X"09",X"1D",X"20",X"E5",X"C9",X"12",X"E7",X"E8",X"A7",X"00",X"2E",X"21",X"49",X"20",X"EB", + X"CE",X"AF",X"92",X"3C",X"40",X"0F",X"27",X"CF",X"26",X"28",X"A1",X"4D",X"28",X"89",X"5D",X"FE", + X"2D",X"D6",X"0B",X"00",X"2C",X"E6",X"29",X"20",X"2A",X"23",X"23",X"4E",X"23",X"6E",X"51",X"E6", + X"F0",X"8F",X"07",X"8F",X"57",X"F8",X"EE",X"2F",X"07",X"8F",X"07",X"33",X"67",X"F9",X"6E",X"2A", + X"E6",X"B7",X"2F",X"2F",X"2F",X"3E",X"28",X"30",X"29",X"3C",X"5F",X"02",X"1A",X"48",X"19",X"54", + X"EE",X"29",X"E7",X"F8",X"49",X"BA",X"98",X"48",X"DE",X"B8",X"90",X"2D",X"7E",X"B8",X"6B",X"00", + X"27",X"21",X"CA",X"A7",X"4F",X"2E",X"28",X"09",X"56",X"32",X"3C",X"48",X"C9",X"7F",X"0E",X"29", + X"EE",X"D8",X"07",X"8F",X"07",X"8F",X"AF",X"28",X"0F",X"3E",X"08",X"2B",X"A3",X"43",X"33",X"AF", + X"CD",X"0A",X"18",X"52",X"E6",X"27",X"EB",X"0A",X"18",X"04",X"55",X"E6",X"17",X"E8",X"55",X"FE", + X"48",X"EF",X"49",X"FD",X"EE",X"B7",X"A0",X"2F",X"D5",X"66",X"40",X"76",X"BE",X"EF",X"49",X"AD", + X"05",X"C9",X"12",X"B2",X"E8",X"6F",X"3E",X"28",X"1E",X"A8",X"51",X"AA",X"77",X"04",X"70",X"04", + X"34",X"FA",X"EE",X"2B",X"77",X"9D",X"A0",X"DA",X"49",X"1E",X"28",X"78",X"84",X"79",X"A3",X"1D", + X"20",X"D1",X"1D",X"20",X"F4",X"C9",X"41",X"E3",X"42",X"EB",X"41",X"EF",X"65",X"EE",X"40",X"EA", + X"C0",X"E9",X"C4",X"E5",X"E4",X"E4",X"8F",X"2E",X"8D",X"2C",X"8B",X"2A",X"8A",X"29",X"89",X"17", + X"00",X"22",X"00",X"49",X"00",X"7E",X"00",X"8C",X"01",X"A2",X"01",X"C9",X"01",X"EC",X"01",X"0C", + X"A1",X"1D",X"A1",X"4F",X"A1",X"53",X"A1",X"2C",X"A2",X"B8",X"A2",X"71",X"A2",X"F7",X"A2",X"18", + X"02",X"4D",X"02",X"75",X"02",X"80",X"03",X"E9",X"03",X"FA",X"03",X"E3",X"03",X"3D",X"03",X"35", + X"A3",X"40",X"A3",X"28",X"A4",X"B3",X"A4",X"EF",X"A4",X"FD",X"A4",X"07",X"A4",X"45",X"A4",X"3F", + X"05",X"82",X"05",X"F3",X"05",X"31",X"05",X"21",X"00",X"48",X"00",X"7A",X"00",X"51",X"00",X"BA", + X"A1",X"68",X"A1",X"63",X"A1",X"FC",X"A1",X"1C",X"A1",X"92",X"A1",X"52",X"A1",X"DF",X"A1",X"A7", + X"02",X"EC",X"02",X"D2",X"02",X"2F",X"02",X"12",X"02",X"44",X"02",X"9B",X"03",X"96",X"03",X"F9", + X"A3",X"EF",X"A3",X"0C",X"A3",X"9B",X"A3",X"4F",X"A3",X"DB",X"A3",X"31",X"A4",X"7F",X"A4",X"FC", + X"04",X"0D",X"04",X"6C",X"04",X"52",X"04",X"81",X"05",X"D8",X"05",X"1F",X"05",X"77",X"05",X"8B", + X"86",X"CA",X"BA",X"8E",X"43",X"32",X"86",X"CD",X"BA",X"28",X"8F",X"BC",X"41",X"24",X"14",X"CA", + X"0C",X"94",X"E4",X"AC",X"B4",X"45",X"0C",X"5C",X"E1",X"AC",X"7C",X"43",X"0C",X"5C",X"E4",X"AC", + X"88",X"20",X"36",X"C9",X"AE",X"8E",X"41",X"2F",X"B6",X"CB",X"BB",X"96",X"44",X"2F",X"38",X"CC", + X"0E",X"34",X"E5",X"AF",X"24",X"46",X"2C",X"C4",X"E6",X"8C",X"29",X"B8",X"E3",X"AB",X"2E",X"9E", + X"42",X"23",X"96",X"CA",X"AC",X"08",X"43",X"24",X"00",X"CB",X"AC",X"22",X"45",X"24",X"A2",X"CD", + X"0C",X"8E",X"4C",X"40",X"08",X"9E",X"E2",X"8F",X"36",X"42",X"2F",X"08",X"E3",X"8F",X"A0",X"43", + X"0F",X"22",X"65",X"2F",X"0F",X"A6",X"61",X"2F",X"1E",X"CA",X"1C",X"B4",X"63",X"2F",X"16",X"CB", + X"0B",X"3E",X"E5",X"2F",X"36",X"CC",X"0A",X"A4",X"E5",X"39",X"2D",X"20",X"E3",X"2D",X"0C",X"CD", + X"0E",X"1E",X"63",X"2F",X"AE",X"C9",X"0D",X"B4",X"62",X"2D",X"0F",X"00",X"62",X"20",X"80",X"CC", + X"08",X"10",X"E1",X"20",X"98",X"CD",X"08",X"80",X"E2",X"20",X"80",X"CC",X"08",X"90",X"E3",X"20", + X"08",X"2B",X"0E",X"CA",X"9A",X"8E",X"63",X"32",X"0E",X"CD",X"9A",X"28",X"8D",X"0E",X"61",X"2D", + X"2E",X"CB",X"2D",X"0E",X"E4",X"2D",X"D8",X"C9",X"08",X"70",X"E3",X"20",X"D8",X"CC",X"08",X"B0", + X"61",X"20",X"3A",X"CA",X"0C",X"90",X"62",X"20",X"30",X"CB",X"0C",X"BE",X"64",X"21",X"38",X"CD", + X"2C",X"9E",X"E5",X"21",X"2D",X"2E",X"E1",X"2B",X"AE",X"CA",X"2B",X"2E",X"E4",X"2B",X"10",X"C9", + X"0F",X"9E",X"63",X"21",X"0D",X"2E",X"61",X"32",X"6C",X"CA",X"9C",X"74",X"63",X"2C",X"D8",X"CC", + X"08",X"1C",X"E5",X"24",X"28",X"24",X"CC",X"C9",X"2D",X"7C",X"E1",X"20",X"62",X"CA",X"2D",X"D0", + X"61",X"2E",X"CC",X"CB",X"0C",X"E4",X"63",X"2C",X"4C",X"CC",X"0C",X"7A",X"64",X"2D",X"6C",X"CC", + X"2D",X"FC",X"E4",X"2C",X"BC",X"CD",X"0C",X"F4",X"E5",X"2C",X"2C",X"7C",X"E1",X"2B",X"62",X"C9", + X"0D",X"7A",X"63",X"2D",X"EC",X"CB",X"0D",X"2E",X"D8",X"C9",X"88",X"06",X"62",X"2E",X"26",X"CA", + X"2E",X"2C",X"E4",X"2E",X"30",X"CC",X"2E",X"92",X"E5",X"2E",X"28",X"21",X"78",X"C9",X"2D",X"50", + X"61",X"25",X"78",X"C9",X"0C",X"50",X"62",X"21",X"F0",X"CA",X"88",X"78",X"64",X"20",X"E8",X"CC", + X"08",X"74",X"E5",X"2F",X"A8",X"CD",X"09",X"2C",X"58",X"C9",X"2B",X"F8",X"E1",X"2B",X"C0",X"CA", + X"AB",X"78",X"44",X"2E",X"AE",X"14",X"41",X"2C",X"34",X"C9",X"8C",X"0C",X"42",X"2C",X"1C",X"CA", + X"2C",X"04",X"E2",X"8C",X"B4",X"42",X"2C",X"2C",X"E3",X"8C",X"84",X"43",X"2C",X"0C",X"E4",X"8C", + X"1C",X"CC",X"8C",X"8C",X"44",X"2C",X"14",X"CC",X"8C",X"14",X"45",X"2C",X"34",X"CD",X"8C",X"28", + X"09",X"BC",X"E2",X"8C",X"0E",X"41",X"2E",X"86",X"E1",X"8E",X"AC",X"42",X"2E",X"10",X"E2",X"8E", + X"8C",X"CC",X"8E",X"B8",X"44",X"2E",X"2E",X"CD",X"8E",X"8E",X"45",X"2E",X"8C",X"26",X"41",X"2F", + X"0E",X"44",X"2F",X"90",X"E1",X"8F",X"30",X"44",X"2F",X"A8",X"AC",X"41",X"0C",X"04",X"E1",X"AC", + X"8C",X"CC",X"8E",X"58",X"42",X"2E",X"44",X"CA",X"8E",X"B8",X"44",X"2E",X"CC",X"CD",X"AC",X"EC", + X"E5",X"AC",X"2C",X"0C",X"E1",X"AB",X"DA",X"42",X"0B",X"44",X"E2",X"AB",X"92",X"41",X"0B",X"8D", + X"BC",X"C9",X"8C",X"30",X"42",X"20",X"9A",X"CB",X"AE",X"24",X"44",X"3C",X"CE",X"CD",X"BA",X"28", + X"0B",X"98",X"E1",X"8D",X"26",X"41",X"2D",X"F4",X"E1",X"8C",X"AE",X"42",X"2D",X"10",X"E2",X"8D", + X"98",X"CC",X"8D",X"AE",X"44",X"2D",X"F0",X"CC",X"A8",X"70",X"45",X"20",X"0E",X"CD",X"8D",X"98", + X"E5",X"8D",X"2E",X"B8",X"E1",X"8E",X"26",X"41",X"2E",X"CE",X"E4",X"8E",X"18",X"44",X"2E",X"86", + X"44",X"2E",X"F0",X"CC",X"8E",X"22",X"8C",X"CD",X"8C",X"42",X"43",X"2C",X"18",X"CA",X"8C",X"7E", + X"E1",X"8B",X"BC",X"45",X"2C",X"04",X"E5",X"8C",X"64",X"41",X"2B",X"20",X"E2",X"8C",X"C6",X"43", + X"8C",X"BC",X"45",X"2C",X"A8",X"42",X"43",X"2E",X"18",X"CA",X"8E",X"7E",X"41",X"2E",X"FA",X"C9", + X"3A",X"C4",X"E1",X"9A",X"40",X"41",X"2E",X"26",X"E2",X"8E",X"F4",X"43",X"2E",X"8F",X"6C",X"41", + X"1C",X"E2",X"62",X"2D",X"FC",X"CA",X"8C",X"64",X"63",X"3C",X"4A",X"CC",X"0E",X"E8",X"64",X"24", + X"6C",X"CD",X"1C",X"2C",X"42",X"C9",X"2D",X"FA",X"E2",X"2D",X"4C",X"CB",X"2D",X"6C",X"E4",X"2D", + X"0F",X"68",X"61",X"3A",X"EC",X"C9",X"0E",X"EA",X"62",X"2E",X"DA",X"CB",X"0D",X"7A",X"64",X"2D", + X"64",X"CC",X"2D",X"62",X"E5",X"3A",X"2E",X"68",X"E0",X"32",X"76",X"C9",X"39",X"EA",X"E2",X"2D", + X"DA",X"CB",X"0D",X"7A",X"64",X"2D",X"EC",X"CA",X"89",X"2D",X"C8",X"C9",X"98",X"EE",X"62",X"32", + X"48",X"CB",X"18",X"EE",X"E4",X"32",X"48",X"CD",X"18",X"28",X"2C",X"6E",X"E1",X"30",X"98",X"CA", + X"1C",X"58",X"63",X"39",X"4E",X"CD",X"9A",X"29",X"4E",X"C9",X"19",X"20",X"8C",X"C9",X"0E",X"68", + X"E2",X"2F",X"04",X"C9",X"2E",X"E8",X"E2",X"2F",X"FC",X"CB",X"2F",X"20",X"E5",X"2F",X"F4",X"CB", + X"0F",X"A0",X"65",X"2F",X"88",X"68",X"62",X"2F",X"8C",X"C9",X"0E",X"A4",X"61",X"2E",X"68",X"CA", + X"2F",X"5C",X"E3",X"2E",X"08",X"CD",X"2F",X"DC",X"E3",X"2E",X"00",X"CD",X"2F",X"2F",X"6E",X"C9", + X"89",X"EE",X"61",X"21",X"06",X"CA",X"8A",X"8C",X"62",X"22",X"0E",X"CC",X"8A",X"AC",X"64",X"22", + X"78",X"CD",X"0F",X"2B",X"6E",X"C9",X"0C",X"FE",X"E1",X"24",X"56",X"C8",X"1A",X"2B",X"64",X"C9", + X"9C",X"34",X"63",X"2C",X"64",X"CC",X"9C",X"28",X"8E",X"4C",X"61",X"2D",X"4C",X"CB",X"0D",X"4C", + X"E4",X"2D",X"3C",X"C9",X"2D",X"1C",X"E2",X"2D",X"3C",X"CC",X"2D",X"1C",X"E5",X"2D",X"24",X"C9", + X"0D",X"8C",X"62",X"2D",X"2C",X"CC",X"0D",X"8C",X"65",X"2D",X"74",X"C9",X"0D",X"FC",X"63",X"2D", + X"F4",X"CC",X"2D",X"2C",X"EC",X"C9",X"0D",X"34",X"E1",X"3B",X"24",X"C9",X"3B",X"D4",X"E1",X"25", + X"A8",X"EC",X"41",X"35",X"84",X"CB",X"BD",X"66",X"42",X"2C",X"E4",X"CA",X"8C",X"26",X"44",X"2C", + X"04",X"44",X"2C",X"44",X"E4",X"BD",X"F4",X"45",X"0D",X"AB",X"68",X"41",X"0F",X"EE",X"E2",X"8C", + X"DC",X"CA",X"8C",X"E4",X"42",X"2C",X"D2",X"CA",X"8C",X"26",X"44",X"2C",X"9C",X"CC",X"8C",X"A4", + X"E4",X"8C",X"32",X"44",X"2C",X"6C",X"E5",X"8C",X"F4",X"45",X"2C",X"A9",X"18",X"41",X"09",X"AC", + X"42",X"22",X"A0",X"CA",X"8E",X"2E",X"43",X"2C",X"80",X"CB",X"8C",X"BA",X"43",X"2E",X"4A",X"CC", + X"0B",X"60",X"E4",X"A9",X"BE",X"45",X"0A",X"8D",X"00",X"41",X"2D",X"AC",X"E2",X"AC",X"FE",X"44", + X"8C",X"C0",X"44",X"2C",X"92",X"CA",X"AC",X"2C",X"FC",X"CB",X"8C",X"38",X"45",X"2C",X"A0",X"CD", + X"2C",X"B4",X"E5",X"8C",X"28",X"8D",X"1C",X"41",X"1B",X"A4",X"E2",X"B8",X"64",X"43",X"18",X"E6", + X"44",X"3F",X"04",X"CD",X"9F",X"2B",X"84",X"C9",X"9B",X"32",X"42",X"2D",X"FA",X"CC",X"AA",X"3C", + X"0C",X"41",X"2D",X"BC",X"E1",X"8D",X"04",X"41",X"2D",X"B4",X"E1",X"8D",X"2C",X"42",X"2D",X"9C", + X"42",X"2D",X"84",X"CA",X"8D",X"BC",X"42",X"2D",X"AC",X"CB",X"8D",X"34",X"43",X"2D",X"A4",X"CB", + X"2D",X"B4",X"E3",X"8D",X"2C",X"44",X"2D",X"9C",X"E4",X"8D",X"24",X"44",X"2D",X"94",X"E4",X"8D", + X"AC",X"CD",X"8D",X"34",X"45",X"2D",X"A4",X"CD",X"8D",X"B4",X"45",X"2D",X"88",X"24",X"CE",X"C9", + X"2C",X"DE",X"E1",X"8C",X"66",X"41",X"2C",X"D6",X"E1",X"8C",X"0C",X"43",X"2C",X"BC",X"E3",X"8C", + X"A4",X"CB",X"8C",X"B4",X"43",X"2C",X"4A",X"CC",X"8C",X"5A",X"44",X"2C",X"42",X"CC",X"8C",X"DA", + X"E4",X"8C",X"0C",X"EC",X"E1",X"A8",X"5C",X"41",X"08",X"E4",X"E1",X"A8",X"54",X"41",X"08",X"8A", + X"63",X"20",X"1A",X"CB",X"88",X"AA",X"63",X"20",X"3A",X"CB",X"88",X"40",X"64",X"20",X"D0",X"CC", + X"08",X"C0",X"E4",X"20",X"D0",X"CC",X"08",X"2B",X"5C",X"C9",X"2C",X"A4",X"E3",X"2E",X"E8",X"CC", + X"88",X"28",X"8F",X"76",X"61",X"2B",X"FE",X"C9",X"0B",X"36",X"62",X"2B",X"BE",X"CA",X"0B",X"46", + X"E2",X"2B",X"8E",X"CB",X"2B",X"C6",X"E2",X"2B",X"86",X"CB",X"2B",X"F6",X"E4",X"2B",X"16",X"CD", + X"0B",X"1C",X"65",X"2B",X"5C",X"CE",X"0B",X"80",X"65",X"2B",X"E8",X"CE",X"0B",X"34",X"64",X"2D", + X"0E",X"6A",X"E1",X"2C",X"56",X"C9",X"2C",X"76",X"E1",X"2C",X"62",X"C9",X"2C",X"46",X"E2",X"2C", + X"52",X"CA",X"0C",X"C6",X"62",X"2C",X"72",X"CA",X"0C",X"6A",X"64",X"2C",X"FE",X"CC",X"0C",X"1C", + X"E5",X"2C",X"98",X"CD",X"2C",X"80",X"E5",X"2C",X"84",X"CD",X"2C",X"21",X"78",X"C9",X"38",X"16", + X"62",X"2A",X"8A",X"CB",X"0C",X"A6",X"63",X"2C",X"D0",X"CB",X"88",X"4C",X"64",X"2C",X"74",X"CC", + X"2C",X"1A",X"E5",X"2C",X"A0",X"CD",X"2F",X"23",X"EC",X"CC",X"2C",X"22",X"E3",X"20",X"78",X"C9", + X"88",X"1A",X"65",X"2D",X"D0",X"CB",X"88",X"16",X"62",X"2E",X"20",X"CA",X"0E",X"CE",X"63",X"20", + X"46",X"C9",X"08",X"BC",X"E3",X"20",X"D2",X"CC",X"08",X"3F",X"6E",X"C9",X"2B",X"7E",X"E1",X"2B", + X"0E",X"CA",X"8B",X"EE",X"61",X"2B",X"7E",X"C9",X"0B",X"AE",X"62",X"23",X"1C",X"CB",X"8D",X"5C", + X"E3",X"25",X"10",X"CB",X"09",X"D0",X"E3",X"21",X"C6",X"CC",X"3B",X"6A",X"E5",X"2B",X"6A",X"CE", + X"0B",X"62",X"65",X"2B",X"C2",X"CD",X"0B",X"56",X"64",X"2B",X"DE",X"CD",X"0B",X"FA",X"65",X"2B", + X"F2",X"CD",X"2B",X"FA",X"E6",X"2B",X"52",X"CD",X"2B",X"D2",X"E5",X"2B",X"52",X"CE",X"2B",X"3F", + X"2A",X"C8",X"8C",X"1E",X"40",X"2C",X"CE",X"C9",X"8C",X"72",X"41",X"2C",X"22",X"C8",X"8C",X"9E", + X"E0",X"8C",X"66",X"41",X"2C",X"F2",X"E1",X"8C",X"08",X"43",X"2C",X"9C",X"E3",X"8C",X"04",X"43", + X"8C",X"B0",X"43",X"2C",X"CA",X"CD",X"8D",X"4E",X"45",X"2B",X"EA",X"CD",X"8D",X"66",X"45",X"2D", + X"FA",X"44",X"2F",X"7E",X"E4",X"8B",X"E2",X"44",X"2B",X"66",X"E4",X"8F",X"72",X"45",X"2B",X"56", + X"45",X"2B",X"F2",X"CD",X"8D",X"05",X"A6",X"9C",X"A6",X"4D",X"A6",X"4E",X"A6",X"59",X"A6",X"50", + X"06",X"41",X"06",X"62",X"06",X"51",X"06",X"54",X"06",X"73",X"06",X"88",X"07",X"8F",X"07",X"98", + X"A7",X"3D",X"A7",X"AA",X"A7",X"AB",X"A7",X"AC",X"A7",X"BD",X"A7",X"B6",X"A7",X"6F",X"A7",X"70", + X"07",X"C3",X"07",X"F0",X"07",X"09",X"07",X"2A",X"07",X"1B",X"07",X"3C",X"07",X"05",X"07",X"26", + X"A7",X"9F",X"A7",X"48",X"A7",X"41",X"A7",X"41",X"A7",X"41",X"A7",X"41",X"A7",X"3B",X"8A",X"C9", + X"2E",X"41",X"0E",X"41",X"12",X"41",X"8E",X"42",X"BA",X"42",X"82",X"42",X"86",X"42",X"B6",X"42", + X"32",X"CA",X"8A",X"CC",X"8E",X"CC",X"AE",X"CC",X"A2",X"CC",X"08",X"CD",X"0E",X"CD",X"2A",X"CD", + X"B6",X"45",X"92",X"45",X"08",X"08",X"E1",X"88",X"E3",X"08",X"E4",X"7C",X"E3",X"40",X"E3",X"34", + X"41",X"B4",X"43",X"94",X"44",X"28",X"8D",X"26",X"44",X"3A",X"44",X"30",X"41",X"36",X"41",X"AE", + X"E1",X"8B",X"9A",X"42",X"9E",X"42",X"84",X"45",X"2C",X"2C",X"E3",X"18",X"E3",X"3C",X"E4",X"00", + X"44",X"2C",X"1A",X"CA",X"1A",X"CD",X"30",X"CA",X"10",X"CD",X"8B",X"02",X"43",X"56",X"43",X"B8", + X"E4",X"89",X"B4",X"45",X"2B",X"DE",X"E3",X"C6",X"E3",X"D6",X"E3",X"8A",X"08",X"43",X"84",X"41", + X"0B",X"0C",X"64",X"E6",X"63",X"FA",X"63",X"2C",X"16",X"C9",X"16",X"CB",X"26",X"C9",X"26",X"CB", + X"2A",X"00",X"E1",X"9C",X"E1",X"2E",X"BA",X"C8",X"BE",X"C8",X"08",X"CB",X"34",X"CB",X"7C",X"CC", + X"EA",X"CC",X"08",X"28",X"88",X"18",X"61",X"42",X"62",X"2C",X"64",X"1C",X"64",X"80",X"64",X"84", + X"E1",X"DA",X"E2",X"B0",X"E4",X"2C",X"58",X"CA",X"64",X"CA",X"7C",X"CC",X"58",X"CC",X"2C",X"EE", + X"61",X"74",X"62",X"7C",X"63",X"64",X"64",X"20",X"48",X"C9",X"48",X"CB",X"00",X"CD",X"DC",X"CC", + X"60",X"CC",X"54",X"C9",X"54",X"CB",X"94",X"CD",X"2D",X"5A",X"E2",X"7E",X"E4",X"72",X"E4",X"EC", + X"64",X"E0",X"64",X"22",X"6A",X"C9",X"6E",X"C9",X"56",X"CA",X"D2",X"CA",X"8A",X"CC",X"8E",X"CC", + X"02",X"CC",X"06",X"CC",X"D0",X"CA",X"D4",X"CA",X"2C",X"3C",X"E3",X"AE",X"E3",X"00",X"E5",X"9A", + X"65",X"2C",X"52",X"CB",X"56",X"CB",X"E0",X"CB",X"E4",X"CB",X"0C",X"60",X"62",X"40",X"63",X"FE", + X"E2",X"DE",X"E3",X"2C",X"18",X"CA",X"D8",X"CB",X"26",X"CA",X"E6",X"CB",X"2C",X"58",X"E3",X"5C", + X"63",X"C0",X"63",X"C4",X"63",X"2C",X"06",X"CA",X"82",X"CA",X"32",X"CA",X"36",X"CA",X"0C",X"E6", + X"E2",X"FA",X"E2",X"86",X"E4",X"9A",X"E4",X"2C",X"AE",X"CD",X"8A",X"CD",X"B2",X"CD",X"B6",X"CD", + X"0C",X"48",X"61",X"4C",X"61",X"C8",X"61",X"CC",X"61",X"28",X"09",X"2E",X"08",X"28",X"0D",X"2B", + X"28",X"2C",X"0E",X"2F",X"28",X"20",X"09",X"22",X"28",X"23",X"0C",X"25",X"28",X"2A",X"0F",X"38", + X"08",X"39",X"1A",X"3B",X"08",X"3C",X"1D",X"3E",X"08",X"3F",X"98",X"31",X"08",X"32",X"9B",X"34", + X"28",X"35",X"1E",X"37",X"28",X"A8",X"21",X"AA",X"28",X"AB",X"0E",X"22",X"08",X"2C",X"BC",X"35", + X"1B",X"AF",X"19",X"B7",X"84",X"F7",X"57",X"0F",X"AB",X"0F",X"57",X"F7",X"57",X"F7",X"73",X"FF", + X"F7",X"F7",X"F7",X"F7",X"F7",X"97",X"97",X"97",X"97",X"97",X"F7",X"F7",X"F7",X"97",X"97",X"97", + X"15",X"B7",X"17",X"F7",X"17",X"FF",X"75",X"FF",X"77",X"F7",X"17",X"B7",X"17",X"F7",X"57",X"FD", + X"F7",X"D7",X"F1",X"F7",X"F1",X"F7",X"F7",X"91",X"F7",X"F7",X"F7",X"F7",X"F7",X"F7",X"97",X"97", + X"17",X"B7",X"A8",X"F7",X"57",X"F7",X"77",X"FF",X"17",X"FF",X"77",X"FF",X"17",X"B5",X"77",X"FF", + X"D7",X"F7",X"F7",X"F5",X"F7",X"F7",X"F7",X"F7",X"F7",X"97",X"97",X"D5",X"D7",X"F7",X"97",X"97", + X"77",X"FF",X"17",X"B5",X"77",X"F7",X"17",X"B7",X"57",X"F7",X"75",X"B7",X"17",X"B7",X"77",X"FD", + X"F7",X"F7",X"D7",X"97",X"97",X"97",X"97",X"D7",X"D7",X"F7",X"F7",X"D7",X"97",X"F7",X"D7",X"97", + X"17",X"B3",X"57",X"B7",X"17",X"B7",X"13",X"B3",X"17",X"B7",X"17",X"B7",X"17",X"F7",X"57",X"F7", + X"F7",X"D1",X"F7",X"D7",X"D7",X"F7",X"D7",X"D7",X"D7",X"97",X"97",X"97",X"97",X"F7",X"F7",X"F1", + X"77",X"F7",X"57",X"FF",X"77",X"FF",X"77",X"FF",X"77",X"FF",X"77",X"FF",X"77",X"FF",X"77",X"FF", + X"D7",X"D7",X"97",X"91",X"F7",X"D7",X"D7",X"97",X"D7",X"97",X"F1",X"F7",X"F7",X"97",X"97",X"97", + X"57",X"B1",X"57",X"F7",X"77",X"FF",X"71",X"B7",X"17",X"B7",X"77",X"B7",X"77",X"F9",X"77",X"FF", + X"F1",X"F7",X"F7",X"F7",X"D7",X"D7",X"D7",X"D7",X"C8",X"CB",X"C9",X"CC",X"CA",X"CD",X"C8",X"CB", + X"C6",X"E0",X"C7",X"E1",X"C0",X"E4",X"42",X"E5",X"43",X"E6",X"C0",X"71",X"47",X"72",X"D0",X"73", + X"C8",X"DE",X"DC",X"DF",X"DD",X"D0",X"C8",X"D3",X"D1",X"D4",X"D2",X"D5",X"2E",X"18",X"CA",X"2A", + X"0A",X"A6",X"62",X"0A",X"0A",X"58",X"64",X"0A",X"0A",X"EE",X"64",X"0A",X"0A",X"08",X"66",X"0E", + X"2A",X"BE",X"E6",X"2D",X"2A",X"2F",X"A8",X"C9",X"29",X"2A",X"A8",X"CC",X"29",X"2A",X"38",X"CB", + X"09",X"0A",X"56",X"65",X"09",X"0A",X"20",X"61",X"09",X"0A",X"E2",X"65",X"09",X"0A",X"38",X"63", + X"29",X"2A",X"09",X"68",X"E3",X"2C",X"2A",X"7E",X"E3",X"23",X"2A",X"F2",X"E3",X"2B",X"2A",X"28", + X"65",X"89",X"0E",X"38",X"65",X"88",X"0E",X"CA",X"60",X"0F",X"0D",X"EA",X"60",X"0F",X"0D",X"80", + X"E1",X"21",X"2A",X"80",X"E1",X"21",X"2A",X"28",X"28",X"A8",X"6A",X"BA",X"6A",X"BA",X"6A",X"BA", + X"4A",X"3A",X"4A",X"3A",X"4A",X"3A",X"4A",X"3A",X"4A",X"3A",X"59",X"3A",X"AE",X"3A",X"AE",X"3A", + X"15",X"BA",X"01",X"BA",X"01",X"BA",X"01",X"BA",X"01",X"BA",X"01",X"BA",X"01",X"BA",X"B2",X"67", + X"32",X"CF",X"C8",X"58",X"C8",X"58",X"C8",X"58",X"C8",X"58",X"3B",X"3A",X"68",X"5A",X"68",X"5A", + X"7E",X"BA",X"7E",X"BA",X"7E",X"BA",X"7E",X"BA",X"5B",X"BA",X"10",X"BA",X"10",X"BA",X"09",X"7B", + X"89",X"5B",X"5E",X"3A",X"5E",X"3A",X"5E",X"3A",X"5E",X"3A",X"59",X"3A",X"CC",X"3A",X"CC",X"3A", + X"4C",X"BA",X"4C",X"BA",X"4C",X"BA",X"4C",X"BA",X"4C",X"BA",X"4C",X"BA",X"4C",X"BA",X"4C",X"BA", + X"CC",X"3A",X"CC",X"3A",X"CC",X"3A",X"CC",X"3A",X"CC",X"3A",X"CC",X"3A",X"CC",X"3A",X"CC",X"3A", + X"4C",X"BA",X"4C",X"BA",X"7E",X"BA",X"6F",X"BA",X"5B",X"BA",X"64",X"76",X"1A",X"BA",X"1F",X"BA", + X"9F",X"3A",X"9F",X"3A",X"9F",X"3A",X"9F",X"3A",X"9F",X"3A",X"2C",X"3A",X"E9",X"DE",X"EE",X"DE", + X"46",X"76",X"46",X"76",X"46",X"76",X"46",X"76",X"46",X"76",X"50",X"76",X"73",X"76",X"55",X"76", + X"FE",X"3A",X"FE",X"3A",X"FE",X"3A",X"FE",X"3A",X"FE",X"3A",X"FE",X"3A",X"FE",X"3A",X"FE",X"3A", + X"7E",X"BA",X"7E",X"BA",X"7E",X"BA",X"7E",X"BA",X"73",X"BA",X"98",X"E8",X"BA",X"80",X"BC",X"99", + X"1E",X"3B",X"F1",X"BB",X"91",X"08",X"B4",X"D3",X"B4",X"30",X"E9",X"3C",X"4D",X"4D",X"A8",X"4A", + X"E0",X"9D",X"60",X"08",X"F7",X"BA",X"60",X"6A",X"98",X"64",X"BB",X"DC",X"69",X"28",X"28",X"28", + X"2E",X"5B",X"90",X"B7",X"B3",X"79",X"33",X"30",X"63",X"3B",X"FA",X"49",X"88",X"34",X"B3",X"68", + X"68",X"08",X"BC",X"BC",X"BF",X"BD",X"08",X"6B",X"BB",X"8F",X"BC",X"08",X"6B",X"BB",X"4E",X"32", + X"29",X"8B",X"78",X"08",X"67",X"3A",X"AC",X"E9",X"B9",X"C8",X"3F",X"C6",X"26",X"39",X"27",X"3B", + X"D8",X"C8",X"48",X"B7",X"A6",X"AD",X"C7",X"28",X"85",X"D7",X"96",X"84",X"33",X"2F",X"AA",X"2C", + X"28",X"98",X"A8",X"3B",X"B3",X"09",X"F0",X"48",X"28",X"88",X"30",X"08",X"B3",X"3B",X"A9",X"10", + X"68",X"24",X"20",X"70",X"28",X"BB",X"BB",X"29",X"58",X"68",X"26",X"20",X"E0",X"28",X"BB",X"BB", + X"A9",X"38",X"E9",X"1D",X"2A",X"C0",X"A8",X"3B",X"B3",X"09",X"80",X"49",X"38",X"8A",X"C6",X"08", + X"BB",X"BB",X"29",X"FA",X"6A",X"32",X"22",X"D2",X"28",X"BB",X"BB",X"29",X"EA",X"6B",X"32",X"22", + X"52",X"08",X"B3",X"3B",X"A9",X"6E",X"EC",X"9A",X"2A",X"F2",X"A8",X"3B",X"B3",X"09",X"62",X"4D", + X"32",X"22",X"D2",X"28",X"BB",X"BB",X"29",X"E6",X"6E",X"31",X"23",X"20",X"29",X"BB",X"BB",X"29", + X"F2",X"4F",X"BF",X"8C",X"28",X"09",X"B3",X"3B",X"A9",X"05",X"68",X"99",X"2A",X"70",X"A8",X"3B", + X"BB",X"29",X"11",X"61",X"32",X"22",X"D2",X"28",X"BB",X"BB",X"29",X"1B",X"62",X"32",X"21",X"C9", + X"08",X"3B",X"3B",X"09",X"17",X"CB",X"9C",X"89",X"73",X"08",X"3B",X"3B",X"09",X"01",X"CC",X"9A", + X"0A",X"D2",X"28",X"BB",X"33",X"29",X"55",X"65",X"1A",X"22",X"D2",X"28",X"33",X"BB",X"29",X"09", + X"CE",X"9A",X"8A",X"F2",X"08",X"3B",X"3B",X"09",X"05",X"CF",X"99",X"8A",X"70",X"08",X"3B",X"3B", + X"29",X"01",X"78",X"9C",X"28",X"3C",X"1D",X"AE",X"07",X"BF",X"17",X"D7",X"2D",X"AD",X"05",X"BD", + X"A5",X"B7",X"74",X"8E",X"0F",X"DB",X"08",X"5F",X"3C",X"09",X"08",X"08",X"18",X"19",X"F7",X"08", + X"5B",X"BB",X"2C",X"51",X"0C",X"C1",X"0D",X"D1",X"0E",X"C1",X"0D",X"A0",X"28",X"2C",X"24",X"2F", + X"6F",X"27",X"67",X"E7",X"F7",X"24",X"E4",X"50",X"65",X"00",X"24",X"8C",X"89",X"6B",X"08",X"70", + X"33",X"29",X"D2",X"23",X"0A",X"21",X"79",X"28",X"F0",X"BB",X"29",X"EE",X"0C",X"24",X"2E",X"6A", + X"08",X"60",X"3B",X"0A",X"6B",X"1B",X"32",X"9F",X"8C",X"0E",X"4A",X"08",X"60",X"3B",X"0A",X"A3", + X"3B",X"D2",X"1F",X"23",X"2E",X"B4",X"28",X"C8",X"33",X"2A",X"F3",X"3B",X"6A",X"A8",X"0B",X"2E", + X"BC",X"08",X"60",X"3B",X"0A",X"3D",X"1C",X"04",X"28",X"8A",X"0E",X"3E",X"08",X"60",X"3B",X"0A", + X"77",X"3C",X"EE",X"A8",X"0B",X"2E",X"14",X"28",X"E0",X"BB",X"2A",X"7D",X"3D",X"2A",X"21",X"22", + X"0D",X"AD",X"08",X"60",X"3B",X"0A",X"17",X"1D",X"4C",X"29",X"8C",X"0D",X"3F",X"08",X"60",X"3B", + X"2A",X"41",X"3D",X"FE",X"21",X"24",X"2D",X"BF",X"28",X"C8",X"33",X"2A",X"2D",X"3E",X"B2",X"A9", + X"08",X"F7",X"B7",X"BF",X"3E",X"AD",X"2C",X"08",X"3F",X"AF",X"2E",X"A5",X"A4",X"23",X"08",X"B8", + X"28",X"D5",X"24",X"2F",X"05",X"D7",X"76",X"8D",X"28",X"28",X"28",X"28",X"28",X"28",X"28",X"28", + X"BA",X"0E",X"E6",X"08",X"FF",X"3C",X"A9",X"14",X"27",X"19",X"AE",X"68",X"A8",X"5F",X"B4",X"09", + X"28",X"B8",X"38",X"2E",X"72",X"28",X"7F",X"BC",X"29",X"EE",X"B8",X"39",X"2E",X"E8",X"28",X"7F", + X"B4",X"09",X"CE",X"38",X"A8",X"3C",X"29",X"3C",X"BA",X"3C",X"3B",X"3C",X"3B",X"3C",X"BA",X"3C", + X"21",X"BC",X"28",X"BC",X"3A",X"2E",X"EE",X"28",X"7F",X"BC",X"2B",X"28",X"28",X"28",X"28",X"99", + X"33",X"1A",X"AE",X"6E",X"A8",X"6F",X"B4",X"0A",X"A8",X"08",X"A8",X"08",X"BA",X"0E",X"E6",X"08", + X"7F",X"BC",X"2A",X"04",X"29",X"D0",X"29",X"28",X"D8",X"C8",X"48",X"B7",X"A6",X"AD",X"C7",X"68", + X"56",X"F7",X"16",X"A4",X"3B",X"0F",X"A2",X"08",X"57",X"7F",X"F7",X"7E",X"F7",X"7F",X"47",X"2D", + X"84",X"9D",X"96",X"CD",X"88",X"2F",X"AA",X"26",X"22",X"0A",X"28",X"7F",X"BC",X"2A",X"EC",X"2A", + X"D0",X"0A",X"BA",X"8A",X"02",X"08",X"FF",X"3C",X"AA",X"DC",X"AD",X"DC",X"AD",X"18",X"AE",X"DA", + X"28",X"7F",X"BC",X"2A",X"44",X"28",X"A4",X"29",X"38",X"2E",X"72",X"28",X"7F",X"BC",X"2C",X"38", + X"AE",X"78",X"AE",X"50",X"AE",X"38",X"AF",X"49",X"5D",X"76",X"BE",X"34",X"5D",X"F7",X"BE",X"C6", + X"2B",X"A0",X"21",X"5D",X"56",X"25",X"14",X"C6",X"2B",X"5D",X"77",X"25",X"12",X"28",X"4C",X"C6", + X"A9",X"EF",X"5D",X"76",X"A8",X"C6",X"56",X"90",X"5D",X"F7",X"A8",X"22",X"AF",X"44",X"5D",X"F5", + X"2F",X"5D",X"74",X"20",X"54",X"56",X"2A",X"D8",X"EB",X"8C",X"6B",X"5D",X"34",X"3E",X"DD",X"76", + X"BE",X"C6",X"AF",X"A0",X"29",X"5D",X"D6",X"1F",X"94",X"C6",X"AF",X"5D",X"F7",X"1F",X"4D",X"D4", + X"FA",X"A1",X"AC",X"BC",X"CD",X"66",X"68",X"32",X"20",X"4C",X"D6",X"2A",X"F8",X"4D",X"8C",X"6B", + X"92",X"88",X"44",X"87",X"68",X"32",X"0F",X"44",X"DE",X"28",X"78",X"A1",X"3F",X"3D",X"A2",X"0B", + X"EC",X"3F",X"32",X"6D",X"E8",X"B2",X"3A",X"4C",X"32",X"DA",X"EE",X"49",X"DD",X"B4",X"3E",X"5D", + X"D6",X"1E",X"EE",X"0F",X"6A",X"24",X"4B",X"5D",X"D6",X"8D",X"94",X"56",X"0B",X"30",X"0A",X"36", + X"29",X"5D",X"77",X"25",X"EB",X"8C",X"6B",X"5D",X"CB",X"28",X"7E",X"4A",X"CA",X"BD",X"12",X"A9", + X"40",X"87",X"4A",X"C2",X"3D",X"32",X"1E",X"44",X"94",X"B2",X"1E",X"44",X"EE",X"0B",X"68",X"32", + X"3F",X"4C",X"14",X"B2",X"3F",X"4C",X"D6",X"30",X"30",X"EC",X"D6",X"2B",X"20",X"60",X"DD",X"ED", + X"5D",X"A1",X"28",X"44",X"4D",X"AA",X"4C",X"5D",X"4B",X"08",X"B6",X"5D",X"A1",X"48",X"44",X"4D", + X"02",X"6C",X"DD",X"4B",X"28",X"96",X"DD",X"A1",X"60",X"4C",X"CD",X"A2",X"6C",X"5D",X"CB",X"28", + X"B6",X"5D",X"A1",X"08",X"46",X"4D",X"AA",X"4C",X"5D",X"4B",X"08",X"A6",X"5D",X"A1",X"28",X"46", + X"CD",X"A2",X"6C",X"5D",X"CB",X"28",X"96",X"5D",X"21",X"68",X"EE",X"4D",X"02",X"6C",X"DD",X"4B", + X"08",X"B6",X"5D",X"C1",X"96",X"0F",X"EE",X"0F",X"A1",X"36",X"3D",X"6F",X"26",X"08",X"01",X"76", + X"32",X"25",X"EC",X"6B",X"A4",X"6B",X"28",X"28",X"29",X"2A",X"2B",X"2A",X"2B",X"2A",X"DD",X"4B", + X"08",X"16",X"96",X"F7",X"B2",X"3F",X"40",X"CB",X"AE",X"89",X"4D",X"48",X"4D",X"CA",X"E0",X"3D", + X"12",X"AC",X"E8",X"DE",X"29",X"B0",X"2F",X"94",X"32",X"AC",X"E8",X"6B",X"C4",X"BD",X"BF",X"B2", + X"29",X"40",X"B2",X"28",X"40",X"CB",X"1E",X"B8",X"3F",X"B2",X"2C",X"40",X"92",X"0E",X"44",X"56", + X"2B",X"80",X"0B",X"AF",X"00",X"20",X"12",X"21",X"EC",X"7E",X"08",X"6B",X"29",X"BE",X"12",X"21", + X"CC",X"4D",X"97",X"BF",X"21",X"48",X"A8",X"BE",X"AB",X"78",X"4B",X"E6",X"4A",X"18",X"B6",X"3C", + X"CB",X"AB",X"3D",X"20",X"2C",X"29",X"EB",X"22",X"BE",X"4D",X"DD",X"B2",X"CB",X"E6",X"CA",X"AA", + X"B6",X"3C",X"4B",X"AB",X"BF",X"2E",X"88",X"32",X"BD",X"40",X"AF",X"20",X"7A",X"2E",X"E9",X"97", + X"C5",X"EA",X"56",X"A3",X"0E",X"68",X"E6",X"D8",X"D6",X"48",X"20",X"63",X"12",X"A9",X"48",X"87", + X"4A",X"07",X"B6",X"32",X"20",X"40",X"AF",X"A0",X"36",X"C5",X"7D",X"2E",X"A0",X"BE",X"28",X"A1", + X"32",X"4B",X"CB",X"EE",X"00",X"26",X"0E",X"32",X"B7",X"45",X"6A",X"4B",X"56",X"20",X"2A",X"4B", + X"7E",X"29",X"06",X"28",X"35",X"20",X"AC",X"29",X"6B",X"5A",X"B6",X"36",X"A9",X"B2",X"20",X"40", + X"32",X"A1",X"48",X"9F",X"32",X"A3",X"48",X"32",X"BE",X"48",X"A7",X"A0",X"2D",X"36",X"25",X"B2", + X"B6",X"40",X"79",X"C1",X"21",X"48",X"A8",X"97",X"CD",X"EA",X"4B",X"E6",X"4A",X"10",X"B6",X"3C", + X"CB",X"AB",X"CD",X"DD",X"B2",X"2E",X"68",X"BE",X"2B",X"4B",X"66",X"4A",X"17",X"BE",X"1C",X"BD", + X"4A",X"A1",X"B6",X"4B",X"23",X"29",X"6B",X"91",X"B6",X"9F",X"B2",X"2A",X"C8",X"73",X"EE",X"70", + X"D6",X"48",X"30",X"20",X"D6",X"F8",X"00",X"2C",X"D6",X"E8",X"20",X"AB",X"12",X"A9",X"48",X"87", + X"80",X"8D",X"92",X"9A",X"C8",X"C6",X"2E",X"56",X"2C",X"B0",X"BC",X"56",X"28",X"30",X"B8",X"32", + X"DA",X"4E",X"CB",X"77",X"20",X"67",X"3E",X"58",X"EE",X"20",X"C5",X"EC",X"EB",X"3E",X"BF",X"73", + X"EE",X"98",X"DE",X"98",X"80",X"18",X"D3",X"C6",X"2F",X"56",X"AB",X"20",X"29",X"56",X"AE",X"20", + X"2D",X"56",X"2F",X"CA",X"A2",X"BF",X"12",X"A9",X"48",X"87",X"00",X"25",X"12",X"32",X"48",X"C6", + X"8E",X"56",X"88",X"B0",X"2D",X"56",X"0C",X"30",X"29",X"32",X"72",X"46",X"4B",X"77",X"80",X"1D", + X"C5",X"64",X"EE",X"20",X"3E",X"B8",X"32",X"DA",X"EE",X"D2",X"32",X"C3",X"EE",X"92",X"E0",X"4E", + X"4B",X"1F",X"B2",X"60",X"46",X"36",X"09",X"B2",X"2A",X"40",X"D3",X"C6",X"39",X"56",X"39",X"4A", + X"C3",X"BF",X"D6",X"B8",X"CA",X"C3",X"37",X"DE",X"39",X"4A",X"C3",X"BF",X"D6",X"A8",X"20",X"22", + X"92",X"0E",X"44",X"87",X"4A",X"E3",X"3F",X"CB",X"5D",X"3F",X"DE",X"09",X"A0",X"0F",X"92",X"0E", + X"EC",X"AF",X"CA",X"C3",X"37",X"3F",X"32",X"A9",X"E8",X"D3",X"E6",X"04",X"D6",X"04",X"00",X"EB", + X"DE",X"80",X"80",X"DF",X"DE",X"8C",X"80",X"DB",X"92",X"28",X"40",X"87",X"6A",X"1E",X"B8",X"32", + X"21",X"48",X"A7",X"6A",X"3E",X"B0",X"53",X"EE",X"6A",X"4A",X"B1",X"BF",X"D6",X"6A",X"00",X"B3", + X"92",X"2A",X"40",X"87",X"A0",X"AB",X"26",X"08",X"D3",X"56",X"48",X"20",X"0D",X"AC",X"DE",X"0A", + X"20",X"A1",X"12",X"2E",X"EC",X"DE",X"2A",X"B0",X"22",X"96",X"18",X"4B",X"68",X"A0",X"2A",X"CD", + X"64",X"B2",X"72",X"46",X"92",X"60",X"46",X"4B",X"1F",X"B2",X"60",X"46",X"96",X"00",X"B2",X"2A", + X"E8",X"3F",X"32",X"A8",X"E8",X"B2",X"21",X"48",X"EB",X"3E",X"10",X"92",X"3C",X"4C",X"CB",X"D7", + X"4A",X"E3",X"3F",X"32",X"28",X"40",X"AF",X"CA",X"1E",X"B8",X"96",X"09",X"B2",X"28",X"40",X"AE", + X"2B",X"D3",X"E6",X"6A",X"00",X"2A",X"2E",X"23",X"12",X"2E",X"EC",X"DE",X"2A",X"B0",X"2B",X"24", + X"24",X"AC",X"92",X"89",X"44",X"C6",X"F0",X"88",X"6B",X"18",X"B8",X"32",X"29",X"40",X"AF",X"CA", + X"3E",X"B0",X"16",X"29",X"32",X"A9",X"E8",X"06",X"29",X"92",X"2E",X"4C",X"D6",X"2A",X"20",X"2F", + X"D3",X"C6",X"EA",X"20",X"AA",X"2E",X"29",X"32",X"29",X"44",X"EE",X"F0",X"4A",X"1E",X"30",X"99", + X"32",X"21",X"4C",X"4D",X"29",X"B3",X"12",X"A0",X"48",X"87",X"00",X"22",X"12",X"A9",X"48",X"87", + X"6A",X"23",X"30",X"CB",X"2E",X"B9",X"3F",X"B2",X"A3",X"40",X"4D",X"0C",X"2C",X"27",X"B2",X"BE", + X"48",X"C6",X"2E",X"A0",X"20",X"32",X"32",X"4C",X"E6",X"F6",X"32",X"32",X"4C",X"32",X"A9",X"48", + X"AF",X"4A",X"15",X"B8",X"4D",X"09",X"33",X"5D",X"4B",X"08",X"FE",X"CA",X"5E",X"BA",X"92",X"BE", + X"48",X"C6",X"2E",X"20",X"A6",X"32",X"32",X"4C",X"CB",X"EF",X"20",X"3B",X"F6",X"29",X"32",X"32", + X"CC",X"36",X"DF",X"B2",X"BC",X"44",X"3F",X"B2",X"A1",X"40",X"96",X"04",X"4D",X"3D",X"ED",X"32", + X"32",X"4C",X"CB",X"77",X"20",X"25",X"F6",X"08",X"32",X"32",X"4C",X"36",X"29",X"B2",X"AB",X"48", + X"6B",X"B5",X"30",X"32",X"A2",X"40",X"EE",X"09",X"A0",X"1B",X"92",X"72",X"CE",X"87",X"80",X"8D", + X"6F",X"32",X"C4",X"4E",X"E6",X"08",X"50",X"20",X"30",X"C6",X"08",X"20",X"30",X"32",X"DA",X"4E", + X"AF",X"A0",X"AF",X"9F",X"A1",X"3C",X"B4",X"CB",X"3B",X"B9",X"3F",X"A1",X"6C",X"3C",X"6B",X"9B", + X"B1",X"C6",X"08",X"20",X"C0",X"36",X"2B",X"A1",X"0A",X"BC",X"EB",X"33",X"B1",X"4D",X"92",X"FB", + X"26",X"08",X"4D",X"D4",X"F2",X"32",X"29",X"44",X"DE",X"C3",X"5A",X"C7",X"30",X"36",X"4B",X"56", + X"25",X"B0",X"2A",X"36",X"25",X"B2",X"21",X"4C",X"DD",X"4B",X"28",X"7E",X"00",X"22",X"16",X"29", + X"A1",X"90",X"B4",X"AE",X"AB",X"CB",X"3D",X"B9",X"92",X"2A",X"C8",X"C6",X"88",X"A0",X"3F",X"32", + X"B6",X"48",X"E6",X"2E",X"00",X"39",X"12",X"32",X"4C",X"4B",X"57",X"A0",X"22",X"D6",X"08",X"B2", + X"9A",X"44",X"96",X"09",X"B2",X"2B",X"40",X"32",X"72",X"46",X"EE",X"F0",X"A0",X"88",X"96",X"09", + X"21",X"05",X"34",X"6B",X"1B",X"B1",X"16",X"2A",X"21",X"FF",X"34",X"26",X"29",X"A2",X"29",X"4C", + X"B2",X"0E",X"44",X"32",X"1E",X"44",X"AF",X"4A",X"39",X"B9",X"95",X"B2",X"1E",X"44",X"6B",X"BE", + X"11",X"96",X"2A",X"B2",X"3E",X"4C",X"12",X"25",X"EC",X"94",X"A0",X"B2",X"0D",X"4C",X"12",X"DA", + X"46",X"87",X"80",X"8F",X"5D",X"4B",X"08",X"06",X"92",X"72",X"46",X"C6",X"00",X"A0",X"0C",X"5D", + X"CB",X"28",X"EE",X"92",X"23",X"48",X"A7",X"A0",X"38",X"92",X"3C",X"4C",X"CB",X"D7",X"00",X"A0", + X"DE",X"E0",X"B0",X"2C",X"96",X"09",X"B2",X"2B",X"40",X"32",X"9A",X"44",X"4B",X"F7",X"80",X"98", + X"E6",X"97",X"32",X"32",X"EC",X"96",X"8A",X"4D",X"35",X"6D",X"21",X"12",X"EC",X"21",X"20",X"28", + X"36",X"0E",X"4B",X"16",X"01",X"BD",X"A0",X"F2",X"4D",X"B6",X"9E",X"32",X"AC",X"40",X"AF",X"A0", + X"27",X"92",X"00",X"D3",X"E6",X"29",X"16",X"28",X"32",X"A0",X"D3",X"6A",X"C9",X"B2",X"12",X"60", + X"F3",X"C6",X"09",X"36",X"08",X"B2",X"C8",X"F3",X"6A",X"C1",X"BA",X"32",X"88",X"F3",X"EE",X"09", + X"16",X"28",X"32",X"20",X"D3",X"6A",X"C9",X"B2",X"12",X"A0",X"E8",X"AF",X"20",X"22",X"CD",X"75", + X"4C",X"32",X"38",X"42",X"DE",X"F7",X"A0",X"9A",X"92",X"0E",X"44",X"56",X"0B",X"CA",X"24",X"4B", + X"12",X"21",X"EC",X"94",X"32",X"21",X"EC",X"4D",X"A4",X"6B",X"12",X"21",X"EC",X"95",X"32",X"21", + X"44",X"49",X"92",X"AC",X"40",X"87",X"92",X"38",X"42",X"A0",X"D5",X"B9",X"38",X"42",X"A1",X"2E", + X"EC",X"DE",X"09",X"4A",X"88",X"B2",X"D6",X"22",X"CA",X"00",X"12",X"A1",X"40",X"4C",X"D6",X"23", + X"4A",X"17",X"32",X"56",X"BA",X"20",X"3A",X"56",X"BB",X"A0",X"36",X"32",X"E0",X"45",X"4B",X"67", + X"CA",X"40",X"B1",X"C6",X"57",X"B2",X"E8",X"4D",X"02",X"EF",X"4D",X"32",X"E1",X"4D",X"EB",X"BC", + X"32",X"32",X"E8",X"45",X"4B",X"67",X"4A",X"C0",X"31",X"C6",X"5F",X"B2",X"E8",X"45",X"82",X"4F", + X"4D",X"32",X"61",X"4D",X"FE",X"22",X"4F",X"32",X"3D",X"48",X"EE",X"2D",X"2E",X"A8",X"CD",X"41", + X"6E",X"36",X"99",X"4D",X"B5",X"4D",X"6B",X"C0",X"31",X"EF",X"92",X"2B",X"C8",X"87",X"A0",X"AE", + X"12",X"32",X"4C",X"C6",X"68",X"70",X"20",X"AE",X"21",X"08",X"4C",X"DE",X"24",X"2F",X"0F",X"2F", + X"26",X"08",X"47",X"29",X"4B",X"66",X"80",X"1E",X"06",X"9A",X"01",X"4B",X"F6",X"A0",X"2F",X"4B", + X"D6",X"32",X"32",X"4C",X"F6",X"68",X"32",X"32",X"4C",X"36",X"00",X"4D",X"BD",X"6D",X"3B",X"3A", + X"DE",X"F7",X"4A",X"C0",X"31",X"CB",X"46",X"B9",X"7E",X"89",X"07",X"2F",X"07",X"6F",X"26",X"08", + X"09",X"76",X"A7",X"A0",X"C1",X"A3",X"23",X"76",X"03",X"C6",X"29",X"76",X"20",X"2F",X"D6",X"D1", + X"90",X"D4",X"6B",X"A1",X"32",X"56",X"AF",X"B0",X"DD",X"A3",X"A3",X"76",X"5D",X"EE",X"29",X"10", + X"30",X"20",X"EE",X"24",X"90",X"30",X"4F",X"CB",X"48",X"B2",X"FE",X"24",X"90",X"DA",X"F6",X"B2", + X"21",X"19",X"A8",X"29",X"4B",X"E6",X"6A",X"24",X"EB",X"5D",X"4B",X"08",X"FE",X"CA",X"84",X"4B", + X"DD",X"4B",X"28",X"5E",X"16",X"0E",X"CD",X"BD",X"6D",X"36",X"29",X"B2",X"A1",X"48",X"BF",X"B2", + X"BE",X"44",X"B2",X"8D",X"CC",X"B2",X"BF",X"44",X"A1",X"90",X"B4",X"A2",X"A9",X"44",X"94",X"B2", + X"2E",X"4C",X"EB",X"8C",X"6B",X"75",X"E6",X"48",X"4F",X"75",X"14",X"34",X"E6",X"B7",X"B1",X"67", + X"49",X"5D",X"4B",X"08",X"96",X"32",X"28",X"40",X"AF",X"20",X"8B",X"32",X"1C",X"44",X"4B",X"77", + X"C8",X"3F",X"32",X"3C",X"EC",X"49",X"12",X"3C",X"EC",X"4B",X"57",X"68",X"BF",X"B2",X"3C",X"4C", + X"49",X"9F",X"B2",X"8D",X"44",X"32",X"1E",X"44",X"94",X"C6",X"0B",X"B2",X"1E",X"44",X"A0",X"8B", + X"12",X"3F",X"EC",X"94",X"E6",X"2B",X"F6",X"08",X"32",X"3F",X"EC",X"92",X"3F",X"4C",X"E6",X"2B", + X"27",X"6F",X"26",X"08",X"A1",X"2C",X"3C",X"29",X"D6",X"B2",X"09",X"44",X"A3",X"76",X"B2",X"0A", + X"EC",X"6B",X"16",X"B1",X"DD",X"D6",X"3E",X"94",X"E6",X"2B",X"DD",X"F7",X"3E",X"A0",X"09",X"5D", + X"D6",X"1F",X"94",X"C6",X"0B",X"5D",X"F7",X"1F",X"A1",X"69",X"BD",X"4D",X"CE",X"48",X"6B",X"24", + X"6B",X"5D",X"34",X"3E",X"DD",X"D6",X"3E",X"EE",X"2B",X"A0",X"09",X"5D",X"56",X"3F",X"14",X"EE", + X"0B",X"5D",X"F7",X"1F",X"5D",X"4B",X"9A",X"4E",X"4A",X"7F",X"BD",X"32",X"08",X"44",X"EE",X"0C", + X"20",X"B9",X"12",X"A0",X"E8",X"AF",X"EA",X"20",X"14",X"92",X"12",X"4C",X"CB",X"E7",X"20",X"26", + X"A1",X"28",X"F1",X"5D",X"D6",X"0D",X"BD",X"67",X"4B",X"EE",X"B6",X"08",X"A0",X"1D",X"92",X"DA", + X"EC",X"4B",X"67",X"A0",X"7B",X"A1",X"68",X"D1",X"DD",X"D6",X"2D",X"BD",X"47",X"4B",X"6E",X"B6", + X"08",X"20",X"4D",X"5D",X"4B",X"9A",X"06",X"5D",X"4B",X"9A",X"C6",X"5D",X"56",X"9C",X"92",X"1D", + X"E8",X"9B",X"10",X"BC",X"53",X"B2",X"3D",X"48",X"21",X"32",X"EB",X"36",X"08",X"26",X"28",X"06", + X"28",X"4B",X"66",X"20",X"9C",X"2E",X"0A",X"29",X"D6",X"13",X"B0",X"0D",X"06",X"9E",X"6B",X"09", + X"14",X"BF",X"C5",X"62",X"CB",X"2E",X"CB",X"4E",X"0E",X"2E",X"B7",X"CD",X"6A",X"B6",X"28",X"06", + X"A6",X"BD",X"80",X"0C",X"01",X"CB",X"5F",X"BB",X"5D",X"76",X"3C",X"6F",X"27",X"AF",X"29",X"6F", + X"2E",X"28",X"12",X"AD",X"48",X"34",X"47",X"A6",X"4A",X"29",X"55",X"56",X"E0",X"30",X"2B",X"DE", + X"20",X"67",X"D6",X"5D",X"F7",X"89",X"A1",X"60",X"CA",X"5D",X"46",X"9C",X"4B",X"A9",X"01",X"76", + X"DD",X"F7",X"2F",X"6F",X"23",X"76",X"DD",X"F7",X"20",X"EF",X"12",X"E7",X"48",X"56",X"2A",X"70", + X"A0",X"38",X"82",X"0F",X"CC",X"97",X"CD",X"EA",X"D5",X"B0",X"29",X"5D",X"4B",X"08",X"CE",X"45", + X"6C",X"CB",X"73",X"B4",X"A7",X"20",X"2C",X"5D",X"CB",X"28",X"0E",X"D5",X"CD",X"68",X"6D",X"D1", + X"A1",X"D9",X"35",X"A0",X"ED",X"56",X"2C",X"A1",X"E1",X"BD",X"B0",X"BE",X"A1",X"E9",X"35",X"CB", + X"82",X"B4",X"E6",X"29",X"20",X"2F",X"DD",X"4B",X"28",X"0E",X"EB",X"0D",X"B4",X"71",X"A7",X"20", + X"AC",X"5D",X"4B",X"08",X"CE",X"4D",X"E8",X"4D",X"80",X"0E",X"A1",X"D9",X"35",X"CB",X"02",X"BC", + X"21",X"E9",X"B5",X"5D",X"CB",X"20",X"6E",X"5D",X"56",X"2F",X"20",X"2F",X"D6",X"DC",X"10",X"22", + X"6B",X"27",X"34",X"56",X"2C",X"B0",X"AB",X"A1",X"61",X"BD",X"4D",X"CE",X"E8",X"5D",X"D6",X"89", + X"EE",X"2B",X"DD",X"F7",X"21",X"4D",X"8C",X"6B",X"DD",X"76",X"21",X"DE",X"2B",X"5D",X"77",X"21", + X"5D",X"4B",X"A8",X"5E",X"48",X"32",X"20",X"40",X"AF",X"48",X"92",X"AB",X"C8",X"5D",X"66",X"9C", + X"90",X"C8",X"12",X"21",X"4C",X"5D",X"6E",X"21",X"90",X"C8",X"DD",X"76",X"2F",X"87",X"E8",X"4D", + X"B1",X"48",X"5D",X"4B",X"A8",X"B6",X"4D",X"AA",X"EC",X"36",X"8D",X"4D",X"B5",X"4D",X"4D",X"F1", + X"22",X"32",X"A3",X"48",X"4F",X"34",X"32",X"A3",X"48",X"AE",X"28",X"A1",X"6E",X"68",X"09",X"76", + X"FD",X"32",X"AB",X"40",X"27",X"AF",X"27",X"6F",X"92",X"89",X"44",X"56",X"00",X"B0",X"0E",X"CE", + X"09",X"29",X"EB",X"30",X"15",X"7E",X"09",X"39",X"4F",X"A1",X"28",X"29",X"F1",X"26",X"20",X"4D", + X"C1",X"CE",X"92",X"AB",X"40",X"EF",X"92",X"1D",X"40",X"10",X"68",X"32",X"1B",X"40",X"DE",X"F7", + X"20",X"2C",X"BF",X"6B",X"49",X"B5",X"BF",X"B2",X"00",X"48",X"12",X"30",X"E8",X"94",X"E6",X"2B", + X"DE",X"0B",X"96",X"08",X"80",X"0B",X"B2",X"A9",X"40",X"B2",X"1D",X"40",X"B2",X"72",X"46",X"B2", + X"F3",X"4E",X"32",X"C4",X"EE",X"B2",X"C3",X"4E",X"C9",X"F5",X"33",X"00",X"33",X"1B",X"33",X"00", + X"3B",X"96",X"3B",X"A1",X"3B",X"96",X"3B",X"A1",X"3B",X"34",X"3B",X"B7",X"3B",X"34",X"3B",X"B7", + X"33",X"42",X"33",X"5D",X"33",X"42",X"33",X"92",X"47",X"48",X"D6",X"2A",X"20",X"2E",X"DD",X"D6", + X"9A",X"87",X"80",X"2C",X"5D",X"76",X"88",X"C6",X"09",X"5D",X"F7",X"88",X"4D",X"25",X"4C",X"32", + X"00",X"48",X"A7",X"A0",X"3B",X"92",X"28",X"4C",X"E6",X"2C",X"20",X"24",X"26",X"D1",X"DD",X"C6", + X"0D",X"4B",X"66",X"B6",X"08",X"CA",X"11",X"BF",X"5D",X"4B",X"9A",X"CE",X"6A",X"59",X"BE",X"32", + X"47",X"48",X"D6",X"2A",X"EA",X"D5",X"15",X"A1",X"6F",X"4C",X"DD",X"D6",X"2D",X"7E",X"2A",X"07", + X"07",X"2F",X"47",X"AE",X"08",X"29",X"D6",X"5D",X"F7",X"0F",X"A3",X"76",X"5D",X"F7",X"88",X"87", + X"00",X"2B",X"D6",X"29",X"E8",X"A3",X"56",X"6E",X"19",X"5D",X"77",X"21",X"29",X"2B",X"28",X"BF", + X"CD",X"EA",X"D6",X"87",X"4A",X"35",X"48",X"5D",X"4B",X"9A",X"C6",X"A9",X"8C",X"08",X"01",X"76", + X"DD",X"F7",X"3A",X"A6",X"D1",X"5D",X"46",X"2D",X"36",X"28",X"EB",X"B2",X"69",X"A1",X"41",X"B5", + X"4D",X"CE",X"E8",X"5D",X"D6",X"1E",X"EE",X"9F",X"6A",X"1B",X"36",X"5D",X"D6",X"08",X"CE",X"09", + X"DD",X"F7",X"28",X"5D",X"56",X"38",X"2E",X"2C",X"D6",X"68",X"10",X"2E",X"D6",X"48",X"30",X"2A", + X"26",X"0B",X"28",X"5D",X"F7",X"18",X"27",X"67",X"A6",X"08",X"B0",X"09",X"A4",X"4D",X"41",X"4C", + X"55",X"C6",X"48",X"AF",X"2F",X"4B",X"54",X"20",X"2A",X"45",X"6C",X"5D",X"46",X"21",X"F5",X"8D", + X"5D",X"F7",X"29",X"4D",X"84",X"4B",X"F9",X"45",X"64",X"5D",X"C6",X"89",X"2D",X"5D",X"F7",X"89", + X"C9",X"5D",X"56",X"21",X"CD",X"CF",X"B7",X"BE",X"28",X"4B",X"66",X"20",X"29",X"BC",X"29",X"68", + X"A8",X"29",X"4B",X"E6",X"80",X"0A",X"4B",X"4A",X"4D",X"75",X"32",X"4B",X"E6",X"20",X"AA",X"4B", + X"FA",X"A9",X"68",X"28",X"B7",X"45",X"6A",X"4B",X"66",X"20",X"2A",X"4B",X"DA",X"72",X"A7",X"4A", + X"F6",X"BF",X"DE",X"89",X"A0",X"8A",X"5D",X"76",X"29",X"C6",X"50",X"DE",X"AF",X"CB",X"DC",X"BE", + X"CB",X"EA",X"00",X"3C",X"DD",X"4B",X"3A",X"F6",X"00",X"AE",X"DD",X"76",X"3A",X"45",X"6C",X"5D", + X"F7",X"1A",X"4D",X"6C",X"37",X"CB",X"46",X"BE",X"4B",X"7F",X"80",X"1C",X"5D",X"4B",X"BA",X"FE", + X"20",X"26",X"DD",X"76",X"3A",X"45",X"6C",X"5D",X"77",X"3A",X"CD",X"78",X"B7",X"CB",X"C6",X"B6", + X"5D",X"4B",X"3A",X"5E",X"A0",X"0F",X"5D",X"4B",X"3A",X"56",X"4D",X"CA",X"37",X"5D",X"D6",X"89", + X"E6",X"D0",X"EE",X"2A",X"DD",X"F7",X"21",X"5D",X"36",X"3C",X"28",X"5D",X"CB",X"28",X"76",X"CC", + X"ED",X"BF",X"5D",X"4B",X"3A",X"DE",X"A0",X"1A",X"5D",X"76",X"BA",X"87",X"A0",X"4A",X"5D",X"4B", + X"32",X"56",X"DD",X"B6",X"2E",X"28",X"DD",X"B6",X"3E",X"28",X"DD",X"76",X"3E",X"C6",X"27",X"A0", + X"2B",X"5D",X"B4",X"0E",X"5D",X"76",X"0E",X"56",X"0A",X"A0",X"8E",X"5D",X"4B",X"08",X"06",X"5D", + X"CB",X"23",X"56",X"80",X"2C",X"5D",X"CB",X"28",X"EE",X"DE",X"2B",X"90",X"2F",X"5D",X"CB",X"32", + X"96",X"CB",X"38",X"BF",X"A1",X"79",X"BD",X"5D",X"46",X"0E",X"4D",X"59",X"48",X"CB",X"24",X"4B", + X"DD",X"4B",X"28",X"76",X"20",X"2B",X"CD",X"B7",X"73",X"4D",X"DC",X"FA",X"21",X"71",X"15",X"4D", + X"CE",X"48",X"6B",X"24",X"4B",X"5D",X"4B",X"8D",X"4E",X"C8",X"5D",X"4B",X"1A",X"FE",X"A0",X"1C", + X"DD",X"D6",X"2D",X"27",X"C5",X"64",X"EE",X"C4",X"DD",X"F7",X"0B",X"5D",X"36",X"24",X"D7",X"5D", + X"4B",X"08",X"96",X"49",X"5D",X"76",X"0D",X"AF",X"6E",X"1C",X"5D",X"F7",X"8B",X"5D",X"B6",X"8C", + X"29",X"5D",X"CB",X"28",X"9E",X"49",X"DD",X"D6",X"3E",X"AF",X"16",X"04",X"CC",X"BD",X"6D",X"5D", + X"B4",X"1E",X"4D",X"B2",X"7B",X"4D",X"D4",X"7A",X"A1",X"69",X"BD",X"4D",X"CE",X"48",X"6B",X"24", + X"6B",X"96",X"8B",X"4D",X"35",X"6D",X"12",X"3D",X"E8",X"5D",X"77",X"34",X"14",X"B2",X"3D",X"48", + X"5D",X"4B",X"9A",X"16",X"5D",X"4B",X"9A",X"46",X"5D",X"4B",X"9A",X"CE",X"6A",X"24",X"4B",X"36", + X"29",X"4D",X"8D",X"3F",X"EB",X"8C",X"6B",X"67",X"E6",X"30",X"2F",X"27",X"2F",X"47",X"50",X"EE", + X"60",X"AF",X"27",X"AF",X"FE",X"60",X"67",X"22",X"9A",X"40",X"55",X"FC",X"A1",X"08",X"0A",X"97", + X"C5",X"72",X"55",X"EE",X"F0",X"07",X"0F",X"07",X"CB",X"64",X"00",X"2A",X"F6",X"A8",X"EE",X"37", + X"EE",X"BF",X"C7",X"A6",X"08",X"29",X"49",X"EF",X"EE",X"98",X"27",X"AF",X"27",X"6F",X"D0",X"C6", + X"E0",X"27",X"2F",X"27",X"F6",X"C8",X"6F",X"82",X"1A",X"48",X"5D",X"74",X"21",X"28",X"2A",X"BF", + X"CD",X"5A",X"D5",X"66",X"50",X"8F",X"07",X"8F",X"4B",X"4C",X"80",X"2A",X"FE",X"A8",X"C7",X"D5", + X"F6",X"8F",X"46",X"70",X"AF",X"0F",X"AF",X"DD",X"6B",X"A8",X"6E",X"00",X"2A",X"F6",X"20",X"AD", + X"EE",X"B7",X"FE",X"29",X"C7",X"2E",X"88",X"89",X"49",X"29",X"8A",X"2C",X"A8",X"38",X"80",X"68", + X"A8",X"DD",X"F6",X"8D",X"5E",X"88",X"EF",X"2E",X"28",X"21",X"01",X"C8",X"A9",X"6E",X"B2",X"9B", + X"48",X"30",X"B2",X"3B",X"48",X"C1",X"8D",X"2E",X"8F",X"20",X"A9",X"23",X"AC",X"26",X"5D",X"CE", + X"3F",X"CB",X"89",X"2E",X"28",X"09",X"F6",X"DD",X"D7",X"89",X"83",X"56",X"7D",X"77",X"2A",X"C9", + X"5D",X"C3",X"88",X"7E",X"68",X"D5",X"B4",X"3E",X"5D",X"FE",X"9E",X"66",X"8B",X"28",X"A9",X"D5", + X"F6",X"9F",X"B4",X"E6",X"2B",X"DD",X"D7",X"9F",X"7D",X"CB",X"1A",X"CE",X"4A",X"36",X"68",X"DD", + X"4B",X"3A",X"F6",X"09",X"89",X"28",X"80",X"2B",X"21",X"D7",X"77",X"D5",X"C6",X"2F",X"5D",X"6E", + X"08",X"09",X"7D",X"75",X"2F",X"DD",X"D4",X"A8",X"F4",X"A7",X"A0",X"8B",X"76",X"89",X"48",X"DD", + X"4B",X"3A",X"F6",X"FD",X"80",X"2F",X"DE",X"88",X"B0",X"23",X"6B",X"99",X"C8",X"F6",X"08",X"B8", + X"2C",X"DD",X"96",X"BA",X"29",X"21",X"61",X"B5",X"6D",X"EE",X"68",X"EB",X"A4",X"CB",X"A2",X"CA", + X"48",X"D5",X"D6",X"2E",X"47",X"0F",X"29",X"CF",X"26",X"28",X"01",X"CE",X"5D",X"FE",X"98",X"BC", + X"76",X"77",X"A0",X"A1",X"7D",X"77",X"38",X"91",X"80",X"83",X"7D",X"34",X"2E",X"23",X"F6",X"DD", + X"4B",X"34",X"CE",X"A8",X"AC",X"E5",X"64",X"D5",X"F7",X"24",X"A3",X"FE",X"CD",X"4C",X"6B",X"DE", + X"68",X"DD",X"D7",X"AC",X"83",X"56",X"7D",X"77",X"0B",X"DD",X"6B",X"88",X"9E",X"DD",X"F6",X"9C", + X"EE",X"08",X"A0",X"2F",X"5D",X"FE",X"1E",X"66",X"09",X"28",X"A8",X"C5",X"B2",X"FB",X"4D",X"B7", + X"73",X"CD",X"DC",X"FA",X"DD",X"CB",X"28",X"76",X"00",X"2C",X"DD",X"36",X"0C",X"28",X"DD",X"56", + X"89",X"F6",X"70",X"B8",X"8E",X"D5",X"4B",X"28",X"56",X"BA",X"BB",X"48",X"94",X"3A",X"BB",X"48", + X"EB",X"A2",X"6C",X"DD",X"CB",X"3C",X"56",X"EA",X"B5",X"68",X"21",X"E1",X"15",X"DD",X"56",X"3E", + X"EE",X"37",X"A0",X"20",X"5D",X"FE",X"08",X"E6",X"09",X"D5",X"F7",X"28",X"4D",X"66",X"48",X"43", + X"A4",X"6B",X"29",X"38",X"28",X"02",X"2F",X"4C",X"12",X"28",X"EC",X"E6",X"29",X"00",X"0A",X"B7", + X"CD",X"4A",X"5D",X"C3",X"08",X"0E",X"6B",X"E6",X"49",X"89",X"5D",X"C3",X"08",X"4E",X"5D",X"7D", + X"2F",X"DD",X"74",X"20",X"12",X"21",X"EC",X"EE",X"2F",X"DD",X"77",X"21",X"12",X"DA",X"EE",X"A7", + X"A1",X"E3",X"3B",X"A8",X"0B",X"29",X"7C",X"BB",X"5D",X"7D",X"09",X"D5",X"F4",X"2A",X"3F",X"29", + X"E8",X"D3",X"29",X"21",X"28",X"09",X"CB",X"6E",X"36",X"28",X"20",X"21",X"23",X"14",X"D6",X"3C", + X"90",X"DC",X"6B",X"8C",X"4B",X"46",X"89",X"D5",X"ED",X"C5",X"CD",X"23",X"5D",X"C3",X"08",X"7E", + X"20",X"B5",X"DD",X"56",X"3C",X"A7",X"00",X"BF",X"E6",X"08",X"20",X"BB",X"16",X"03",X"CD",X"BD", + X"4D",X"D5",X"4B",X"28",X"56",X"C5",X"AA",X"6C",X"92",X"B3",X"40",X"BC",X"B2",X"B3",X"40",X"BA", + X"15",X"48",X"21",X"66",X"C1",X"2F",X"4F",X"2E",X"28",X"09",X"36",X"A7",X"04",X"36",X"08",X"12", + X"BD",X"48",X"94",X"3A",X"BD",X"48",X"92",X"B4",X"40",X"46",X"09",X"2F",X"B2",X"B4",X"40",X"D5", + X"E1",X"EB",X"A4",X"6B",X"DD",X"34",X"3E",X"DD",X"56",X"3E",X"E6",X"2F",X"E8",X"DD",X"56",X"2E", + X"94",X"66",X"8F",X"D5",X"F7",X"2E",X"27",X"CF",X"26",X"28",X"A1",X"B0",X"CA",X"89",X"56",X"D5", + X"F6",X"88",X"46",X"76",X"13",X"DD",X"6B",X"8D",X"6E",X"00",X"2A",X"C6",X"29",X"DD",X"D7",X"88", + X"A3",X"FE",X"5D",X"7F",X"9F",X"F6",X"8A",X"8E",X"88",X"A8",X"8F",X"66",X"89",X"8E",X"89",X"28", + X"29",X"0C",X"7D",X"71",X"0D",X"EB",X"A4",X"CB",X"28",X"88",X"28",X"89",X"28",X"8A",X"29",X"8B", + X"89",X"2C",X"89",X"2B",X"88",X"2A",X"88",X"29",X"5D",X"C3",X"88",X"E6",X"48",X"BA",X"A0",X"48", + X"07",X"EA",X"2E",X"CB",X"7D",X"56",X"38",X"14",X"B0",X"8B",X"7D",X"77",X"38",X"12",X"3E",X"4E", + X"94",X"3A",X"9E",X"4E",X"EE",X"2B",X"6A",X"2E",X"CB",X"BA",X"8E",X"4E",X"5D",X"C3",X"BA",X"6E", + X"A0",X"98",X"B5",X"D6",X"D7",X"20",X"7F",X"DD",X"96",X"BA",X"28",X"DD",X"6B",X"88",X"86",X"EB", + X"A2",X"6C",X"94",X"F6",X"AC",X"B8",X"CF",X"D5",X"4B",X"32",X"4E",X"D5",X"D6",X"38",X"DE",X"30", + X"B0",X"B2",X"B2",X"AB",X"E8",X"A7",X"80",X"8F",X"B2",X"AA",X"E8",X"D6",X"0A",X"10",X"05",X"12", + X"80",X"4E",X"EE",X"08",X"A0",X"21",X"5D",X"65",X"5D",X"29",X"80",X"4E",X"6B",X"94",X"CA",X"BA", + X"68",X"4E",X"46",X"08",X"80",X"9E",X"7D",X"E5",X"7D",X"21",X"68",X"4E",X"A2",X"8F",X"EE",X"12", + X"A9",X"4E",X"47",X"C5",X"6B",X"78",X"5D",X"61",X"5D",X"3E",X"98",X"28",X"96",X"23",X"B2",X"2E", + X"EE",X"D6",X"08",X"10",X"22",X"20",X"2F",X"DD",X"6B",X"BA",X"6E",X"CC",X"03",X"CB",X"B2",X"9F", + X"4E",X"66",X"8B",X"0F",X"47",X"0E",X"88",X"29",X"D0",X"6B",X"01",X"CE",X"A3",X"6E",X"C1",X"BA", + X"2E",X"4E",X"5E",X"A8",X"4B",X"72",X"6A",X"21",X"50",X"CB",X"8F",X"4F",X"8E",X"88",X"A9",X"4E", + X"A3",X"6E",X"C1",X"2A",X"09",X"4E",X"92",X"2E",X"46",X"F6",X"0E",X"B8",X"0A",X"BE",X"0E",X"29", + X"41",X"6B",X"2E",X"28",X"4F",X"09",X"6E",X"12",X"09",X"4E",X"ED",X"A8",X"32",X"21",X"EE",X"CD", + X"D2",X"76",X"69",X"BA",X"89",X"4E",X"38",X"3A",X"89",X"4E",X"49",X"BA",X"08",X"4E",X"EE",X"D6", + X"32",X"28",X"EE",X"12",X"09",X"4C",X"6F",X"0E",X"28",X"12",X"09",X"4E",X"FE",X"B8",X"10",X"2B", + X"98",X"38",X"1E",X"46",X"68",X"F6",X"60",X"38",X"0D",X"B0",X"06",X"2A",X"90",X"23",X"92",X"20", + X"EE",X"E6",X"29",X"0E",X"2B",X"20",X"2A",X"0E",X"29",X"51",X"32",X"3F",X"EE",X"D6",X"2B",X"E8", + X"92",X"28",X"46",X"76",X"09",X"3A",X"08",X"4E",X"49",X"22",X"88",X"2E",X"0D",X"2B",X"0A",X"29", + X"B8",X"6B",X"88",X"6B",X"98",X"6B",X"88",X"6B",X"57",X"BA",X"88",X"BA",X"B9",X"BA",X"9A",X"BA", + X"23",X"BA",X"A4",X"BA",X"35",X"BA",X"B6",X"BA",X"47",X"BA",X"50",X"BA",X"D1",X"BA",X"62",X"BA", + X"C3",X"BA",X"F4",X"BA",X"D5",X"BA",X"2E",X"BB",X"0F",X"BB",X"18",X"BB",X"21",X"BB",X"02",X"BB", + X"08",X"29",X"0A",X"29",X"5D",X"EE",X"09",X"D5",X"E6",X"2A",X"ED",X"F5",X"E9",X"D1",X"DD",X"DE", + X"28",X"7B",X"CB",X"13",X"12",X"ED",X"E8",X"E6",X"A8",X"DD",X"56",X"21",X"00",X"2A",X"EE",X"2A", + X"3B",X"3A",X"28",X"4A",X"2A",X"3A",X"29",X"4A",X"36",X"28",X"DD",X"DE",X"09",X"9D",X"4B",X"2B", + X"DD",X"46",X"2F",X"DD",X"66",X"20",X"C5",X"7A",X"22",X"AA",X"EA",X"D9",X"DD",X"56",X"0D",X"AF", + X"6E",X"2F",X"57",X"1E",X"08",X"99",X"D6",X"2B",X"E6",X"EF",X"92",X"ED",X"40",X"66",X"00",X"D5", + X"56",X"28",X"00",X"2A",X"C6",X"2A",X"1F",X"30",X"08",X"D5",X"5E",X"29",X"1D",X"1D",X"19",X"CB", + X"DC",X"66",X"89",X"A8",X"8F",X"F5",X"46",X"2A",X"DD",X"4E",X"8B",X"89",X"A2",X"AE",X"4A",X"F5", + X"E6",X"89",X"C2",X"B7",X"A0",X"8C",X"FA",X"C3",X"65",X"7A",X"82",X"84",X"EA",X"C3",X"A2",X"86", + X"4A",X"37",X"CD",X"5A",X"A2",X"AE",X"4A",X"43",X"92",X"6C",X"96",X"C8",X"B2",X"A8",X"4A",X"3A", + X"21",X"4A",X"7D",X"56",X"2D",X"5F",X"0F",X"AF",X"0F",X"AB",X"E7",X"16",X"E9",X"CE",X"28",X"67", + X"ED",X"3E",X"F6",X"E3",X"A1",X"A8",X"4A",X"1B",X"21",X"20",X"88",X"E5",X"B8",X"61",X"B6",X"D6", + X"69",X"3E",X"28",X"42",X"8E",X"A8",X"A1",X"30",X"29",X"19",X"98",X"72",X"69",X"21",X"00",X"71", + X"21",X"A8",X"88",X"BE",X"A9",X"19",X"90",X"4A",X"4B",X"4E",X"B6",X"28",X"80",X"2A",X"32",X"1B", + X"76",X"9C",X"A0",X"8D",X"B4",X"09",X"4B",X"E0",X"6C",X"16",X"D7",X"3A",X"69",X"CD",X"AB",X"CC", + X"B6",X"28",X"49",X"2E",X"70",X"D5",X"D6",X"2D",X"DE",X"20",X"90",X"3A",X"27",X"0F",X"27",X"C3", + X"87",X"30",X"2A",X"CB",X"6C",X"CB",X"87",X"30",X"29",X"24",X"56",X"A8",X"E7",X"C9",X"81",X"88", + X"71",X"35",X"C7",X"3E",X"88",X"29",X"80",X"D1",X"5D",X"FE",X"8D",X"35",X"C7",X"3E",X"88",X"29", + X"68",X"71",X"7D",X"56",X"2D",X"B5",X"E7",X"36",X"28",X"C9",X"81",X"48",X"D3",X"16",X"09",X"B5", + X"C7",X"BE",X"AA",X"3E",X"88",X"2B",X"95",X"28",X"72",X"C1",X"ED",X"AA",X"49",X"48",X"D4",X"8F", + X"AF",X"84",X"AF",X"85",X"AF",X"0F",X"AF",X"0F",X"25",X"1F",X"65",X"42",X"80",X"8B",X"81",X"B4", + X"D3",X"E5",X"57",X"A5",X"A2",X"49",X"48",X"61",X"49",X"C3",X"D5",X"A8",X"A9",X"FD",X"CD",X"4C", + X"52",X"55",X"6C",X"16",X"57",X"47",X"F4",X"26",X"28",X"29",X"4D",X"CD",X"A9",X"E6",X"29",X"46", + X"A0",X"2B",X"A6",X"28",X"49",X"2E",X"00",X"C1",X"26",X"20",X"CD",X"EA",X"D4",X"D2",X"1C",X"6D", + X"93",X"DA",X"3F",X"6D",X"BB",X"67",X"B7",X"38",X"F1",X"55",X"3F",X"07",X"C9",X"BF",X"FB",X"30", + X"49",X"BA",X"08",X"48",X"EE",X"29",X"68",X"17",X"7B",X"30",X"92",X"ED",X"40",X"66",X"77",X"3A", + X"65",X"48",X"FB",X"31",X"C9",X"6F",X"12",X"28",X"E8",X"E6",X"29",X"E8",X"50",X"FB",X"18",X"C9", + X"5D",X"FE",X"0D",X"2E",X"70",X"76",X"28",X"EF",X"4B",X"4E",X"B6",X"28",X"49",X"28",X"0B",X"2E", + X"09",X"25",X"38",X"3B",X"3E",X"31",X"1C",X"37",X"22",X"AD",X"01",X"A4",X"07",X"BA",X"35",X"B0", + X"BB",X"B6",X"49",X"6C",X"4F",X"62",X"CD",X"78",X"5B",X"7E",X"D9",X"74",X"DF",X"EA",X"6C",X"EF", + X"42",X"E5",X"70",X"FB",X"75",X"F0",X"53",X"F6",X"A8",X"0B",X"AE",X"00",X"8B",X"06",X"B8",X"1B", + X"15",X"10",X"92",X"15",X"97",X"8A",X"24",X"8F",X"A1",X"83",X"A6",X"98",X"32",X"9C",X"37",X"91", + X"93",X"95",X"97",X"49",X"EB",X"4D",X"EF",X"41",X"CB",X"45",X"CF",X"58",X"FA",X"5C",X"FE",X"5F", + X"D1",X"53",X"D4",X"56",X"D7",X"C9",X"62",X"CC",X"65",X"CF",X"E0",X"C1",X"E2",X"C4",X"E5",X"C6", + X"C7",X"D8",X"F1",X"DA",X"F3",X"DC",X"F5",X"DE",X"F7",X"DF",X"D0",X"D1",X"D1",X"D2",X"D3",X"D3", + X"F4",X"D4",X"F5",X"D5",X"F5",X"D6",X"F6",X"D6",X"F7",X"D7",X"F7",X"D7",X"F7",X"D5",X"4B",X"28", + X"46",X"20",X"2D",X"DD",X"36",X"28",X"28",X"C9",X"12",X"A1",X"E8",X"B7",X"EA",X"01",X"6F",X"DD", + X"46",X"32",X"4B",X"F9",X"6A",X"98",X"4E",X"C3",X"F1",X"42",X"28",X"6E",X"4B",X"E9",X"4A",X"0A", + X"6F",X"51",X"F6",X"68",X"E6",X"57",X"DD",X"77",X"1A",X"CD",X"EA",X"FA",X"12",X"28",X"EC",X"0F", + X"90",X"23",X"5D",X"3E",X"9A",X"F8",X"5D",X"3E",X"AC",X"D7",X"6B",X"3D",X"CE",X"D5",X"B6",X"3A", + X"B8",X"DD",X"96",X"AC",X"29",X"DD",X"96",X"AB",X"28",X"DD",X"96",X"BB",X"2C",X"EB",X"23",X"CE", + X"4D",X"5F",X"EC",X"D5",X"4B",X"32",X"DE",X"42",X"96",X"6E",X"4D",X"B7",X"D3",X"38",X"8F",X"D5", + X"6B",X"88",X"86",X"EB",X"02",X"CC",X"7D",X"56",X"08",X"E6",X"29",X"20",X"2F",X"DD",X"F6",X"8F", + X"DE",X"20",X"90",X"C3",X"4D",X"1D",X"D2",X"C2",X"F7",X"6F",X"59",X"D5",X"E6",X"3A",X"5D",X"EE", + X"3C",X"DD",X"DE",X"AC",X"79",X"21",X"30",X"4A",X"F6",X"4F",X"6D",X"1C",X"6F",X"51",X"55",X"D5", + X"4B",X"32",X"C6",X"28",X"95",X"D1",X"DD",X"7C",X"9A",X"F5",X"F5",X"3C",X"DD",X"7A",X"AC",X"F5", + X"96",X"AB",X"28",X"D5",X"6B",X"BA",X"D6",X"DD",X"F6",X"BB",X"4E",X"8A",X"7D",X"77",X"1B",X"D9", + X"ED",X"75",X"5D",X"EE",X"8F",X"D5",X"E6",X"20",X"5D",X"FE",X"A9",X"56",X"A8",X"CF",X"F9",X"0E", + X"14",X"CD",X"C9",X"EE",X"B6",X"29",X"6D",X"95",X"6D",X"E1",X"83",X"F1",X"CF",X"56",X"76",X"77", + X"4A",X"F7",X"CF",X"CF",X"31",X"A8",X"88",X"10",X"67",X"F5",X"11",X"18",X"74",X"43",X"FD",X"6E", + X"7D",X"CB",X"1A",X"66",X"B2",X"88",X"EC",X"4F",X"B2",X"8E",X"EC",X"AF",X"4E",X"6C",X"E7",X"16", + X"CE",X"C6",X"88",X"6F",X"CD",X"DB",X"8F",X"4C",X"92",X"21",X"4C",X"E1",X"10",X"2E",X"10",X"64", + X"B8",X"EA",X"B8",X"88",X"6B",X"69",X"80",X"82",X"6D",X"DF",X"6F",X"E5",X"4D",X"09",X"7D",X"75", + X"8F",X"D5",X"F4",X"20",X"4D",X"58",X"D1",X"C3",X"61",X"41",X"E9",X"C2",X"0A",X"6F",X"BF",X"E5", + X"CA",X"DD",X"D5",X"8F",X"7D",X"74",X"08",X"EB",X"AA",X"CF",X"6D",X"DF",X"6F",X"E5",X"4D",X"B7", + X"CD",X"4A",X"5D",X"7D",X"0F",X"D5",X"F4",X"20",X"4D",X"8D",X"79",X"C3",X"71",X"41",X"E9",X"C2", + X"AA",X"6F",X"09",X"DD",X"75",X"2F",X"DD",X"74",X"08",X"EB",X"AA",X"6F",X"DD",X"73",X"2F",X"DD", + X"F2",X"20",X"82",X"29",X"44",X"CE",X"4B",X"B9",X"29",X"D5",X"C6",X"29",X"5D",X"6E",X"0A",X"CE", + X"CB",X"11",X"ED",X"F5",X"CD",X"78",X"72",X"F1",X"E9",X"CB",X"66",X"20",X"39",X"39",X"68",X"28", + X"11",X"C3",X"E6",X"28",X"0F",X"01",X"5D",X"7F",X"89",X"43",X"02",X"6F",X"6E",X"20",X"EE",X"D0", + X"B9",X"DD",X"77",X"21",X"EB",X"0A",X"6F",X"F5",X"C3",X"C5",X"5B",X"29",X"EC",X"1A",X"4F",X"CB", + X"91",X"1B",X"12",X"4F",X"5D",X"DE",X"09",X"D5",X"76",X"2A",X"F9",X"01",X"47",X"9A",X"4B",X"BF", + X"FD",X"5F",X"51",X"BB",X"DD",X"77",X"09",X"F9",X"3B",X"1A",X"A8",X"4F",X"2E",X"28",X"C9",X"CD", + X"D4",X"FA",X"5D",X"C3",X"9A",X"FE",X"6C",X"8D",X"4F",X"D5",X"D6",X"20",X"EE",X"29",X"5D",X"7F", + X"08",X"EB",X"A4",X"6B",X"E5",X"AF",X"47",X"26",X"28",X"39",X"54",X"66",X"19",X"56",X"23",X"66", + X"C7",X"63",X"DD",X"61",X"49",X"D5",X"B5",X"3E",X"68",X"D5",X"B6",X"3E",X"09",X"D5",X"4B",X"3A", + X"56",X"DD",X"56",X"2E",X"00",X"2C",X"14",X"EB",X"93",X"6F",X"15",X"E6",X"2F",X"DD",X"77",X"2E", + X"57",X"1E",X"08",X"29",X"6C",X"EF",X"11",X"D5",X"D6",X"28",X"EE",X"D4",X"BE",X"D5",X"F7",X"28", + X"21",X"E4",X"67",X"19",X"56",X"DD",X"77",X"25",X"C9",X"DD",X"CB",X"28",X"46",X"20",X"2D",X"DD", + X"4B",X"28",X"B6",X"C1",X"92",X"A1",X"40",X"37",X"6A",X"14",X"C9",X"D5",X"D6",X"32",X"4B",X"6F", + X"EA",X"48",X"49",X"DD",X"56",X"2E",X"B7",X"EA",X"51",X"62",X"CB",X"57",X"EA",X"8F",X"49",X"CD", + X"5F",X"64",X"5D",X"FE",X"BA",X"C3",X"77",X"42",X"E1",X"61",X"4B",X"CF",X"6A",X"70",X"EA",X"C3", + X"FF",X"EA",X"3F",X"E9",X"B2",X"A9",X"EC",X"EE",X"08",X"DD",X"36",X"A9",X"7C",X"6F",X"4A",X"DD", + X"D6",X"32",X"4B",X"CF",X"6A",X"70",X"EA",X"C3",X"F7",X"42",X"9F",X"61",X"4D",X"C5",X"EA",X"D5", + X"6B",X"BA",X"76",X"EA",X"3F",X"E9",X"7D",X"34",X"3F",X"EA",X"5B",X"E9",X"7D",X"56",X"3A",X"C5", + X"64",X"D5",X"F7",X"30",X"5D",X"3E",X"AB",X"28",X"5D",X"3E",X"98",X"28",X"DA",X"7E",X"E8",X"D5", + X"96",X"AC",X"08",X"EB",X"5A",X"E8",X"7D",X"36",X"0C",X"70",X"7D",X"56",X"1A",X"F6",X"48",X"DD", + X"F7",X"32",X"6B",X"3F",X"E9",X"D5",X"4B",X"28",X"E6",X"28",X"8D",X"D5",X"4B",X"28",X"36",X"C1", + X"B2",X"A1",X"E8",X"B7",X"4A",X"3C",X"49",X"DD",X"F6",X"BA",X"6B",X"67",X"4A",X"48",X"49",X"CB", + X"D7",X"42",X"07",X"61",X"5D",X"FE",X"8E",X"37",X"6A",X"F1",X"EA",X"C5",X"5F",X"64",X"5D",X"FE", + X"1A",X"CB",X"DF",X"EA",X"41",X"E9",X"6B",X"4F",X"4A",X"F8",X"4A",X"CB",X"FF",X"EA",X"3F",X"E9", + X"92",X"21",X"4C",X"46",X"A8",X"D5",X"9E",X"21",X"5C",X"47",X"EA",X"D5",X"4B",X"32",X"EE",X"42", + X"58",X"EA",X"4B",X"8F",X"49",X"DD",X"6B",X"88",X"46",X"20",X"2D",X"DD",X"6B",X"88",X"96",X"C9", + X"92",X"A1",X"48",X"37",X"6A",X"14",X"E9",X"D5",X"D6",X"32",X"4B",X"6F",X"6A",X"48",X"E9",X"C3", + X"F7",X"EA",X"A7",X"E9",X"7D",X"56",X"2E",X"B7",X"4A",X"F1",X"4A",X"CD",X"FF",X"EC",X"7D",X"56", + X"BA",X"C3",X"77",X"42",X"E1",X"61",X"4B",X"CF",X"6A",X"70",X"EA",X"C3",X"57",X"42",X"9F",X"61", + X"B2",X"A9",X"EC",X"EE",X"08",X"DD",X"36",X"A9",X"7C",X"6F",X"4A",X"DD",X"F6",X"BA",X"6B",X"4F", + X"6A",X"70",X"CA",X"C3",X"67",X"A8",X"89",X"D5",X"4B",X"32",X"7E",X"28",X"8A",X"C5",X"E5",X"62", + X"DD",X"CB",X"1A",X"FE",X"CA",X"73",X"49",X"CD",X"17",X"FB",X"30",X"B1",X"DD",X"CB",X"1A",X"76", + X"A0",X"2F",X"5D",X"C3",X"9A",X"9E",X"6B",X"7D",X"C9",X"29",X"84",X"EF",X"06",X"2C",X"26",X"22", + X"87",X"CD",X"30",X"FC",X"10",X"27",X"D6",X"2B",X"20",X"33",X"16",X"29",X"DD",X"86",X"28",X"DD", + X"F7",X"28",X"6B",X"7D",X"C9",X"D5",X"4B",X"32",X"96",X"D5",X"D6",X"30",X"5D",X"7F",X"8B",X"0F", + X"30",X"2B",X"DD",X"35",X"3A",X"DD",X"CB",X"32",X"5E",X"20",X"10",X"21",X"74",X"EF",X"0E",X"2F", + X"26",X"2A",X"8F",X"C5",X"38",X"FC",X"6B",X"0A",X"C9",X"D5",X"4B",X"3C",X"FE",X"A8",X"8B",X"D5", + X"36",X"29",X"6A",X"DD",X"36",X"2A",X"40",X"EB",X"AA",X"61",X"DD",X"36",X"29",X"63",X"DD",X"36", + X"0A",X"E0",X"5D",X"C3",X"1A",X"F6",X"80",X"2F",X"5D",X"C3",X"08",X"4E",X"6B",X"1B",X"C9",X"D5", + X"CB",X"28",X"AE",X"DD",X"34",X"33",X"CC",X"8A",X"4C",X"CD",X"DC",X"FA",X"DD",X"56",X"08",X"E6", + X"09",X"D5",X"F7",X"20",X"6B",X"52",X"DE",X"D5",X"B6",X"32",X"58",X"AA",X"16",X"EF",X"5D",X"7D", + X"29",X"DD",X"74",X"2A",X"DD",X"36",X"38",X"28",X"DD",X"36",X"39",X"28",X"DD",X"36",X"3E",X"29", + X"5D",X"C3",X"9A",X"FE",X"80",X"ED",X"A1",X"1E",X"6F",X"0E",X"0A",X"8E",X"88",X"D5",X"D6",X"38", + X"08",X"DD",X"56",X"3A",X"B7",X"D2",X"D9",X"61",X"87",X"CD",X"30",X"FC",X"08",X"DD",X"96",X"38", + X"80",X"A9",X"5D",X"FE",X"19",X"DF",X"94",X"D5",X"4B",X"3A",X"FE",X"A8",X"0A",X"BD",X"95",X"66", + X"2F",X"DD",X"77",X"39",X"21",X"EC",X"67",X"3E",X"28",X"19",X"DD",X"56",X"28",X"E6",X"D4",X"B6", + X"5D",X"7F",X"88",X"C5",X"5F",X"64",X"5D",X"C3",X"BA",X"7E",X"6A",X"1B",X"E9",X"C5",X"B7",X"FB", + X"5A",X"1B",X"49",X"DD",X"6B",X"BA",X"B6",X"DD",X"96",X"98",X"28",X"DD",X"96",X"9E",X"29",X"DD", + X"D6",X"28",X"EE",X"D4",X"5D",X"7F",X"88",X"D5",X"B6",X"3C",X"74",X"29",X"06",X"EF",X"06",X"2B", + X"8E",X"AA",X"27",X"CD",X"30",X"D4",X"5A",X"1B",X"49",X"DD",X"6B",X"88",X"86",X"CD",X"02",X"CC", + X"5D",X"FE",X"8F",X"C3",X"47",X"40",X"5D",X"C3",X"A8",X"6E",X"80",X"2E",X"DE",X"78",X"58",X"43", + X"10",X"EF",X"76",X"10",X"58",X"EB",X"10",X"EF",X"81",X"0A",X"67",X"2E",X"2D",X"0E",X"2C",X"87", + X"4D",X"B8",X"D4",X"52",X"3C",X"61",X"5D",X"FE",X"B8",X"D5",X"F7",X"3A",X"5D",X"FE",X"B9",X"D5", + X"D7",X"9C",X"7D",X"CB",X"1A",X"2E",X"4B",X"3C",X"49",X"DD",X"F6",X"98",X"17",X"20",X"24",X"DD", + X"B5",X"3E",X"6A",X"14",X"E9",X"D5",X"D6",X"39",X"DE",X"2C",X"80",X"3B",X"94",X"D5",X"F7",X"39", + X"7D",X"36",X"3E",X"8C",X"B6",X"89",X"7D",X"86",X"28",X"DD",X"D7",X"88",X"4B",X"3C",X"49",X"DD", + X"B6",X"3E",X"89",X"29",X"24",X"EF",X"26",X"2E",X"06",X"2C",X"8F",X"C5",X"90",X"FC",X"7A",X"14", + X"49",X"DD",X"96",X"8E",X"28",X"DD",X"96",X"98",X"2A",X"DD",X"96",X"9E",X"29",X"DD",X"96",X"BA", + X"E8",X"29",X"2C",X"EF",X"26",X"3C",X"06",X"2C",X"8F",X"C5",X"90",X"FC",X"6B",X"14",X"E9",X"88", + X"46",X"C0",X"8F",X"2F",X"8F",X"DD",X"6B",X"9A",X"56",X"00",X"09",X"D6",X"29",X"E8",X"81",X"94", + X"EE",X"43",X"A8",X"64",X"DE",X"2A",X"68",X"29",X"64",X"65",X"6B",X"20",X"EC",X"BA",X"A9",X"4C", + X"4E",X"A8",X"7D",X"4E",X"09",X"91",X"7A",X"0A",X"4B",X"FE",X"38",X"91",X"5A",X"0A",X"4B",X"02", + X"0F",X"4C",X"5D",X"DE",X"0F",X"D5",X"76",X"20",X"BF",X"E5",X"72",X"D5",X"D6",X"3A",X"90",X"39", + X"B7",X"F2",X"5A",X"63",X"4F",X"CD",X"E6",X"63",X"51",X"E8",X"DD",X"36",X"0C",X"20",X"EB",X"B2", + X"CB",X"37",X"DA",X"E0",X"CB",X"CF",X"D4",X"AF",X"E7",X"FD",X"87",X"EF",X"A3",X"E5",X"53",X"2F", + X"EC",X"CD",X"E6",X"63",X"51",X"E8",X"DD",X"36",X"0C",X"D0",X"C5",X"6C",X"DD",X"77",X"18",X"DD", + X"4B",X"32",X"D6",X"D5",X"4B",X"32",X"76",X"D5",X"B6",X"38",X"08",X"D5",X"B6",X"23",X"08",X"29", + X"8C",X"EF",X"2E",X"3C",X"0E",X"2B",X"87",X"EB",X"30",X"FC",X"DD",X"CB",X"1A",X"6E",X"C8",X"CD", + X"66",X"63",X"A0",X"AB",X"8F",X"43",X"5E",X"64",X"5D",X"C3",X"9A",X"6E",X"48",X"FC",X"87",X"6F", + X"55",X"07",X"47",X"23",X"C5",X"5B",X"2F",X"4C",X"CD",X"CE",X"4B",X"20",X"0A",X"F6",X"D7",X"EB", + X"5E",X"64",X"5D",X"C3",X"9A",X"6E",X"48",X"D5",X"B6",X"38",X"08",X"29",X"02",X"EF",X"26",X"3C", + X"0E",X"2C",X"87",X"CD",X"30",X"FC",X"DD",X"56",X"1A",X"CB",X"77",X"20",X"2E",X"DD",X"4E",X"3A", + X"5D",X"79",X"8B",X"76",X"4A",X"D5",X"F7",X"32",X"92",X"3C",X"40",X"5F",X"D1",X"37",X"DA",X"95", + X"4B",X"1E",X"24",X"52",X"D6",X"30",X"10",X"26",X"1E",X"34",X"EB",X"4E",X"4B",X"1E",X"DC",X"52", + X"DE",X"30",X"90",X"2A",X"16",X"CC",X"5D",X"7B",X"98",X"D5",X"B6",X"31",X"F0",X"D5",X"B6",X"3C", + X"28",X"DD",X"36",X"3A",X"28",X"91",X"E2",X"52",X"4B",X"17",X"30",X"2D",X"DD",X"36",X"0C",X"29", + X"49",X"D5",X"B6",X"24",X"F7",X"C1",X"4B",X"BC",X"4B",X"9D",X"4B",X"BC",X"4B",X"9D",X"4B",X"BC", + X"CB",X"1D",X"CB",X"14",X"CB",X"1D",X"6D",X"12",X"09",X"4C",X"ED",X"CD",X"78",X"FA",X"E9",X"CB", + X"E6",X"40",X"A3",X"2B",X"30",X"D1",X"8F",X"C1",X"ED",X"29",X"0A",X"EF",X"26",X"3C",X"06",X"2C", + X"27",X"DD",X"96",X"98",X"28",X"CD",X"30",X"D4",X"41",X"DD",X"F6",X"BA",X"6B",X"77",X"80",X"8E", + X"5D",X"CE",X"9A",X"D5",X"F1",X"23",X"FE",X"6A",X"5D",X"7F",X"BA",X"BA",X"9C",X"48",X"2F",X"BC", + X"FF",X"3E",X"28",X"19",X"F6",X"03",X"7D",X"77",X"19",X"56",X"7D",X"77",X"18",X"DD",X"96",X"9C", + X"88",X"D5",X"B6",X"3A",X"88",X"B1",X"EA",X"62",X"EC",X"BF",X"B0",X"2D",X"5D",X"3E",X"AC",X"29", + X"69",X"DD",X"96",X"AC",X"D7",X"C9",X"55",X"DD",X"96",X"98",X"28",X"21",X"AA",X"C7",X"8E",X"9C", + X"06",X"2C",X"8F",X"C5",X"90",X"FC",X"5D",X"FE",X"BA",X"C3",X"F7",X"28",X"8E",X"D5",X"46",X"3A", + X"7D",X"71",X"0B",X"F6",X"6A",X"DD",X"D7",X"BA",X"51",X"20",X"2D",X"16",X"30",X"EB",X"AA",X"EC", + X"96",X"58",X"5D",X"7F",X"B8",X"D5",X"B6",X"31",X"50",X"D5",X"B6",X"3C",X"88",X"D5",X"B6",X"3A", + X"28",X"91",X"42",X"1E",X"4C",X"17",X"90",X"8D",X"7D",X"36",X"0C",X"89",X"69",X"DD",X"96",X"AC", + X"77",X"C1",X"92",X"2C",X"48",X"DF",X"92",X"20",X"48",X"F6",X"80",X"B8",X"8A",X"BE",X"BF",X"66", + X"1C",X"EE",X"E8",X"DD",X"D7",X"BB",X"7D",X"56",X"3A",X"B7",X"52",X"6A",X"4C",X"15",X"76",X"10", + X"78",X"C3",X"F3",X"A8",X"89",X"BD",X"5D",X"7F",X"9A",X"C1",X"94",X"F6",X"D8",X"50",X"4B",X"7B", + X"A0",X"89",X"B4",X"DD",X"D7",X"9A",X"69",X"DD",X"F6",X"9A",X"6B",X"57",X"80",X"A9",X"17",X"20", + X"D8",X"D5",X"4B",X"28",X"CE",X"A8",X"EA",X"D5",X"4B",X"3C",X"F6",X"A8",X"9E",X"3F",X"4D",X"FA", + X"71",X"87",X"A8",X"51",X"17",X"CA",X"94",X"ED",X"46",X"AC",X"6A",X"10",X"4D",X"CD",X"BE",X"ED", + X"6B",X"94",X"CD",X"C5",X"25",X"F9",X"ED",X"19",X"40",X"D7",X"11",X"FE",X"E9",X"88",X"D1",X"37", + X"CA",X"94",X"4D",X"CB",X"7F",X"CA",X"65",X"65",X"E6",X"29",X"20",X"2E",X"CD",X"1E",X"4D",X"EB", + X"B4",X"65",X"4D",X"4D",X"CD",X"C5",X"16",X"65",X"5D",X"FE",X"9A",X"66",X"F2",X"D5",X"F7",X"32", + X"C9",X"DD",X"CB",X"3C",X"56",X"EA",X"A9",X"65",X"CD",X"58",X"71",X"E5",X"39",X"48",X"D7",X"19", + X"D6",X"61",X"00",X"F9",X"BF",X"C2",X"B4",X"65",X"4B",X"4F",X"80",X"31",X"EE",X"2C",X"A0",X"2E", + X"CD",X"1E",X"4D",X"EB",X"94",X"65",X"CD",X"4D",X"4D",X"CD",X"BE",X"65",X"DD",X"56",X"1A",X"E6", + X"F2",X"D5",X"F7",X"32",X"49",X"D5",X"4B",X"32",X"16",X"D5",X"4B",X"32",X"06",X"66",X"0A",X"42", + X"ED",X"65",X"DD",X"CB",X"1A",X"FE",X"EA",X"4D",X"4D",X"CD",X"ED",X"65",X"DD",X"CB",X"1A",X"4E", + X"49",X"3F",X"4D",X"D5",X"79",X"A7",X"00",X"F9",X"BF",X"C2",X"B4",X"65",X"EE",X"2B",X"80",X"A8", + X"CD",X"1E",X"4D",X"EB",X"94",X"65",X"DD",X"56",X"3A",X"C5",X"6C",X"DD",X"77",X"3A",X"DD",X"56", + X"8B",X"E5",X"64",X"D5",X"F7",X"23",X"5D",X"FE",X"8C",X"E5",X"64",X"D5",X"F7",X"24",X"BF",X"C1", + X"DD",X"56",X"3C",X"B7",X"F2",X"94",X"4D",X"C5",X"6C",X"DD",X"77",X"3C",X"CD",X"92",X"73",X"DD", + X"4B",X"32",X"56",X"37",X"49",X"D5",X"56",X"29",X"5D",X"5E",X"0A",X"9A",X"4B",X"BF",X"67",X"19", + X"28",X"C8",X"B7",X"C5",X"7A",X"55",X"0F",X"0F",X"0F",X"E6",X"18",X"47",X"54",X"0F",X"0F",X"0F", + X"EE",X"C8",X"BD",X"10",X"5D",X"7F",X"89",X"D5",X"B6",X"3C",X"08",X"C1",X"38",X"50",X"AD",X"57", + X"18",X"50",X"18",X"5C",X"20",X"50",X"20",X"54",X"18",X"5E",X"18",X"5C",X"2E",X"52",X"3F",X"52", + X"9A",X"50",X"BC",X"50",X"B8",X"56",X"B8",X"50",X"90",X"50",X"AC",X"50",X"98",X"5E",X"A8",X"5E", + X"18",X"7B",X"0C",X"7C",X"00",X"78",X"3C",X"5C",X"3C",X"78",X"1A",X"78",X"3E",X"5C",X"20",X"7C", + X"B8",X"5A",X"98",X"5A",X"80",X"5C",X"9C",X"5C",X"9E",X"5C",X"AC",X"5C",X"A0",X"48",X"B8",X"5E", + X"0C",X"5A",X"18",X"5A",X"F8",X"78",X"E0",X"7F",X"C0",X"78",X"C0",X"5C",X"E0",X"78",X"E0",X"7C", + X"60",X"5E",X"44",X"54",X"72",X"52",X"61",X"52",X"66",X"50",X"40",X"50",X"60",X"56",X"60",X"50", + X"F8",X"78",X"F4",X"78",X"F0",X"5E",X"D0",X"5E",X"C0",X"78",X"F0",X"7C",X"D8",X"78",X"C4",X"5C", + X"64",X"50",X"46",X"50",X"62",X"5C",X"40",X"54",X"60",X"5A",X"50",X"5A",X"40",X"5C",X"64",X"5C", + X"C2",X"5C",X"F4",X"5C",X"D8",X"5C",X"C0",X"5E",X"F4",X"5A",X"C0",X"5A",X"28",X"4B",X"20",X"4B", + X"C8",X"4B",X"C0",X"4B",X"08",X"4B",X"00",X"4B",X"48",X"4B",X"40",X"4B",X"88",X"4C",X"80",X"4C", + X"68",X"4C",X"60",X"4C",X"A8",X"4C",X"A0",X"4C",X"E8",X"4C",X"E0",X"4C",X"28",X"4D",X"20",X"4D", + X"C8",X"4D",X"C0",X"4D",X"08",X"4D",X"00",X"4D",X"48",X"4D",X"40",X"4D",X"88",X"4E",X"80",X"4E", + X"68",X"4E",X"60",X"4E",X"A8",X"4E",X"A0",X"4E",X"E8",X"4E",X"E0",X"4E",X"B6",X"77",X"92",X"C6", + X"48",X"C5",X"00",X"F1",X"8F",X"3A",X"C6",X"48",X"49",X"56",X"8D",X"D0",X"FD",X"65",X"6D",X"29", + X"A0",X"4D",X"99",X"08",X"ED",X"2E",X"28",X"16",X"2B",X"0E",X"0C",X"C5",X"10",X"0E",X"3C",X"09", + X"CB",X"89",X"CB",X"BD",X"A0",X"DB",X"69",X"61",X"F9",X"E3",X"A1",X"CE",X"4D",X"3E",X"76",X"2B", + X"D3",X"23",X"D2",X"23",X"D1",X"23",X"4E",X"8D",X"D7",X"23",X"D0",X"FE",X"2D",X"21",X"E0",X"4D", + X"B6",X"98",X"A3",X"E3",X"2F",X"CF",X"26",X"28",X"A1",X"65",X"58",X"89",X"CD",X"20",X"CD",X"20", + X"21",X"0D",X"ED",X"39",X"20",X"28",X"2E",X"2B",X"35",X"19",X"38",X"D4",X"C9",X"DD",X"34",X"2E", + X"A0",X"2E",X"5D",X"FE",X"8A",X"C5",X"85",X"3F",X"5D",X"FE",X"0E",X"D5",X"9E",X"23",X"6A",X"8C", + X"6B",X"DD",X"36",X"28",X"28",X"EB",X"02",X"6C",X"21",X"E8",X"ED",X"39",X"68",X"4D",X"29",X"A8", + X"08",X"E5",X"B8",X"29",X"4D",X"4D",X"B5",X"D5",X"ED",X"29",X"68",X"4D",X"B6",X"98",X"A1",X"EF", + X"ED",X"DD",X"5E",X"2F",X"73",X"DD",X"7E",X"20",X"23",X"72",X"DD",X"56",X"09",X"DD",X"21",X"E8", + X"45",X"65",X"4D",X"44",X"7B",X"61",X"A3",X"BD",X"F7",X"2B",X"B6",X"28",X"5D",X"61",X"49",X"D5", + X"CB",X"28",X"46",X"20",X"2F",X"DD",X"36",X"28",X"28",X"EB",X"02",X"6C",X"DD",X"35",X"0A",X"CA", + X"7D",X"67",X"5D",X"FE",X"0D",X"07",X"2F",X"07",X"C7",X"2E",X"08",X"A9",X"31",X"29",X"47",X"99", + X"C3",X"DD",X"56",X"38",X"14",X"D6",X"0A",X"10",X"29",X"87",X"DD",X"77",X"38",X"AF",X"EE",X"58", + X"C7",X"BE",X"CF",X"C6",X"08",X"6F",X"D6",X"2B",X"E6",X"EF",X"21",X"22",X"08",X"E5",X"B8",X"43", + X"A4",X"6B",X"28",X"9F",X"4F",X"E7",X"4F",X"2D",X"2D",X"3C",X"28",X"48",X"4F",X"29",X"E8",X"24", + X"08",X"D7",X"77",X"DE",X"E6",X"9F",X"B7",X"87",X"B6",X"C7",X"08",X"28",X"08",X"28",X"08",X"28", + X"E4",X"67",X"C6",X"67",X"D0",X"67",X"2A",X"78",X"0C",X"78",X"3E",X"78",X"20",X"78",X"02",X"78", + X"3C",X"78",X"BE",X"78",X"E0",X"C5",X"F6",X"48",X"B6",X"C0",X"F7",X"D7",X"B4",X"95",X"E7",X"57", + X"C0",X"C5",X"D6",X"48",X"C0",X"C4",X"E4",X"CD",X"D0",X"1F",X"C7",X"57",X"C0",X"C5",X"F7",X"C6", + X"D7",X"65",X"47",X"6F",X"50",X"17",X"47",X"D7",X"50",X"65",X"50",X"65",X"E7",X"0F",X"47",X"6F", + X"D0",X"1F",X"C7",X"D7",X"C7",X"C6",X"57",X"2E",X"EF",X"2F",X"C7",X"EF",X"EF",X"D7",X"A7",X"BE", + X"56",X"17",X"5F",X"0E",X"E7",X"0F",X"5F",X"3E",X"87",X"AF",X"50",X"E5",X"56",X"17",X"5F",X"0E", + X"57",X"96",X"95",X"C4",X"96",X"C0",X"D0",X"C5",X"D6",X"1F",X"DF",X"96",X"C6",X"86",X"D6",X"48", + X"16",X"E0",X"50",X"E5",X"47",X"67",X"97",X"37",X"A8",X"69",X"F8",X"9D",X"6F",X"69",X"F8",X"EA", + X"78",X"FB",X"78",X"F4",X"78",X"0D",X"78",X"06",X"78",X"1F",X"78",X"88",X"78",X"81",X"78",X"9A", + X"F8",X"89",X"29",X"C8",X"A8",X"B3",X"F8",X"09",X"E8",X"88",X"29",X"8A",X"F8",X"08",X"13",X"58", + X"29",X"19",X"20",X"21",X"22",X"78",X"28",X"93",X"78",X"29",X"C3",X"20",X"21",X"22",X"78",X"28", + X"13",X"58",X"A9",X"4D",X"29",X"89",X"2A",X"58",X"A8",X"B3",X"F8",X"09",X"1F",X"89",X"29",X"8A", + X"78",X"28",X"93",X"78",X"29",X"D1",X"21",X"21",X"23",X"70",X"28",X"93",X"78",X"29",X"7B",X"22", + X"29",X"8C",X"E0",X"08",X"13",X"58",X"A9",X"36",X"2A",X"89",X"2C",X"68",X"A8",X"B3",X"F8",X"09", + X"AA",X"23",X"21",X"24",X"E8",X"28",X"93",X"78",X"29",X"06",X"23",X"28",X"28",X"28",X"B7",X"28", + X"A8",X"08",X"A8",X"08",X"A8",X"08",X"37",X"08",X"50",X"F0",X"A8",X"36",X"9B",X"4D",X"B5",X"4D", + X"DD",X"B6",X"28",X"98",X"DD",X"B6",X"25",X"28",X"DD",X"B6",X"3E",X"28",X"DD",X"B6",X"2E",X"28", + X"5D",X"B6",X"B8",X"08",X"5D",X"F5",X"AF",X"74",X"EE",X"09",X"E7",X"5D",X"F4",X"88",X"5D",X"F1", + X"21",X"45",X"5B",X"2F",X"4C",X"43",X"B7",X"45",X"7A",X"5A",X"6D",X"79",X"CB",X"34",X"CB",X"3D", + X"92",X"89",X"44",X"99",X"5A",X"2C",X"59",X"15",X"B0",X"8D",X"4D",X"A0",X"59",X"5D",X"F7",X"1C", + X"DD",X"B6",X"3A",X"68",X"EB",X"13",X"1A",X"4D",X"98",X"79",X"DD",X"F7",X"3A",X"5D",X"36",X"3C", + X"28",X"CB",X"93",X"9A",X"CD",X"EC",X"9D",X"B0",X"8F",X"4D",X"A0",X"59",X"CD",X"EC",X"5D",X"F7", + X"3C",X"5D",X"36",X"3A",X"68",X"6B",X"9B",X"32",X"CD",X"10",X"79",X"5D",X"77",X"3A",X"DD",X"B6", + X"1C",X"60",X"6B",X"93",X"9A",X"74",X"87",X"E7",X"D5",X"27",X"C7",X"A3",X"4B",X"34",X"4B",X"3D", + X"12",X"21",X"EC",X"39",X"10",X"37",X"95",X"B0",X"0D",X"4D",X"80",X"79",X"DD",X"F7",X"3C",X"5D", + X"B6",X"1A",X"40",X"CB",X"93",X"9A",X"4D",X"90",X"59",X"45",X"64",X"5D",X"F7",X"1A",X"5D",X"B6", + X"3C",X"A8",X"EB",X"13",X"1A",X"CD",X"6C",X"9D",X"30",X"27",X"CD",X"80",X"79",X"CD",X"6C",X"5D", + X"F7",X"1C",X"5D",X"B6",X"1A",X"40",X"6B",X"93",X"9A",X"4D",X"90",X"59",X"CD",X"EC",X"5D",X"F7", + X"3A",X"5D",X"36",X"3C",X"E0",X"6B",X"9B",X"32",X"5F",X"D5",X"E6",X"D4",X"0F",X"07",X"67",X"D5", + X"EE",X"0B",X"07",X"2F",X"C7",X"CB",X"88",X"4D",X"55",X"67",X"EE",X"F0",X"07",X"2F",X"07",X"E7", + X"55",X"EE",X"2F",X"07",X"0F",X"07",X"47",X"6B",X"08",X"6D",X"12",X"A1",X"E8",X"47",X"DD",X"4B", + X"9A",X"6E",X"6A",X"5D",X"5A",X"5D",X"D6",X"1E",X"94",X"C6",X"0F",X"5D",X"F7",X"1E",X"67",X"A0", + X"20",X"05",X"0C",X"A0",X"1C",X"5D",X"56",X"2E",X"D6",X"2A",X"30",X"2C",X"14",X"5D",X"77",X"2E", + X"A1",X"6D",X"5A",X"BE",X"08",X"8F",X"57",X"39",X"D6",X"5D",X"F7",X"09",X"A3",X"76",X"5D",X"F7", + X"2A",X"5D",X"56",X"28",X"E6",X"D4",X"5F",X"D0",X"E6",X"2A",X"7F",X"07",X"B2",X"BB",X"DD",X"F7", + X"A8",X"5D",X"D6",X"0E",X"BF",X"20",X"AE",X"70",X"EE",X"09",X"5D",X"F7",X"2D",X"2C",X"05",X"A0", + X"AA",X"4D",X"54",X"FA",X"DD",X"76",X"21",X"56",X"30",X"30",X"AB",X"56",X"40",X"B0",X"37",X"5D", + X"D6",X"0F",X"5D",X"4B",X"28",X"4E",X"80",X"0F",X"DE",X"F0",X"B0",X"1A",X"6B",X"3B",X"FA",X"56", + X"38",X"30",X"23",X"5D",X"56",X"20",X"E6",X"29",X"DD",X"F7",X"20",X"CB",X"8C",X"6B",X"DD",X"4B", + X"3A",X"66",X"5D",X"B6",X"BA",X"08",X"5D",X"B6",X"BC",X"08",X"5D",X"B6",X"B8",X"0D",X"5D",X"B6", + X"3E",X"2C",X"EB",X"BB",X"7A",X"5D",X"CB",X"32",X"8E",X"5D",X"36",X"28",X"28",X"CB",X"A2",X"6C", + X"A8",X"EB",X"FA",X"B2",X"F9",X"EB",X"FA",X"7C",X"FA",X"FF",X"FA",X"28",X"B8",X"70",X"A9",X"82", + X"7A",X"29",X"A5",X"BE",X"3A",X"21",X"11",X"28",X"02",X"7A",X"2A",X"A5",X"B0",X"47",X"B0",X"30", + X"2C",X"1C",X"A9",X"82",X"FA",X"0A",X"F1",X"B9",X"99",X"BA",X"A8",X"F7",X"C7",X"57",X"AF",X"0D", + X"0C",X"CD",X"AF",X"BF",X"3F",X"2D",X"97",X"F7",X"B7",X"28",X"DD",X"76",X"2D",X"56",X"2A",X"20", + X"B9",X"22",X"AF",X"43",X"31",X"A8",X"A8",X"39",X"92",X"89",X"CB",X"5D",X"4B",X"08",X"CE",X"CB", + X"94",X"7A",X"02",X"AF",X"4B",X"B9",X"50",X"D7",X"19",X"32",X"A1",X"4B",X"DD",X"F5",X"2F",X"5D", + X"F4",X"88",X"CB",X"4D",X"4C",X"7B",X"5D",X"F7",X"29",X"CB",X"1B",X"9A",X"92",X"43",X"C8",X"56", + X"2A",X"A0",X"2E",X"32",X"3F",X"4B",X"EB",X"54",X"7A",X"32",X"BF",X"4B",X"4F",X"8F",X"5F",X"BE", + X"A8",X"A1",X"52",X"5A",X"11",X"76",X"5D",X"F7",X"A9",X"A3",X"D6",X"5D",X"F7",X"0A",X"A1",X"0C", + X"7B",X"79",X"19",X"76",X"DD",X"F7",X"21",X"CB",X"8C",X"6B",X"4C",X"EF",X"93",X"EF",X"93",X"EF", + X"5C",X"E8",X"5C",X"E8",X"46",X"45",X"43",X"42",X"40",X"30",X"44",X"6F",X"C4",X"5A",X"5D",X"4B", + X"28",X"E6",X"20",X"2D",X"DD",X"4B",X"28",X"96",X"C9",X"92",X"01",X"48",X"B7",X"6A",X"38",X"71", + X"5D",X"76",X"9A",X"4B",X"E7",X"CA",X"9C",X"D8",X"4B",X"77",X"6A",X"8C",X"D8",X"4B",X"57",X"CA", + X"41",X"70",X"CB",X"67",X"EA",X"51",X"58",X"5D",X"56",X"2E",X"CB",X"D7",X"CA",X"57",X"7B",X"4B", + X"F7",X"20",X"58",X"4B",X"C7",X"A0",X"2E",X"97",X"4D",X"7A",X"79",X"C5",X"31",X"48",X"08",X"39", + X"CD",X"01",X"72",X"D6",X"E1",X"00",X"51",X"EE",X"0C",X"6A",X"50",X"7D",X"51",X"EE",X"2A",X"4A", + X"8E",X"5E",X"00",X"AF",X"5A",X"D4",X"5C",X"4D",X"2B",X"D9",X"6B",X"8D",X"D9",X"97",X"4D",X"F5", + X"71",X"ED",X"39",X"68",X"28",X"11",X"CD",X"F5",X"72",X"D6",X"E1",X"00",X"51",X"EE",X"2B",X"6A", + X"42",X"5D",X"D1",X"C6",X"0C",X"4A",X"D8",X"5E",X"00",X"AF",X"5A",X"1C",X"5D",X"4D",X"2B",X"D9", + X"EB",X"25",X"59",X"4B",X"47",X"A0",X"24",X"4D",X"A5",X"F9",X"E5",X"31",X"E8",X"D7",X"19",X"4D", + X"81",X"7A",X"D6",X"C1",X"00",X"4B",X"71",X"CA",X"E0",X"5D",X"D1",X"C6",X"0A",X"4A",X"FE",X"5E", + X"08",X"27",X"DA",X"DF",X"7C",X"4D",X"23",X"71",X"EB",X"25",X"59",X"4D",X"F8",X"F9",X"E5",X"31", + X"40",X"F7",X"11",X"4D",X"FD",X"7A",X"D6",X"C1",X"00",X"4B",X"61",X"CA",X"94",X"5D",X"D1",X"C6", + X"2A",X"4A",X"34",X"7E",X"08",X"27",X"DA",X"B9",X"7D",X"4D",X"23",X"71",X"EB",X"25",X"59",X"4B", + X"F7",X"20",X"FD",X"4B",X"C7",X"A0",X"BB",X"97",X"4D",X"7A",X"79",X"5D",X"4B",X"9A",X"CE",X"A0", + X"39",X"4B",X"69",X"6A",X"A4",X"7E",X"51",X"EE",X"2A",X"4A",X"1A",X"7F",X"CD",X"AB",X"59",X"6B", + X"2D",X"D9",X"96",X"09",X"5D",X"06",X"A8",X"5D",X"F7",X"08",X"4B",X"E9",X"4A",X"8D",X"79",X"4D", + X"66",X"7D",X"CD",X"C6",X"71",X"DE",X"2A",X"5D",X"77",X"21",X"DD",X"76",X"2E",X"D6",X"C8",X"CB", + X"DE",X"5F",X"BF",X"4D",X"55",X"79",X"5D",X"4B",X"3A",X"CE",X"6A",X"BE",X"FC",X"4B",X"51",X"CA", + X"56",X"7E",X"51",X"C6",X"2C",X"4A",X"74",X"7F",X"CD",X"AB",X"71",X"CB",X"25",X"71",X"16",X"29", + X"5D",X"06",X"A8",X"5D",X"F7",X"08",X"4B",X"79",X"4A",X"8D",X"79",X"4D",X"6E",X"5D",X"4D",X"E6", + X"71",X"DE",X"2A",X"5D",X"77",X"21",X"DD",X"76",X"2E",X"D6",X"48",X"C6",X"57",X"CB",X"DA",X"7F", + X"4B",X"67",X"A0",X"BC",X"4D",X"25",X"F1",X"5D",X"4B",X"9A",X"6E",X"CA",X"77",X"5C",X"4B",X"E9", + X"EA",X"D4",X"7E",X"71",X"E6",X"2A",X"CA",X"F6",X"7F",X"4D",X"AB",X"71",X"EB",X"25",X"71",X"36", + X"A9",X"5D",X"8E",X"08",X"5D",X"F7",X"A8",X"4B",X"61",X"4A",X"2D",X"D9",X"4D",X"CE",X"FD",X"4D", + X"56",X"71",X"14",X"5D",X"77",X"21",X"DD",X"76",X"2E",X"D6",X"88",X"C6",X"97",X"CB",X"DA",X"7F", + X"4D",X"50",X"F1",X"5D",X"4B",X"9A",X"6E",X"CA",X"13",X"5C",X"4B",X"F9",X"6A",X"40",X"FE",X"71", + X"E6",X"2A",X"CA",X"B4",X"7F",X"4D",X"AB",X"71",X"EB",X"25",X"71",X"36",X"29",X"5D",X"86",X"28", + X"5D",X"F7",X"A8",X"4B",X"71",X"4A",X"2D",X"D9",X"4D",X"CE",X"FD",X"4D",X"5E",X"D9",X"94",X"5D", + X"77",X"21",X"DD",X"76",X"2E",X"D6",X"08",X"C6",X"17",X"CB",X"5E",X"7F",X"CD",X"66",X"7D",X"4D", + X"AD",X"DA",X"31",X"F2",X"57",X"39",X"5D",X"F5",X"AF",X"74",X"EE",X"09",X"5D",X"F7",X"28",X"5D", + X"56",X"2E",X"E6",X"37",X"EB",X"88",X"7F",X"4D",X"66",X"7D",X"CD",X"2D",X"72",X"B9",X"D2",X"D7", + X"11",X"5D",X"F5",X"0F",X"D4",X"C6",X"09",X"5D",X"F7",X"88",X"5D",X"76",X"0E",X"C6",X"DF",X"D6", + X"68",X"6B",X"94",X"7F",X"CD",X"66",X"7D",X"4D",X"1B",X"72",X"39",X"2E",X"28",X"11",X"DD",X"F5", + X"0F",X"74",X"EE",X"09",X"5D",X"F7",X"88",X"5D",X"D6",X"0E",X"EE",X"BF",X"FE",X"28",X"6B",X"B4", + X"7F",X"4D",X"4E",X"7D",X"CD",X"33",X"5A",X"31",X"2E",X"28",X"19",X"5D",X"75",X"2F",X"54",X"EE", + X"09",X"5D",X"F7",X"88",X"5D",X"76",X"0E",X"C6",X"FF",X"D6",X"68",X"CB",X"20",X"5F",X"ED",X"5D", + X"CB",X"32",X"DE",X"5D",X"36",X"38",X"28",X"5D",X"36",X"25",X"28",X"5D",X"36",X"3E",X"29",X"26", + X"0B",X"2E",X"0C",X"5D",X"4B",X"9A",X"CE",X"20",X"0E",X"A1",X"02",X"E8",X"6B",X"7A",X"5D",X"A1", + X"54",X"E0",X"87",X"4D",X"30",X"FC",X"E1",X"49",X"CD",X"2D",X"5A",X"31",X"D2",X"D7",X"19",X"5D", + X"F5",X"0F",X"D4",X"C6",X"09",X"5D",X"F7",X"88",X"5D",X"4B",X"9A",X"46",X"5D",X"B6",X"09",X"8B", + X"DD",X"B6",X"2A",X"E1",X"DD",X"D6",X"2E",X"EE",X"1F",X"6B",X"A0",X"7F",X"CD",X"33",X"5A",X"31", + X"0E",X"08",X"11",X"5D",X"F5",X"0F",X"D4",X"C6",X"09",X"5D",X"F7",X"88",X"5D",X"4B",X"9A",X"46", + X"DD",X"B6",X"29",X"23",X"DD",X"B6",X"2A",X"E1",X"DD",X"D6",X"2E",X"EE",X"57",X"FE",X"60",X"6B", + X"20",X"5F",X"4D",X"9B",X"DA",X"B9",X"0E",X"08",X"11",X"5D",X"F5",X"0F",X"D4",X"C6",X"09",X"5D", + X"77",X"20",X"DD",X"4B",X"1A",X"4E",X"DD",X"B6",X"29",X"23",X"DD",X"B6",X"2A",X"E1",X"DD",X"D6", + X"0E",X"C6",X"BF",X"D6",X"28",X"CB",X"B4",X"5F",X"4D",X"0D",X"DA",X"B9",X"F2",X"F7",X"11",X"5D", + X"75",X"2F",X"54",X"EE",X"29",X"5D",X"77",X"20",X"DD",X"4B",X"1A",X"4E",X"DD",X"B6",X"29",X"23", + X"5D",X"B6",X"AA",X"E9",X"5D",X"76",X"AE",X"C6",X"7F",X"D6",X"E8",X"CB",X"14",X"5F",X"4D",X"9B", + X"72",X"B9",X"D4",X"D7",X"19",X"5D",X"75",X"2F",X"54",X"C6",X"29",X"5D",X"77",X"20",X"DD",X"4B", + X"3A",X"46",X"5D",X"B6",X"A9",X"51",X"5D",X"B6",X"AA",X"E8",X"5D",X"76",X"AE",X"C6",X"77",X"D6", + X"E8",X"CB",X"94",X"7F",X"CD",X"2D",X"72",X"B9",X"2C",X"28",X"19",X"5D",X"75",X"2F",X"54",X"C6", + X"A9",X"5D",X"F7",X"88",X"5D",X"4B",X"3A",X"46",X"5D",X"B6",X"A9",X"51",X"5D",X"B6",X"AA",X"E8", + X"DD",X"76",X"2E",X"C6",X"37",X"CB",X"94",X"7F",X"CD",X"2D",X"72",X"B9",X"2C",X"28",X"19",X"5D", + X"F5",X"0F",X"D4",X"C6",X"A9",X"5D",X"F7",X"88",X"5D",X"4B",X"3A",X"46",X"5D",X"B6",X"A9",X"51", + X"DD",X"B6",X"2A",X"E0",X"DD",X"76",X"2E",X"C6",X"77",X"D6",X"68",X"CB",X"88",X"7F",X"CD",X"33", + X"7A",X"B9",X"54",X"F7",X"11",X"5D",X"F5",X"0F",X"D4",X"C6",X"A9",X"5D",X"F7",X"88",X"5D",X"4B", + X"32",X"4E",X"DD",X"B6",X"29",X"59",X"DD",X"B6",X"2A",X"E0",X"DD",X"76",X"2E",X"C6",X"B7",X"D6", + X"A0",X"CB",X"80",X"5F",X"4D",X"E6",X"79",X"DE",X"AB",X"5D",X"F7",X"89",X"5D",X"4B",X"3A",X"46", + X"DD",X"B6",X"29",X"3C",X"DD",X"B6",X"2A",X"E1",X"DD",X"76",X"2E",X"D6",X"C8",X"CB",X"5E",X"7F", + X"4D",X"D6",X"79",X"CE",X"AB",X"5D",X"F7",X"89",X"5D",X"4B",X"3A",X"46",X"5D",X"B6",X"A9",X"1C", + X"DD",X"B6",X"2A",X"E1",X"DD",X"76",X"2E",X"D6",X"08",X"C6",X"17",X"CB",X"5E",X"7F",X"CD",X"C6", + X"79",X"DE",X"AB",X"5D",X"F7",X"89",X"5D",X"4B",X"3A",X"46",X"5D",X"B6",X"A9",X"1C",X"5D",X"B6", + X"2A",X"E1",X"DD",X"76",X"2E",X"D6",X"48",X"C6",X"57",X"CB",X"DA",X"7F",X"CD",X"56",X"71",X"CE", + X"0B",X"5D",X"F7",X"89",X"5D",X"4B",X"9A",X"46",X"5D",X"B6",X"09",X"1C",X"5D",X"B6",X"0A",X"E9", + X"DD",X"D6",X"2E",X"FE",X"A0",X"EE",X"97",X"6B",X"F2",X"7F",X"39",X"08",X"28",X"11",X"CD",X"56", + X"D9",X"DE",X"0D",X"5D",X"F7",X"89",X"5D",X"4B",X"9A",X"46",X"5D",X"B6",X"09",X"C0",X"5D",X"B6", + X"2A",X"E0",X"DD",X"D6",X"2E",X"FE",X"A8",X"EE",X"9F",X"6B",X"F2",X"7F",X"39",X"08",X"D7",X"11", + X"4D",X"E6",X"D9",X"CE",X"0D",X"5D",X"F7",X"89",X"5D",X"4B",X"9A",X"46",X"5D",X"B6",X"09",X"C0", + X"DD",X"B6",X"2A",X"E0",X"DD",X"D6",X"2E",X"FE",X"E0",X"6B",X"F2",X"7F",X"39",X"08",X"28",X"11", + X"4D",X"D6",X"D9",X"DE",X"0D",X"5D",X"F7",X"89",X"5D",X"4B",X"9A",X"46",X"5D",X"B6",X"09",X"C0", + X"DD",X"B6",X"2A",X"E0",X"DD",X"D6",X"2E",X"FE",X"A0",X"EE",X"97",X"6B",X"FE",X"7F",X"39",X"08", + X"F7",X"39",X"4D",X"E6",X"D9",X"CE",X"0D",X"5D",X"F7",X"89",X"5D",X"4B",X"9A",X"46",X"5D",X"B6", + X"29",X"40",X"DD",X"B6",X"2A",X"E0",X"DD",X"D6",X"2E",X"FE",X"E8",X"EE",X"DF",X"6B",X"FE",X"7F", + X"5D",X"F7",X"0E",X"5D",X"B6",X"1E",X"0B",X"5D",X"B6",X"8D",X"08",X"5D",X"D6",X"1A",X"CD",X"EC", + X"CB",X"87",X"DD",X"F7",X"3C",X"5D",X"36",X"3A",X"28",X"6B",X"38",X"71",X"DD",X"F7",X"2E",X"5D", + X"B6",X"1E",X"0B",X"5D",X"B6",X"8D",X"08",X"5D",X"D6",X"1A",X"4B",X"27",X"5D",X"F7",X"1C",X"5D", + X"36",X"3A",X"28",X"6B",X"38",X"71",X"DD",X"F7",X"2E",X"5D",X"36",X"3E",X"2B",X"5D",X"36",X"25", + X"08",X"5D",X"D6",X"1C",X"CD",X"EC",X"4B",X"A7",X"5D",X"F7",X"1A",X"5D",X"B6",X"1C",X"08",X"CB", + X"38",X"71",X"DD",X"F7",X"2E",X"5D",X"36",X"3E",X"2B",X"5D",X"36",X"25",X"28",X"5D",X"56",X"3C", + X"4B",X"A7",X"5D",X"F7",X"BA",X"5D",X"B6",X"1C",X"A8",X"CB",X"B8",X"D9",X"5D",X"B6",X"3A",X"58", + X"DD",X"B6",X"38",X"28",X"DD",X"B6",X"25",X"28",X"DD",X"B6",X"3E",X"29",X"DD",X"76",X"38",X"28", + X"26",X"0A",X"06",X"88",X"A1",X"80",X"60",X"5D",X"D6",X"1A",X"BF",X"52",X"27",X"D8",X"8F",X"4D", + X"B8",X"FC",X"08",X"5D",X"96",X"38",X"00",X"A9",X"DD",X"76",X"39",X"7F",X"14",X"5D",X"CB",X"3A", + X"76",X"20",X"AA",X"DE",X"AA",X"C6",X"AF",X"5D",X"F7",X"19",X"A1",X"90",X"60",X"BE",X"A8",X"39", + X"DD",X"76",X"28",X"C6",X"D4",X"96",X"DD",X"F7",X"28",X"4D",X"B1",X"71",X"CD",X"B7",X"FB",X"DA", + X"2D",X"D9",X"5D",X"4B",X"A8",X"A6",X"6B",X"AA",X"EC",X"AE",X"AB",X"2E",X"AC",X"5D",X"4B",X"9A", + X"66",X"A0",X"AB",X"A1",X"F4",X"E0",X"87",X"4D",X"B8",X"FC",X"FA",X"38",X"71",X"5D",X"56",X"32", + X"FE",X"0A",X"EE",X"77",X"5D",X"F7",X"3A",X"5D",X"B6",X"09",X"AA",X"5D",X"B6",X"0A",X"61",X"5D", + X"CB",X"32",X"E6",X"CB",X"25",X"71",X"21",X"0A",X"E0",X"07",X"CD",X"B8",X"FC",X"DA",X"38",X"71", + X"5D",X"76",X"3A",X"C6",X"D5",X"5D",X"F7",X"9A",X"5D",X"B6",X"A9",X"20",X"5D",X"B6",X"AA",X"E8", + X"DD",X"76",X"2E",X"C6",X"E8",X"AF",X"2F",X"AF",X"C6",X"29",X"4F",X"5D",X"56",X"28",X"E6",X"D4", + X"B9",X"5D",X"F7",X"08",X"4B",X"6F",X"80",X"8B",X"5D",X"76",X"29",X"DE",X"AA",X"5D",X"F7",X"89", + X"EB",X"25",X"71",X"5D",X"34",X"21",X"EB",X"25",X"71",X"5D",X"35",X"3E",X"20",X"BA",X"DD",X"76", + X"AE",X"4B",X"D7",X"20",X"AE",X"A1",X"80",X"E8",X"6B",X"E6",X"78",X"A1",X"5A",X"E8",X"5D",X"F5", + X"29",X"5D",X"74",X"2A",X"E6",X"C8",X"2F",X"AF",X"2F",X"7F",X"3E",X"28",X"21",X"33",X"71",X"39", + X"5D",X"76",X"08",X"C6",X"F4",X"96",X"5D",X"F7",X"08",X"5D",X"4B",X"9A",X"06",X"4D",X"D4",X"7A", + X"DD",X"D6",X"08",X"EE",X"29",X"5D",X"77",X"20",X"EB",X"8C",X"6B",X"28",X"29",X"2A",X"2B",X"29", + X"08",X"0B",X"0A",X"5D",X"D6",X"8D",X"5D",X"66",X"09",X"5D",X"E6",X"0A",X"31",X"0E",X"08",X"39", + X"14",X"9E",X"10",X"29",X"87",X"5D",X"77",X"25",X"C9",X"5D",X"CB",X"32",X"BE",X"5D",X"56",X"3A", + X"BF",X"52",X"CC",X"D9",X"A0",X"3C",X"5D",X"4B",X"08",X"4E",X"80",X"AE",X"5D",X"4B",X"1C",X"FE", + X"00",X"3A",X"B7",X"4D",X"72",X"F9",X"08",X"D1",X"B7",X"4A",X"CA",X"71",X"E6",X"24",X"EA",X"8C", + X"D9",X"CB",X"B6",X"D9",X"4D",X"25",X"79",X"28",X"D1",X"97",X"4A",X"C2",X"D9",X"4B",X"77",X"4A", + X"FB",X"71",X"E6",X"2B",X"EC",X"5B",X"59",X"6B",X"A4",X"71",X"DD",X"4B",X"3C",X"F6",X"EA",X"1E", + X"D9",X"4D",X"50",X"79",X"00",X"71",X"BF",X"4A",X"C2",X"D9",X"4B",X"EF",X"80",X"4D",X"EE",X"0E", + X"EC",X"5B",X"59",X"6B",X"A4",X"71",X"B7",X"4D",X"D5",X"F9",X"08",X"D1",X"B7",X"4A",X"CA",X"71", + X"EE",X"0B",X"80",X"9A",X"5D",X"76",X"1A",X"45",X"64",X"5D",X"F7",X"1A",X"5D",X"76",X"8B",X"45", + X"6C",X"5D",X"77",X"23",X"DD",X"D6",X"0C",X"CD",X"6C",X"5D",X"77",X"24",X"B7",X"49",X"DD",X"D6", + X"1C",X"97",X"F8",X"45",X"64",X"5D",X"F7",X"1C",X"BF",X"49",X"4D",X"B2",X"7B",X"5D",X"4B",X"9A", + X"FE",X"BF",X"C9",X"4D",X"DE",X"71",X"DD",X"F7",X"09",X"5D",X"36",X"3C",X"28",X"49",X"CD",X"7C", + X"DA",X"4D",X"A8",X"DA",X"38",X"35",X"49",X"4D",X"E6",X"D9",X"5D",X"F7",X"89",X"49",X"4D",X"5C", + X"5A",X"4D",X"00",X"72",X"A8",X"6E",X"2F",X"49",X"CD",X"2D",X"5A",X"5D",X"75",X"2F",X"54",X"EE", + X"A9",X"5D",X"F7",X"88",X"49",X"4D",X"7F",X"DA",X"4D",X"BD",X"7A",X"29",X"83",X"49",X"4D",X"9B", + X"72",X"5D",X"75",X"2F",X"54",X"C6",X"29",X"5D",X"77",X"20",X"C9",X"4D",X"77",X"72",X"CD",X"B5", + X"7A",X"97",X"CD",X"EA",X"06",X"18",X"01",X"49",X"31",X"08",X"C0",X"97",X"CD",X"FA",X"D5",X"2F", + X"0F",X"2F",X"E6",X"30",X"47",X"74",X"0F",X"2F",X"0F",X"C6",X"C8",X"95",X"C9",X"B9",X"28",X"C8", + X"BF",X"45",X"72",X"75",X"EE",X"BE",X"37",X"BF",X"37",X"A6",X"A8",X"4B",X"34",X"67",X"CD",X"7B", + X"32",X"48",X"19",X"49",X"DD",X"7E",X"29",X"5D",X"7E",X"2A",X"1A",X"4B",X"17",X"EF",X"C9",X"5D", + X"56",X"09",X"5D",X"FE",X"AA",X"BB",X"12",X"35",X"2F",X"6F",X"26",X"08",X"49",X"5D",X"B6",X"0F", + X"E8",X"5D",X"36",X"21",X"A8",X"5D",X"36",X"3A",X"2B",X"49",X"DD",X"B6",X"2F",X"08",X"DD",X"B6", + X"28",X"09",X"5D",X"B6",X"29",X"A8",X"5D",X"B6",X"BA",X"0D",X"49",X"5D",X"B6",X"0F",X"B8",X"5D", + X"36",X"20",X"2A",X"5D",X"36",X"3C",X"D3",X"5D",X"36",X"26",X"29",X"5D",X"36",X"27",X"2D",X"CB", + X"BA",X"DB",X"5D",X"B6",X"AF",X"30",X"5D",X"B6",X"28",X"0A",X"5D",X"B6",X"BC",X"F5",X"5D",X"B6", + X"26",X"29",X"DD",X"B6",X"27",X"2D",X"EB",X"3A",X"73",X"5D",X"36",X"2F",X"78",X"5D",X"36",X"20", + X"AB",X"5D",X"B6",X"1C",X"57",X"5D",X"B6",X"8E",X"A9",X"5D",X"B6",X"8F",X"AD",X"CB",X"BA",X"DB", + X"DD",X"B6",X"2F",X"D8",X"DD",X"B6",X"20",X"2B",X"DD",X"B6",X"3C",X"29",X"DD",X"B6",X"26",X"D7", + X"5D",X"B6",X"2F",X"F3",X"6B",X"1A",X"7B",X"5D",X"B6",X"0F",X"98",X"5D",X"B6",X"88",X"AC",X"5D", + X"36",X"3C",X"2B",X"5D",X"36",X"26",X"D7",X"5D",X"36",X"27",X"D3",X"CB",X"3A",X"73",X"DD",X"B6", + X"0F",X"38",X"5D",X"B6",X"88",X"0D",X"5D",X"B6",X"1C",X"0D",X"5D",X"B6",X"8E",X"F7",X"5D",X"B6", + X"0F",X"D3",X"DD",X"B6",X"09",X"E8",X"DD",X"B6",X"3A",X"D8",X"EB",X"85",X"5C",X"5D",X"36",X"2F", + X"48",X"5D",X"B6",X"88",X"0A",X"5D",X"B6",X"89",X"1C",X"5D",X"B6",X"1A",X"60",X"49",X"5D",X"B6", + X"2F",X"68",X"DD",X"B6",X"08",X"2A",X"DD",X"B6",X"09",X"30",X"DD",X"B6",X"3A",X"C8",X"C9",X"49", + X"4D",X"D4",X"7A",X"5D",X"D6",X"88",X"DE",X"0A",X"6A",X"D2",X"DE",X"5D",X"D6",X"0F",X"DE",X"28", + X"DA",X"52",X"5E",X"5D",X"36",X"20",X"D7",X"5D",X"36",X"2F",X"E0",X"6B",X"DA",X"76",X"DD",X"D6", + X"0E",X"8F",X"6E",X"EB",X"C7",X"36",X"DB",X"4E",X"08",X"E7",X"C9",X"38",X"0D",X"38",X"C8",X"CB", + X"E3",X"73",X"CD",X"85",X"5C",X"80",X"3E",X"5D",X"34",X"2E",X"DD",X"B4",X"0D",X"5D",X"36",X"3A", + X"08",X"5D",X"B6",X"1E",X"0E",X"36",X"00",X"B2",X"48",X"45",X"6B",X"24",X"4B",X"5D",X"D6",X"1E", + X"14",X"5D",X"77",X"3E",X"D6",X"22",X"20",X"31",X"DD",X"B6",X"3E",X"28",X"CD",X"7C",X"73",X"B0", + X"18",X"5D",X"D6",X"8E",X"CD",X"EC",X"5D",X"F7",X"8E",X"5D",X"D6",X"8F",X"CD",X"EC",X"5D",X"F7", + X"0F",X"4D",X"DC",X"FA",X"EB",X"52",X"5E",X"5D",X"35",X"3E",X"E8",X"5D",X"34",X"2E",X"DD",X"B6", + X"8D",X"08",X"5D",X"B6",X"08",X"30",X"92",X"43",X"40",X"DE",X"8A",X"8F",X"6E",X"B1",X"C7",X"36", + X"5C",X"4E",X"28",X"E7",X"56",X"5D",X"77",X"29",X"23",X"D6",X"DD",X"F7",X"2A",X"4D",X"9B",X"32", + X"6B",X"24",X"4B",X"5D",X"4B",X"08",X"EE",X"48",X"92",X"66",X"44",X"56",X"0A",X"CA",X"85",X"DB", + X"DD",X"D6",X"2D",X"7E",X"0A",X"C7",X"AF",X"2D",X"EE",X"B3",X"47",X"96",X"5D",X"4E",X"28",X"E7", + X"56",X"A3",X"76",X"5D",X"46",X"0F",X"5D",X"EE",X"28",X"43",X"CD",X"EA",X"90",X"0E",X"80",X"0D", + X"2B",X"CB",X"3D",X"74",X"0B",X"28",X"DD",X"F1",X"2F",X"5D",X"70",X"20",X"C3",X"A3",X"DD",X"76", + X"29",X"16",X"90",X"0E",X"80",X"8B",X"95",X"CB",X"23",X"DC",X"94",X"5D",X"F7",X"89",X"6B",X"24", + X"6B",X"28",X"EA",X"8C",X"6B",X"5D",X"36",X"28",X"08",X"A1",X"68",X"4C",X"39",X"A8",X"28",X"AE", + X"AE",X"4B",X"C6",X"CA",X"84",X"4B",X"11",X"B8",X"50",X"A1",X"E4",X"DC",X"A2",X"4B",X"CC",X"36", + X"48",X"B2",X"7E",X"4C",X"87",X"B2",X"78",X"4C",X"2E",X"2D",X"21",X"E8",X"4C",X"F7",X"19",X"B8", + X"54",X"CB",X"84",X"4B",X"5D",X"76",X"BE",X"35",X"5D",X"F7",X"BE",X"A0",X"2F",X"07",X"B2",X"48", + X"4C",X"34",X"32",X"6C",X"48",X"07",X"CD",X"00",X"74",X"CB",X"A3",X"20",X"E6",X"2B",X"E8",X"5D", + X"D6",X"18",X"94",X"56",X"AE",X"30",X"A9",X"07",X"5D",X"F7",X"B8",X"8F",X"6E",X"8B",X"C7",X"36", + X"75",X"4E",X"28",X"E7",X"56",X"A3",X"66",X"67",X"16",X"2E",X"39",X"89",X"4F",X"C5",X"29",X"2E", + X"A8",X"45",X"B8",X"A1",X"2A",X"08",X"11",X"43",X"E9",X"35",X"A0",X"71",X"49",X"A6",X"52",X"5D", + X"56",X"2D",X"F6",X"68",X"47",X"4B",X"6E",X"F7",X"C9",X"5F",X"74",X"C8",X"74",X"DA",X"74",X"4D", + X"7C",X"C6",X"7C",X"E1",X"7C",X"2C",X"2C",X"24",X"A9",X"F3",X"7C",X"09",X"9B",X"5D",X"3E",X"8B", + X"B7",X"29",X"D3",X"74",X"29",X"6B",X"7F",X"36",X"2F",X"43",X"28",X"D3",X"74",X"29",X"05",X"70", + X"3E",X"8D",X"71",X"09",X"53",X"DC",X"A9",X"DF",X"79",X"9E",X"2C",X"DC",X"A9",X"F3",X"7C",X"09", + X"CD",X"72",X"AC",X"25",X"4F",X"29",X"D3",X"74",X"29",X"65",X"74",X"C0",X"D7",X"DF",X"C7",X"CF", + X"17",X"E6",X"08",X"E6",X"D7",X"E7",X"08",X"08",X"08",X"67",X"08",X"1F",X"DD",X"9D",X"DD",X"2B", + X"5D",X"A1",X"5D",X"A7",X"5D",X"BD",X"5D",X"D7",X"F7",X"C7",X"E7",X"1F",X"E7",X"DF",X"C7",X"CF", + X"17",X"67",X"77",X"E7",X"67",X"17",X"67",X"F7",X"77",X"67",X"17",X"67",X"F7",X"77",X"E7",X"17", + X"E7",X"D7",X"F7",X"C7",X"E7",X"CF",X"D7",X"DF",X"C7",X"CF",X"BF",X"56",X"28",X"A4",X"2D",X"29", + X"AC",X"6B",X"09",X"AA",X"14",X"08",X"AA",X"B6",X"08",X"AC",X"3B",X"09",X"AC",X"5D",X"D6",X"1E", + X"14",X"EE",X"1F",X"5D",X"77",X"3E",X"DD",X"D6",X"28",X"A0",X"2D",X"CE",X"29",X"5D",X"77",X"28", + X"EE",X"09",X"82",X"0F",X"45",X"A0",X"0C",X"23",X"6B",X"EC",X"DD",X"A3",X"92",X"08",X"45",X"2F", + X"30",X"2D",X"03",X"83",X"EB",X"F1",X"5D",X"A3",X"23",X"5D",X"75",X"2F",X"DD",X"F4",X"08",X"5D", + X"D6",X"0E",X"BF",X"A0",X"3B",X"32",X"89",X"45",X"7E",X"88",X"5D",X"F7",X"89",X"32",X"0E",X"45", + X"B7",X"4A",X"DA",X"76",X"CB",X"D4",X"EA",X"52",X"5E",X"4B",X"6C",X"D5",X"21",X"3F",X"5E",X"80", + X"0B",X"A1",X"9A",X"DE",X"21",X"0B",X"08",X"45",X"B9",X"B9",X"9E",X"E8",X"4C",X"9D",X"DE",X"5D", + X"73",X"29",X"DD",X"F2",X"2A",X"6B",X"DA",X"76",X"DD",X"B5",X"38",X"6A",X"DA",X"76",X"DD",X"B6", + X"0E",X"08",X"6B",X"D2",X"DE",X"5D",X"D6",X"1E",X"94",X"5D",X"F7",X"1E",X"07",X"B0",X"88",X"5D", + X"56",X"25",X"C6",X"29",X"DD",X"F7",X"0D",X"5D",X"56",X"2E",X"B7",X"6A",X"D4",X"75",X"CD",X"54", + X"7A",X"5D",X"D6",X"88",X"BF",X"D2",X"D2",X"DE",X"5D",X"76",X"0F",X"56",X"50",X"DA",X"D2",X"DE", + X"DD",X"B4",X"2E",X"5D",X"36",X"3A",X"38",X"5D",X"36",X"28",X"B0",X"49",X"CD",X"54",X"72",X"5D", + X"D6",X"88",X"DE",X"0A",X"6A",X"D2",X"7E",X"5D",X"D6",X"0F",X"DE",X"28",X"5A",X"D2",X"7E",X"07", + X"32",X"A8",X"4D",X"B2",X"28",X"4D",X"C9",X"68",X"18",X"C8",X"B8",X"08",X"58",X"32",X"68",X"4D", + X"4B",X"67",X"68",X"36",X"90",X"B2",X"E8",X"45",X"A1",X"4F",X"CD",X"5D",X"D6",X"0F",X"F7",X"A3", + X"DD",X"76",X"20",X"F7",X"23",X"5D",X"56",X"21",X"EE",X"22",X"77",X"DE",X"2F",X"5D",X"77",X"21", + X"31",X"DD",X"60",X"07",X"B2",X"5C",X"CD",X"5D",X"B6",X"0E",X"A9",X"5D",X"B6",X"18",X"B8",X"49", + X"CD",X"92",X"FB",X"4D",X"54",X"FA",X"DD",X"4B",X"28",X"E6",X"EA",X"8C",X"6B",X"5D",X"36",X"28", + X"A8",X"CB",X"22",X"4C",X"90",X"02",X"7E",X"48",X"7B",X"33",X"0B",X"DE",X"E8",X"DB",X"90",X"24", + X"76",X"76",X"73",X"98",X"36",X"E0",X"65",X"75",X"99",X"97",X"76",X"4D",X"75",X"28",X"B2",X"E1", + X"F8",X"DE",X"BC",X"1E",X"82",X"09",X"9C",X"DE",X"A9",X"DE",X"3C",X"1A",X"B9",X"29",X"A9",X"14", + X"76",X"29",X"3E",X"36",X"28",X"1E",X"4F",X"5F",X"57",X"CF",X"C7",X"DF",X"D7",X"DE",X"D8",X"85", + X"37",X"38",X"AF",X"08",X"20",X"8D",X"53",X"09",X"07",X"DE",X"AA",X"03",X"F9",X"83",X"FB",X"08", + X"1E",X"4F",X"5F",X"57",X"CF",X"C7",X"DF",X"D7",X"8E",X"D8",X"85",X"B7",X"B8",X"2F",X"28",X"3C", + X"2F",X"9D",X"A9",X"C2",X"7E",X"0A",X"E9",X"1E",X"82",X"AD",X"A8",X"F7",X"D6",X"E5",X"9A",X"93", + X"CC",X"8C",X"2D",X"0F",X"D0",X"B0",X"A0",X"28",X"C6",X"2C",X"DD",X"66",X"29",X"5D",X"66",X"2A", + X"ED",X"55",X"E9",X"59",X"DD",X"7E",X"A8",X"FB",X"4B",X"33",X"92",X"6D",X"C8",X"C6",X"88",X"5D", + X"56",X"21",X"00",X"2A",X"EE",X"2A",X"BB",X"B2",X"A8",X"4A",X"AA",X"B2",X"A9",X"4A",X"3E",X"28", + X"DD",X"7E",X"09",X"3D",X"4B",X"A3",X"5D",X"66",X"0F",X"5D",X"E6",X"88",X"CD",X"FA",X"96",X"08", + X"D2",X"A9",X"5F",X"ED",X"39",X"28",X"2A",X"BF",X"C5",X"72",X"E1",X"7A",X"A0",X"77",X"EB",X"69", + X"DF",X"55",X"D6",X"09",X"95",X"8F",X"2F",X"8D",X"7A",X"20",X"DF",X"75",X"CD",X"EC",X"C7",X"4B", + X"15",X"4B",X"15",X"EE",X"2B",X"80",X"29",X"84",X"4D",X"CD",X"6C",X"EE",X"2B",X"A6",X"28",X"C7", + X"D1",X"A2",X"2A",X"42",X"59",X"6F",X"26",X"08",X"5D",X"76",X"8D",X"8F",X"6E",X"0F",X"57",X"BE", + X"28",X"11",X"56",X"A3",X"66",X"C7",X"12",X"ED",X"E8",X"EE",X"A8",X"5D",X"56",X"28",X"00",X"2A", + X"CE",X"0A",X"17",X"B0",X"8E",X"55",X"56",X"09",X"15",X"3D",X"11",X"4B",X"DC",X"97",X"CD",X"EA", + X"EB",X"FC",X"5F",X"01",X"E6",X"29",X"00",X"2F",X"D5",X"56",X"2A",X"DD",X"7E",X"2B",X"19",X"A2", + X"2E",X"42",X"DD",X"66",X"09",X"A6",X"08",X"97",X"80",X"0E",X"31",X"08",X"08",X"43",X"CD",X"FA", + X"22",X"AC",X"EA",X"CB",X"02",X"AE",X"EA",X"BF",X"C5",X"72",X"22",X"AE",X"EA",X"6B",X"32",X"6C", + X"5D",X"4B",X"08",X"A6",X"6B",X"AA",X"4C",X"6A",X"6C",X"6E",X"6B",X"6D",X"6F",X"EC",X"EE",X"78", + X"45",X"E7",X"71",X"FE",X"50",X"F2",X"A8",X"CC",X"AE",X"CC",X"8C",X"CC",X"BA",X"CC",X"98",X"CC", + X"34",X"64",X"B2",X"64",X"00",X"80",X"10",X"90",X"01",X"81",X"11",X"91",X"02",X"82",X"12",X"92", + X"AB",X"03",X"BB",X"13",X"AC",X"04",X"BC",X"14",X"AD",X"05",X"BD",X"15",X"E8",X"CD",X"C8",X"CD", + X"50",X"65",X"D0",X"65",X"60",X"65",X"E0",X"65",X"70",X"65",X"F0",X"65",X"E8",X"20",X"20",X"20", + X"A0",X"88",X"A0",X"88",X"A0",X"88",X"60",X"E1",X"A0",X"88",X"A0",X"88",X"84",X"98",X"B4",X"90", + X"00",X"E9",X"D2",X"88",X"00",X"88",X"21",X"85",X"11",X"9D",X"31",X"95",X"E2",X"FB",X"02",X"8E", + X"82",X"26",X"86",X"26",X"86",X"26",X"86",X"E3",X"54",X"03",X"A3",X"03",X"A3",X"03",X"A3",X"03", + X"03",X"8B",X"D4",X"99",X"12",X"EF",X"E4",X"E8",X"11",X"88",X"E0",X"F2",X"C0",X"E8",X"88",X"F4", + X"20",X"89",X"54",X"21",X"23",X"C0",X"99",X"80",X"ED",X"29",X"2D",X"88",X"65",X"B0",X"81",X"A5", + X"C0",X"19",X"87",X"4D",X"6B",X"70",X"C0",X"29",X"A0",X"E8",X"31",X"28",X"4D",X"09",X"8D",X"28", + X"65",X"B0",X"81",X"90",X"60",X"39",X"2F",X"4D",X"89",X"8B",X"28",X"C5",X"10",X"DD",X"96",X"9E", + X"8A",X"D5",X"B6",X"38",X"88",X"D5",X"B6",X"25",X"88",X"43",X"3B",X"32",X"26",X"2A",X"06",X"2F", + X"27",X"21",X"74",X"C7",X"6D",X"90",X"74",X"EB",X"A4",X"CB",X"7D",X"35",X"3E",X"E8",X"7D",X"36", + X"9E",X"2A",X"5D",X"FE",X"AD",X"BC",X"DE",X"2B",X"90",X"29",X"8F",X"D5",X"F7",X"25",X"6B",X"8C", + X"6B",X"21",X"DE",X"C0",X"F6",X"32",X"37",X"48",X"99",X"D9",X"DA",X"2E",X"2C",X"76",X"65",X"A0", + X"ED",X"29",X"B7",X"28",X"11",X"E3",X"E9",X"18",X"55",X"29",X"42",X"E8",X"96",X"20",X"31",X"14", + X"C2",X"29",X"D7",X"8C",X"6D",X"C0",X"51",X"39",X"38",X"63",X"8E",X"8E",X"B4",X"CD",X"60",X"F1", + X"31",X"A0",X"63",X"0E",X"8E",X"BC",X"4D",X"E8",X"F1",X"19",X"58",X"C3",X"26",X"20",X"94",X"C5", + X"60",X"F1",X"99",X"60",X"C3",X"2E",X"2D",X"14",X"6D",X"C0",X"51",X"EB",X"D7",X"C0",X"07",X"67", + X"70",X"B7",X"CB",X"69",X"DB",X"7C",X"CE",X"64",X"E9",X"6B",X"EB",X"71",X"D8",X"61",X"EF",X"78", + X"49",X"EF",X"4E",X"F9",X"69",X"EE",X"4E",X"F9",X"69",X"EE",X"6B",X"E8",X"4F",X"DA",X"4F",X"21", + X"9D",X"E9",X"31",X"7E",X"E5",X"8E",X"F7",X"BE",X"0C",X"0E",X"8A",X"88",X"96",X"20",X"4D",X"E8", + X"51",X"E5",X"21",X"A4",X"28",X"19",X"C3",X"E1",X"08",X"15",X"20",X"C5",X"C9",X"08",X"AC",X"00", + X"04",X"05",X"04",X"1B",X"16",X"11",X"95",X"09",X"05",X"01",X"84",X"06",X"11",X"1C",X"17",X"12", + X"9E",X"0A",X"AE",X"02",X"8C",X"07",X"BA",X"1D",X"98",X"13",X"9F",X"0B",X"AF",X"03",X"AB",X"18", + X"03",X"0B",X"03",X"14",X"97",X"CF",X"92",X"A4",X"40",X"37",X"68",X"F9",X"DE",X"20",X"80",X"2E", + X"16",X"D7",X"32",X"34",X"E8",X"C9",X"12",X"30",X"E8",X"21",X"A3",X"EA",X"2E",X"2E",X"96",X"00", + X"0E",X"2B",X"30",X"D2",X"6B",X"E3",X"69",X"A7",X"B2",X"34",X"40",X"BA",X"9C",X"48",X"BF",X"40", + X"02",X"39",X"E8",X"54",X"B5",X"00",X"2E",X"16",X"D7",X"32",X"1C",X"48",X"C9",X"12",X"18",X"48", + X"A1",X"81",X"6A",X"0E",X"0E",X"B6",X"90",X"2E",X"80",X"27",X"A3",X"18",X"F0",X"C1",X"4D",X"1E", + X"62",X"93",X"D8",X"16",X"D7",X"32",X"1C",X"48",X"C9",X"CD",X"BE",X"EA",X"93",X"F8",X"DD",X"E5", + X"6D",X"29",X"35",X"EA",X"50",X"1E",X"08",X"99",X"11",X"FE",X"A3",X"6E",X"C7",X"DE",X"A3",X"5E", + X"23",X"56",X"76",X"32",X"F7",X"55",X"23",X"56",X"23",X"E5",X"B7",X"00",X"0F",X"21",X"2B",X"EB", + X"4D",X"3F",X"6A",X"C5",X"38",X"EA",X"A1",X"21",X"6B",X"43",X"D0",X"E9",X"A1",X"DF",X"6A",X"C5", + X"3F",X"EA",X"CD",X"B8",X"62",X"21",X"D5",X"EA",X"CD",X"3F",X"62",X"E1",X"DD",X"21",X"A8",X"4D", + X"56",X"2B",X"76",X"E5",X"73",X"09",X"45",X"55",X"5D",X"3E",X"08",X"28",X"5D",X"3E",X"8D",X"28", + X"23",X"5E",X"23",X"7E",X"E5",X"02",X"1A",X"48",X"19",X"54",X"E6",X"29",X"67",X"C3",X"E1",X"C5", + X"73",X"0F",X"4D",X"2B",X"D6",X"D5",X"F7",X"21",X"4D",X"13",X"BA",X"F5",X"E9",X"41",X"A1",X"BE", + X"62",X"58",X"9E",X"88",X"B9",X"19",X"61",X"16",X"2B",X"FD",X"A8",X"16",X"2F",X"29",X"D7",X"8A", + X"4D",X"E8",X"F1",X"65",X"A1",X"B4",X"88",X"99",X"CB",X"61",X"00",X"BD",X"A0",X"C4",X"79",X"C1", + X"8E",X"8B",X"D6",X"38",X"D5",X"C9",X"B8",X"AA",X"B8",X"A8",X"B8",X"AE",X"B8",X"9C",X"B8",X"BA", + X"10",X"A8",X"21",X"28",X"D8",X"BE",X"9C",X"43",X"C7",X"EA",X"21",X"28",X"D8",X"BE",X"AA",X"43", + X"67",X"C2",X"89",X"88",X"38",X"16",X"0A",X"EB",X"67",X"C2",X"89",X"88",X"2D",X"16",X"0A",X"EB", + X"C7",X"EA",X"21",X"28",X"89",X"BE",X"AA",X"45",X"FD",X"F5",X"ED",X"C5",X"02",X"3F",X"26",X"20", + X"D6",X"38",X"D5",X"D5",X"41",X"DD",X"F6",X"AD",X"B4",X"D5",X"36",X"8E",X"B0",X"89",X"27",X"DD", + X"F7",X"25",X"DD",X"65",X"4D",X"8C",X"CB",X"F5",X"E9",X"BE",X"19",X"C5",X"95",X"6D",X"F9",X"41", + X"B5",X"20",X"FC",X"DD",X"41",X"C9",X"81",X"27",X"62",X"2D",X"F8",X"3E",X"28",X"19",X"FE",X"12", + X"98",X"48",X"49",X"2B",X"AB",X"3B",X"BB",X"AB",X"A3",X"21",X"99",X"31",X"81",X"A1",X"91",X"E8", + X"60",X"D8",X"68",X"95",X"30",X"66",X"62",X"45",X"62",X"7C",X"62",X"5B",X"62",X"6A",X"62",X"49", + X"C2",X"56",X"43",X"8D",X"88",X"27",X"C3",X"D5",X"88",X"0E",X"14",X"C9",X"8A",X"29",X"BA",X"EB", + X"86",X"89",X"15",X"C6",X"E1",X"25",X"28",X"A1",X"63",X"B6",X"29",X"94",X"76",X"42",X"1C",X"88", + X"94",X"EB",X"36",X"29",X"DE",X"C8",X"41",X"28",X"88",X"B7",X"C3",X"26",X"89",X"6D",X"1A",X"CA", + X"03",X"89",X"0F",X"C3",X"9E",X"88",X"5E",X"48",X"EB",X"49",X"EC",X"4A",X"ED",X"4E",X"C9",X"4F", + X"C2",X"40",X"C3",X"58",X"53",X"59",X"54",X"5A",X"55",X"5E",X"D1",X"5F",X"D2",X"50",X"D3",X"38", + X"08",X"F0",X"28",X"62",X"63",X"2A",X"21",X"76",X"A1",X"76",X"39",X"20",X"A8",X"28",X"5A",X"EB", + X"0C",X"A9",X"DF",X"81",X"DF",X"B9",X"68",X"91",X"68",X"3B",X"0E",X"E4",X"08",X"E2",X"6B",X"2A", + X"69",X"E9",X"B3",X"E9",X"38",X"20",X"50",X"28",X"52",X"EB",X"2A",X"AD",X"62",X"8D",X"62",X"3A", + X"88",X"00",X"08",X"02",X"6B",X"2A",X"2D",X"EB",X"35",X"EB",X"08",X"D7",X"F0",X"BF",X"AF",X"A6", + X"26",X"85",X"B6",X"97",X"28",X"DE",X"EF",X"8C",X"17",X"28",X"28",X"68",X"2D",X"2F",X"00",X"A7", + X"F7",X"B7",X"38",X"B0",X"07",X"4F",X"D7",X"C7",X"76",X"28",X"08",X"A7",X"2F",X"37",X"BF",X"D4", + X"C3",X"C7",X"3D",X"DF",X"D7",X"97",X"84",X"33",X"EF",X"28",X"28",X"D7",X"2F",X"C7",X"D0",X"88", + X"A5",X"08",X"BF",X"DE",X"B8",X"A6",X"08",X"4F",X"F0",X"28",X"08",X"B7",X"3F",X"9F",X"A7",X"86", + X"85",X"28",X"D7",X"97",X"34",X"A3",X"22",X"2F",X"C5",X"28",X"DD",X"56",X"2D",X"D6",X"0C",X"DA", + X"93",X"32",X"DE",X"3A",X"7A",X"13",X"9A",X"F6",X"8D",X"A8",X"8C",X"BA",X"EF",X"48",X"4B",X"4F", + X"00",X"2D",X"DD",X"36",X"28",X"28",X"C9",X"DD",X"56",X"28",X"E6",X"DC",X"F6",X"A8",X"DD",X"77", + X"08",X"A7",X"5D",X"7F",X"0E",X"D5",X"F7",X"25",X"5D",X"7F",X"8A",X"D5",X"F7",X"3C",X"5D",X"7F", + X"1A",X"DD",X"77",X"23",X"DD",X"77",X"0C",X"12",X"18",X"48",X"26",X"28",X"47",X"1E",X"0F",X"CD", + X"88",X"6D",X"D4",X"07",X"57",X"1E",X"08",X"29",X"4E",X"EF",X"11",X"DE",X"A3",X"5E",X"5D",X"7B", + X"29",X"DD",X"72",X"2A",X"DD",X"36",X"3E",X"2A",X"3E",X"28",X"12",X"3C",X"E8",X"AF",X"5F",X"21", + X"EE",X"ED",X"11",X"FE",X"A3",X"6E",X"C7",X"D5",X"D6",X"2D",X"7E",X"24",X"2F",X"DF",X"11",X"FE", + X"0F",X"5F",X"9E",X"88",X"6B",X"3A",X"63",X"C5",X"EB",X"BA",X"E8",X"09",X"63",X"52",X"46",X"89", + X"5D",X"7B",X"8F",X"D5",X"F7",X"20",X"A3",X"FE",X"4D",X"44",X"D3",X"D5",X"F7",X"21",X"5D",X"3E", + X"3A",X"88",X"4B",X"3B",X"1A",X"D9",X"A8",X"21",X"B7",X"C4",X"7D",X"E5",X"59",X"29",X"2B",X"88", + X"CD",X"30",X"A1",X"20",X"88",X"99",X"55",X"5C",X"33",X"3E",X"88",X"09",X"98",X"28",X"CD",X"30", + X"79",X"DD",X"D5",X"8F",X"F4",X"E6",X"29",X"DD",X"D7",X"A8",X"C7",X"C3",X"A8",X"CD",X"CC",X"D3", + X"7E",X"2C",X"5D",X"7F",X"A9",X"D5",X"B6",X"2E",X"89",X"D5",X"B6",X"3E",X"A8",X"C5",X"96",X"ED", + X"B2",X"8C",X"E8",X"5F",X"B2",X"87",X"E8",X"4F",X"B2",X"B8",X"E8",X"CB",X"D3",X"20",X"0E",X"CB", + X"97",X"46",X"80",X"01",X"DE",X"B8",X"90",X"26",X"96",X"B8",X"6B",X"1E",X"C4",X"46",X"80",X"01", + X"76",X"C8",X"B0",X"8A",X"B6",X"C8",X"7D",X"CB",X"2D",X"CE",X"A0",X"AB",X"7D",X"CB",X"28",X"4E", + X"5D",X"3E",X"AC",X"20",X"6B",X"99",X"C4",X"E5",X"64",X"D5",X"4B",X"28",X"0E",X"D5",X"B6",X"24", + X"D0",X"DD",X"D7",X"B8",X"4B",X"3B",X"1A",X"10",X"1E",X"E0",X"79",X"08",X"81",X"93",X"65",X"DD", + X"ED",X"51",X"21",X"2B",X"88",X"E5",X"B8",X"29",X"A8",X"28",X"11",X"DD",X"74",X"1B",X"B6",X"28", + X"89",X"98",X"28",X"C5",X"10",X"DD",X"96",X"9E",X"29",X"CD",X"36",X"C5",X"79",X"DD",X"D5",X"8F", + X"D4",X"66",X"89",X"D5",X"F7",X"20",X"77",X"DD",X"00",X"C5",X"6C",X"FB",X"5D",X"7F",X"A9",X"BA", + X"2C",X"48",X"FF",X"12",X"27",X"48",X"EF",X"12",X"18",X"48",X"6B",X"73",X"80",X"A8",X"6B",X"17", + X"6E",X"A8",X"29",X"43",X"89",X"ED",X"6E",X"A0",X"29",X"F6",X"78",X"B8",X"0A",X"BE",X"78",X"D5", + X"CB",X"2D",X"6E",X"00",X"0E",X"DD",X"77",X"3A",X"DD",X"36",X"2E",X"88",X"DD",X"CB",X"28",X"0E", + X"6B",X"13",X"9A",X"E5",X"64",X"D5",X"F7",X"3A",X"5D",X"3E",X"0E",X"08",X"5D",X"C3",X"08",X"4E", + X"EB",X"13",X"1A",X"98",X"A0",X"E0",X"DD",X"56",X"2D",X"0F",X"0F",X"0F",X"4F",X"E6",X"2B",X"F6", + X"F0",X"5F",X"D1",X"66",X"60",X"76",X"08",X"DF",X"21",X"20",X"08",X"E5",X"B8",X"C1",X"16",X"ED", + X"A2",X"ED",X"86",X"ED",X"92",X"ED",X"EE",X"ED",X"FA",X"ED",X"DE",X"ED",X"C2",X"ED",X"F6",X"ED", + X"0A",X"EE",X"8E",X"EE",X"9A",X"EE",X"2E",X"EE",X"3A",X"EE",X"BE",X"EE",X"CA",X"EE",X"5E",X"EE", + X"62",X"EE",X"46",X"EE",X"52",X"EE",X"AE",X"EE",X"BA",X"EE",X"9E",X"EE",X"82",X"EE",X"B6",X"EE", + X"42",X"EE",X"C6",X"EE",X"D2",X"EE",X"66",X"EE",X"72",X"EE",X"F6",X"EE",X"8A",X"EF",X"1E",X"EF", + X"22",X"EF",X"06",X"EF",X"12",X"EF",X"F8",X"B0",X"30",X"B0",X"F8",X"E0",X"30",X"E0",X"F8",X"10", + X"38",X"10",X"20",X"B8",X"68",X"B8",X"20",X"E8",X"68",X"E8",X"20",X"18",X"68",X"18",X"40",X"A0", + X"30",X"A0",X"E8",X"70",X"20",X"F0",X"E8",X"00",X"30",X"80",X"E0",X"B0",X"20",X"B0",X"C8",X"E0", + X"38",X"E0",X"50",X"10",X"38",X"10",X"E8",X"B0",X"E8",X"70",X"E8",X"10",X"C0",X"10",X"E8",X"40", + X"C8",X"40",X"78",X"60",X"B0",X"60",X"28",X"E0",X"78",X"00",X"B0",X"00",X"A8",X"80",X"78",X"B0", + X"40",X"B0",X"40",X"E0",X"58",X"E0",X"40",X"10",X"58",X"10",X"00",X"E0",X"00",X"10",X"70",X"30", + X"F0",X"60",X"F0",X"F0",X"F0",X"80",X"30",X"30",X"78",X"30",X"70",X"30",X"B8",X"30",X"B0",X"30", + X"58",X"30",X"C0",X"A8",X"00",X"68",X"C0",X"08",X"00",X"08",X"C0",X"80",X"00",X"80",X"98",X"80", + X"10",X"F0",X"60",X"E8",X"A0",X"E8",X"C8",X"F0",X"F0",X"20",X"58",X"80",X"F8",X"80",X"40",X"D8", + X"10",X"08",X"F0",X"88",X"B0",X"80",X"E0",X"60",X"38",X"60",X"F8",X"00",X"20",X"00",X"A8",X"80", + X"D0",X"20",X"68",X"B8",X"78",X"B8",X"60",X"B8",X"A0",X"B8",X"B0",X"B8",X"E8",X"B8",X"78",X"A0", + X"10",X"A0",X"D8",X"78",X"10",X"78",X"D8",X"88",X"10",X"88",X"08",X"B0",X"08",X"70",X"D0",X"F0", + X"B8",X"F0",X"60",X"00",X"A0",X"00",X"78",X"B8",X"B0",X"B8",X"D7",X"80",X"78",X"F0",X"B0",X"F0", + X"77",X"08",X"E0",X"A8",X"38",X"A8",X"D8",X"60",X"10",X"60",X"B0",X"F8",X"68",X"F8",X"10",X"E8", + X"90",X"C0",X"E8",X"C0",X"20",X"00",X"00",X"00",X"30",X"00",X"38",X"80",X"98",X"08",X"A0",X"08", + X"20",X"08",X"F8",X"88",X"C0",X"88",X"D8",X"68",X"20",X"68",X"08",X"E8",X"D8",X"08",X"10",X"08", + X"A8",X"00",X"40",X"E8",X"E8",X"E8",X"40",X"D0",X"E8",X"D0",X"40",X"00",X"E8",X"00",X"00",X"C8", + X"20",X"68",X"77",X"F8",X"F0",X"F8",X"90",X"40",X"10",X"40",X"D8",X"60",X"20",X"60",X"D8",X"F0", + X"80",X"F0",X"78",X"00",X"80",X"00",X"18",X"80",X"F0",X"80",X"18",X"18",X"F0",X"18",X"18",X"68", + X"50",X"40",X"C0",X"30",X"38",X"30",X"C0",X"60",X"38",X"60",X"C0",X"F0",X"38",X"F0",X"E0",X"A8", + X"A0",X"80",X"40",X"F8",X"A0",X"F8",X"40",X"18",X"A0",X"18",X"68",X"B0",X"48",X"18",X"00",X"18", + X"38",X"30",X"30",X"18",X"40",X"70",X"D8",X"10",X"10",X"10",X"88",X"10",X"A0",X"40",X"08",X"40", + X"D8",X"68",X"D8",X"B8",X"D8",X"B0",X"D8",X"C0",X"D8",X"08",X"D8",X"20",X"D8",X"68",X"60",X"B0", + X"A0",X"B0",X"48",X"70",X"00",X"70",X"40",X"70",X"00",X"10",X"A8",X"A8",X"E8",X"A8",X"A0",X"A8", + X"C0",X"A8",X"68",X"40",X"C8",X"40",X"74",X"A8",X"74",X"A8",X"74",X"A8",X"74",X"A8",X"74",X"A8", + X"7C",X"A8",X"0C",X"A8",X"BC",X"78",X"44",X"78",X"F8",X"F0",X"10",X"F0",X"0C",X"08",X"DC",X"40", + X"8C",X"F8",X"BC",X"80",X"A4",X"80",X"74",X"F8",X"A8",X"60",X"38",X"70",X"60",X"70",X"80",X"70", + X"F0",X"70",X"98",X"18",X"70",X"18",X"BA",X"E1",X"AD",X"E1",X"4F",X"E1",X"6C",X"E1",X"79",X"E1", + X"56",X"E1",X"8B",X"E1",X"98",X"E1",X"A5",X"E1",X"B2",X"E1",X"97",X"E1",X"CC",X"E1",X"D9",X"E1", + X"66",X"E1",X"73",X"E1",X"08",X"28",X"08",X"2A",X"0B",X"2B",X"09",X"29",X"08",X"29",X"0A",X"29", + X"28",X"29",X"2A",X"29",X"B2",X"EF",X"93",X"EF",X"EC",X"EF",X"CD",X"EF",X"FE",X"EF",X"EC",X"EF", + X"B3",X"EF",X"32",X"EF",X"B3",X"EF",X"B9",X"E0",X"4A",X"E0",X"CB",X"E0",X"32",X"EF",X"E0",X"EF", + X"DF",X"EF",X"C0",X"EF",X"B2",X"EF",X"DF",X"EF",X"F1",X"EF",X"D2",X"EF",X"F1",X"EF",X"DF",X"EF", + X"71",X"EF",X"F2",X"EF",X"71",X"EF",X"0B",X"E0",X"8C",X"E0",X"1D",X"E0",X"9E",X"E0",X"2F",X"E0", + X"30",X"E0",X"3C",X"21",X"83",X"28",X"66",X"E0",X"29",X"D0",X"21",X"3C",X"0A",X"96",X"28",X"EE", + X"E8",X"29",X"A4",X"AA",X"1C",X"22",X"B6",X"28",X"6E",X"E0",X"09",X"FC",X"2B",X"3C",X"8B",X"59", + X"28",X"EE",X"40",X"29",X"14",X"AC",X"3C",X"23",X"F9",X"28",X"66",X"E0",X"29",X"30",X"25",X"3C", + X"0F",X"0D",X"08",X"EE",X"E8",X"29",X"14",X"AE",X"1C",X"2F",X"05",X"28",X"6E",X"E0",X"09",X"A8", + X"27",X"3C",X"0B",X"59",X"28",X"EE",X"40",X"29",X"84",X"AF",X"3C",X"22",X"96",X"28",X"66",X"E0", + X"89",X"00",X"A0",X"20",X"8D",X"AB",X"88",X"EE",X"E0",X"29",X"D8",X"A1",X"8D",X"2C",X"98",X"28", + X"66",X"E0",X"29",X"F0",X"01",X"8B",X"2C",X"A8",X"28",X"C6",X"40",X"89",X"8C",X"A1",X"09",X"8F", + X"B0",X"28",X"C6",X"E0",X"89",X"10",X"A1",X"23",X"8F",X"6E",X"88",X"EE",X"E0",X"29",X"38",X"A1", + X"0E",X"8F",X"5B",X"88",X"66",X"E0",X"29",X"45",X"01",X"9D",X"0A",X"68",X"28",X"C6",X"40",X"89", + X"CF",X"A2",X"9A",X"22",X"22",X"28",X"C6",X"E0",X"89",X"31",X"A3",X"3A",X"AB",X"93",X"88",X"EE", + X"40",X"89",X"CD",X"A3",X"3C",X"A9",X"83",X"88",X"66",X"E0",X"29",X"1B",X"04",X"AD",X"2F",X"DC", + X"88",X"EE",X"E0",X"29",X"CF",X"A5",X"88",X"D7",X"37",X"9F",X"97",X"A7",X"86",X"35",X"9C",X"7A", + X"9B",X"8E",X"B6",X"57",X"A4",X"88",X"85",X"E0",X"B6",X"E0",X"97",X"E0",X"E7",X"E0",X"F0",X"E0", + X"71",X"E0",X"71",X"E0",X"50",X"E0",X"47",X"E0",X"00",X"E0",X"59",X"E0",X"7A",X"E0",X"68",X"E0", + X"A0",X"E0",X"F9",X"E0",X"DA",X"E0",X"C8",X"E0",X"28",X"88",X"28",X"88",X"2B",X"8B",X"2B",X"8B", + X"A9",X"20",X"C8",X"28",X"BD",X"E1",X"8B",X"73",X"91",X"8B",X"91",X"C3",X"91",X"21",X"A8",X"68", + X"28",X"BD",X"41",X"89",X"33",X"92",X"09",X"8F",X"10",X"88",X"1D",X"E1",X"29",X"F3",X"32",X"A9", + X"8E",X"B8",X"88",X"35",X"E1",X"29",X"32",X"BA",X"AD",X"2F",X"DC",X"28",X"BD",X"E1",X"89",X"D8", + X"32",X"AB",X"08",X"D8",X"28",X"BD",X"41",X"89",X"4B",X"93",X"0F",X"8D",X"6E",X"88",X"1D",X"E1", + X"8B",X"8B",X"93",X"C6",X"93",X"B1",X"94",X"21",X"8F",X"B0",X"88",X"35",X"E1",X"29",X"0C",X"BC", + X"09",X"8E",X"30",X"88",X"1D",X"E1",X"29",X"4B",X"34",X"AC",X"2D",X"97",X"28",X"BD",X"41",X"89", + X"F1",X"BC",X"8F",X"2E",X"5C",X"28",X"9D",X"E1",X"09",X"BD",X"3D",X"22",X"88",X"60",X"08",X"35", + X"41",X"29",X"8F",X"BD",X"0D",X"2E",X"48",X"28",X"1D",X"E1",X"29",X"57",X"35",X"28",X"38",X"30", + X"28",X"A0",X"3C",X"B5",X"B7",X"3C",X"1D",X"AF",X"A5",X"D7",X"47",X"28",X"A3",X"20",X"0D",X"AB", + X"28",X"7C",X"41",X"29",X"6D",X"EC",X"45",X"EC",X"BD",X"EC",X"08",X"2D",X"23",X"28",X"7C",X"E1", + X"09",X"95",X"6C",X"CD",X"6C",X"25",X"6D",X"22",X"0E",X"BE",X"08",X"7C",X"E9",X"29",X"25",X"E5", + X"E1",X"E5",X"1D",X"E6",X"28",X"2F",X"2D",X"2B",X"27",X"A7",X"28",X"2C",X"D7",X"2F",X"10",X"B7", + X"F6",X"D5",X"F0",X"EF",X"89",X"2E",X"38",X"28",X"08",X"E2",X"09",X"55",X"6D",X"3B",X"6E",X"61", + X"66",X"21",X"2E",X"B8",X"28",X"28",X"42",X"29",X"57",X"EE",X"B5",X"EE",X"C3",X"EE",X"0A",X"2D", + X"AD",X"28",X"08",X"E2",X"09",X"A9",X"6F",X"7B",X"6F",X"0D",X"6F",X"21",X"0E",X"B8",X"08",X"38", + X"42",X"29",X"B7",X"EF",X"C5",X"EF",X"23",X"E0",X"08",X"2D",X"23",X"28",X"20",X"E2",X"29",X"71", + X"E8",X"09",X"E8",X"81",X"E8",X"20",X"0E",X"A2",X"08",X"38",X"EA",X"29",X"51",X"E0",X"09",X"E1", + X"31",X"E1",X"0A",X"2E",X"36",X"28",X"30",X"E2",X"29",X"E9",X"41",X"15",X"41",X"51",X"41",X"20", + X"0D",X"AB",X"08",X"68",X"EA",X"29",X"1D",X"E2",X"BD",X"E2",X"6D",X"E2",X"8A",X"2E",X"3E",X"28", + X"68",X"E2",X"29",X"05",X"42",X"41",X"42",X"2D",X"43",X"22",X"2E",X"BE",X"28",X"68",X"42",X"29", + X"49",X"E3",X"FD",X"E3",X"B1",X"E3",X"8C",X"2F",X"CD",X"28",X"48",X"E2",X"09",X"DD",X"EB",X"61", + X"44",X"15",X"44",X"22",X"2E",X"A2",X"28",X"68",X"42",X"29",X"F1",X"E4",X"05",X"E5",X"41",X"E5", + X"88",X"D7",X"36",X"8C",X"23",X"85",X"34",X"D0",X"8F",X"2C",X"BC",X"AD",X"F7",X"A5",X"88",X"A8", + X"28",X"77",X"F7",X"47",X"83",X"87",X"20",X"25",X"2F",X"8C",X"30",X"A5",X"E8",X"08",X"28",X"98", + X"88",X"D7",X"57",X"CF",X"23",X"A7",X"80",X"94",X"8F",X"2C",X"90",X"D5",X"48",X"08",X"88",X"A8", + X"28",X"77",X"C5",X"47",X"AD",X"8C",X"20",X"44",X"2F",X"84",X"30",X"A5",X"57",X"A7",X"28",X"80", + X"88",X"28",X"8C",X"AC",X"80",X"B8",X"37",X"B7",X"47",X"2F",X"08",X"C6",X"9D",X"D5",X"77",X"28", + X"E0",X"E2",X"F2",X"E2",X"38",X"E3",X"06",X"E3",X"68",X"E3",X"7E",X"E3",X"44",X"E3",X"52",X"E3", + X"02",X"E3",X"30",X"E3",X"64",X"E3",X"76",X"E3",X"BC",X"E4",X"CE",X"E4",X"F8",X"E4",X"E2",X"E4", + X"A8",X"E4",X"A2",X"E4",X"90",X"E4",X"CE",X"E4",X"E0",X"E4",X"F6",X"E4",X"2C",X"E5",X"3C",X"E5", + X"86",X"E5",X"B0",X"E5",X"DE",X"E5",X"F4",X"E5",X"3A",X"E5",X"10",X"E5",X"4A",X"E5",X"9C",X"E6", + X"06",X"E6",X"14",X"E6",X"5A",X"E6",X"74",X"E6",X"C1",X"E2",X"29",X"E3",X"1F",X"E3",X"31",X"E3", + X"ED",X"E3",X"C1",X"E3",X"D3",X"E3",X"19",X"E3",X"25",X"E3",X"5B",X"E3",X"55",X"E3",X"AD",X"E4", + X"31",X"E4",X"4F",X"E4",X"61",X"E4",X"75",X"E4",X"B9",X"E4",X"85",X"E4",X"E9",X"E4",X"FB",X"E4", + X"63",X"E4",X"73",X"E4",X"8D",X"E5",X"BD",X"E5",X"A7",X"E5",X"CF",X"E5",X"E1",X"E5",X"2D",X"E5", + X"A5",X"E5",X"B5",X"E5",X"C3",X"E5",X"05",X"E6",X"35",X"E6",X"4B",X"E6",X"67",X"E6",X"A9",X"E6", + X"8C",X"CE",X"41",X"EE",X"43",X"CE",X"44",X"EE",X"46",X"2C",X"78",X"C9",X"F8",X"CB",X"78",X"CC", + X"58",X"46",X"2F",X"1C",X"E1",X"D4",X"E2",X"9C",X"E3",X"54",X"E3",X"1C",X"E4",X"D4",X"E5",X"DC", + X"66",X"2F",X"A2",X"C9",X"CA",X"CA",X"AA",X"CB",X"C2",X"CB",X"A2",X"CC",X"CA",X"CD",X"EA",X"CE", + X"2F",X"EE",X"E1",X"F6",X"E1",X"D6",X"E2",X"F6",X"E4",X"7C",X"E5",X"CC",X"E2",X"F4",X"E5",X"2F", + X"D8",X"C9",X"D2",X"CA",X"7A",X"C9",X"72",X"CA",X"7A",X"CC",X"DC",X"CE",X"7A",X"CE",X"09",X"D0", + X"E1",X"2F",X"6A",X"CE",X"4E",X"CB",X"D8",X"CC",X"62",X"CE",X"C6",X"C9",X"46",X"CB",X"D0",X"CC", + X"0E",X"4E",X"62",X"7E",X"63",X"DE",X"63",X"DC",X"64",X"7E",X"66",X"E4",X"66",X"2C",X"66",X"C9", + X"C8",X"CA",X"C6",X"CC",X"62",X"CE",X"2D",X"E6",X"E2",X"F6",X"E3",X"66",X"E4",X"76",X"E5",X"E6", + X"66",X"2D",X"58",X"CA",X"48",X"CB",X"78",X"CC",X"68",X"CD",X"58",X"CE",X"0B",X"6A",X"63",X"CA", + X"E4",X"6A",X"E6",X"2B",X"54",X"CB",X"DC",X"CC",X"54",X"CE",X"0B",X"64",X"E1",X"10",X"E1",X"DC", + X"61",X"44",X"62",X"30",X"63",X"D4",X"63",X"64",X"64",X"10",X"64",X"D8",X"64",X"FA",X"63",X"66", + X"E6",X"20",X"A6",X"C9",X"B2",X"C9",X"CE",X"CA",X"26",X"CB",X"4E",X"CC",X"A6",X"CC",X"78",X"CE", + X"E8",X"CE",X"0D",X"B4",X"62",X"36",X"63",X"AE",X"64",X"E2",X"65",X"E6",X"66",X"2D",X"0A",X"CA", + X"20",X"CB",X"18",X"CC",X"7C",X"CD",X"78",X"CE",X"0D",X"04",X"E1",X"90",X"E1",X"A0",X"E2",X"B8", + X"63",X"32",X"64",X"B2",X"64",X"2A",X"65",X"EA",X"65",X"62",X"66",X"F8",X"66",X"24",X"63",X"A0", + X"E4",X"22",X"E4",X"24",X"AA",X"C9",X"2C",X"CC",X"24",X"CC",X"5C",X"CD",X"14",X"CD",X"4E",X"CE", + X"7C",X"CE",X"86",X"C9",X"AA",X"CA",X"1E",X"CC",X"3A",X"CB",X"3C",X"CC",X"0C",X"E6",X"62",X"D0", + X"E3",X"6A",X"E5",X"62",X"E6",X"2C",X"78",X"CA",X"EE",X"CB",X"54",X"CD",X"74",X"CE",X"2F",X"14", + X"41",X"08",X"42",X"38",X"44",X"BA",X"44",X"AE",X"45",X"68",X"45",X"F8",X"46",X"2F",X"24",X"C9", + X"AE",X"42",X"3A",X"44",X"30",X"44",X"48",X"45",X"7C",X"46",X"52",X"46",X"0A",X"EA",X"E2",X"E2", + X"42",X"7A",X"43",X"FA",X"43",X"72",X"44",X"F2",X"44",X"6A",X"45",X"EA",X"45",X"E2",X"46",X"62", + X"E6",X"AA",X"7C",X"42",X"74",X"42",X"4C",X"43",X"44",X"43",X"6C",X"44",X"64",X"44",X"5C",X"45", + X"F4",X"CD",X"DC",X"CE",X"D4",X"CE",X"8C",X"4C",X"43",X"F2",X"42",X"70",X"45",X"EC",X"46",X"2C", + X"6C",X"42",X"D2",X"43",X"66",X"45",X"5A",X"46",X"2C",X"04",X"E2",X"56",X"E3",X"9E",X"E5",X"CC", + X"46",X"2C",X"3A",X"CA",X"68",X"CB",X"A0",X"CD",X"F2",X"CE",X"8D",X"CE",X"41",X"C4",X"42",X"DA", + X"E3",X"B0",X"E5",X"F6",X"E6",X"8D",X"D8",X"41",X"FA",X"42",X"CC",X"43",X"2E",X"45",X"68",X"46", + X"A8",X"64",X"42",X"FE",X"42",X"50",X"43",X"28",X"44",X"66",X"45",X"A8",X"45",X"FE",X"45",X"7C", + X"E6",X"A8",X"48",X"42",X"72",X"42",X"C0",X"43",X"16",X"44",X"1E",X"45",X"48",X"45",X"70",X"45", + X"E2",X"CE",X"8D",X"E6",X"42",X"9C",X"43",X"D2",X"44",X"68",X"46",X"F8",X"46",X"2D",X"D8",X"CA", + X"8A",X"43",X"EC",X"44",X"78",X"46",X"56",X"46",X"2C",X"92",X"E2",X"B4",X"E2",X"BA",X"E3",X"CA", + X"46",X"2E",X"90",X"CA",X"B6",X"CA",X"8C",X"CC",X"96",X"CC",X"B8",X"CD",X"F6",X"CE",X"8A",X"A4", + X"E1",X"D4",X"E6",X"8E",X"26",X"42",X"1C",X"43",X"3C",X"44",X"0C",X"45",X"6C",X"46",X"1E",X"45", + X"8D",X"2A",X"42",X"AC",X"43",X"2A",X"44",X"AC",X"45",X"6A",X"46",X"2D",X"B4",X"CA",X"BA",X"CB", + X"14",X"44",X"1A",X"45",X"54",X"46",X"2A",X"B0",X"E5",X"F6",X"E6",X"8C",X"56",X"42",X"BA",X"43", + X"8A",X"CD",X"48",X"CE",X"08",X"2F",X"0C",X"CA",X"2C",X"CA",X"90",X"CB",X"B0",X"CB",X"C4",X"CC", + X"C4",X"CC",X"68",X"CE",X"2C",X"EC",X"E2",X"CC",X"E3",X"AA",X"E5",X"FE",X"E6",X"2C",X"58",X"CA", + X"D0",X"CB",X"9A",X"CD",X"4E",X"CE",X"0C",X"CA",X"62",X"82",X"64",X"96",X"64",X"EA",X"66",X"2C", + X"DC",X"CA",X"A8",X"CC",X"BC",X"CC",X"5C",X"CE",X"2F",X"7C",X"E2",X"5C",X"E3",X"7C",X"E5",X"9C", + X"61",X"BC",X"63",X"9C",X"64",X"FC",X"66",X"2F",X"84",X"C9",X"8C",X"CB",X"84",X"CC",X"CC",X"CE", + X"44",X"CA",X"C4",X"CB",X"44",X"CD",X"09",X"AC",X"E1",X"50",X"E2",X"CC",X"E2",X"DE",X"E2",X"10", + X"64",X"8C",X"64",X"9E",X"64",X"78",X"66",X"EC",X"66",X"21",X"C2",X"CA",X"82",X"CC",X"9C",X"C9", + X"DC",X"CA",X"5C",X"CE",X"C0",X"CA",X"80",X"CC",X"70",X"CE",X"9C",X"CC",X"08",X"0C",X"E4",X"74", + X"65",X"CA",X"62",X"C6",X"61",X"D0",X"62",X"86",X"64",X"68",X"66",X"E4",X"66",X"2E",X"46",X"CA", + X"FA",X"C9",X"54",X"CE",X"62",X"CD",X"D4",X"CA",X"AA",X"CC",X"2D",X"66",X"E6",X"34",X"E3",X"EA", + X"66",X"C4",X"64",X"F2",X"66",X"2D",X"4C",X"CE",X"52",X"CC",X"DC",X"CE",X"2A",X"CB",X"78",X"CE", + X"2A",X"30",X"E4",X"7E",X"E6",X"2E",X"FE",X"C9",X"3E",X"CC",X"26",X"CB",X"40",X"CD",X"14",X"CB", + X"FC",X"CD",X"1C",X"4A",X"62",X"4A",X"64",X"42",X"61",X"42",X"63",X"62",X"66",X"5A",X"62",X"5A", + X"E4",X"52",X"E1",X"52",X"E3",X"72",X"E6",X"CA",X"E2",X"CA",X"E4",X"C2",X"E1",X"C2",X"E3",X"E2", + X"66",X"DA",X"62",X"DA",X"64",X"D2",X"61",X"D2",X"63",X"F2",X"66",X"3C",X"46",X"C9",X"46",X"CB", + X"6E",X"CE",X"CE",X"CA",X"CA",X"CC",X"FE",X"C9",X"FE",X"CB",X"7E",X"CE",X"DE",X"CA",X"DE",X"CC", + X"46",X"C9",X"46",X"CB",X"C6",X"CE",X"66",X"CA",X"66",X"CC",X"56",X"C9",X"56",X"CB",X"D6",X"CE", + X"D6",X"42",X"D6",X"44",X"0C",X"4A",X"E2",X"28",X"E4",X"EE",X"E6",X"5A",X"E2",X"38",X"E4",X"FE", + X"46",X"CA",X"42",X"80",X"44",X"E6",X"46",X"DA",X"42",X"90",X"44",X"F6",X"46",X"28",X"8B",X"0C", + X"E4",X"C0",X"E6",X"52",X"E2",X"8B",X"AA",X"44",X"7C",X"46",X"F0",X"42",X"2F",X"2E",X"E2",X"7C", + X"43",X"E4",X"45",X"86",X"42",X"B6",X"44",X"F2",X"46",X"EC",X"46",X"2F",X"8A",X"CC",X"CE",X"CE", + X"BA",X"42",X"7C",X"45",X"E4",X"43",X"B2",X"42",X"5C",X"46",X"2E",X"C8",X"E6",X"06",X"E3",X"E4", + X"45",X"FC",X"46",X"DC",X"42",X"92",X"44",X"2E",X"0C",X"CC",X"6A",X"CA",X"EC",X"CE",X"DA",X"CD", + X"98",X"43",X"5A",X"46",X"2E",X"4A",X"E2",X"18",X"E4",X"FA",X"E6",X"42",X"E2",X"14",X"E4",X"E2", + X"46",X"2E",X"2C",X"CC",X"7E",X"CA",X"DE",X"CE",X"C6",X"CE",X"10",X"CC",X"76",X"CA",X"5E",X"E6", + X"E3",X"E6",X"28",X"E7",X"39",X"E7",X"3E",X"E7",X"1F",X"E7",X"14",X"E7",X"49",X"E7",X"5E",X"E7", + X"D3",X"E7",X"1C",X"E7",X"25",X"E7",X"36",X"E7",X"57",X"E7",X"AC",X"F8",X"BD",X"F8",X"92",X"F8", + X"4F",X"D0",X"58",X"D0",X"65",X"D0",X"46",X"D0",X"AB",X"D0",X"B8",X"D0",X"B9",X"D0",X"9E",X"D0", + X"23",X"F8",X"34",X"F8",X"49",X"F8",X"6A",X"F8",X"7B",X"F8",X"44",X"F8",X"95",X"F9",X"96",X"F9", + X"6B",X"D1",X"5C",X"D1",X"5D",X"D1",X"2E",X"F4",X"E2",X"F4",X"E3",X"74",X"E3",X"74",X"E4",X"F4", + X"45",X"F4",X"46",X"26",X"BA",X"CA",X"BA",X"CB",X"3A",X"CB",X"FA",X"CC",X"BA",X"CD",X"FA",X"CE", + X"54",X"41",X"54",X"42",X"D4",X"42",X"D4",X"43",X"54",X"44",X"54",X"45",X"D4",X"45",X"54",X"46", + X"88",X"42",X"61",X"42",X"62",X"4C",X"64",X"6C",X"65",X"C4",X"61",X"C4",X"62",X"CE",X"64",X"CE", + X"E5",X"2A",X"FC",X"CB",X"FC",X"CC",X"2C",X"E8",X"E2",X"E8",X"E3",X"E8",X"E5",X"E8",X"E6",X"26", + X"C6",X"CA",X"CE",X"CC",X"C6",X"CC",X"CE",X"CE",X"D6",X"C9",X"DE",X"CD",X"D6",X"CD",X"DE",X"CE", + X"C6",X"CA",X"46",X"CC",X"C6",X"CC",X"46",X"CE",X"D4",X"CB",X"54",X"CE",X"2E",X"76",X"E2",X"56", + X"64",X"76",X"65",X"76",X"66",X"DA",X"63",X"DA",X"64",X"22",X"9E",X"CA",X"9E",X"CB",X"96",X"CB", + X"9E",X"CC",X"1E",X"CD",X"5E",X"CE",X"D4",X"CA",X"D4",X"CB",X"D4",X"CD",X"54",X"CE",X"0A",X"76", + X"61",X"36",X"63",X"EE",X"61",X"AE",X"62",X"16",X"63",X"36",X"64",X"14",X"64",X"74",X"65",X"56", + X"E5",X"76",X"E6",X"38",X"AE",X"CC",X"6E",X"CE",X"38",X"CA",X"38",X"CB",X"98",X"CC",X"58",X"CD", + X"D6",X"CD",X"DE",X"CE",X"26",X"CC",X"6E",X"CD",X"36",X"CC",X"7E",X"CE",X"BE",X"CA",X"BE",X"CD", + X"96",X"CD",X"56",X"CE",X"0C",X"60",X"E4",X"60",X"E6",X"5A",X"E2",X"7A",X"E6",X"16",X"E1",X"76", + X"66",X"C2",X"62",X"E2",X"66",X"FC",X"64",X"FC",X"66",X"D6",X"65",X"F6",X"66",X"20",X"2A",X"CA", + X"A2",X"CA",X"2A",X"CB",X"6A",X"CD",X"CE",X"CD",X"4E",X"CE",X"A2",X"CD",X"62",X"CE",X"1C",X"4E", + X"62",X"6E",X"64",X"4E",X"64",X"6E",X"66",X"46",X"63",X"66",X"66",X"5E",X"62",X"7E",X"64",X"5E", + X"E4",X"7E",X"E6",X"56",X"E1",X"76",X"E5",X"56",X"E5",X"76",X"E6",X"CE",X"E2",X"EE",X"E4",X"CE", + X"64",X"EE",X"66",X"C6",X"63",X"E6",X"66",X"DE",X"62",X"FE",X"64",X"DE",X"64",X"FE",X"66",X"D6", + X"E1",X"F6",X"E5",X"D6",X"E5",X"F6",X"E6",X"22",X"CA",X"CA",X"CA",X"CB",X"FA",X"CD",X"7A",X"CE", + X"7E",X"62",X"7E",X"66",X"42",X"65",X"62",X"66",X"D4",X"62",X"D4",X"63",X"28",X"CC",X"C4",X"8C", + X"CD",X"06",X"CD",X"66",X"CE",X"FA",X"CC",X"BA",X"CD",X"98",X"CD",X"F8",X"CE",X"22",X"E8",X"C9", + X"C0",X"61",X"7C",X"62",X"5C",X"62",X"E6",X"63",X"C6",X"63",X"FC",X"64",X"BC",X"65",X"02",X"65", + X"E2",X"CE",X"26",X"7C",X"C9",X"5C",X"CB",X"DC",X"CA",X"FC",X"CD",X"44",X"CD",X"64",X"CE",X"12", + X"C5",X"DA",X"C6",X"C2",X"C2",X"CA",X"C5",X"EA",X"C1",X"E2",X"C3",X"B6",X"C1",X"BE",X"C4",X"0C", + X"5E",X"CD",X"7E",X"CE",X"C0",X"CD",X"70",X"CE",X"2E",X"18",X"CA",X"38",X"CB",X"8A",X"CC",X"AA", + X"C5",X"B0",X"C5",X"F8",X"C6",X"0C",X"F2",X"60",X"B2",X"61",X"02",X"65",X"62",X"66",X"2A",X"34", + X"C9",X"BC",X"CA",X"1E",X"CA",X"3E",X"CB",X"9C",X"CB",X"BC",X"CC",X"1E",X"CC",X"3E",X"CD",X"84", + X"C5",X"EC",X"C6",X"0E",X"5A",X"62",X"1A",X"63",X"26",X"64",X"26",X"65",X"96",X"65",X"F6",X"66", + X"28",X"2E",X"7E",X"CC",X"3E",X"CD",X"EE",X"CC",X"AE",X"CD",X"82",X"CD",X"E2",X"CE",X"2E",X"1E", + X"C1",X"16",X"C4",X"DE",X"C3",X"DE",X"C6",X"3C",X"C5",X"7C",X"C6",X"88",X"2A",X"65",X"6A",X"66", + X"5E",X"CD",X"7E",X"CE",X"C2",X"CD",X"E2",X"CE",X"BE",X"CD",X"FE",X"CE",X"2A",X"B0",X"CD",X"90", + X"C5",X"0C",X"E4",X"61",X"C4",X"62",X"C4",X"65",X"E4",X"66",X"28",X"5A",X"C5",X"5A",X"C6",X"96", + X"CB",X"76",X"CE",X"E4",X"CD",X"E4",X"CE",X"F6",X"CD",X"F6",X"CE",X"2C",X"64",X"C9",X"44",X"C9", + X"54",X"65",X"74",X"66",X"20",X"48",X"C1",X"40",X"C2",X"48",X"C3",X"40",X"C4",X"48",X"C5",X"48", + X"CE",X"60",X"CA",X"40",X"CB",X"60",X"CC",X"60",X"CE",X"78",X"C9",X"58",X"CA",X"78",X"CB",X"58", + X"64",X"58",X"65",X"58",X"66",X"D8",X"62",X"D0",X"63",X"D8",X"64",X"D8",X"66",X"68",X"61",X"60", + X"E2",X"E8",X"E3",X"C8",X"E4",X"E8",X"E5",X"E8",X"E6",X"E0",X"E2",X"C0",X"E3",X"E0",X"E4",X"E0", + X"66",X"78",X"61",X"70",X"62",X"78",X"63",X"70",X"64",X"78",X"65",X"78",X"66",X"F8",X"62",X"F0", + X"E3",X"F0",X"E4",X"F0",X"E6",X"28",X"2E",X"2E",X"E5",X"6E",X"E6",X"16",X"E1",X"76",X"E6",X"F8", + X"63",X"78",X"66",X"8C",X"48",X"62",X"08",X"64",X"48",X"65",X"48",X"66",X"50",X"63",X"58",X"66", + X"60",X"CA",X"E0",X"CB",X"60",X"CC",X"60",X"CE",X"F0",X"CB",X"70",X"CE",X"28",X"22",X"2E",X"CC", + X"06",X"64",X"D8",X"62",X"D0",X"62",X"28",X"64",X"20",X"64",X"EA",X"62",X"E2",X"62",X"20",X"65", + X"60",X"CE",X"08",X"4D",X"69",X"FA",X"08",X"5D",X"56",X"21",X"30",X"2C",X"A8",X"6B",X"AB",X"F9", + X"38",X"CE",X"18",X"AE",X"08",X"5D",X"C6",X"0F",X"5D",X"E6",X"88",X"45",X"62",X"43",X"4D",X"58", + X"72",X"31",X"E8",X"D7",X"29",X"28",X"2B",X"4D",X"33",X"FA",X"CD",X"F5",X"72",X"ED",X"2E",X"29", + X"4D",X"3B",X"7A",X"C1",X"49",X"4D",X"49",X"7A",X"5D",X"76",X"89",X"DE",X"0F",X"88",X"26",X"08", + X"DD",X"C6",X"2F",X"5D",X"66",X"20",X"C5",X"62",X"C3",X"4D",X"78",X"FA",X"39",X"68",X"28",X"21", + X"08",X"0A",X"4D",X"3B",X"7A",X"4D",X"FD",X"7A",X"ED",X"AE",X"09",X"4D",X"3B",X"7A",X"E9",X"49", + X"CD",X"69",X"72",X"5D",X"56",X"21",X"A8",X"94",X"DD",X"C6",X"2F",X"5D",X"66",X"20",X"2E",X"28", + X"01",X"2E",X"18",X"45",X"62",X"43",X"4D",X"58",X"7A",X"C5",X"21",X"08",X"09",X"4D",X"3B",X"7A", + X"CD",X"F5",X"72",X"31",X"E8",X"D7",X"2E",X"2A",X"CD",X"BB",X"72",X"E9",X"C9",X"00",X"CD",X"69", + X"F2",X"28",X"5D",X"76",X"29",X"B0",X"AE",X"88",X"7E",X"18",X"6B",X"8E",X"F2",X"98",X"5D",X"66", + X"2F",X"5D",X"66",X"20",X"2E",X"28",X"09",X"2E",X"38",X"45",X"6A",X"43",X"CD",X"78",X"FA",X"C5", + X"21",X"08",X"A9",X"4D",X"B3",X"7A",X"4D",X"FD",X"F2",X"B9",X"E8",X"08",X"26",X"0B",X"4D",X"3B", + X"FA",X"C1",X"C9",X"4B",X"29",X"4B",X"66",X"20",X"29",X"2C",X"38",X"29",X"C9",X"39",X"EB",X"BB", + X"F2",X"5D",X"C6",X"09",X"5D",X"E6",X"AA",X"EE",X"4B",X"30",X"A3",X"6E",X"05",X"4B",X"A1",X"49", + X"6F",X"C6",X"30",X"AF",X"2F",X"AF",X"4F",X"70",X"E6",X"C8",X"2F",X"AF",X"2F",X"D6",X"C8",X"EF", + X"CB",X"A4",X"A4",X"45",X"53",X"9A",X"C8",X"72",X"EE",X"09",X"77",X"45",X"72",X"74",X"EE",X"09", + X"1F",X"75",X"1F",X"3F",X"1F",X"C6",X"B6",X"34",X"47",X"A6",X"28",X"29",X"C9",X"75",X"E6",X"48", + X"57",X"75",X"6E",X"0A",X"EE",X"BF",X"BB",X"67",X"49",X"75",X"EE",X"40",X"57",X"75",X"7E",X"0A", + X"E6",X"B7",X"B3",X"67",X"C9",X"32",X"4B",X"48",X"0F",X"2F",X"0F",X"67",X"E6",X"2B",X"F6",X"D0", + X"E7",X"75",X"EE",X"60",X"FE",X"89",X"C7",X"B9",X"B0",X"42",X"96",X"89",X"26",X"08",X"4B",X"EE", + X"00",X"2C",X"77",X"BA",X"3B",X"AC",X"23",X"34",X"D6",X"24",X"20",X"DA",X"16",X"D7",X"3A",X"AD", + X"24",X"49",X"92",X"43",X"C8",X"2F",X"07",X"2F",X"C7",X"C6",X"AB",X"D6",X"50",X"E7",X"D5",X"C6", + X"C8",X"D6",X"21",X"67",X"29",X"2B",X"28",X"7D",X"7C",X"45",X"B0",X"49",X"DD",X"76",X"3A",X"5D", + X"56",X"1B",X"4D",X"2A",X"F3",X"5D",X"F3",X"1B",X"80",X"1C",X"5D",X"66",X"AF",X"5D",X"E6",X"88", + X"3E",X"28",X"F2",X"DE",X"FA",X"BD",X"5F",X"39",X"DD",X"F5",X"2F",X"5D",X"74",X"20",X"DD",X"76", + X"1C",X"97",X"48",X"5D",X"56",X"1D",X"4D",X"2A",X"7B",X"5D",X"F3",X"1D",X"5D",X"66",X"89",X"5D", + X"66",X"22",X"3E",X"28",X"B7",X"FA",X"19",X"FB",X"3D",X"57",X"19",X"5D",X"75",X"21",X"DD",X"F4", + X"8A",X"49",X"2B",X"FF",X"CA",X"3C",X"7B",X"C6",X"8F",X"7F",X"D2",X"4B",X"87",X"4B",X"87",X"4B", + X"07",X"4B",X"07",X"49",X"E6",X"27",X"5F",X"D2",X"E6",X"D8",X"2F",X"27",X"2F",X"27",X"C9",X"5D", + X"46",X"8C",X"5D",X"EE",X"1A",X"5D",X"56",X"8B",X"4D",X"E9",X"7B",X"5D",X"F7",X"1A",X"78",X"5D", + X"CB",X"28",X"DE",X"49",X"DD",X"46",X"0E",X"5D",X"6E",X"3C",X"DD",X"56",X"0F",X"4D",X"41",X"FB", + X"5D",X"F7",X"1C",X"D8",X"5D",X"4B",X"08",X"D6",X"49",X"71",X"BF",X"70",X"DA",X"13",X"7B",X"97", + X"D2",X"F5",X"73",X"29",X"4F",X"D3",X"91",X"DA",X"B4",X"FB",X"EB",X"9F",X"73",X"D3",X"B7",X"D0", + X"DA",X"83",X"7B",X"89",X"47",X"D2",X"7D",X"7B",X"6B",X"37",X"7B",X"89",X"47",X"52",X"7D",X"7B", + X"EB",X"9C",X"73",X"BF",X"F2",X"89",X"73",X"29",X"4F",X"D1",X"93",X"FA",X"B7",X"FB",X"EB",X"9C", + X"7B",X"73",X"BF",X"70",X"FA",X"A7",X"7B",X"89",X"47",X"52",X"91",X"7B",X"6B",X"37",X"7B",X"89", + X"4F",X"FA",X"99",X"FB",X"53",X"B7",X"C9",X"D1",X"B7",X"49",X"DD",X"D6",X"3C",X"94",X"D2",X"40", + X"7B",X"56",X"39",X"5D",X"F7",X"1C",X"58",X"35",X"5D",X"F7",X"1C",X"49",X"4D",X"64",X"7B",X"C5", + X"CD",X"D6",X"73",X"11",X"0C",X"4B",X"66",X"80",X"D2",X"E9",X"51",X"2F",X"AF",X"2F",X"4E",X"4B", + X"91",X"99",X"95",X"49",X"5D",X"66",X"09",X"5D",X"E6",X"0A",X"46",X"2D",X"4B",X"31",X"39",X"4B", + X"11",X"4B",X"11",X"61",X"2C",X"FD",X"E6",X"D0",X"0F",X"07",X"0F",X"47",X"F1",X"49",X"ED",X"4D", + X"F8",X"7A",X"69",X"B9",X"E8",X"08",X"D0",X"4B",X"E6",X"20",X"AE",X"EF",X"11",X"2C",X"6B",X"0F", + X"FC",X"B8",X"29",X"49",X"19",X"2C",X"CB",X"E6",X"20",X"D9",X"38",X"D0",X"C9",X"BE",X"4F",X"8F", + X"2F",X"8F",X"B0",X"09",X"34",X"8F",X"2E",X"A3",X"57",X"6E",X"A3",X"AE",X"A8",X"45",X"B8",X"49", + X"B7",X"5D",X"35",X"3E",X"E8",X"5D",X"70",X"3E",X"F5",X"5D",X"56",X"38",X"6F",X"8F",X"5F",X"BE", + X"A8",X"39",X"D6",X"A3",X"5D",X"F7",X"A9",X"76",X"5D",X"F7",X"AA",X"D1",X"BF",X"70",X"A0",X"88", + X"14",X"11",X"10",X"23",X"87",X"CB",X"77",X"FC",X"FE",X"29",X"17",X"30",X"2A",X"71",X"15",X"5D", + X"F7",X"18",X"97",X"49",X"A1",X"FB",X"F4",X"B9",X"A8",X"67",X"21",X"39",X"A8",X"45",X"B8",X"A1", + X"F3",X"FC",X"39",X"5D",X"48",X"A9",X"2B",X"28",X"C5",X"90",X"C9",X"28",X"38",X"28",X"28",X"21", + X"A8",X"08",X"28",X"08",X"A8",X"0F",X"A8",X"08",X"AE",X"08",X"A8",X"0D",X"A8",X"08",X"AC",X"08", + X"2B",X"2B",X"2B",X"2A",X"2A",X"2A",X"29",X"60",X"74",X"61",X"61",X"6B",X"61",X"71",X"74",X"63", + X"6B",X"5C",X"EF",X"CD",X"7C",X"5C",X"FB",X"4D",X"A0",X"28",X"EF",X"49",X"92",X"08",X"C8",X"4B", + X"6F",X"CA",X"66",X"FE",X"CD",X"4C",X"FE",X"56",X"2F",X"D8",X"32",X"B9",X"CF",X"4D",X"E8",X"FF", + X"A1",X"08",X"C7",X"B9",X"DD",X"40",X"21",X"0B",X"A8",X"45",X"B8",X"36",X"8B",X"4D",X"B5",X"4D", + X"12",X"B9",X"CF",X"34",X"F6",X"20",X"08",X"32",X"B9",X"CF",X"CD",X"34",X"F0",X"A2",X"BA",X"CF", + X"F6",X"76",X"FD",X"B9",X"28",X"08",X"11",X"76",X"FD",X"4D",X"52",X"7C",X"F9",X"6F",X"F9",X"22", + X"BA",X"CF",X"76",X"F7",X"39",X"20",X"28",X"39",X"71",X"49",X"12",X"B9",X"CF",X"6F",X"AF",X"D5", + X"29",X"6F",X"26",X"08",X"A1",X"9C",X"67",X"29",X"B6",X"DE",X"59",X"B9",X"8B",X"1E",X"F9",X"8B", + X"5F",X"21",X"28",X"28",X"C5",X"63",X"35",X"CF",X"2C",X"59",X"12",X"BD",X"E7",X"EE",X"20",X"D6", + X"80",X"0A",X"96",X"DD",X"59",X"4D",X"04",X"F8",X"59",X"32",X"09",X"40",X"06",X"08",X"26",X"08", + X"CB",X"67",X"00",X"2E",X"CB",X"D7",X"20",X"2A",X"0E",X"2C",X"C5",X"D0",X"5F",X"92",X"34",X"CF", + X"94",X"B2",X"3C",X"67",X"4D",X"09",X"F8",X"32",X"3C",X"67",X"94",X"B2",X"3C",X"67",X"4D",X"09", + X"50",X"CD",X"50",X"9B",X"20",X"2B",X"14",X"A0",X"12",X"92",X"36",X"CF",X"D6",X"2F",X"30",X"A0", + X"59",X"2E",X"08",X"59",X"8F",X"5B",X"88",X"27",X"47",X"4B",X"71",X"B2",X"0E",X"40",X"A0",X"98", + X"E6",X"B8",X"CA",X"32",X"75",X"B2",X"2E",X"48",X"12",X"78",X"E8",X"BF",X"CA",X"32",X"75",X"DE", + X"0A",X"B0",X"0D",X"4B",X"E1",X"4A",X"9A",X"7D",X"D6",X"56",X"DE",X"20",X"0B",X"56",X"DF",X"C8", + X"36",X"75",X"C9",X"95",X"07",X"57",X"E6",X"2A",X"2F",X"BB",X"5F",X"4B",X"7B",X"6A",X"EF",X"FD", + X"59",X"4B",X"39",X"59",X"4B",X"73",X"6A",X"1A",X"7E",X"59",X"4B",X"11",X"59",X"4B",X"F3",X"CA", + X"30",X"FE",X"D9",X"4B",X"B1",X"59",X"EB",X"71",X"75",X"8F",X"32",X"BE",X"E7",X"6B",X"1A",X"FD", + X"8F",X"B2",X"3D",X"67",X"6B",X"B1",X"7D",X"59",X"4B",X"F9",X"59",X"CA",X"40",X"7D",X"59",X"4B", + X"F9",X"59",X"16",X"03",X"CD",X"BD",X"6D",X"D6",X"D6",X"77",X"20",X"30",X"16",X"75",X"77",X"59", + X"4D",X"04",X"F8",X"BD",X"25",X"59",X"83",X"CA",X"B1",X"7D",X"59",X"BC",X"24",X"59",X"A3",X"B6", + X"5F",X"6B",X"91",X"FD",X"D6",X"76",X"20",X"20",X"16",X"75",X"77",X"59",X"CD",X"0C",X"50",X"49", + X"D6",X"A3",X"59",X"4D",X"8C",X"F8",X"34",X"AC",X"D0",X"59",X"DE",X"0C",X"78",X"B6",X"7E",X"CB", + X"91",X"FD",X"D9",X"4B",X"51",X"59",X"00",X"20",X"12",X"BD",X"CF",X"56",X"27",X"5A",X"91",X"FD", + X"59",X"4B",X"D9",X"59",X"D6",X"35",X"DE",X"49",X"B0",X"0A",X"96",X"DF",X"F7",X"CB",X"C8",X"7D", + X"D9",X"4B",X"71",X"59",X"00",X"20",X"12",X"BD",X"CF",X"56",X"27",X"5A",X"91",X"FD",X"D9",X"4B", + X"F9",X"59",X"D6",X"34",X"DE",X"68",X"A0",X"0A",X"96",X"49",X"F7",X"CB",X"C8",X"7D",X"4D",X"68", + X"FF",X"2E",X"2C",X"07",X"32",X"B9",X"CF",X"4D",X"34",X"F0",X"22",X"BA",X"CF",X"F6",X"56",X"D5", + X"31",X"88",X"A8",X"39",X"D6",X"D5",X"26",X"0E",X"50",X"3D",X"36",X"08",X"A1",X"B6",X"70",X"39", + X"56",X"22",X"BA",X"CF",X"E5",X"B9",X"20",X"28",X"19",X"F6",X"5F",X"07",X"DB",X"20",X"07",X"C6", + X"B0",X"B2",X"AE",X"40",X"D3",X"20",X"3A",X"32",X"F8",X"40",X"BF",X"73",X"80",X"1B",X"92",X"58", + X"48",X"56",X"2A",X"B0",X"20",X"32",X"2E",X"48",X"CB",X"E7",X"53",X"20",X"2C",X"C1",X"F1",X"D1", + X"49",X"F6",X"F7",X"C1",X"F7",X"B8",X"C9",X"CD",X"ED",X"4D",X"91",X"8B",X"E9",X"C9",X"F9",X"28", + X"F1",X"F7",X"39",X"20",X"28",X"39",X"08",X"F7",X"12",X"B9",X"CF",X"34",X"D6",X"2F",X"20",X"1C", + X"05",X"A0",X"98",X"49",X"ED",X"55",X"E9",X"A1",X"A8",X"67",X"31",X"0B",X"A8",X"AE",X"AF",X"6A", + X"D5",X"76",X"28",X"16",X"30",X"2F",X"19",X"2C",X"38",X"D1",X"16",X"D7",X"C9",X"CA",X"D2",X"FE", + X"ED",X"A3",X"DD",X"76",X"A9",X"16",X"B0",X"0F",X"E9",X"55",X"D6",X"08",X"6B",X"56",X"F6",X"CA", + X"D1",X"FE",X"23",X"55",X"56",X"2A",X"96",X"30",X"C7",X"C1",X"51",X"43",X"21",X"3C",X"CF",X"97", + X"CD",X"FA",X"64",X"6D",X"31",X"1C",X"67",X"20",X"9F",X"CD",X"A1",X"19",X"67",X"45",X"98",X"C9", + X"39",X"B8",X"E7",X"A1",X"05",X"CF",X"C5",X"98",X"39",X"33",X"E7",X"A1",X"1A",X"CF",X"6F",X"96", + X"0F",X"98",X"47",X"70",X"26",X"08",X"CD",X"10",X"47",X"8F",X"29",X"7F",X"36",X"08",X"A1",X"9C", + X"E7",X"11",X"51",X"06",X"2A",X"B6",X"5D",X"55",X"7C",X"33",X"C5",X"B8",X"4F",X"A1",X"3D",X"CF", + X"36",X"08",X"57",X"39",X"92",X"88",X"40",X"CE",X"09",X"A7",X"F7",X"71",X"A1",X"08",X"67",X"8F", + X"A9",X"57",X"51",X"36",X"28",X"11",X"C3",X"DD",X"E5",X"E9",X"29",X"2B",X"28",X"CD",X"B0",X"49", + X"A1",X"AA",X"F8",X"AE",X"0B",X"36",X"88",X"CD",X"4D",X"11",X"F8",X"A3",X"69",X"B8",X"F0",X"34", + X"CD",X"19",X"50",X"A3",X"D6",X"27",X"20",X"DF",X"21",X"28",X"E7",X"16",X"0B",X"96",X"09",X"36", + X"8B",X"28",X"26",X"0B",X"D6",X"97",X"A0",X"0D",X"34",X"BC",X"A3",X"B8",X"77",X"56",X"18",X"30", + X"0D",X"47",X"2F",X"27",X"2F",X"27",X"E6",X"27",X"F6",X"B8",X"CD",X"0C",X"50",X"D1",X"3C",X"EE", + X"8F",X"D6",X"38",X"4D",X"04",X"F8",X"34",X"A3",X"D6",X"B8",X"66",X"36",X"38",X"4D",X"04",X"F8", + X"1C",X"14",X"08",X"94",X"D6",X"38",X"EA",X"F7",X"77",X"A1",X"3D",X"CF",X"39",X"23",X"3B",X"96", + X"89",X"28",X"D6",X"EF",X"27",X"AF",X"27",X"AF",X"EE",X"8F",X"FE",X"38",X"4D",X"04",X"F8",X"BC", + X"50",X"EE",X"0F",X"FE",X"30",X"4D",X"AC",X"F0",X"3D",X"14",X"1C",X"A3",X"08",X"94",X"D6",X"38", + X"A0",X"D7",X"A1",X"9C",X"67",X"3E",X"8B",X"36",X"89",X"BE",X"1E",X"28",X"26",X"0B",X"D6",X"4D", + X"AC",X"F0",X"23",X"34",X"38",X"D0",X"1C",X"14",X"08",X"94",X"D6",X"38",X"20",X"C3",X"EB",X"D3", + X"29",X"C5",X"7D",X"22",X"B2",X"67",X"ED",X"B9",X"28",X"08",X"11",X"32",X"B4",X"67",X"F6",X"F7", + X"E1",X"F7",X"02",X"BD",X"CF",X"A3",X"22",X"BD",X"CF",X"D9",X"E1",X"49",X"AF",X"8F",X"AF",X"8F", + X"C7",X"A6",X"A8",X"21",X"81",X"B9",X"69",X"D2",X"11",X"49",X"AB",X"8D",X"EE",X"CC",X"69",X"4B", + X"63",X"71",X"28",X"2E",X"21",X"7B",X"7D",X"78",X"6D",X"7A",X"A8",X"78",X"64",X"69",X"71",X"6D", + X"FA",X"5B",X"A8",X"89",X"AE",X"5A",X"E9",X"CE",X"6B",X"28",X"A0",X"28",X"FB",X"4B",X"6F",X"5A", + X"6D",X"A8",X"7A",X"6C",X"74",X"66",X"69",X"65",X"6D",X"28",X"23",X"2F",X"B9",X"7B",X"7C",X"28", + X"2D",X"0F",X"B2",X"CE",X"EC",X"08",X"2F",X"0F",X"B3",X"5A",X"EC",X"08",X"B9",X"0F",X"B4",X"5C", + X"60",X"28",X"3B",X"2F",X"BD",X"7C",X"60",X"28",X"3D",X"2F",X"BE",X"7C",X"60",X"28",X"3F",X"2F", + X"B7",X"5C",X"68",X"08",X"ED",X"CD",X"4D",X"A0",X"70",X"F7",X"A3",X"28",X"F7",X"28",X"69",X"C1", + X"C9",X"28",X"87",X"7E",X"23",X"FE",X"23",X"C5",X"CD",X"80",X"F0",X"43",X"E1",X"28",X"C5",X"80", + X"32",X"BB",X"00",X"16",X"A0",X"77",X"00",X"49",X"FD",X"DD",X"C3",X"A6",X"A8",X"21",X"81",X"21", + X"01",X"21",X"01",X"72",X"2F",X"8D",X"47",X"B9",X"28",X"C0",X"19",X"D9",X"F1",X"49",X"28",X"2F", + X"57",X"BF",X"57",X"0F",X"ED",X"32",X"1C",X"F9",X"B2",X"3F",X"C8",X"B2",X"65",X"40",X"31",X"C9", + X"52",X"A1",X"14",X"F1",X"2E",X"2C",X"56",X"F6",X"3A",X"C5",X"21",X"20",X"28",X"39",X"C3",X"C1", + X"32",X"A3",X"ED",X"A1",X"30",X"08",X"11",X"43",X"E9",X"B8",X"43",X"C1",X"CB",X"A1",X"E7",X"F9", + X"29",X"D7",X"24",X"36",X"21",X"4D",X"E8",X"F1",X"21",X"EE",X"28",X"39",X"C3",X"32",X"2C",X"48", + X"EE",X"38",X"07",X"2F",X"07",X"A1",X"7B",X"F9",X"47",X"AE",X"08",X"29",X"D6",X"A3",X"E6",X"67", + X"16",X"22",X"E5",X"A1",X"5C",X"F0",X"CD",X"6F",X"51",X"E9",X"2E",X"2A",X"CD",X"E8",X"51",X"4D", + X"58",X"F9",X"94",X"C5",X"A1",X"6A",X"F8",X"4D",X"4F",X"F9",X"E9",X"AE",X"0A",X"4D",X"68",X"F9", + X"CD",X"78",X"51",X"94",X"E5",X"A1",X"40",X"F0",X"CD",X"6F",X"51",X"E9",X"2E",X"2A",X"CD",X"E8", + X"F9",X"4D",X"58",X"F9",X"6B",X"F7",X"68",X"A9",X"F7",X"0B",X"4D",X"68",X"F9",X"BB",X"33",X"49", + X"E5",X"A1",X"BB",X"F1",X"2E",X"21",X"CD",X"E8",X"51",X"A1",X"22",X"28",X"19",X"CB",X"E1",X"49", + X"CD",X"80",X"32",X"BB",X"30",X"F2",X"49",X"4D",X"D8",X"5C",X"5A",X"49",X"28",X"58",X"CC",X"49", + X"59",X"6D",X"7A",X"F3",X"51",X"09",X"51",X"0F",X"51",X"05",X"51",X"A8",X"33",X"A8",X"10",X"B9", + X"3E",X"28",X"3B",X"39",X"38",X"3A",X"38",X"28",X"3C",X"39",X"3A",X"3A",X"3C",X"28",X"3C",X"39", + X"34",X"BA",X"10",X"B8",X"30",X"B8",X"30",X"A8",X"78",X"7C",X"7B",X"74",X"C7",X"B0",X"17",X"D0", + X"8F",X"DB",X"98",X"4D",X"A7",X"F9",X"4D",X"76",X"FA",X"4D",X"D2",X"FB",X"6B",X"D9",X"FC",X"4D", + X"AD",X"F2",X"21",X"28",X"E0",X"21",X"28",X"38",X"CD",X"B8",X"52",X"B0",X"0A",X"96",X"28",X"4D", + X"E1",X"FA",X"96",X"09",X"4D",X"E1",X"FA",X"A1",X"08",X"D0",X"21",X"08",X"88",X"4D",X"38",X"FA", + X"16",X"2A",X"DC",X"C1",X"52",X"A1",X"28",X"48",X"29",X"28",X"38",X"4D",X"30",X"F2",X"16",X"2B", + X"5C",X"E1",X"FA",X"A1",X"08",X"50",X"21",X"08",X"88",X"4D",X"38",X"FA",X"B0",X"1C",X"96",X"0C", + X"CD",X"C1",X"52",X"96",X"2D",X"4D",X"C1",X"F2",X"16",X"2E",X"CD",X"C1",X"52",X"96",X"2F",X"4D", + X"41",X"FA",X"4D",X"D4",X"74",X"4D",X"C7",X"FC",X"90",X"F3",X"4D",X"37",X"72",X"A1",X"A0",X"08", + X"D9",X"A1",X"28",X"28",X"CD",X"6A",X"F2",X"36",X"28",X"5C",X"C1",X"F2",X"21",X"28",X"68",X"4D", + X"EA",X"FA",X"96",X"09",X"5C",X"E1",X"72",X"4D",X"5C",X"FC",X"4D",X"67",X"74",X"30",X"53",X"49", + X"56",X"FF",X"07",X"F7",X"07",X"8E",X"D6",X"D7",X"37",X"C8",X"72",X"A3",X"0B",X"70",X"B1",X"A0", + X"47",X"49",X"21",X"08",X"A0",X"4D",X"FF",X"FA",X"D3",X"59",X"9E",X"A3",X"A0",X"0C",X"59",X"72", + X"D9",X"16",X"23",X"59",X"C8",X"B7",X"C9",X"B9",X"28",X"28",X"E5",X"DD",X"39",X"A8",X"28",X"87", + X"CD",X"FA",X"79",X"C1",X"A0",X"0B",X"A3",X"A3",X"03",X"73",X"8E",X"7F",X"A3",X"72",X"8E",X"FF", + X"23",X"4B",X"12",X"4B",X"1B",X"B0",X"20",X"72",X"C6",X"00",X"7F",X"73",X"C6",X"38",X"5F",X"2B", + X"D0",X"91",X"A0",X"56",X"49",X"4D",X"2B",X"FD",X"4D",X"61",X"74",X"A1",X"1D",X"FD",X"4D",X"39", + X"F5",X"A1",X"8B",X"F5",X"CD",X"B9",X"F5",X"45",X"5B",X"82",X"F5",X"A1",X"84",X"F5",X"2E",X"20", + X"4D",X"DA",X"75",X"A1",X"07",X"FD",X"26",X"88",X"4D",X"E8",X"75",X"45",X"53",X"D3",X"75",X"A1", + X"55",X"F5",X"2E",X"20",X"EB",X"72",X"F5",X"4D",X"23",X"F5",X"CD",X"C9",X"F4",X"A1",X"CA",X"F5", + X"4D",X"39",X"75",X"A1",X"83",X"FD",X"4D",X"39",X"75",X"45",X"53",X"A2",X"75",X"A1",X"04",X"FD", + X"2E",X"2A",X"CD",X"72",X"F5",X"A1",X"C0",X"F5",X"2E",X"2A",X"CD",X"E0",X"F5",X"45",X"5B",X"53", + X"75",X"A1",X"5D",X"FD",X"26",X"0A",X"6B",X"DA",X"75",X"45",X"53",X"D3",X"75",X"8F",X"2B",X"7F", + X"21",X"DC",X"F5",X"CB",X"BD",X"F5",X"CD",X"D7",X"F4",X"4D",X"23",X"F5",X"87",X"5B",X"38",X"4B", + X"D7",X"20",X"0B",X"07",X"5B",X"8D",X"59",X"6F",X"59",X"4D",X"9A",X"FB",X"4D",X"69",X"FB",X"58", + X"D9",X"4B",X"69",X"59",X"EC",X"88",X"53",X"B0",X"F0",X"49",X"87",X"5B",X"38",X"4B",X"57",X"80", + X"0B",X"07",X"5B",X"8D",X"59",X"11",X"47",X"59",X"6C",X"8B",X"FD",X"A1",X"F1",X"FD",X"26",X"0F", + X"CD",X"E0",X"55",X"4D",X"7D",X"F3",X"21",X"B2",X"56",X"26",X"2D",X"4D",X"71",X"F5",X"D9",X"4B", + X"61",X"59",X"48",X"A1",X"DD",X"FE",X"4D",X"39",X"FD",X"A1",X"BE",X"FE",X"31",X"08",X"8A",X"AE", + X"2C",X"4D",X"71",X"F5",X"C9",X"59",X"CB",X"61",X"D9",X"31",X"28",X"28",X"E8",X"31",X"28",X"2D", + X"49",X"07",X"5B",X"88",X"31",X"0D",X"1B",X"AE",X"0E",X"A1",X"69",X"FE",X"07",X"B0",X"0C",X"A1", + X"64",X"F6",X"B7",X"00",X"ED",X"7D",X"CD",X"BD",X"55",X"79",X"E9",X"D0",X"D6",X"2D",X"20",X"2D", + X"00",X"2F",X"97",X"28",X"25",X"28",X"58",X"28",X"D3",X"CE",X"0A",X"7F",X"00",X"B8",X"D2",X"4D", + X"7D",X"F3",X"C3",X"8F",X"DB",X"28",X"39",X"39",X"0E",X"11",X"C3",X"4D",X"83",X"F3",X"B7",X"49", + X"8F",X"5B",X"0C",X"B9",X"19",X"98",X"4D",X"A3",X"FB",X"97",X"49",X"27",X"47",X"AF",X"27",X"AF", + X"E6",X"2E",X"6F",X"D1",X"0F",X"EE",X"29",X"B8",X"6F",X"D1",X"0F",X"07",X"E6",X"29",X"B0",X"47", + X"26",X"0B",X"A1",X"69",X"FE",X"4B",X"91",X"30",X"0B",X"A1",X"6C",X"FE",X"6D",X"DD",X"4D",X"3D", + X"55",X"79",X"E9",X"D3",X"EE",X"2A",X"5F",X"30",X"C1",X"49",X"CD",X"D7",X"54",X"4D",X"0B",X"F5", + X"8F",X"DB",X"98",X"A1",X"6F",X"FE",X"26",X"0B",X"4D",X"E8",X"FD",X"A1",X"00",X"FE",X"8F",X"28", + X"16",X"38",X"18",X"2D",X"76",X"F6",X"87",X"5B",X"08",X"4B",X"67",X"4C",X"0C",X"F4",X"CB",X"C7", + X"4C",X"8C",X"74",X"4B",X"77",X"A0",X"45",X"F6",X"8F",X"DB",X"38",X"49",X"8F",X"DB",X"39",X"DB", + X"30",X"F6",X"CD",X"A7",X"F4",X"32",X"F7",X"F6",X"4F",X"43",X"56",X"DB",X"30",X"A3",X"08",X"CE", + X"A9",X"A7",X"99",X"30",X"AC",X"07",X"A1",X"00",X"76",X"28",X"4D",X"CE",X"74",X"35",X"49",X"B9", + X"8C",X"C4",X"C3",X"28",X"4F",X"28",X"51",X"C6",X"D8",X"AF",X"2F",X"AF",X"2F",X"D6",X"B8",X"F7", + X"A3",X"B6",X"A8",X"A3",X"D1",X"C6",X"2F",X"D6",X"B0",X"F7",X"A3",X"B6",X"A8",X"49",X"F6",X"F6", + X"87",X"5B",X"20",X"27",X"E6",X"B8",X"20",X"DE",X"C9",X"4D",X"D7",X"F4",X"CD",X"23",X"F5",X"A1", + X"AA",X"E0",X"96",X"29",X"31",X"09",X"A8",X"EB",X"4D",X"54",X"74",X"AE",X"3C",X"36",X"A2",X"4D", + X"5C",X"F4",X"16",X"AB",X"6B",X"B9",X"B7",X"28",X"CD",X"5C",X"F4",X"36",X"A0",X"AE",X"32",X"4D", + X"DC",X"FC",X"96",X"2E",X"26",X"09",X"31",X"F5",X"57",X"4D",X"DC",X"FC",X"96",X"2D",X"26",X"9C", + X"CD",X"5C",X"F4",X"36",X"AC",X"AE",X"29",X"B9",X"97",X"D7",X"CD",X"5C",X"F4",X"36",X"AF",X"AE", + X"3A",X"4D",X"DC",X"FC",X"A1",X"10",X"76",X"B9",X"A9",X"D0",X"96",X"0C",X"21",X"0F",X"A8",X"45", + X"B0",X"43",X"29",X"21",X"28",X"29",X"C3",X"35",X"EA",X"84",X"F4",X"A1",X"84",X"F6",X"39",X"28", + X"D8",X"36",X"AC",X"A9",X"28",X"08",X"CD",X"90",X"CB",X"A9",X"28",X"08",X"01",X"43",X"95",X"A0", + X"DD",X"CB",X"CF",X"F4",X"77",X"A3",X"36",X"28",X"19",X"B8",X"D1",X"49",X"87",X"DB",X"31",X"53", + X"49",X"D3",X"96",X"18",X"7B",X"99",X"49",X"07",X"5B",X"88",X"4B",X"FF",X"B7",X"48",X"F6",X"07", + X"DB",X"20",X"CB",X"FF",X"20",X"D0",X"76",X"07",X"DB",X"20",X"CB",X"FF",X"20",X"C1",X"C9",X"F6", + X"F6",X"F6",X"8F",X"5B",X"88",X"27",X"EE",X"0C",X"A0",X"75",X"49",X"4D",X"61",X"FC",X"A1",X"08", + X"F8",X"31",X"29",X"58",X"29",X"D7",X"3E",X"B6",X"28",X"CD",X"B0",X"A1",X"28",X"58",X"39",X"28", + X"E0",X"A9",X"08",X"88",X"CD",X"90",X"96",X"F7",X"B2",X"89",X"D2",X"B2",X"19",X"D2",X"6B",X"D4", + X"54",X"56",X"23",X"76",X"23",X"ED",X"CD",X"6C",X"55",X"CB",X"E1",X"8F",X"C5",X"A8",X"3A",X"33", + X"9E",X"A0",X"F1",X"49",X"FD",X"DD",X"C3",X"A6",X"08",X"21",X"81",X"21",X"81",X"21",X"81",X"72", + X"2F",X"BD",X"47",X"31",X"28",X"C0",X"19",X"79",X"F1",X"49",X"ED",X"7D",X"E5",X"4D",X"35",X"F5", + X"E9",X"D9",X"69",X"3C",X"14",X"B8",X"73",X"49",X"6D",X"4D",X"39",X"FD",X"A3",X"C9",X"30",X"F0", + X"C9",X"6D",X"FD",X"46",X"23",X"66",X"23",X"CB",X"09",X"CB",X"CD",X"BD",X"55",X"A3",X"F9",X"69", + X"30",X"E7",X"49",X"DD",X"6D",X"BE",X"08",X"A9",X"48",X"08",X"4D",X"10",X"FD",X"C9",X"79",X"49", + X"E5",X"4D",X"6C",X"F5",X"7C",X"55",X"3B",X"B6",X"28",X"CD",X"B0",X"E9",X"C9",X"2B",X"0C",X"7A", + X"49",X"CD",X"08",X"0B",X"18",X"5C",X"4D",X"5B",X"5C",X"08",X"0F",X"89",X"C9",X"4B",X"08",X"0F", + X"0C",X"BF",X"33",X"28",X"09",X"24",X"10",X"BC",X"28",X"23",X"0C",X"B0",X"35",X"28",X"0D",X"24", + X"B8",X"B9",X"08",X"8F",X"8C",X"39",X"38",X"38",X"08",X"19",X"8C",X"39",X"38",X"39",X"08",X"1B", + X"0C",X"B9",X"30",X"BA",X"28",X"3D",X"0C",X"B9",X"30",X"BB",X"28",X"2F",X"3A",X"6F",X"4F",X"67", + X"4C",X"08",X"0B",X"8C",X"5A",X"CF",X"CD",X"08",X"0F",X"8C",X"39",X"39",X"B9",X"08",X"89",X"8C", + X"31",X"B8",X"36",X"28",X"6A",X"69",X"6C",X"A8",X"28",X"2A",X"0B",X"61",X"4E",X"78",X"7D",X"7C", + X"A8",X"0A",X"B9",X"5C",X"ED",X"5B",X"FC",X"08",X"AD",X"8C",X"EB",X"CF",X"69",X"CE",X"A0",X"39", + X"28",X"2F",X"24",X"6B",X"67",X"61",X"66",X"A8",X"BA",X"28",X"21",X"23",X"7B",X"6D",X"7A",X"7E", + X"69",X"4B",X"ED",X"08",X"2B",X"8A",X"B1",X"58",X"A0",X"5B",X"FC",X"49",X"FA",X"5C",X"A8",X"8D", + X"22",X"BA",X"78",X"A8",X"7B",X"7C",X"69",X"7A",X"7C",X"28",X"27",X"2F",X"B9",X"28",X"27",X"21", + X"F8",X"CC",X"E9",X"D9",X"ED",X"5A",X"A8",X"19",X"28",X"CA",X"FD",X"CD",X"F8",X"08",X"BB",X"0F", + X"7A",X"61",X"6F",X"60",X"7C",X"28",X"3D",X"20",X"64",X"6D",X"6E",X"7C",X"28",X"27",X"39",X"BA", + X"A8",X"CF",X"6E",X"08",X"A0",X"28",X"A8",X"89",X"2B",X"5B",X"6F",X"5D",X"6E",X"4C",X"A8",X"89", + X"39",X"7C",X"6D",X"7B",X"7C",X"28",X"3A",X"24",X"7B",X"67",X"7D",X"66",X"6C",X"A8",X"28",X"3E", + X"89",X"02",X"8B",X"04",X"8D",X"06",X"8F",X"80",X"09",X"82",X"0B",X"86",X"0F",X"10",X"99",X"13", + X"2F",X"B0",X"B7",X"48",X"4F",X"D0",X"D7",X"29",X"2A",X"2B",X"2C",X"2D",X"2E",X"2F",X"20",X"38", + X"38",X"28",X"20",X"38",X"30",X"48",X"E8",X"48",X"88",X"00",X"C8",X"40",X"B8",X"BF",X"B0",X"08", + X"28",X"28",X"1E",X"F7",X"68",X"E7",X"B8",X"28",X"28",X"28",X"1E",X"F7",X"F8",X"17",X"B8",X"28", + X"A8",X"08",X"9E",X"FF",X"80",X"C7",X"B0",X"08",X"A8",X"08",X"9E",X"FF",X"A8",X"08",X"57",X"F7", + X"28",X"28",X"D7",X"D7",X"28",X"28",X"D7",X"D7",X"28",X"28",X"D7",X"D7",X"31",X"39",X"38",X"34", + X"2F",X"30",X"35",X"2F",X"32",X"34",X"20",X"53",X"45",X"47",X"41",X"20",X"52",X"2F",X"44",X"20", + X"5B",X"5B",X"20",X"46",X"4C",X"49",X"43",X"4B",X"59",X"20",X"21",X"21",X"5D",X"5D",X"20",X"20", + X"4F",X"4C",X"44",X"20",X"4E",X"41",X"4D",X"45",X"20",X"31",X"29",X"20",X"42",X"55",X"53",X"54", + X"59",X"20",X"32",X"29",X"20",X"46",X"4C",X"49",X"50",X"50",X"20",X"50",X"52",X"4F",X"47",X"52", + X"41",X"4D",X"45",X"44",X"20",X"42",X"59",X"20",X"48",X"49",X"44",X"45",X"4B",X"49",X"2E",X"49", + X"53",X"48",X"49",X"4B",X"41",X"57",X"41",X"20",X"53",X"48",X"55",X"49",X"43",X"48",X"49",X"2E", + X"4B",X"41",X"54",X"41",X"47",X"49",X"20",X"47",X"41",X"4D",X"45",X"20",X"44",X"45",X"53",X"49", + X"47",X"4E",X"45",X"44",X"20",X"42",X"59",X"20",X"59",X"4F",X"4A",X"49",X"2E",X"49",X"53",X"48", + X"49",X"49",X"20",X"43",X"48",X"41",X"52",X"41",X"43",X"54",X"4F",X"52",X"20",X"44",X"45",X"53", + X"49",X"47",X"4E",X"45",X"44",X"20",X"42",X"59",X"20",X"59",X"4F",X"53",X"48",X"49",X"4B",X"49", + X"2E",X"4B",X"41",X"57",X"41",X"53",X"41",X"4B",X"49",X"20",X"53",X"45",X"43",X"55",X"52",X"49", + X"54",X"59",X"20",X"42",X"59",X"20",X"53",X"2E",X"4B",X"41",X"54",X"41",X"47",X"49",X"20",X"41", + X"4C",X"4C",X"20",X"52",X"49",X"47",X"48",X"54",X"20",X"52",X"45",X"53",X"45",X"52",X"56",X"45", + X"44",X"20",X"5B",X"5B",X"20",X"44",X"4F",X"4E",X"27",X"54",X"20",X"43",X"4F",X"50",X"59",X"20", + X"21",X"21",X"20",X"5D",X"5D",X"20",X"5B",X"5B",X"20",X"44",X"4F",X"4E",X"27",X"54",X"20",X"43", + X"4F",X"50",X"59",X"20",X"21",X"21",X"20",X"5D",X"5D",X"20",X"5B",X"5B",X"20",X"44",X"4F",X"4E", + X"27",X"54",X"20",X"43",X"4F",X"50",X"59",X"20",X"21",X"21",X"20",X"5D",X"5D",X"20",X"5B",X"5B", + X"20",X"44",X"4F",X"4E",X"27",X"54",X"20",X"43",X"4F",X"50",X"59",X"20",X"21",X"21",X"20",X"5D"); +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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/snd_rom.vhd b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/snd_rom.vhd new file mode 100644 index 00000000..70d4f9b4 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/snd_rom.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity snd_rom is +port ( + clk : in std_logic; + addr : in std_logic_vector(12 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of snd_rom is + type rom is array(0 to 8191) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"F3",X"ED",X"56",X"31",X"00",X"84",X"C3",X"7E",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"38",X"30",X"48", + X"2C",X"31",X"33",X"48",X"2C",X"30",X"2C",X"30",X"F5",X"3E",X"01",X"32",X"10",X"80",X"F1",X"FB", + X"C9",X"44",X"45",X"46",X"57",X"09",X"54",X"41",X"42",X"30",X"30",X"0D",X"0A",X"09",X"44",X"45", + X"46",X"42",X"09",X"30",X"2C",X"46",X"4C",X"47",X"56",X"4F",X"4C",X"2C",X"30",X"2C",X"30",X"0D", + X"0A",X"0D",X"0A",X"0D",X"0A",X"54",X"F5",X"E5",X"3A",X"00",X"E0",X"2A",X"11",X"80",X"77",X"23", + X"CB",X"65",X"28",X"03",X"21",X"00",X"80",X"22",X"11",X"80",X"E1",X"F1",X"ED",X"45",X"CD",X"98", + X"04",X"21",X"00",X"80",X"11",X"01",X"80",X"01",X"FF",X"07",X"36",X"00",X"ED",X"B0",X"21",X"12", + X"80",X"36",X"80",X"21",X"00",X"80",X"11",X"01",X"80",X"01",X"0F",X"00",X"36",X"80",X"ED",X"B0", + X"FB",X"CD",X"B3",X"04",X"3A",X"10",X"80",X"A7",X"28",X"F7",X"AF",X"32",X"10",X"80",X"DD",X"21", + X"30",X"80",X"06",X"10",X"C5",X"DD",X"CB",X"00",X"7E",X"C4",X"C7",X"00",X"11",X"20",X"00",X"DD", + X"19",X"C1",X"10",X"F0",X"C3",X"A1",X"00",X"DD",X"5E",X"03",X"DD",X"56",X"04",X"13",X"DD",X"73", + X"03",X"DD",X"72",X"04",X"DD",X"6E",X"05",X"DD",X"66",X"06",X"B7",X"ED",X"52",X"CC",X"4D",X"02", + X"DD",X"CB",X"03",X"46",X"C0",X"DD",X"5E",X"11",X"DD",X"56",X"12",X"7B",X"B2",X"20",X"07",X"DD", + X"36",X"17",X"0F",X"C3",X"C2",X"01",X"DD",X"CB",X"00",X"6E",X"20",X"33",X"DD",X"7E",X"0B",X"B7", + X"20",X"08",X"DD",X"73",X"13",X"DD",X"72",X"14",X"18",X"59",X"3D",X"21",X"79",X"07",X"23",X"DD", + X"4E",X"0E",X"06",X"00",X"09",X"09",X"4E",X"23",X"66",X"69",X"0E",X"04",X"09",X"4E",X"23",X"66", + X"69",X"4F",X"06",X"00",X"09",X"09",X"7E",X"23",X"66",X"6F",X"CD",X"1A",X"02",X"18",X"34",X"D5", + X"DD",X"6E",X"15",X"DD",X"66",X"16",X"B7",X"ED",X"52",X"F5",X"7D",X"F2",X"40",X"01",X"ED",X"44", + X"67",X"DD",X"5E",X"03",X"CD",X"5A",X"07",X"DD",X"5E",X"05",X"CD",X"66",X"07",X"5F",X"16",X"00", + X"F1",X"7B",X"F2",X"5B",X"01",X"ED",X"44",X"28",X"02",X"15",X"5F",X"E1",X"19",X"DD",X"75",X"13", + X"DD",X"74",X"14",X"DD",X"7E",X"0C",X"B7",X"20",X"0B",X"DD",X"7E",X"0D",X"2F",X"E6",X"0F",X"DD", + X"77",X"17",X"18",X"23",X"3D",X"21",X"79",X"07",X"23",X"DD",X"4E",X"0E",X"06",X"00",X"09",X"09", + X"4E",X"23",X"66",X"69",X"0E",X"02",X"09",X"4E",X"23",X"66",X"69",X"4F",X"06",X"00",X"09",X"09", + X"7E",X"23",X"66",X"6F",X"CD",X"E0",X"01",X"DD",X"CB",X"00",X"76",X"20",X"25",X"DD",X"7E",X"01", + X"E6",X"0F",X"4F",X"06",X"00",X"21",X"D5",X"01",X"09",X"4E",X"DD",X"7E",X"13",X"E6",X"0F",X"B1", + X"CD",X"5C",X"04",X"DD",X"7E",X"13",X"E6",X"F0",X"DD",X"B6",X"14",X"0F",X"0F",X"0F",X"0F",X"CD", + X"5C",X"04",X"DD",X"7E",X"01",X"E6",X"0F",X"4F",X"06",X"00",X"21",X"D9",X"01",X"09",X"7E",X"DD", + X"B6",X"17",X"C3",X"5C",X"04",X"80",X"A0",X"C0",X"C0",X"90",X"B0",X"D0",X"F0",X"DD",X"77",X"0F", + X"E5",X"DD",X"7E",X"0F",X"CB",X"3F",X"F5",X"4F",X"06",X"00",X"09",X"F1",X"7E",X"E1",X"38",X"14", + X"0F",X"0F",X"0F",X"0F",X"B7",X"28",X"E6",X"FE",X"10",X"20",X"05",X"DD",X"35",X"0F",X"18",X"E0", + X"FE",X"20",X"28",X"0B",X"DD",X"34",X"0F",X"F6",X"F0",X"DD",X"86",X"0D",X"3C",X"38",X"01",X"AF", + X"2F",X"E6",X"0F",X"DD",X"77",X"17",X"C9",X"DD",X"77",X"10",X"E5",X"DD",X"7E",X"10",X"CB",X"3F", + X"F5",X"4F",X"06",X"00",X"09",X"F1",X"7E",X"E1",X"38",X"11",X"0F",X"0F",X"0F",X"0F",X"B7",X"CA", + X"17",X"02",X"FE",X"10",X"20",X"05",X"DD",X"35",X"10",X"18",X"DF",X"DD",X"34",X"10",X"2F",X"E6", + X"0F",X"6F",X"26",X"00",X"EB",X"19",X"DD",X"75",X"13",X"DD",X"74",X"14",X"C9",X"DD",X"5E",X"07", + X"DD",X"56",X"08",X"1A",X"13",X"B7",X"FA",X"D2",X"02",X"DD",X"CB",X"00",X"5E",X"20",X"59",X"B7", + X"28",X"03",X"DD",X"86",X"09",X"21",X"C6",X"06",X"4F",X"06",X"00",X"09",X"09",X"7E",X"DD",X"77", + X"11",X"23",X"7E",X"DD",X"77",X"12",X"DD",X"CB",X"00",X"6E",X"28",X"16",X"1A",X"13",X"DD",X"86", + X"09",X"21",X"C6",X"06",X"4F",X"06",X"00",X"09",X"09",X"7E",X"DD",X"77",X"15",X"23",X"7E",X"DD", + X"77",X"16",X"D5",X"1A",X"67",X"DD",X"5E",X"02",X"CD",X"5A",X"07",X"D1",X"DD",X"75",X"05",X"DD", + X"74",X"06",X"AF",X"DD",X"77",X"0F",X"DD",X"77",X"10",X"13",X"DD",X"73",X"07",X"DD",X"72",X"08", + X"AF",X"DD",X"77",X"03",X"DD",X"77",X"04",X"C9",X"DD",X"77",X"12",X"1A",X"13",X"DD",X"77",X"11", + X"DD",X"CB",X"00",X"6E",X"28",X"CC",X"1A",X"13",X"DD",X"77",X"16",X"1A",X"13",X"DD",X"77",X"15", + X"18",X"C0",X"21",X"E5",X"02",X"E5",X"E6",X"3F",X"21",X"E9",X"02",X"4F",X"06",X"00",X"09",X"09", + X"7E",X"23",X"66",X"6F",X"E9",X"13",X"C3",X"53",X"02",X"C4",X"03",X"1D",X"03",X"22",X"03",X"37", + X"03",X"E9",X"03",X"4B",X"03",X"62",X"03",X"67",X"03",X"72",X"03",X"8D",X"03",X"6C",X"03",X"A0", + X"03",X"A8",X"03",X"C0",X"03",X"C6",X"03",X"CC",X"03",X"D2",X"03",X"D8",X"03",X"E0",X"03",X"F3", + X"03",X"00",X"04",X"15",X"04",X"1D",X"04",X"25",X"04",X"34",X"04",X"45",X"04",X"1A",X"DD",X"77", + X"02",X"C9",X"1A",X"DD",X"77",X"0D",X"C9",X"0F",X"0E",X"0D",X"0C",X"0B",X"0A",X"09",X"07",X"08", + X"06",X"05",X"04",X"03",X"02",X"01",X"00",X"1A",X"D5",X"5F",X"DD",X"66",X"02",X"CD",X"5A",X"07", + X"DD",X"75",X"03",X"DD",X"74",X"04",X"D1",X"E1",X"C3",X"A9",X"02",X"1A",X"F6",X"E0",X"F5",X"CD", + X"5C",X"04",X"F1",X"F6",X"FC",X"3C",X"20",X"05",X"DD",X"CB",X"00",X"B6",X"C9",X"DD",X"CB",X"00", + X"F6",X"C9",X"1A",X"DD",X"77",X"0C",X"C9",X"1A",X"DD",X"77",X"0B",X"C9",X"EB",X"5E",X"23",X"56", + X"1B",X"C9",X"1A",X"4F",X"13",X"1A",X"47",X"C5",X"DD",X"E5",X"E1",X"DD",X"35",X"0A",X"DD",X"4E", + X"0A",X"DD",X"35",X"0A",X"06",X"00",X"09",X"72",X"2B",X"73",X"D1",X"1B",X"C9",X"DD",X"E5",X"E1", + X"DD",X"4E",X"0A",X"06",X"00",X"09",X"5E",X"23",X"56",X"DD",X"34",X"0A",X"DD",X"34",X"0A",X"C9", + X"1A",X"DD",X"86",X"09",X"DD",X"77",X"09",X"C9",X"1A",X"13",X"C6",X"18",X"4F",X"06",X"00",X"DD", + X"E5",X"E1",X"09",X"7E",X"B7",X"20",X"02",X"1A",X"77",X"13",X"35",X"C2",X"6C",X"03",X"13",X"C9", + X"DD",X"CB",X"00",X"EE",X"1B",X"C9",X"DD",X"CB",X"00",X"AE",X"1B",X"C9",X"DD",X"CB",X"00",X"DE", + X"1B",X"C9",X"DD",X"CB",X"00",X"9E",X"1B",X"C9",X"1A",X"DD",X"B6",X"00",X"DD",X"77",X"00",X"C9", + X"1A",X"2F",X"DD",X"A6",X"00",X"DD",X"77",X"00",X"C9",X"CD",X"4D",X"04",X"DD",X"36",X"00",X"00", + X"E1",X"E1",X"C9",X"21",X"20",X"80",X"CB",X"96",X"21",X"90",X"80",X"CB",X"96",X"C3",X"E9",X"03", + X"21",X"20",X"80",X"36",X"00",X"06",X"04",X"11",X"20",X"00",X"21",X"30",X"80",X"CB",X"96",X"19", + X"10",X"FB",X"C3",X"E9",X"03",X"21",X"90",X"80",X"CB",X"96",X"C3",X"E9",X"03",X"21",X"30",X"80", + X"CB",X"96",X"C3",X"E9",X"03",X"21",X"20",X"80",X"CB",X"9E",X"CB",X"96",X"21",X"90",X"80",X"CB", + X"96",X"C3",X"E9",X"03",X"21",X"20",X"80",X"CB",X"A6",X"CB",X"9E",X"CB",X"96",X"21",X"90",X"80", + X"CB",X"96",X"C3",X"E9",X"03",X"21",X"70",X"80",X"CB",X"96",X"C3",X"E9",X"03",X"DD",X"7E",X"01", + X"E6",X"0F",X"4F",X"06",X"00",X"21",X"D9",X"01",X"09",X"7E",X"F6",X"0F",X"DD",X"CB",X"00",X"56", + X"C0",X"ED",X"47",X"DD",X"7E",X"01",X"E6",X"F0",X"FE",X"10",X"28",X"06",X"ED",X"57",X"32",X"00", + X"C0",X"C9",X"ED",X"57",X"32",X"00",X"A0",X"C9",X"E5",X"21",X"00",X"80",X"11",X"01",X"80",X"01", + X"0F",X"00",X"36",X"80",X"ED",X"B0",X"CD",X"8B",X"04",X"E1",X"C9",X"21",X"30",X"80",X"11",X"31", + X"80",X"01",X"FF",X"01",X"36",X"00",X"ED",X"B0",X"21",X"AF",X"04",X"11",X"00",X"A0",X"01",X"04", + X"00",X"ED",X"B0",X"21",X"AF",X"04",X"11",X"00",X"C0",X"01",X"04",X"00",X"ED",X"B0",X"C9",X"9F", + X"BF",X"DF",X"FF",X"06",X"10",X"21",X"00",X"80",X"7E",X"A7",X"28",X"BC",X"FE",X"80",X"28",X"09", + X"36",X"80",X"C5",X"E5",X"CD",X"CD",X"04",X"E1",X"C1",X"23",X"10",X"EC",X"C9",X"21",X"F4",X"04", + X"01",X"13",X"00",X"ED",X"B9",X"C0",X"21",X"F5",X"04",X"09",X"09",X"7E",X"23",X"66",X"6F",X"79", + X"08",X"E9",X"81",X"82",X"83",X"84",X"85",X"86",X"87",X"88",X"89",X"8A",X"8B",X"8C",X"8D",X"8E", + X"8F",X"90",X"91",X"92",X"93",X"1B",X"05",X"2F",X"05",X"43",X"05",X"6E",X"05",X"57",X"05",X"8F", + X"05",X"A3",X"05",X"B7",X"05",X"D0",X"05",X"E4",X"05",X"0B",X"06",X"24",X"06",X"25",X"06",X"26", + X"06",X"37",X"06",X"48",X"06",X"5F",X"06",X"78",X"06",X"79",X"06",X"CD",X"8B",X"04",X"21",X"20", + X"80",X"36",X"00",X"23",X"36",X"00",X"21",X"A1",X"07",X"11",X"30",X"80",X"C3",X"A4",X"06",X"CD", + X"8B",X"04",X"21",X"20",X"80",X"36",X"00",X"23",X"36",X"00",X"21",X"D9",X"08",X"11",X"30",X"80", + X"C3",X"A4",X"06",X"CD",X"8B",X"04",X"21",X"20",X"80",X"36",X"00",X"23",X"36",X"00",X"21",X"95", + X"0C",X"11",X"30",X"80",X"C3",X"A4",X"06",X"21",X"20",X"80",X"3A",X"20",X"80",X"E6",X"C0",X"C0", + X"CB",X"EE",X"CD",X"94",X"06",X"21",X"A7",X"10",X"11",X"30",X"81",X"C3",X"A4",X"06",X"3A",X"21", + X"80",X"CB",X"7F",X"C2",X"EA",X"05",X"21",X"20",X"80",X"3A",X"20",X"80",X"E6",X"F8",X"C0",X"CB", + X"D6",X"21",X"90",X"80",X"CB",X"D6",X"21",X"EB",X"0F",X"11",X"30",X"81",X"C3",X"A4",X"06",X"CD", + X"8B",X"04",X"21",X"20",X"80",X"36",X"00",X"23",X"36",X"00",X"21",X"F2",X"10",X"11",X"30",X"80", + X"C3",X"A4",X"06",X"CD",X"8B",X"04",X"21",X"20",X"80",X"36",X"00",X"23",X"36",X"00",X"21",X"10", + X"12",X"11",X"30",X"80",X"C3",X"A4",X"06",X"21",X"21",X"80",X"CB",X"FE",X"3A",X"20",X"80",X"E6", + X"FC",X"C0",X"21",X"90",X"80",X"CB",X"D6",X"21",X"2C",X"13",X"11",X"30",X"81",X"C3",X"A4",X"06", + X"3A",X"20",X"80",X"E6",X"E0",X"C0",X"21",X"30",X"80",X"CB",X"D6",X"21",X"A1",X"13",X"11",X"B0", + X"81",X"C3",X"A4",X"06",X"21",X"21",X"80",X"CB",X"7E",X"C8",X"21",X"21",X"80",X"CB",X"BE",X"21", + X"20",X"80",X"3A",X"20",X"80",X"E6",X"F8",X"C0",X"CB",X"D6",X"21",X"90",X"80",X"CB",X"D6",X"21", + X"25",X"14",X"11",X"30",X"81",X"3E",X"09",X"08",X"C3",X"A4",X"06",X"21",X"20",X"80",X"3A",X"20", + X"80",X"E6",X"F0",X"C0",X"CB",X"DE",X"21",X"90",X"80",X"CB",X"D6",X"21",X"39",X"15",X"11",X"30", + X"81",X"C3",X"A4",X"06",X"C9",X"C9",X"CD",X"8B",X"04",X"21",X"20",X"80",X"36",X"00",X"21",X"1F", + X"16",X"11",X"30",X"80",X"C3",X"A4",X"06",X"21",X"20",X"80",X"CB",X"FE",X"CD",X"94",X"06",X"21", + X"AE",X"16",X"11",X"30",X"81",X"C3",X"A4",X"06",X"21",X"20",X"80",X"3A",X"20",X"80",X"E6",X"80", + X"C0",X"CB",X"F6",X"CD",X"94",X"06",X"21",X"29",X"17",X"11",X"30",X"81",X"C3",X"A4",X"06",X"21", + X"20",X"80",X"3A",X"20",X"80",X"E6",X"E0",X"C0",X"CB",X"CE",X"21",X"90",X"80",X"CB",X"D6",X"21", + X"D2",X"17",X"11",X"30",X"81",X"C3",X"A4",X"06",X"C9",X"21",X"20",X"80",X"3A",X"20",X"80",X"E6", + X"E0",X"C0",X"21",X"70",X"80",X"CB",X"D6",X"21",X"A3",X"18",X"11",X"F0",X"81",X"C3",X"A4",X"06", + X"06",X"04",X"18",X"02",X"06",X"10",X"11",X"20",X"00",X"21",X"30",X"80",X"CB",X"D6",X"19",X"10", + X"FB",X"C3",X"98",X"04",X"7E",X"23",X"66",X"6F",X"46",X"23",X"C5",X"7E",X"23",X"E5",X"66",X"6F", + X"01",X"0E",X"00",X"ED",X"B0",X"08",X"12",X"08",X"13",X"AF",X"06",X"11",X"12",X"13",X"10",X"FC", + X"E1",X"23",X"C1",X"10",X"E5",X"C9",X"00",X"00",X"FF",X"03",X"C7",X"03",X"90",X"03",X"5D",X"03", + X"2D",X"03",X"FF",X"02",X"D4",X"02",X"AB",X"02",X"85",X"02",X"61",X"02",X"3F",X"02",X"1E",X"02", + X"00",X"02",X"E3",X"01",X"C8",X"01",X"AF",X"01",X"96",X"01",X"80",X"01",X"6A",X"01",X"56",X"01", + X"43",X"01",X"30",X"01",X"1F",X"01",X"0F",X"01",X"00",X"01",X"F2",X"00",X"E4",X"00",X"D7",X"00", + X"CB",X"00",X"C0",X"00",X"B5",X"00",X"AB",X"00",X"A1",X"00",X"98",X"00",X"90",X"00",X"88",X"00", + X"80",X"00",X"79",X"00",X"72",X"00",X"6C",X"00",X"66",X"00",X"60",X"00",X"5B",X"00",X"55",X"00", + X"51",X"00",X"4C",X"00",X"48",X"00",X"44",X"00",X"40",X"00",X"3C",X"00",X"39",X"00",X"36",X"00", + X"33",X"00",X"30",X"00",X"2D",X"00",X"2B",X"00",X"28",X"00",X"26",X"00",X"24",X"00",X"22",X"00", + X"20",X"00",X"1E",X"00",X"1C",X"00",X"1B",X"00",X"19",X"00",X"18",X"00",X"16",X"00",X"15",X"00", + X"13",X"00",X"12",X"00",X"11",X"00",X"10",X"00",X"0F",X"00",X"16",X"00",X"6A",X"06",X"08",X"29", + X"30",X"01",X"19",X"10",X"FA",X"C9",X"06",X"08",X"ED",X"6A",X"7C",X"38",X"03",X"BB",X"38",X"03", + X"93",X"67",X"B7",X"10",X"F3",X"7D",X"17",X"2F",X"C9",X"13",X"A1",X"07",X"D9",X"08",X"95",X"0C", + X"EB",X"0F",X"A7",X"10",X"F2",X"10",X"10",X"12",X"2C",X"13",X"A1",X"13",X"25",X"14",X"39",X"15", + X"C1",X"15",X"DB",X"15",X"1F",X"16",X"AE",X"16",X"29",X"17",X"D2",X"17",X"36",X"18",X"A3",X"18", + X"FF",X"A5",X"07",X"CA",X"08",X"04",X"AE",X"07",X"BB",X"07",X"C8",X"07",X"D5",X"07",X"80",X"10", + X"00",X"00",X"00",X"01",X"00",X"E2",X"07",X"07",X"20",X"00",X"00",X"80",X"11",X"00",X"00",X"00", + X"01",X"00",X"F7",X"07",X"07",X"20",X"00",X"00",X"80",X"12",X"00",X"00",X"00",X"01",X"00",X"21", + X"08",X"07",X"20",X"00",X"00",X"80",X"22",X"00",X"00",X"00",X"01",X"00",X"0C",X"08",X"EF",X"20", + X"00",X"00",X"82",X"0D",X"81",X"14",X"86",X"01",X"88",X"36",X"08",X"88",X"45",X"08",X"88",X"52", + X"08",X"88",X"5D",X"08",X"8A",X"E2",X"07",X"82",X"0E",X"81",X"14",X"86",X"02",X"88",X"62",X"08", + X"88",X"6A",X"08",X"88",X"72",X"08",X"88",X"7A",X"08",X"8A",X"F7",X"07",X"82",X"0D",X"81",X"14", + X"86",X"01",X"88",X"82",X"08",X"88",X"8C",X"08",X"88",X"82",X"08",X"88",X"96",X"08",X"8A",X"0C", + X"08",X"82",X"0D",X"81",X"14",X"86",X"01",X"88",X"A0",X"08",X"88",X"AE",X"08",X"88",X"A0",X"08", + X"88",X"BC",X"08",X"8A",X"21",X"08",X"19",X"02",X"1D",X"02",X"20",X"02",X"19",X"02",X"1D",X"02", + X"20",X"02",X"25",X"04",X"89",X"22",X"04",X"1E",X"04",X"22",X"02",X"1E",X"02",X"22",X"02",X"25", + X"02",X"89",X"25",X"02",X"25",X"02",X"29",X"04",X"2C",X"02",X"29",X"06",X"89",X"27",X"06",X"20", + X"0A",X"89",X"2C",X"01",X"8C",X"00",X"10",X"62",X"08",X"89",X"2A",X"01",X"8C",X"00",X"10",X"6A", + X"08",X"89",X"29",X"01",X"8C",X"00",X"10",X"72",X"08",X"89",X"27",X"01",X"8C",X"00",X"10",X"7A", + X"08",X"89",X"20",X"02",X"1D",X"02",X"8C",X"01",X"04",X"82",X"08",X"89",X"22",X"02",X"1E",X"02", + X"8C",X"01",X"04",X"8C",X"08",X"89",X"24",X"02",X"20",X"02",X"8C",X"01",X"04",X"96",X"08",X"89", + X"1D",X"02",X"19",X"02",X"20",X"02",X"19",X"02",X"8C",X"02",X"02",X"A0",X"08",X"89",X"1E",X"02", + X"19",X"02",X"22",X"02",X"19",X"02",X"8C",X"02",X"02",X"AE",X"08",X"89",X"20",X"02",X"1B",X"02", + X"20",X"02",X"18",X"02",X"8C",X"02",X"02",X"A0",X"08",X"89",X"CE",X"08",X"D4",X"08",X"CE",X"FE", + X"DC",X"BA",X"A9",X"01",X"EF",X"EC",X"BA",X"01",X"FF",X"DD",X"08",X"0C",X"0C",X"03",X"E4",X"08", + X"F1",X"08",X"FE",X"08",X"80",X"10",X"00",X"00",X"00",X"01",X"00",X"33",X"09",X"0C",X"20",X"00", + X"00",X"80",X"11",X"00",X"00",X"00",X"01",X"00",X"0E",X"09",X"0C",X"20",X"00",X"00",X"80",X"12", + X"00",X"00",X"00",X"01",X"00",X"52",X"09",X"18",X"20",X"00",X"00",X"81",X"1A",X"89",X"88",X"0B", + X"09",X"82",X"0E",X"88",X"6D",X"09",X"82",X"0D",X"88",X"F2",X"09",X"88",X"17",X"0A",X"88",X"3C", + X"0A",X"88",X"61",X"0A",X"88",X"86",X"0A",X"88",X"AB",X"0A",X"88",X"CA",X"0A",X"88",X"E5",X"0A", + X"8A",X"16",X"09",X"88",X"0B",X"09",X"82",X"0E",X"88",X"9E",X"09",X"82",X"0C",X"88",X"0E",X"0B", + X"88",X"1F",X"0B",X"88",X"2C",X"0B",X"88",X"45",X"0B",X"88",X"5A",X"0B",X"88",X"75",X"0B",X"8A", + X"3B",X"09",X"88",X"0B",X"09",X"82",X"0E",X"88",X"CF",X"09",X"82",X"0D",X"86",X"0C",X"88",X"84", + X"0B",X"88",X"A5",X"0B",X"88",X"C6",X"0B",X"88",X"E7",X"0B",X"8A",X"5A",X"09",X"86",X"01",X"2C", + X"01",X"2E",X"01",X"2C",X"01",X"2B",X"01",X"86",X"02",X"2C",X"02",X"20",X"02",X"86",X"07",X"2C", + X"02",X"2A",X"02",X"29",X"02",X"27",X"02",X"86",X"03",X"25",X"03",X"86",X"02",X"27",X"01",X"86", + X"0B",X"29",X"02",X"2A",X"02",X"2C",X"02",X"00",X"02",X"20",X"02",X"00",X"02",X"89",X"86",X"01", + X"29",X"01",X"2A",X"01",X"29",X"01",X"28",X"01",X"86",X"02",X"29",X"02",X"00",X"02",X"86",X"07", + X"29",X"02",X"27",X"02",X"25",X"02",X"24",X"02",X"86",X"03",X"20",X"03",X"86",X"02",X"1E",X"01", + X"86",X"0B",X"1D",X"02",X"1B",X"02",X"1D",X"02",X"00",X"02",X"1D",X"02",X"00",X"02",X"89",X"86", + X"0C",X"01",X"06",X"86",X"0B",X"01",X"02",X"86",X"07",X"01",X"02",X"08",X"02",X"0D",X"02",X"08", + X"02",X"86",X"0C",X"01",X"04",X"05",X"04",X"86",X"0B",X"01",X"02",X"00",X"02",X"01",X"02",X"00", + X"02",X"89",X"86",X"01",X"29",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01",X"2C",X"01",X"2A",X"01", + X"2C",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01",X"2C",X"01",X"2A",X"01", + X"2C",X"01",X"86",X"02",X"2A",X"01",X"89",X"86",X"01",X"29",X"01",X"2A",X"01",X"2C",X"01",X"2E", + X"01",X"30",X"01",X"31",X"01",X"30",X"01",X"29",X"01",X"2A",X"01",X"2C",X"01",X"2A",X"01",X"86", + X"02",X"29",X"01",X"86",X"03",X"2A",X"02",X"86",X"04",X"27",X"02",X"89",X"86",X"01",X"27",X"01", + X"29",X"01",X"27",X"01",X"29",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01",X"29",X"01",X"27",X"01", + X"29",X"01",X"27",X"01",X"29",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01",X"86",X"02",X"29",X"01", + X"89",X"86",X"01",X"27",X"01",X"29",X"01",X"2A",X"01",X"2C",X"01",X"2E",X"01",X"30",X"01",X"2E", + X"01",X"2C",X"01",X"2A",X"01",X"2E",X"01",X"2C",X"01",X"86",X"02",X"2B",X"01",X"86",X"03",X"2C", + X"02",X"86",X"04",X"29",X"02",X"89",X"86",X"01",X"29",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01", + X"2C",X"01",X"2B",X"01",X"2C",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01",X"29",X"01",X"2A",X"01", + X"2C",X"01",X"2B",X"01",X"2C",X"01",X"86",X"02",X"2A",X"01",X"89",X"86",X"01",X"29",X"01",X"2A", + X"01",X"2C",X"01",X"2E",X"01",X"30",X"01",X"31",X"01",X"30",X"01",X"2E",X"01",X"2C",X"01",X"30", + X"01",X"2E",X"01",X"2D",X"01",X"86",X"05",X"2E",X"04",X"89",X"86",X"06",X"31",X"01",X"30",X"01", + X"31",X"02",X"25",X"01",X"24",X"01",X"25",X"02",X"2E",X"01",X"2D",X"01",X"2E",X"02",X"22",X"01", + X"21",X"01",X"22",X"02",X"89",X"86",X"01",X"2C",X"01",X"2E",X"01",X"2C",X"01",X"86",X"02",X"20", + X"01",X"86",X"01",X"2A",X"01",X"2C",X"01",X"2A",X"01",X"86",X"02",X"20",X"01",X"86",X"01",X"27", + X"01",X"26",X"01",X"27",X"01",X"86",X"02",X"20",X"01",X"2C",X"02",X"20",X"02",X"89",X"86",X"08", + X"20",X"0A",X"86",X"09",X"1D",X"02",X"1E",X"02",X"1F",X"02",X"86",X"08",X"20",X"0A",X"89",X"86", + X"09",X"25",X"02",X"24",X"02",X"22",X"02",X"86",X"08",X"20",X"0A",X"89",X"86",X"09",X"1E",X"02", + X"1D",X"02",X"1B",X"02",X"86",X"08",X"1E",X"0A",X"86",X"09",X"1D",X"02",X"1B",X"02",X"19",X"02", + X"86",X"08",X"20",X"0A",X"89",X"86",X"09",X"1D",X"02",X"1E",X"02",X"1F",X"02",X"86",X"08",X"20", + X"0A",X"86",X"09",X"1E",X"02",X"1D",X"02",X"1E",X"02",X"89",X"86",X"06",X"29",X"01",X"28",X"01", + X"29",X"02",X"1D",X"01",X"1C",X"01",X"1D",X"02",X"2A",X"01",X"29",X"01",X"2A",X"02",X"1E",X"01", + X"1D",X"01",X"1E",X"02",X"89",X"86",X"08",X"1B",X"09",X"00",X"01",X"86",X"09",X"1B",X"02",X"1D", + X"02",X"1E",X"02",X"89",X"01",X"02",X"0D",X"02",X"08",X"02",X"0D",X"02",X"01",X"02",X"0D",X"02", + X"08",X"02",X"0D",X"02",X"01",X"02",X"0D",X"02",X"08",X"02",X"0D",X"02",X"0A",X"02",X"08",X"02", + X"06",X"02",X"05",X"02",X"89",X"03",X"02",X"0C",X"02",X"0F",X"02",X"0C",X"02",X"08",X"02",X"0C", + X"02",X"08",X"02",X"0C",X"02",X"08",X"02",X"0C",X"02",X"0F",X"02",X"0C",X"02",X"0D",X"02",X"08", + X"02",X"05",X"02",X"01",X"02",X"89",X"01",X"02",X"0D",X"02",X"08",X"02",X"0D",X"02",X"01",X"02", + X"0D",X"02",X"08",X"02",X"0D",X"02",X"01",X"02",X"0D",X"02",X"08",X"02",X"0D",X"02",X"0A",X"02", + X"06",X"02",X"0D",X"02",X"06",X"02",X"89",X"86",X"0C",X"01",X"04",X"86",X"0B",X"08",X"02",X"0D", + X"02",X"86",X"0C",X"01",X"04",X"86",X"0B",X"06",X"02",X"0D",X"02",X"86",X"0C",X"0C",X"04",X"08", + X"04",X"86",X"0B",X"08",X"02",X"06",X"02",X"05",X"02",X"03",X"02",X"89",X"24",X"0C",X"2C",X"0C", + X"24",X"0C",X"2C",X"0C",X"33",X"0C",X"43",X"0C",X"4F",X"0C",X"5C",X"0C",X"5C",X"0C",X"65",X"0C", + X"7D",X"0C",X"86",X"0C",X"DE",X"FF",X"FF",X"EE",X"DC",X"BA",X"99",X"01",X"DE",X"FF",X"ED",X"B9", + X"75",X"32",X"01",X"CD",X"EF",X"FF",X"FE",X"ED",X"DC",X"CB",X"BB",X"AA",X"AA",X"99",X"99",X"98", + X"88",X"77",X"01",X"CD",X"ED",X"FF",X"FE",X"EE",X"DD",X"DC",X"CB",X"97",X"53",X"21",X"01",X"DE", + X"FF",X"FE",X"ED",X"DC",X"CC",X"BB",X"AA",X"99",X"88",X"76",X"65",X"01",X"DD",X"DD",X"EE",X"EE", + X"FF",X"FF",X"EE",X"EE",X"00",X"AB",X"CD",X"EF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"EE", + X"EE",X"ED",X"DD",X"DD",X"CC",X"CC",X"CB",X"BB",X"BB",X"AA",X"AA",X"A9",X"01",X"DE",X"FF",X"FF", + X"FF",X"ED",X"DA",X"87",X"43",X"01",X"EF",X"FF",X"FE",X"EE",X"EE",X"DD",X"DD",X"DC",X"CC",X"BB", + X"BA",X"A9",X"98",X"01",X"FF",X"99",X"0C",X"BE",X"0F",X"05",X"A4",X"0C",X"B2",X"0C",X"C0",X"0C", + X"CE",X"0C",X"DC",X"0C",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"EA",X"0C",X"0C",X"20",X"00", + X"00",X"0F",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"17",X"0D",X"0C",X"20",X"00",X"00",X"0E", + X"80",X"10",X"00",X"00",X"00",X"01",X"00",X"40",X"0D",X"00",X"20",X"00",X"00",X"0F",X"80",X"11", + X"00",X"00",X"00",X"05",X"00",X"EA",X"0C",X"0C",X"20",X"00",X"00",X"0E",X"80",X"12",X"00",X"00", + X"00",X"01",X"00",X"70",X"0D",X"00",X"20",X"00",X"00",X"0E",X"81",X"18",X"86",X"01",X"20",X"02", + X"88",X"9D",X"0D",X"88",X"A8",X"0D",X"88",X"B7",X"0D",X"88",X"C2",X"0D",X"88",X"9D",X"0D",X"88", + X"A8",X"0D",X"88",X"B7",X"0D",X"88",X"CD",X"0D",X"88",X"DA",X"0D",X"88",X"EB",X"0D",X"88",X"FC", + X"0D",X"88",X"0D",X"0E",X"8A",X"F0",X"0C",X"81",X"18",X"86",X"03",X"1D",X"02",X"88",X"18",X"0E", + X"88",X"2D",X"0E",X"88",X"42",X"0E",X"88",X"57",X"0E",X"8C",X"00",X"02",X"1D",X"0D",X"88",X"57", + X"0E",X"88",X"57",X"0E",X"88",X"6E",X"0E",X"88",X"8F",X"0E",X"88",X"8F",X"0E",X"8A",X"1D",X"0D", + X"81",X"18",X"86",X"04",X"0D",X"02",X"88",X"A4",X"0E",X"88",X"B9",X"0E",X"88",X"CE",X"0E",X"88", + X"E3",X"0E",X"88",X"A4",X"0E",X"88",X"B9",X"0E",X"88",X"CE",X"0E",X"88",X"F8",X"0E",X"88",X"0D", + X"0F",X"88",X"0D",X"0F",X"88",X"1E",X"0F",X"88",X"2F",X"0F",X"88",X"3C",X"0F",X"8A",X"46",X"0D", + X"81",X"18",X"00",X"02",X"86",X"02",X"88",X"51",X"0F",X"88",X"60",X"0F",X"88",X"6D",X"0F",X"88", + X"7A",X"0F",X"88",X"51",X"0F",X"88",X"60",X"0F",X"88",X"6D",X"0F",X"88",X"85",X"0F",X"88",X"92", + X"0F",X"88",X"A3",X"0F",X"88",X"B4",X"0F",X"88",X"BB",X"0F",X"8A",X"74",X"0D",X"25",X"04",X"25", + X"02",X"29",X"02",X"2C",X"06",X"2C",X"02",X"89",X"2E",X"02",X"2C",X"02",X"2A",X"02",X"29",X"02", + X"2A",X"04",X"27",X"02",X"20",X"02",X"89",X"24",X"04",X"24",X"02",X"25",X"02",X"27",X"06",X"20", + X"02",X"89",X"2C",X"04",X"2A",X"02",X"27",X"02",X"29",X"06",X"20",X"02",X"89",X"2C",X"02",X"2A", + X"02",X"29",X"02",X"27",X"02",X"25",X"06",X"20",X"02",X"89",X"27",X"02",X"27",X"02",X"27",X"02", + X"20",X"02",X"29",X"02",X"29",X"02",X"29",X"02",X"20",X"02",X"89",X"27",X"02",X"27",X"02",X"27", + X"02",X"20",X"02",X"29",X"02",X"2C",X"02",X"2E",X"02",X"30",X"02",X"89",X"31",X"02",X"2C",X"02", + X"2C",X"02",X"29",X"02",X"2A",X"02",X"25",X"02",X"25",X"02",X"22",X"02",X"89",X"25",X"0F",X"86", + X"03",X"25",X"0F",X"86",X"01",X"20",X"02",X"89",X"25",X"02",X"1D",X"01",X"20",X"02",X"25",X"01", + X"1D",X"02",X"25",X"02",X"1D",X"01",X"20",X"02",X"25",X"01",X"1D",X"02",X"89",X"25",X"02",X"1D", + X"01",X"20",X"02",X"25",X"01",X"1D",X"02",X"25",X"02",X"1E",X"01",X"20",X"02",X"27",X"01",X"18", + X"02",X"89",X"20",X"02",X"18",X"01",X"1B",X"02",X"20",X"01",X"18",X"02",X"20",X"02",X"18",X"01", + X"1B",X"02",X"20",X"01",X"18",X"02",X"89",X"20",X"02",X"18",X"01",X"1B",X"01",X"1E",X"01",X"20", + X"01",X"18",X"02",X"25",X"02",X"1D",X"01",X"20",X"02",X"25",X"01",X"1D",X"02",X"89",X"25",X"01", + X"2C",X"01",X"2C",X"01",X"29",X"01",X"2C",X"01",X"29",X"01",X"29",X"01",X"25",X"01",X"2A",X"01", + X"19",X"01",X"19",X"01",X"16",X"01",X"19",X"01",X"16",X"01",X"16",X"01",X"12",X"01",X"89",X"19", + X"02",X"1D",X"01",X"20",X"02",X"1D",X"01",X"19",X"02",X"19",X"02",X"1D",X"01",X"20",X"02",X"1D", + X"01",X"19",X"02",X"89",X"11",X"02",X"0D",X"02",X"14",X"02",X"0D",X"02",X"11",X"01",X"11",X"01", + X"0D",X"02",X"14",X"01",X"14",X"01",X"0D",X"02",X"89",X"11",X"02",X"0D",X"02",X"14",X"02",X"0D", + X"02",X"12",X"01",X"12",X"01",X"0D",X"02",X"0F",X"01",X"0F",X"01",X"08",X"02",X"89",X"0C",X"02", + X"08",X"02",X"0F",X"02",X"08",X"02",X"0C",X"01",X"0C",X"01",X"08",X"02",X"0F",X"01",X"0F",X"01", + X"08",X"02",X"89",X"0C",X"02",X"08",X"02",X"0F",X"02",X"08",X"02",X"11",X"01",X"11",X"01",X"0D", + X"02",X"14",X"01",X"14",X"01",X"14",X"02",X"89",X"0C",X"02",X"08",X"02",X"0F",X"02",X"08",X"02", + X"11",X"01",X"11",X"01",X"0D",X"02",X"0D",X"01",X"0D",X"01",X"0D",X"02",X"89",X"0C",X"02",X"08", + X"02",X"0F",X"02",X"08",X"02",X"11",X"02",X"0D",X"02",X"14",X"02",X"0D",X"02",X"89",X"0D",X"02", + X"01",X"02",X"0D",X"02",X"01",X"02",X"12",X"02",X"06",X"02",X"12",X"02",X"06",X"02",X"89",X"0D", + X"02",X"0D",X"01",X"0D",X"05",X"0D",X"02",X"0D",X"01",X"0D",X"05",X"89",X"0D",X"02",X"11",X"01", + X"14",X"02",X"11",X"01",X"0D",X"02",X"0D",X"02",X"11",X"01",X"14",X"02",X"11",X"01",X"0D",X"02", + X"89",X"00",X"02",X"2C",X"02",X"2C",X"02",X"2C",X"02",X"29",X"06",X"25",X"01",X"25",X"01",X"89", + X"25",X"02",X"24",X"02",X"20",X"02",X"20",X"02",X"1E",X"04",X"1B",X"04",X"89",X"00",X"02",X"27", + X"02",X"27",X"02",X"27",X"02",X"24",X"06",X"20",X"02",X"89",X"1B",X"02",X"1B",X"02",X"20",X"02", + X"20",X"02",X"20",X"08",X"89",X"1B",X"02",X"1B",X"02",X"20",X"04",X"20",X"02",X"1D",X"02",X"19", + X"04",X"89",X"20",X"02",X"20",X"02",X"20",X"02",X"20",X"02",X"20",X"02",X"20",X"02",X"20",X"02", + X"20",X"02",X"89",X"20",X"02",X"20",X"02",X"20",X"02",X"20",X"02",X"20",X"02",X"20",X"02",X"22", + X"02",X"24",X"02",X"89",X"86",X"04",X"25",X"08",X"25",X"08",X"89",X"25",X"20",X"89",X"C6",X"0F", + X"D0",X"0F",X"D9",X"0F",X"DF",X"0F",X"CE",X"FF",X"FE",X"DC",X"BB",X"BB",X"AA",X"AA",X"98",X"01", + X"BC",X"DE",X"FD",X"CB",X"BB",X"BB",X"BB",X"AA",X"01",X"CD",X"EF",X"FF",X"ED",X"CB",X"01",X"EF", + X"ED",X"CB",X"BB",X"BB",X"BB",X"BB",X"BB",X"BA",X"98",X"01",X"FF",X"EF",X"0F",X"9B",X"10",X"03", + X"F6",X"0F",X"03",X"10",X"10",X"10",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"1D",X"10",X"00", + X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"47",X"10",X"00",X"20",X"00",X"00", + X"80",X"22",X"00",X"00",X"00",X"01",X"00",X"71",X"10",X"00",X"20",X"00",X"00",X"81",X"01",X"86", + X"01",X"82",X"0E",X"31",X"02",X"36",X"03",X"3A",X"03",X"82",X"0F",X"8C",X"00",X"03",X"23",X"10", + X"3A",X"03",X"3D",X"03",X"42",X"03",X"82",X"0E",X"86",X"02",X"8D",X"31",X"3D",X"0A",X"8E",X"82", + X"0F",X"8C",X"00",X"03",X"3A",X"10",X"93",X"81",X"01",X"86",X"01",X"82",X"0E",X"3D",X"02",X"3A", + X"03",X"36",X"03",X"82",X"0F",X"8C",X"01",X"03",X"23",X"10",X"36",X"03",X"3A",X"03",X"3D",X"05", + X"82",X"0E",X"86",X"02",X"8D",X"38",X"44",X"0A",X"8E",X"82",X"0F",X"8C",X"01",X"03",X"64",X"10", + X"84",X"81",X"01",X"86",X"01",X"82",X"0E",X"36",X"02",X"31",X"03",X"36",X"03",X"82",X"0F",X"8C", + X"02",X"03",X"23",X"10",X"31",X"04",X"36",X"03",X"3A",X"03",X"86",X"02",X"82",X"0E",X"8D",X"29", + X"35",X"0A",X"8E",X"82",X"0F",X"8C",X"02",X"03",X"8E",X"10",X"84",X"9F",X"10",X"A2",X"10",X"FE", + X"DD",X"01",X"FE",X"DC",X"A9",X"01",X"FF",X"AB",X"10",X"E6",X"10",X"03",X"B2",X"10",X"BF",X"10", + X"CC",X"10",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"D9",X"10",X"02",X"20",X"00",X"00",X"80", + X"21",X"00",X"00",X"00",X"01",X"00",X"D9",X"10",X"0A",X"20",X"00",X"00",X"80",X"22",X"00",X"00", + X"00",X"01",X"00",X"D9",X"10",X"0E",X"20",X"00",X"00",X"82",X"0F",X"81",X"01",X"86",X"01",X"28", + X"01",X"29",X"1E",X"00",X"32",X"94",X"E8",X"10",X"EF",X"FE",X"DD",X"CC",X"BA",X"99",X"88",X"77", + X"01",X"FF",X"F6",X"10",X"A0",X"11",X"05",X"01",X"11",X"0E",X"11",X"1B",X"11",X"28",X"11",X"35", + X"11",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"42",X"11",X"11",X"20",X"00",X"00",X"80",X"21", + X"00",X"00",X"00",X"01",X"00",X"42",X"11",X"05",X"20",X"00",X"00",X"80",X"22",X"00",X"00",X"00", + X"01",X"00",X"62",X"11",X"05",X"20",X"00",X"00",X"80",X"10",X"00",X"00",X"00",X"01",X"00",X"62", + X"11",X"05",X"20",X"00",X"00",X"80",X"11",X"00",X"00",X"00",X"01",X"00",X"86",X"11",X"05",X"20", + X"00",X"00",X"81",X"14",X"82",X"0F",X"86",X"01",X"25",X"01",X"26",X"01",X"25",X"01",X"26",X"01", + X"86",X"02",X"25",X"02",X"1D",X"02",X"86",X"03",X"20",X"04",X"8D",X"86",X"04",X"25",X"19",X"08", + X"8E",X"84",X"81",X"14",X"82",X"0F",X"86",X"05",X"00",X"04",X"29",X"02",X"25",X"02",X"86",X"01", + X"25",X"01",X"26",X"01",X"25",X"01",X"26",X"01",X"86",X"02",X"25",X"02",X"1D",X"02",X"8D",X"86", + X"04",X"20",X"19",X"04",X"8E",X"84",X"81",X"14",X"82",X"0F",X"86",X"05",X"31",X"02",X"2C",X"02", + X"25",X"02",X"20",X"02",X"19",X"02",X"14",X"02",X"8D",X"86",X"04",X"0D",X"19",X"08",X"8E",X"84", + X"AA",X"11",X"B0",X"11",X"BB",X"11",X"D0",X"11",X"FA",X"11",X"BC",X"EF",X"FF",X"FE",X"DC",X"01", + X"DF",X"FE",X"DC",X"CC",X"CC",X"CC",X"CC",X"CB",X"A9",X"75",X"01",X"67",X"89",X"AB",X"CD",X"ED", + X"DF",X"DF",X"DF",X"CF",X"CF",X"CF",X"CF",X"BF",X"BF",X"BF",X"AF",X"AF",X"AE",X"DC",X"85",X"01", + X"EF",X"EF",X"EF",X"EF",X"EF",X"DE",X"DE",X"DE",X"DE",X"DE",X"CD",X"CD",X"CD",X"CD",X"CD",X"BC", + X"BC",X"BC",X"BC",X"BC",X"AB",X"AB",X"AB",X"AB",X"AB",X"9A",X"9A",X"9A",X"9A",X"9A",X"89",X"89", + X"89",X"78",X"78",X"67",X"67",X"67",X"56",X"56",X"42",X"01",X"EF",X"FF",X"FE",X"DC",X"BA",X"99", + X"88",X"77",X"66",X"55",X"44",X"77",X"66",X"55",X"44",X"33",X"55",X"44",X"33",X"22",X"01",X"FF", + X"14",X"12",X"FD",X"12",X"06",X"21",X"12",X"2E",X"12",X"3B",X"12",X"48",X"12",X"55",X"12",X"62", + X"12",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"6F",X"12",X"00",X"20",X"00",X"00",X"80",X"21", + X"00",X"00",X"00",X"01",X"00",X"6F",X"12",X"F4",X"20",X"00",X"00",X"80",X"22",X"00",X"00",X"00", + X"01",X"00",X"99",X"12",X"00",X"20",X"00",X"00",X"80",X"10",X"00",X"00",X"00",X"01",X"00",X"99", + X"12",X"00",X"20",X"00",X"00",X"80",X"11",X"00",X"00",X"00",X"01",X"00",X"D0",X"12",X"0C",X"20", + X"00",X"00",X"80",X"12",X"00",X"00",X"00",X"01",X"00",X"D0",X"12",X"00",X"20",X"00",X"00",X"82", + X"0F",X"81",X"14",X"86",X"01",X"3D",X"01",X"38",X"01",X"35",X"01",X"31",X"01",X"2C",X"01",X"29", + X"01",X"25",X"01",X"20",X"01",X"86",X"04",X"1D",X"01",X"19",X"01",X"14",X"01",X"11",X"01",X"8C", + X"00",X"02",X"6F",X"12",X"86",X"02",X"3D",X"04",X"84",X"82",X"0F",X"81",X"14",X"86",X"02",X"00", + X"04",X"3D",X"01",X"38",X"01",X"35",X"01",X"31",X"01",X"86",X"04",X"2C",X"01",X"29",X"01",X"25", + X"01",X"20",X"01",X"1D",X"01",X"19",X"01",X"14",X"01",X"11",X"01",X"0D",X"01",X"11",X"01",X"14", + X"01",X"19",X"01",X"1D",X"01",X"20",X"01",X"25",X"01",X"29",X"01",X"86",X"02",X"25",X"04",X"84", + X"82",X"0F",X"81",X"14",X"86",X"03",X"00",X"08",X"01",X"01",X"05",X"01",X"08",X"01",X"0D",X"01", + X"11",X"01",X"14",X"01",X"19",X"01",X"1D",X"01",X"20",X"01",X"25",X"01",X"29",X"01",X"2C",X"01", + X"25",X"01",X"20",X"01",X"1D",X"01",X"19",X"01",X"86",X"02",X"01",X"04",X"84",X"05",X"13",X"11", + X"13",X"26",X"13",X"0B",X"13",X"FE",X"DD",X"DC",X"BB",X"BA",X"01",X"DE",X"FF",X"FE",X"DC",X"BA", + X"01",X"CD",X"FF",X"FE",X"EE",X"DD",X"CC",X"CC",X"CC",X"CC",X"CC",X"BB",X"BA",X"AA",X"A9",X"99", + X"99",X"99",X"88",X"88",X"87",X"01",X"DE",X"FF",X"DC",X"BB",X"01",X"FF",X"30",X"13",X"8C",X"13", + X"03",X"37",X"13",X"44",X"13",X"51",X"13",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"5E",X"13", + X"0B",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"75",X"13",X"F7",X"20",X"00", + X"00",X"80",X"22",X"00",X"00",X"00",X"01",X"00",X"75",X"13",X"FD",X"20",X"00",X"00",X"82",X"0F", + X"81",X"01",X"86",X"01",X"2B",X"01",X"2C",X"09",X"86",X"00",X"2F",X"01",X"30",X"09",X"86",X"02", + X"30",X"01",X"31",X"10",X"95",X"82",X"0F",X"81",X"01",X"86",X"02",X"2B",X"01",X"2C",X"09",X"86", + X"01",X"2F",X"01",X"30",X"09",X"86",X"03",X"30",X"01",X"31",X"10",X"84",X"92",X"13",X"96",X"13", + X"9B",X"13",X"DF",X"ED",X"CC",X"01",X"DF",X"EE",X"DC",X"B7",X"01",X"EF",X"FF",X"EC",X"A8",X"01", + X"FF",X"A5",X"13",X"1C",X"14",X"01",X"A8",X"13",X"80",X"10",X"00",X"00",X"00",X"01",X"00",X"B5", + X"13",X"FF",X"20",X"00",X"00",X"81",X"01",X"82",X"0F",X"86",X"01",X"1B",X"02",X"1D",X"0D",X"1D", + X"02",X"1E",X"0D",X"1D",X"02",X"1F",X"0D",X"22",X"02",X"24",X"0D",X"18",X"02",X"19",X"0D",X"1B", + X"02",X"1D",X"0D",X"1D",X"02",X"1F",X"0D",X"24",X"02",X"25",X"0D",X"22",X"02",X"24",X"0D",X"24", + X"02",X"25",X"0D",X"1B",X"02",X"1D",X"0D",X"29",X"02",X"2A",X"0D",X"29",X"02",X"2A",X"0D",X"1E", + X"02",X"20",X"0D",X"16",X"02",X"18",X"0D",X"24",X"02",X"25",X"0D",X"25",X"02",X"27",X"0D",X"2A", + X"02",X"2C",X"0D",X"25",X"02",X"28",X"0D",X"22",X"02",X"24",X"0D",X"24",X"02",X"25",X"0D",X"25", + X"02",X"27",X"0D",X"2A",X"02",X"2D",X"0D",X"22",X"02",X"30",X"0D",X"96",X"1E",X"14",X"FF",X"FF", + X"EC",X"A8",X"77",X"01",X"FF",X"27",X"14",X"03",X"2E",X"14",X"3B",X"14",X"48",X"14",X"80",X"20", + X"00",X"00",X"00",X"01",X"00",X"55",X"14",X"00",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00", + X"09",X"00",X"C5",X"14",X"F4",X"20",X"00",X"00",X"80",X"22",X"00",X"00",X"00",X"0C",X"00",X"C5", + X"14",X"F4",X"20",X"00",X"00",X"81",X"01",X"8F",X"82",X"0F",X"00",X"14",X"01",X"00",X"17",X"01", + X"00",X"1C",X"01",X"00",X"1E",X"01",X"00",X"20",X"01",X"00",X"24",X"01",X"00",X"28",X"01",X"00", + X"2C",X"01",X"00",X"30",X"01",X"00",X"37",X"01",X"00",X"41",X"01",X"00",X"4B",X"01",X"00",X"55", + X"01",X"00",X"64",X"01",X"00",X"78",X"01",X"00",X"82",X"01",X"00",X"8C",X"01",X"00",X"96",X"01", + X"00",X"A0",X"01",X"82",X"0E",X"00",X"AA",X"01",X"00",X"B4",X"01",X"00",X"BE",X"01",X"00",X"C8", + X"01",X"00",X"DC",X"01",X"00",X"F0",X"01",X"01",X"05",X"01",X"01",X"19",X"01",X"01",X"2D",X"01", + X"01",X"41",X"01",X"82",X"0D",X"01",X"55",X"01",X"01",X"69",X"01",X"01",X"7D",X"01",X"01",X"91", + X"01",X"01",X"A5",X"01",X"93",X"81",X"01",X"8F",X"82",X"0F",X"00",X"23",X"01",X"00",X"28",X"01", + X"00",X"2D",X"01",X"00",X"32",X"01",X"00",X"37",X"01",X"00",X"3C",X"01",X"00",X"41",X"01",X"00", + X"46",X"01",X"00",X"4B",X"01",X"00",X"50",X"01",X"00",X"55",X"01",X"00",X"5A",X"01",X"00",X"64", + X"01",X"00",X"6E",X"01",X"00",X"78",X"01",X"00",X"82",X"01",X"00",X"8C",X"01",X"00",X"96",X"01", + X"00",X"A0",X"01",X"00",X"AA",X"01",X"82",X"0E",X"00",X"B4",X"01",X"00",X"BE",X"01",X"00",X"C8", + X"01",X"00",X"D2",X"01",X"00",X"DC",X"01",X"00",X"E6",X"01",X"00",X"F0",X"01",X"00",X"FA",X"01", + X"01",X"05",X"01",X"01",X"0F",X"01",X"82",X"0D",X"01",X"19",X"01",X"01",X"23",X"01",X"01",X"2D", + X"01",X"01",X"41",X"01",X"01",X"55",X"01",X"84",X"FF",X"3D",X"15",X"B6",X"15",X"03",X"44",X"15", + X"51",X"15",X"5E",X"15",X"80",X"20",X"00",X"00",X"00",X"01",X"00",X"6B",X"15",X"00",X"20",X"00", + X"00",X"80",X"21",X"00",X"00",X"00",X"02",X"00",X"6B",X"15",X"00",X"20",X"00",X"00",X"80",X"22", + X"00",X"00",X"00",X"01",X"00",X"6B",X"15",X"00",X"20",X"00",X"00",X"81",X"01",X"86",X"02",X"82", + X"0C",X"36",X"01",X"82",X"0C",X"3A",X"01",X"82",X"0C",X"3A",X"01",X"82",X"0D",X"3B",X"01",X"82", + X"0D",X"3B",X"01",X"82",X"0E",X"3C",X"01",X"82",X"0F",X"3C",X"02",X"3D",X"02",X"82",X"0E",X"86", + X"01",X"3E",X"03",X"86",X"02",X"82",X"0D",X"30",X"02",X"82",X"0D",X"35",X"02",X"82",X"0C",X"33", + X"01",X"82",X"0E",X"31",X"01",X"82",X"0D",X"2F",X"02",X"82",X"0D",X"2F",X"02",X"2E",X"02",X"82", + X"0C",X"86",X"01",X"2D",X"09",X"97",X"BA",X"15",X"BE",X"15",X"FC",X"A7",X"51",X"01",X"FE",X"01", + X"FF",X"C3",X"15",X"01",X"C6",X"15",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"D3",X"15",X"00", + X"20",X"00",X"00",X"81",X"32",X"82",X"0F",X"00",X"0A",X"96",X"FF",X"DF",X"15",X"15",X"16",X"02", + X"E4",X"15",X"F1",X"15",X"80",X"23",X"00",X"00",X"00",X"01",X"00",X"FE",X"15",X"00",X"20",X"00", + X"00",X"80",X"13",X"00",X"00",X"00",X"01",X"00",X"06",X"16",X"00",X"20",X"00",X"00",X"88",X"0E", + X"16",X"85",X"04",X"0D",X"04",X"84",X"88",X"0E",X"16",X"85",X"00",X"3D",X"04",X"84",X"81",X"16", + X"82",X"0F",X"86",X"01",X"89",X"17",X"16",X"13",X"46",X"79",X"AB",X"AD",X"EF",X"00",X"FF",X"23", + X"16",X"9E",X"16",X"03",X"2A",X"16",X"37",X"16",X"44",X"16",X"80",X"20",X"00",X"00",X"00",X"01", + X"00",X"51",X"16",X"07",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"08",X"00",X"51",X"16", + X"FB",X"20",X"00",X"00",X"80",X"22",X"00",X"00",X"00",X"01",X"00",X"7E",X"16",X"FB",X"20",X"00", + X"00",X"81",X"15",X"82",X"0F",X"86",X"01",X"2E",X"01",X"2C",X"01",X"2A",X"02",X"2A",X"02",X"2A", + X"02",X"2E",X"01",X"2C",X"01",X"2A",X"02",X"2A",X"02",X"2A",X"02",X"2E",X"01",X"2C",X"01",X"2A", + X"02",X"35",X"01",X"33",X"01",X"31",X"02",X"38",X"01",X"35",X"01",X"36",X"02",X"84",X"81",X"15", + X"82",X"0F",X"86",X"02",X"00",X"02",X"22",X"01",X"1E",X"01",X"25",X"01",X"1E",X"01",X"8C",X"01", + X"05",X"86",X"16",X"19",X"01",X"19",X"01",X"19",X"01",X"19",X"01",X"1E",X"02",X"84",X"A2",X"16", + X"A8",X"16",X"AC",X"EF",X"FF",X"EC",X"BA",X"01",X"EF",X"FE",X"DC",X"BA",X"01",X"FF",X"B2",X"16", + X"21",X"17",X"03",X"B9",X"16",X"C6",X"16",X"D3",X"16",X"80",X"20",X"00",X"00",X"00",X"01",X"00", + X"E0",X"16",X"00",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"01",X"00",X"FB",X"16",X"00", + X"20",X"00",X"00",X"80",X"13",X"00",X"00",X"00",X"01",X"00",X"0A",X"17",X"00",X"20",X"00",X"00", + X"82",X"0F",X"81",X"01",X"86",X"01",X"2C",X"08",X"25",X"08",X"29",X"08",X"2C",X"07",X"31",X"07", + X"35",X"07",X"38",X"06",X"3D",X"06",X"41",X"06",X"41",X"03",X"94",X"82",X"0F",X"81",X"01",X"86", + X"01",X"19",X"10",X"25",X"0F",X"20",X"14",X"01",X"0C",X"84",X"82",X"0F",X"81",X"01",X"86",X"01", + X"85",X"07",X"8F",X"00",X"03",X"10",X"00",X"05",X"0F",X"00",X"07",X"14",X"00",X"14",X"0C",X"90", + X"84",X"23",X"17",X"EF",X"EF",X"CB",X"AA",X"01",X"FF",X"2D",X"17",X"C4",X"17",X"06",X"3A",X"17", + X"47",X"17",X"54",X"17",X"61",X"17",X"6E",X"17",X"7B",X"17",X"80",X"20",X"00",X"00",X"00",X"01", + X"00",X"88",X"17",X"00",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"0A",X"00",X"9B",X"17", + X"00",X"20",X"00",X"00",X"80",X"22",X"00",X"00",X"00",X"14",X"00",X"AE",X"17",X"00",X"20",X"00", + X"00",X"00",X"10",X"00",X"00",X"00",X"01",X"00",X"C1",X"17",X"00",X"20",X"00",X"00",X"00",X"11", + X"00",X"00",X"00",X"01",X"00",X"C1",X"17",X"00",X"20",X"00",X"00",X"00",X"12",X"00",X"00",X"00", + X"01",X"00",X"C1",X"17",X"00",X"20",X"00",X"00",X"81",X"08",X"82",X"0F",X"86",X"01",X"25",X"02", + X"31",X"02",X"3D",X"02",X"25",X"02",X"31",X"02",X"3D",X"06",X"94",X"81",X"08",X"82",X"0F",X"86", + X"01",X"2C",X"02",X"38",X"02",X"44",X"02",X"2C",X"02",X"38",X"02",X"44",X"06",X"94",X"81",X"08", + X"82",X"0F",X"86",X"01",X"29",X"02",X"35",X"02",X"41",X"02",X"29",X"02",X"35",X"02",X"41",X"05", + X"94",X"00",X"01",X"84",X"C6",X"17",X"CD",X"EF",X"FF",X"ED",X"DC",X"CB",X"BA",X"A9",X"98",X"87", + X"01",X"FF",X"D6",X"17",X"31",X"18",X"03",X"DD",X"17",X"EA",X"17",X"F7",X"17",X"80",X"20",X"00", + X"00",X"00",X"01",X"00",X"04",X"18",X"00",X"20",X"00",X"00",X"80",X"21",X"00",X"00",X"00",X"01", + X"00",X"04",X"18",X"00",X"20",X"00",X"00",X"80",X"22",X"00",X"00",X"00",X"01",X"00",X"04",X"18", + X"00",X"20",X"00",X"00",X"81",X"04",X"86",X"01",X"82",X"0B",X"20",X"01",X"82",X"0D",X"2C",X"01", + X"82",X"0C",X"25",X"01",X"82",X"0E",X"31",X"01",X"82",X"0D",X"29",X"01",X"82",X"0F",X"35",X"01", + X"82",X"0E",X"2C",X"01",X"82",X"0E",X"38",X"01",X"82",X"0D",X"31",X"01",X"82",X"0C",X"3D",X"01", + X"98",X"33",X"18",X"EF",X"01",X"FF",X"38",X"18",X"03",X"3F",X"18",X"4C",X"18",X"59",X"18",X"80", + X"10",X"00",X"00",X"00",X"01",X"00",X"66",X"18",X"00",X"20",X"00",X"00",X"80",X"11",X"00",X"00", + X"00",X"01",X"00",X"7A",X"18",X"00",X"20",X"00",X"00",X"80",X"12",X"00",X"00",X"00",X"01",X"00", + X"8E",X"18",X"00",X"20",X"00",X"00",X"81",X"0D",X"82",X"0F",X"0D",X"01",X"01",X"01",X"05",X"01", + X"08",X"01",X"0D",X"01",X"8C",X"00",X"02",X"66",X"18",X"99",X"81",X"0D",X"82",X"0F",X"01",X"01", + X"0D",X"01",X"08",X"01",X"05",X"01",X"01",X"01",X"8C",X"00",X"02",X"7A",X"18",X"99",X"81",X"0D", + X"82",X"0F",X"05",X"01",X"11",X"01",X"01",X"01",X"01",X"01",X"05",X"01",X"8C",X"00",X"02",X"8E", + X"18",X"99",X"FF",X"A5",X"18",X"01",X"A8",X"18",X"80",X"13",X"00",X"00",X"00",X"01",X"00",X"B5", + X"18",X"00",X"20",X"00",X"00",X"82",X"0F",X"81",X"05",X"85",X"07",X"8F",X"8D",X"00",X"01",X"00", + X"05",X"01",X"00",X"05",X"00",X"0A",X"01",X"00",X"0A",X"00",X"0F",X"01",X"00",X"0F",X"00",X"14", + X"01",X"00",X"14",X"00",X"1E",X"01",X"00",X"1E",X"00",X"28",X"01",X"00",X"28",X"00",X"3C",X"01", + X"00",X"3C",X"00",X"37",X"01",X"00",X"37",X"00",X"32",X"01",X"8C",X"00",X"0A",X"DB",X"18",X"82", + X"0E",X"00",X"37",X"00",X"32",X"01",X"82",X"0D",X"00",X"36",X"00",X"31",X"01",X"82",X"0C",X"00", + X"35",X"00",X"30",X"01",X"82",X"0B",X"00",X"34",X"00",X"2F",X"01",X"82",X"0A",X"00",X"33",X"00", + X"2E",X"01",X"82",X"09",X"00",X"32",X"00",X"2D",X"01",X"99",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF"); +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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/spr_rom.vhd b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/spr_rom.vhd new file mode 100644 index 00000000..f23607e3 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/spr_rom.vhd @@ -0,0 +1,2070 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity spr_rom 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 spr_rom is + type rom is array(0 to 32767) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"00",X"02",X"23",X"00",X"30",X"FF",X"02",X"21",X"12",X"33",X"00",X"FF",X"32",X"99",X"29",X"93", + X"30",X"FF",X"38",X"AA",X"8A",X"A8",X"30",X"FF",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"D8",X"AD", + X"8D",X"A8",X"D0",X"FF",X"77",X"24",X"44",X"27",X"70",X"FF",X"7E",X"44",X"45",X"47",X"E0",X"FF", + X"02",X"35",X"56",X"32",X"00",X"FF",X"00",X"00",X"30",X"00",X"00",X"FF",X"00",X"03",X"13",X"00", + X"00",X"FF",X"00",X"31",X"91",X"30",X"00",X"FF",X"03",X"19",X"A9",X"13",X"00",X"FF",X"33",X"19", + X"A9",X"13",X"30",X"FF",X"03",X"21",X"91",X"23",X"00",X"FF",X"00",X"32",X"33",X"30",X"00",X"FF", + X"00",X"06",X"06",X"00",X"00",X"FF",X"04",X"56",X"86",X"55",X"00",X"FF",X"00",X"02",X"23",X"00", + X"30",X"FF",X"02",X"21",X"11",X"23",X"00",X"FF",X"32",X"99",X"29",X"92",X"30",X"FF",X"38",X"AA", + X"8A",X"A8",X"30",X"FF",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"D8",X"AD",X"8D",X"A8",X"D0",X"FF", + X"77",X"24",X"44",X"27",X"70",X"FF",X"7E",X"44",X"45",X"57",X"E0",X"FF",X"02",X"35",X"56",X"32", + X"00",X"FF",X"00",X"02",X"92",X"00",X"00",X"FF",X"00",X"39",X"A9",X"30",X"00",X"FF",X"02",X"89", + X"99",X"82",X"00",X"FF",X"02",X"89",X"99",X"82",X"00",X"FF",X"02",X"81",X"91",X"82",X"00",X"FF", + X"30",X"28",X"08",X"30",X"30",X"FF",X"05",X"66",X"06",X"66",X"00",X"FF",X"00",X"02",X"23",X"00", + X"30",X"FF",X"02",X"22",X"12",X"33",X"00",X"FF",X"32",X"99",X"29",X"93",X"30",X"FF",X"38",X"AA", + X"8A",X"A8",X"30",X"FF",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"D8",X"AD",X"8D",X"A8",X"D0",X"FF", + X"77",X"24",X"44",X"27",X"70",X"FF",X"7E",X"44",X"45",X"47",X"E0",X"FF",X"02",X"35",X"56",X"32", + X"00",X"FF",X"00",X"02",X"12",X"00",X"00",X"FF",X"00",X"31",X"91",X"30",X"00",X"FF",X"83",X"1A", + X"A9",X"13",X"80",X"FF",X"33",X"19",X"99",X"13",X"30",X"FF",X"03",X"51",X"11",X"53",X"00",X"FF", + X"00",X"62",X"33",X"60",X"00",X"FF",X"00",X"80",X"00",X"80",X"00",X"FF",X"00",X"02",X"23",X"03", + X"00",X"FF",X"02",X"22",X"12",X"23",X"00",X"FF",X"32",X"99",X"29",X"92",X"30",X"FF",X"38",X"AA", + X"8A",X"A8",X"30",X"FF",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"D8",X"AD",X"8D",X"A8",X"D0",X"FF", + X"77",X"24",X"44",X"27",X"70",X"FF",X"7E",X"44",X"85",X"47",X"E0",X"FF",X"02",X"35",X"56",X"32", + X"00",X"FF",X"00",X"02",X"12",X"00",X"00",X"FF",X"00",X"3A",X"A9",X"30",X"00",X"FF",X"02",X"89", + X"99",X"82",X"00",X"FF",X"03",X"89",X"99",X"83",X"00",X"FF",X"08",X"35",X"25",X"28",X"00",X"FF", + X"00",X"84",X"34",X"80",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"30",X"32",X"23",X"30", + X"00",X"FF",X"03",X"29",X"22",X"33",X"00",X"FF",X"33",X"22",X"23",X"1A",X"30",X"FF",X"33",X"32", + X"88",X"AA",X"80",X"FF",X"33",X"38",X"88",X"AD",X"80",X"FF",X"33",X"33",X"88",X"AD",X"80",X"FF", + X"33",X"37",X"73",X"34",X"00",X"FF",X"03",X"3E",X"73",X"36",X"40",X"FF",X"00",X"33",X"33",X"66", + X"00",X"FF",X"00",X"00",X"30",X"00",X"00",X"FF",X"00",X"03",X"11",X"00",X"00",X"FF",X"00",X"83", + X"1A",X"90",X"00",X"FF",X"88",X"23",X"19",X"90",X"00",X"FF",X"21",X"13",X"19",X"10",X"00",X"FF", + X"03",X"31",X"11",X"00",X"00",X"FF",X"00",X"31",X"26",X"60",X"00",X"FF",X"00",X"06",X"00",X"00", + X"00",X"FF",X"00",X"66",X"66",X"00",X"00",X"FF",X"30",X"21",X"22",X"30",X"00",X"FF",X"02",X"1A", + X"12",X"33",X"00",X"FF",X"32",X"11",X"12",X"1A",X"30",X"FF",X"33",X"22",X"23",X"AA",X"80",X"FF", + X"33",X"33",X"88",X"AD",X"80",X"FF",X"33",X"38",X"88",X"AD",X"80",X"FF",X"33",X"33",X"88",X"AD", + X"80",X"FF",X"03",X"37",X"73",X"34",X"00",X"FF",X"00",X"3E",X"73",X"66",X"40",X"FF",X"00",X"00", + X"30",X"00",X"00",X"FF",X"00",X"03",X"12",X"00",X"00",X"FF",X"08",X"33",X"19",X"10",X"00",X"FF", + X"08",X"23",X"9A",X"90",X"00",X"FF",X"02",X"92",X"19",X"10",X"00",X"FF",X"00",X"31",X"11",X"00", + X"00",X"FF",X"05",X"55",X"26",X"00",X"00",X"FF",X"00",X"00",X"05",X"00",X"00",X"FF",X"00",X"00", + X"66",X"65",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"30",X"32",X"22",X"30",X"00",X"FF",X"00",X"00",X"00",X"00",X"03",X"22",X"92",X"33", + X"00",X"FF",X"00",X"00",X"02",X"08",X"33",X"22",X"23",X"1A",X"30",X"FF",X"00",X"00",X"32",X"88", + X"33",X"32",X"88",X"AA",X"80",X"FF",X"00",X"00",X"21",X"28",X"33",X"38",X"88",X"AD",X"80",X"FF", + X"00",X"03",X"21",X"28",X"33",X"33",X"88",X"AD",X"80",X"FF",X"30",X"88",X"32",X"12",X"33",X"37", + X"73",X"34",X"00",X"FF",X"08",X"81",X"13",X"23",X"03",X"3E",X"73",X"36",X"40",X"FF",X"00",X"01", + X"91",X"33",X"33",X"33",X"33",X"66",X"00",X"FF",X"00",X"04",X"81",X"11",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"44",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"04",X"40",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"66",X"60",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"30",X"22",X"23",X"30",X"00",X"FF",X"00",X"00",X"00",X"00",X"02",X"19", + X"23",X"33",X"00",X"FF",X"00",X"00",X"00",X"00",X"32",X"22",X"23",X"1A",X"30",X"FF",X"00",X"00", + X"00",X"00",X"33",X"22",X"88",X"AA",X"80",X"FF",X"03",X"00",X"00",X"00",X"33",X"38",X"88",X"AD", + X"80",X"FF",X"33",X"30",X"33",X"00",X"33",X"33",X"88",X"AD",X"80",X"FF",X"03",X"33",X"21",X"30", + X"33",X"37",X"73",X"34",X"00",X"FF",X"00",X"01",X"33",X"33",X"03",X"3E",X"73",X"36",X"40",X"FF", + X"00",X"01",X"13",X"33",X"11",X"33",X"33",X"66",X"00",X"FF",X"00",X"05",X"11",X"33",X"30",X"00", + X"00",X"00",X"00",X"FF",X"00",X"44",X"60",X"22",X"30",X"00",X"00",X"00",X"00",X"FF",X"00",X"46", + X"00",X"88",X"23",X"00",X"00",X"00",X"00",X"FF",X"00",X"46",X"00",X"08",X"02",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"02", + X"00",X"22",X"30",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"32",X"22",X"23",X"80",X"00",X"FF", + X"00",X"00",X"00",X"03",X"22",X"2A",X"A3",X"AA",X"00",X"FF",X"00",X"00",X"00",X"03",X"28",X"8A", + X"C8",X"CA",X"00",X"FF",X"02",X"00",X"00",X"03",X"88",X"8C",X"D8",X"DC",X"00",X"FF",X"33",X"20", + X"00",X"03",X"38",X"8C",X"D8",X"DC",X"00",X"FF",X"03",X"33",X"32",X"22",X"17",X"74",X"4B",X"47", + X"00",X"FF",X"00",X"00",X"23",X"29",X"2E",X"E4",X"44",X"87",X"00",X"FF",X"00",X"00",X"13",X"32", + X"21",X"22",X"55",X"60",X"00",X"FF",X"00",X"05",X"1A",X"33",X"20",X"00",X"00",X"00",X"00",X"FF", + X"00",X"04",X"B1",X"33",X"30",X"00",X"00",X"00",X"00",X"FF",X"00",X"04",X"60",X"DD",X"32",X"00", + X"00",X"00",X"00",X"FF",X"00",X"05",X"80",X"0D",X"03",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"02",X"23",X"00",X"30", + X"00",X"FF",X"00",X"00",X"00",X"03",X"22",X"12",X"23",X"00",X"00",X"FF",X"00",X"00",X"00",X"32", + X"AA",X"2A",X"A2",X"30",X"00",X"FF",X"00",X"00",X"00",X"38",X"AC",X"8C",X"A8",X"30",X"00",X"FF", + X"00",X"00",X"00",X"88",X"CD",X"8D",X"C8",X"80",X"00",X"FF",X"00",X"00",X"00",X"D8",X"CD",X"8D", + X"C8",X"D0",X"00",X"FF",X"00",X"00",X"00",X"77",X"24",X"44",X"27",X"70",X"00",X"FF",X"00",X"00", + X"00",X"7E",X"44",X"85",X"47",X"E0",X"00",X"FF",X"08",X"00",X"00",X"03",X"D5",X"56",X"32",X"00", + X"00",X"FF",X"00",X"80",X"02",X"23",X"30",X"00",X"00",X"00",X"00",X"FF",X"00",X"08",X"33",X"12", + X"13",X"00",X"00",X"00",X"00",X"FF",X"08",X"88",X"33",X"33",X"29",X"30",X"00",X"00",X"00",X"FF", + X"00",X"00",X"83",X"38",X"29",X"80",X"00",X"00",X"00",X"FF",X"00",X"00",X"08",X"81",X"10",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"06",X"08",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"44",X"44",X"86",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"33",X"30",X"30",X"00",X"00",X"FF",X"00",X"00",X"00",X"32", + X"21",X"22",X"30",X"00",X"00",X"FF",X"00",X"00",X"03",X"2A",X"A2",X"AA",X"23",X"00",X"00",X"FF", + X"00",X"00",X"03",X"8A",X"C8",X"CA",X"83",X"00",X"00",X"FF",X"00",X"00",X"08",X"8C",X"D8",X"DC", + X"88",X"00",X"00",X"FF",X"00",X"00",X"0D",X"8C",X"D8",X"DC",X"8D",X"00",X"00",X"FF",X"00",X"00", + X"07",X"72",X"44",X"42",X"77",X"00",X"00",X"FF",X"00",X"00",X"07",X"E4",X"48",X"54",X"7E",X"00", + X"00",X"FF",X"00",X"00",X"00",X"33",X"55",X"63",X"20",X"00",X"00",X"FF",X"00",X"00",X"00",X"08", + X"D2",X"00",X"00",X"00",X"00",X"FF",X"00",X"03",X"32",X"11",X"21",X"30",X"00",X"00",X"00",X"FF", + X"00",X"08",X"33",X"22",X"1A",X"90",X"00",X"00",X"00",X"FF",X"00",X"00",X"83",X"33",X"19",X"90", + X"00",X"00",X"00",X"FF",X"00",X"20",X"08",X"32",X"19",X"10",X"60",X"00",X"00",X"FF",X"00",X"08", + X"88",X"C1",X"41",X"16",X"00",X"00",X"00",X"FF",X"00",X"33",X"38",X"22",X"42",X"60",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"05",X"40",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"33",X"30",X"03",X"00",X"00",X"FF",X"00",X"00",X"00",X"32",X"12",X"22", + X"30",X"00",X"00",X"FF",X"00",X"00",X"03",X"AA",X"3A",X"A2",X"23",X"00",X"00",X"FF",X"00",X"00", + X"08",X"AA",X"8A",X"AA",X"83",X"00",X"00",X"FF",X"00",X"00",X"08",X"AD",X"8D",X"AA",X"88",X"00", + X"00",X"FF",X"00",X"00",X"08",X"AD",X"8D",X"AA",X"8D",X"00",X"00",X"FF",X"00",X"00",X"07",X"74", + X"44",X"42",X"77",X"08",X"00",X"FF",X"00",X"00",X"0E",X"44",X"44",X"54",X"7E",X"38",X"00",X"FF", + X"00",X"00",X"00",X"24",X"85",X"83",X"23",X"88",X"66",X"FF",X"00",X"00",X"00",X"00",X"6C",X"19", + X"AA",X"28",X"06",X"FF",X"00",X"00",X"00",X"80",X"22",X"31",X"9A",X"92",X"66",X"FF",X"00",X"00", + X"08",X"32",X"23",X"31",X"99",X"91",X"D4",X"FF",X"00",X"00",X"00",X"22",X"33",X"33",X"21",X"11", + X"D4",X"FF",X"00",X"00",X"08",X"33",X"30",X"D8",X"33",X"33",X"44",X"FF",X"00",X"00",X"00",X"03", + X"00",X"8D",X"D3",X"80",X"04",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"02",X"23",X"00",X"30",X"FF",X"02",X"21",X"12",X"33", + X"00",X"FF",X"32",X"22",X"22",X"23",X"30",X"FF",X"32",X"11",X"21",X"12",X"30",X"FF",X"88",X"AA", + X"8A",X"A8",X"80",X"FF",X"D8",X"AD",X"8D",X"A8",X"D0",X"FF",X"77",X"A4",X"44",X"A7",X"70",X"FF", + X"7E",X"44",X"85",X"47",X"E0",X"FF",X"80",X"05",X"56",X"00",X"80",X"FF",X"83",X"31",X"91",X"33", + X"80",X"FF",X"33",X"1A",X"A9",X"13",X"30",X"FF",X"33",X"19",X"99",X"13",X"30",X"FF",X"03",X"51", + X"11",X"53",X"00",X"FF",X"00",X"62",X"33",X"60",X"00",X"FF",X"00",X"80",X"00",X"80",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"02",X"23",X"00", + X"30",X"FF",X"02",X"22",X"23",X"33",X"00",X"FF",X"32",X"21",X"12",X"33",X"30",X"FF",X"32",X"22", + X"22",X"23",X"30",X"FF",X"32",X"11",X"21",X"12",X"30",X"FF",X"88",X"99",X"89",X"98",X"80",X"FF", + X"D8",X"AD",X"8D",X"A8",X"D0",X"FF",X"77",X"25",X"45",X"28",X"70",X"FF",X"E3",X"38",X"45",X"33", + X"E0",X"FF",X"03",X"35",X"86",X"33",X"00",X"FF",X"33",X"8A",X"A9",X"83",X"30",X"FF",X"38",X"49", + X"99",X"48",X"30",X"FF",X"08",X"51",X"11",X"58",X"00",X"FF",X"00",X"62",X"33",X"60",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"09",X"00",X"00",X"00", + X"00",X"FF",X"00",X"02",X"23",X"00",X"30",X"FF",X"02",X"22",X"23",X"33",X"00",X"FF",X"32",X"21", + X"12",X"33",X"3A",X"FF",X"32",X"22",X"22",X"23",X"30",X"FF",X"32",X"22",X"22",X"22",X"30",X"FF", + X"82",X"23",X"83",X"22",X"80",X"FF",X"D8",X"31",X"81",X"38",X"D0",X"FF",X"71",X"11",X"41",X"11", + X"70",X"FF",X"12",X"28",X"42",X"22",X"10",X"FF",X"23",X"35",X"86",X"23",X"20",X"FF",X"24",X"3A", + X"AA",X"44",X"30",X"FF",X"04",X"59",X"99",X"55",X"00",X"FF",X"00",X"62",X"11",X"60",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"0A",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"02",X"23",X"00",X"30",X"FF",X"02",X"21", + X"12",X"33",X"00",X"FF",X"32",X"22",X"22",X"23",X"30",X"FF",X"32",X"22",X"22",X"22",X"30",X"FF", + X"82",X"23",X"83",X"22",X"80",X"FF",X"D1",X"11",X"11",X"38",X"D0",X"FF",X"11",X"22",X"12",X"11", + X"70",X"FF",X"12",X"28",X"43",X"22",X"10",X"FF",X"05",X"55",X"86",X"23",X"20",X"FF",X"05",X"5A", + X"AA",X"33",X"30",X"FF",X"06",X"69",X"99",X"54",X"00",X"FF",X"00",X"32",X"11",X"60",X"00",X"FF", + X"33",X"33",X"88",X"83",X"38",X"FF",X"04",X"01",X"9A",X"91",X"13",X"43",X"9A",X"A9",X"38",X"FF", + X"05",X"00",X"11",X"10",X"00",X"45",X"9E",X"E9",X"80",X"FF",X"00",X"00",X"00",X"00",X"05",X"46", + X"58",X"88",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"30",X"FF",X"00",X"00",X"80",X"00", + X"00",X"03",X"22",X"23",X"00",X"FF",X"00",X"88",X"80",X"00",X"00",X"32",X"22",X"22",X"30",X"FF", + X"08",X"83",X"30",X"00",X"03",X"32",X"1A",X"22",X"33",X"FF",X"00",X"00",X"22",X"28",X"03",X"32", + X"22",X"22",X"33",X"FF",X"40",X"03",X"21",X"92",X"03",X"33",X"26",X"23",X"33",X"FF",X"44",X"51", + X"32",X"12",X"33",X"33",X"88",X"83",X"33",X"FF",X"46",X"61",X"33",X"33",X"33",X"33",X"88",X"83", + X"38",X"FF",X"40",X"01",X"93",X"33",X"13",X"43",X"9A",X"A9",X"38",X"FF",X"60",X"00",X"9A",X"10", + X"00",X"45",X"97",X"79",X"80",X"FF",X"00",X"00",X"00",X"00",X"05",X"46",X"58",X"88",X"00",X"FF", + X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"1D", + X"00",X"FF",X"D1",X"13",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"D1",X"33",X"13",X"13",X"13", + X"13",X"11",X"D0",X"FF",X"D1",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"13", + X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"0D", + X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00", + X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"0D",X"11",X"11",X"11",X"11", + X"11",X"11",X"1D",X"00",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"D1", + X"11",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"13",X"13",X"13", + X"11",X"D0",X"FF",X"D1",X"13",X"11",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33", + X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00", + X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD", + X"DD",X"DD",X"D0",X"00",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"D1", + X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"D1",X"11",X"13",X"13",X"13",X"13",X"13", + X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"11",X"13", + X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0", + X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD", + X"DD",X"DD",X"D0",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"0D", + X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"D1",X"13",X"31",X"13",X"33",X"13",X"33", + X"11",X"D0",X"FF",X"D1",X"31",X"31",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"31",X"31", + X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"33",X"33",X"13",X"13",X"13",X"13",X"11",X"D0", + X"FF",X"D1",X"11",X"31",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"0D",X"11",X"11",X"11",X"11", + X"11",X"11",X"1D",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"00", + X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11", + X"1D",X"00",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"D1",X"13",X"11", + X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"13",X"13",X"13",X"11",X"D0", + X"FF",X"D1",X"11",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"33", + X"13",X"33",X"11",X"D0",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"00", + X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD", + X"D0",X"00",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"D1",X"13",X"33", + X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"D1",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0", + X"FF",X"D1",X"13",X"33",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"13",X"13",X"13", + X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"0D", + X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD", + X"D0",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"0D",X"11", + X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"D1",X"13",X"13",X"33",X"13",X"33",X"13", + X"33",X"11",X"D0",X"FF",X"D1",X"33",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1", + X"13",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"13",X"13",X"13",X"13", + X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF", + X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD", + X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0", + X"00",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"D1",X"13", + X"33",X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"D1",X"11",X"13",X"13",X"13",X"13", + X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"13",X"13",X"13",X"13",X"13",X"11", + X"D0",X"FF",X"D1",X"13",X"11",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13", + X"33",X"13",X"33",X"13",X"33",X"13",X"33",X"11",X"D0",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11", + X"11",X"11",X"11",X"1D",X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0", + X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"0D",X"11", + X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13", + X"33",X"13",X"33",X"11",X"D0",X"FF",X"D1",X"11",X"13",X"13",X"13",X"13",X"13",X"13",X"13",X"11", + X"D0",X"FF",X"D1",X"13",X"33",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"11", + X"13",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13", + X"33",X"13",X"33",X"11",X"D0",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"1D", + X"00",X"FF",X"00",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"00",X"DD", + X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11", + X"11",X"11",X"11",X"1D",X"00",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13",X"33",X"13",X"33",X"11", + X"D0",X"FF",X"D1",X"13",X"11",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13", + X"33",X"13",X"13",X"13",X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"11",X"13",X"13",X"13",X"13", + X"13",X"13",X"13",X"11",X"D0",X"FF",X"D1",X"13",X"33",X"13",X"33",X"13",X"33",X"13",X"33",X"11", + X"D0",X"FF",X"0D",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"1D",X"00",X"FF",X"00",X"DD", + X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"33",X"33",X"33",X"33",X"33",X"33", + X"33",X"33",X"FF",X"55",X"25",X"25",X"25",X"50",X"00",X"00",X"00",X"FF",X"55",X"55",X"55",X"55", + X"50",X"00",X"00",X"00",X"FF",X"55",X"25",X"25",X"25",X"50",X"00",X"00",X"00",X"FF",X"55",X"55", + X"55",X"55",X"50",X"00",X"00",X"00",X"FF",X"55",X"25",X"25",X"25",X"50",X"00",X"00",X"00",X"FF", + X"55",X"55",X"55",X"55",X"00",X"00",X"00",X"00",X"FF",X"05",X"25",X"25",X"25",X"00",X"00",X"00", + X"00",X"FF",X"05",X"55",X"55",X"50",X"00",X"00",X"00",X"00",X"FF",X"05",X"25",X"25",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"55",X"50",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"FF",X"52", + X"52",X"52",X"54",X"00",X"00",X"00",X"00",X"FF",X"55",X"55",X"55",X"54",X"50",X"00",X"00",X"00", + X"FF",X"05",X"25",X"25",X"25",X"45",X"00",X"00",X"00",X"FF",X"00",X"55",X"55",X"55",X"54",X"50", + X"00",X"00",X"FF",X"00",X"05",X"25",X"25",X"25",X"45",X"00",X"00",X"FF",X"00",X"00",X"55",X"55", + X"55",X"45",X"00",X"00",X"FF",X"00",X"00",X"05",X"52",X"52",X"55",X"00",X"00",X"FF",X"00",X"00", + X"00",X"05",X"55",X"50",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"01",X"37",X"85",X"00",X"FF",X"13",X"33",X"9A",X"50",X"FF",X"02",X"44",X"46",X"00",X"FF",X"00", + X"24",X"60",X"00",X"FF",X"00",X"04",X"00",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"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"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"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"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"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"FF",X"66", + X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"FF", + X"44",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54",X"54", + X"FF",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22", + X"22",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"30",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"20",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"46",X"64",X"20",X"00",X"00", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"02",X"20",X"40",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"11",X"10",X"01",X"11", + X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"1C",X"10",X"01", + X"C1",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"11",X"10", + X"01",X"11",X"00",X"00",X"00",X"00",X"00",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"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"FF",X"06",X"70",X"00",X"00",X"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"05",X"46",X"67",X"00", + X"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"02",X"25",X"45", + X"66",X"70",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"00",X"03", + X"22",X"45",X"46",X"67",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"32",X"25",X"45",X"66",X"70",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"03",X"22",X"45",X"46",X"70",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"32",X"25",X"46",X"67",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"33",X"45",X"66",X"70",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"22",X"22",X"45",X"46",X"67", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"46",X"64",X"20",X"32",X"25", + X"45",X"66",X"70",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"02",X"20",X"40",X"00", + X"03",X"22",X"45",X"46",X"60",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"11",X"10",X"01",X"11", + X"00",X"00",X"00",X"32",X"25",X"40",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"1C",X"10",X"01", + X"C1",X"00",X"00",X"00",X"00",X"03",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"11",X"10", + X"01",X"11",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"66",X"00",X"00",X"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"00",X"45",X"66",X"00",X"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"00",X"22",X"45",X"66",X"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"00",X"00",X"22",X"45", + X"66",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"00",X"00",X"00", + X"22",X"45",X"66",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"22",X"45",X"66",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"22",X"45",X"66",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"22",X"45",X"66",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"22",X"45",X"66",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"32",X"45",X"66",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"20",X"22",X"45",X"66",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"02",X"46",X"64",X"20",X"22",X"45", + X"66",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"04",X"02",X"20",X"40",X"00", + X"22",X"45",X"66",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"11",X"10",X"01",X"11", + X"00",X"00",X"22",X"45",X"66",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"1C",X"10",X"01", + X"C1",X"00",X"00",X"00",X"22",X"45",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"11",X"10", + X"01",X"11",X"00",X"00",X"00",X"00",X"22",X"00",X"FF",X"22",X"22",X"22",X"FF",X"27",X"77",X"77", + X"FF",X"00",X"55",X"00",X"FF",X"00",X"55",X"00",X"FF",X"00",X"55",X"00",X"FF",X"00",X"55",X"00", + X"FF",X"00",X"55",X"00",X"FF",X"00",X"55",X"00",X"FF",X"00",X"02",X"00",X"00",X"FF",X"00",X"27", + X"20",X"00",X"FF",X"02",X"77",X"00",X"00",X"FF",X"27",X"75",X"50",X"00",X"FF",X"07",X"00",X"55", + X"00",X"FF",X"00",X"00",X"05",X"50",X"FF",X"00",X"00",X"00",X"55",X"FF",X"00",X"00",X"00",X"05", + X"FF",X"00",X"00",X"00",X"00",X"FF",X"22",X"00",X"00",X"00",X"FF",X"27",X"00",X"00",X"00",X"FF", + X"27",X"55",X"55",X"55",X"FF",X"27",X"55",X"55",X"55",X"FF",X"27",X"00",X"00",X"00",X"FF",X"27", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"B1",X"B0",X"FF",X"00",X"BB",X"B0", + X"FF",X"00",X"0A",X"00",X"FF",X"0A",X"0A",X"0A",X"FF",X"00",X"AA",X"A0",X"FF",X"02",X"22",X"22", + X"FF",X"00",X"22",X"20",X"FF",X"00",X"22",X"20",X"FF",X"00",X"0B",X"00",X"00",X"FF",X"00",X"1B", + X"00",X"00",X"FF",X"0B",X"BA",X"0A",X"00",X"FF",X"00",X"00",X"AA",X"20",X"FF",X"00",X"0A",X"A2", + X"22",X"FF",X"00",X"00",X"22",X"22",X"FF",X"00",X"00",X"02",X"20",X"FF",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"0A",X"02",X"00",X"FF",X"BB",X"00",X"A2",X"22",X"FF", + X"1B",X"AA",X"A2",X"22",X"FF",X"BB",X"00",X"A2",X"22",X"FF",X"00",X"0A",X"02",X"00",X"FF",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"08",X"CC",X"EE",X"00",X"FF",X"08",X"CD", + X"EE",X"88",X"FF",X"08",X"CD",X"EE",X"0C",X"FF",X"08",X"CD",X"EE",X"0C",X"FF",X"08",X"CD",X"EE", + X"0C",X"FF",X"08",X"CD",X"EE",X"C0",X"FF",X"08",X"CD",X"EE",X"00",X"FF",X"08",X"CD",X"EE",X"00", + X"FF",X"00",X"08",X"CC",X"C0",X"00",X"FF",X"00",X"CC",X"80",X"0C",X"00",X"FF",X"0C",X"ED",X"C8", + X"00",X"E0",X"FF",X"CE",X"EE",X"DD",X"80",X"E0",X"FF",X"0E",X"EE",X"ED",X"C8",X"00",X"FF",X"00", + X"EE",X"ED",X"DC",X"80",X"FF",X"00",X"0E",X"EE",X"ED",X"00",X"FF",X"00",X"00",X"EE",X"E0",X"00", + X"FF",X"00",X"00",X"00",X"00",X"FF",X"08",X"88",X"80",X"00",X"FF",X"0E",X"00",X"0C",X"00",X"FF", + X"CC",X"CC",X"CC",X"C0",X"FF",X"DD",X"DD",X"DD",X"D0",X"FF",X"EE",X"EE",X"EE",X"E0",X"FF",X"EE", + X"EE",X"EE",X"E0",X"FF",X"EE",X"EE",X"EE",X"E0",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"07", + X"7E",X"E0",X"00",X"FF",X"00",X"00",X"00",X"00",X"82",X"88",X"00",X"0D",X"70",X"00",X"FF",X"00", + X"00",X"00",X"08",X"88",X"88",X"80",X"00",X"E0",X"00",X"FF",X"00",X"00",X"EE",X"ED",X"65",X"50", + X"00",X"EE",X"EE",X"00",X"FF",X"00",X"88",X"88",X"EE",X"DD",X"50",X"0E",X"89",X"88",X"E0",X"FF", + X"02",X"88",X"88",X"8E",X"EE",X"EE",X"E8",X"21",X"28",X"8E",X"FF",X"01",X"26",X"99",X"9C",X"CC", + X"70",X"08",X"86",X"68",X"8E",X"FF",X"02",X"84",X"68",X"8C",X"97",X"77",X"08",X"86",X"48",X"80", + X"FF",X"00",X"88",X"88",X"00",X"00",X"00",X"00",X"88",X"88",X"00",X"FF",X"70",X"00",X"FF",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"0C",X"C0",X"FF",X"00",X"08",X"80", + X"FF",X"02",X"CC",X"D0",X"FF",X"0C",X"0C",X"D0",X"FF",X"0C",X"0C",X"D0",X"FF",X"02",X"CC",X"D0", + X"FF",X"00",X"0C",X"D0",X"FF",X"00",X"C1",X"C0",X"FF",X"0C",X"C2",X"CC",X"FF",X"CC",X"00",X"00", + X"00",X"FF",X"D8",X"00",X"00",X"00",X"FF",X"0D",X"C0",X"00",X"00",X"FF",X"0C",X"DC",X"00",X"00", + X"FF",X"02",X"0D",X"C0",X"00",X"FF",X"00",X"CC",X"DC",X"CC",X"FF",X"00",X"00",X"C1",X"C0",X"FF", + X"00",X"00",X"CC",X"00",X"FF",X"00",X"00",X"C0",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"C0",X"FF",X"00",X"00",X"00",X"0C",X"C0",X"FF",X"C8",X"CC",X"CC",X"C1", + X"C0",X"FF",X"C8",X"DD",X"DD",X"DC",X"C0",X"FF",X"00",X"C0",X"0C",X"00",X"C0",X"FF",X"00",X"2C", + X"C2",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"CC",X"C1",X"00",X"FF",X"0C", + X"DD",X"DD",X"20",X"FF",X"CC",X"C0",X"0C",X"CC",X"FF",X"00",X"0C",X"C0",X"00",X"FF",X"00",X"C1", + X"1C",X"00",X"FF",X"0C",X"13",X"31",X"C0",X"FF",X"C2",X"C1",X"1C",X"CC",X"FF",X"DD",X"DD",X"DD", + X"DD",X"FF",X"00",X"01",X"2C",X"C0",X"00",X"FF",X"00",X"CD",X"CC",X"00",X"00",X"FF",X"0C",X"D0", + X"C0",X"00",X"00",X"FF",X"CD",X"0C",X"CC",X"CC",X"00",X"FF",X"CC",X"CC",X"31",X"CC",X"D0",X"FF", + X"CC",X"0C",X"31",X"CD",X"00",X"FF",X"C0",X"0C",X"CC",X"D0",X"00",X"FF",X"00",X"0C",X"2D",X"00", + X"00",X"FF",X"00",X"00",X"D0",X"00",X"00",X"FF",X"00",X"C0",X"00",X"CD",X"FF",X"02",X"C0",X"0C", + X"CD",X"FF",X"1D",X"C0",X"C1",X"CD",X"FF",X"CD",X"0C",X"13",X"1D",X"FF",X"CD",X"0C",X"13",X"1D", + X"FF",X"CD",X"C0",X"C1",X"CD",X"FF",X"0C",X"C0",X"0C",X"2D",X"FF",X"00",X"C0",X"00",X"CD",X"FF", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"10",X"FF",X"22",X"CC",X"22",X"01",X"FF",X"11", + X"11",X"11",X"01",X"FF",X"01",X"11",X"10",X"10",X"FF",X"00",X"77",X"00",X"00",X"FF",X"11",X"11", + X"11",X"10",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"11",X"00",X"FF",X"00",X"00",X"20", + X"10",X"FF",X"00",X"0C",X"10",X"10",X"FF",X"00",X"C1",X"11",X"00",X"FF",X"02",X"11",X"10",X"01", + X"FF",X"21",X"11",X"10",X"10",X"FF",X"01",X"11",X"71",X"00",X"FF",X"00",X"00",X"10",X"00",X"FF", + X"00",X"01",X"00",X"00",X"FF",X"00",X"10",X"00",X"00",X"FF",X"11",X"10",X"00",X"FF",X"10",X"01", + X"01",X"FF",X"02",X"10",X"01",X"FF",X"02",X"11",X"01",X"FF",X"0C",X"11",X"71",X"FF",X"0C",X"11", + X"71",X"FF",X"02",X"11",X"01",X"FF",X"02",X"10",X"01",X"FF",X"ED",X"00",X"FF",X"00",X"00",X"EE", + X"E0",X"00",X"FF",X"00",X"04",X"44",X"50",X"00",X"FF",X"00",X"43",X"23",X"45",X"00",X"FF",X"00", + X"42",X"31",X"75",X"00",X"FF",X"00",X"53",X"33",X"45",X"00",X"FF",X"00",X"05",X"33",X"59",X"A0", + X"FF",X"53",X"44",X"56",X"00",X"00",X"FF",X"42",X"23",X"43",X"50",X"00",X"FF",X"53",X"34",X"33", + X"50",X"00",X"FF",X"06",X"54",X"45",X"00",X"00",X"FF",X"77",X"66",X"60",X"00",X"00",X"FF",X"00", + X"0A",X"00",X"00",X"00",X"FF",X"00",X"99",X"A0",X"00",X"00",X"FF",X"00",X"04",X"44",X"50",X"00", + X"FF",X"00",X"43",X"23",X"45",X"00",X"FF",X"00",X"42",X"31",X"75",X"00",X"FF",X"00",X"53",X"33", + X"45",X"00",X"FF",X"00",X"05",X"33",X"59",X"A0",X"FF",X"65",X"44",X"56",X"00",X"00",X"FF",X"53", + X"22",X"43",X"50",X"00",X"FF",X"53",X"34",X"33",X"50",X"00",X"FF",X"06",X"54",X"45",X"00",X"00", + X"FF",X"00",X"66",X"60",X"00",X"00",X"FF",X"08",X"A7",X"00",X"00",X"00",X"FF",X"00",X"99",X"00", + X"00",X"00",X"FF",X"00",X"00",X"44",X"45",X"00",X"FF",X"00",X"04",X"23",X"17",X"50",X"FF",X"00", + X"04",X"22",X"34",X"50",X"FF",X"00",X"05",X"33",X"33",X"5A",X"FF",X"05",X"44",X"54",X"45",X"00", + X"FF",X"53",X"22",X"34",X"50",X"00",X"FF",X"53",X"34",X"33",X"50",X"00",X"FF",X"06",X"54",X"45", + X"50",X"00",X"FF",X"00",X"66",X"66",X"00",X"00",X"FF",X"09",X"9A",X"70",X"00",X"00",X"FF",X"00", + X"07",X"77",X"00",X"00",X"FF",X"00",X"00",X"44",X"45",X"00",X"FF",X"00",X"04",X"22",X"11",X"50", + X"FF",X"00",X"04",X"22",X"17",X"50",X"FF",X"00",X"65",X"33",X"24",X"59",X"FF",X"32",X"26",X"54", + X"44",X"A0",X"FF",X"53",X"22",X"56",X"60",X"00",X"FF",X"53",X"33",X"53",X"34",X"00",X"FF",X"05", + X"55",X"43",X"35",X"00",X"FF",X"00",X"05",X"55",X"50",X"00",X"FF",X"00",X"0A",X"A0",X"00",X"00", + X"FF",X"00",X"00",X"98",X"00",X"00",X"FF",X"00",X"00",X"44",X"45",X"00",X"FF",X"00",X"04",X"22", + X"11",X"50",X"FF",X"00",X"04",X"22",X"17",X"50",X"FF",X"00",X"05",X"33",X"24",X"59",X"FF",X"00", + X"66",X"54",X"44",X"90",X"FF",X"00",X"32",X"56",X"60",X"00",X"FF",X"03",X"23",X"53",X"30",X"00", + X"FF",X"02",X"55",X"43",X"30",X"00",X"FF",X"00",X"A5",X"55",X"50",X"00",X"FF",X"00",X"0A",X"00", + X"00",X"00",X"FF",X"04",X"40",X"74",X"44",X"50",X"FF",X"03",X"37",X"42",X"11",X"45",X"FF",X"54", + X"46",X"42",X"17",X"35",X"FF",X"45",X"55",X"43",X"33",X"37",X"FF",X"44",X"34",X"54",X"43",X"50", + X"FF",X"A4",X"32",X"46",X"0A",X"00",X"FF",X"05",X"45",X"60",X"00",X"00",X"FF",X"00",X"A0",X"00", + X"00",X"00",X"FF",X"0A",X"00",X"44",X"00",X"00",X"FF",X"00",X"45",X"33",X"00",X"00",X"FF",X"04", + X"32",X"55",X"00",X"00",X"FF",X"A3",X"32",X"46",X"55",X"50",X"FF",X"64",X"43",X"64",X"33",X"46", + X"FF",X"65",X"34",X"A9",X"37",X"15",X"FF",X"56",X"55",X"53",X"33",X"35",X"FF",X"35",X"60",X"64", + X"73",X"46",X"FF",X"00",X"00",X"06",X"55",X"60",X"FF",X"00",X"0A",X"00",X"A0",X"FF",X"05",X"55", + X"45",X"00",X"FF",X"55",X"53",X"53",X"50",X"FF",X"43",X"54",X"53",X"30",X"FF",X"32",X"43",X"32", + X"30",X"FF",X"25",X"43",X"35",X"20",X"FF",X"06",X"65",X"55",X"60",X"FF",X"00",X"64",X"33",X"46", + X"FF",X"00",X"51",X"31",X"15",X"FF",X"00",X"57",X"37",X"15",X"FF",X"00",X"64",X"33",X"46",X"FF", + X"00",X"06",X"55",X"60",X"FF",X"00",X"04",X"43",X"50",X"00",X"FF",X"00",X"41",X"21",X"15",X"00", + X"FF",X"00",X"47",X"37",X"14",X"00",X"FF",X"00",X"43",X"83",X"35",X"00",X"FF",X"04",X"62",X"A2", + X"46",X"40",X"FF",X"33",X"45",X"55",X"56",X"32",X"FF",X"54",X"55",X"23",X"55",X"45",X"FF",X"05", + X"63",X"22",X"36",X"50",X"FF",X"00",X"05",X"44",X"50",X"00",X"FF",X"00",X"00",X"80",X"90",X"00", + X"FF",X"00",X"00",X"A0",X"A0",X"00",X"FF",X"00",X"44",X"35",X"00",X"FF",X"04",X"12",X"11",X"50", + X"FF",X"04",X"73",X"71",X"40",X"FF",X"04",X"38",X"33",X"50",X"FF",X"06",X"2A",X"24",X"60",X"FF", + X"54",X"55",X"55",X"65",X"FF",X"42",X"52",X"35",X"34",X"FF",X"52",X"42",X"24",X"25",X"FF",X"00", + X"54",X"45",X"00",X"FF",X"00",X"0A",X"0A",X"00",X"FF",X"00",X"03",X"34",X"40",X"FF",X"00",X"33", + X"23",X"44",X"FF",X"00",X"33",X"71",X"37",X"FF",X"00",X"33",X"33",X"94",X"FF",X"00",X"42",X"39", + X"9A",X"FF",X"00",X"65",X"34",X"A0",X"FF",X"06",X"23",X"54",X"56",X"FF",X"03",X"33",X"52",X"45", + X"FF",X"05",X"45",X"44",X"63",X"FF",X"00",X"65",X"66",X"00",X"FF",X"00",X"99",X"0A",X"00",X"FF", + X"00",X"00",X"88",X"A0",X"FF",X"00",X"33",X"34",X"00",X"FF",X"03",X"32",X"23",X"40",X"FF",X"03", + X"73",X"37",X"40",X"FF",X"03",X"13",X"31",X"40",X"FF",X"04",X"39",X"93",X"40",X"FF",X"00",X"4A", + X"A4",X"00",X"FF",X"06",X"55",X"55",X"60",X"FF",X"05",X"33",X"34",X"50",X"FF",X"35",X"43",X"35", + X"53",X"FF",X"00",X"55",X"55",X"00",X"FF",X"00",X"AA",X"0A",X"00",X"FF",X"0A",X"9A",X"AA",X"A0", + X"FF",X"00",X"00",X"22",X"20",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"02",X"EE",X"E2",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"23",X"EE",X"E2",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"02",X"3E", + X"EE",X"E2",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"07",X"CC",X"CC", + X"CB",X"00",X"00",X"66",X"66",X"66",X"00",X"00",X"00",X"00",X"00",X"FF",X"73",X"3E",X"EE",X"E3", + X"00",X"7C",X"54",X"DD",X"DD",X"45",X"00",X"00",X"02",X"00",X"FF",X"CC",X"CC",X"CC",X"CA",X"67", + X"55",X"CC",X"44",X"44",X"5C",X"77",X"00",X"03",X"00",X"FF",X"CC",X"CC",X"CC",X"C6",X"45",X"63", + X"3C",X"CC",X"BB",X"C5",X"66",X"70",X"06",X"00",X"FF",X"73",X"EE",X"E7",X"65",X"63",X"32",X"22", + X"2E",X"EE",X"EE",X"E3",X"67",X"04",X"00",X"FF",X"73",X"EE",X"E7",X"66",X"33",X"22",X"22",X"22", + X"22",X"22",X"2E",X"36",X"05",X"00",X"FF",X"07",X"EE",X"33",X"63",X"22",X"11",X"12",X"22",X"22", + X"11",X"22",X"E3",X"60",X"00",X"FF",X"07",X"3E",X"33",X"EE",X"22",X"55",X"66",X"66",X"33",X"E1", + X"12",X"23",X"49",X"E0",X"FF",X"00",X"76",X"33",X"EE",X"E5",X"6E",X"33",X"33",X"3E",X"A1",X"12", + X"23",X"48",X"80",X"FF",X"00",X"66",X"73",X"33",X"56",X"E3",X"33",X"33",X"EA",X"71",X"12",X"E3", + X"50",X"00",X"FF",X"00",X"05",X"67",X"64",X"43",X"63",X"33",X"3E",X"A7",X"22",X"22",X"E6",X"5D", + X"00",X"FF",X"00",X"00",X"56",X"5D",X"43",X"66",X"3E",X"AA",X"73",X"22",X"EE",X"65",X"04",X"00", + X"FF",X"00",X"00",X"05",X"44",X"D4",X"77",X"77",X"77",X"63",X"3E",X"E6",X"50",X"08",X"00",X"FF", + X"00",X"00",X"00",X"D4",X"44",X"45",X"57",X"75",X"66",X"66",X"75",X"00",X"08",X"00",X"FF",X"00", + X"00",X"00",X"00",X"D4",X"44",X"45",X"55",X"54",X"44",X"00",X"00",X"09",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"0D",X"DD",X"DD",X"DD",X"00",X"00",X"00",X"00",X"00",X"FF",X"0D",X"00",X"0D", + X"00",X"FF",X"DC",X"00",X"0C",X"D0",X"FF",X"0D",X"C4",X"CD",X"00",X"FF",X"00",X"08",X"00",X"00", + X"FF",X"00",X"C4",X"C0",X"00",X"FF",X"0C",X"40",X"4C",X"00",X"FF",X"D4",X"00",X"04",X"D0",X"FF", + X"D4",X"00",X"04",X"D0",X"FF",X"0C",X"00",X"0C",X"00",X"FF",X"00",X"DD",X"C0",X"00",X"00",X"FF", + X"00",X"0C",X"D0",X"00",X"00",X"FF",X"D0",X"00",X"D0",X"00",X"00",X"FF",X"DC",X"08",X"CC",X"CD", + X"00",X"FF",X"CD",X"DC",X"04",X"44",X"D0",X"FF",X"00",X"0C",X"40",X"04",X"C0",X"FF",X"00",X"0C", + X"40",X"00",X"C0",X"FF",X"00",X"0D",X"44",X"00",X"00",X"FF",X"00",X"00",X"DC",X"C0",X"00",X"FF", + X"0D",X"00",X"00",X"DD",X"00",X"FF",X"DC",X"D0",X"0C",X"44",X"C0",X"FF",X"00",X"C0",X"C4",X"00", + X"00",X"FF",X"00",X"48",X"40",X"00",X"00",X"FF",X"00",X"C0",X"C4",X"00",X"00",X"FF",X"DC",X"D0", + X"0C",X"44",X"C0",X"FF",X"0D",X"00",X"00",X"DD",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"09",X"00",X"00",X"FF",X"08",X"89",X"98",X"80",X"FF",X"81",X"38",X"88",X"88",X"FF",X"82", + X"88",X"88",X"88",X"FF",X"88",X"88",X"88",X"88",X"FF",X"08",X"88",X"88",X"80",X"FF",X"08",X"88", + X"8A",X"80",X"FF",X"00",X"8A",X"AA",X"00",X"FF",X"00",X"88",X"80",X"00",X"FF",X"08",X"88",X"88", + X"80",X"FF",X"08",X"88",X"88",X"AA",X"FF",X"09",X"88",X"88",X"8A",X"FF",X"99",X"88",X"88",X"8A", + X"FF",X"08",X"38",X"88",X"88",X"FF",X"08",X"12",X"88",X"80",X"FF",X"00",X"88",X"80",X"00",X"FF", + X"00",X"00",X"00",X"00",X"FF",X"90",X"08",X"88",X"00",X"FF",X"09",X"98",X"88",X"80",X"FF",X"83", + X"88",X"88",X"80",X"FF",X"81",X"38",X"88",X"88",X"FF",X"88",X"88",X"88",X"AA",X"FF",X"08",X"88", + X"8A",X"AA",X"FF",X"00",X"08",X"AA",X"00",X"FF",X"00",X"00",X"10",X"00",X"00",X"FF",X"00",X"01", + X"11",X"00",X"00",X"FF",X"10",X"08",X"88",X"0E",X"E0",X"FF",X"01",X"01",X"11",X"E0",X"E0",X"FF", + X"01",X"01",X"11",X"00",X"E0",X"FF",X"01",X"11",X"11",X"E0",X"E0",X"FF",X"00",X"01",X"11",X"0E", + X"00",X"FF",X"00",X"01",X"11",X"00",X"00",X"FF",X"00",X"00",X"0E",X"E0",X"FF",X"01",X"11",X"0E", + X"0E",X"FF",X"01",X"18",X"1E",X"0E",X"FF",X"01",X"81",X"11",X"0E",X"FF",X"00",X"11",X"11",X"10", + X"FF",X"10",X"01",X"11",X"11",X"FF",X"01",X"11",X"11",X"10",X"FF",X"00",X"10",X"01",X"00",X"FF", + X"00",X"EE",X"EE",X"00",X"FF",X"00",X"E0",X"00",X"E0",X"FF",X"00",X"0E",X"0E",X"00",X"FF",X"01", + X"81",X"11",X"11",X"FF",X"11",X"81",X"11",X"11",X"FF",X"01",X"81",X"11",X"11",X"FF",X"00",X"00", + X"01",X"00",X"FF",X"00",X"01",X"11",X"00",X"FF",X"00",X"0B",X"00",X"FF",X"00",X"05",X"00",X"FF", + X"00",X"05",X"00",X"FF",X"00",X"55",X"50",X"FF",X"00",X"11",X"50",X"FF",X"00",X"11",X"50",X"FF", + X"00",X"11",X"50",X"FF",X"00",X"55",X"50",X"FF",X"00",X"55",X"50",X"FF",X"00",X"00",X"00",X"FF", + X"B0",X"00",X"00",X"00",X"FF",X"05",X"00",X"00",X"00",X"FF",X"00",X"55",X"00",X"00",X"F0",X"00", + X"55",X"50",X"00",X"FF",X"00",X"51",X"55",X"00",X"FF",X"00",X"01",X"15",X"50",X"FF",X"00",X"00", + X"15",X"50",X"FF",X"00",X"00",X"05",X"50",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"05",X"55",X"55",X"50",X"FF", + X"B5",X"55",X"11",X"15",X"50",X"FF",X"00",X"05",X"11",X"15",X"50",X"FF",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"09",X"90",X"90", + X"00",X"FF",X"00",X"99",X"99",X"00",X"FF",X"EE",X"E9",X"EE",X"E0",X"FF",X"EE",X"E9",X"EE",X"E0", + X"FF",X"99",X"99",X"99",X"90",X"FF",X"EE",X"E9",X"EE",X"E0",X"FF",X"EE",X"E9",X"EE",X"E0",X"FF", + X"00",X"90",X"E0",X"00",X"FF",X"90",X"9E",X"EE",X"00",X"FF",X"99",X"9E",X"E9",X"E0",X"FF",X"0E", + X"E9",X"9E",X"EE",X"FF",X"EE",X"E9",X"9E",X"E0",X"FF",X"0E",X"9E",X"E9",X"00",X"FF",X"00",X"EE", + X"E0",X"00",X"FF",X"00",X"0E",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"EE",X"9E", + X"E0",X"FF",X"09",X"EE",X"9E",X"E0",X"FF",X"99",X"EE",X"9E",X"E0",X"FF",X"09",X"99",X"99",X"90", + X"FF",X"99",X"EE",X"9E",X"E0",X"FF",X"90",X"EE",X"9E",X"E0",X"FF",X"00",X"EE",X"9E",X"E0",X"FF", + X"0B",X"DE",X"DD",X"DB",X"FF",X"00",X"BE",X"DD",X"B0",X"FF",X"00",X"0B",X"DB",X"00",X"FF",X"00", + X"00",X"B0",X"00",X"FF",X"00",X"00",X"B0",X"00",X"FF",X"00",X"00",X"B0",X"00",X"FF",X"00",X"00", + X"B0",X"00",X"FF",X"00",X"00",X"B0",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"EE",X"EE", + X"EE",X"01",X"10",X"FF",X"AA",X"AA",X"AA",X"10",X"01",X"FF",X"AA",X"AA",X"AA",X"00",X"01",X"FF", + X"AA",X"AA",X"AA",X"00",X"01",X"FF",X"AA",X"AA",X"AA",X"11",X"10",X"FF",X"AA",X"AA",X"AA",X"00", + X"00",X"FF",X"AA",X"AA",X"AA",X"00",X"00",X"FF",X"00",X"00",X"00",X"01",X"10",X"FF",X"00",X"00", + X"E0",X"10",X"01",X"FF",X"00",X"0E",X"AA",X"10",X"01",X"FF",X"00",X"EA",X"AA",X"A0",X"10",X"FF", + X"0E",X"AA",X"AA",X"AA",X"10",X"FF",X"EA",X"AA",X"AA",X"AA",X"A0",X"FF",X"0A",X"AA",X"AA",X"AA", + X"00",X"FF",X"00",X"AA",X"AA",X"A0",X"00",X"FF",X"00",X"0A",X"AA",X"00",X"00",X"FF",X"00",X"00", + X"A0",X"00",X"00",X"FF",X"00",X"11",X"10",X"00",X"FF",X"01",X"00",X"01",X"00",X"FF",X"01",X"00", + X"01",X"00",X"FF",X"00",X"10",X"01",X"00",X"FF",X"0E",X"AA",X"AA",X"AA",X"FF",X"0E",X"AA",X"AA", + X"AA",X"FF",X"0E",X"AA",X"AA",X"AA",X"00",X"00",X"00",X"FF",X"00",X"08",X"00",X"FF",X"00",X"08", + X"00",X"FF",X"00",X"88",X"80",X"FF",X"08",X"88",X"88",X"FF",X"0E",X"EE",X"EB",X"FF",X"0E",X"EE", + X"EB",X"FF",X"0E",X"EE",X"EB",X"FF",X"0E",X"EE",X"EB",X"FF",X"0E",X"EE",X"EB",X"FF",X"0E",X"EE", + X"EB",X"FF",X"0C",X"BB",X"BC",X"FF",X"80",X"00",X"00",X"00",X"00",X"FF",X"08",X"88",X"80",X"00", + X"00",X"FF",X"08",X"8E",X"EB",X"00",X"00",X"FF",X"08",X"EE",X"EB",X"B0",X"00",X"FF",X"08",X"EE", + X"EE",X"BB",X"00",X"FF",X"00",X"EE",X"EE",X"EB",X"C0",X"FF",X"00",X"0E",X"EE",X"EB",X"00",X"FF", + X"00",X"00",X"EE",X"B0",X"00",X"FF",X"00",X"00",X"0C",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"8B",X"BB",X"BB",X"BC",X"FF", + X"00",X"08",X"8E",X"EE",X"EE",X"EB",X"FF",X"08",X"88",X"8E",X"EE",X"EE",X"EB",X"FF",X"00",X"08", + X"8E",X"EE",X"EE",X"EB",X"FF",X"00",X"00",X"8E",X"EE",X"EE",X"EC",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"10",X"00",X"00",X"FF",X"00",X"0D",X"DD",X"00", + X"10",X"FF",X"BB",X"BB",X"BB",X"B1",X"01",X"FF",X"0B",X"BB",X"BB",X"B0",X"01",X"FF",X"00",X"BB", + X"BB",X"B1",X"11",X"FF",X"00",X"BB",X"BB",X"B0",X"00",X"FF",X"00",X"00",X"00",X"10",X"FF",X"00", + X"00",X"01",X"01",X"FF",X"00",X"00",X"B1",X"01",X"FF",X"00",X"1D",X"BB",X"01",X"FF",X"00",X"DB", + X"BB",X"B0",X"FF",X"00",X"BB",X"BB",X"BB",X"FF",X"0B",X"BB",X"BB",X"B0",X"FF",X"BB",X"BB",X"BB", + X"00",X"FF",X"00",X"00",X"B0",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"11",X"10",X"FF", + X"01",X"00",X"10",X"FF",X"00",X"10",X"10",X"FF",X"00",X"BB",X"BB",X"FF",X"0D",X"BB",X"BB",X"FF", + X"1D",X"BB",X"BB",X"FF",X"0D",X"BB",X"BB",X"FF",X"00",X"BB",X"BB",X"FF",X"00",X"BB",X"00",X"FF", + X"00",X"B0",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"11",X"00",X"00",X"FF", + X"00",X"99",X"99",X"99",X"00",X"FF",X"18",X"88",X"88",X"88",X"81",X"FF",X"19",X"99",X"99",X"99", + X"11",X"FF",X"09",X"99",X"99",X"99",X"90",X"FF",X"09",X"99",X"99",X"99",X"90",X"FF",X"00",X"99", + X"99",X"99",X"00",X"FF",X"00",X"00",X"98",X"10",X"FF",X"00",X"19",X"81",X"10",X"FF",X"01",X"98", + X"99",X"90",X"FF",X"09",X"89",X"99",X"90",X"FF",X"98",X"99",X"99",X"90",X"FF",X"89",X"99",X"99", + X"00",X"FF",X"19",X"99",X"90",X"00",X"FF",X"00",X"99",X"00",X"00",X"FF",X"00",X"11",X"00",X"00", + X"FF",X"00",X"81",X"99",X"00",X"FF",X"09",X"89",X"99",X"90",X"FF",X"09",X"89",X"99",X"90",X"FF", + X"19",X"89",X"99",X"90",X"FF",X"19",X"89",X"99",X"90",X"FF",X"09",X"89",X"99",X"90",X"FF",X"09", + X"89",X"99",X"90",X"FF",X"00",X"89",X"99",X"00",X"FF",X"00",X"11",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"09",X"90",X"00",X"00",X"99",X"99",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"00",X"00",X"00",X"00",X"98",X"89",X"90",X"09",X"88",X"88",X"90",X"00", + X"00",X"0B",X"BB",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"09",X"88",X"88", + X"8B",X"98",X"88",X"88",X"9B",X"00",X"00",X"B8",X"88",X"B0",X"BB",X"BB",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"98",X"88",X"89",X"9B",X"B8",X"88",X"88",X"9B",X"BB",X"B0",X"B8",X"88",X"8B", + X"88",X"88",X"BB",X"00",X"00",X"FF",X"00",X"00",X"99",X"88",X"88",X"98",X"88",X"8B",X"98",X"89", + X"88",X"B8",X"8B",X"88",X"88",X"88",X"88",X"88",X"88",X"B0",X"00",X"FF",X"00",X"09",X"88",X"88", + X"89",X"88",X"88",X"88",X"B9",X"88",X"88",X"B8",X"88",X"88",X"88",X"88",X"88",X"99",X"98",X"8B", + X"00",X"FF",X"00",X"98",X"88",X"88",X"88",X"88",X"88",X"88",X"B9",X"98",X"88",X"88",X"88",X"88", + X"88",X"88",X"88",X"88",X"89",X"9B",X"B0",X"FF",X"0B",X"88",X"8B",X"88",X"88",X"88",X"88",X"88", + X"B8",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"89",X"9B",X"FF",X"0B",X"88", + X"8B",X"88",X"88",X"88",X"88",X"88",X"B8",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88", + X"88",X"88",X"9B",X"FF",X"0B",X"88",X"8B",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88", + X"88",X"88",X"88",X"88",X"89",X"88",X"88",X"88",X"9B",X"FF",X"00",X"B8",X"89",X"BB",X"88",X"88", + X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"89",X"88",X"88",X"88",X"9B",X"FF", + X"00",X"B9",X"9B",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88", + X"89",X"88",X"88",X"89",X"B0",X"FF",X"00",X"B9",X"9B",X"88",X"88",X"88",X"88",X"88",X"88",X"88", + X"88",X"88",X"98",X"88",X"98",X"88",X"89",X"98",X"89",X"9B",X"00",X"FF",X"00",X"0B",X"B9",X"98", + X"9B",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"89",X"89",X"88",X"88",X"99",X"99",X"BB",X"B0", + X"00",X"FF",X"00",X"00",X"B9",X"99",X"9B",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"89",X"99", + X"98",X"89",X"9B",X"BB",X"00",X"00",X"00",X"FF",X"00",X"00",X"0B",X"BB",X"9B",X"88",X"88",X"89", + X"88",X"88",X"88",X"88",X"89",X"99",X"99",X"BB",X"B0",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"B9",X"B8",X"88",X"88",X"98",X"88",X"88",X"89",X"9B",X"BB",X"BB",X"00",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"0B",X"98",X"98",X"89",X"98",X"88",X"88",X"99", + X"BB",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"0B", + X"99",X"99",X"9B",X"88",X"8B",X"BB",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"BB",X"BB",X"B0",X"BB",X"B0",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"99",X"B0",X"00",X"00", + X"00",X"B9",X"9B",X"00",X"00",X"00",X"FF",X"00",X"00",X"09",X"99",X"B0",X"99",X"89",X"9B",X"00", + X"0B",X"BB",X"B8",X"88",X"BB",X"00",X"00",X"FF",X"00",X"00",X"98",X"88",X"9B",X"88",X"88",X"9B", + X"B0",X"B8",X"88",X"88",X"99",X"99",X"B0",X"00",X"FF",X"00",X"09",X"88",X"88",X"89",X"B8",X"9B", + X"B8",X"9B",X"88",X"88",X"88",X"88",X"88",X"9B",X"00",X"FF",X"00",X"98",X"88",X"88",X"88",X"B9", + X"88",X"88",X"8B",X"88",X"88",X"98",X"88",X"88",X"8B",X"00",X"FF",X"00",X"98",X"88",X"88",X"88", + X"99",X"98",X"88",X"9B",X"88",X"88",X"88",X"89",X"88",X"99",X"B0",X"FF",X"00",X"98",X"8B",X"98", + X"88",X"98",X"88",X"88",X"88",X"88",X"88",X"88",X"89",X"99",X"88",X"90",X"FF",X"00",X"98",X"89", + X"98",X"88",X"98",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"98",X"88",X"99",X"FF",X"09",X"89", + X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"98",X"88",X"9B",X"FF",X"98", + X"88",X"88",X"88",X"88",X"88",X"98",X"88",X"88",X"88",X"88",X"88",X"88",X"99",X"89",X"9B",X"FF", + X"0B",X"B9",X"88",X"88",X"89",X"89",X"88",X"88",X"88",X"88",X"88",X"88",X"88",X"99",X"99",X"B0", + X"FF",X"00",X"00",X"B9",X"98",X"98",X"89",X"88",X"88",X"88",X"88",X"88",X"98",X"89",X"99",X"9B", + X"00",X"FF",X"00",X"00",X"B9",X"99",X"88",X"89",X"88",X"88",X"88",X"88",X"88",X"99",X"99",X"BB", + X"00",X"00",X"FF",X"00",X"00",X"0B",X"98",X"89",X"8B",X"88",X"88",X"88",X"88",X"89",X"B9",X"9B", + X"B0",X"00",X"00",X"FF",X"00",X"00",X"00",X"BB",X"99",X"9B",X"98",X"88",X"88",X"88",X"99",X"BB", + X"B0",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"0B",X"99",X"99",X"B9",X"88",X"88",X"99",X"BB", + X"BB",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"BB",X"B9",X"9B",X"99",X"99",X"BB", + X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"0B",X"BB",X"BB",X"BB", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"7E", + X"E0",X"00",X"FF",X"00",X"00",X"00",X"00",X"82",X"88",X"00",X"0D",X"70",X"00",X"FF",X"00",X"00", + X"00",X"08",X"88",X"88",X"80",X"00",X"E0",X"00",X"FF",X"00",X"00",X"EE",X"7D",X"69",X"50",X"00", + X"EE",X"EE",X"00",X"FF",X"00",X"21",X"28",X"EE",X"DD",X"50",X"0E",X"88",X"21",X"E0",X"FF",X"08", + X"82",X"88",X"8E",X"EE",X"EE",X"E8",X"88",X"81",X"2E",X"FF",X"08",X"86",X"6B",X"B7",X"77",X"C0", + X"08",X"86",X"68",X"8E",X"FF",X"08",X"84",X"68",X"8C",X"DD",X"D0",X"08",X"86",X"48",X"80",X"FF", + X"00",X"88",X"88",X"00",X"00",X"00",X"00",X"88",X"88",X"00",X"FF",X"00",X"00",X"00",X"00",X"02", + X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"44",X"45",X"00",X"FF",X"00",X"04", + X"22",X"34",X"50",X"FF",X"00",X"04",X"27",X"77",X"70",X"FF",X"00",X"05",X"33",X"37",X"70",X"FF", + X"53",X"44",X"53",X"35",X"9A",X"FF",X"42",X"23",X"43",X"50",X"00",X"FF",X"53",X"34",X"33",X"60", + X"00",X"FF",X"06",X"54",X"45",X"00",X"00",X"FF",X"77",X"66",X"60",X"00",X"00",X"FF",X"00",X"0A", + X"00",X"00",X"00",X"FF",X"00",X"99",X"A0",X"00",X"00",X"FF",X"00",X"04",X"44",X"50",X"00",X"FF", + X"00",X"43",X"23",X"45",X"00",X"FF",X"00",X"42",X"77",X"77",X"00",X"FF",X"00",X"53",X"33",X"77", + X"00",X"FF",X"00",X"05",X"33",X"59",X"A0",X"FF",X"65",X"44",X"56",X"00",X"00",X"FF",X"53",X"22", + X"43",X"50",X"00",X"FF",X"53",X"34",X"33",X"50",X"00",X"FF",X"06",X"54",X"45",X"00",X"00",X"FF", + X"00",X"66",X"60",X"00",X"00",X"FF",X"08",X"A7",X"00",X"00",X"00",X"FF",X"00",X"99",X"00",X"00", + X"00",X"FF",X"00",X"00",X"44",X"45",X"00",X"FF",X"00",X"04",X"27",X"77",X"70",X"FF",X"00",X"04", + X"22",X"37",X"70",X"FF",X"00",X"05",X"33",X"33",X"5A",X"FF",X"05",X"44",X"54",X"45",X"00",X"FF", + X"53",X"22",X"34",X"50",X"00",X"FF",X"53",X"34",X"33",X"50",X"00",X"FF",X"06",X"54",X"45",X"50", + X"00",X"FF",X"00",X"66",X"66",X"00",X"00",X"FF",X"09",X"9A",X"70",X"00",X"00",X"FF",X"00",X"07", + X"77",X"00",X"00",X"FF",X"00",X"00",X"44",X"45",X"00",X"FF",X"00",X"04",X"27",X"77",X"70",X"FF", + X"00",X"04",X"22",X"17",X"70",X"FF",X"00",X"65",X"33",X"24",X"59",X"FF",X"32",X"26",X"54",X"44", + X"A0",X"FF",X"53",X"22",X"56",X"60",X"00",X"FF",X"53",X"33",X"53",X"34",X"00",X"FF",X"05",X"55", + X"43",X"35",X"00",X"FF",X"00",X"05",X"55",X"50",X"00",X"FF",X"00",X"0A",X"A0",X"00",X"00",X"FF", + X"00",X"00",X"98",X"00",X"00",X"FF",X"00",X"00",X"44",X"45",X"00",X"FF",X"00",X"04",X"27",X"77", + X"70",X"FF",X"00",X"04",X"22",X"47",X"70",X"FF",X"00",X"05",X"33",X"24",X"59",X"FF",X"00",X"66", + X"54",X"44",X"90",X"FF",X"00",X"32",X"56",X"60",X"00",X"FF",X"03",X"23",X"53",X"30",X"00",X"FF", + X"02",X"55",X"43",X"30",X"00",X"FF",X"00",X"A5",X"55",X"50",X"00",X"FF",X"00",X"0A",X"00",X"00", + X"00",X"FF",X"00",X"04",X"33",X"50",X"00",X"FF",X"00",X"41",X"71",X"75",X"00",X"FF",X"00",X"71", + X"11",X"15",X"00",X"FF",X"00",X"77",X"77",X"77",X"00",X"FF",X"04",X"67",X"7A",X"77",X"40",X"FF", + X"33",X"45",X"55",X"56",X"32",X"FF",X"54",X"55",X"23",X"55",X"45",X"FF",X"05",X"63",X"22",X"36", + X"50",X"FF",X"00",X"05",X"44",X"50",X"00",X"FF",X"00",X"00",X"80",X"90",X"00",X"FF",X"00",X"00", + X"A0",X"A0",X"00",X"FF",X"00",X"44",X"35",X"00",X"FF",X"04",X"17",X"17",X"50",X"FF",X"07",X"11", + X"11",X"70",X"FF",X"07",X"77",X"77",X"70",X"FF",X"06",X"77",X"A7",X"70",X"FF",X"54",X"55",X"55", + X"65",X"FF",X"42",X"52",X"35",X"34",X"FF",X"52",X"42",X"24",X"25",X"FF",X"00",X"54",X"45",X"00", + X"FF",X"00",X"0A",X"0A",X"00",X"FF",X"00",X"03",X"34",X"40",X"FF",X"00",X"43",X"23",X"44",X"FF", + X"00",X"77",X"77",X"77",X"FF",X"00",X"33",X"77",X"97",X"FF",X"00",X"42",X"39",X"9A",X"FF",X"00", + X"65",X"34",X"A0",X"FF",X"06",X"23",X"54",X"56",X"FF",X"03",X"33",X"52",X"45",X"FF",X"05",X"45", + X"44",X"63",X"FF",X"00",X"65",X"66",X"00",X"FF",X"00",X"99",X"0A",X"00",X"FF",X"00",X"00",X"88", + X"A0",X"FF",X"00",X"33",X"34",X"00",X"FF",X"03",X"32",X"23",X"40",X"FF",X"07",X"77",X"77",X"70", + X"FF",X"07",X"77",X"37",X"70",X"FF",X"04",X"39",X"93",X"40",X"FF",X"00",X"4A",X"A4",X"00",X"FF", + X"06",X"55",X"55",X"60",X"FF",X"05",X"33",X"34",X"50",X"FF",X"35",X"43",X"35",X"53",X"FF",X"00", + X"55",X"55",X"00",X"FF",X"00",X"AA",X"0A",X"00",X"FF",X"0A",X"9A",X"AA",X"A0",X"FF",X"00",X"AA", + X"0A",X"00",X"FF",X"0A",X"9A",X"AA",X"A0",X"FF",X"00",X"00",X"00",X"00",X"00",X"60",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"60",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"08",X"58", + X"50",X"00",X"FF",X"00",X"00",X"00",X"00",X"86",X"46",X"60",X"00",X"FF",X"00",X"00",X"00",X"08", + X"65",X"45",X"57",X"00",X"FF",X"00",X"00",X"00",X"09",X"A5",X"51",X"15",X"70",X"FF",X"00",X"00", + X"00",X"87",X"65",X"11",X"19",X"70",X"FF",X"00",X"00",X"00",X"9A",X"65",X"51",X"1A",X"3A",X"FF", + X"00",X"00",X"00",X"87",X"75",X"45",X"62",X"2C",X"FF",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22", + X"2C",X"FF",X"00",X"00",X"00",X"08",X"77",X"66",X"39",X"90",X"FF",X"00",X"00",X"00",X"00",X"00", + X"80",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"09",X"A6",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"86",X"64",X"40",X"00",X"FF",X"00",X"00",X"00",X"00",X"9A",X"3E",X"20",X"00",X"FF",X"08", + X"70",X"00",X"09",X"68",X"D5",X"40",X"00",X"FF",X"00",X"09",X"00",X"58",X"A3",X"DE",X"50",X"00", + X"FF",X"00",X"00",X"69",X"00",X"86",X"76",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"07",X"60", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"77",X"66",X"55",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"60",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"60",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"08",X"58",X"50",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"86", + X"46",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"08",X"65",X"45",X"57",X"00",X"FF",X"00",X"00", + X"00",X"00",X"09",X"A5",X"51",X"15",X"70",X"FF",X"00",X"00",X"00",X"00",X"87",X"65",X"11",X"19", + X"70",X"FF",X"00",X"00",X"00",X"00",X"9A",X"65",X"51",X"1A",X"3A",X"FF",X"00",X"00",X"00",X"00", + X"87",X"75",X"45",X"62",X"2C",X"FF",X"00",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22",X"2C",X"FF", + X"00",X"00",X"00",X"00",X"08",X"77",X"66",X"39",X"90",X"FF",X"00",X"00",X"00",X"00",X"00",X"00", + X"80",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"08",X"60",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"9A",X"54",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"9A",X"3D",X"22",X"00", + X"00",X"FF",X"08",X"79",X"00",X"09",X"7A",X"EC",X"D4",X"90",X"00",X"FF",X"00",X"00",X"69",X"58", + X"A6",X"55",X"CD",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"86",X"55",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"07",X"60",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"77",X"66", + X"55",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"60",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"60", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"08",X"58",X"50",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"86",X"46",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"08",X"65",X"45",X"57",X"00",X"FF", + X"00",X"00",X"00",X"00",X"09",X"A5",X"51",X"15",X"70",X"FF",X"00",X"00",X"00",X"00",X"87",X"65", + X"11",X"19",X"70",X"FF",X"00",X"00",X"00",X"00",X"9A",X"65",X"51",X"1A",X"3A",X"FF",X"00",X"00", + X"00",X"00",X"87",X"75",X"45",X"62",X"2C",X"FF",X"00",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22", + X"2C",X"FF",X"00",X"00",X"00",X"00",X"08",X"77",X"66",X"39",X"90",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"80",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"96",X"70",X"00",X"00",X"FF", + X"00",X"00",X"00",X"09",X"97",X"63",X"D9",X"00",X"00",X"FF",X"87",X"96",X"95",X"97",X"6E",X"54", + X"33",X"99",X"00",X"FF",X"00",X"00",X"00",X"8A",X"54",X"2C",X"03",X"30",X"00",X"FF",X"00",X"00", + X"00",X"08",X"54",X"50",X"00",X"E3",X"00",X"FF",X"00",X"00",X"00",X"00",X"76",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"07",X"76",X"65",X"50",X"00",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"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"60",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"58", + X"50",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"86",X"46",X"60",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"08",X"65",X"45",X"57",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"09",X"A5", + X"51",X"15",X"70",X"FF",X"00",X"00",X"00",X"00",X"00",X"87",X"65",X"11",X"19",X"70",X"FF",X"00", + X"00",X"00",X"00",X"00",X"9A",X"65",X"51",X"1A",X"3A",X"FF",X"00",X"00",X"00",X"00",X"00",X"87", + X"75",X"45",X"62",X"2C",X"FF",X"00",X"00",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22",X"2C",X"FF", + X"00",X"00",X"00",X"00",X"00",X"08",X"77",X"66",X"39",X"90",X"FF",X"00",X"00",X"00",X"00",X"79", + X"79",X"00",X"80",X"00",X"00",X"FF",X"00",X"00",X"00",X"08",X"5A",X"5A",X"79",X"77",X"00",X"00", + X"FF",X"08",X"79",X"69",X"69",X"5E",X"4E",X"44",X"54",X"00",X"00",X"FF",X"00",X"00",X"00",X"64", + X"26",X"24",X"3C",X"40",X"00",X"00",X"FF",X"00",X"00",X"09",X"44",X"87",X"60",X"53",X"90",X"00", + X"00",X"FF",X"00",X"00",X"05",X"59",X"00",X"00",X"03",X"90",X"00",X"00",X"FF",X"00",X"00",X"90", + X"00",X"00",X"00",X"0C",X"C0",X"00",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"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"60",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"60",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"58",X"50",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"00",X"86",X"46",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"08", + X"65",X"45",X"57",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"09",X"A5",X"51",X"15",X"70",X"FF", + X"00",X"00",X"00",X"00",X"00",X"87",X"65",X"11",X"19",X"70",X"FF",X"00",X"00",X"00",X"00",X"00", + X"9A",X"65",X"51",X"1A",X"3A",X"FF",X"00",X"00",X"00",X"00",X"00",X"87",X"75",X"45",X"62",X"2C", + X"FF",X"00",X"00",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22",X"2C",X"FF",X"00",X"00",X"00",X"00", + X"00",X"08",X"77",X"66",X"39",X"90",X"FF",X"00",X"00",X"00",X"07",X"97",X"90",X"08",X"60",X"00", + X"00",X"FF",X"00",X"00",X"00",X"86",X"A4",X"A7",X"97",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"95",X"22",X"54",X"44",X"00",X"00",X"00",X"FF",X"08",X"70",X"09",X"86",X"42",X"73",X"C2",X"00", + X"00",X"00",X"FF",X"00",X"09",X"50",X"08",X"59",X"03",X"90",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"07",X"44",X"43",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"90",X"39",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"06",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"75", + X"00",X"70",X"00",X"FF",X"00",X"00",X"00",X"68",X"57",X"80",X"00",X"FF",X"00",X"00",X"07",X"65", + X"54",X"70",X"00",X"FF",X"00",X"00",X"76",X"11",X"55",X"67",X"00",X"FF",X"00",X"0A",X"71",X"19", + X"14",X"51",X"00",X"FF",X"00",X"07",X"76",X"1A",X"14",X"61",X"00",X"FF",X"00",X"09",X"A6",X"55", + X"CC",X"AC",X"00",X"FF",X"00",X"08",X"77",X"C2",X"22",X"22",X"C0",X"FF",X"00",X"00",X"AE",X"C2", + X"22",X"22",X"C0",X"FF",X"00",X"00",X"09",X"7C",X"C9",X"9C",X"00",X"FF",X"00",X"00",X"79",X"79", + X"80",X"00",X"00",X"FF",X"00",X"0A",X"6A",X"66",X"79",X"00",X"00",X"FF",X"00",X"09",X"52",X"26", + X"64",X"60",X"00",X"FF",X"80",X"98",X"64",X"23",X"64",X"56",X"00",X"FF",X"79",X"50",X"85",X"93", + X"30",X"56",X"00",X"FF",X"00",X"00",X"74",X"24",X"00",X"07",X"70",X"FF",X"00",X"00",X"00",X"09", + X"00",X"00",X"88",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"07",X"00",X"00",X"07",X"00",X"FF",X"00",X"07",X"60",X"00",X"67",X"00",X"FF", + X"00",X"07",X"54",X"45",X"57",X"00",X"FF",X"00",X"06",X"15",X"45",X"16",X"00",X"FF",X"00",X"61", + X"91",X"59",X"11",X"60",X"FF",X"00",X"66",X"A1",X"6A",X"15",X"60",X"FF",X"0E",X"65",X"22",X"92", + X"24",X"5E",X"FF",X"06",X"52",X"22",X"22",X"22",X"66",X"FF",X"00",X"E5",X"22",X"B2",X"26",X"E0", + X"FF",X"00",X"00",X"00",X"80",X"00",X"00",X"FF",X"00",X"00",X"06",X"55",X"60",X"00",X"FF",X"00", + X"00",X"65",X"44",X"55",X"00",X"FF",X"00",X"00",X"DA",X"22",X"4A",X"60",X"FF",X"00",X"00",X"36", + X"42",X"46",X"77",X"FF",X"00",X"02",X"2A",X"44",X"4A",X"08",X"FF",X"08",X"00",X"96",X"65",X"60", + X"00",X"FF",X"00",X"96",X"06",X"08",X"00",X"00",X"FF",X"00",X"00",X"65",X"45",X"86",X"00",X"FF", + X"00",X"00",X"00",X"60",X"00",X"00",X"FF",X"00",X"00",X"07",X"50",X"07",X"00",X"FF",X"00",X"00", + X"06",X"85",X"78",X"00",X"FF",X"00",X"00",X"76",X"55",X"47",X"00",X"FF",X"00",X"07",X"61",X"15", + X"56",X"70",X"FF",X"00",X"77",X"11",X"19",X"45",X"10",X"FF",X"00",X"77",X"51",X"1A",X"46",X"10", + X"FF",X"00",X"9A",X"65",X"5C",X"CA",X"C0",X"FF",X"00",X"87",X"7C",X"C2",X"22",X"2C",X"FF",X"00", + X"0A",X"EC",X"22",X"22",X"2C",X"FF",X"00",X"00",X"77",X"CC",X"99",X"C0",X"FF",X"00",X"00",X"00", + X"80",X"00",X"00",X"FF",X"00",X"00",X"09",X"A6",X"00",X"00",X"FF",X"00",X"00",X"86",X"64",X"40", + X"00",X"FF",X"00",X"00",X"9A",X"3E",X"20",X"00",X"FF",X"00",X"09",X"68",X"D5",X"40",X"00",X"FF", + X"00",X"08",X"A3",X"DE",X"50",X"00",X"FF",X"00",X"50",X"86",X"76",X"00",X"00",X"FF",X"09",X"78", + X"07",X"60",X"00",X"00",X"FF",X"00",X"00",X"77",X"66",X"55",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"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"70",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"87",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"65",X"57", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"A5",X"DD",X"45",X"60",X"00",X"FF",X"00",X"00", + X"00",X"00",X"05",X"5D",X"DB",X"54",X"56",X"77",X"FF",X"00",X"00",X"00",X"00",X"0A",X"25",X"B9", + X"65",X"45",X"70",X"FF",X"00",X"00",X"00",X"00",X"06",X"22",X"25",X"9B",X"D6",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"22",X"92",X"BD",X"D6",X"00",X"FF",X"00",X"00",X"04",X"00",X"00",X"0B", + X"22",X"5D",X"5A",X"00",X"FF",X"00",X"00",X"04",X"43",X"75",X"68",X"22",X"25",X"60",X"00",X"FF", + X"00",X"00",X"00",X"9A",X"54",X"25",X"06",X"26",X"A0",X"00",X"FF",X"87",X"00",X"95",X"95",X"44", + X"25",X"00",X"00",X"00",X"00",X"FF",X"00",X"96",X"00",X"A6",X"54",X"56",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"06",X"57",X"65",X"A3",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"87",X"08", + X"79",X"94",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"07",X"50",X"04",X"40",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"08",X"00",X"00",X"00",X"00",X"00",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"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"80",X"00",X"00",X"00",X"6A", + X"70",X"00",X"00",X"FF",X"09",X"00",X"40",X"00",X"0E",X"55",X"66",X"00",X"00",X"FF",X"06",X"00", + X"44",X"00",X"05",X"25",X"6D",X"67",X"77",X"FF",X"07",X"90",X"04",X"60",X"02",X"22",X"BD",X"B5", + X"60",X"FF",X"06",X"67",X"6A",X"56",X"02",X"22",X"99",X"54",X"00",X"FF",X"08",X"04",X"42",X"45", + X"8B",X"29",X"65",X"44",X"00",X"FF",X"05",X"54",X"22",X"45",X"02",X"22",X"99",X"55",X"00",X"FF", + X"07",X"04",X"44",X"56",X"02",X"22",X"BD",X"B5",X"60",X"FF",X"07",X"07",X"6A",X"50",X"06",X"24", + X"5D",X"67",X"77",X"FF",X"00",X"00",X"76",X"00",X"0E",X"65",X"66",X"00",X"00",X"FF",X"00",X"08", + X"70",X"00",X"00",X"69",X"70",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"05",X"60",X"00",X"FF",X"05",X"44",X"45",X"60",X"FF",X"54",X"21",X"24",X"56",X"FF",X"54", + X"21",X"24",X"56",X"FF",X"65",X"52",X"45",X"66",X"FF",X"06",X"62",X"46",X"60",X"FF",X"00",X"04", + X"60",X"00",X"FF",X"00",X"05",X"60",X"00",X"FF",X"04",X"44",X"50",X"FF",X"42",X"12",X"45",X"FF", + X"42",X"12",X"45",X"FF",X"65",X"24",X"56",X"FF",X"00",X"24",X"00",X"FF",X"00",X"11",X"10",X"FF", + X"01",X"11",X"11",X"FF",X"00",X"01",X"00",X"FF",X"00",X"07",X"00",X"00",X"07",X"00",X"FF",X"00", + X"07",X"60",X"00",X"67",X"00",X"FF",X"00",X"07",X"54",X"45",X"57",X"00",X"FF",X"00",X"06",X"15", + X"45",X"16",X"00",X"FF",X"00",X"61",X"91",X"59",X"11",X"60",X"FF",X"00",X"66",X"A1",X"6A",X"15", + X"60",X"FF",X"0E",X"65",X"22",X"92",X"24",X"5E",X"FF",X"06",X"52",X"22",X"22",X"22",X"66",X"FF", + X"00",X"E5",X"22",X"B2",X"26",X"E0",X"FF",X"00",X"22",X"50",X"00",X"00",X"00",X"FF",X"00",X"44", + X"50",X"00",X"00",X"00",X"FF",X"00",X"07",X"87",X"77",X"87",X"00",X"FF",X"00",X"07",X"69",X"A9", + X"67",X"00",X"FF",X"00",X"87",X"54",X"45",X"57",X"80",X"FF",X"00",X"86",X"15",X"45",X"16",X"80", + X"FF",X"00",X"61",X"19",X"51",X"91",X"60",X"FF",X"00",X"66",X"1A",X"61",X"A5",X"60",X"FF",X"0E", + X"65",X"22",X"92",X"24",X"5E",X"FF",X"06",X"52",X"22",X"22",X"22",X"66",X"FF",X"00",X"E5",X"22", + X"B2",X"26",X"E0",X"FF",X"00",X"22",X"50",X"00",X"06",X"60",X"FF",X"00",X"44",X"50",X"00",X"05", + X"60",X"FF",X"00",X"00",X"00",X"00",X"05",X"50",X"FF",X"00",X"00",X"00",X"00",X"02",X"50",X"FF", + X"00",X"00",X"00",X"00",X"02",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"00", + X"08",X"58",X"50",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"86",X"46",X"60",X"00",X"FF",X"00", + X"00",X"00",X"00",X"08",X"65",X"45",X"57",X"00",X"FF",X"00",X"00",X"00",X"00",X"09",X"A5",X"51", + X"19",X"70",X"FF",X"00",X"00",X"00",X"00",X"87",X"65",X"11",X"1E",X"70",X"FF",X"00",X"00",X"00", + X"00",X"9A",X"65",X"51",X"11",X"3A",X"FF",X"00",X"00",X"00",X"00",X"87",X"75",X"45",X"62",X"2C", + X"FF",X"00",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22",X"2C",X"FF",X"00",X"00",X"00",X"00",X"08", + X"77",X"66",X"39",X"90",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"08",X"60",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"9A",X"52", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"9A",X"54",X"63",X"90",X"00",X"FF",X"00",X"00",X"00", + X"09",X"7A",X"E3",X"37",X"29",X"00",X"FF",X"00",X"00",X"69",X"58",X"A3",X"36",X"50",X"64",X"00", + X"FF",X"08",X"79",X"00",X"00",X"84",X"56",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"07",X"43", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"95",X"33",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"09",X"66",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"60", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"60",X"60",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"08",X"58",X"50",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"86",X"46",X"60",X"00", + X"FF",X"00",X"00",X"00",X"00",X"08",X"65",X"45",X"57",X"00",X"FF",X"00",X"00",X"00",X"00",X"09", + X"A5",X"51",X"19",X"70",X"FF",X"00",X"00",X"00",X"00",X"87",X"65",X"11",X"1A",X"70",X"FF",X"00", + X"00",X"00",X"00",X"9A",X"65",X"51",X"11",X"3A",X"FF",X"00",X"00",X"00",X"00",X"87",X"75",X"45", + X"62",X"2C",X"FF",X"00",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22",X"2C",X"FF",X"00",X"00",X"00", + X"00",X"08",X"77",X"66",X"39",X"90",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"00",X"00", + X"FF",X"00",X"00",X"00",X"69",X"6A",X"79",X"77",X"00",X"00",X"FF",X"00",X"00",X"69",X"69",X"4E", + X"44",X"54",X"00",X"00",X"FF",X"00",X"09",X"00",X"8A",X"23",X"35",X"49",X"00",X"00",X"FF",X"09", + X"80",X"09",X"33",X"46",X"50",X"C4",X"90",X"00",X"FF",X"00",X"00",X"03",X"39",X"80",X"00",X"0C", + X"40",X"00",X"FF",X"00",X"00",X"95",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"60",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"60", + X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"58",X"50",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"86",X"46",X"60",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"08",X"65", + X"45",X"57",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"09",X"A5",X"51",X"11",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"87",X"65",X"11",X"1A",X"70",X"FF",X"00",X"00",X"00",X"00",X"00",X"9A", + X"65",X"51",X"19",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"87",X"75",X"45",X"52",X"2A",X"FF", + X"00",X"00",X"00",X"00",X"00",X"9A",X"E5",X"45",X"22",X"2C",X"FF",X"08",X"70",X"00",X"00",X"79", + X"08",X"77",X"66",X"39",X"90",X"FF",X"00",X"09",X"00",X"08",X"59",X"79",X"00",X"80",X"00",X"00", + X"FF",X"00",X"00",X"69",X"6A",X"A7",X"5A",X"79",X"77",X"00",X"00",X"FF",X"00",X"00",X"00",X"08", + X"24",X"A7",X"44",X"54",X"00",X"00",X"FF",X"00",X"00",X"88",X"44",X"55",X"24",X"3C",X"40",X"00", + X"00",X"FF",X"00",X"00",X"84",X"86",X"88",X"65",X"53",X"90",X"00",X"00",X"FF",X"00",X"96",X"68", + X"00",X"00",X"00",X"73",X"90",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"06",X"C9", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"06",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"06",X"06",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"85",X"85",X"00",X"00",X"FF",X"00",X"00", + X"00",X"08",X"64",X"66",X"00",X"00",X"FF",X"00",X"00",X"00",X"86",X"54",X"55",X"70",X"00",X"FF", + X"00",X"00",X"00",X"9A",X"55",X"11",X"57",X"00",X"FF",X"00",X"00",X"08",X"76",X"51",X"11",X"97", + X"00",X"FF",X"00",X"00",X"09",X"A6",X"55",X"11",X"A3",X"A0",X"FF",X"00",X"00",X"08",X"77",X"54", + X"56",X"22",X"C0",X"FF",X"00",X"00",X"09",X"AE",X"54",X"52",X"22",X"C0",X"FF",X"00",X"00",X"00", + X"87",X"76",X"63",X"99",X"00",X"FF",X"00",X"00",X"00",X"00",X"08",X"00",X"00",X"08",X"FF",X"00", + X"00",X"00",X"00",X"9A",X"68",X"88",X"82",X"FF",X"00",X"00",X"00",X"08",X"66",X"42",X"22",X"20", + X"FF",X"00",X"00",X"00",X"09",X"AE",X"54",X"00",X"00",X"FF",X"87",X"00",X"00",X"96",X"64",X"54", + X"00",X"00",X"FF",X"00",X"90",X"05",X"8A",X"E5",X"55",X"00",X"00",X"FF",X"00",X"06",X"90",X"08", + X"67",X"60",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"76",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"07",X"76",X"65",X"50",X"00",X"FF",X"00",X"07",X"00",X"00",X"07",X"00",X"FF",X"00",X"07", + X"60",X"00",X"67",X"00",X"FF",X"00",X"07",X"54",X"45",X"57",X"00",X"FF",X"00",X"06",X"15",X"45", + X"16",X"00",X"FF",X"00",X"61",X"91",X"59",X"11",X"60",X"FF",X"00",X"66",X"A1",X"6A",X"15",X"60", + X"FF",X"0E",X"65",X"22",X"92",X"24",X"5E",X"FF",X"06",X"52",X"22",X"22",X"22",X"66",X"FF",X"00", + X"E5",X"22",X"B2",X"26",X"E0",X"FF",X"00",X"77",X"00",X"00",X"07",X"70",X"FF",X"00",X"55",X"00", + X"00",X"05",X"50",X"FF",X"00",X"22",X"00",X"00",X"02",X"20",X"FF",X"00",X"02",X"00",X"00",X"02", + X"00",X"FF",X"00",X"00",X"22",X"20",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"02",X"EE",X"E2",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"23",X"EE",X"E2",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"02", + X"3E",X"EE",X"E2",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"07",X"CC", + X"CC",X"CB",X"00",X"00",X"66",X"66",X"66",X"00",X"00",X"00",X"00",X"00",X"FF",X"73",X"3E",X"EE", + X"E3",X"00",X"7C",X"54",X"DD",X"DD",X"45",X"00",X"00",X"00",X"00",X"FF",X"CC",X"CC",X"CC",X"CA", + X"67",X"55",X"CC",X"44",X"44",X"5C",X"77",X"00",X"00",X"00",X"FF",X"CC",X"CC",X"CC",X"C6",X"45", + X"63",X"3C",X"CC",X"BB",X"C5",X"66",X"70",X"00",X"00",X"FF",X"73",X"EE",X"E7",X"65",X"63",X"32", + X"22",X"2E",X"EE",X"EE",X"E3",X"67",X"00",X"00",X"FF",X"73",X"EE",X"E7",X"66",X"33",X"22",X"22", + X"22",X"22",X"22",X"2E",X"36",X"00",X"00",X"FF",X"07",X"EE",X"33",X"63",X"22",X"11",X"12",X"22", + X"22",X"11",X"22",X"E3",X"60",X"00",X"FF",X"07",X"3E",X"33",X"EE",X"22",X"55",X"66",X"66",X"33", + X"E1",X"12",X"23",X"48",X"80",X"FF",X"00",X"76",X"33",X"EE",X"E5",X"6E",X"33",X"33",X"3E",X"A1", + X"12",X"23",X"49",X"E0",X"FF",X"00",X"66",X"73",X"33",X"56",X"E3",X"33",X"33",X"EA",X"71",X"12", + X"E3",X"50",X"00",X"FF",X"00",X"05",X"67",X"64",X"43",X"63",X"33",X"3E",X"A7",X"22",X"22",X"E6", + X"50",X"00",X"FF",X"00",X"00",X"56",X"5D",X"43",X"66",X"3E",X"AA",X"73",X"22",X"EE",X"65",X"00", + X"00",X"FF",X"00",X"00",X"05",X"44",X"D4",X"77",X"77",X"77",X"63",X"3E",X"E6",X"50",X"00",X"00", + X"FF",X"00",X"00",X"00",X"D4",X"44",X"45",X"57",X"75",X"66",X"66",X"75",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"D4",X"44",X"45",X"55",X"54",X"44",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"0D",X"DD",X"DD",X"DD",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"07",X"7E",X"E0",X"00",X"FF",X"00",X"00",X"00",X"00",X"83",X"88",X"00", + X"0D",X"70",X"00",X"FF",X"00",X"00",X"00",X"08",X"88",X"88",X"80",X"00",X"E0",X"00",X"FF",X"00", + X"00",X"EE",X"ED",X"69",X"50",X"00",X"EE",X"EE",X"00",X"FF",X"00",X"88",X"88",X"EE",X"D6",X"50", + X"0E",X"88",X"88",X"E0",X"FF",X"08",X"88",X"88",X"2E",X"77",X"7E",X"E8",X"88",X"88",X"8E",X"FF", + X"08",X"86",X"4C",X"CE",X"66",X"80",X"08",X"84",X"68",X"8E",X"FF",X"08",X"86",X"68",X"8D",X"DD", + X"D0",X"08",X"86",X"68",X"80",X"FF",X"00",X"88",X"88",X"00",X"00",X"00",X"00",X"88",X"31",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"07",X"7E",X"E0",X"00",X"FF",X"00",X"00",X"00",X"00", + X"83",X"88",X"00",X"0D",X"70",X"00",X"FF",X"00",X"00",X"00",X"08",X"88",X"88",X"80",X"00",X"E0", + X"00",X"FF",X"00",X"00",X"EE",X"ED",X"69",X"50",X"00",X"EE",X"EE",X"00",X"FF",X"00",X"88",X"88", + X"EE",X"D6",X"50",X"0E",X"88",X"88",X"E0",X"FF",X"08",X"88",X"88",X"DE",X"77",X"7E",X"E8",X"88", + X"88",X"8E",X"FF",X"08",X"86",X"4C",X"CE",X"66",X"80",X"08",X"84",X"68",X"8E",X"FF",X"08",X"86", + X"68",X"8D",X"DD",X"D0",X"08",X"D6",X"68",X"80",X"FF",X"00",X"88",X"88",X"00",X"00",X"00",X"00", + X"D8",X"88",X"00",X"FF",X"03",X"00",X"22",X"30",X"00",X"FF",X"00",X"31",X"22",X"23",X"80",X"FF", + X"03",X"19",X"22",X"AA",X"3A",X"FF",X"03",X"22",X"88",X"AB",X"3B",X"FF",X"03",X"38",X"88",X"BD", + X"3D",X"FF",X"03",X"33",X"88",X"BD",X"3D",X"FF",X"08",X"33",X"77",X"24",X"45",X"FF",X"00",X"83", + X"E7",X"44",X"44",X"FF",X"00",X"08",X"82",X"66",X"60",X"FF",X"00",X"00",X"08",X"00",X"00",X"FF", + X"00",X"03",X"12",X"30",X"00",X"FF",X"02",X"32",X"19",X"13",X"33",X"FF",X"21",X"22",X"11",X"11", + X"20",X"FF",X"21",X"32",X"22",X"33",X"00",X"FF",X"83",X"33",X"38",X"00",X"00",X"FF",X"08",X"88", + X"80",X"00",X"00",X"FF",X"00",X"60",X"00",X"00",X"00",X"FF",X"06",X"66",X"60",X"00",X"00",X"FF", + X"00",X"80",X"22",X"30",X"00",X"FF",X"00",X"81",X"22",X"23",X"80",X"FF",X"02",X"92",X"2A",X"A3", + X"AA",X"FF",X"03",X"28",X"8A",X"B8",X"AB",X"FF",X"03",X"88",X"8B",X"D8",X"BD",X"FF",X"03",X"38", + X"8B",X"D8",X"BD",X"FF",X"08",X"17",X"74",X"44",X"57",X"FF",X"00",X"3E",X"E4",X"44",X"4E",X"FF", + X"00",X"08",X"82",X"66",X"60",X"FF",X"00",X"00",X"08",X"00",X"00",X"FF",X"00",X"82",X"11",X"30", + X"00",X"FF",X"03",X"32",X"11",X"91",X"33",X"FF",X"31",X"22",X"21",X"22",X"20",X"FF",X"22",X"32", + X"22",X"33",X"00",X"FF",X"03",X"53",X"38",X"00",X"00",X"FF",X"00",X"58",X"80",X"00",X"00",X"FF", + X"05",X"55",X"00",X"00",X"00",X"FF",X"00",X"00",X"22",X"30",X"00",X"FF",X"00",X"22",X"11",X"12", + X"30",X"FF",X"03",X"29",X"92",X"99",X"23",X"FF",X"03",X"8A",X"A8",X"AA",X"83",X"FF",X"08",X"8A", + X"D8",X"DA",X"88",X"FF",X"0D",X"8A",X"D8",X"DA",X"8D",X"FF",X"07",X"72",X"44",X"42",X"77",X"FF", + X"07",X"E4",X"44",X"55",X"7E",X"FF",X"00",X"23",X"55",X"63",X"20",X"FF",X"00",X"00",X"08",X"80", + X"00",X"FF",X"00",X"03",X"33",X"30",X"00",X"FF",X"01",X"12",X"11",X"92",X"33",X"FF",X"31",X"22", + X"21",X"11",X"20",X"FF",X"83",X"32",X"22",X"33",X"00",X"FF",X"08",X"86",X"38",X"00",X"00",X"FF", + X"00",X"55",X"56",X"00",X"00",X"FF",X"00",X"00",X"22",X"30",X"08",X"FF",X"00",X"22",X"11",X"12", + X"30",X"FF",X"03",X"29",X"92",X"99",X"23",X"FF",X"03",X"8A",X"A8",X"AA",X"83",X"FF",X"08",X"8A", + X"D8",X"DA",X"88",X"FF",X"0D",X"8A",X"D8",X"DA",X"8D",X"FF",X"07",X"72",X"44",X"42",X"77",X"FF", + X"07",X"E4",X"48",X"55",X"7E",X"FF",X"00",X"23",X"55",X"63",X"80",X"FF",X"00",X"00",X"08",X"80", + X"00",X"FF",X"00",X"00",X"33",X"30",X"00",X"FF",X"02",X"12",X"21",X"93",X"33",X"FF",X"21",X"22", + X"11",X"11",X"20",X"FF",X"32",X"22",X"22",X"33",X"00",X"FF",X"08",X"23",X"23",X"00",X"00",X"FF", + X"00",X"88",X"60",X"00",X"00",X"FF",X"00",X"06",X"66",X"00",X"00",X"FF",X"00",X"00",X"FF",X"00", + X"00",X"88",X"44",X"55",X"24",X"3C",X"40",X"00",X"00",X"FF",X"00",X"00",X"84",X"86",X"88",X"65", + X"53",X"90",X"00",X"00",X"FF",X"00",X"96",X"68",X"00",X"00",X"00",X"73",X"90",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"06",X"C9",X"00",X"00",X"FF",X"00",X"00",X"00",X"09",X"09", + X"00",X"90",X"FF",X"00",X"00",X"09",X"03",X"34",X"44",X"00",X"FF",X"00",X"09",X"03",X"34",X"67", + X"55",X"C0",X"FF",X"00",X"00",X"34",X"46",X"66",X"5C",X"E0",X"FF",X"00",X"00",X"45",X"32",X"34", + X"44",X"E4",X"FF",X"08",X"03",X"57",X"61",X"22",X"24",X"43",X"FF",X"00",X"35",X"24",X"65",X"12", + X"62",X"30",X"FF",X"00",X"01",X"18",X"9A",X"11",X"9E",X"00",X"FF",X"00",X"00",X"08",X"9A",X"E0", + X"88",X"E0",X"FF",X"00",X"00",X"00",X"09",X"09",X"00",X"90",X"FF",X"00",X"00",X"09",X"03",X"34", + X"44",X"00",X"FF",X"00",X"09",X"03",X"34",X"67",X"55",X"C0",X"FF",X"00",X"00",X"34",X"23",X"66", + X"5C",X"E0",X"FF",X"00",X"00",X"47",X"55",X"34",X"44",X"E4",X"FF",X"00",X"02",X"56",X"65",X"22", + X"24",X"43",X"FF",X"08",X"04",X"38",X"9A",X"12",X"62",X"30",X"FF",X"00",X"22",X"18",X"9A",X"19", + X"AE",X"00",X"FF",X"00",X"00",X"EE",X"E0",X"08",X"90",X"00",X"FF",X"00",X"00",X"00",X"09",X"09", + X"00",X"90",X"FF",X"00",X"00",X"09",X"03",X"34",X"44",X"00",X"FF",X"00",X"09",X"03",X"45",X"67", + X"55",X"E0",X"FF",X"00",X"00",X"34",X"55",X"66",X"5C",X"E0",X"FF",X"00",X"00",X"46",X"63",X"34", + X"44",X"C4",X"FF",X"00",X"03",X"36",X"75",X"22",X"24",X"43",X"FF",X"09",X"05",X"24",X"44",X"19", + X"A2",X"30",X"FF",X"00",X"33",X"18",X"9A",X"19",X"A1",X"10",X"FF",X"00",X"00",X"E8",X"9A",X"00", + X"01",X"10",X"FF",X"00",X"00",X"00",X"08",X"09",X"09",X"00",X"FF",X"00",X"00",X"08",X"03",X"44", + X"44",X"00",X"FF",X"00",X"00",X"83",X"67",X"54",X"EC",X"4E",X"FF",X"00",X"00",X"35",X"76",X"54", + X"EC",X"4E",X"FF",X"00",X"00",X"45",X"63",X"33",X"CC",X"4C",X"FF",X"00",X"02",X"55",X"37",X"52", + X"44",X"43",X"FF",X"08",X"03",X"14",X"3A",X"A1",X"23",X"30",X"FF",X"00",X"12",X"18",X"8A",X"A1", + X"11",X"10",X"FF",X"00",X"00",X"E8",X"8E",X"E0",X"01",X"10",X"FF",X"00",X"00",X"08",X"09",X"09", + X"00",X"FF",X"00",X"00",X"03",X"44",X"56",X"43",X"FF",X"00",X"08",X"45",X"5E",X"C5",X"EC",X"FF", + X"00",X"84",X"54",X"6E",X"C4",X"EC",X"FF",X"00",X"34",X"54",X"5C",X"C4",X"CC",X"FF",X"00",X"46", + X"43",X"55",X"66",X"54",X"FF",X"81",X"33",X"64",X"23",X"44",X"30",X"FF",X"01",X"88",X"A9",X"11", + X"11",X"10",X"FF",X"00",X"01",X"A9",X"11",X"08",X"80",X"FF",X"00",X"00",X"80",X"90",X"00",X"FF", + X"00",X"03",X"44",X"44",X"30",X"FF",X"00",X"35",X"CC",X"5C",X"C3",X"FF",X"05",X"46",X"EC",X"5E", + X"C4",X"FF",X"06",X"46",X"EC",X"5E",X"C4",X"FF",X"04",X"35",X"56",X"65",X"53",X"FF",X"83",X"33", + X"45",X"54",X"3E",X"FF",X"11",X"A9",X"22",X"22",X"89",X"FF",X"01",X"A9",X"11",X"E8",X"9A",X"FF", + X"00",X"00",X"00",X"00",X"31",X"80",X"FF",X"00",X"00",X"00",X"03",X"30",X"00",X"FF",X"00",X"00", + X"0A",X"A3",X"53",X"90",X"FF",X"00",X"00",X"E9",X"45",X"54",X"00",X"FF",X"00",X"00",X"88",X"65", + X"54",X"39",X"FF",X"0A",X"98",X"11",X"12",X"66",X"30",X"FF",X"00",X"12",X"66",X"65",X"66",X"30", + X"FF",X"03",X"22",X"32",X"55",X"67",X"49",X"FF",X"04",X"EC",X"46",X"24",X"55",X"40",X"FF",X"00", + X"EC",X"44",X"44",X"44",X"00",X"FF",X"00",X"CC",X"44",X"44",X"30",X"90",X"FF",X"00",X"02",X"23", + X"20",X"00",X"00",X"FF",X"00",X"00",X"90",X"09",X"00",X"00",X"FF",X"00",X"00",X"09",X"00",X"90", + X"00",X"00",X"FF",X"08",X"09",X"03",X"33",X"44",X"09",X"00",X"FF",X"01",X"03",X"44",X"66",X"75", + X"40",X"00",X"FF",X"03",X"35",X"55",X"66",X"65",X"43",X"00",X"FF",X"00",X"33",X"55",X"25",X"54", + X"44",X"09",X"FF",X"00",X"0A",X"46",X"16",X"52",X"44",X"20",X"FF",X"00",X"0A",X"98",X"16",X"26", + X"44",X"30",X"FF",X"00",X"00",X"E8",X"16",X"34",X"44",X"29",X"FF",X"00",X"00",X"00",X"82",X"2C", + X"CC",X"20",X"FF",X"00",X"00",X"00",X"91",X"2E",X"EC",X"00",X"FF",X"00",X"00",X"00",X"A0",X"34", + X"00",X"00",X"FF",X"80",X"00",X"00",X"00",X"FF",X"02",X"40",X"00",X"00",X"FF",X"01",X"53",X"00", + X"00",X"FF",X"E1",X"25",X"39",X"00",X"FF",X"E1",X"25",X"50",X"00",X"FF",X"88",X"47",X"54",X"90", + X"FF",X"99",X"66",X"44",X"00",X"FF",X"AA",X"54",X"46",X"39",X"FF",X"0E",X"12",X"56",X"30",X"FF", + X"EE",X"22",X"67",X"49",X"FF",X"89",X"65",X"55",X"30",X"FF",X"89",X"25",X"54",X"30",X"FF",X"00", + X"34",X"CC",X"39",X"FF",X"00",X"14",X"EE",X"C0",X"FF",X"00",X"01",X"50",X"00",X"FF",X"00",X"80", + X"00",X"00",X"FF",X"02",X"00",X"00",X"00",X"FF",X"02",X"53",X"00",X"00",X"FF",X"13",X"35",X"39", + X"00",X"FF",X"E1",X"25",X"50",X"00",X"FF",X"18",X"87",X"64",X"90",X"FF",X"09",X"96",X"74",X"00", + X"FF",X"0A",X"A4",X"46",X"39",X"FF",X"0E",X"12",X"56",X"30",X"FF",X"89",X"22",X"67",X"49",X"FF", + X"8A",X"65",X"55",X"30",X"FF",X"08",X"25",X"54",X"30",X"FF",X"08",X"34",X"CC",X"39",X"FF",X"00", + X"24",X"EE",X"C0",X"FF",X"00",X"02",X"50",X"00",X"FF",X"00",X"80",X"00",X"00",X"FF",X"02",X"00", + X"00",X"00",X"FF",X"02",X"43",X"00",X"00",X"FF",X"03",X"65",X"30",X"00",X"FF",X"02",X"25",X"59", + X"00",X"FF",X"02",X"26",X"64",X"00",X"FF",X"88",X"47",X"64",X"90",X"FF",X"99",X"57",X"46",X"30", + X"FF",X"AA",X"42",X"56",X"39",X"FF",X"02",X"96",X"64",X"40",X"FF",X"02",X"A6",X"63",X"39",X"FF", + X"18",X"33",X"34",X"30",X"FF",X"11",X"34",X"CC",X"39",X"FF",X"00",X"24",X"EE",X"40",X"FF",X"00", + X"02",X"50",X"00",X"FF",X"00",X"00",X"00",X"90",X"90",X"80",X"FF",X"00",X"00",X"90",X"33",X"43", + X"30",X"FF",X"00",X"90",X"33",X"46",X"75",X"53",X"FF",X"00",X"03",X"44",X"33",X"66",X"43",X"FF", + X"00",X"35",X"56",X"63",X"55",X"43",X"FF",X"80",X"56",X"76",X"62",X"22",X"30",X"FF",X"03",X"32", + X"66",X"51",X"26",X"20",X"FF",X"00",X"11",X"89",X"A1",X"19",X"E0",X"FF",X"0E",X"E0",X"89",X"AE", + X"08",X"8E",X"FF",X"00",X"00",X"09",X"23",X"09",X"FF",X"00",X"02",X"22",X"25",X"20",X"FF",X"00", + X"24",X"94",X"45",X"52",X"FF",X"02",X"46",X"66",X"54",X"63",X"FF",X"02",X"46",X"77",X"64",X"63", + X"FF",X"02",X"56",X"97",X"64",X"23",X"FF",X"02",X"35",X"66",X"54",X"11",X"FF",X"00",X"11",X"28", + X"9A",X"19",X"FF",X"00",X"89",X"08",X"9A",X"00",X"FF",X"00",X"22",X"22",X"00",X"FF",X"02",X"49", + X"54",X"20",X"FF",X"02",X"46",X"75",X"20",X"FF",X"24",X"59",X"55",X"42",X"FF",X"25",X"22",X"22", + X"42",X"FF",X"22",X"49",X"44",X"22",X"FF",X"24",X"66",X"65",X"42",X"FF",X"34",X"69",X"76",X"52", + X"FF",X"35",X"67",X"76",X"52",X"FF",X"24",X"56",X"65",X"42",X"FF",X"E3",X"49",X"43",X"2E",X"FF", + X"89",X"A0",X"08",X"9A",X"FF",X"00",X"00",X"22",X"00",X"00",X"FF",X"00",X"0C",X"55",X"C0",X"88", + X"FF",X"08",X"2E",X"94",X"E2",X"A9",X"FF",X"09",X"24",X"67",X"52",X"62",X"FF",X"03",X"45",X"95", + X"54",X"30",X"FF",X"03",X"52",X"44",X"44",X"30",X"FF",X"00",X"33",X"94",X"42",X"30",X"FF",X"08", + X"36",X"66",X"53",X"00",X"FF",X"09",X"36",X"97",X"63",X"00",X"FF",X"00",X"36",X"77",X"63",X"00", + X"FF",X"00",X"03",X"96",X"40",X"00",X"FF",X"00",X"03",X"56",X"30",X"00",X"FF",X"00",X"00",X"35", + X"00",X"00",X"FF",X"00",X"00",X"02",X"00",X"00",X"FF",X"00",X"00",X"00",X"80",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"43",X"00",X"FF",X"00",X"00",X"00",X"90",X"CE",X"E3",X"00",X"FF",X"00", + X"00",X"00",X"02",X"CC",X"C5",X"21",X"FF",X"00",X"00",X"00",X"23",X"44",X"44",X"41",X"FF",X"00", + X"09",X"09",X"33",X"57",X"7A",X"3E",X"FF",X"00",X"00",X"35",X"66",X"55",X"69",X"20",X"FF",X"00", + X"03",X"55",X"67",X"72",X"33",X"20",X"FF",X"08",X"04",X"62",X"24",X"54",X"33",X"00",X"FF",X"00", + X"22",X"32",X"28",X"9A",X"20",X"00",X"FF",X"00",X"00",X"00",X"08",X"9A",X"00",X"00",X"FF",X"00", + X"80",X"00",X"00",X"00",X"FF",X"02",X"00",X"00",X"00",X"00",X"FF",X"02",X"43",X"09",X"00",X"00", + X"FF",X"03",X"65",X"30",X"00",X"00",X"FF",X"02",X"25",X"59",X"00",X"00",X"FF",X"02",X"26",X"63", + X"20",X"90",X"FF",X"88",X"47",X"63",X"32",X"00",X"FF",X"99",X"57",X"55",X"4C",X"C0",X"FF",X"AA", + X"42",X"57",X"4C",X"E0",X"FF",X"02",X"33",X"67",X"4C",X"E4",X"FF",X"00",X"33",X"9A",X"45",X"33", + X"FF",X"00",X"02",X"23",X"42",X"00",X"FF",X"00",X"00",X"0E",X"11",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"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"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"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"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"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"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"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"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"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"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"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"13",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"01",X"00",X"34",X"43",X"01",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"33",X"62",X"24",X"32",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"34",X"23",X"52",X"42",X"20",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"13",X"42",X"36",X"43",X"23",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"03",X"42",X"35",X"73",X"23",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"42",X"52",X"54",X"43",X"20",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"33",X"22",X"22",X"43",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"32",X"44",X"21",X"30",X"10",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"23",X"03",X"30",X"30",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"10",X"00",X"30",X"00",X"00",X"00",X"00",X"00",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"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"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"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"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"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"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"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"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"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"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"04",X"44",X"00",X"00",X"00",X"FF",X"00", + X"00",X"04",X"44",X"44",X"44",X"40",X"00",X"FF",X"00",X"00",X"44",X"88",X"88",X"88",X"44",X"00", + X"FF",X"00",X"04",X"48",X"88",X"88",X"88",X"84",X"40",X"FF",X"00",X"04",X"88",X"88",X"85",X"55", + X"84",X"45",X"FF",X"00",X"04",X"88",X"85",X"55",X"45",X"58",X"44",X"FF",X"08",X"04",X"48",X"85", + X"54",X"76",X"58",X"44",X"FF",X"40",X"04",X"48",X"85",X"45",X"63",X"58",X"44",X"FF",X"00",X"00", + X"44",X"88",X"74",X"47",X"55",X"45",X"FF",X"00",X"40",X"04",X"48",X"85",X"64",X"55",X"85",X"FF", + X"00",X"00",X"00",X"44",X"45",X"03",X"58",X"85",X"FF",X"05",X"40",X"00",X"00",X"00",X"35",X"48", + X"50",X"FF",X"00",X"54",X"00",X"00",X"47",X"44",X"48",X"00",X"FF",X"00",X"55",X"74",X"43",X"44", + X"48",X"80",X"04",X"FF",X"00",X"05",X"55",X"44",X"48",X"80",X"00",X"00",X"FF",X"00",X"00",X"05", + X"50",X"50",X"00",X"70",X"80",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"54",X"44",X"55",X"50",X"00",X"00",X"FF",X"00",X"04",X"44",X"44",X"48",X"85", + X"00",X"00",X"FF",X"00",X"44",X"48",X"88",X"55",X"88",X"80",X"00",X"FF",X"04",X"48",X"85",X"55", + X"55",X"54",X"48",X"00",X"FF",X"04",X"88",X"55",X"63",X"74",X"35",X"48",X"00",X"FF",X"04",X"88", + X"54",X"76",X"46",X"03",X"44",X"80",X"FF",X"44",X"88",X"55",X"45",X"45",X"50",X"7A",X"80",X"FF", + X"44",X"88",X"85",X"54",X"78",X"40",X"44",X"45",X"FF",X"44",X"88",X"85",X"55",X"88",X"40",X"03", + X"40",X"FF",X"04",X"88",X"88",X"88",X"84",X"40",X"04",X"45",X"FF",X"04",X"48",X"88",X"88",X"44", + X"00",X"04",X"55",X"FF",X"00",X"44",X"88",X"44",X"40",X"00",X"07",X"50",X"FF",X"00",X"04",X"44", + X"44",X"00",X"00",X"45",X"50",X"FF",X"00",X"00",X"00",X"00",X"00",X"04",X"55",X"00",X"FF",X"00", + X"00",X"00",X"04",X"00",X"05",X"00",X"00",X"FF",X"00",X"40",X"00",X"00",X"00",X"00",X"00",X"40", + 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"FF",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"00",X"00",X"00",X"00",X"04",X"44",X"44", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"04",X"44",X"44",X"44",X"44",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"44",X"44",X"88",X"88",X"84",X"44",X"00",X"00",X"FF",X"00",X"00",X"04", + X"44",X"88",X"88",X"88",X"84",X"45",X"48",X"00",X"FF",X"00",X"00",X"04",X"48",X"88",X"88",X"88", + X"88",X"44",X"50",X"80",X"FF",X"00",X"00",X"44",X"48",X"88",X"98",X"88",X"88",X"84",X"40",X"00", + X"FF",X"00",X"00",X"44",X"48",X"88",X"87",X"63",X"78",X"84",X"44",X"00",X"FF",X"00",X"00",X"54", + X"88",X"88",X"74",X"44",X"37",X"88",X"44",X"00",X"FF",X"00",X"00",X"54",X"88",X"87",X"54",X"34", + X"43",X"88",X"44",X"00",X"FF",X"00",X"00",X"04",X"88",X"87",X"55",X"33",X"47",X"88",X"84",X"00", + X"FF",X"00",X"08",X"04",X"88",X"89",X"33",X"39",X"43",X"88",X"84",X"00",X"FF",X"00",X"00",X"00", + X"48",X"88",X"73",X"38",X"57",X"48",X"45",X"00",X"FF",X"00",X"00",X"00",X"55",X"88",X"88",X"88", + X"78",X"88",X"85",X"00",X"FF",X"00",X"08",X"07",X"05",X"58",X"88",X"00",X"07",X"88",X"55",X"80", + X"FF",X"00",X"00",X"04",X"70",X"00",X"00",X"00",X"48",X"85",X"45",X"00",X"FF",X"00",X"00",X"00", + X"44",X"07",X"77",X"07",X"78",X"44",X"50",X"00",X"FF",X"00",X"00",X"40",X"00",X"44",X"44",X"66", + X"84",X"4A",X"40",X"00",X"FF",X"00",X"00",X"04",X"70",X"07",X"88",X"44",X"44",X"54",X"00",X"00", + X"FF",X"00",X"00",X"04",X"44",X"44",X"44",X"44",X"55",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"54",X"44",X"45",X"55",X"00",X"00",X"00",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"FF",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",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"FF",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"00",X"00",X"00",X"80",X"00",X"00",X"00",X"08",X"00",X"00",X"00", + X"FF",X"00",X"00",X"08",X"00",X"44",X"44",X"45",X"55",X"50",X"00",X"00",X"FF",X"00",X"00",X"04", + X"54",X"44",X"48",X"84",X"85",X"45",X"40",X"00",X"FF",X"00",X"00",X"45",X"44",X"48",X"88",X"88", + X"88",X"54",X"A4",X"00",X"FF",X"00",X"00",X"44",X"48",X"88",X"88",X"84",X"88",X"84",X"45",X"00", + X"FF",X"00",X"04",X"44",X"88",X"87",X"37",X"37",X"87",X"88",X"44",X"50",X"FF",X"00",X"04",X"88", + X"88",X"73",X"44",X"45",X"70",X"47",X"84",X"50",X"FF",X"00",X"44",X"88",X"88",X"34",X"43",X"98", + X"80",X"07",X"64",X"45",X"FF",X"00",X"44",X"88",X"88",X"64",X"33",X"33",X"80",X"00",X"64",X"45", + X"FF",X"00",X"44",X"88",X"88",X"74",X"45",X"33",X"88",X"07",X"48",X"45",X"FF",X"00",X"44",X"88", + X"89",X"87",X"55",X"37",X"88",X"07",X"48",X"44",X"FF",X"00",X"44",X"48",X"88",X"88",X"77",X"98", + X"88",X"07",X"47",X"44",X"FF",X"00",X"04",X"48",X"88",X"88",X"88",X"88",X"85",X"00",X"40",X"44", + X"FF",X"00",X"04",X"44",X"88",X"88",X"88",X"88",X"55",X"04",X"00",X"44",X"FF",X"00",X"00",X"44", + X"44",X"48",X"88",X"84",X"50",X"74",X"07",X"45",X"FF",X"00",X"00",X"04",X"44",X"44",X"44",X"40", + X"07",X"40",X"04",X"40",X"FF",X"00",X"00",X"00",X"04",X"45",X"50",X"00",X"00",X"00",X"40",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"08",X"00",X"00",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"FF",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"02",X"23",X"00",X"30",X"FF",X"02",X"21",X"12",X"33",X"00",X"FF",X"32",X"99",X"29", + X"93",X"30",X"FF",X"38",X"AA",X"8A",X"A8",X"30",X"FF",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"D8", + X"AD",X"8D",X"A8",X"D0",X"FF",X"77",X"24",X"44",X"27",X"70",X"FF",X"7E",X"44",X"85",X"47",X"E0", + X"FF",X"02",X"35",X"56",X"32",X"00",X"FF",X"00",X"00",X"30",X"00",X"00",X"FF",X"00",X"03",X"13", + X"00",X"00",X"FF",X"00",X"31",X"91",X"30",X"00",X"FF",X"02",X"23",X"A2",X"23",X"00",X"FF",X"02", + X"28",X"A8",X"23",X"00",X"FF",X"03",X"81",X"91",X"83",X"00",X"FF",X"00",X"32",X"33",X"30",X"00", + X"FF",X"04",X"56",X"06",X"00",X"00",X"FF",X"00",X"56",X"86",X"55",X"00",X"FF",X"06",X"00",X"00", + X"FF",X"00",X"05",X"56",X"65",X"56",X"00",X"FF",X"00",X"80",X"22",X"30",X"00",X"00",X"FF",X"00", + X"81",X"22",X"23",X"80",X"00",X"FF",X"02",X"92",X"2A",X"B3",X"AB",X"00",X"FF",X"03",X"28",X"8B", + X"D8",X"BD",X"00",X"FF",X"03",X"88",X"8B",X"D8",X"BD",X"00",X"FF",X"03",X"38",X"8A",X"A8",X"AA", + X"00",X"FF",X"08",X"17",X"74",X"44",X"57",X"00",X"FF",X"00",X"3E",X"E4",X"44",X"4E",X"00",X"FF", + X"00",X"08",X"82",X"66",X"60",X"00",X"0F",X"00",X"00",X"00",X"80",X"01",X"20",X"FF",X"00",X"00", + X"32",X"92",X"23",X"28",X"FF",X"08",X"08",X"32",X"23",X"31",X"80",X"0F",X"00",X"88",X"22",X"33", + X"98",X"80",X"0F",X"00",X"08",X"33",X"29",X"98",X"00",X"FF",X"00",X"00",X"88",X"99",X"30",X"00", + X"0F",X"00",X"00",X"06",X"0D",X"00",X"00",X"FF",X"00",X"05",X"56",X"D5",X"56",X"00",X"FF",X"08", + X"02",X"23",X"00",X"00",X"00",X"FF",X"08",X"12",X"22",X"38",X"00",X"00",X"FF",X"29",X"22",X"AB", + X"3A",X"B0",X"00",X"FF",X"32",X"88",X"BD",X"8B",X"D0",X"00",X"FF",X"38",X"88",X"BD",X"8B",X"D0", + X"00",X"FF",X"33",X"88",X"AA",X"8A",X"A0",X"00",X"FF",X"81",X"77",X"44",X"45",X"70",X"00",X"FF", + X"03",X"EE",X"44",X"44",X"E0",X"88",X"FF",X"00",X"88",X"26",X"66",X"D8",X"80",X"FF",X"00",X"00", + X"80",X"02",X"18",X"80",X"FF",X"00",X"32",X"11",X"21",X"28",X"00",X"FF",X"08",X"31",X"13",X"32", + X"80",X"00",X"FF",X"88",X"22",X"33",X"98",X"80",X"00",X"FF",X"08",X"33",X"29",X"98",X"00",X"00", + X"FF",X"00",X"88",X"99",X"36",X"60",X"00",X"FF",X"00",X"06",X"00",X"00",X"00",X"00",X"FF",X"05", + X"56",X"D0",X"00",X"00",X"00",X"FF",X"00",X"00",X"02",X"23",X"00",X"30",X"FF",X"00",X"02",X"21", + X"12",X"33",X"00",X"FF",X"00",X"32",X"99",X"29",X"93",X"30",X"FF",X"00",X"38",X"AA",X"8A",X"A8", + X"30",X"FF",X"00",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"00",X"D8",X"AD",X"8D",X"A8",X"D0",X"FF", + X"00",X"77",X"24",X"44",X"27",X"70",X"FF",X"00",X"7E",X"44",X"45",X"47",X"E0",X"FF",X"00",X"02", + X"35",X"56",X"32",X"00",X"FF",X"00",X"00",X"00",X"30",X"00",X"00",X"FF",X"03",X"33",X"33",X"13", + X"33",X"33",X"FF",X"00",X"33",X"31",X"91",X"33",X"30",X"FF",X"00",X"03",X"19",X"A9",X"13",X"00", + X"FF",X"00",X"00",X"19",X"A9",X"10",X"00",X"FF",X"00",X"00",X"21",X"91",X"20",X"00",X"FF",X"00", + X"00",X"02",X"33",X"30",X"00",X"FF",X"00",X"00",X"06",X"00",X"60",X"00",X"FF",X"00",X"05",X"56", + X"00",X"56",X"D0",X"FF",X"00",X"00",X"02",X"23",X"00",X"30",X"FF",X"00",X"02",X"21",X"12",X"33", + X"00",X"FF",X"00",X"32",X"99",X"29",X"93",X"30",X"FF",X"00",X"38",X"AA",X"8A",X"A8",X"30",X"FF", + X"00",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"00",X"D8",X"AD",X"8D",X"A8",X"D0",X"FF",X"00",X"77", + X"24",X"44",X"27",X"70",X"FF",X"00",X"7E",X"44",X"45",X"47",X"E0",X"FF",X"00",X"00",X"85",X"55", + X"22",X"38",X"FF",X"83",X"33",X"31",X"23",X"33",X"80",X"FF",X"08",X"33",X"19",X"92",X"38",X"00", + X"FF",X"00",X"81",X"9A",X"99",X"30",X"00",X"FF",X"00",X"01",X"9A",X"91",X"20",X"00",X"FF",X"00", + X"03",X"19",X"12",X"30",X"00",X"FF",X"00",X"00",X"33",X"33",X"00",X"00",X"FF",X"00",X"00",X"60", + X"06",X"00",X"00",X"FF",X"00",X"55",X"60",X"05",X"6D",X"00",X"FF",X"00",X"00",X"02",X"23",X"00", + X"30",X"FF",X"00",X"02",X"21",X"12",X"33",X"00",X"FF",X"00",X"32",X"99",X"29",X"93",X"30",X"FF", + X"00",X"38",X"AA",X"8A",X"A8",X"30",X"FF",X"00",X"88",X"AD",X"8D",X"A8",X"80",X"FF",X"00",X"D8", + X"AD",X"8D",X"A8",X"D0",X"FF",X"00",X"77",X"24",X"44",X"27",X"70",X"FF",X"00",X"7E",X"44",X"45", + X"47",X"E0",X"FF",X"00",X"02",X"35",X"56",X"32",X"00",X"FF",X"00",X"00",X"00",X"30",X"00",X"00", + X"FF",X"03",X"33",X"33",X"13",X"33",X"33",X"FF",X"00",X"33",X"31",X"91",X"33",X"30",X"FF",X"00", + X"03",X"19",X"A9",X"13",X"00",X"FF",X"00",X"00",X"19",X"A9",X"10",X"D0",X"FF",X"00",X"00",X"21", + X"91",X"20",X"60",X"FF",X"00",X"00",X"02",X"33",X"D6",X"50",X"FF",X"00",X"00",X"06",X"00",X"00", + X"60",X"FF",X"00",X"05",X"56",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"02",X"23",X"00",X"30",X"FF",X"00",X"02",X"21",X"12",X"33",X"00",X"FF",X"00",X"32", + X"22",X"22",X"23",X"30",X"FF",X"00",X"38",X"AA",X"8A",X"A8",X"30",X"FF",X"00",X"88",X"AB",X"8B", + X"A8",X"80",X"FF",X"00",X"D8",X"AD",X"8D",X"A8",X"D0",X"FF",X"00",X"77",X"24",X"44",X"27",X"70", + X"FF",X"00",X"7E",X"43",X"43",X"47",X"E0",X"FF",X"00",X"02",X"33",X"53",X"32",X"00",X"FF",X"00", + X"00",X"33",X"33",X"33",X"00",X"FF",X"00",X"03",X"33",X"13",X"33",X"30",X"FF",X"00",X"03",X"33", + X"91",X"33",X"30",X"FF",X"00",X"02",X"39",X"A9",X"12",X"00",X"FF",X"00",X"00",X"29",X"A9",X"10", + X"00",X"FF",X"00",X"00",X"22",X"22",X"20",X"00",X"FF",X"00",X"06",X"00",X"00",X"60",X"00",X"FF", + X"66",X"60",X"00",X"06",X"66",X"60",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"02",X"23",X"08",X"00",X"FF",X"02",X"21",X"12",X"38",X"00",X"FF",X"32", + X"22",X"22",X"23",X"30",X"FF",X"32",X"22",X"22",X"22",X"30",X"FF",X"32",X"22",X"32",X"23",X"30", + X"FF",X"D8",X"AA",X"8A",X"A8",X"D0",X"FF",X"78",X"CD",X"8D",X"C8",X"70",X"FF",X"77",X"24",X"44", + X"27",X"70",X"FF",X"08",X"64",X"44",X"68",X"00",X"FF",X"03",X"86",X"56",X"83",X"00",X"FF",X"33", + X"1A",X"A9",X"13",X"30",X"FF",X"33",X"19",X"A9",X"13",X"30",X"FF",X"03",X"21",X"91",X"23",X"00", + X"FF",X"00",X"32",X"33",X"30",X"00",X"FF",X"00",X"06",X"06",X"00",X"00",X"FF",X"04",X"56",X"86", + X"55",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"03",X"33",X"00",X"00",X"FF",X"00",X"03",X"21", + X"12",X"33",X"00",X"FF",X"80",X"32",X"19",X"91",X"23",X"30",X"8F",X"08",X"32",X"19",X"11",X"23", + X"38",X"8F",X"08",X"32",X"21",X"12",X"23",X"38",X"FF",X"08",X"33",X"22",X"22",X"23",X"38",X"FF", + X"08",X"83",X"32",X"22",X"33",X"80",X"FF",X"00",X"88",X"33",X"33",X"38",X"80",X"FF",X"00",X"08", + X"65",X"45",X"68",X"00",X"FF",X"00",X"03",X"26",X"56",X"23",X"00",X"FF",X"00",X"00",X"19",X"99", + X"10",X"00",X"FF",X"00",X"00",X"06",X"06",X"00",X"00",X"FF",X"00",X"04",X"56",X"86",X"55",X"00", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"00",X"05",X"55",X"05",X"55",X"00",X"00",X"FF",X"00",X"55",X"D5",X"34",X"D5",X"30",X"00",X"FF", + X"00",X"4D",X"DD",X"2D",X"DD",X"20",X"00",X"FF",X"04",X"48",X"81",X"21",X"88",X"22",X"00",X"FF", + X"05",X"55",X"55",X"45",X"55",X"32",X"00",X"FF",X"5E",X"E4",X"54",X"34",X"53",X"33",X"20",X"FF", + X"54",X"43",X"33",X"33",X"33",X"33",X"20",X"FF",X"44",X"2E",X"E2",X"22",X"EE",X"2A",X"32",X"FF", + X"42",X"E1",X"EE",X"7E",X"E1",X"E2",X"AA",X"FF",X"BB",X"77",X"17",X"77",X"17",X"7C",X"CB",X"FF", + X"77",X"77",X"77",X"77",X"77",X"77",X"CC",X"FF",X"77",X"77",X"77",X"77",X"77",X"77",X"7C",X"FF", + X"EE",X"EE",X"EE",X"EE",X"EE",X"EE",X"EC",X"FF",X"11",X"22",X"99",X"99",X"22",X"11",X"1C",X"FF", + X"00",X"05",X"55",X"05",X"55",X"00",X"00",X"FF",X"00",X"55",X"D5",X"34",X"D5",X"30",X"00",X"FF", + X"00",X"4D",X"DD",X"2D",X"DD",X"20",X"00",X"FF",X"04",X"48",X"81",X"21",X"88",X"22",X"00",X"FF", + X"00",X"05",X"55",X"05",X"55",X"00",X"00",X"FF",X"00",X"55",X"D5",X"34",X"D5",X"30",X"00",X"FF", + X"00",X"4D",X"DD",X"2D",X"DD",X"20",X"00",X"FF",X"04",X"48",X"81",X"21",X"88",X"22",X"00",X"FF", + X"05",X"55",X"55",X"45",X"55",X"32",X"00",X"FF",X"5E",X"E4",X"54",X"34",X"53",X"33",X"20",X"FF", + X"54",X"43",X"33",X"33",X"33",X"33",X"20",X"FF",X"44",X"2E",X"E2",X"22",X"EE",X"2A",X"32",X"FF", + X"00",X"05",X"55",X"05",X"55",X"00",X"00",X"FF",X"00",X"55",X"D5",X"34",X"D5",X"30",X"00",X"FF", + X"00",X"4D",X"DD",X"2D",X"DD",X"20",X"00",X"FF",X"04",X"48",X"81",X"21",X"88",X"22",X"00",X"FF", + X"05",X"55",X"55",X"45",X"55",X"32",X"00",X"FF",X"5E",X"E4",X"54",X"34",X"53",X"33",X"20",X"FF", + X"54",X"43",X"33",X"33",X"33",X"33",X"20",X"FF",X"44",X"2E",X"E2",X"22",X"EE",X"2A",X"32",X"FF", + X"42",X"E1",X"EE",X"7E",X"E1",X"E2",X"AA",X"FF",X"BB",X"77",X"17",X"77",X"17",X"7C",X"CB",X"FF", + X"77",X"77",X"77",X"77",X"77",X"77",X"CC",X"FF",X"77",X"77",X"77",X"77",X"77",X"77",X"7C",X"FF", + X"00",X"55",X"D5",X"34",X"D5",X"30",X"00",X"FF",X"00",X"4D",X"DD",X"2D",X"DD",X"20",X"00",X"FF", + X"04",X"48",X"81",X"21",X"88",X"22",X"00",X"FF",X"05",X"55",X"55",X"45",X"55",X"32",X"00",X"FF", + X"5E",X"E4",X"54",X"34",X"53",X"33",X"20",X"FF",X"54",X"43",X"33",X"33",X"33",X"33",X"20",X"FF", + X"44",X"2E",X"E2",X"22",X"EE",X"2A",X"32",X"FF",X"42",X"E1",X"EE",X"7E",X"E1",X"E2",X"AA",X"FF", + X"BB",X"77",X"17",X"77",X"17",X"7C",X"CB",X"FF",X"77",X"77",X"77",X"77",X"77",X"77",X"CC",X"FF", + X"77",X"77",X"77",X"77",X"77",X"77",X"7C",X"FF",X"EE",X"EE",X"EE",X"EE",X"EE",X"EE",X"EC",X"FF", + X"11",X"22",X"99",X"99",X"22",X"11",X"1C",X"FF",X"C7",X"77",X"EE",X"8E",X"77",X"77",X"7B",X"FF", + X"00",X"00",X"00",X"55",X"50",X"55",X"50",X"00",X"00",X"FF",X"00",X"00",X"05",X"5D",X"53",X"4D", + X"53",X"00",X"00",X"FF",X"00",X"00",X"04",X"DD",X"D2",X"DD",X"D2",X"00",X"00",X"FF",X"00",X"00", + X"44",X"88",X"12",X"18",X"82",X"20",X"00",X"FF",X"00",X"00",X"55",X"55",X"54",X"55",X"53",X"20", + X"00",X"FF",X"00",X"05",X"EE",X"45",X"43",X"45",X"33",X"32",X"00",X"FF",X"00",X"05",X"44",X"33", + X"33",X"33",X"33",X"32",X"00",X"FF",X"00",X"54",X"42",X"EE",X"22",X"2E",X"E2",X"A3",X"20",X"FF", + X"00",X"44",X"2E",X"1E",X"E7",X"EE",X"1E",X"2A",X"A0",X"FF",X"0A",X"3B",X"B7",X"71",X"77",X"71", + X"77",X"CC",X"BA",X"FF",X"03",X"B7",X"77",X"77",X"77",X"77",X"77",X"7C",X"CB",X"FF",X"0B",X"C7", + X"77",X"77",X"77",X"77",X"77",X"77",X"CB",X"FF",X"0B",X"CE",X"EE",X"EE",X"EE",X"EE",X"EE",X"EE", + X"CB",X"FF",X"0B",X"C1",X"12",X"29",X"99",X"92",X"21",X"11",X"CB",X"FF",X"0B",X"BC",X"77",X"7E", + X"E8",X"E7",X"77",X"77",X"BA",X"FF",X"02",X"BB",X"E7",X"77",X"AA",X"A7",X"77",X"EB",X"A0",X"FF", + X"0D",X"44",X"BB",X"BC",X"77",X"7C",X"CB",X"AA",X"20",X"FF",X"02",X"22",X"AA",X"BB",X"EE",X"7B", + X"BA",X"A2",X"30",X"FF",X"00",X"03",X"43",X"3A",X"AA",X"AE",X"26",X"26",X"20",X"FF",X"00",X"00", + X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"0D",X"20", + X"00",X"FF",X"00",X"00",X"00",X"55",X"50",X"55",X"50",X"00",X"00",X"FF",X"00",X"00",X"05",X"5D", + X"53",X"4D",X"53",X"00",X"00",X"FF",X"00",X"00",X"04",X"DD",X"D2",X"DD",X"D2",X"00",X"00",X"FF", + X"00",X"00",X"44",X"DD",X"D2",X"DD",X"D2",X"20",X"00",X"FF",X"00",X"00",X"55",X"67",X"64",X"57", + X"63",X"20",X"00",X"FF",X"00",X"05",X"6E",X"76",X"43",X"45",X"54",X"32",X"00",X"FF",X"00",X"05", + X"64",X"33",X"33",X"33",X"34",X"42",X"00",X"FF",X"00",X"54",X"42",X"EE",X"32",X"3E",X"E2",X"A3", + X"20",X"FF",X"00",X"44",X"2E",X"11",X"E7",X"E1",X"1E",X"2A",X"A0",X"FF",X"0A",X"3B",X"B7",X"7C", + X"77",X"7C",X"77",X"CC",X"BA",X"FF",X"03",X"B7",X"77",X"77",X"77",X"77",X"77",X"7C",X"CB",X"FF", + X"0B",X"C7",X"7E",X"EE",X"EE",X"EE",X"EE",X"77",X"CB",X"FF",X"0B",X"C1",X"DD",X"8D",X"88",X"D8", + X"8D",X"D1",X"CB",X"FF",X"0B",X"C1",X"12",X"99",X"99",X"99",X"21",X"11",X"CB",X"FF",X"0B",X"CC", + X"7E",X"EE",X"E8",X"E7",X"77",X"77",X"CA",X"FF",X"00",X"BC",X"CE",X"E7",X"AA",X"A7",X"77",X"CB", + X"A0",X"FF",X"02",X"2A",X"BC",X"C7",X"77",X"77",X"CC",X"AA",X"20",X"FF",X"0D",X"45",X"AA",X"BC", + X"EE",X"7C",X"BA",X"A2",X"30",X"FF",X"02",X"22",X"42",X"AA",X"AA",X"AA",X"22",X"44",X"40",X"FF", + X"0D",X"45",X"65",X"55",X"43",X"45",X"55",X"66",X"70",X"FF",X"00",X"22",X"E7",X"76",X"55",X"56", + X"67",X"7E",X"E0",X"FF",X"00",X"0E",X"EE",X"77",X"65",X"64",X"24",X"24",X"20",X"FF",X"00",X"00", + X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"0D",X"20", + X"00",X"FF",X"00",X"00",X"00",X"55",X"50",X"55",X"50",X"00",X"00",X"FF",X"00",X"00",X"05",X"5D", + X"53",X"4D",X"53",X"00",X"00",X"FF",X"00",X"00",X"04",X"DD",X"D2",X"DD",X"D2",X"00",X"00",X"FF", + X"00",X"00",X"44",X"DD",X"D2",X"DD",X"D2",X"20",X"00",X"FF",X"00",X"00",X"55",X"67",X"64",X"57", + X"63",X"20",X"00",X"FF",X"00",X"05",X"6E",X"44",X"43",X"45",X"54",X"32",X"00",X"FF",X"00",X"05", + X"63",X"EE",X"23",X"2E",X"E3",X"42",X"00",X"FF",X"00",X"54",X"4E",X"11",X"E2",X"E1",X"1E",X"A3", + X"20",X"FF",X"00",X"4B",X"7E",X"E7",X"77",X"77",X"77",X"CB",X"A0",X"FF",X"0A",X"B7",X"E7",X"7C", + X"CC",X"77",X"77",X"7C",X"BA",X"FF",X"03",X"CE",X"7D",X"88",X"88",X"CC",X"CC",X"7C",X"CB",X"FF", + X"0B",X"C7",X"D8",X"88",X"D8",X"D8",X"8D",X"C7",X"CB",X"FF",X"0B",X"7D",X"D1",X"12",X"22",X"22", + X"11",X"DD",X"CB",X"FF",X"0B",X"C1",X"12",X"99",X"99",X"99",X"21",X"11",X"CB",X"FF",X"0B",X"CC", + X"ED",X"DD",X"DD",X"DD",X"DD",X"E7",X"CA",X"FF",X"07",X"B7",X"EE",X"EE",X"EE",X"EE",X"EE",X"CB", + X"A0",X"FF",X"02",X"2A",X"BE",X"77",X"AA",X"A7",X"CC",X"AA",X"20",X"FF",X"05",X"53",X"AA",X"C7", + X"77",X"77",X"CA",X"A2",X"40",X"FF",X"02",X"22",X"55",X"AA",X"EE",X"EA",X"34",X"45",X"50",X"FF", + X"04",X"76",X"66",X"55",X"43",X"45",X"55",X"66",X"70",X"FF",X"00",X"22",X"E7",X"76",X"55",X"56", + X"67",X"7E",X"E0",X"FF",X"00",X"0E",X"EE",X"77",X"65",X"66",X"7E",X"EE",X"E0",X"FF",X"00",X"01", + X"EE",X"77",X"65",X"67",X"EE",X"E1",X"E0",X"FF",X"00",X"0E",X"EE",X"76",X"55",X"54",X"24",X"24", + X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"0D",X"20",X"00",X"FF",X"00",X"00",X"00",X"55",X"50",X"55",X"50",X"00",X"00",X"FF", + X"00",X"00",X"04",X"4D",X"43",X"4D",X"43",X"00",X"00",X"FF",X"00",X"00",X"04",X"DD",X"D2",X"DD", + X"D2",X"00",X"00",X"FF",X"00",X"00",X"44",X"88",X"12",X"88",X"12",X"20",X"00",X"FF",X"00",X"00", + X"45",X"55",X"54",X"55",X"53",X"20",X"00",X"FF",X"00",X"04",X"55",X"EE",X"43",X"4E",X"E5",X"32", + X"00",X"FF",X"00",X"05",X"5E",X"11",X"E3",X"E1",X"1E",X"42",X"00",X"FF",X"00",X"55",X"B7",X"77", + X"77",X"77",X"77",X"B3",X"20",X"FF",X"00",X"AC",X"77",X"7C",X"CC",X"C7",X"77",X"CB",X"A0",X"FF", + X"0B",X"C7",X"7C",X"C8",X"88",X"8C",X"C7",X"7C",X"BA",X"FF",X"0C",X"77",X"CD",X"88",X"88",X"88", + X"8D",X"C7",X"CB",X"FF",X"0B",X"EC",X"DE",X"11",X"11",X"11",X"1D",X"8C",X"CB",X"FF",X"0E",X"7D", + X"11",X"12",X"22",X"22",X"21",X"1D",X"CB",X"FF",X"07",X"71",X"12",X"99",X"99",X"99",X"22",X"11", + X"CB",X"FF",X"0C",X"77",X"ED",X"D8",X"88",X"D8",X"DD",X"E7",X"CA",X"FF",X"00",X"B7",X"EE",X"EE", + X"EE",X"EE",X"EE",X"CB",X"A0",X"FF",X"00",X"66",X"BE",X"77",X"AA",X"A7",X"CC",X"AA",X"20",X"FF", + X"00",X"22",X"AA",X"C7",X"77",X"77",X"CA",X"A2",X"40",X"FF",X"04",X"5E",X"55",X"AA",X"EE",X"EA", + X"34",X"45",X"50",X"FF",X"02",X"22",X"66",X"55",X"43",X"45",X"55",X"66",X"70",X"FF",X"05",X"55", + X"E7",X"76",X"55",X"56",X"67",X"7E",X"E0",X"FF",X"00",X"22",X"EE",X"77",X"65",X"66",X"7E",X"EE", + X"E0",X"FF",X"00",X"01",X"EE",X"77",X"65",X"67",X"EE",X"E1",X"E0",X"FF",X"00",X"0E",X"EE",X"76", + X"55",X"54",X"24",X"24",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"0D",X"20",X"00",X"FF",X"00",X"00",X"00",X"55",X"50",X"55", + X"50",X"00",X"00",X"FF",X"00",X"00",X"04",X"DD",X"43",X"DD",X"43",X"00",X"00",X"FF",X"00",X"00", + X"04",X"DD",X"D2",X"88",X"14",X"00",X"00",X"FF",X"00",X"00",X"34",X"88",X"12",X"88",X"14",X"30", + X"00",X"FF",X"00",X"00",X"35",X"55",X"54",X"55",X"55",X"53",X"00",X"FF",X"00",X"03",X"5E",X"E3", + X"43",X"EE",X"46",X"65",X"00",X"FF",X"00",X"03",X"E1",X"1E",X"4E",X"11",X"E4",X"55",X"30",X"FF", + X"00",X"35",X"B7",X"77",X"77",X"77",X"7E",X"B4",X"40",X"FF",X"00",X"AC",X"7D",X"D8",X"88",X"87", + X"7E",X"77",X"43",X"FF",X"0B",X"C7",X"D8",X"8D",X"8D",X"88",X"8C",X"C7",X"7A",X"FF",X"0C",X"7D", + X"D8",X"11",X"11",X"1D",X"88",X"8C",X"7B",X"FF",X"0C",X"ED",X"D1",X"11",X"11",X"11",X"1D",X"88", + X"7B",X"FF",X"0C",X"7D",X"11",X"22",X"12",X"22",X"11",X"1D",X"7B",X"FF",X"0C",X"71",X"12",X"99", + X"22",X"99",X"21",X"11",X"CB",X"FF",X"0C",X"C7",X"29",X"99",X"99",X"99",X"9D",X"E7",X"7A",X"FF", + X"00",X"77",X"7E",X"D8",X"88",X"8D",X"DE",X"77",X"A0",X"FF",X"00",X"07",X"77",X"EE",X"EE",X"EE", + X"77",X"7A",X"20",X"FF",X"00",X"34",X"77",X"77",X"BA",X"B7",X"77",X"A2",X"40",X"FF",X"00",X"22", + X"24",X"7E",X"EE",X"77",X"74",X"45",X"50",X"FF",X"04",X"57",X"76",X"5E",X"EE",X"E5",X"55",X"66", + X"70",X"FF",X"02",X"22",X"27",X"76",X"55",X"56",X"67",X"7E",X"E0",X"FF",X"00",X"45",X"5E",X"77", + X"65",X"66",X"7E",X"EE",X"E0",X"FF",X"00",X"22",X"2E",X"77",X"65",X"67",X"EE",X"E1",X"E0",X"FF", + X"00",X"0E",X"EE",X"76",X"55",X"54",X"24",X"24",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"0D", + X"24",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"0D",X"20",X"00",X"FF",X"00",X"00", + X"00",X"55",X"40",X"45",X"50",X"00",X"00",X"FF",X"00",X"00",X"04",X"4D",X"43",X"4D",X"43",X"00", + X"00",X"FF",X"00",X"00",X"34",X"DD",X"D2",X"DD",X"D2",X"00",X"00",X"FF",X"00",X"03",X"44",X"88", + X"12",X"88",X"12",X"00",X"00",X"FF",X"00",X"04",X"55",X"55",X"54",X"35",X"53",X"20",X"00",X"FF", + X"00",X"35",X"7E",X"77",X"55",X"35",X"54",X"32",X"00",X"FF",X"00",X"47",X"E6",X"55",X"5E",X"E2", + X"54",X"EE",X"00",X"FF",X"03",X"37",X"65",X"BB",X"71",X"17",X"BE",X"11",X"E0",X"FF",X"03",X"56", + X"5B",X"BE",X"E7",X"77",X"77",X"CB",X"A0",X"FF",X"03",X"55",X"BB",X"7E",X"E7",X"77",X"77",X"7C", + X"BA",X"FF",X"05",X"5B",X"B7",X"E7",X"77",X"D8",X"88",X"DD",X"D3",X"FF",X"04",X"5B",X"7E",X"77", + X"DD",X"21",X"11",X"11",X"D3",X"FF",X"05",X"BC",X"E7",X"CD",X"99",X"22",X"21",X"11",X"1D",X"FF", + X"03",X"BC",X"EE",X"D9",X"99",X"99",X"92",X"21",X"D3",X"FF",X"03",X"3C",X"77",X"ED",X"DD",X"DD", + X"DD",X"DD",X"DA",X"FF",X"00",X"3B",X"C7",X"7E",X"EE",X"EE",X"EE",X"77",X"A0",X"FF",X"00",X"2A", + X"BC",X"C7",X"7C",X"CA",X"AA",X"AA",X"30",X"FF",X"04",X"77",X"AA",X"BC",X"C7",X"77",X"7B",X"23", + X"00",X"FF",X"02",X"22",X"55",X"AB",X"BC",X"CE",X"EB",X"34",X"00",X"FF",X"47",X"77",X"66",X"55", + X"43",X"43",X"35",X"55",X"00",X"FF",X"22",X"22",X"E7",X"76",X"55",X"56",X"66",X"67",X"00",X"FF", + X"04",X"77",X"EE",X"77",X"65",X"66",X"67",X"7E",X"00",X"FF",X"02",X"22",X"EE",X"77",X"65",X"66", + X"7E",X"E1",X"00",X"FF",X"00",X"EE",X"EE",X"76",X"55",X"E2",X"52",X"52",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"D2",X"42",X"D2",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"D2",X"00", + X"00",X"FF",X"00",X"00",X"00",X"04",X"57",X"40",X"45",X"50",X"00",X"00",X"FF",X"00",X"00",X"00", + X"45",X"77",X"76",X"47",X"73",X"00",X"00",X"FF",X"00",X"00",X"04",X"57",X"5D",X"D6",X"4D",X"D5", + X"00",X"00",X"FF",X"00",X"00",X"35",X"54",X"88",X"16",X"48",X"81",X"00",X"00",X"FF",X"00",X"03", + X"45",X"44",X"55",X"54",X"35",X"53",X"20",X"00",X"FF",X"00",X"05",X"55",X"7E",X"77",X"55",X"35", + X"54",X"32",X"00",X"FF",X"00",X"35",X"57",X"EE",X"75",X"5E",X"EE",X"E4",X"EE",X"00",X"FF",X"00", + X"56",X"67",X"77",X"53",X"35",X"11",X"E3",X"61",X"B0",X"FF",X"03",X"56",X"67",X"55",X"3C",X"C7", + X"77",X"77",X"CB",X"A0",X"FF",X"04",X"55",X"66",X"63",X"CE",X"EE",X"77",X"77",X"7C",X"BA",X"FF", + X"05",X"75",X"66",X"3C",X"EE",X"EE",X"77",X"77",X"EE",X"E3",X"FF",X"06",X"77",X"55",X"3E",X"EE", + X"88",X"E7",X"7E",X"88",X"B2",X"FF",X"06",X"75",X"54",X"C7",X"EE",X"88",X"E7",X"E2",X"11",X"14", + X"FF",X"05",X"54",X"54",X"CE",X"7E",X"EE",X"77",X"E9",X"91",X"D2",X"FF",X"05",X"54",X"43",X"3C", + X"E7",X"77",X"7C",X"77",X"EE",X"EA",X"FF",X"04",X"53",X"33",X"33",X"CC",X"CC",X"CE",X"EE",X"77", + X"A0",X"FF",X"65",X"E5",X"45",X"54",X"33",X"CC",X"EE",X"7C",X"00",X"00",X"FF",X"22",X"26",X"66", + X"55",X"43",X"22",X"EE",X"C0",X"00",X"00",X"FF",X"66",X"77",X"77",X"65",X"43",X"43",X"33",X"40", + X"00",X"00",X"FF",X"22",X"2E",X"E7",X"76",X"55",X"55",X"55",X"40",X"00",X"00",X"FF",X"44",X"EE", + X"EE",X"76",X"55",X"66",X"66",X"60",X"00",X"00",X"FF",X"22",X"E1",X"EE",X"76",X"55",X"77",X"7E", + X"E0",X"00",X"00",X"FF",X"0E",X"EE",X"EE",X"77",X"57",X"25",X"25",X"20",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"04",X"24",X"24",X"20",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"0D", + X"20",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"02",X"35",X"77",X"42",X"45",X"30",X"00",X"00", + X"FF",X"00",X"00",X"02",X"34",X"77",X"77",X"74",X"47",X"70",X"00",X"00",X"FF",X"00",X"00",X"23", + X"45",X"77",X"66",X"77",X"47",X"70",X"00",X"00",X"FF",X"00",X"02",X"43",X"55",X"76",X"44",X"11", + X"76",X"10",X"00",X"00",X"FF",X"00",X"04",X"43",X"56",X"66",X"66",X"77",X"15",X"12",X"20",X"00", + X"FF",X"00",X"34",X"54",X"56",X"65",X"54",X"46",X"77",X"54",X"32",X"00",X"FF",X"03",X"34",X"56", + X"55",X"55",X"77",X"6E",X"54",X"EE",X"4E",X"E0",X"FF",X"03",X"47",X"67",X"76",X"57",X"45",X"55", + X"4E",X"E1",X"E6",X"B0",X"FF",X"04",X"57",X"EE",X"75",X"54",X"5B",X"C7",X"77",X"77",X"5B",X"A0", + X"FF",X"04",X"36",X"EE",X"65",X"4A",X"B7",X"EE",X"EE",X"77",X"77",X"BA",X"FF",X"05",X"35",X"66", + X"55",X"AB",X"C7",X"E8",X"8E",X"E7",X"77",X"EE",X"FF",X"05",X"43",X"55",X"54",X"AC",X"77",X"E8", + X"8E",X"EE",X"7E",X"12",X"FF",X"06",X"54",X"35",X"54",X"AA",X"C7",X"EE",X"EE",X"8E",X"E1",X"91", + X"FF",X"45",X"E5",X"43",X"33",X"33",X"CC",X"77",X"7E",X"E7",X"7E",X"12",X"FF",X"22",X"22",X"44", + X"33",X"43",X"3C",X"CC",X"CC",X"7B",X"77",X"EE",X"FF",X"45",X"E6",X"65",X"44",X"33",X"33",X"3B", + X"BB",X"BB",X"BB",X"A0",X"FF",X"22",X"2E",X"E5",X"55",X"53",X"44",X"33",X"20",X"00",X"00",X"00", + X"FF",X"45",X"EE",X"E7",X"76",X"35",X"53",X"55",X"40",X"00",X"00",X"00",X"FF",X"22",X"EE",X"EE", + X"76",X"55",X"66",X"56",X"60",X"00",X"00",X"00",X"FF",X"0E",X"E1",X"EE",X"76",X"56",X"77",X"7E", + X"E0",X"00",X"00",X"00",X"FF",X"0E",X"EE",X"EE",X"75",X"62",X"52",X"42",X"E0",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"02",X"42",X"42",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"D2",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"55",X"50",X"55",X"50", + X"00",X"00",X"FF",X"00",X"00",X"04",X"DD",X"43",X"DD",X"43",X"00",X"00",X"FF",X"00",X"00",X"04", + X"81",X"82",X"81",X"84",X"00",X"00",X"FF",X"00",X"00",X"34",X"44",X"42",X"44",X"44",X"30",X"00", + X"FF",X"00",X"00",X"35",X"EE",X"54",X"5E",X"E5",X"53",X"00",X"FF",X"00",X"03",X"5E",X"11",X"E3", + X"E1",X"1E",X"65",X"00",X"FF",X"00",X"03",X"47",X"77",X"77",X"77",X"E4",X"55",X"30",X"FF",X"00", + X"34",X"78",X"88",X"88",X"77",X"7E",X"B4",X"40",X"FF",X"00",X"47",X"D8",X"D8",X"8D",X"88",X"7E", + X"77",X"43",X"FF",X"0B",X"C7",X"D8",X"11",X"11",X"18",X"8C",X"C7",X"7A",X"FF",X"0C",X"7D",X"D1", + X"11",X"11",X"11",X"18",X"DC",X"7B",X"FF",X"0C",X"ED",X"11",X"11",X"11",X"11",X"11",X"DD",X"7B", + X"FF",X"0C",X"7D",X"11",X"22",X"12",X"22",X"11",X"1D",X"7B",X"FF",X"0C",X"71",X"12",X"99",X"99", + X"99",X"21",X"11",X"CB",X"FF",X"03",X"C7",X"EE",X"EE",X"EE",X"EE",X"EE",X"E7",X"7A",X"FF",X"00", + X"37",X"77",X"7C",X"AA",X"BC",X"77",X"77",X"A0",X"FF",X"00",X"55",X"77",X"7E",X"EE",X"E7",X"77", + X"A2",X"40",X"FF",X"00",X"22",X"44",X"7E",X"EE",X"77",X"74",X"45",X"50",X"FF",X"03",X"66",X"E6", + X"54",X"44",X"45",X"55",X"66",X"70",X"FF",X"02",X"22",X"27",X"76",X"55",X"56",X"67",X"7E",X"E0", + X"FF",X"00",X"35",X"5E",X"77",X"65",X"66",X"7E",X"EE",X"E0",X"FF",X"00",X"22",X"2E",X"77",X"65", + X"67",X"EE",X"E1",X"E0",X"FF",X"00",X"0E",X"EE",X"76",X"55",X"54",X"24",X"24",X"20",X"FF",X"00", + X"00",X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"0D", + X"20",X"00",X"FF",X"00",X"00",X"00",X"33",X"30",X"33",X"20",X"00",X"00",X"FF",X"00",X"00",X"0B", + X"CC",X"33",X"3C",X"CB",X"00",X"00",X"FF",X"00",X"00",X"2C",X"17",X"74",X"77",X"1C",X"20",X"00", + X"FF",X"00",X"00",X"27",X"7E",X"EE",X"EE",X"77",X"30",X"00",X"FF",X"00",X"02",X"77",X"EB",X"BB", + X"BB",X"E7",X"73",X"00",X"FF",X"00",X"02",X"7E",X"B8",X"D8",X"D8",X"BE",X"73",X"00",X"FF",X"00", + X"57",X"EB",X"D8",X"D8",X"D8",X"DB",X"E7",X"40",X"FF",X"00",X"77",X"EB",X"D1",X"11",X"11",X"DB", + X"E7",X"50",X"FF",X"07",X"8E",X"BD",X"11",X"22",X"21",X"1D",X"EE",X"E5",X"FF",X"07",X"EE",X"EE", + X"EE",X"EE",X"EE",X"EE",X"EE",X"87",X"FF",X"05",X"EE",X"E7",X"77",X"BA",X"B7",X"77",X"77",X"E7", + X"FF",X"0A",X"C7",X"77",X"77",X"77",X"77",X"77",X"77",X"7C",X"FF",X"0A",X"BC",X"77",X"CA",X"AA", + X"AA",X"AC",X"77",X"CB",X"FF",X"00",X"AB",X"7C",X"AB",X"BB",X"BA",X"AA",X"C7",X"C0",X"FF",X"00", + X"AA",X"BC",X"AB",X"BB",X"BB",X"AA",X"CC",X"C0",X"FF",X"00",X"0A",X"BA",X"AB",X"BB",X"BB",X"AA", + X"AC",X"20",X"FF",X"00",X"03",X"AA",X"BB",X"BB",X"BB",X"B4",X"AA",X"20",X"FF",X"00",X"03",X"A4", + X"4B",X"BB",X"B4",X"44",X"A2",X"40",X"FF",X"00",X"05",X"44",X"44",X"44",X"44",X"44",X"45",X"50", + X"FF",X"00",X"22",X"26",X"54",X"44",X"45",X"55",X"66",X"70",X"FF",X"05",X"55",X"57",X"76",X"55", + X"56",X"67",X"7E",X"E0",X"FF",X"02",X"22",X"2E",X"77",X"65",X"66",X"7E",X"EE",X"E0",X"FF",X"00", + X"45",X"5E",X"77",X"65",X"67",X"EE",X"E1",X"E0",X"FF",X"00",X"22",X"2E",X"76",X"55",X"54",X"24", + X"24",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"0D",X"20",X"00",X"FF",X"00",X"00",X"03",X"3E",X"EE",X"32",X"00",X"00",X"FF", + X"00",X"00",X"BC",X"E1",X"11",X"EC",X"B0",X"00",X"FF",X"00",X"0E",X"E7",X"1D",X"DD",X"17",X"CC", + X"00",X"FF",X"00",X"E8",X"E7",X"77",X"77",X"77",X"EC",X"C0",X"FF",X"00",X"EE",X"77",X"EE",X"EE", + X"77",X"EE",X"E0",X"FF",X"00",X"77",X"77",X"CB",X"BA",X"C7",X"77",X"E0",X"FF",X"05",X"77",X"7C", + X"55",X"55",X"AC",X"77",X"7C",X"FF",X"07",X"77",X"7C",X"56",X"55",X"3C",X"C7",X"CC",X"FF",X"0C", + X"77",X"7C",X"56",X"55",X"AB",X"BC",X"CC",X"FF",X"0C",X"77",X"CC",X"56",X"55",X"AA",X"BB",X"CC", + X"FF",X"0C",X"CC",X"C5",X"66",X"55",X"AA",X"BB",X"BB",X"FF",X"0B",X"BB",X"B5",X"66",X"55",X"AA", + X"BB",X"BB",X"FF",X"0B",X"BB",X"55",X"66",X"55",X"5A",X"AB",X"BB",X"FF",X"03",X"BB",X"56",X"66", + X"55",X"5A",X"AB",X"BB",X"FF",X"02",X"A5",X"56",X"66",X"55",X"5A",X"3A",X"BB",X"FF",X"00",X"2A", + X"5C",X"66",X"55",X"4A",X"AA",X"BB",X"FF",X"00",X"23",X"AA",X"C6",X"54",X"AA",X"AA",X"AB",X"FF", + X"00",X"2A",X"AA",X"A6",X"4A",X"AA",X"AA",X"A3",X"FF",X"04",X"64",X"43",X"AA",X"AA",X"44",X"44", + X"5A",X"FF",X"02",X"26",X"65",X"33",X"44",X"55",X"56",X"67",X"FF",X"35",X"5E",X"77",X"63",X"35", + X"66",X"77",X"EE",X"FF",X"22",X"2E",X"E7",X"76",X"56",X"67",X"EE",X"EE",X"FF",X"04",X"5E",X"E7", + X"76",X"56",X"7E",X"EE",X"1E",X"FF",X"02",X"2E",X"E7",X"65",X"55",X"42",X"42",X"42",X"FF",X"00", + X"00",X"00",X"00",X"00",X"D2",X"42",X"D2",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"D2",X"00", + X"FF",X"00",X"00",X"00",X"05",X"65",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"56",X"66",X"50", + X"00",X"00",X"FF",X"00",X"00",X"66",X"66",X"66",X"66",X"60",X"00",X"FF",X"00",X"06",X"EE",X"66", + X"76",X"6E",X"86",X"00",X"FF",X"00",X"6E",X"8E",X"7E",X"E7",X"7E",X"8E",X"60",X"FF",X"00",X"6E", + X"EE",X"CE",X"EE",X"7E",X"EE",X"60",X"FF",X"00",X"77",X"77",X"CC",X"CC",X"7C",X"77",X"60",X"FF", + X"00",X"76",X"7C",X"CB",X"54",X"CC",X"76",X"70",X"FF",X"0C",X"77",X"CC",X"C6",X"45",X"4C",X"C7", + X"7C",X"FF",X"0C",X"CC",X"CC",X"C6",X"45",X"4C",X"CC",X"CC",X"FF",X"0C",X"CC",X"CC",X"66",X"45", + X"4B",X"BC",X"CC",X"FF",X"0C",X"CC",X"CC",X"66",X"45",X"A4",X"BB",X"CC",X"FF",X"0C",X"CC",X"CC", + X"66",X"45",X"A4",X"BB",X"BB",X"FF",X"0B",X"BB",X"BC",X"66",X"45",X"A4",X"BB",X"B3",X"FF",X"03", + X"BB",X"C6",X"66",X"44",X"5A",X"43",X"32",X"FF",X"02",X"3B",X"66",X"66",X"44",X"5A",X"43",X"22", + X"FF",X"02",X"3C",X"66",X"66",X"45",X"55",X"34",X"21",X"FF",X"00",X"24",X"CC",X"66",X"44",X"55", + X"44",X"43",X"FF",X"00",X"14",X"44",X"C6",X"45",X"44",X"45",X"55",X"FF",X"00",X"26",X"55",X"4C", + X"44",X"44",X"56",X"66",X"FF",X"00",X"76",X"66",X"54",X"44",X"55",X"67",X"77",X"FF",X"04",X"EE", + X"75",X"64",X"45",X"56",X"77",X"EE",X"FF",X"42",X"EE",X"E7",X"65",X"55",X"67",X"EE",X"EE",X"FF", + X"24",X"1E",X"E7",X"76",X"56",X"7E",X"EE",X"1E",X"FF",X"32",X"5E",X"EE",X"76",X"57",X"EE",X"EE", + X"EE",X"FF",X"25",X"52",X"EE",X"75",X"57",X"42",X"42",X"42",X"FF",X"04",X"20",X"00",X"00",X"00", + X"D2",X"42",X"D2",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"D2",X"00",X"FF",X"00",X"00",X"00", + X"55",X"50",X"55",X"50",X"00",X"00",X"FF",X"00",X"00",X"05",X"55",X"53",X"45",X"53",X"00",X"00", + X"FF",X"00",X"00",X"04",X"DD",X"52",X"58",X"82",X"00",X"00",X"FF",X"00",X"00",X"44",X"DD",X"D2", + X"88",X"82",X"20",X"00",X"FF",X"00",X"00",X"43",X"38",X"13",X"18",X"83",X"20",X"00",X"FF",X"00", + X"03",X"44",X"55",X"53",X"45",X"55",X"32",X"00",X"FF",X"00",X"35",X"54",X"32",X"25",X"52",X"23", + X"44",X"30",X"FF",X"03",X"65",X"56",X"EE",X"62",X"6E",X"E5",X"45",X"54",X"FF",X"06",X"76",X"EE", + X"11",X"E7",X"E1",X"1E",X"35",X"76",X"FF",X"05",X"6B",X"B7",X"31",X"77",X"71",X"37",X"CC",X"B5", + X"FF",X"04",X"BC",X"77",X"77",X"77",X"77",X"77",X"7C",X"CB",X"FF",X"0B",X"77",X"CE",X"EE",X"EE", + X"EE",X"EE",X"C7",X"76",X"FF",X"06",X"8E",X"6D",X"88",X"D8",X"88",X"D8",X"E6",X"8E",X"FF",X"06", + X"EE",X"61",X"11",X"22",X"21",X"11",X"D6",X"76",X"FF",X"0B",X"77",X"C8",X"D2",X"99",X"92",X"D8", + X"EC",X"BA",X"FF",X"00",X"BB",X"7E",X"E8",X"8D",X"88",X"EE",X"CB",X"A0",X"FF",X"00",X"2A",X"BB", + X"BE",X"EE",X"EE",X"CB",X"AA",X"20",X"FF",X"04",X"42",X"AA",X"BB",X"77",X"7B",X"BA",X"A2",X"30", + X"FF",X"02",X"22",X"22",X"AA",X"AA",X"AA",X"22",X"44",X"40",X"FF",X"00",X"46",X"65",X"55",X"43", + X"45",X"55",X"66",X"50",X"FF",X"00",X"22",X"26",X"66",X"55",X"56",X"67",X"76",X"60",X"FF",X"00", + X"0E",X"E7",X"76",X"65",X"66",X"7E",X"EE",X"E0",X"FF",X"00",X"01",X"EE",X"77",X"65",X"67",X"EE", + X"E1",X"E0",X"FF",X"00",X"0E",X"E7",X"76",X"55",X"54",X"24",X"24",X"20",X"FF",X"00",X"00",X"00", + X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"0D",X"20",X"00", + X"FF",X"00",X"00",X"00",X"55",X"50",X"55",X"50",X"00",X"00",X"FF",X"00",X"00",X"05",X"55",X"53", + X"45",X"53",X"00",X"00",X"FF",X"00",X"00",X"04",X"DD",X"52",X"5D",X"D2",X"00",X"00",X"FF",X"00", + X"00",X"44",X"DD",X"D2",X"DD",X"82",X"20",X"00",X"FF",X"00",X"00",X"43",X"38",X"13",X"18",X"83", + X"20",X"00",X"FF",X"00",X"03",X"44",X"55",X"53",X"45",X"55",X"32",X"00",X"FF",X"00",X"35",X"54", + X"32",X"25",X"52",X"23",X"44",X"30",X"FF",X"03",X"65",X"56",X"77",X"62",X"67",X"75",X"45",X"54", + X"FF",X"06",X"76",X"7E",X"11",X"E7",X"E1",X"17",X"35",X"76",X"FF",X"05",X"6B",X"B7",X"31",X"77", + X"71",X"37",X"BB",X"B5",X"FF",X"04",X"BC",X"77",X"77",X"77",X"77",X"77",X"77",X"CB",X"FF",X"0A", + X"C7",X"EE",X"77",X"77",X"77",X"7E",X"E7",X"7C",X"FF",X"0B",X"CE",X"88",X"75",X"D8",X"D5",X"78", + X"8E",X"7B",X"FF",X"0B",X"CE",X"8E",X"71",X"12",X"11",X"78",X"EE",X"7A",X"FF",X"0A",X"C7",X"EE", + X"71",X"29",X"21",X"7E",X"E7",X"CA",X"FF",X"00",X"BB",X"77",X"75",X"88",X"D5",X"77",X"CC",X"A0", + X"FF",X"00",X"2A",X"BB",X"B7",X"55",X"57",X"CB",X"AA",X"20",X"FF",X"05",X"76",X"AA",X"BB",X"77", + X"7B",X"BA",X"A2",X"30",X"FF",X"02",X"22",X"25",X"AA",X"AA",X"AA",X"22",X"44",X"40",X"FF",X"00", + X"76",X"65",X"55",X"43",X"45",X"55",X"66",X"50",X"FF",X"00",X"22",X"26",X"66",X"55",X"56",X"67", + X"76",X"60",X"FF",X"00",X"07",X"77",X"76",X"65",X"66",X"7E",X"EE",X"E0",X"FF",X"00",X"01",X"EE", + X"77",X"65",X"67",X"EE",X"E1",X"E0",X"FF",X"00",X"0E",X"EE",X"76",X"55",X"54",X"24",X"24",X"20", + X"FF",X"00",X"00",X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00",X"00", + X"00",X"0D",X"20",X"00",X"FF",X"00",X"00",X"00",X"03",X"33",X"34",X"00",X"00",X"00",X"FF",X"00", + X"00",X"04",X"43",X"44",X"43",X"43",X"00",X"00",X"FF",X"00",X"00",X"45",X"55",X"34",X"36",X"54", + X"30",X"00",X"FF",X"00",X"00",X"45",X"DD",X"53",X"5D",X"84",X"30",X"00",X"FF",X"00",X"04",X"55", + X"DD",X"D3",X"D8",X"85",X"43",X"00",X"FF",X"00",X"04",X"57",X"58",X"13",X"18",X"57",X"74",X"00", + X"FF",X"00",X"44",X"47",X"55",X"53",X"55",X"67",X"44",X"30",X"FF",X"00",X"45",X"64",X"22",X"33", + X"32",X"24",X"44",X"30",X"FF",X"04",X"66",X"56",X"65",X"32",X"35",X"65",X"55",X"43",X"FF",X"04", + X"44",X"44",X"44",X"32",X"34",X"45",X"55",X"43",X"FF",X"03",X"4B",X"BB",X"EE",X"32",X"3E",X"E5", + X"55",X"33",X"FF",X"04",X"BC",X"CE",X"11",X"E2",X"E1",X"1E",X"AA",X"3A",X"FF",X"0B",X"C7",X"77", + X"A1",X"EB",X"E1",X"AE",X"BC",X"BA",X"FF",X"0B",X"7E",X"E7",X"77",X"77",X"77",X"77",X"EE",X"CB", + X"FF",X"03",X"E8",X"EE",X"E7",X"CC",X"77",X"7E",X"E8",X"EC",X"FF",X"0B",X"3E",X"8E",X"6C",X"77", + X"7C",X"7E",X"8E",X"EC",X"FF",X"00",X"3C",X"C6",X"57",X"E1",X"E7",X"C5",X"CC",X"C0",X"FF",X"04", + X"63",X"3C",X"CE",X"11",X"1E",X"CC",X"C3",X"30",X"FF",X"02",X"22",X"43",X"AC",X"E1",X"EC",X"33", + X"33",X"30",X"FF",X"00",X"44",X"65",X"55",X"43",X"43",X"33",X"33",X"30",X"FF",X"00",X"22",X"76", + X"66",X"55",X"56",X"67",X"76",X"60",X"FF",X"00",X"0E",X"E7",X"76",X"65",X"66",X"7E",X"EE",X"E0", + X"FF",X"00",X"01",X"EE",X"77",X"65",X"67",X"EE",X"E1",X"E0",X"FF",X"00",X"0E",X"E7",X"76",X"55", + X"54",X"24",X"24",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"0D",X"24",X"2D",X"20",X"FF",X"00", + X"00",X"00",X"00",X"00",X"00",X"0D",X"20",X"00",X"FF",X"00",X"00",X"00",X"35",X"32",X"34",X"30", + X"00",X"00",X"FF",X"00",X"00",X"03",X"55",X"53",X"44",X"43",X"00",X"00",X"FF",X"00",X"00",X"33", + X"44",X"33",X"34",X"43",X"30",X"00",X"FF",X"00",X"00",X"34",X"55",X"43",X"45",X"54",X"30",X"00", + X"FF",X"00",X"04",X"45",X"55",X"44",X"57",X"75",X"43",X"00",X"FF",X"00",X"03",X"56",X"66",X"52", + X"7E",X"77",X"43",X"00",X"FF",X"00",X"04",X"56",X"E7",X"63",X"55",X"46",X"44",X"00",X"FF",X"00", + X"34",X"66",X"DD",X"D4",X"58",X"86",X"54",X"30",X"FF",X"00",X"34",X"62",X"28",X"14",X"18",X"22", + X"74",X"40",X"FF",X"00",X"44",X"67",X"44",X"44",X"44",X"47",X"55",X"40",X"FF",X"00",X"46",X"66", + X"64",X"44",X"44",X"66",X"66",X"43",X"FF",X"00",X"36",X"63",X"33",X"23",X"23",X"33",X"66",X"43", + X"FF",X"00",X"44",X"44",X"44",X"32",X"34",X"46",X"66",X"44",X"FF",X"03",X"4A",X"AA",X"77",X"32", + X"37",X"7A",X"AA",X"AA",X"FF",X"04",X"BC",X"C7",X"E7",X"72",X"77",X"E7",X"BB",X"B3",X"FF",X"0B", + X"C7",X"77",X"11",X"7B",X"71",X"17",X"CC",X"B3",X"FF",X"0C",X"77",X"77",X"A2",X"77",X"72",X"A7", + X"77",X"77",X"FF",X"0C",X"77",X"77",X"E7",X"77",X"77",X"77",X"77",X"77",X"FF",X"0C",X"77",X"7E", + X"E7",X"CC",X"77",X"7E",X"77",X"77",X"FF",X"0B",X"C7",X"EE",X"EC",X"77",X"7C",X"CE",X"E7",X"70", + X"FF",X"00",X"43",X"CC",X"BE",X"EE",X"EE",X"CC",X"B3",X"30",X"FF",X"00",X"04",X"43",X"A1",X"EE", + X"E1",X"33",X"33",X"30",X"FF",X"00",X"0E",X"65",X"55",X"11",X"14",X"24",X"24",X"20",X"FF",X"00", + X"00",X"00",X"00",X"00",X"0D",X"26",X"2D",X"20",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"0D", + X"20",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"02",X"33",X"30",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"02",X"34",X"44",X"43",X"20",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"02",X"34",X"46",X"66",X"54",X"33",X"20",X"00",X"00",X"FF",X"00",X"00",X"00",X"23",X"46",X"66", + X"66",X"65",X"44",X"32",X"00",X"00",X"FF",X"00",X"00",X"02",X"34",X"66",X"88",X"76",X"55",X"55", + X"44",X"20",X"00",X"FF",X"00",X"00",X"23",X"45",X"68",X"87",X"65",X"55",X"55",X"54",X"42",X"00", + X"FF",X"00",X"00",X"24",X"55",X"77",X"76",X"55",X"55",X"55",X"55",X"43",X"00",X"FF",X"00",X"02", + X"34",X"56",X"66",X"55",X"55",X"55",X"54",X"44",X"43",X"20",X"FF",X"00",X"02",X"34",X"66",X"66", + X"55",X"55",X"54",X"44",X"44",X"44",X"30",X"FF",X"00",X"03",X"46",X"68",X"86",X"65",X"55",X"44", + X"44",X"44",X"44",X"30",X"FF",X"00",X"23",X"46",X"88",X"66",X"55",X"54",X"44",X"43",X"33",X"33", + X"32",X"FF",X"00",X"23",X"56",X"88",X"66",X"55",X"44",X"44",X"33",X"33",X"23",X"32",X"FF",X"00", + X"23",X"58",X"86",X"65",X"55",X"44",X"43",X"33",X"22",X"23",X"22",X"FF",X"00",X"23",X"58",X"87", + X"65",X"54",X"44",X"43",X"32",X"22",X"22",X"22",X"FF",X"00",X"23",X"58",X"87",X"65",X"54",X"44", + X"33",X"32",X"22",X"22",X"22",X"FF",X"00",X"23",X"58",X"87",X"65",X"54",X"44",X"33",X"32",X"22", + X"22",X"22",X"FF",X"00",X"23",X"56",X"87",X"65",X"54",X"44",X"33",X"32",X"22",X"24",X"22",X"FF", + X"00",X"03",X"55",X"87",X"65",X"54",X"44",X"43",X"33",X"22",X"24",X"20",X"FF",X"00",X"02",X"35", + X"67",X"66",X"55",X"44",X"43",X"33",X"32",X"42",X"20",X"FF",X"00",X"02",X"35",X"67",X"76",X"55", + X"44",X"44",X"43",X"33",X"43",X"10",X"FF",X"00",X"00",X"34",X"56",X"77",X"65",X"54",X"44",X"44", + X"44",X"32",X"00",X"FF",X"00",X"00",X"13",X"45",X"67",X"76",X"55",X"44",X"44",X"44",X"31",X"00", + X"FF",X"00",X"00",X"03",X"44",X"56",X"76",X"55",X"55",X"44",X"43",X"20",X"00",X"FF",X"00",X"00", + X"01",X"34",X"45",X"55",X"55",X"55",X"55",X"53",X"10",X"00",X"FF",X"00",X"00",X"00",X"13",X"44", + X"45",X"55",X"55",X"55",X"32",X"00",X"00",X"FF",X"00",X"00",X"00",X"01",X"33",X"44",X"44",X"44", + X"33",X"20",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"12",X"33",X"33",X"33",X"21",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"13",X"33",X"32",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"01",X"22",X"10",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"11",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"11", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"01",X"64",X"10",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00", + X"09",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"34",X"60", + X"00",X"00",X"54",X"30",X"00",X"00",X"00",X"FF",X"00",X"00",X"22",X"56",X"00",X"00",X"00",X"65", + X"44",X"32",X"00",X"00",X"FF",X"00",X"02",X"45",X"68",X"80",X"00",X"00",X"15",X"55",X"44",X"20", + X"00",X"FF",X"00",X"34",X"56",X"88",X"00",X"60",X"00",X"01",X"55",X"54",X"42",X"00",X"FF",X"02", + X"45",X"57",X"70",X"08",X"87",X"10",X"00",X"55",X"55",X"43",X"00",X"FF",X"03",X"45",X"66",X"00", + X"88",X"75",X"50",X"00",X"14",X"44",X"43",X"20",X"FF",X"23",X"46",X"66",X"01",X"07",X"55",X"50", + X"00",X"04",X"44",X"44",X"30",X"FF",X"34",X"06",X"80",X"06",X"65",X"51",X"00",X"00",X"01",X"44", + X"44",X"30",X"FF",X"34",X"68",X"06",X"66",X"65",X"11",X"00",X"00",X"00",X"13",X"03",X"32",X"FF", + X"30",X"00",X"66",X"88",X"61",X"10",X"50",X"00",X"00",X"01",X"20",X"32",X"FF",X"30",X"00",X"08", + X"86",X"65",X"55",X"00",X"00",X"00",X"00",X"10",X"22",X"FF",X"00",X"05",X"68",X"86",X"65",X"00", + X"04",X"00",X"00",X"00",X"01",X"22",X"FF",X"00",X"05",X"88",X"06",X"55",X"10",X"40",X"30",X"00", + X"00",X"00",X"12",X"FF",X"00",X"05",X"88",X"06",X"55",X"41",X"44",X"31",X"02",X"20",X"00",X"12", + X"FF",X"00",X"05",X"88",X"70",X"55",X"44",X"43",X"10",X"02",X"22",X"00",X"12",X"FF",X"00",X"00", + X"80",X"00",X"05",X"44",X"43",X"00",X"12",X"20",X"00",X"20",X"FF",X"00",X"00",X"68",X"06",X"00", + X"40",X"03",X"11",X"22",X"20",X"00",X"00",X"FF",X"00",X"00",X"08",X"06",X"00",X"00",X"04",X"33", + X"32",X"00",X"00",X"42",X"FF",X"00",X"00",X"06",X"70",X"65",X"54",X"44",X"33",X"30",X"00",X"00", + X"43",X"FF",X"20",X"00",X"00",X"70",X"06",X"64",X"44",X"44",X"00",X"00",X"04",X"32",X"FF",X"21", + X"60",X"00",X"67",X"06",X"65",X"00",X"00",X"00",X"00",X"44",X"31",X"FF",X"35",X"67",X"00",X"06", + X"00",X"05",X"11",X"10",X"00",X"04",X"43",X"20",X"FF",X"22",X"56",X"00",X"00",X"60",X"00",X"00", + X"00",X"00",X"00",X"53",X"10",X"FF",X"12",X"40",X"67",X"00",X"55",X"50",X"05",X"50",X"05",X"55", + X"32",X"00",X"FF",X"03",X"44",X"56",X"00",X"04",X"50",X"00",X"00",X"44",X"33",X"20",X"00",X"FF", + X"01",X"34",X"45",X"05",X"50",X"00",X"00",X"03",X"33",X"21",X"00",X"00",X"FF",X"00",X"13",X"44", + X"40",X"50",X"00",X"00",X"00",X"32",X"00",X"00",X"00",X"FF",X"00",X"01",X"33",X"40",X"00",X"00", + X"00",X"22",X"10",X"00",X"00",X"00",X"FF",X"00",X"00",X"12",X"33",X"00",X"00",X"00",X"01",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"13",X"30",X"90",X"00",X"01",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"01",X"20",X"09",X"00",X"00",X"10",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00", + X"09",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"00",X"90",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"09",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"09", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"09",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"08",X"AA",X"AA",X"AA",X"AA",X"AA",X"A8",X"00",X"00",X"FF",X"00", + X"0A",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"FF",X"00",X"AA",X"A4",X"44",X"44", + X"44",X"44",X"44",X"4A",X"AA",X"A0",X"FF",X"0A",X"AE",X"43",X"33",X"32",X"22",X"22",X"22",X"23", + X"6A",X"A8",X"FF",X"0A",X"A4",X"33",X"22",X"11",X"11",X"11",X"11",X"12",X"36",X"AA",X"FF",X"8A", + X"94",X"32",X"22",X"22",X"22",X"22",X"22",X"11",X"26",X"AA",X"FF",X"AA",X"54",X"32",X"22",X"22", + X"22",X"22",X"22",X"22",X"26",X"AA",X"FF",X"AA",X"54",X"32",X"22",X"34",X"44",X"44",X"44",X"44", + X"6A",X"A8",X"FF",X"AA",X"54",X"32",X"22",X"45",X"55",X"55",X"55",X"54",X"AA",X"A0",X"FF",X"AA", + X"54",X"32",X"22",X"6A",X"AA",X"AA",X"AA",X"AA",X"AA",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A", + X"AA",X"AA",X"AA",X"A8",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00", + X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"00",X"FF",X"AA", + X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A", + X"A0",X"00",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00", + X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"AA",X"AA",X"80",X"00",X"00",X"00",X"FF",X"AA", + X"54",X"32",X"12",X"66",X"AA",X"AA",X"AA",X"A0",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"34", + X"44",X"44",X"6A",X"AA",X"00",X"00",X"FF",X"AA",X"54",X"32",X"21",X"22",X"22",X"22",X"36",X"AA", + X"80",X"00",X"FF",X"AA",X"54",X"32",X"22",X"11",X"11",X"11",X"13",X"6A",X"A0",X"00",X"FF",X"AA", + X"54",X"32",X"22",X"22",X"22",X"22",X"12",X"6A",X"A0",X"00",X"FF",X"AA",X"54",X"32",X"22",X"22", + X"22",X"22",X"22",X"6A",X"A0",X"00",X"FF",X"AA",X"54",X"32",X"22",X"23",X"33",X"33",X"46",X"AA", + X"80",X"00",X"FF",X"AA",X"54",X"32",X"22",X"35",X"55",X"55",X"4A",X"AA",X"00",X"00",X"FF",X"AA", + X"54",X"32",X"12",X"44",X"AA",X"AA",X"AA",X"A0",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A", + X"AA",X"AA",X"80",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00", + X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"00",X"FF",X"AA", + X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A", + X"A0",X"00",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00", + X"00",X"00",X"FF",X"AA",X"94",X"31",X"22",X"6A",X"A0",X"00",X"00",X"00",X"00",X"00",X"FF",X"8A", + X"E5",X"43",X"34",X"AA",X"80",X"00",X"00",X"00",X"00",X"00",X"FF",X"0A",X"AA",X"55",X"5A",X"AA", + X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"8A",X"AA",X"AA",X"80",X"00",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"08",X"AA",X"A8",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"08",X"AA", + X"AA",X"AA",X"A8",X"00",X"00",X"00",X"00",X"00",X"FF",X"0A",X"AE",X"44",X"44",X"AA",X"00",X"00", + X"00",X"00",X"00",X"FF",X"8A",X"94",X"32",X"23",X"6A",X"80",X"00",X"00",X"00",X"00",X"FF",X"AA", + X"54",X"21",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"31",X"12",X"6A",X"A0", + X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF", + X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A", + X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00", + X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12", + X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00", + X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32", + X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00", + X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54", + X"32",X"12",X"6A",X"A0",X"00",X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A8",X"00", + X"00",X"00",X"00",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"AA",X"AA",X"A8",X"00",X"00",X"FF",X"AA", + X"54",X"32",X"21",X"26",X"AA",X"AA",X"AA",X"A0",X"00",X"FF",X"AA",X"54",X"32",X"21",X"22",X"64", + X"44",X"6A",X"AA",X"00",X"FF",X"AA",X"54",X"32",X"22",X"11",X"12",X"22",X"26",X"AA",X"80",X"FF", + X"AA",X"54",X"33",X"22",X"22",X"21",X"11",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"33",X"32",X"22", + X"22",X"22",X"21",X"6A",X"A0",X"FF",X"AA",X"E5",X"33",X"33",X"33",X"33",X"32",X"21",X"6A",X"A0", + X"FF",X"8A",X"A9",X"54",X"44",X"44",X"44",X"33",X"16",X"AA",X"80",X"FF",X"0A",X"AA",X"E5",X"55", + X"55",X"55",X"46",X"6A",X"AA",X"00",X"FF",X"08",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"AA",X"A0", + X"00",X"FF",X"00",X"08",X"AA",X"AA",X"AA",X"AA",X"AA",X"A8",X"00",X"00",X"FF",X"00",X"08",X"AA", + X"A8",X"00",X"00",X"FF",X"08",X"AA",X"AA",X"AA",X"A8",X"00",X"FF",X"0A",X"A9",X"E4",X"46",X"AA", + X"00",X"FF",X"8A",X"5E",X"32",X"23",X"6A",X"80",X"FF",X"AA",X"54",X"31",X"12",X"6A",X"A0",X"FF", + X"AA",X"54",X"31",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54", + X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12", + X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0", + X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA", + X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32", + X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"12",X"6A", + X"A0",X"FF",X"AA",X"54",X"32",X"22",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"22",X"6A",X"A0",X"FF", + X"AA",X"54",X"32",X"22",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"22",X"6A",X"A0",X"FF",X"AA",X"54", + X"32",X"22",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"22",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"22", + X"6A",X"A0",X"FF",X"8A",X"A5",X"43",X"34",X"AA",X"80",X"FF",X"0A",X"AA",X"55",X"44",X"AA",X"00", + X"FF",X"08",X"AA",X"AA",X"AA",X"A8",X"00",X"FF",X"00",X"08",X"33",X"38",X"00",X"00",X"FF",X"00", + X"00",X"00",X"08",X"AA",X"AA",X"AA",X"A8",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"0A",X"AA", + X"AA",X"AA",X"AA",X"AA",X"A8",X"00",X"00",X"00",X"FF",X"00",X"00",X"AA",X"A6",X"44",X"44",X"44", + X"4A",X"AA",X"A0",X"00",X"00",X"FF",X"00",X"0A",X"AE",X"59",X"93",X"33",X"33",X"66",X"6A",X"A8", + X"00",X"00",X"FF",X"00",X"AA",X"E5",X"43",X"33",X"22",X"11",X"12",X"26",X"AA",X"00",X"00",X"FF", + X"00",X"AA",X"54",X"33",X"22",X"22",X"22",X"21",X"22",X"6A",X"A0",X"00",X"FF",X"0A",X"AE",X"54", + X"32",X"22",X"22",X"22",X"22",X"12",X"26",X"A8",X"00",X"FF",X"0A",X"A5",X"43",X"32",X"22",X"44", + X"44",X"32",X"21",X"26",X"AA",X"00",X"FF",X"8A",X"85",X"43",X"22",X"24",X"AA",X"A5",X"43",X"21", + X"22",X"6A",X"A0",X"FF",X"8A",X"95",X"33",X"22",X"4A",X"AA",X"AA",X"54",X"32",X"12",X"6A",X"A0", + X"FF",X"AA",X"54",X"32",X"22",X"6A",X"80",X"8A",X"59",X"44",X"44",X"6A",X"A0",X"FF",X"AA",X"54", + X"32",X"23",X"AA",X"00",X"0A",X"A5",X"55",X"55",X"AA",X"80",X"FF",X"A9",X"54",X"32",X"26",X"AA", + X"00",X"08",X"AA",X"AA",X"AA",X"A8",X"00",X"FF",X"A5",X"54",X"22",X"26",X"A8",X"00",X"00",X"8A", + X"AA",X"A8",X"00",X"00",X"FF",X"A5",X"54",X"22",X"26",X"A8",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"FF",X"A5",X"54",X"22",X"26",X"A8",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"A5", + X"54",X"22",X"26",X"A8",X"00",X"00",X"0A",X"AA",X"AA",X"00",X"00",X"FF",X"A9",X"54",X"32",X"26", + X"AA",X"00",X"00",X"AA",X"AA",X"AA",X"A8",X"00",X"FF",X"AA",X"54",X"32",X"26",X"AA",X"00",X"0A", + X"A9",X"44",X"44",X"AA",X"80",X"FF",X"AA",X"54",X"32",X"24",X"AA",X"80",X"8A",X"54",X"33",X"33", + X"4A",X"A0",X"FF",X"8A",X"95",X"42",X"22",X"AA",X"AA",X"AA",X"54",X"32",X"12",X"6A",X"A0",X"FF", + X"8A",X"85",X"43",X"22",X"4A",X"AA",X"A5",X"43",X"21",X"22",X"6A",X"80",X"FF",X"0A",X"A5",X"43", + X"22",X"23",X"44",X"43",X"32",X"21",X"26",X"AA",X"00",X"FF",X"0A",X"AE",X"54",X"32",X"22",X"23", + X"32",X"22",X"12",X"6A",X"A8",X"00",X"FF",X"00",X"AA",X"54",X"33",X"22",X"22",X"22",X"22",X"23", + X"6A",X"A0",X"00",X"FF",X"00",X"AA",X"E5",X"44",X"33",X"22",X"22",X"22",X"36",X"AA",X"00",X"00", + X"FF",X"00",X"0A",X"AE",X"55",X"44",X"44",X"44",X"36",X"6A",X"A8",X"00",X"00",X"FF",X"00",X"00", + X"AA",X"AE",X"55",X"55",X"5A",X"6A",X"AA",X"A0",X"00",X"00",X"FF",X"00",X"00",X"08",X"AA",X"AA", + X"AA",X"AA",X"AA",X"A8",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"08",X"AA",X"AA",X"AA",X"A8", + X"00",X"00",X"00",X"00",X"FF",X"00",X"08",X"AA",X"80",X"00",X"00",X"00",X"08",X"AA",X"AA",X"00", + X"FF",X"08",X"AA",X"AA",X"AA",X"80",X"00",X"00",X"AA",X"AA",X"AA",X"A0",X"FF",X"0A",X"A5",X"44", + X"9A",X"A0",X"00",X"0A",X"A5",X"44",X"AA",X"A0",X"FF",X"AA",X"59",X"31",X"3A",X"A8",X"00",X"AA", + X"54",X"33",X"66",X"AA",X"FF",X"AA",X"54",X"32",X"16",X"AA",X"0A",X"A5",X"43",X"31",X"26",X"AA", + X"FF",X"AA",X"54",X"32",X"16",X"AA",X"AA",X"54",X"32",X"21",X"26",X"A8",X"FF",X"AA",X"54",X"32", + X"16",X"AA",X"A5",X"43",X"22",X"21",X"6A",X"A0",X"FF",X"AA",X"54",X"32",X"16",X"AA",X"54",X"32", + X"22",X"12",X"6A",X"80",X"FF",X"AA",X"54",X"32",X"16",X"A5",X"43",X"22",X"21",X"26",X"AA",X"00", + X"FF",X"AA",X"54",X"32",X"16",X"54",X"32",X"22",X"12",X"6A",X"A0",X"00",X"FF",X"AA",X"54",X"32", + X"13",X"43",X"22",X"21",X"26",X"AA",X"00",X"00",X"FF",X"AA",X"54",X"32",X"22",X"32",X"22",X"22", + X"6A",X"A0",X"00",X"00",X"FF",X"AA",X"54",X"32",X"22",X"22",X"22",X"26",X"6A",X"00",X"00",X"00", + X"FF",X"AA",X"54",X"32",X"22",X"22",X"22",X"22",X"6A",X"80",X"00",X"00",X"FF",X"AA",X"54",X"32", + X"22",X"22",X"22",X"22",X"6A",X"A0",X"00",X"00",X"FF",X"AA",X"54",X"32",X"22",X"22",X"22",X"22", + X"26",X"A0",X"00",X"00",X"FF",X"AA",X"54",X"32",X"22",X"26",X"42",X"21",X"26",X"A8",X"00",X"00", + X"FF",X"AA",X"54",X"32",X"22",X"65",X"54",X"21",X"26",X"AA",X"00",X"00",X"FF",X"AA",X"54",X"32", + X"26",X"AA",X"54",X"22",X"12",X"6A",X"00",X"00",X"FF",X"AA",X"54",X"32",X"26",X"AA",X"A5",X"42", + X"12",X"6A",X"80",X"00",X"FF",X"AA",X"54",X"32",X"16",X"AA",X"A5",X"42",X"21",X"6A",X"A0",X"00", + X"FF",X"AA",X"54",X"32",X"16",X"AA",X"AA",X"52",X"21",X"26",X"A0",X"00",X"FF",X"AA",X"54",X"32", + X"16",X"AA",X"8A",X"54",X"21",X"26",X"AA",X"00",X"FF",X"AA",X"54",X"32",X"16",X"AA",X"0A",X"A5", + X"22",X"16",X"AA",X"80",X"FF",X"AA",X"54",X"32",X"16",X"AA",X"0A",X"A5",X"42",X"12",X"6A",X"A0", + X"FF",X"AA",X"59",X"31",X"26",X"AA",X"08",X"A5",X"42",X"22",X"6A",X"A0",X"FF",X"8A",X"E5",X"42", + X"46",X"A8",X"00",X"AA",X"54",X"23",X"9A",X"80",X"FF",X"0A",X"AE",X"55",X"9A",X"A0",X"00",X"AA", + X"E5",X"55",X"AA",X"00",X"FF",X"08",X"AA",X"AA",X"AA",X"80",X"00",X"0A",X"AA",X"AA",X"A8",X"00", + X"FF",X"00",X"08",X"AA",X"80",X"00",X"00",X"00",X"8A",X"AA",X"80",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"8A",X"AA",X"80",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"0A",X"AA",X"AA",X"AA",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"AA",X"A5", + X"44",X"AA",X"A0",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"AA",X"59",X"33",X"6A",X"A0", + X"FF",X"00",X"00",X"8A",X"AA",X"80",X"00",X"08",X"A5",X"43",X"12",X"36",X"A8",X"FF",X"00",X"0A", + X"AA",X"AA",X"AA",X"00",X"0A",X"A5",X"42",X"11",X"36",X"AA",X"FF",X"00",X"AA",X"A5",X"44",X"AA", + X"A0",X"0A",X"A5",X"42",X"21",X"36",X"AA",X"FF",X"00",X"AA",X"54",X"33",X"4A",X"A0",X"0A",X"A5", + X"42",X"21",X"36",X"AA",X"FF",X"0A",X"A5",X"43",X"21",X"36",X"A8",X"0A",X"A5",X"42",X"21",X"36", + X"AA",X"FF",X"0A",X"A5",X"43",X"11",X"36",X"AA",X"0A",X"A5",X"42",X"21",X"36",X"AA",X"FF",X"0A", + X"A5",X"43",X"11",X"36",X"AA",X"0A",X"A5",X"42",X"21",X"36",X"AA",X"FF",X"0A",X"A5",X"43",X"21", + X"36",X"AA",X"0A",X"A5",X"42",X"21",X"36",X"AA",X"FF",X"0A",X"A5",X"43",X"21",X"36",X"AA",X"0A", + X"A5",X"42",X"21",X"36",X"AA",X"FF",X"0A",X"A5",X"43",X"22",X"23",X"6A",X"AA",X"A5",X"42",X"22", + X"36",X"AA",X"FF",X"00",X"A5",X"43",X"22",X"23",X"6A",X"AA",X"A5",X"32",X"22",X"36",X"AA",X"FF", + X"00",X"AA",X"54",X"32",X"22",X"36",X"AA",X"A5",X"32",X"22",X"36",X"AA",X"FF",X"00",X"AA",X"54", + X"32",X"22",X"23",X"6A",X"A5",X"32",X"22",X"36",X"AA",X"FF",X"00",X"0A",X"A5",X"43",X"22",X"22", + X"36",X"95",X"32",X"22",X"36",X"AA",X"FF",X"00",X"0A",X"A5",X"43",X"22",X"22",X"23",X"33",X"22", + X"22",X"36",X"AA",X"FF",X"00",X"00",X"AA",X"54",X"32",X"22",X"22",X"22",X"22",X"22",X"36",X"AA", + X"FF",X"00",X"00",X"AA",X"54",X"43",X"32",X"22",X"22",X"22",X"22",X"E6",X"A8",X"FF",X"00",X"00", + X"0A",X"A5",X"54",X"44",X"32",X"22",X"22",X"23",X"6A",X"A0",X"FF",X"00",X"00",X"00",X"AA",X"A5", + X"59",X"43",X"22",X"22",X"23",X"6A",X"A0",X"FF",X"00",X"00",X"00",X"0A",X"AA",X"A5",X"54",X"32", + X"22",X"23",X"6A",X"80",X"FF",X"00",X"00",X"00",X"00",X"08",X"AA",X"54",X"32",X"22",X"23",X"6A", + X"00",X"FF",X"00",X"00",X"00",X"00",X"8E",X"AA",X"54",X"32",X"22",X"36",X"AA",X"00",X"FF",X"00", + X"00",X"AA",X"AA",X"AA",X"A5",X"43",X"22",X"12",X"36",X"A0",X"00",X"FF",X"00",X"AA",X"AA",X"44", + X"95",X"54",X"32",X"21",X"13",X"6A",X"A0",X"00",X"FF",X"0A",X"A4",X"44",X"44",X"44",X"43",X"22", + X"11",X"23",X"6A",X"00",X"00",X"FF",X"AA",X"93",X"33",X"33",X"33",X"32",X"21",X"11",X"36",X"AA", + X"00",X"00",X"FF",X"A5",X"32",X"22",X"22",X"22",X"22",X"11",X"14",X"6A",X"A0",X"00",X"00",X"FF", + X"A5",X"32",X"22",X"22",X"22",X"22",X"22",X"46",X"AA",X"80",X"00",X"00",X"FF",X"AA",X"54",X"44", + X"44",X"44",X"44",X"44",X"6A",X"A8",X"00",X"00",X"00",X"FF",X"0A",X"A5",X"55",X"55",X"55",X"9E", + X"66",X"A8",X"00",X"00",X"00",X"00",X"FF",X"0A",X"AA",X"AA",X"AA",X"AA",X"AA",X"A8",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"0A",X"AA",X"AA",X"AA",X"80",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"AA",X"A0",X"00", + X"FF",X"00",X"00",X"00",X"0A",X"A3",X"AA",X"00",X"FF",X"00",X"00",X"00",X"AA",X"EE",X"3A",X"A0", + X"FF",X"00",X"00",X"00",X"A3",X"A9",X"A5",X"A0",X"FF",X"00",X"00",X"00",X"A3",X"99",X"33",X"A0", + X"FF",X"00",X"00",X"44",X"AA",X"3E",X"3A",X"A0",X"FF",X"00",X"00",X"9E",X"4A",X"A4",X"AA",X"A0", + X"FF",X"00",X"00",X"35",X"DD",X"65",X"5D",X"A0",X"FF",X"0C",X"00",X"33",X"35",X"9E",X"45",X"50", + X"FF",X"00",X"0B",X"00",X"01",X"19",X"EB",X"55",X"FF",X"01",X"00",X"94",X"41",X"1B",X"3E",X"45", + X"FF",X"00",X"1C",X"33",X"44",X"BB",X"33",X"5C",X"FF",X"0B",X"12",X"B2",X"DD",X"DD",X"77",X"DD", + X"FF",X"0D",X"77",X"88",X"89",X"88",X"77",X"8A",X"FF",X"0D",X"77",X"88",X"89",X"88",X"77",X"8A", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"AA",X"A0",X"00", + X"FF",X"00",X"00",X"00",X"0A",X"A3",X"AA",X"00",X"FF",X"00",X"00",X"00",X"AA",X"EE",X"3A",X"A0", + X"FF",X"00",X"00",X"00",X"A3",X"A9",X"A5",X"A0",X"FF",X"00",X"00",X"00",X"A3",X"99",X"33",X"A0", + X"FF",X"00",X"04",X"40",X"AA",X"3E",X"3A",X"A0",X"FF",X"00",X"09",X"EE",X"AA",X"A4",X"AA",X"A0", + X"FF",X"00",X"04",X"30",X"DD",X"65",X"5D",X"A0",X"FF",X"00",X"00",X"33",X"35",X"9E",X"45",X"50", + X"FF",X"00",X"0B",X"00",X"01",X"19",X"EB",X"55",X"FF",X"00",X"00",X"94",X"41",X"1B",X"3E",X"45", + X"FF",X"00",X"2E",X"33",X"44",X"BB",X"33",X"5C",X"FF",X"0B",X"19",X"11",X"DD",X"DD",X"28",X"DD", + X"FF",X"0C",X"77",X"81",X"89",X"88",X"77",X"8A",X"FF",X"0D",X"77",X"88",X"89",X"88",X"77",X"8A", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"33",X"33",X"30",X"00",X"00", + X"FF",X"00",X"03",X"66",X"36",X"63",X"00",X"00",X"FF",X"00",X"36",X"61",X"31",X"66",X"30",X"00", + X"FF",X"00",X"36",X"61",X"31",X"66",X"30",X"00",X"FF",X"00",X"36",X"67",X"77",X"66",X"90",X"00", + X"FF",X"00",X"33",X"77",X"77",X"73",X"99",X"00",X"FF",X"00",X"93",X"35",X"55",X"33",X"99",X"00", + X"FF",X"00",X"93",X"A6",X"66",X"A3",X"99",X"00",X"FF",X"00",X"9A",X"66",X"66",X"6A",X"99",X"00", + X"FF",X"00",X"9A",X"66",X"66",X"66",X"99",X"90",X"FF",X"00",X"92",X"2D",X"66",X"6D",X"22",X"00", + X"FF",X"09",X"92",X"22",X"DD",X"D2",X"22",X"09",X"FF",X"00",X"00",X"22",X"22",X"22",X"99",X"99", + X"FF",X"00",X"00",X"02",X"22",X"20",X"09",X"90",X"FF",X"00",X"00",X"00",X"09",X"00",X"09",X"00", + X"FF",X"00",X"00",X"99",X"99",X"90",X"00",X"00",X"FF",X"00",X"00",X"33",X"33",X"30",X"00",X"00", + X"FF",X"00",X"03",X"66",X"36",X"63",X"00",X"00",X"FF",X"00",X"36",X"66",X"36",X"66",X"30",X"00", + X"FF",X"00",X"36",X"61",X"31",X"66",X"30",X"00",X"FF",X"00",X"36",X"67",X"77",X"66",X"90",X"00", + X"FF",X"00",X"33",X"77",X"77",X"73",X"99",X"00",X"FF",X"00",X"93",X"35",X"55",X"33",X"99",X"00", + X"FF",X"00",X"99",X"A6",X"66",X"A9",X"99",X"00",X"FF",X"00",X"99",X"66",X"66",X"69",X"99",X"00", + X"FF",X"00",X"99",X"96",X"66",X"69",X"99",X"00",X"FF",X"00",X"09",X"96",X"66",X"99",X"20",X"00", + X"FF",X"00",X"02",X"2A",X"DD",X"C2",X"20",X"00",X"FF",X"00",X"00",X"22",X"22",X"24",X"90",X"09", + X"FF",X"00",X"00",X"02",X"22",X"20",X"99",X"94",X"FF",X"00",X"00",X"00",X"94",X"00",X"99",X"00", + X"FF",X"00",X"00",X"09",X"99",X"00",X"00",X"00",X"FF",X"00",X"00",X"99",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"03",X"33",X"33",X"00",X"00",X"FF",X"00",X"00",X"36",X"63",X"66",X"30",X"00", + X"FF",X"00",X"03",X"66",X"63",X"66",X"63",X"00",X"FF",X"00",X"03",X"66",X"13",X"16",X"63",X"00", + X"FF",X"00",X"03",X"66",X"77",X"76",X"63",X"00",X"FF",X"00",X"43",X"37",X"77",X"77",X"39",X"40", + X"FF",X"00",X"89",X"33",X"55",X"53",X"39",X"40",X"FF",X"00",X"99",X"9A",X"66",X"6A",X"99",X"40", + X"FF",X"00",X"99",X"99",X"66",X"69",X"99",X"40",X"FF",X"00",X"09",X"99",X"96",X"99",X"99",X"00", + X"FF",X"00",X"02",X"99",X"99",X"99",X"93",X"00",X"FF",X"00",X"02",X"AD",X"DD",X"DC",X"33",X"00", + X"FF",X"00",X"00",X"22",X"CC",X"C2",X"20",X"00",X"FF",X"00",X"00",X"02",X"22",X"22",X"90",X"00", + X"FF",X"00",X"89",X"99",X"90",X"00",X"90",X"00",X"FF",X"00",X"00",X"00",X"00",X"09",X"99",X"90", + X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"03",X"33",X"33",X"00",X"00",X"FF",X"00",X"00",X"36",X"63",X"66",X"30",X"00", + X"FF",X"00",X"03",X"66",X"13",X"16",X"63",X"00",X"FF",X"00",X"03",X"66",X"13",X"16",X"63",X"00", + X"FF",X"00",X"03",X"66",X"77",X"76",X"63",X"00",X"FF",X"00",X"03",X"37",X"77",X"77",X"39",X"40", + X"FF",X"00",X"09",X"33",X"55",X"53",X"39",X"40",X"FF",X"00",X"89",X"9A",X"66",X"6A",X"99",X"40", + X"FF",X"00",X"89",X"96",X"66",X"66",X"99",X"40",X"FF",X"00",X"09",X"96",X"66",X"66",X"99",X"00", + X"FF",X"00",X"08",X"9D",X"66",X"6D",X"99",X"00",X"FF",X"00",X"00",X"8A",X"D6",X"DC",X"42",X"00", + X"FF",X"00",X"00",X"42",X"AA",X"A3",X"20",X"00",X"FF",X"00",X"99",X"99",X"22",X"22",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"89",X"00",X"00",X"FF",X"00",X"00",X"00",X"08",X"99",X"99",X"90", + X"FF",X"00",X"00",X"30",X"00",X"00",X"FF",X"00",X"06",X"56",X"00",X"00",X"FF",X"85",X"A5",X"85", + X"30",X"00",X"FF",X"65",X"32",X"21",X"23",X"80",X"FF",X"08",X"3A",X"A2",X"AA",X"38",X"FF",X"03", + X"8A",X"A8",X"AA",X"83",X"FF",X"08",X"8A",X"D8",X"DA",X"88",X"FF",X"0D",X"8A",X"D8",X"DA",X"8D", + X"FF",X"07",X"78",X"44",X"48",X"77",X"FF",X"07",X"E4",X"4D",X"44",X"7E",X"FF",X"00",X"83",X"44", + X"43",X"80",X"FF",X"00",X"00",X"03",X"00",X"00",X"FF",X"08",X"23",X"24",X"23",X"28",X"FF",X"00", + X"82",X"9A",X"92",X"80",X"FF",X"00",X"01",X"AA",X"A1",X"00",X"FF",X"00",X"02",X"4A",X"12",X"40", + X"FF",X"00",X"00",X"22",X"24",X"40",X"FF",X"00",X"00",X"40",X"00",X"40",X"FF",X"00",X"04",X"44", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"68",X"00",X"00",X"FF",X"00", + X"02",X"56",X"00",X"00",X"FF",X"85",X"A5",X"85",X"30",X"00",X"FF",X"65",X"32",X"11",X"23",X"80", + X"FF",X"08",X"32",X"22",X"22",X"38",X"FF",X"03",X"8A",X"A8",X"AA",X"83",X"FF",X"08",X"8A",X"A8", + X"AA",X"88",X"FF",X"03",X"8A",X"D8",X"DA",X"83",X"FF",X"07",X"78",X"44",X"48",X"77",X"FF",X"07", + X"E4",X"34",X"34",X"7E",X"FF",X"00",X"02",X"2C",X"33",X"00",X"FF",X"00",X"01",X"39",X"23",X"00", + X"FF",X"00",X"03",X"8A",X"82",X"00",X"FF",X"00",X"08",X"8A",X"88",X"00",X"FF",X"00",X"03",X"3A", + X"32",X"00",X"FF",X"00",X"00",X"28",X"30",X"00",X"FF",X"00",X"00",X"40",X"40",X"00",X"FF",X"00", + X"04",X"44",X"44",X"00",X"FF",X"00",X"00",X"10",X"10",X"00",X"00",X"00",X"FF",X"00",X"00",X"10", + X"10",X"00",X"00",X"00",X"FF",X"00",X"02",X"32",X"10",X"00",X"00",X"00",X"FF",X"00",X"00",X"19", + X"10",X"00",X"00",X"00",X"FF",X"00",X"01",X"11",X"11",X"00",X"00",X"00",X"FF",X"00",X"01",X"51", + X"51",X"00",X"00",X"00",X"FF",X"00",X"91",X"11",X"11",X"90",X"00",X"00",X"FF",X"00",X"09",X"13", + X"19",X"00",X"00",X"90",X"FF",X"00",X"00",X"08",X"00",X"00",X"00",X"90",X"FF",X"00",X"00",X"11", + X"10",X"00",X"00",X"90",X"FF",X"00",X"01",X"33",X"D1",X"00",X"00",X"90",X"FF",X"01",X"10",X"3D", + X"11",X"00",X"00",X"90",X"FF",X"00",X"03",X"8D",X"D3",X"00",X"77",X"77",X"FF",X"00",X"D8",X"DD", + X"8D",X"D0",X"AA",X"CC",X"FF",X"00",X"00",X"10",X"90",X"00",X"66",X"CC",X"FF",X"0B",X"BB",X"1B", + X"99",X"BB",X"66",X"CC",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"10", + X"10",X"00",X"00",X"00",X"FF",X"00",X"00",X"10",X"10",X"00",X"00",X"00",X"FF",X"00",X"02",X"32", + X"10",X"00",X"00",X"00",X"FF",X"00",X"01",X"11",X"11",X"00",X"00",X"00",X"FF",X"00",X"01",X"11", + X"11",X"00",X"00",X"00",X"FF",X"00",X"91",X"51",X"51",X"90",X"00",X"00",X"FF",X"00",X"09",X"13", + X"19",X"00",X"00",X"10",X"FF",X"00",X"00",X"08",X"00",X"00",X"00",X"90",X"FF",X"00",X"00",X"11", + X"10",X"00",X"00",X"90",X"FF",X"00",X"01",X"D3",X"31",X"10",X"00",X"90",X"FF",X"00",X"01",X"1D", + X"D0",X"00",X"00",X"90",X"FF",X"00",X"03",X"D8",X"D8",X"D0",X"77",X"77",X"FF",X"00",X"0D",X"8D", + X"8D",X"00",X"AA",X"CC",X"FF",X"00",X"00",X"90",X"10",X"00",X"66",X"CC",X"FF",X"0B",X"B1",X"1B", + X"1B",X"BB",X"66",X"CC",X"FF",X"00",X"00",X"02",X"12",X"20",X"00",X"00",X"FF",X"00",X"02",X"29", + X"99",X"22",X"00",X"00",X"FF",X"00",X"00",X"61",X"11",X"12",X"00",X"00",X"FF",X"00",X"00",X"37", + X"11",X"91",X"20",X"00",X"FF",X"00",X"03",X"44",X"42",X"19",X"22",X"20",X"FF",X"00",X"00",X"D1", + X"52",X"22",X"22",X"20",X"FF",X"00",X"00",X"45",X"56",X"22",X"22",X"00",X"FF",X"00",X"03",X"99", + X"44",X"45",X"50",X"00",X"FF",X"00",X"44",X"44",X"43",X"55",X"40",X"00",X"FF",X"09",X"46",X"53", + X"35",X"45",X"54",X"CC",X"FF",X"0C",X"34",X"54",X"35",X"4C",X"64",X"4C",X"FF",X"0C",X"C3",X"95", + X"35",X"46",X"64",X"CC",X"FF",X"0C",X"CC",X"95",X"45",X"66",X"4C",X"CC",X"FF",X"0B",X"BB",X"E5", + X"55",X"6B",X"BB",X"BB",X"FF",X"0B",X"BE",X"88",X"88",X"88",X"BB",X"BB",X"FF",X"0A",X"AA",X"E8", + X"88",X"8E",X"AA",X"AA",X"FF",X"0A",X"AA",X"44",X"58",X"44",X"AA",X"AA",X"FF",X"01",X"11",X"44", + X"56",X"54",X"61",X"11",X"FF",X"00",X"00",X"02",X"12",X"20",X"00",X"00",X"FF",X"00",X"02",X"21", + X"19",X"22",X"00",X"00",X"FF",X"00",X"00",X"51",X"19",X"92",X"20",X"00",X"FF",X"00",X"00",X"36", + X"11",X"91",X"22",X"00",X"FF",X"00",X"03",X"44",X"22",X"99",X"22",X"20",X"FF",X"00",X"00",X"D1", + X"52",X"22",X"22",X"00",X"FF",X"00",X"00",X"45",X"56",X"22",X"20",X"00",X"FF",X"00",X"00",X"33", + X"44",X"45",X"30",X"00",X"FF",X"00",X"04",X"44",X"43",X"55",X"43",X"00",X"FF",X"00",X"44",X"33", + X"35",X"45",X"53",X"9C",X"FF",X"0C",X"55",X"B6",X"35",X"46",X"54",X"3C",X"FF",X"0C",X"C4",X"96", + X"35",X"45",X"53",X"CC",X"FF",X"0C",X"CC",X"45",X"45",X"56",X"4C",X"CC",X"FF",X"0B",X"BB",X"E5", + X"55",X"56",X"BB",X"BB",X"FF",X"0B",X"BB",X"B8",X"88",X"88",X"8B",X"BB",X"FF",X"0A",X"AA",X"A8", + X"88",X"88",X"5A",X"AA",X"FF",X"0A",X"AA",X"A5",X"54",X"84",X"4A",X"AA",X"FF",X"01",X"11",X"14", + X"56",X"54",X"41",X"11",X"FF",X"22",X"22",X"22",X"00",X"FF",X"27",X"77",X"77",X"00",X"FF",X"00", + X"55",X"00",X"00",X"FF",X"00",X"55",X"00",X"00",X"FF",X"00",X"55",X"00",X"00",X"FF",X"00",X"55", + X"00",X"00",X"FF",X"00",X"55",X"00",X"00",X"FF",X"00",X"55",X"00",X"00",X"FF",X"00",X"02",X"00", + X"00",X"FF",X"00",X"27",X"20",X"00",X"FF",X"02",X"77",X"00",X"00",X"FF",X"27",X"75",X"50",X"00", + X"FF",X"07",X"00",X"55",X"00",X"FF",X"00",X"00",X"05",X"50",X"FF",X"00",X"00",X"00",X"55",X"FF", + X"00",X"00",X"00",X"05",X"FF",X"00",X"00",X"00",X"00",X"FF",X"22",X"00",X"00",X"00",X"FF",X"27", + X"00",X"00",X"00",X"FF",X"27",X"55",X"55",X"55",X"FF",X"27",X"55",X"55",X"55",X"FF",X"27",X"00", + X"00",X"00",X"FF",X"27",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"B1",X"B0", + X"00",X"FF",X"00",X"BB",X"B0",X"00",X"FF",X"00",X"0A",X"00",X"00",X"FF",X"0A",X"0A",X"0A",X"00", + X"FF",X"00",X"AA",X"A0",X"00",X"FF",X"02",X"22",X"22",X"00",X"FF",X"00",X"22",X"20",X"00",X"FF", + X"00",X"22",X"20",X"00",X"FF",X"00",X"0B",X"00",X"00",X"FF",X"00",X"1B",X"00",X"00",X"FF",X"0B", + X"BA",X"0A",X"00",X"FF",X"00",X"00",X"AA",X"20",X"FF",X"00",X"0A",X"A2",X"22",X"FF",X"00",X"00", + X"22",X"22",X"FF",X"00",X"00",X"02",X"20",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"FF",X"00",X"0A",X"02",X"00",X"FF",X"BB",X"00",X"A2",X"22",X"FF",X"1B",X"AA",X"A2",X"22", + X"FF",X"BB",X"00",X"A2",X"22",X"FF",X"00",X"0A",X"02",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"FF",X"08",X"CC",X"EE",X"00",X"00",X"FF",X"08",X"CD",X"EE",X"88",X"00", + X"FF",X"08",X"CD",X"EE",X"0C",X"00",X"FF",X"08",X"CD",X"EE",X"0C",X"00",X"FF",X"08",X"CD",X"EE", + X"0C",X"00",X"FF",X"08",X"CD",X"EE",X"C0",X"00",X"FF",X"08",X"CD",X"EE",X"00",X"00",X"FF",X"08", + X"CD",X"EE",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"08",X"CC",X"C0",X"00",X"FF",X"00",X"CC",X"80",X"0C",X"00",X"FF",X"0C",X"ED",X"C8", + X"00",X"E0",X"FF",X"CE",X"EE",X"DD",X"80",X"E0",X"FF",X"0E",X"EE",X"ED",X"C8",X"00",X"FF",X"00", + X"EE",X"ED",X"DC",X"80",X"FF",X"00",X"0E",X"EE",X"ED",X"00",X"FF",X"00",X"00",X"EE",X"E0",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"08",X"88",X"80",X"00",X"00",X"FF",X"0E",X"00",X"0C", + X"00",X"00",X"FF",X"CC",X"CC",X"CC",X"C0",X"00",X"FF",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"EE", + X"EE",X"EE",X"E0",X"00",X"FF",X"EE",X"EE",X"EE",X"E0",X"00",X"FF",X"EE",X"EE",X"EE",X"E0",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"0C",X"C0", + X"00",X"00",X"FF",X"00",X"08",X"80",X"00",X"00",X"FF",X"02",X"CC",X"D0",X"00",X"00",X"FF",X"0C", + X"0C",X"D0",X"00",X"00",X"FF",X"0C",X"0C",X"D0",X"00",X"00",X"FF",X"02",X"CC",X"D0",X"00",X"00", + X"FF",X"00",X"0C",X"D0",X"00",X"00",X"FF",X"00",X"C1",X"C0",X"00",X"00",X"FF",X"0C",X"C2",X"CC", + X"00",X"00",X"FF",X"CC",X"00",X"00",X"00",X"00",X"FF",X"D8",X"00",X"00",X"00",X"00",X"FF",X"0D", + X"C0",X"00",X"00",X"00",X"FF",X"0C",X"DC",X"00",X"00",X"00",X"FF",X"02",X"0D",X"C0",X"00",X"00", + X"FF",X"00",X"CC",X"DC",X"CC",X"00",X"FF",X"00",X"00",X"C1",X"C0",X"00",X"FF",X"00",X"00",X"CC", + X"00",X"00",X"FF",X"00",X"00",X"C0",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"C0",X"FF",X"00",X"00",X"00",X"0C",X"C0",X"FF",X"C8",X"CC",X"CC",X"C1",X"C0", + X"FF",X"C8",X"DD",X"DD",X"DC",X"C0",X"FF",X"00",X"C0",X"0C",X"00",X"C0",X"FF",X"00",X"2C",X"C2", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"FF",X"00",X"CC",X"C1",X"00",X"00",X"FF",X"0C",X"DD",X"DD",X"20",X"00", + X"FF",X"CC",X"C0",X"0C",X"CC",X"00",X"FF",X"00",X"0C",X"C0",X"00",X"00",X"FF",X"00",X"C1",X"1C", + X"00",X"00",X"FF",X"0C",X"13",X"31",X"C0",X"00",X"FF",X"C2",X"C1",X"1C",X"CC",X"00",X"FF",X"DD", + X"DD",X"DD",X"DD",X"00",X"FF",X"00",X"01",X"2C",X"C0",X"00",X"FF",X"00",X"CD",X"CC",X"00",X"00", + X"FF",X"0C",X"D0",X"C0",X"00",X"00",X"FF",X"CD",X"0C",X"CC",X"CC",X"00",X"FF",X"CC",X"CC",X"31", + X"CC",X"D0",X"FF",X"CC",X"0C",X"31",X"CD",X"00",X"FF",X"C0",X"0C",X"CC",X"D0",X"00",X"FF",X"00", + X"0C",X"2D",X"00",X"00",X"FF",X"00",X"00",X"D0",X"00",X"00",X"FF",X"00",X"C0",X"00",X"CD",X"00", + X"FF",X"02",X"C0",X"0C",X"CD",X"00",X"FF",X"1D",X"C0",X"C1",X"CD",X"00",X"FF",X"CD",X"0C",X"13", + X"1D",X"00",X"FF",X"CD",X"0C",X"13",X"1D",X"00",X"FF",X"CD",X"C0",X"C1",X"CD",X"00",X"FF",X"0C", + X"C0",X"0C",X"2D",X"00",X"FF",X"00",X"C0",X"00",X"CD",X"00",X"FF",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"10",X"FF",X"22",X"CC",X"22",X"01",X"FF",X"11", + X"11",X"11",X"01",X"FF",X"01",X"11",X"10",X"10",X"FF",X"00",X"77",X"00",X"00",X"FF",X"11",X"11", + X"11",X"10",X"FF",X"00",X"00",X"11",X"00",X"FF",X"00",X"00",X"20",X"10",X"FF",X"00",X"0C",X"10", + X"10",X"FF",X"00",X"C1",X"11",X"00",X"FF",X"02",X"11",X"10",X"01",X"FF",X"21",X"11",X"10",X"10", + X"FF",X"01",X"11",X"71",X"00",X"FF",X"00",X"00",X"10",X"00",X"FF",X"00",X"01",X"00",X"00",X"FF", + X"00",X"10",X"00",X"00",X"FF",X"11",X"10",X"00",X"00",X"FF",X"10",X"01",X"01",X"00",X"FF",X"02", + X"10",X"01",X"00",X"FF",X"02",X"11",X"01",X"00",X"FF",X"0C",X"11",X"71",X"00",X"FF",X"0C",X"11", + X"71",X"00",X"FF",X"02",X"11",X"01",X"00",X"FF",X"02",X"10",X"01",X"00",X"FF",X"00",X"00",X"00", + X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"09",X"00",X"09",X"00",X"00",X"FF",X"98",X"00",X"08", + X"90",X"00",X"FF",X"09",X"85",X"89",X"00",X"00",X"FF",X"00",X"0C",X"00",X"00",X"00",X"FF",X"00", + X"85",X"80",X"00",X"00",X"FF",X"08",X"55",X"58",X"00",X"00",X"FF",X"95",X"00",X"05",X"90",X"00", + X"FF",X"95",X"00",X"05",X"90",X"00",X"FF",X"08",X"00",X"08",X"00",X"00",X"FF",X"00",X"99",X"80", + X"00",X"00",X"FF",X"00",X"08",X"90",X"00",X"00",X"FF",X"90",X"00",X"90",X"00",X"00",X"FF",X"98", + X"0C",X"88",X"89",X"00",X"FF",X"89",X"98",X"05",X"55",X"90",X"FF",X"00",X"08",X"50",X"05",X"80", + X"FF",X"00",X"08",X"50",X"00",X"80",X"FF",X"00",X"09",X"55",X"00",X"00",X"FF",X"00",X"00",X"98", + X"80",X"00",X"FF",X"09",X"00",X"00",X"99",X"00",X"FF",X"98",X"90",X"08",X"55",X"80",X"FF",X"00", + X"80",X"85",X"00",X"00",X"FF",X"00",X"5C",X"50",X"00",X"00",X"FF",X"00",X"80",X"85",X"00",X"00", + X"FF",X"98",X"90",X"08",X"55",X"80",X"FF",X"09",X"00",X"00",X"99",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"09",X"00",X"00",X"FF",X"08",X"89", + X"98",X"80",X"FF",X"81",X"38",X"88",X"88",X"FF",X"82",X"88",X"88",X"88",X"FF",X"88",X"88",X"88", + X"88",X"FF",X"08",X"88",X"88",X"80",X"FF",X"08",X"88",X"8A",X"80",X"FF",X"00",X"8A",X"AA",X"00", + X"FF",X"00",X"88",X"80",X"00",X"FF",X"08",X"88",X"88",X"80",X"FF",X"08",X"88",X"88",X"AA",X"FF", + X"09",X"88",X"88",X"8A",X"FF",X"99",X"88",X"88",X"8A",X"FF",X"08",X"38",X"88",X"88",X"FF",X"08", + X"12",X"88",X"80",X"FF",X"00",X"88",X"80",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"90",X"08", + X"88",X"00",X"FF",X"09",X"98",X"88",X"80",X"FF",X"83",X"88",X"88",X"80",X"FF",X"81",X"38",X"88", + X"88",X"FF",X"88",X"88",X"88",X"AA",X"FF",X"08",X"88",X"8A",X"AA",X"FF",X"00",X"08",X"AA",X"00", + X"FF",X"00",X"00",X"10",X"00",X"00",X"FF",X"00",X"01",X"11",X"00",X"00",X"FF",X"10",X"08",X"88", + X"0E",X"E0",X"FF",X"01",X"01",X"11",X"E0",X"E0",X"FF",X"01",X"01",X"11",X"00",X"E0",X"FF",X"01", + X"11",X"11",X"E0",X"E0",X"FF",X"00",X"01",X"11",X"0E",X"00",X"FF",X"00",X"01",X"11",X"00",X"00", + X"FF",X"00",X"00",X"0E",X"E0",X"00",X"FF",X"01",X"11",X"0E",X"0E",X"00",X"FF",X"01",X"18",X"1E", + X"0E",X"00",X"FF",X"01",X"81",X"11",X"0E",X"00",X"FF",X"00",X"11",X"11",X"10",X"00",X"FF",X"10", + X"01",X"11",X"11",X"00",X"FF",X"01",X"11",X"11",X"10",X"00",X"FF",X"00",X"10",X"01",X"00",X"00", + X"FF",X"00",X"EE",X"EE",X"00",X"00",X"FF",X"00",X"E0",X"00",X"E0",X"00",X"FF",X"00",X"0E",X"0E", + X"00",X"00",X"FF",X"01",X"81",X"11",X"11",X"00",X"FF",X"11",X"81",X"11",X"11",X"00",X"FF",X"01", + X"81",X"11",X"11",X"00",X"FF",X"00",X"00",X"01",X"00",X"00",X"FF",X"00",X"01",X"11",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"0B",X"00",X"00",X"00",X"FF",X"00",X"05",X"00", + X"00",X"00",X"FF",X"00",X"05",X"00",X"00",X"00",X"FF",X"00",X"55",X"50",X"00",X"00",X"FF",X"00", + X"11",X"50",X"00",X"00",X"FF",X"00",X"11",X"50",X"00",X"00",X"FF",X"00",X"11",X"50",X"00",X"00", + X"FF",X"00",X"55",X"50",X"00",X"00",X"FF",X"00",X"55",X"50",X"00",X"00",X"FF",X"B0",X"00",X"00", + X"00",X"00",X"FF",X"05",X"00",X"00",X"00",X"00",X"FF",X"00",X"55",X"00",X"00",X"00",X"FF",X"00", + X"55",X"50",X"00",X"00",X"FF",X"00",X"51",X"55",X"00",X"00",X"FF",X"00",X"01",X"15",X"50",X"00", + X"FF",X"00",X"00",X"15",X"50",X"00",X"FF",X"00",X"00",X"05",X"50",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"05",X"55",X"55",X"50", + X"FF",X"B5",X"55",X"11",X"15",X"50",X"FF",X"00",X"05",X"11",X"15",X"50",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"09",X"90",X"90",X"00",X"FF",X"00", + X"99",X"99",X"00",X"FF",X"EE",X"E9",X"EE",X"E0",X"FF",X"EE",X"E9",X"EE",X"E0",X"FF",X"99",X"99", + X"99",X"90",X"FF",X"EE",X"E9",X"EE",X"E0",X"FF",X"EE",X"E9",X"EE",X"E0",X"FF",X"00",X"90",X"E0", + X"00",X"FF",X"90",X"9E",X"EE",X"00",X"FF",X"99",X"9E",X"E9",X"E0",X"FF",X"0E",X"E9",X"9E",X"EE", + X"FF",X"EE",X"E9",X"9E",X"E0",X"FF",X"0E",X"9E",X"E9",X"00",X"FF",X"00",X"EE",X"E0",X"00",X"FF", + X"00",X"0E",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00",X"EE",X"9E",X"E0",X"FF",X"09", + X"EE",X"9E",X"E0",X"FF",X"99",X"EE",X"9E",X"E0",X"FF",X"09",X"99",X"99",X"90",X"FF",X"99",X"EE", + X"9E",X"E0",X"FF",X"90",X"EE",X"9E",X"E0",X"FF",X"00",X"EE",X"9E",X"E0",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"11",X"00",X"00",X"FF",X"00",X"99",X"99",X"99",X"00",X"FF",X"18",X"88",X"88",X"88",X"81", + X"FF",X"19",X"99",X"99",X"99",X"11",X"FF",X"09",X"99",X"99",X"99",X"90",X"FF",X"09",X"99",X"99", + X"99",X"90",X"FF",X"00",X"99",X"99",X"99",X"00",X"FF",X"00",X"00",X"98",X"10",X"00",X"FF",X"00", + X"19",X"81",X"10",X"00",X"FF",X"01",X"98",X"99",X"90",X"00",X"FF",X"09",X"89",X"99",X"90",X"00", + X"FF",X"98",X"99",X"99",X"90",X"00",X"FF",X"89",X"99",X"99",X"00",X"00",X"FF",X"19",X"99",X"90", + X"00",X"00",X"FF",X"00",X"99",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"FF",X"00",X"11",X"00",X"00",X"00",X"FF",X"00",X"81",X"99",X"00",X"00", + X"FF",X"09",X"89",X"99",X"90",X"00",X"FF",X"09",X"89",X"99",X"90",X"00",X"FF",X"19",X"89",X"99", + X"90",X"00",X"FF",X"19",X"89",X"99",X"90",X"00",X"FF",X"09",X"89",X"99",X"90",X"00",X"FF",X"09", + X"89",X"99",X"90",X"00",X"FF",X"00",X"89",X"99",X"00",X"00",X"FF",X"00",X"11",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"EE",X"EE",X"EE",X"01",X"10",X"FF",X"AA",X"AA",X"AA",X"10",X"01",X"FF",X"AA", + X"AA",X"AA",X"00",X"01",X"FF",X"AA",X"AA",X"AA",X"00",X"01",X"FF",X"AA",X"AA",X"AA",X"11",X"10", + X"FF",X"AA",X"AA",X"AA",X"00",X"00",X"FF",X"AA",X"AA",X"AA",X"00",X"00",X"FF",X"00",X"00",X"00", + X"01",X"10",X"FF",X"00",X"00",X"E0",X"10",X"01",X"FF",X"00",X"0E",X"AA",X"10",X"01",X"FF",X"00", + X"EA",X"AA",X"A0",X"10",X"FF",X"0E",X"AA",X"AA",X"AA",X"10",X"FF",X"EA",X"AA",X"AA",X"AA",X"A0", + X"FF",X"0A",X"AA",X"AA",X"AA",X"00",X"FF",X"00",X"AA",X"AA",X"A0",X"00",X"FF",X"00",X"0A",X"AA", + X"00",X"00",X"FF",X"00",X"00",X"A0",X"00",X"00",X"FF",X"00",X"11",X"10",X"00",X"00",X"FF",X"01", + X"00",X"01",X"00",X"00",X"FF",X"01",X"00",X"01",X"00",X"00",X"FF",X"00",X"10",X"01",X"00",X"00", + X"FF",X"0E",X"AA",X"AA",X"AA",X"00",X"FF",X"0E",X"AA",X"AA",X"AA",X"00",X"FF",X"0E",X"AA",X"AA", + X"AA",X"00",X"FF",X"0E",X"AA",X"AA",X"AA",X"00",X"FF",X"0E",X"AA",X"AA",X"AA",X"00",X"FF",X"0E", + X"AA",X"AA",X"AA",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"08",X"00",X"00", + X"00",X"00",X"FF",X"00",X"08",X"00",X"00",X"00",X"00",X"FF",X"00",X"88",X"80",X"00",X"00",X"00", + X"FF",X"08",X"88",X"88",X"00",X"00",X"00",X"FF",X"0E",X"EE",X"EB",X"00",X"00",X"00",X"FF",X"0E", + X"EE",X"EB",X"00",X"00",X"00",X"FF",X"0E",X"EE",X"EB",X"00",X"00",X"00",X"FF",X"0E",X"EE",X"EB", + X"00",X"00",X"00",X"FF",X"0E",X"EE",X"EB",X"00",X"00",X"00",X"FF",X"0E",X"EE",X"EB",X"00",X"00", + X"00",X"FF",X"0C",X"BB",X"BC",X"00",X"00",X"00",X"FF",X"80",X"00",X"00",X"00",X"00",X"00",X"FF", + X"08",X"88",X"80",X"00",X"00",X"00",X"FF",X"08",X"8E",X"EB",X"00",X"00",X"00",X"FF",X"08",X"EE", + X"EB",X"B0",X"00",X"00",X"FF",X"08",X"EE",X"EE",X"BB",X"00",X"00",X"FF",X"00",X"EE",X"EE",X"EB", + X"C0",X"00",X"FF",X"00",X"0E",X"EE",X"EB",X"00",X"00",X"FF",X"00",X"00",X"EE",X"B0",X"00",X"00", + X"FF",X"00",X"00",X"0C",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00", + X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"00",X"FF",X"00",X"00",X"8B",X"BB",X"BB",X"BC",X"FF",X"00",X"08",X"8E",X"EE",X"EE", + X"EB",X"FF",X"08",X"88",X"8E",X"EE",X"EE",X"EB",X"FF",X"00",X"08",X"8E",X"EE",X"EE",X"EB",X"FF", + X"00",X"00",X"8E",X"EE",X"EE",X"EC",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00", + X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"10",X"00",X"00",X"FF",X"00", + X"0D",X"DD",X"00",X"10",X"FF",X"BB",X"BB",X"BB",X"B1",X"01",X"FF",X"0B",X"BB",X"BB",X"B0",X"01", + X"FF",X"00",X"BB",X"BB",X"B1",X"11",X"FF",X"00",X"BB",X"BB",X"B0",X"00",X"FF",X"00",X"00",X"00", + X"10",X"00",X"FF",X"00",X"00",X"01",X"01",X"00",X"FF",X"00",X"00",X"B1",X"01",X"00",X"FF",X"00", + X"1D",X"BB",X"01",X"00",X"FF",X"00",X"DB",X"BB",X"B0",X"00",X"FF",X"00",X"BB",X"BB",X"BB",X"00", + X"FF",X"0B",X"BB",X"BB",X"B0",X"00",X"FF",X"BB",X"BB",X"BB",X"00",X"00",X"FF",X"00",X"00",X"B0", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"11",X"10",X"00",X"00",X"FF",X"01", + X"00",X"10",X"00",X"00",X"FF",X"00",X"10",X"10",X"00",X"00",X"FF",X"00",X"BB",X"BB",X"00",X"00", + X"FF",X"0D",X"BB",X"BB",X"00",X"00",X"FF",X"1D",X"BB",X"BB",X"00",X"00",X"FF",X"0D",X"BB",X"BB", + X"00",X"00",X"FF",X"00",X"BB",X"BB",X"00",X"00",X"FF",X"00",X"BB",X"00",X"00",X"00",X"FF",X"00", + X"B0",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00", + X"FF",X"08",X"CC",X"EE",X"00",X"00",X"FF",X"08",X"CD",X"EE",X"88",X"00",X"FF",X"08",X"CD",X"EE", + X"0C",X"00",X"FF",X"08",X"CD",X"EE",X"0C",X"00",X"FF",X"08",X"CD",X"EE",X"0C",X"00",X"FF",X"08", + X"CD",X"EE",X"C0",X"00",X"FF",X"08",X"CD",X"EE",X"00",X"00",X"FF",X"08",X"CD",X"EE",X"00",X"00", + X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"00",X"08",X"CC", + X"C0",X"00",X"FF",X"00",X"CC",X"80",X"0C",X"00",X"FF",X"0C",X"ED",X"C8",X"00",X"E0",X"FF",X"CE", + X"EE",X"DD",X"80",X"E0",X"FF",X"0E",X"EE",X"ED",X"C8",X"00",X"FF",X"00",X"EE",X"ED",X"DC",X"80", + X"FF",X"00",X"0E",X"EE",X"ED",X"00",X"FF",X"00",X"00",X"EE",X"E0",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"08",X"88",X"80",X"00",X"00",X"FF",X"0E",X"00",X"0C",X"00",X"00",X"FF",X"CC", + X"CC",X"CC",X"C0",X"00",X"FF",X"DD",X"DD",X"DD",X"D0",X"00",X"FF",X"EE",X"EE",X"EE",X"E0",X"00", + X"FF",X"EE",X"EE",X"EE",X"E0",X"00",X"FF",X"EE",X"EE",X"EE",X"E0",X"00",X"FF",X"00",X"00",X"00", + X"00",X"00",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"11",X"11", + X"11",X"11",X"11",X"11",X"11",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22",X"22", + X"22",X"22",X"22",X"22",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"33", + X"33",X"33",X"33",X"44",X"44",X"44",X"44",X"44",X"44",X"44",X"44",X"44",X"44",X"44",X"44",X"44", + X"44",X"44",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55",X"55", + X"55",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66",X"66", + X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"77",X"FF"); +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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/tile1.vhd b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/tile1.vhd new file mode 100644 index 00000000..922da80e --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/rom/tile1.vhd @@ -0,0 +1,534 @@ +library ieee; +use ieee.std_logic_1164.all,ieee.numeric_std.all; + +entity tile1 is +port ( + clk : in std_logic; + addr : in std_logic_vector(12 downto 0); + data : out std_logic_vector(7 downto 0) +); +end entity; + +architecture prom of tile1 is + type rom is array(0 to 8191) of std_logic_vector(7 downto 0); + signal rom_data: rom := ( + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00", + X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"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"80",X"C0",X"E0",X"E0",X"E7",X"E7",X"E7",X"FF",X"00",X"00",X"80",X"80",X"E7",X"E7",X"E7", + X"FF",X"01",X"03",X"87",X"87",X"E7",X"E7",X"E7",X"FF",X"00",X"00",X"80",X"80",X"FF",X"FF",X"FF", + X"BF",X"A7",X"A7",X"A7",X"A7",X"A7",X"A7",X"A7",X"FF",X"A7",X"A6",X"A1",X"A1",X"BF",X"BF",X"FF", + X"BF",X"27",X"3E",X"C1",X"C1",X"FF",X"FF",X"FF",X"BF",X"E7",X"67",X"87",X"87",X"FF",X"FF",X"FF", + X"81",X"C3",X"A7",X"A7",X"A7",X"A7",X"A7",X"A7",X"BF",X"A7",X"A7",X"A7",X"A7",X"A7",X"BF",X"FF", + X"FF",X"C0",X"C0",X"C0",X"C0",X"FF",X"FF",X"FF",X"FF",X"01",X"03",X"83",X"83",X"FF",X"FF",X"FF", + X"BF",X"A6",X"A4",X"A2",X"A2",X"A7",X"A7",X"A7",X"BF",X"E7",X"27",X"87",X"87",X"E7",X"A7",X"A7", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"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"FF",X"F1",X"E1",X"E1",X"C1",X"C1",X"C1",X"C1",X"C1",X"FD",X"FD",X"C1",X"C1",X"C1", + X"C1",X"C1",X"C1",X"C1",X"C1",X"C1",X"FF",X"FF",X"BF",X"EF",X"FB",X"9D",X"8D",X"8E",X"86",X"86", + X"86",X"86",X"86",X"BE",X"BE",X"86",X"86",X"86",X"86",X"86",X"86",X"86",X"86",X"86",X"FE",X"FE", + X"FF",X"F0",X"E6",X"E8",X"D0",X"D0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0",X"A0", + X"A0",X"A0",X"A0",X"A0",X"A0",X"BE",X"80",X"FF",X"FF",X"0F",X"67",X"17",X"0B",X"0B",X"05",X"05", + X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"05",X"7D",X"01",X"FF", + X"EB",X"FE",X"5F",X"F9",X"B1",X"71",X"F1",X"A1",X"C1",X"C1",X"C1",X"C2",X"C6",X"C4",X"C2",X"C1", + X"C1",X"C1",X"C1",X"C1",X"C1",X"C1",X"FF",X"FE",X"B4",X"DB",X"F6",X"3F",X"18",X"1F",X"1E",X"0A", + X"06",X"06",X"06",X"86",X"C6",X"46",X"86",X"06",X"06",X"06",X"06",X"06",X"06",X"06",X"FE",X"F9", + X"FF",X"F0",X"E0",X"E0",X"E0",X"C0",X"C0",X"C0",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80", + X"80",X"C0",X"C0",X"E0",X"E0",X"E0",X"F0",X"FF",X"F7",X"37",X"2B",X"2B",X"25",X"25",X"22",X"22", + X"21",X"21",X"31",X"31",X"31",X"21",X"21",X"21",X"22",X"22",X"25",X"25",X"2B",X"2B",X"37",X"E7", + X"FF",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"83",X"84",X"84",X"84",X"80",X"84",X"83",X"80", + X"80",X"80",X"80",X"80",X"80",X"80",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"20",X"20",X"20",X"20",X"C0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"FE",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"74",X"44",X"64",X"44",X"47",X"10",X"00",X"00",X"4D",X"55",X"51",X"55",X"4D",X"A4", + X"00",X"00",X"54",X"94",X"9C",X"C8",X"48",X"62",X"FF",X"80",X"80",X"80",X"80",X"80",X"80",X"82", + X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80",X"80", + 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"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"FF",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"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"FF",X"00",X"00",X"00",X"00",X"00",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"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"FF",X"18",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"1A",X"18",X"00",X"82",X"03",X"02",X"1A",X"42",X"5A",X"58",X"58",X"40",X"93",X"12",X"12",X"18", + X"FF",X"7E",X"7E",X"00",X"00",X"00",X"00",X"00",X"7E",X"7E",X"00",X"00",X"00",X"00",X"7E",X"00", + X"7E",X"7E",X"7E",X"40",X"56",X"34",X"56",X"7E",X"FF",X"01",X"FD",X"00",X"00",X"04",X"08",X"10", + X"01",X"01",X"10",X"98",X"10",X"00",X"01",X"E4",X"05",X"05",X"05",X"04",X"09",X"91",X"11",X"01", + X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"FF",X"FF",X"00",X"00",X"00",X"00",X"FF",X"00", + X"FF",X"FF",X"FF",X"C0",X"57",X"35",X"57",X"FF",X"FF",X"80",X"BF",X"20",X"00",X"00",X"18",X"27", + X"A0",X"80",X"00",X"20",X"30",X"28",X"A7",X"20",X"A0",X"84",X"80",X"80",X"30",X"2C",X"20",X"80", + X"FF",X"07",X"F7",X"00",X"00",X"10",X"20",X"44",X"07",X"07",X"46",X"66",X"46",X"06",X"07",X"96", + X"17",X"17",X"17",X"14",X"23",X"45",X"47",X"07",X"FF",X"E0",X"EF",X"08",X"00",X"00",X"06",X"09", + X"E8",X"E0",X"00",X"08",X"0C",X"0A",X"E9",X"28",X"E8",X"E1",X"E0",X"80",X"4C",X"2B",X"48",X"E0", + X"FF",X"1F",X"DF",X"00",X"00",X"40",X"90",X"1C",X"1F",X"17",X"16",X"9E",X"16",X"16",X"17",X"5E", + X"5F",X"5F",X"5F",X"5C",X"93",X"05",X"17",X"1F",X"FF",X"F8",X"FB",X"02",X"00",X"00",X"01",X"0A", + X"FA",X"F8",X"18",X"1A",X"1B",X"1A",X"FA",X"3A",X"FA",X"F8",X"F8",X"98",X"43",X"32",X"4A",X"F8", + X"FF",X"7F",X"7F",X"00",X"00",X"40",X"70",X"7C",X"5F",X"57",X"56",X"7E",X"56",X"56",X"57",X"7E", + X"7F",X"7F",X"7F",X"7C",X"73",X"45",X"17",X"1F",X"FF",X"FE",X"FE",X"00",X"00",X"02",X"06",X"0E", + X"FE",X"FA",X"1A",X"1E",X"1A",X"1A",X"FA",X"3E",X"FE",X"FE",X"FE",X"9E",X"46",X"30",X"48",X"F8", + X"3F",X"40",X"5F",X"40",X"5F",X"50",X"50",X"50",X"50",X"50",X"50",X"5F",X"40",X"50",X"70",X"00", + X"FC",X"02",X"FA",X"00",X"F8",X"08",X"08",X"08",X"08",X"08",X"08",X"F8",X"00",X"0A",X"02",X"00", + X"3F",X"40",X"5F",X"40",X"5F",X"50",X"50",X"5C",X"5E",X"5E",X"5F",X"5F",X"40",X"50",X"70",X"00", + X"3F",X"40",X"5F",X"40",X"5F",X"50",X"57",X"5F",X"5D",X"5F",X"5F",X"5F",X"40",X"50",X"70",X"00", + X"FC",X"02",X"FA",X"00",X"F8",X"08",X"08",X"C8",X"C8",X"E8",X"E8",X"F8",X"00",X"0A",X"02",X"00", + X"3F",X"40",X"5F",X"40",X"5F",X"50",X"53",X"57",X"55",X"57",X"5F",X"5F",X"40",X"50",X"70",X"00", + X"FC",X"02",X"FA",X"00",X"F8",X"08",X"C8",X"E8",X"68",X"E8",X"F8",X"F8",X"00",X"0A",X"02",X"00", + X"3F",X"40",X"5F",X"40",X"5F",X"50",X"53",X"57",X"5F",X"57",X"5F",X"5F",X"40",X"50",X"70",X"00", + X"FC",X"02",X"FA",X"00",X"F8",X"08",X"C8",X"E8",X"E8",X"E8",X"F8",X"F8",X"00",X"0A",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00", + X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"80",X"00",X"00",X"00",X"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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"80", + X"00",X"00",X"00",X"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"81",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"81", + X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"80",X"01",X"00",X"00",X"00",X"00",X"00",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"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"76",X"39",X"19",X"06",X"0E",X"0D",X"0B",X"07", + X"76",X"B9",X"D9",X"E6",X"6E",X"9D",X"9B",X"67",X"00",X"80",X"C0",X"C0",X"60",X"80",X"90",X"60", + X"70",X"B0",X"D0",X"E0",X"60",X"90",X"90",X"60",X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01", + X"07",X"1F",X"3F",X"03",X"F0",X"61",X"00",X"00",X"00",X"80",X"81",X"00",X"00",X"FF",X"FF",X"74", + X"00",X"70",X"F0",X"78",X"30",X"00",X"00",X"00",X"00",X"00",X"07",X"78",X"84",X"02",X"02",X"01", + X"50",X"88",X"00",X"00",X"20",X"24",X"58",X"80",X"03",X"01",X"01",X"01",X"03",X"01",X"01",X"00", + X"80",X"80",X"9C",X"BC",X"BC",X"3C",X"3C",X"3F",X"74",X"74",X"74",X"7C",X"7C",X"7C",X"FC",X"FC", + X"00",X"60",X"78",X"7E",X"FF",X"FF",X"FF",X"FF",X"00",X"00",X"00",X"00",X"80",X"87",X"3F",X"7F", + X"00",X"00",X"00",X"00",X"F0",X"F0",X"F0",X"F0",X"05",X"0D",X"1B",X"00",X"00",X"00",X"00",X"00", + X"B8",X"B8",X"70",X"01",X"00",X"00",X"00",X"00",X"00",X"06",X"38",X"C0",X"00",X"00",X"00",X"00", + X"3E",X"1E",X"0C",X"04",X"00",X"00",X"00",X"00",X"7F",X"3F",X"3F",X"1F",X"04",X"00",X"08",X"00", + X"F0",X"F0",X"C0",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"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"11",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"11",X"EE",X"EE",X"0E",X"EE",X"CE",X"9F",X"2B", + X"11",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"11",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE", + X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"EE",X"EE",X"49",X"88",X"88",X"FF",X"FF",X"EE",X"EE",X"EE", + X"EE",X"8E",X"EE",X"EE",X"E0",X"EE",X"EE",X"EE",X"EE",X"0E",X"EE",X"EE",X"E0",X"EE",X"EE",X"EE", + X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1", + X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1", + X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1", + X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1",X"8F",X"88",X"88",X"E8",X"17",X"11",X"11",X"F1", + X"89",X"40",X"2F",X"1F",X"9F",X"3F",X"3F",X"BF",X"FD",X"7F",X"BF",X"FF",X"FF",X"FF",X"FD",X"F8", + X"89",X"46",X"A6",X"99",X"D1",X"E2",X"E4",X"D8",X"89",X"46",X"26",X"19",X"91",X"62",X"64",X"98", + X"BF",X"3F",X"3F",X"3F",X"BF",X"3F",X"3F",X"DF",X"F8",X"FD",X"FF",X"FF",X"FF",X"FF",X"FD",X"DD", + X"E9",X"E6",X"E6",X"F8",X"F0",X"E2",X"E4",X"F8",X"89",X"02",X"00",X"01",X"90",X"62",X"64",X"90", + X"9F",X"2F",X"2F",X"37",X"B8",X"3F",X"3F",X"BF",X"DF",X"DF",X"BD",X"7D",X"FE",X"FE",X"FE",X"FF", + X"C8",X"E6",X"F6",X"E9",X"F1",X"F2",X"F4",X"78",X"81",X"46",X"26",X"11",X"91",X"62",X"64",X"90", + X"BF",X"5F",X"1F",X"1F",X"8E",X"6F",X"6F",X"8F",X"FF",X"FF",X"FF",X"FF",X"0F",X"6F",X"6F",X"0F", + X"79",X"3A",X"3E",X"1D",X"9F",X"6F",X"67",X"9B",X"89",X"46",X"3E",X"1D",X"B9",X"FA",X"F4",X"C8", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"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"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00", + X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"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"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",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"7F",X"3F",X"3F",X"1F",X"1F",X"0F",X"0F",X"07", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"00",X"80",X"80",X"C0",X"C0",X"E0",X"E0",X"F0", + X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"F0",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",X"0C",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"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"73",X"AD",X"DE",X"AD",X"73",X"AD",X"DE",X"AD",X"9B",X"67",X"EE",X"5E",X"BE",X"76",X"E6",X"C6", + X"D9",X"E6",X"F7",X"FA",X"FD",X"EE",X"E7",X"E3",X"CE",X"B5",X"7B",X"B5",X"CE",X"B5",X"7B",X"B5", + X"73",X"AF",X"DF",X"BD",X"78",X"F1",X"E2",X"FF",X"8E",X"16",X"86",X"C6",X"E6",X"76",X"3E",X"FE", + X"F1",X"E8",X"E1",X"E3",X"E7",X"EE",X"FC",X"FF",X"CE",X"F5",X"FB",X"BD",X"1E",X"8F",X"47",X"FF", + X"FF",X"FF",X"FF",X"FF",X"DC",X"EB",X"F7",X"DB",X"FF",X"FF",X"FF",X"FF",X"EF",X"5D",X"BE",X"6D", + X"FF",X"FF",X"FF",X"FF",X"57",X"7F",X"AF",X"D7",X"FF",X"FF",X"FF",X"FF",X"AB",X"FA",X"D5",X"AE", + X"F7",X"8F",X"F7",X"DB",X"F7",X"EB",X"DC",X"FF",X"BC",X"C7",X"BE",X"6D",X"BE",X"5D",X"EF",X"FF", + X"BB",X"7C",X"BB",X"D7",X"AF",X"7F",X"57",X"FF",X"74",X"FB",X"75",X"AE",X"D5",X"FA",X"AB",X"FF", + X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40", + X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40", + X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40", + X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40",X"88",X"11",X"00",X"44",X"00",X"01",X"22",X"40", + X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF",X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF", + X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF",X"88",X"11",X"00",X"44",X"00",X"FF",X"FF",X"FF", + X"E8",X"71",X"38",X"5C",X"3E",X"77",X"E3",X"C1",X"8F",X"17",X"0E",X"5C",X"38",X"79",X"FA",X"D8", + X"C8",X"F1",X"70",X"7C",X"3C",X"3F",X"37",X"73",X"8E",X"1D",X"38",X"7C",X"EE",X"C7",X"A3",X"41", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",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"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"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"38",X"10",X"7C",X"FE",X"00",X"00",X"02",X"04",X"7C",X"38",X"10",X"00",X"00",X"00", + X"00",X"10",X"10",X"10",X"10",X"38",X"10",X"10",X"00",X"18",X"1C",X"12",X"12",X"70",X"70",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"38",X"7C",X"D6",X"FE",X"BA",X"44",X"38",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"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"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",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"16",X"0D",X"0E",X"07",X"07",X"02",X"03",X"01", + X"B7",X"7D",X"FE",X"E7",X"E7",X"FE",X"7D",X"B7",X"00",X"00",X"C0",X"C0",X"E0",X"E0",X"70",X"B0", + X"B0",X"70",X"F0",X"E0",X"E0",X"F0",X"70",X"B0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"05", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"D0",X"00",X"00",X"00",X"00",X"00",X"00",X"08",X"0C", + X"00",X"00",X"00",X"00",X"00",X"00",X"03",X"04",X"00",X"00",X"02",X"07",X"01",X"02",X"00",X"80", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"06",X"07",X"07",X"03",X"01",X"38",X"34",X"1A", + X"30",X"F0",X"F0",X"E0",X"CC",X"9A",X"B6",X"FC",X"D7",X"3F",X"1F",X"0E",X"0E",X"05",X"E5",X"F7", + X"C2",X"80",X"00",X"00",X"E0",X"40",X"C0",X"00",X"00",X"00",X"20",X"90",X"F0",X"00",X"00",X"00", + X"C0",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"0F",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"80",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"64",X"34",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"C0",X"C0",X"E0",X"FF",X"FF",X"01",X"FC",X"7E",X"01",X"3F",X"3F",X"FF",X"FE",X"00",X"7E",X"FF", + X"C0",X"FE",X"FE",X"FF",X"7F",X"00",X"7E",X"FF",X"01",X"01",X"03",X"FF",X"FF",X"80",X"3F",X"7E", + X"33",X"11",X"11",X"33",X"7E",X"FC",X"01",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF",X"CC",X"88",X"88",X"CC",X"7E",X"3F",X"80",X"FF", + X"55",X"AA",X"FF",X"FF",X"00",X"00",X"FF",X"7F",X"55",X"AA",X"FF",X"FF",X"00",X"00",X"FE",X"FF", + X"55",X"AA",X"FF",X"FF",X"00",X"00",X"7E",X"FF",X"55",X"AA",X"FF",X"FF",X"00",X"00",X"3F",X"7E", + X"33",X"11",X"11",X"33",X"7E",X"FC",X"00",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"7E",X"00",X"FF",X"CC",X"88",X"88",X"CC",X"7E",X"3F",X"00",X"FF", + X"00",X"00",X"00",X"00",X"00",X"00",X"01",X"01",X"00",X"00",X"0C",X"30",X"40",X"80",X"00",X"00", + X"00",X"00",X"00",X"00",X"00",X"40",X"80",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00", + X"02",X"02",X"04",X"04",X"04",X"05",X"07",X"07",X"02",X"00",X"00",X"40",X"E0",X"F0",X"F8",X"FC", + X"00",X"00",X"06",X"0F",X"0F",X"1F",X"1F",X"3F",X"00",X"00",X"00",X"00",X"80",X"C0",X"C0",X"C0", + X"07",X"07",X"07",X"07",X"07",X"04",X"04",X"04",X"FE",X"FF",X"FF",X"FF",X"FE",X"01",X"01",X"03", + X"3F",X"7F",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0",X"C0", + X"04",X"04",X"04",X"04",X"04",X"04",X"00",X"00",X"03",X"07",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"FF",X"00",X"00",X"00",X"00",X"00",X"00",X"C0",X"C0",X"00",X"00",X"00",X"00",X"00",X"00", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"EF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF", + X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF"); +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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/sdram.sv b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/sdram.sv new file mode 100644 index 00000000..9f78c393 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/sdram.sv @@ -0,0 +1,355 @@ +// +// 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 [16:1] cpu3_addr, + output reg [15:0] cpu3_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[3]; +reg [24:1] addr_latch_next[2]; +reg [16:1] addr_last[4]; +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 = 3'd0; +localparam PORT_CPU1 = 3'd1; +localparam PORT_CPU2 = 3'd2; +localparam PORT_CPU3 = 3'd3; +localparam PORT_SP = 3'd1; +localparam PORT_REQ = 3'd4; + +reg [2:0] next_port[2]; +reg [2: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 if (cpu3_addr != addr_last[PORT_CPU3]) begin + next_port[0] = PORT_CPU3; + addr_latch_next[0] = { 8'd0, cpu3_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 + PORT_CPU3: begin cpu3_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/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/z80ip.v b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/z80ip.v new file mode 100644 index 00000000..4cfb5265 --- /dev/null +++ b/Arcade_MiST/Sega System 1 Hardware/MiST-Arcade-Flicky/rtl/z80ip.v @@ -0,0 +1,59 @@ +// Copyright (c) 2017,19 MiSTer-X + +module Z80IP +( + input reset, + input clk, + output [15:0] adr, + input [7:0] data_in, + output [7:0] data_out, + output m1, + output mx, + output ix, + output rd, + output wr, + input intreq, + output intack, + input nmireq, + output nmiack +); + +wire i_mreq, i_iorq, i_rd, i_wr, i_rfsh, i_m1; + +T80s cpu +( + .CLK(~clk), + .RESET_n(~reset), + .INT_n(~intreq), + .NMI_n(~nmireq), + .MREQ_n(i_mreq), + .IORQ_n(i_iorq), + .RFSH_n(i_rfsh), + .RD_n(i_rd), + .WR_n(i_wr), + .A(adr), + .DI(data_in), + .DO(data_out), + .WAIT_n(1'b1), + .BUSRQ_n(1'b1), + .BUSAK_n(), + .HALT_n(), + .M1_n(i_m1) +); + +wire mreq = (~i_mreq) & (i_rfsh); +wire iorq = ~i_iorq; +wire rdr = ~i_rd; +wire wrr = ~i_wr; + +assign intack = (adr==16'h38) & mx & rdr; +assign nmiack = (adr==16'h66) & mx & rdr; + +assign m1 = ~i_m1; +assign mx = mreq; +assign ix = iorq; +assign rd = rdr; +assign wr = wrr; + +endmodule + diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv index d4499adc..8435b3af 100644 --- a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv +++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv @@ -56,14 +56,18 @@ wire rotate = status[2]; wire [1:0] scanlines = status[4:3]; wire blend = status[5]; wire joyswap = status[6]; -wire autoup = status[7];// Memory Protect for Lotto Fun -wire adv = status[8]; +wire autoup = status[7] | (core_mod != 7'h8);// Memory Protect for Lotto Fun +wire adv = status[8] ; reg [7:0] SW; reg [7:0] JA; reg [7:0] JB; +reg [7:0] AN0; +reg [7:0] AN1; +reg [7:0] AN2; +reg [7:0] AN3; reg [3:0] BTN; -reg blitter_sc2, sinistar; +reg blitter_sc2, sinistar, speedball; reg speech_en; wire [6:0] core_mod; @@ -87,8 +91,13 @@ always @(*) begin JA = 8'hFF; JB = 8'hFF; BTN = 4'hF; + AN0 = 8'hFF; + AN1 = 8'hFF; + AN2 = 8'hFF; + AN3 = 8'hFF; blitter_sc2 = 0; sinistar = 0; + speedball = 0; speech_en = 0; case (core_mod) @@ -150,9 +159,21 @@ always @(*) begin end 7'h8: // LOTTO FUN begin - BTN = { m_one_player, m_two_players, m_coin1 | m_coin2, reset }; - JA = ~{ 1'b0, 1'b0, m_fireB, m_fireA, m_right, m_left, m_down, m_up }; - JB = JA; + BTN = { m_one_player | m_fireA, 1'b0, m_coin1 | m_coin2, reset }; + JA = ~{ 4'b0000, m_right, m_left, m_down, m_up }; + JB = 8'b11111111;//IN1 + end + 7'h9: // Speed Ball + begin + speedball = 1; + BTN = { m_two_players, m_one_player, m_coin1 | m_coin2, reset };//IN2 + JA = 8'b11111111;//IN0 + JB = 8'b11111111;//IN1 + //todo +// AN0 =; +// AN1 =; +// AN2 =; + // AN3 =; end default: ; endcase @@ -324,6 +345,7 @@ robotron_soc robotron_soc ( .blitter_sc2 ( blitter_sc2 ), .sinistar ( sinistar ), + .speedball ( speedball ), .BTN ( BTN ), .SIN_FIRE ( ~m_fireA & ~m_fire2A ), .SIN_BOMB ( ~m_fireB & ~m_fire2B ), diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_cpu/robotron_cpu.vhd b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_cpu/robotron_cpu.vhd index 92398aaa..9e0321db 100644 --- a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_cpu/robotron_cpu.vhd +++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_cpu/robotron_cpu.vhd @@ -39,7 +39,7 @@ entity robotron_cpu is clock : in std_logic; blitter_sc2 : in std_logic; sinistar : in std_logic; - + speedball : in std_logic; -- MC6809 signals A : in std_logic_vector(15 downto 0); Dout : in std_logic_vector(7 downto 0); @@ -123,7 +123,11 @@ entity robotron_cpu is JB : in std_logic_vector(7 downto 0); SIN_FIRE : in std_logic; SIN_BOMB : in std_logic; - + -- Analog Input + AN0 : in std_logic_vector(7 downto 0); + AN1 : in std_logic_vector(7 downto 0); + AN2 : in std_logic_vector(7 downto 0); + AN3 : in std_logic_vector(7 downto 0); -- To sound board HAND : in std_logic := '1'; PB : out std_logic_vector(5 downto 0) @@ -224,6 +228,7 @@ architecture Behavioral of robotron_cpu is signal hiram_access : boolean; -- Sinistar hiram signal color_table_access : boolean; signal widget_pia_access : boolean; + signal extra_pia_access : boolean; signal rom_pia_access : boolean; signal blt_register_access : boolean; signal video_counter_access : boolean; @@ -315,6 +320,35 @@ architecture Behavioral of robotron_cpu is signal widget_ic4_y : std_logic_vector(4 downto 1); ------------------------------------------------------------------- + +-- signal SLAM : std_logic := '1'; +-- signal R_COIN : std_logic := '1'; +-- signal C_COIN : std_logic := '1'; +-- signal L_COIN : std_logic := '1'; +-- signal H_S_RESET : std_logic := '1'; +-- signal ADVANCE : std_logic := '1'; +-- signal AUTO_UP : std_logic := '0'; + + signal extra_pia_rs : std_logic_vector(1 downto 0) := (others => '0'); + signal extra_pia_cs : std_logic := '0'; + signal extra_pia_write : std_logic := '0'; + signal extra_pia_data_in : std_logic_vector(7 downto 0); + signal extra_pia_data_out : std_logic_vector(7 downto 0); + signal extra_pia_ca2_out : std_logic; + signal extra_pia_ca2_dir : std_logic; + signal extra_pia_irq_a : std_logic; + signal extra_pia_pa_in : std_logic_vector(7 downto 0); + signal extra_pia_pa_out : std_logic_vector(7 downto 0); + signal extra_pia_pa_dir : std_logic_vector(7 downto 0); + + signal extra_pia_cb2_out : std_logic; + signal extra_pia_cb2_dir : std_logic; + signal extra_pia_irq_b : std_logic; + signal extra_pia_pb_in : std_logic_vector(7 downto 0); + signal extra_pia_pb_out : std_logic_vector(7 downto 0); + signal extra_pia_pb_dir : std_logic_vector(7 downto 0); + + ------------------------------------------------------------------- signal blt_rs : std_logic_vector(2 downto 0) := (others => '0'); signal blt_reg_cs : std_logic := '0'; @@ -431,6 +465,9 @@ begin -- Widget PIA: read/write: C8X4 - C8X7 widget_pia_access <= std_match(address, "11001000----01--"); + -- Speedball PIA: read/write: C8X8 - C8XB + extra_pia_access <= std_match(address, "11001000----1---"); + -- ROM PIA: read/write: C8XC - C8XF rom_pia_access <= std_match(address, "11001000----11--"); @@ -502,6 +539,9 @@ begin widget_pia_cs <= '0'; widget_pia_write <= '0'; + + extra_pia_cs <= '0'; + extra_pia_write <= '0'; if clock_12_phase( 0) = '1' then memory_address <= "00" & video_prom_address & @@ -676,6 +716,15 @@ begin widget_pia_write <= to_std_logic(write); widget_pia_cs <= '1'; end if; + + if speedball = '1' then + if extra_pia_access then + extra_pia_rs <= address(1 downto 0); + extra_pia_data_in <= mpu_data_in; + extra_pia_write <= to_std_logic(write); + extra_pia_cs <= '1'; + end if; + end if; if control_access and write then blt_win_en <= mpu_data_in(2) and sinistar; @@ -699,6 +748,10 @@ begin if widget_pia_access then mpu_data_out <= widget_pia_data_out; end if; + + if extra_pia_access then + mpu_data_out <= extra_pia_data_out; + end if; if rom_pia_access then mpu_data_out <= rom_pia_data_out; @@ -720,6 +773,7 @@ begin to_std_logic(rom_access) & to_std_logic(rom_pia_access) & to_std_logic(widget_pia_access) & +-- to_std_logic(extra_pia_access) & to_std_logic(blt_register_access); led_bcd_in <= debug_blt_source_address; @@ -773,7 +827,7 @@ begin ); ------------------------------------------------------------------- - +--IN2 rom_pia_pa_in <= not HAND & not SLAM & not C_COIN & @@ -833,28 +887,30 @@ begin widget_ic4_b <= not (FIRE_RIGHT_1 & FIRE_LEFT_1 & FIRE_DOWN_1 & FIRE_UP_1); widget_ic4_y <= widget_ic4_b when widget_pia_input_select = '1' else widget_ic4_a; - - widget_pia_pa_in <= widget_ic4_y(2) & - widget_ic4_y(1) & + --IN0 + widget_pia_pa_in <= widget_ic4_y(2) &--fire down + widget_ic4_y(1) &--fire up not PLAYER_2_START & not PLAYER_1_START & - widget_ic3_y(4) & - widget_ic3_y(3) & - widget_ic3_y(2) & - widget_ic3_y(1) when sinistar = '0' else - widget_ic4_y(4) & - widget_ic4_y(3) & - widget_ic4_y(2) & - widget_ic4_y(1) & - widget_ic3_y(4) & - widget_ic3_y(3) & - widget_ic3_y(2) & - widget_ic3_y(1); + widget_ic3_y(4) &--right + widget_ic3_y(3) &--left + widget_ic3_y(2) &--down + widget_ic3_y(1) when sinistar = '0' else--up + + widget_ic4_y(4) &--fire right + widget_ic4_y(3) &--fire left + widget_ic4_y(2) &--fire down + widget_ic4_y(1) &--fire up + widget_ic3_y(4) &--right + widget_ic3_y(3) &--left + widget_ic3_y(2) &--down + widget_ic3_y(1);--up +--IN1 widget_pia_pb_in <= not board_interface_w1 & "00000" & - widget_ic4_y(4) & - widget_ic4_y(3) when sinistar = '0' else - not board_interface_w1 & + widget_ic4_y(4) &--fire right + widget_ic4_y(3) when sinistar = '0' else --fire left + not board_interface_w1 & "0" & not PLAYER_2_START & not PLAYER_1_START & @@ -894,6 +950,79 @@ begin ); ------------------------------------------------------------------- + +-- PORT_START("IN3") +-- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) +-- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) +-- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) +-- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) +-- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) +-- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) +-- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) +-- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) + + +--IN3 + extra_pia_pa_in <= '0' & --unknown + FIRE_UP_2 & --fire 2 + '0' & --unknown + FIRE_UP_1 & --fire 1 + MOVE_DOWN_2 &--down2 + MOVE_UP_2 &--up2 + MOVE_DOWN_1 &--down1 + MOVE_UP_1;--up1 + +-- PORT_START("IN4") +-- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) +-- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) +-- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) +-- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) +-- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) +-- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) +-- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 ) +-- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 ) + + +--IN4 + extra_pia_pb_in <= not PLAYER_2_START & + not PLAYER_1_START & + "00" & + MOVE_RIGHT_2 & + MOVE_LEFT_2 & + MOVE_RIGHT_1 & + MOVE_LEFT_1; + + extra_pia: work.pia6821 + port map( + rst => reset, + clk => clock, + addr => address(1 downto 0), + cs => extra_pia_cs, + rw => not extra_pia_write, + + data_in => mpu_data_in, + data_out => extra_pia_data_out, + + ca1 => '0', + ca2_i => '0', + ca2_o => extra_pia_ca2_out, + ca2_oe => extra_pia_ca2_dir, + irqa => extra_pia_irq_a, + pa_i => extra_pia_pa_in, + pa_o => extra_pia_pa_out, + pa_oe => extra_pia_pa_dir, + + cb1 => '0', + cb2_i => '1', + cb2_o => extra_pia_cb2_out, + cb2_oe => extra_pia_cb2_dir, + irqb => extra_pia_irq_b, + pb_i => extra_pia_pb_in, + pb_o => extra_pia_pb_out, + pb_oe => extra_pia_pb_dir + ); + + ------------------------------------------------------------------- E <= clock_e; Q <= clock_q; diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_soc.vhd b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_soc.vhd index 8a868ad6..7fc9bb71 100644 --- a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_soc.vhd +++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/robotron_soc.vhd @@ -58,7 +58,7 @@ port ( blitter_sc2 : in std_logic; sinistar : in std_logic; - + speedball : in std_logic; -- Switches SW : in std_logic_vector(7 downto 0); @@ -81,7 +81,10 @@ port ( -- 12-pin connectors JA : in std_logic_vector(7 downto 0); JB : in std_logic_vector(7 downto 0); - + AN0 : in std_logic_vector(7 downto 0); + AN1 : in std_logic_vector(7 downto 0); + AN2 : in std_logic_vector(7 downto 0); + AN3 : in std_logic_vector(7 downto 0); dl_clock : in std_logic; dl_addr : in std_logic_vector(16 downto 0); dl_data : in std_logic_vector(7 downto 0); @@ -166,7 +169,7 @@ port map ( clock => clock, blitter_sc2 => blitter_sc2, sinistar => sinistar, - + speedball => speedball, A => cpu_a, Dout => cpu_dout, Din => cpu_din, @@ -231,7 +234,11 @@ port map ( -- 12-pin connectors JA => JA, JB => JB, - + -- Analog Input + AN0 => AN0, + AN1 => AN1, + AN2 => AN2, + AN3 => AN3, -- Sound board PB => select_sound, HAND => hand diff --git a/common/Sound/opl3/NextZ80ALU.v b/common/Sound/opl3/NextZ80ALU.v new file mode 100644 index 00000000..58c5b6a5 --- /dev/null +++ b/common/Sound/opl3/NextZ80ALU.v @@ -0,0 +1,372 @@ +////////////////////////////////////////////////////////////////////////////////// +// +// This file is part of the NextZ80 project +// http://www.opencores.org/cores/nextz80/ +// +// Filename: NextZ80ALU.v +// Description: Implementation of Z80 compatible CPU - ALU +// Version 1.0 +// Creation date: 28Jan2011 - 18Mar2011 +// +// Author: Nicolae Dumitrache +// e-mail: ndumitrache@opencores.org +// +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2011 Nicolae Dumitrache +// +// This source file may be used and distributed without +// restriction provided that this copyright statement is not +// removed from the file and that any derivative work contains +// the original copyright notice and the associated disclaimer. +// +// This source file is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; +// either version 2.1 of the License, or (at your option) any +// later version. +// +// This source 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 Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General +// Public License along with this source; if not, download it +// from http://www.opencores.org/lgpl.shtml +// +/////////////////////////////////////////////////////////////////////////////////// + +//FLAGS: S Z X1 N X2 PV N C +// OP[4:0] +// 00000 - ADD D0,D1 +// 00001 - ADC D0,D1 +// 00010 - SUB D0,D1 +// 00011 - SBC D0,D1 +// 00100 - AND D0,D1 +// 00101 - XOR D0,D1 +// 00110 - OR D0,D1 +// 00111 - CP D0,D1 +// 01000 - INC D0 +// 01001 - CPL D0 +// 01010 - DEC D0 +// 01011 - RRD +// 01100 - RLD +// 01101 - DAA +// 01110 - INC16 +// 01111 - DEC16 +// 10000 - ADD16LO +// 10001 - ADD16HI +// 10010 - +// 10011 - +// 10100 - CCF, pass D0 +// 10101 - SCF, pass D0 +// 10110 - +// 10111 - +// 11000 - RLCA D0 +// 11001 - RRCA D0 +// 11010 - RLA D0 +// 11011 - RRA D0 +// 11100 - {ROT, BIT, SET, RES} D0,EXOP +// RLC D0 C <-- D0 <-- D0[7] +// RRC D0 D0[0] --> D0 --> C +// RL D0 C <-- D0 <-- C +// RR D0 C --> D0 --> C +// SLA D0 C <-- D0 <-- 0 +// SRA D0 D0[7] --> D0 --> C +// SLL D0 C <-- D0 <-- 1 +// SRL D0 0 --> D0 --> C +// 11101 - IN, pass D1 +// 11110 - FLAGS <- D0 +// 11111 - NEG D1 +/////////////////////////////////////////////////////////////////////////////////// +`timescale 1ns / 1ps + +module ALU8( + input [7:0] D0, + input [7:0] D1, + input [7:0] FIN, + output reg[7:0] FOUT, + output reg [15:0] ALU8DOUT, + input [4:0] OP, + input [5:0] EXOP, // EXOP[5:4] = 2'b11 for CPI/D/R + input LDIFLAGS, // zero HF and NF on inc/dec16 + input DSTHI // destination lo + ); + + wire [7:0] daaadjust; + wire cdaa, hdaa; + daa daa_adjust(.flags(FIN), .val(D0), .adjust(daaadjust), .cdaa(cdaa), .hdaa(hdaa)); + + wire parity = ~^ALU8DOUT[15:8]; + wire zero = ALU8DOUT[15:8] == 0; + reg csin, cin; + wire [7:0]d0mux = OP[4:1] == 4'b1111 ? 8'd0 : D0; + reg [7:0]_d1mux; + wire [7:0]d1mux = OP[1] ? ~_d1mux : _d1mux; + wire [8:0]sum; + wire hf; + assign {hf, sum[3:0]} = d0mux[3:0] + d1mux[3:0] + cin; + assign sum[8:4] = d0mux[7:4] + d1mux[7:4] + hf; + wire overflow = (d0mux[7] & d1mux[7] & !sum[7]) | (!d0mux[7] & !d1mux[7] & sum[7]); + reg [7:0]dbit; + + always @* begin + ALU8DOUT = 16'hxxxx; + FOUT = 8'hxx; + case({OP[4:2]}) + 0,1,4,7: _d1mux = D1; + 2: _d1mux = 1; + 3: _d1mux = daaadjust; // DAA + 6,5: _d1mux = 8'hxx; + endcase + case({OP[2:0], FIN[0]}) + 0,1,2,7,8,9,10,11,12,13: cin = 0; + 3,4,5,6,14,15: cin = 1; + endcase + case(EXOP[3:0]) + 0: dbit = 8'b11111110; + 1: dbit = 8'b11111101; + 2: dbit = 8'b11111011; + 3: dbit = 8'b11110111; + 4: dbit = 8'b11101111; + 5: dbit = 8'b11011111; + 6: dbit = 8'b10111111; + 7: dbit = 8'b01111111; + 8: dbit = 8'b00000001; + 9: dbit = 8'b00000010; + 10: dbit = 8'b00000100; + 11: dbit = 8'b00001000; + 12: dbit = 8'b00010000; + 13: dbit = 8'b00100000; + 14: dbit = 8'b01000000; + 15: dbit = 8'b10000000; + endcase + case(OP[3] ? EXOP[2:0] : OP[2:0]) + 0,5: csin = D0[7]; + 1: csin = D0[0]; + 2,3: csin = FIN[0]; + 4,7: csin = 0; + 6: csin = 1; + endcase + case(OP[4:0]) + 0,1,2,3,8,10: begin // ADD, ADC, SUB, SBC, INC, DEC + ALU8DOUT[15:8] = sum[7:0]; + ALU8DOUT[7:0] = sum[7:0]; + FOUT[0] = OP[3] ? FIN[0] : (sum[8] ^ OP[1]); // inc/dec + FOUT[1] = OP[1]; + FOUT[2] = overflow; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = hf ^ OP[1]; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = zero & (FIN[6] | ~EXOP[5] | ~DSTHI | OP[3]); //(EXOP[5] & DSTHI) ? (zero & FIN[6]) : zero; // adc16/sbc16 + FOUT[7] = ALU8DOUT[15]; + end + 16,17: begin // ADD16LO, ADD16HI + ALU8DOUT[15:8] = sum[7:0]; + ALU8DOUT[7:0] = sum[7:0]; + FOUT[0] = sum[8]; + FOUT[1] = OP[1]; + FOUT[2] = FIN[2]; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = hf ^ OP[1]; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = FIN[6]; + FOUT[7] = FIN[7]; + end + 7: begin // CP + ALU8DOUT[15:8] = sum[7:0]; + FOUT[0] = EXOP[5] ? FIN[0] : !sum[8]; // CPI/D/R + FOUT[1] = OP[1]; + FOUT[2] = overflow; + FOUT[3] = D1[3]; + FOUT[4] = !hf; + FOUT[5] = D1[5]; + FOUT[6] = zero; + FOUT[7] = ALU8DOUT[15]; + end + 31: begin // NEG + ALU8DOUT[15:8] = sum[7:0]; + FOUT[0] = !sum[8]; + FOUT[1] = OP[1]; + FOUT[2] = overflow; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = !hf; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = zero; + FOUT[7] = ALU8DOUT[15]; + end + 4: begin // AND + ALU8DOUT[15:8] = D0 & D1; + FOUT[0] = 0; + FOUT[1] = 0; + FOUT[2] = parity; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = 1; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = zero; + FOUT[7] = ALU8DOUT[15]; + end + 5,6: begin //XOR, OR + ALU8DOUT[15:8] = OP[0] ? (D0 ^ D1) : (D0 | D1); + FOUT[0] = 0; + FOUT[1] = 0; + FOUT[2] = parity; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = 0; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = zero; + FOUT[7] = ALU8DOUT[15]; + end + 9: begin // CPL + ALU8DOUT[15:8] = ~D0; + FOUT[0] = FIN[0]; + FOUT[1] = 1; + FOUT[2] = FIN[2]; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = 1; + FOUT[5] = ALU8DOUT[13]; + FOUT[7:6] = FIN[7:6]; + end + 11,12: begin // RLD, RRD + if(OP[0]) ALU8DOUT = {D0[7:4], D1[3:0], D0[3:0], D1[7:4]}; + else ALU8DOUT = {D0[7:4], D1[7:0], D0[3:0]}; + FOUT[0] = FIN[0]; + FOUT[1] = 0; + FOUT[2] = parity; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = 0; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = zero; + FOUT[7] = ALU8DOUT[15]; + end + 13: begin // DAA + ALU8DOUT[15:8] = sum[7:0]; + FOUT[0] = cdaa; + FOUT[1] = FIN[1]; + FOUT[2] = parity; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = hdaa; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = zero; + FOUT[7] = ALU8DOUT[15]; + end + 14,15: begin // inc/dec 16 + ALU8DOUT = {D0, D1} + (OP[0] ? 16'hffff : 16'h0001); + FOUT[0] = FIN[0]; + FOUT[1] = LDIFLAGS ? 1'b0 : FIN[1]; + FOUT[2] = ALU8DOUT != 0; + FOUT[3] = FIN[3]; + FOUT[4] = LDIFLAGS ? 1'b0 : FIN[4]; + FOUT[5] = FIN[5]; + FOUT[6] = FIN[6]; + FOUT[7] = FIN[7]; + end + 20,21: begin // CCF, SCF + ALU8DOUT[15:8] = D0; + FOUT[0] = OP[0] ? 1'b1 : !FIN[0]; + FOUT[1] = 1'b0; + FOUT[2] = FIN[2]; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = OP[0] ? 1'b0 : FIN[0]; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = FIN[6]; + FOUT[7] = FIN[7]; + end + 24,25,26,27, 28: begin // ROT, BIT, RES, SET + case({OP[2], EXOP[4:3]}) + 0,1,2,3,4: // rot - shift + if(OP[2] ? EXOP[0] : OP[0]){ALU8DOUT[15:8], FOUT[0]} = {csin, D0}; // right + else {FOUT[0], ALU8DOUT[15:8]} = {D0, csin}; // left + 5,6: begin // BIT, RES + FOUT[0] = FIN[0]; + ALU8DOUT[15:8] = D0 & dbit; + end + 7: begin // SET + FOUT[0] = FIN[0]; + ALU8DOUT[15:8] = D0 | dbit; + end + endcase + ALU8DOUT[7:0] = ALU8DOUT[15:8]; + FOUT[1] = 0; + FOUT[2] = OP[2] ? (EXOP[3] ? zero : parity) : FIN[2]; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = OP[2] & EXOP[3]; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = OP[2] ? zero : FIN[6]; + FOUT[7] = OP[2] ? ALU8DOUT[15] : FIN[7]; + end + 29: begin // IN, pass D1 + ALU8DOUT = {D1, D1}; + FOUT[0] = FIN[0]; + FOUT[1] = 0; + FOUT[2] = parity; + FOUT[3] = ALU8DOUT[11]; + FOUT[4] = 0; + FOUT[5] = ALU8DOUT[13]; + FOUT[6] = zero; + FOUT[7] = ALU8DOUT[15]; + end + 30: FOUT = D0; // FLAGS <- D0 + default:; + endcase + end +endmodule + +module daa ( + input [7:0]flags, + input [7:0]val, + output wire [7:0]adjust, + output reg cdaa, + output reg hdaa + ); + + wire h08 = val[7:4] < 9; + wire h09 = val[7:4] < 10; + wire l05 = val[3:0] < 6; + wire l09 = val[3:0] < 10; + reg [1:0]aa; + assign adjust = ({1'b0, aa[1], aa[1], 2'b0, aa[0], aa[0], 1'b0} ^ {8{flags[1]}}) + flags[1]; + + always @* begin + case({flags[0], h08, h09, flags[4], l09}) + 5'b00101, 5'b01101: aa = 0; + 5'b00111, 5'b01111, 5'b01000, 5'b01010, 5'b01100, 5'b01110: aa = 1; + 5'b00001, 5'b01001, 5'b10001, 5'b10101, 5'b11001, 5'b11101: aa = 2; + default: aa = 3; + endcase + case({flags[0], h08, h09, l09}) + 4'b0011, 4'b0111, 4'b0100, 4'b0110: cdaa = 0; + default: cdaa = 1; + endcase + case({flags[1], flags[4], l05, l09}) + 4'b0000, 4'b0010, 4'b0100, 4'b0110, 4'b1110, 4'b1111: hdaa = 1; + default: hdaa = 0; + endcase + end +endmodule + + +module ALU16( + input [15:0] D0, + input [7:0] D1, + output wire[15:0] DOUT, + input [2:0]OP // 0-NOP, 1-INC, 2-INC2, 3-ADD, 4-NOP, 5-DEC, 6-DEC2 + ); + + reg [15:0] mux; + always @* + case(OP) + 0: mux = 0; // post inc + 1: mux = 1; // post inc + 2: mux = 2; // post inc + 3: mux = {D1[7], D1[7], D1[7], D1[7], D1[7], D1[7], D1[7], D1[7], D1[7:0]}; // post inc + 4: mux = 0; // no post inc + 5: mux = 16'hffff; // no post inc + 6: mux = 16'hfffe; // no post inc + default: mux = 16'hxxxx; + endcase + + assign DOUT = D0 + mux; +endmodule diff --git a/common/Sound/opl3/NextZ80CPU.v b/common/Sound/opl3/NextZ80CPU.v new file mode 100644 index 00000000..8150c52c --- /dev/null +++ b/common/Sound/opl3/NextZ80CPU.v @@ -0,0 +1,1501 @@ +////////////////////////////////////////////////////////////////////////////////// +// +// This file is part of the NextZ80 project +// http://www.opencores.org/cores/nextz80/ +// +// Filename: NextZ80CPU.v +// Description: Implementation of Z80 compatible CPU +// Version 1.0 +// Creation date: 28Jan2011 - 18Mar2011 +// +// Author: Nicolae Dumitrache +// e-mail: ndumitrache@opencores.org +// +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2011 Nicolae Dumitrache +// +// This source file may be used and distributed without +// restriction provided that this copyright statement is not +// removed from the file and that any derivative work contains +// the original copyright notice and the associated disclaimer. +// +// This source file is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; +// either version 2.1 of the License, or (at your option) any +// later version. +// +// This source 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 Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General +// Public License along with this source; if not, download it +// from http://www.opencores.org/lgpl.shtml +// +/////////////////////////////////////////////////////////////////////////////////// +// +// Comments: +// This project was developed and tested on a XILINX Spartan3AN board. +// +// NextZ80 processor features: +// All documented/undocumented intstructions are implemented +// All documented/undocumented flags are implemented +// All (doc/undoc)flags are changed accordingly by all (doc/undoc)instructions. +// The block instructions (LDx, CPx, INx, OUTx) have only the documented effects on flags. +// The Bit n,(IX/IY+d) and BIT n,(HL) undocumented flags XF and YF are implemented like the BIT n,r and not actually like on the real Z80 CPU. +// All interrupt modes implemented: NMI, IM0, IM1, IM2 +// R register available +// Fast conditional jump/call/ret takes only 1 T state if not executed +// Fast block instructions: LDxR - 3 T states/byte, INxR/OTxR - 2 T states/byte, CPxR - 4 T states / byte +// Each CPU machine cycle takes (mainly) one clock T state. This makes this processor over 4 times faster than a Z80 at the same +// clock frequency (some instructions are up to 10 times faster). +// Works at ~40MHZ on Spartan XC3S700AN speed grade -4) +// Small size ( ~12% ~700 slices - on Spartan XC3S700AN ) +// Tested with ZEXDOC (fully compliant). +// Tested with ZEXALL (all OK except CPx(R), LDx(R), BIT n, (IX/IY+d), BIT n, (HL) - fail because of the un-documented XF and YF flags). +// +/////////////////////////////////////////////////////////////////////////////////// + +// altera message_off 10270 10027 + +`timescale 1ns / 1ps + +module NextZ80 +( + input wire[7:0] DI, + output wire[7:0] DO, + output wire[15:0] ADDR, + output reg WR, + output reg MREQ, + output reg IORQ, + output reg HALT, + output reg M1, + input wire CLK, + input wire RESET, + input wire INT, + input wire NMI, + input wire WAIT +); + +// connections and registers + reg [9:0] CPUStatus = 0; // 0=AF-AF', 1=HL-HL', 2=DE-HL, 3=DE'-HL', 4=HL-X, 5=IX-IY, 6=IFF1,7=IFF2, 9:8=IMODE + wire [7:0] ALU8FLAGS; + wire [7:0] FLAGS; + wire [7:0] ALU80; + wire [7:0] ALU81; + wire [15:0]ALU160; + wire [7:0] ALU161; + wire [15:0]ALU8OUT; + + reg [9:0] FETCH = 0; + reg [2:0] STAGE = 0; + wire [5:0] opd; + wire [2:0] op16; + wire op0mem = FETCH[2:0] == 6; + wire op1mem = FETCH[5:3] == 6; + reg [1:0]fetch98; + +// stage status + reg [1:0]DO_SEL; // ALU80 - th - flags - ALU8OUT[7:0] + reg ALU160_SEL; // regs - pc + reg DINW_SEL; // ALU8OUT - DI + reg [5:0]WE; // 5 = flags, 4 = PC, 3 = SP, 2 = tmpHI, 1 = hi, 0 = lo + reg [4:0] ALU8OP; + reg [2:0] ALU16OP; + reg next_stage; + reg [3:0]REG_WSEL; + reg [3:0]REG_RSEL; + reg [11:0]status; // 0=AF-AF', 1=HL-HL', 2=DE-HL, 3=DE'-HL', 4=HL-X, 5=IX-IY, 7:6=IFFVAL, 9:8=imode, 10=setIMODE, 11=set IFFVAL +// FETCH[5:3]: 000 NZ, 001 Z, 010 NC, 011 C, 100 PO, 101 PE, 110 P, 111 M + wire [7:0]FlagMux = {FLAGS[7], !FLAGS[7], FLAGS[2], !FLAGS[2], FLAGS[0], !FLAGS[0], FLAGS[6], !FLAGS[6]}; + reg tzf; + reg FNMI = 0, SNMI = 0; + reg SRESET = 0; + reg SINT = 0; + wire [2:0]intop = FETCH[1] ? 3'd4 : (FETCH[0] ? 3'd5 : 3'd6); + reg xmask; + + Z80Reg CPU_REGS ( + .rstatus(CPUStatus[7:0]), + .M1(M1), + .WE(WE), + .CLK(CLK), + .ALU8OUT(ALU8OUT), + .DI(DI), + .DO(DO), + .ADDR(ADDR), + .CONST(FETCH[7] ? {2'b00, FETCH[5:3], 3'b000} : 8'h66), // RST/NMI address + .ALU80(ALU80), + .ALU81(ALU81), + .ALU160(ALU160), + .ALU161(ALU161), + .ALU8FLAGS(ALU8FLAGS), + .FLAGS(FLAGS), + .DO_SEL(DO_SEL), + .ALU160_sel(ALU160_SEL), + .REG_WSEL(REG_WSEL), + .REG_RSEL(REG_RSEL), + .DINW_SEL(DINW_SEL), + .XMASK(xmask), + .ALU16OP(ALU16OP), // used for post increment for ADDR, SP mux re-direct + .WAIT(WAIT) + ); + + ALU8 CPU_ALU8 ( + .D0(ALU80), + .D1(ALU81), + .FIN(FLAGS), + .FOUT(ALU8FLAGS), + .ALU8DOUT(ALU8OUT), + .OP(ALU8OP), + .EXOP(FETCH[8:3]), + .LDIFLAGS(REG_WSEL[2]), // inc16 HL + .DSTHI(!REG_WSEL[0]) + ); + + ALU16 CPU_ALU16 ( + .D0(ALU160), + .D1(ALU161), + .DOUT(ADDR), + .OP(ALU16OP) + ); + + always @(posedge CLK) + if(!WAIT) begin + SRESET <= RESET; + SNMI <= NMI; + SINT <= INT; + if(!SNMI) FNMI <= 0; + if(SRESET) FETCH <= 10'b1110000000; + else + if(FETCH[9:6] == 4'b1110) {FETCH[9:7]} <= 3'b000; // exit RESET state + else begin + if(M1) + case({MREQ, CPUStatus[9:8]}) + 3'b000, 3'b001, 3'b100, 3'b101, 3'b110, 3'b111: FETCH <= {fetch98, DI}; + 3'b010: FETCH <= {fetch98, 8'hff}; // IM1 - RST38 + 3'b011: ; // IM2 - get addrLO + endcase + if(~|{next_stage, fetch98[1:0], status[4]}) // INT or NMI sample + if(SNMI & !FNMI) begin // NMI posedge + {FETCH[9:6], FETCH[1:0]} <= {4'b1101, HALT, M1}; + FNMI <= 1; // NMI acknowledged + end else if(SINT & CPUStatus[6] & !status[11]) {FETCH[9:6], FETCH[1:0]} <= {4'b1100, HALT, M1}; // INT request + end + if(next_stage) STAGE <= STAGE + 3'b001; + else STAGE <= 0; + if(status[4]) CPUStatus[5:4] <= status[5:4]; + else if(~|{next_stage, fetch98[1]} | fetch98[0]) CPUStatus[4] <= 1'b0; // clear X + CPUStatus[3:0] <= CPUStatus[3:0] ^ status[3:0]; + if(status[11]) CPUStatus[7:6] <= status[7:6]; // IFF2:1 + if(status[10]) CPUStatus[9:8] <= status[9:8]; // IMM + tzf <= ALU8FLAGS[6]; + end + + assign opd[0] = FETCH[0] ^ &FETCH[2:1]; + assign opd[2:1] = FETCH[2:1]; + assign opd[3] = FETCH[3] ^ &FETCH[5:4]; + assign opd[5:4] = FETCH[5:4]; + assign op16[2:0] = &FETCH[5:4] ? 3'b101 : {1'b0, FETCH[5:4]}; + + always @* begin + DO_SEL = 2'bxx; // ALU80 - th - flags - ALU8OUT[7:0] + ALU160_SEL = 1'bx; // regs - pc + DINW_SEL = 1'bx; // ALU8OUT - DI + WE = 6'bxxxxxx; // 5 = flags, 4 = PC, 3 = SP, 2 = tmpHI, 1 = hi, 0 = lo + ALU8OP = 5'bxxxxx; + ALU16OP = 3'b000; // NOP, post inc + next_stage = 0; + REG_WSEL = 4'bxxxx; + REG_RSEL = 4'bx0xx; // prevents default 4'b0100 which leads to incorrect P flag value in some cases (like RLA) + M1 = 1; + MREQ = 1; + WR = 0; + + HALT = 0; + IORQ = 0; + status = 12'b00xxxxx00000; + fetch98 = 2'b00; + + case({FETCH[7:6], op1mem, op0mem}) + 4'b0000, 4'b0001, 4'b0010, 4'b0011, 4'b0100, 4'b1000, 4'b1100: xmask = 1; + default: xmask = 0; + endcase + + case(FETCH[9:6]) +//------------------------------------------- block 00 ---------------------------------------------------- + 4'b0000: + case(FETCH[3:0]) +// ----------------------- NOP, EX AF, AF', DJNZ, JR, JR c -------------------- + 4'b0000, 4'b1000: + case(FETCH[5:4]) + 2'b00: begin // NOP, EX AF, AF' + DO_SEL = 2'bxx; + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + status[0] = FETCH[3]; + end + 2'b01: + if(!STAGE[0]) begin // DJNZ, JR - stage1 + ALU160_SEL = 1; // pc + WE = 6'b010100; // PC, tmpHI + if(!FETCH[3]) begin + ALU8OP = 5'b01010; // DEC, for tzf only + REG_WSEL = 4'b0000; // B + end + next_stage = 1; + M1 = 0; + end else if(FETCH[3]) begin // JR - stage2 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + ALU16OP = 3; // ADD + end else begin // DJNZ - stage2 + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = 6'b010x10; // PC, hi + ALU8OP = 5'b01010; // DEC + ALU16OP = tzf ? 3'd0 : 3'd3; // NOP/ADD + REG_WSEL = 4'b0000; // B + end + 2'b10, 2'b11: // JR cc, stage1, stage2 + case({STAGE[0], FlagMux[{1'b0, FETCH[4:3]}]}) + 2'b00, 2'b11: begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + ALU16OP = STAGE[0] ? 3'd3 : 3'd1; // ADD/ INC, post inc + end + 2'b01: begin + ALU160_SEL = 1; // pc + WE = 6'b010100; // PC, tmpHI + next_stage = 1; + M1 = 0; + end + endcase + endcase +// ----------------------- LD rr,nn -------------------- + 4'b0001: // LD rr,nn, stage1 + case({STAGE[1:0], op16[2]}) + 3'b00_0, 3'b00_1, 3'b01_0, 3'b01_1: begin // LD rr,nn, stage1,2 + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = {4'b010x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // PC, lo/HI + next_stage = 1; + REG_WSEL = {op16, 1'bx}; + M1 = 0; + end + 3'b10_0, 3'b11_1: begin // BC, DE, HL, stage3, SP stage4 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + 3'b10_1: begin // SP stage3 + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 4; // NOP + next_stage = 1; + REG_RSEL = 4'b101x; // tmpSP + M1 = 0; + MREQ = 0; + end + endcase +// ----------------------- LD (BC) A - LD (DE) A - LD (nn) HL, LD (nn),A -------------------- +// ----------------------- LD A (BC) - LD A (DE) - LD HL (nn), LD A (nn) -------------------- + 4'b0010, 4'b1010: + case(STAGE[2:0]) + 3'b000: + if(FETCH[5] == 0) begin // LD (BC) A, LD (DE) A - stage1 + if(FETCH[3]) DINW_SEL = 1; // DI + else DO_SEL = 2'b00; // ALU80 + ALU160_SEL = 0; // regs + WE = {4'b000x, FETCH[3], 1'bx}; // hi + next_stage = 1; + REG_WSEL = FETCH[3] ? 4'b011x : 4'b0110; // A + REG_RSEL = {op16, 1'bx}; + M1 = 0; + WR = !FETCH[3]; + end else begin // LD (nn) A - LD (nn) HL - stage 1 + ALU160_SEL = 1; // PC + DINW_SEL = 1; // DI + WE = 6'b010xx1; // PC, lo + next_stage = 1; + REG_WSEL = 4'b111x; + M1 = 0; + end + 3'b001: + if(FETCH[5] == 0) begin // LD (BC), A, LD (DE), A - stage2 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end else begin // LD (nn),A - LH (nn),HL - stage 2 + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = 6'b010x10; // PC, hi + next_stage = 1; + REG_WSEL = 4'b111x; + M1 = 0; + end + 3'b010: begin + ALU160_SEL = 1'b0; // regs + REG_RSEL = 4'b111x; + M1 = 0; + WR = !FETCH[3]; + next_stage = 1; + if(FETCH[3]) begin // LD A (nn) - LD HL (nn) - stage 3 + DINW_SEL = 1; // DI + WE = {4'b000x, FETCH[4] ? 1'b1 : 1'bx, FETCH[4] ? 1'bx : 1'b1}; // lo/hi + REG_WSEL = FETCH[4] ? 4'b011x : 4'b010x; // A or L + end else begin // LD (nn),A - LD (nn),HL - stage 3 + DO_SEL = 2'b00; // ALU80 + WE = 6'b000x00; // nothing + REG_WSEL = FETCH[4] ? 4'b0110 : 4'b0101; // A or L + end + end + 3'b011: + if(FETCH[4]) begin // LD (nn),A - stage 4 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end else begin + REG_RSEL = 4'b111x; + M1 = 0; + WR = !FETCH[3]; + ALU160_SEL = 1'b0; // regs + ALU16OP = 1; // INC + next_stage = 1; + if(FETCH[3]) begin // LD HL (nn) - stage 4 + DINW_SEL = 1; // DI + WE = 6'b000x10; // hi + REG_WSEL = 4'b010x; // H + end else begin // LD (nn),HL - stage 4 + DO_SEL = 2'b00; // ALU80 + WE = 6'b000x00; // nothing + REG_WSEL = 4'b0100; // H + end + end + 3'b100: begin // LD (nn),HL - stage 5 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + endcase +// ----------------------- inc/dec rr -------------------- + 4'b0011, 4'b1011: + if(!STAGE[0]) + if(op16[2]) begin // SP - stage1 + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = {FETCH[3], 1'b0, FETCH[3]}; // post inc, dec + next_stage = 1; + REG_RSEL = 4'b101x; // sp + M1 = 0; + MREQ = 0; + end else begin // BC, DE, HL - stage 1 + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = 6'b010x11; // PC, hi, lo + ALU8OP = {4'b0111, FETCH[3]}; // INC16 / DEC16 + REG_WSEL = {op16, 1'b0}; // hi + REG_RSEL = {op16, 1'b1}; // lo + end + else begin // SP, stage2 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end +// ----------------------- inc/dec 8 -------------------- + 4'b0100, 4'b0101, 4'b1100, 4'b1101: + if(!op1mem) begin //regs + DINW_SEL = 0; // ALU8OUT + ALU160_SEL = 1; // pc + WE = opd[3] ? 6'b110x01 : 6'b110x10; // flags, PC, hi/lo + ALU8OP = {3'b010, FETCH[0], 1'b0}; // inc / dec + REG_WSEL = {1'b0, opd[5:3]}; + end else case({STAGE[1:0], CPUStatus[4]}) + 3'b00_0, 3'b01_1: begin // (HL) - stage1, (X) - stage2 + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = 6'b000001; // lo + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; + next_stage = 1; + REG_WSEL = 4'b011x; // tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + end + 3'b00_1: begin // (X) - stage1 + ALU160_SEL = 1; // pc + WE = 6'b010100; // PC, tmpHI + next_stage = 1; + M1 = 0; + end + 3'b01_0, 3'b10_1: begin // (HL) stage2, (X) - stage3 + DO_SEL = 2'b11; // ALU80OUT + ALU160_SEL = 0; // regs + WE = 6'b100x0x; // flags + ALU8OP = {3'b010, FETCH[0], 1'b0}; // inc / dec + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; + next_stage = 1; + REG_WSEL = 4'b0111; // tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + WR = 1; + end + 3'b10_0, 3'b11_1: begin // (HL) - stage3, (X) - stage 4 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + endcase +// ----------------------- ld r/(HL-X), n -------------------- + 4'b0110, 4'b1110: + case({STAGE[1:0], CPUStatus[4], op1mem}) + 4'b00_0_0, 4'b00_0_1, 4'b00_1_0, 4'b01_1_1: begin // r, (HL) - stage1, (X) - stage2 (read n) + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = opd[3] ? 6'b010001 : 6'b010010; // PC, hi/lo + next_stage = 1; + REG_WSEL = {1'b0, opd[5:4], 1'bx}; + M1 = 0; + end + 4'b01_0_0, 4'b01_1_0, 4'b10_0_1, 4'b11_1_1: begin // r - stage2, (HL) - stage3, (X) - stage4 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + 4'b01_0_1, 4'b10_1_1: begin // (HL) - stage2, (X) - stage3 + DO_SEL = 2'b00; // ALU80 + ALU160_SEL = 0; // regs + WE = 6'b000x0x; // nothing + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; + next_stage = 1; + REG_WSEL = 4'b0111; // tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + WR = 1; + end + 4'b00_1_1: begin // (X) - stage1 + ALU160_SEL = 1; // pc + WE = 6'b010100; // PC, tmpHI + next_stage = 1; + M1 = 0; + end + endcase +// ----------------------- rlca, rrca, rla, rra, daa, cpl, scf, ccf -------------------- + 4'b0111, 4'b1111: + case(FETCH[5:3]) + 3'b000, 3'b001, 3'b010, 3'b011, 3'b100, 3'b101: begin // rlca, rrca, rla, rra, daa, cpl + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = 6'b110x1x; // flags, PC, hi + ALU8OP = FETCH[5] ? {2'b01, !FETCH[3], 2'b01} : {3'b110, FETCH[4:3]}; + REG_WSEL = 4'b0110; // A + end + 3'b110, 3'b111: begin // scf, ccf + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = 6'b110x0x; // flags, PC + ALU8OP = {4'b1010, !FETCH[3]}; + end + endcase +// ----------------------- add 16 -------------------- + 4'b1001: + if(!STAGE[0]) begin + DINW_SEL = 0; // ALU8OUT + WE = 6'b100x01; // flags, lo + ALU8OP = 5'b10000; // ADD16LO + next_stage = 1; + REG_WSEL = 4'b0101; // L + REG_RSEL = {op16, 1'b1}; + M1 = 0; + MREQ = 0; + end else begin + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = 6'b110x10; // flags, PC, hi + ALU8OP = 5'b10001; // ADD16HI + REG_WSEL = 4'b0100; // H + REG_RSEL = {op16, 1'b0}; + end + endcase + +// ---------------------------------------------- block 01 LD8 --------------------------------------------------- + 4'b0001: + case({STAGE[1:0], CPUStatus[4], op1mem, op0mem}) + 5'b00_0_00, 5'b00_1_00, // LD r, r 1st stage + 5'b01_0_01, // LD r, (HL) 2nd stage + 5'b10_1_01: // LD r, (X) 3rd stage + begin + ALU160_SEL = 1; // PC + DINW_SEL = 0; // ALU8 + WE = opd[3] ? 6'b010x01 : 6'b010x10; // PC and LO or HI + ALU8OP = 29; // PASS D1 + REG_WSEL = {1'b0, opd[5:4], 1'bx}; + REG_RSEL = {1'b0, opd[2:0]}; + end + 5'b00_0_01, // LD r, (HL) 1st stage + 5'b01_1_01: // LD r, (X) 2nd stage + begin + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = 6'b000x01; // LO + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; // ADD - NOP + next_stage = 1; + REG_WSEL = 4'b011x; // A - tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + end + 5'b00_1_01, // LD r, (X) 1st stage + 5'b00_1_10: // LD (X), r 1st stage + begin + ALU160_SEL = 1; // pc + WE = 6'b010100; // PC, tmpHI + next_stage = 1; + M1 = 0; + end + 5'b00_0_10, // LD (HL), r 1st stage + 5'b01_1_10: // LD (X), r 2nd stage + begin + DO_SEL = 0; // ALU80 + ALU160_SEL = 0; // regs + WE = 6'b000x00; // no write + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; // ADD - NOP + next_stage = 1; + REG_WSEL = {1'b0, opd[2:0]}; + REG_RSEL = 4'b010x; // HL + M1 = 0; + WR = 1; + end + 5'b01_0_10, // LD (HL), r 2nd stage + 5'b10_1_10: // LD (X), r 3rd stage + begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + 5'b00_0_11, 5'b00_1_11: begin // HALT + WE = 6'b000x00; // no write + M1 = 0; + MREQ = 0; + HALT = 1; + end + endcase +// ---------------------------------------------- block 10 arith8 --------------------------------------------------- + 4'b0010: + case({STAGE[1:0], CPUStatus[4], op0mem}) + 4'b00_0_0, 4'b00_1_0, // OP r,r 1st stage + 4'b01_0_1, // OP r, (HL) 2nd stage + 4'b10_1_1: // OP r, (X) 3rd stage + begin + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = {4'b110x, ~&FETCH[5:3], 1'bx}; // flags, PC, hi + ALU8OP = {2'b00, FETCH[5:3]}; + REG_WSEL = 4'b0110; // A + REG_RSEL = {1'b0, opd[2:0]}; + end + 4'b00_0_1, // OP r, (HL) 1st stage + 4'b01_1_1: // OP r, (X) 2nd stage + begin + ALU160_SEL = 0; // HL + DINW_SEL = 1; // DI + WE = 6'b000x01; // lo + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; // ADD - NOP + next_stage = 1; + REG_WSEL = 4'b011x; // A-tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + end + 4'b00_1_1: // OP r, (X) 1st stage + begin + ALU160_SEL = 1; // pc + WE = 6'b010100; // PC, tmpHI + next_stage = 1; + M1 = 0; + end + endcase +//------------------------------------------- block 11 ---------------------------------------------------- + 4'b0011: + case(FETCH[3:0]) +// ----------------------- RET cc -------------------- + 4'b0000, 4'b1000: + case(STAGE[1:0]) + 2'b00, 2'b01: // stage1, stage2 + if(FlagMux[FETCH[5:3]]) begin // POP addr + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = {4'b001x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // SP, lo/hi + next_stage = 1; + REG_WSEL = 4'b111x; // tmp16 + REG_RSEL = 4'b101x; // SP + M1 = 0; + end else begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + 2'b10: begin // stage3 + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp16 + end + endcase +// ----------------------- POP -------------------- + 4'b0001: + case(STAGE[1:0]) + 2'b00, 2'b01: begin + if(op16[2]) begin // AF + WE = STAGE[0] ? 6'b101x1x : 6'b001xx1; // flags, SP, lo/hi + REG_WSEL = {3'b011, STAGE[0] ? 1'b1 : 1'bx}; + if(STAGE[0]) ALU8OP = 30; // FLAGS <- D0 + end else begin // r16 + WE = STAGE[0] ? 6'b001x10 : 6'b001xx1; // SP, lo/hi + REG_WSEL = {1'b0, FETCH[5:4], 1'bx}; + end + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + next_stage = 1; + REG_RSEL = 4'b101x; // SP + M1 = 0; + end + 2'b10: begin // stage3 + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + endcase +// ----------------------- JP cc -------------------- + 4'b0010, 4'b1010: + case(STAGE[1:0]) + 2'b00, 2'b01: begin // stage1,2 + if(FlagMux[FETCH[5:3]]) begin + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = {4'b010x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // PC, hi/lo + next_stage = 1; + REG_WSEL = 4'b111x; // tmp7 + M1 = 0; + end else begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + ALU16OP = 2; // add2 + end + end + 2'b10: begin // stage3 + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp7 + end + endcase +// ----------------------- JP, OUT (n) A, EX (SP) HL, DI -------------------- + 4'b0011: + case(FETCH[5:4]) + 2'b00: // JP + case(STAGE[1:0]) + 2'b00, 2'b01: begin // stage1,2 - read addr + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = {4'b010x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // PC, hi/lo + next_stage = 1; + REG_WSEL = 4'b111x; // tmp7 + M1 = 0; + end + 2'b10: begin // stage3 + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp7 + end + endcase + 2'b01: // OUT (n), a - stage1 - read n + case(STAGE[1:0]) + 2'b00: begin + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = 6'b010x01; // PC, lo + next_stage = 1; + REG_WSEL = 4'b011x; // tmpLO + M1 = 0; + end + 2'b01: begin // stage2 - OUT + DO_SEL = 2'b00; // ALU80 + ALU160_SEL = 0; // regs + WE = 6'b000x00; // nothing + next_stage = 1; + REG_WSEL = 4'b0110; // A + REG_RSEL = 4'b011x; // A-tmpLO + M1 = 0; + MREQ = 0; + WR = 1; + IORQ = 1; + end + 2'b10: begin // stage3 - fetch + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + endcase + 2'b10: // EX (SP), HL + case(STAGE[2:0]) + 3'b000, 3'b001: begin // stage1,2 - pop tmp16 + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = {4'b001x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // SP, lo/hi + next_stage = 1; + REG_WSEL = 4'b111x; // tmp16 + REG_RSEL = 4'b101x; // SP + M1 = 0; + end + 3'b010, 3'b011: begin // stage3,4 - push hl + DO_SEL = 2'b00; // ALU80 + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 5; // dec + next_stage = 1; + REG_WSEL = {3'b010, STAGE[0]};// H/L + REG_RSEL = 4'b101x; // SP + M1 = 0; + WR = 1; + end + 3'b100, 3'b101: begin // stage5,6 + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = {1'b0, STAGE[0], 2'b0x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // PC, lo/hi + ALU8OP = 29; // pass D1 + next_stage = !STAGE[0]; + REG_WSEL = 4'b010x; // HL + REG_RSEL = {3'b111, !STAGE[0]}; // tmp16 + M1 = STAGE[0]; + MREQ = STAGE[0]; + end + endcase + 2'b11: begin // DI + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + status[11] = 1'b1; // set IFF flags + status[7:6] = 2'b00; + end + endcase +// ----------------------- CALL cc -------------------- + 4'b0100, 4'b1100: + case(STAGE[2:0]) + 3'b000, 3'b001: // stage 1,2 - load addr + if(FlagMux[FETCH[5:3]]) begin + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = {4'b010x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // PC, hi/lo + next_stage = 1; + REG_WSEL = 4'b111x; // tmp7 + M1 = 0; + end else begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + ALU16OP = 2; // add2 + end + 3'b010, 3'b011: begin // stage 3,4 - push pc + DO_SEL = {1'b0, STAGE[0]}; // pc hi/lo + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 5; // DEC + next_stage = 1; + REG_WSEL = 4'b1xxx; // pc + REG_RSEL = 4'b101x; // sp + M1 = 0; + WR = 1; + end + 3'b100: begin // stage5 + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp7 + end + endcase +// ----------------------- PUSH -------------------- + 4'b0101: + case(STAGE[1:0]) + 2'b00, 2'b01: begin // stage1,2 + DO_SEL = {STAGE[0] & op16[2], 1'b0}; // FLAGS/ALU80 + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 5; // dec + next_stage = 1; + REG_WSEL = {1'b0, FETCH[5:4], STAGE[0]}; + REG_RSEL = 4'b101x; // SP + M1 = 0; + WR = 1; + end + 2'b10: begin //stage3 + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + endcase +// ----------------------- op A, n -------------------- + 4'b0110, 4'b1110: + if(!STAGE[0]) begin // stage1, read n + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = 6'b010x01; // PC, lo + next_stage = 1; + REG_WSEL = 4'b011x; // tmpLO + M1 = 0; + end else begin // stage 2 + DINW_SEL = 0; // ALU8OUT[7:0] + ALU160_SEL = 1; // pc + WE = {4'b110x, ~&FETCH[5:3], 1'bx}; // flags, PC, hi + ALU8OP = {2'b00, FETCH[5:3]}; + REG_WSEL = 4'b0110; // A + REG_RSEL = 4'b0111; // tmpLO + end +// ----------------------- RST -------------------- + 4'b0111, 4'b1111: + case(STAGE[1:0]) + 2'b00, 2'b01: begin // stage 1,2 - push pc + DO_SEL = {1'b0, STAGE[0]}; // pc hi/lo + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 5; // DEC + next_stage = 1; + REG_WSEL = 4'b1xxx; // pc + REG_RSEL = 4'b101x; // sp + M1 = 0; + WR = 1; + end + 2'b10: begin // stage3 + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b110x; // const + end + endcase +// ----------------------- RET, EXX, JP (HL), LD SP HL -------------------- + 4'b1001: + case(FETCH[5:4]) + 2'b00: // RET + case(STAGE[1:0]) + 2'b00, 2'b01: begin // stage1, stage2 - pop addr + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = {4'b001x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // SP, lo/hi + next_stage = 1; + REG_WSEL = 4'b111x; // tmp16 + REG_RSEL = 4'b101x; // SP + M1 = 0; + end + 2'b10: begin // stage3 - jump + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp16 + end + endcase + 2'b01: begin // EXX + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + status[1] = 1; + end + 2'b10: begin // JP (HL) + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b010x; // HL + end + 2'b11: begin // LD SP,HL + if(!STAGE[0]) begin // stage1 + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 4; // NOP, no post inc + next_stage = 1; + REG_RSEL = 4'b010x; // HL + M1 = 0; + MREQ = 0; + end else begin // stage2 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + end + endcase +// ----------------------- CB, IN A (n), EX DE HL, EI -------------------- + 4'b1011: + case(FETCH[5:4]) + 2'b00: // CB prefix + case({STAGE[0], CPUStatus[4]}) + 2'b00, 2'b11: begin + ALU160_SEL = 1; // PC + WE = 6'b010000; // PC + fetch98 = 2'b10; + end + 2'b01: begin + ALU160_SEL = 1; // PC + WE = 6'b010100; // PC, tmpHI + next_stage = 1; + M1 = 0; + end + endcase + 2'b01: // IN A, (n) + case(STAGE[1:0]) + 2'b00: begin //stage1 - read n + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = 6'b010x01; // PC, lo + next_stage = 1; + REG_WSEL = 4'b011x; // tmpLO + M1 = 0; + end + 2'b01: begin // stage2 - IN + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = 6'b000x1x; // hi + next_stage = 1; + REG_WSEL = 4'b011x; // A + REG_RSEL = 4'b011x; // A - tmpLO + M1 = 0; + MREQ = 0; + IORQ = 1; + end + 2'b10: begin // stage3 - fetch + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + endcase + 2'b10: begin // EX DE, HL + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + if(CPUStatus[1]) status[3] = 1; + else status[2] = 1; + end + 2'b11: begin // EI + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + status[11] = 1'b1; + status[7:6] = 2'b11; + end + endcase +// ----------------------- CALL , IX, ED, IY -------------------- + 4'b1101: + case(FETCH[5:4]) + 2'b00: // CALL + case(STAGE[2:0]) + 3'b000, 3'b001: begin // stage 1,2 - load addr + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = {4'b010x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // PC, hi/lo + next_stage = 1; + REG_WSEL = 4'b111x; // tmp7 + M1 = 0; + end + 3'b010, 3'b011: begin // stage 3,4 - push pc + DO_SEL = {1'b0, STAGE[0]}; // pc hi/lo + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 5; // DEC + next_stage = 1; + REG_WSEL = 4'b1xxx; // pc + REG_RSEL = 4'b101x; // sp + M1 = 0; + WR = 1; + end + 3'b100: begin // stage5 - jump + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp7 + end + endcase + 2'b01: begin // DD - IX + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + status[5:4] = 2'b01; + end + 2'b10: begin // ED prefix + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + fetch98 = 2'b01; + end + 2'b11: begin // FD - IY + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + status[5:4] = 2'b11; + end + endcase + endcase + +// ------------------------------------------- ED + opcode ---------------------------------------------------- + 4'b0100, 4'b0111: begin // ED + 2'b00, ED + 2'b11 = NOP + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + 4'b0101: + case(FETCH[2:0]) +// ----------------------- in r (C) -------------------- + 3'b000: + if(!STAGE[0]) begin + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = {4'b000x, !opd[3], opd[3]} ; // hi/lo + next_stage = 1; + REG_WSEL = {1'b0, opd[5:4], 1'bx}; + REG_RSEL = 4'b000x; // BC + M1 = 0; + MREQ = 0; + IORQ = 1; + end else begin + ALU160_SEL = 1; // pc + WE = 6'b110x00; // flags, PC + ALU8OP = 29; // IN + REG_RSEL = {1'b0, opd[5:3]}; // reg + end +// ----------------------- out (C) r -------------------- + 3'b001: + if(!STAGE[0]) begin + DO_SEL = 2'b00; // ALU80 + ALU160_SEL = 0; // regs + WE = 6'b000x00; // nothing + next_stage = 1; + REG_WSEL = &opd[5:3] ? 4'b110x : {1'b0, opd[5:3]}; // zero/reg + REG_RSEL = 4'b000x; // BC + M1 = 0; + MREQ = 0; + WR = 1; + IORQ = 1; + end else begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end +// ----------------------- SBC16, ADC16 -------------------- + 3'b010: + if(!STAGE[0]) begin // stage1 + DINW_SEL = 0; // ALU8OUT + WE = 6'b100x01; // flags, lo + ALU8OP = {3'b000, !FETCH[3], 1'b1}; // SBC/ADC + next_stage = 1; + REG_WSEL = 4'b0101; // L + REG_RSEL = {op16, 1'b1}; + M1 = 0; + MREQ = 0; + end else begin + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = 6'b110x10; // flags, PC, hi + ALU8OP = {3'b000, !FETCH[3], 1'b1}; + REG_WSEL = 4'b0100; // H + REG_RSEL = {op16, 1'b0}; + end +// ----------------------- LD (nn) r16, ld r16 (nn) -------------------- + 3'b011: + case(STAGE[2:1]) + 2'b00: begin // stage 1,2 - read address + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = {4'b010x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // PC, hi/lo + next_stage = 1; + REG_WSEL = 4'b111x; // tmp16 + M1 = 0; + end + 2'b01: begin + ALU160_SEL = 0; // regs + next_stage = 1; + ALU16OP = {2'b00, STAGE[0]}; + REG_RSEL = 4'b111x; // tmp16 + REG_WSEL = {op16, !STAGE[0]}; + M1 = 0; + if(FETCH[3]) begin // LD rr, (nn) - stage3,4 + DINW_SEL = 1; // DI + WE = {4'b000x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // lo + end else begin // LD (nn), rr - stage3,4 + DO_SEL = op16[2] ? {1'b1, !STAGE[0]} : 2'b00; // ALU80/sp + WE = 6'b000x00; // nothing + WR = 1; + end + end + 2'b10: // stage5 + if(FETCH[3] & op16[2] & !STAGE[0]) begin // LD sp, (nn) - stage5 + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 4; // NOP + next_stage = 1; + REG_RSEL = 4'b101x; // tmp SP + M1 = 0; + MREQ = 0; + end else begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + endcase +// ----------------------- NEG -------------------- + 3'b100: begin + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + WE = 6'b110x10; // flags, PC, hi + ALU8OP = 5'b11111; // NEG + REG_WSEL = 4'b011x; // A + REG_RSEL = 4'b0110; // A + end +// ----------------------- RETN, RETI -------------------- + 3'b101: + case(STAGE[1:0]) + 2'b00, 2'b01: begin // stage1, stage2 - pop addr + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = {4'b001x, STAGE[0] ? 1'b1 : 1'bx, !STAGE[0]}; // SP, lo/hi + next_stage = 1; + REG_WSEL = 4'b111x; // tmp16 + REG_RSEL = 4'b101x; // SP + M1 = 0; + end + 2'b10: begin // stage3 - jump + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp16 + status[11] = 1'b1; + status[7:6] = {CPUStatus[7], CPUStatus[7]}; + end + endcase +// ----------------------- IM -------------------- + 3'b110: begin + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + status[10:8] = {1'b1, FETCH[4:3]}; + end +// ----------------------- LD I A, LD R A, LD A I, LD A R, RRD, RLD -------------------- + 3'b111: + case(FETCH[5:4]) + 2'b00: begin // LD I/R A + ALU160_SEL = 1; // pc + DINW_SEL = 1'b0; // ALU8OUT + WE = {4'b010x, !FETCH[3], FETCH[3]}; // PC, hi/lo + ALU8OP = 29; // pass D1 + REG_WSEL = 4'b1001; // IR, write r + REG_RSEL = 4'b0110; // A + end + 2'b01: begin // LD A I/R + ALU160_SEL = 1; // pc + DINW_SEL = 1'b0; // ALU8OUT + WE = 6'b110x1x; // flags, PC, hi + ALU8OP = 29; // PASS D1 + REG_WSEL = 4'b011x; // A + REG_RSEL = {3'b100, FETCH[3]};// I/R + end + 2'b10: // RRD, RLD + case(STAGE[1:0]) + 2'b00:begin // stage1, read data + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = 6'b000x01; // lo + next_stage = 1; + REG_WSEL = 4'b011x; // tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + end + 2'b01: begin // stage2, shift data + DINW_SEL = 0; // ALU8OUT + WE = 6'b100x11; // flags, hi, lo + ALU8OP = FETCH[3] ? 5'b01100 : 5'b01011; // RRD/RLD + next_stage = 1; + REG_WSEL = 4'b0110; // A + REG_RSEL = 4'b0111; // tmpLO + M1 = 0; + MREQ = 0; + end + 2'b10: begin // stage3 - write + DO_SEL = 2'b00; // ALU80 + ALU160_SEL = 0; // regs + WE = 6'b000x0x; // nothing + next_stage = 1; + REG_WSEL = 4'b0111; // tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + WR = 1; + end + 2'b11: begin + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + endcase + 2'b11: begin // NOP + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + endcase + endcase +// ----------------------- block instructions -------------------- + 4'b0110: + if({FETCH[5], FETCH[2]} == 4'b10) + case(FETCH[1:0]) + 2'b00: // LDI, LDD, LDIR, LDDR + case(STAGE[1:0]) + 2'b00: begin // stage1, read data, inc/dec HL + ALU160_SEL = 0; // regs + DINW_SEL = 0; // ALU8OUT + WE = 6'b100111; // flags, tmpHI, hi, lo + ALU8OP = {4'b0111, FETCH[3]}; // INC/DEC16 + next_stage = 1; + REG_WSEL = 4'b0100; // H + REG_RSEL = 4'b0101; // L + M1 = 0; + end + 2'b01: begin // stage2, dec BC + DINW_SEL = 0; // ALU8OUT + WE = 6'b100011; // flags, hi, lo (affects PF only) + ALU8OP = 5'b01111; // DEC + next_stage = 1; + REG_WSEL = 4'b0000; // B + REG_RSEL = 4'b0001; // C + M1 = 0; + MREQ = 0; + end + 2'b10: begin // stage2, write data, inc/dec DE + DO_SEL = 2'b01; // th + ALU160_SEL = 0; // regs + DINW_SEL = 0; // ALU8OUT + WE = 6'b000x11; // hi, lo + ALU8OP = {4'b0111, FETCH[3]}; // INC / DEC + next_stage = FETCH[4] ? !FLAGS[2] : 1'b1; + REG_WSEL = 4'b0010; // D + REG_RSEL = 4'b0011; // E + M1 = 0; + WR = 1; + end + 2'b11: begin + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end + endcase + 2'b01: // CPI, CPD, CPIR, CPDR + case(STAGE[1:0]) + 2'b00: begin // stage1, load data + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = 6'b000x01; // lo + next_stage = 1; + REG_WSEL = 4'b011x; // tmpLO + REG_RSEL = 4'b010x; // HL + M1 = 0; + end + 2'b01: begin // stage2, CP + WE = 6'b100x0x; // flags + ALU8OP = 7; // CP + next_stage = 1; + REG_WSEL = 4'b0110; // A + REG_RSEL = 4'b0111; // tmpLO + M1 = 0; + MREQ = 0; + end + 2'b10: begin // stage3, dec BC + DINW_SEL = 0; // ALU8OUT + WE = 6'b100x11; // flags, hi, lo + ALU8OP = 5'b01111; // DEC16 + next_stage = 1; + REG_WSEL = 4'b0000; // B + REG_RSEL = 4'b0001; // C + M1 = 0; + MREQ = 0; + end + 2'b11: begin // stage4, inc/dec HL + ALU160_SEL = 1; // pc + DINW_SEL = 0; // ALU8OUT + M1 = FETCH[4] ? (!FLAGS[2] || FLAGS[6]) : 1'b1; + WE = {1'b0, M1, 4'b0x11}; // PC, hi, lo + ALU8OP = {4'b0111, FETCH[3]}; // INC / DEC + REG_WSEL = 4'b0100; // H + REG_RSEL = 4'b0101; // L + MREQ = M1; + end + endcase + 2'b10: // INI, IND, INIR, INDR + case(STAGE[1:0]) + 2'b00: begin // stage1, in data, dec B + ALU160_SEL = 0; // regs + DINW_SEL = 0; // ALU8OUT + WE = 6'b100110; // flags, tmpHI, hi + ALU8OP = 10; // DEC + next_stage = 1; + REG_WSEL = 4'b0000; // B + REG_RSEL = 4'b000x; // BC + M1 = 0; + MREQ = 0; + IORQ = 1; + end + 2'b01: begin // stage2, write data, inc/dec HL + DO_SEL = 2'b01; // th + ALU160_SEL = 0; // regs + DINW_SEL = 0; // ALU8OUT + WE = 6'b000x11; // hi, lo + ALU8OP = {4'b0111, FETCH[3]}; // INC / DEC + next_stage = FETCH[4] ? FLAGS[6] : 1'b1; + REG_WSEL = 4'b0100; // H + REG_RSEL = 4'b0101; // L + M1 = 0; + WR = 1; + end + 2'b10: begin // stage3 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + endcase + 2'b11: // OUTI/OUTD/OTIR/OTDR + case(STAGE[1:0]) + 2'b00: begin // stage1, load data, inc/dec HL + ALU160_SEL = 0; // regs + DINW_SEL = 0; // ALU8OUT + WE = 6'b000111; // tmpHI, hi, lo + ALU8OP = {4'b0111, FETCH[3]}; // INC / DEC + next_stage = 1; + REG_WSEL = 4'b0100; // H + REG_RSEL = 4'b0101; // L + M1 = 0; + end + 2'b01: begin // stage2, out data, dec B + DO_SEL = 2'b01; // th + ALU160_SEL = 0; // regs + DINW_SEL = 0; // ALU8OUT + WE = 6'b100x10; // flags, hi + ALU8OP = 10; // DEC + next_stage = FETCH[4] ? (ALU80 == 8'b00000001) : 1'b1; + REG_WSEL = 4'b0000; // B + REG_RSEL = 4'b000x; // BC + M1 = 0; + MREQ = 0; + IORQ = 1; + WR = 1; + end + 2'b10: begin // stage3 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + endcase + endcase + else begin // NOP + ALU160_SEL = 1; // PC + WE = 6'b010x00; // PC + end +//------------------------------------------- CB + opcode ---------------------------------------------------- + 4'b1000, 4'b1001, 4'b1010, 4'b1011: // CB class (rot/shift, bit/res/set) + case({STAGE[1:0], CPUStatus[4], op0mem}) + 4'b00_0_0: begin // execute reg-reg + DINW_SEL = 0; // ALU8OUT + ALU160_SEL = 1; // pc + WE = {!FETCH[7], 3'b10x, FETCH[7:6] == 2'b01 ? 2'b00 : {!opd[0], opd[0]}}; // flags, hi/lo + ALU8OP = 28; // BIT + REG_WSEL = {1'b0, opd[2:0]}; + end + 4'b00_0_1, 4'b00_1_0, 4'b00_1_1: begin // stage1, (HL-X) - read data + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = opd[0] ? 6'b000001 : 6'b000010; // lo/hi + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; // ADD - NOP + next_stage = 1; + REG_WSEL = FETCH[7:6] == 2'b01 ? 4'b111x : {1'b0, opd[2:0]}; // dest, tmp16 for BIT + REG_RSEL = 4'b010x; // HL + M1 = 0; + end + 4'b01_0_1, 4'b01_1_0, 4'b01_1_1: // stage2 (HL-X) - execute, write + case(FETCH[7:6]) + 2'b00, 2'b10, 2'b11: begin // exec + write + DINW_SEL = 0; // ALU8OUT + DO_SEL = 2'b11; // ALU8OUT[7:0] + ALU160_SEL = 0; // regs + WE = {!FETCH[7], 3'b00x, !opd[0], opd[0]}; // flags, hi/lo + ALU8OP = 28; + ALU16OP = CPUStatus[4] ? 3'd3 : 3'd0; + next_stage = 1; + REG_WSEL = {1'b0, opd[2:0]}; + REG_RSEL = 4'b010x; // HL + M1 = 0; + WR = 1; + end + 2'b01: begin // BIT, no write + ALU160_SEL = 1; // pc + WE = 6'b110xxx; // flags, PC + ALU8OP = 28; // BIT + REG_WSEL = {3'b111, opd[0]}; // tmp + end + endcase + 4'b10_0_1, 4'b10_1_0, 4'b10_1_1: begin // (HL-X) - load next op + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + end + endcase +//------------------------------------------- // RST, NMI, INT ---------------------------------------------------- + 4'b1110: begin // RESET: IR <- 0, IM <- 0, IFF1,IFF2 <- 0, pC <- 0 + ALU160_SEL = 0; // regs + DINW_SEL = 0; // ALU8OUT + WE = 6'bx1xx11; // PC, hi, lo + ALU8OP = 29; // pass D1 + ALU16OP = 4; // NOP + REG_WSEL = 4'b1001; // IR, write r + REG_RSEL = 4'b110x; // const + M1 = 0; + MREQ = 0; + status[11:6] = 6'b110000; // IM0, DI + end + 4'b1101: // NMI + case(STAGE[1:0]) + 2'b00: begin + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + ALU16OP = intop; // DEC/DEC2 (if block instruction interrupted) + next_stage = 1; + M1 = 0; + MREQ = 0; + end + 2'b01, 2'b10: begin + DO_SEL = {1'b0, !STAGE[0]}; // pc hi/lo + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 5; // DEC + next_stage = 1; + REG_WSEL = 4'b1xxx; // pc + REG_RSEL = 4'b101x; // sp + M1 = 0; + WR = 1; + status[11] = 1'b1; + status[7:6] = {CPUStatus[7], 1'b0}; // reset IFF1 + end + 2'b11: begin + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b110x; // const + end + endcase + 4'b1100: // INT + case(CPUStatus[9:8]) + 2'b00, 2'b01, 2'b10: begin // IM0, IM1 + ALU160_SEL = 1; // pc + WE = 6'b010x00; // PC + ALU16OP = intop; // DEC/DEC2 (if block instruction interrupted) + MREQ = 0; + IORQ = 1; + status[11] = 1'b1; + status[7:6] = 2'b0; // reset IFF1, IFF2 + end + 2'b11: // IM2 + case(STAGE[2:0]) + 3'b000: begin + ALU160_SEL = 1; // pc + DINW_SEL = 1; // DI + WE = 6'b010x01; // PC, lo + ALU16OP = intop; // DEC/DEC2 (if block instruction interrupted) + next_stage = 1; + REG_WSEL = 4'b1000; // Itmp, no write r + MREQ = 0; + IORQ = 1; + status[11] = 1'b1; + status[7:6] = 2'b0; // reset IFF1, IFF2 + end + 3'b001, 3'b010: begin // push pc + DO_SEL = {1'b0, !STAGE[0]}; // pc hi/lo + ALU160_SEL = 0; // regs + WE = 6'b001x00; // SP + ALU16OP = 5; // DEC + next_stage = 1; + REG_WSEL = 4'b1xxx; // pc + REG_RSEL = 4'b101x; // sp + M1 = 0; + WR = 1; + end + 3'b011, 3'b100: begin // read address + ALU160_SEL = 0; // regs + DINW_SEL = 1; // DI + WE = {4'b0x0x, STAGE[0] ? 1'bx : 1'b1, STAGE[0]}; // hi/lo + ALU16OP = {2'b00, !STAGE[0]};// NOP/INC + next_stage = 1; + REG_WSEL = 4'b111x; // tmp16 + REG_RSEL = 4'b1000; // I-Itmp + M1 = 0; + end + 3'b101: begin // jump + ALU160_SEL = 0; // regs + WE = 6'b010x00; // PC + REG_RSEL = 4'b111x; // tmp16 + end + endcase + endcase + endcase + end + +endmodule diff --git a/common/Sound/opl3/NextZ80Reg.v b/common/Sound/opl3/NextZ80Reg.v new file mode 100644 index 00000000..424ae904 --- /dev/null +++ b/common/Sound/opl3/NextZ80Reg.v @@ -0,0 +1,202 @@ +////////////////////////////////////////////////////////////////////////////////// +// +// This file is part of the NextZ80 project +// http://www.opencores.org/cores/nextz80/ +// +// Filename: NextZ80Regs.v +// Description: Implementation of Z80 compatible CPU - registers +// Version 1.0 +// Creation date: 28Jan2011 - 18Mar2011 +// +// Author: Nicolae Dumitrache +// e-mail: ndumitrache@opencores.org +// +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2011 Nicolae Dumitrache +// +// This source file may be used and distributed without +// restriction provided that this copyright statement is not +// removed from the file and that any derivative work contains +// the original copyright notice and the associated disclaimer. +// +// This source file is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; +// either version 2.1 of the License, or (at your option) any +// later version. +// +// This source 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 Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General +// Public License along with this source; if not, download it +// from http://www.opencores.org/lgpl.shtml +// +/////////////////////////////////////////////////////////////////////////////////// + +// altera message_off 10027 + +`timescale 1ns / 1ps + +module Z80Reg( + input wire [7:0]rstatus, // 0=af-af', 1=exx, 2=hl-de, 3=hl'-de',4=hl-ixy, 5=ix-iy, 6=IFF1, 7=IFF2 + input wire M1, + input wire [5:0]WE, // 5 = flags, 4 = PC, 3 = SP, 2 = tmpHI, 1 = hi, 0 = lo + input wire CLK, + input wire [15:0]ALU8OUT, // CPU data out bus (output of alu8) + input wire [7:0]DI, // CPU data in bus + output reg [7:0]DO, // CPU data out bus + input wire [15:0]ADDR, // CPU addr bus + input wire [7:0]CONST, + output reg [7:0]ALU80, + output reg [7:0]ALU81, + output reg [15:0]ALU160, + output wire[7:0]ALU161, + input wire [7:0]ALU8FLAGS, + output wire [7:0]FLAGS, + + input wire [1:0]DO_SEL, // select DO betwen ALU8OUT lo and th register + input wire ALU160_sel, // 0=REG_RSEL, 1=PC + input wire [3:0]REG_WSEL, // rdow: [3:1] 0=BC, 1=DE, 2=HL, 3=A-TL, 4=I-x ----- [0] = 0HI,1LO + input wire [3:0]REG_RSEL, // mux_rdor: [3:1] 0=BC, 1=DE, 2=HL, 3=A-TL, 4=I-R, 5=SP, 7=tmpSP ----- [0] = 0HI, 1LO + input wire DINW_SEL, // select RAM write data between (0)ALU8OUT, and 1(DI) + input wire XMASK, // 0 if REG_WSEL should not use IX, IY, even if rstatus[4] == 1 + input wire [2:0]ALU16OP, // ALU16OP + input wire WAIT // wait + ); + +// latch registers + reg [15:0]pc=0; // program counter + reg [15:0]sp; // stack pointer + reg [7:0]r; // refresh + reg [15:0]flg = 0; + reg [7:0]th; // temp high + +// internal wires + wire [15:0]rdor; // R out from RAM + wire [15:0]rdow; // W out from RAM + wire [3:0]SELW; // RAM W port sel + wire [3:0]SELR; // RAM R port sel + reg [15:0]DIN; // RAM W in data + reg [15:0]mux_rdor; // (3)A reversed mixed with TL, (4)I mixed with R (5)SP + +//------------------------------------ RAM block registers ---------------------------------- +// 0:BC, 1:DE, 2:HL, 3:A-x, 4:I-x, 5:IX, 6:IY, 7:x-x, 8:BC', 9:DE', 10:HL', 11:A'-x, 12: tmpSP, 13:zero + RAM16X8D_regs regs_lo ( + .DPO(rdor[7:0]), // Read-only data output + .SPO(rdow[7:0]), // R/W data output + .A(SELW), // R/W address + .D(DIN[7:0]), // Write data input + .DPRA(SELR), // Read-only address + .WCLK(CLK), // Write clock input + .WE(WE[0] & !WAIT) // Write enable input + ); + + RAM16X8D_regs regs_hi ( + .DPO(rdor[15:8]), // Read-only data output + .SPO(rdow[15:8]), // R/W data output + .A(SELW), // R/W address + .D(DIN[15:8]), // Write data input + .DPRA(SELR), // Read-only address + .WCLK(CLK), // Write clock input + .WE(WE[1] & !WAIT) // Write enable input + ); + + wire [15:0]ADDR1 = ADDR + !ALU16OP[2]; // address post increment + wire [7:0]flgmux = {ALU8FLAGS[7:3], SELR[3:0] == 4'b0100 ? rstatus[7] : ALU8FLAGS[2], ALU8FLAGS[1:0]}; // LD A, I/R IFF2 flag on parity + always @(posedge CLK) + if(!WAIT) begin + if(WE[2]) th <= DI; + if(WE[3]) sp <= ADDR1; + if(WE[4]) pc <= ADDR1; + if({REG_WSEL, WE[0]} == 5'b10011) r <= ALU8OUT[7:0]; + else if(M1) r[6:0] <= r[6:0] + 1'd1; + if(WE[5]) + if(rstatus[0]) flg[15:8] <= flgmux; + else flg[7:0] <= flgmux; + end + + assign ALU161 = th; + assign FLAGS = rstatus[0] ? flg[15:8] : flg[7:0]; + + always @* begin + DIN = DINW_SEL ? {DI, DI} : ALU8OUT; + ALU80 = REG_WSEL[0] ? rdow[7:0] : rdow[15:8]; + ALU81 = REG_RSEL[0] ? mux_rdor[7:0] : mux_rdor[15:8]; + ALU160 = ALU160_sel ? pc : mux_rdor; + + case({REG_WSEL[3], DO_SEL}) + 0: DO = ALU80; + 1: DO = th; + 2: DO = FLAGS; + 3: DO = ALU8OUT[7:0]; + 4: DO = pc[15:8]; + 5: DO = pc[7:0]; + 6: DO = sp[15:8]; + 7: DO = sp[7:0]; + endcase + case({ALU16OP == 4, REG_RSEL[3:0]}) + 5'b01001, 5'b11001: mux_rdor = {rdor[15:8], r}; + 5'b01010, 5'b01011: mux_rdor = sp; + 5'b01100, 5'b01101, 5'b11100, 5'b11101: mux_rdor = {8'b0, CONST}; + default: mux_rdor = rdor; + endcase + end + + RegSelect WSelectW(.SEL(REG_WSEL[3:1]), .RAMSEL(SELW), .rstatus({rstatus[5], rstatus[4] & XMASK, rstatus[3:0]})); + RegSelect WSelectR(.SEL(REG_RSEL[3:1]), .RAMSEL(SELR), .rstatus(rstatus[5:0])); + +endmodule + + +module RegSelect( + input [2:0]SEL, + output reg [3:0]RAMSEL, + input [5:0]rstatus // 0=af-af', 1=exx, 2=hl-de, 3=hl'-de',4=hl-ixy, 5=ix-iy + ); + + always @* begin + RAMSEL = 4'bxxxx; + case(SEL) + 0: RAMSEL = {rstatus[1], 3'b000}; // BC + 1: //DE + if(rstatus[{1'b1, rstatus[1]}]) RAMSEL = {rstatus[1], 3'b010}; // HL + else RAMSEL = {rstatus[1], 3'b001}; // DE + 2: // HL + case({rstatus[5:4], rstatus[{1'b1, rstatus[1]}]}) + 0,4: RAMSEL = {rstatus[1], 3'b010}; // HL + 1,5: RAMSEL = {rstatus[1], 3'b001}; // DE + 2,3: RAMSEL = 4'b0101; // IX + 6,7: RAMSEL = 4'b0110; // IY + endcase + 3: RAMSEL = {rstatus[0], 3'b011}; // A-TL + 4: RAMSEL = 4; // I-R + 5: RAMSEL = 12; // tmp SP + 6: RAMSEL = 13; // zero + 7: RAMSEL = 7; // temp reg for BIT/SET/RES + endcase + end +endmodule + +module RAM16X8D_regs( + output [7:0]DPO, // Read-only data output + output [7:0]SPO, // R/W data output + input [3:0]A, // R/W address + input [7:0]D, // Write data input + input [3:0]DPRA, // Read-only address + input WCLK, // Write clock + input WE // Write enable + ); + + reg [7:0]data[15:0]; + assign DPO = data[DPRA]; + assign SPO = data[A]; + + always @(posedge WCLK) + if(WE) data[A] <= D; + +endmodule diff --git a/common/Sound/opl3/compressor.sv b/common/Sound/opl3/compressor.sv new file mode 100644 index 00000000..93d69f2b --- /dev/null +++ b/common/Sound/opl3/compressor.sv @@ -0,0 +1,297 @@ +//============================================================================ +// Audio compressor (signed samples) +// +// Copyright (C) 2018 Sorgelig +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +//============================================================================ + +module compressor +( + input clk, + input ce, + input [11:0] in1, in2, + output [15:0] out1, out2 +); + +always @(posedge clk) if(ce) out1 <= {in1[11], in1[11] ? ~tbl[~in1[10:0]] : tbl[in1[10:0]]}; +always @(posedge clk) if(ce) out2 <= {in2[11], in2[11] ? ~tbl[~in2[10:0]] : tbl[in2[10:0]]}; + +wire [14:0] tbl[0:2047] = +'{ +/* + //sin(x) + 15'h0000, 15'h0019, 15'h0032, 15'h004B, 15'h0064, 15'h007D, 15'h0096, 15'h00B0, 15'h00C9, 15'h00E2, 15'h00FB, 15'h0114, 15'h012D, 15'h0146, 15'h0160, 15'h0179, + 15'h0192, 15'h01AB, 15'h01C4, 15'h01DD, 15'h01F6, 15'h0210, 15'h0229, 15'h0242, 15'h025B, 15'h0274, 15'h028D, 15'h02A6, 15'h02BF, 15'h02D9, 15'h02F2, 15'h030B, + 15'h0324, 15'h033D, 15'h0356, 15'h036F, 15'h0389, 15'h03A2, 15'h03BB, 15'h03D4, 15'h03ED, 15'h0406, 15'h041F, 15'h0439, 15'h0452, 15'h046B, 15'h0484, 15'h049D, + 15'h04B6, 15'h04CF, 15'h04E8, 15'h0502, 15'h051B, 15'h0534, 15'h054D, 15'h0566, 15'h057F, 15'h0598, 15'h05B1, 15'h05CB, 15'h05E4, 15'h05FD, 15'h0616, 15'h062F, + 15'h0648, 15'h0661, 15'h067A, 15'h0693, 15'h06AD, 15'h06C6, 15'h06DF, 15'h06F8, 15'h0711, 15'h072A, 15'h0743, 15'h075C, 15'h0775, 15'h078E, 15'h07A8, 15'h07C1, + 15'h07DA, 15'h07F3, 15'h080C, 15'h0825, 15'h083E, 15'h0857, 15'h0870, 15'h0889, 15'h08A3, 15'h08BC, 15'h08D5, 15'h08EE, 15'h0907, 15'h0920, 15'h0939, 15'h0952, + 15'h096B, 15'h0984, 15'h099D, 15'h09B6, 15'h09CF, 15'h09E9, 15'h0A02, 15'h0A1B, 15'h0A34, 15'h0A4D, 15'h0A66, 15'h0A7F, 15'h0A98, 15'h0AB1, 15'h0ACA, 15'h0AE3, + 15'h0AFC, 15'h0B15, 15'h0B2E, 15'h0B47, 15'h0B60, 15'h0B79, 15'h0B92, 15'h0BAC, 15'h0BC5, 15'h0BDE, 15'h0BF7, 15'h0C10, 15'h0C29, 15'h0C42, 15'h0C5B, 15'h0C74, + 15'h0C8D, 15'h0CA6, 15'h0CBF, 15'h0CD8, 15'h0CF1, 15'h0D0A, 15'h0D23, 15'h0D3C, 15'h0D55, 15'h0D6E, 15'h0D87, 15'h0DA0, 15'h0DB9, 15'h0DD2, 15'h0DEB, 15'h0E04, + 15'h0E1D, 15'h0E36, 15'h0E4F, 15'h0E68, 15'h0E81, 15'h0E9A, 15'h0EB3, 15'h0ECC, 15'h0EE5, 15'h0EFE, 15'h0F17, 15'h0F30, 15'h0F49, 15'h0F62, 15'h0F7B, 15'h0F94, + 15'h0FAC, 15'h0FC5, 15'h0FDE, 15'h0FF7, 15'h1010, 15'h1029, 15'h1042, 15'h105B, 15'h1074, 15'h108D, 15'h10A6, 15'h10BF, 15'h10D8, 15'h10F1, 15'h110A, 15'h1123, + 15'h113B, 15'h1154, 15'h116D, 15'h1186, 15'h119F, 15'h11B8, 15'h11D1, 15'h11EA, 15'h1203, 15'h121C, 15'h1234, 15'h124D, 15'h1266, 15'h127F, 15'h1298, 15'h12B1, + 15'h12CA, 15'h12E3, 15'h12FB, 15'h1314, 15'h132D, 15'h1346, 15'h135F, 15'h1378, 15'h1391, 15'h13A9, 15'h13C2, 15'h13DB, 15'h13F4, 15'h140D, 15'h1426, 15'h143E, + 15'h1457, 15'h1470, 15'h1489, 15'h14A2, 15'h14BB, 15'h14D3, 15'h14EC, 15'h1505, 15'h151E, 15'h1537, 15'h154F, 15'h1568, 15'h1581, 15'h159A, 15'h15B3, 15'h15CB, + 15'h15E4, 15'h15FD, 15'h1616, 15'h162E, 15'h1647, 15'h1660, 15'h1679, 15'h1691, 15'h16AA, 15'h16C3, 15'h16DC, 15'h16F4, 15'h170D, 15'h1726, 15'h173F, 15'h1757, + 15'h1770, 15'h1789, 15'h17A1, 15'h17BA, 15'h17D3, 15'h17EC, 15'h1804, 15'h181D, 15'h1836, 15'h184E, 15'h1867, 15'h1880, 15'h1898, 15'h18B1, 15'h18CA, 15'h18E2, + 15'h18FB, 15'h1914, 15'h192C, 15'h1945, 15'h195E, 15'h1976, 15'h198F, 15'h19A8, 15'h19C0, 15'h19D9, 15'h19F2, 15'h1A0A, 15'h1A23, 15'h1A3B, 15'h1A54, 15'h1A6D, + 15'h1A85, 15'h1A9E, 15'h1AB6, 15'h1ACF, 15'h1AE8, 15'h1B00, 15'h1B19, 15'h1B31, 15'h1B4A, 15'h1B62, 15'h1B7B, 15'h1B94, 15'h1BAC, 15'h1BC5, 15'h1BDD, 15'h1BF6, + 15'h1C0E, 15'h1C27, 15'h1C3F, 15'h1C58, 15'h1C70, 15'h1C89, 15'h1CA1, 15'h1CBA, 15'h1CD2, 15'h1CEB, 15'h1D03, 15'h1D1C, 15'h1D34, 15'h1D4D, 15'h1D65, 15'h1D7E, + 15'h1D96, 15'h1DAF, 15'h1DC7, 15'h1DE0, 15'h1DF8, 15'h1E10, 15'h1E29, 15'h1E41, 15'h1E5A, 15'h1E72, 15'h1E8B, 15'h1EA3, 15'h1EBB, 15'h1ED4, 15'h1EEC, 15'h1F05, + 15'h1F1D, 15'h1F35, 15'h1F4E, 15'h1F66, 15'h1F7F, 15'h1F97, 15'h1FAF, 15'h1FC8, 15'h1FE0, 15'h1FF8, 15'h2011, 15'h2029, 15'h2041, 15'h205A, 15'h2072, 15'h208A, + 15'h20A3, 15'h20BB, 15'h20D3, 15'h20EC, 15'h2104, 15'h211C, 15'h2134, 15'h214D, 15'h2165, 15'h217D, 15'h2196, 15'h21AE, 15'h21C6, 15'h21DE, 15'h21F7, 15'h220F, + 15'h2227, 15'h223F, 15'h2257, 15'h2270, 15'h2288, 15'h22A0, 15'h22B8, 15'h22D1, 15'h22E9, 15'h2301, 15'h2319, 15'h2331, 15'h2349, 15'h2362, 15'h237A, 15'h2392, + 15'h23AA, 15'h23C2, 15'h23DA, 15'h23F3, 15'h240B, 15'h2423, 15'h243B, 15'h2453, 15'h246B, 15'h2483, 15'h249B, 15'h24B3, 15'h24CB, 15'h24E4, 15'h24FC, 15'h2514, + 15'h252C, 15'h2544, 15'h255C, 15'h2574, 15'h258C, 15'h25A4, 15'h25BC, 15'h25D4, 15'h25EC, 15'h2604, 15'h261C, 15'h2634, 15'h264C, 15'h2664, 15'h267C, 15'h2694, + 15'h26AC, 15'h26C4, 15'h26DC, 15'h26F4, 15'h270C, 15'h2724, 15'h273C, 15'h2754, 15'h276C, 15'h2783, 15'h279B, 15'h27B3, 15'h27CB, 15'h27E3, 15'h27FB, 15'h2813, + 15'h282B, 15'h2843, 15'h285A, 15'h2872, 15'h288A, 15'h28A2, 15'h28BA, 15'h28D2, 15'h28EA, 15'h2901, 15'h2919, 15'h2931, 15'h2949, 15'h2961, 15'h2978, 15'h2990, + 15'h29A8, 15'h29C0, 15'h29D7, 15'h29EF, 15'h2A07, 15'h2A1F, 15'h2A36, 15'h2A4E, 15'h2A66, 15'h2A7E, 15'h2A95, 15'h2AAD, 15'h2AC5, 15'h2ADC, 15'h2AF4, 15'h2B0C, + 15'h2B24, 15'h2B3B, 15'h2B53, 15'h2B6B, 15'h2B82, 15'h2B9A, 15'h2BB1, 15'h2BC9, 15'h2BE1, 15'h2BF8, 15'h2C10, 15'h2C28, 15'h2C3F, 15'h2C57, 15'h2C6E, 15'h2C86, + 15'h2C9D, 15'h2CB5, 15'h2CCD, 15'h2CE4, 15'h2CFC, 15'h2D13, 15'h2D2B, 15'h2D42, 15'h2D5A, 15'h2D71, 15'h2D89, 15'h2DA0, 15'h2DB8, 15'h2DCF, 15'h2DE7, 15'h2DFE, + 15'h2E16, 15'h2E2D, 15'h2E45, 15'h2E5C, 15'h2E73, 15'h2E8B, 15'h2EA2, 15'h2EBA, 15'h2ED1, 15'h2EE9, 15'h2F00, 15'h2F17, 15'h2F2F, 15'h2F46, 15'h2F5D, 15'h2F75, + 15'h2F8C, 15'h2FA3, 15'h2FBB, 15'h2FD2, 15'h2FE9, 15'h3001, 15'h3018, 15'h302F, 15'h3047, 15'h305E, 15'h3075, 15'h308C, 15'h30A4, 15'h30BB, 15'h30D2, 15'h30E9, + 15'h3101, 15'h3118, 15'h312F, 15'h3146, 15'h315E, 15'h3175, 15'h318C, 15'h31A3, 15'h31BA, 15'h31D1, 15'h31E9, 15'h3200, 15'h3217, 15'h322E, 15'h3245, 15'h325C, + 15'h3273, 15'h328A, 15'h32A2, 15'h32B9, 15'h32D0, 15'h32E7, 15'h32FE, 15'h3315, 15'h332C, 15'h3343, 15'h335A, 15'h3371, 15'h3388, 15'h339F, 15'h33B6, 15'h33CD, + 15'h33E4, 15'h33FB, 15'h3412, 15'h3429, 15'h3440, 15'h3457, 15'h346E, 15'h3485, 15'h349C, 15'h34B3, 15'h34CA, 15'h34E1, 15'h34F7, 15'h350E, 15'h3525, 15'h353C, + 15'h3553, 15'h356A, 15'h3581, 15'h3597, 15'h35AE, 15'h35C5, 15'h35DC, 15'h35F3, 15'h360A, 15'h3620, 15'h3637, 15'h364E, 15'h3665, 15'h367B, 15'h3692, 15'h36A9, + 15'h36C0, 15'h36D6, 15'h36ED, 15'h3704, 15'h371A, 15'h3731, 15'h3748, 15'h375E, 15'h3775, 15'h378C, 15'h37A2, 15'h37B9, 15'h37D0, 15'h37E6, 15'h37FD, 15'h3814, + 15'h382A, 15'h3841, 15'h3857, 15'h386E, 15'h3884, 15'h389B, 15'h38B2, 15'h38C8, 15'h38DF, 15'h38F5, 15'h390C, 15'h3922, 15'h3939, 15'h394F, 15'h3966, 15'h397C, + 15'h3993, 15'h39A9, 15'h39BF, 15'h39D6, 15'h39EC, 15'h3A03, 15'h3A19, 15'h3A30, 15'h3A46, 15'h3A5C, 15'h3A73, 15'h3A89, 15'h3A9F, 15'h3AB6, 15'h3ACC, 15'h3AE2, + 15'h3AF9, 15'h3B0F, 15'h3B25, 15'h3B3C, 15'h3B52, 15'h3B68, 15'h3B7F, 15'h3B95, 15'h3BAB, 15'h3BC1, 15'h3BD7, 15'h3BEE, 15'h3C04, 15'h3C1A, 15'h3C30, 15'h3C47, + 15'h3C5D, 15'h3C73, 15'h3C89, 15'h3C9F, 15'h3CB5, 15'h3CCB, 15'h3CE2, 15'h3CF8, 15'h3D0E, 15'h3D24, 15'h3D3A, 15'h3D50, 15'h3D66, 15'h3D7C, 15'h3D92, 15'h3DA8, + 15'h3DBE, 15'h3DD4, 15'h3DEA, 15'h3E00, 15'h3E16, 15'h3E2C, 15'h3E42, 15'h3E58, 15'h3E6E, 15'h3E84, 15'h3E9A, 15'h3EB0, 15'h3EC6, 15'h3EDC, 15'h3EF2, 15'h3F08, + 15'h3F1D, 15'h3F33, 15'h3F49, 15'h3F5F, 15'h3F75, 15'h3F8B, 15'h3FA1, 15'h3FB6, 15'h3FCC, 15'h3FE2, 15'h3FF8, 15'h400E, 15'h4023, 15'h4039, 15'h404F, 15'h4065, + 15'h407A, 15'h4090, 15'h40A6, 15'h40BB, 15'h40D1, 15'h40E7, 15'h40FC, 15'h4112, 15'h4128, 15'h413D, 15'h4153, 15'h4169, 15'h417E, 15'h4194, 15'h41A9, 15'h41BF, + 15'h41D5, 15'h41EA, 15'h4200, 15'h4215, 15'h422B, 15'h4240, 15'h4256, 15'h426B, 15'h4281, 15'h4296, 15'h42AC, 15'h42C1, 15'h42D7, 15'h42EC, 15'h4301, 15'h4317, + 15'h432C, 15'h4342, 15'h4357, 15'h436C, 15'h4382, 15'h4397, 15'h43AC, 15'h43C2, 15'h43D7, 15'h43EC, 15'h4402, 15'h4417, 15'h442C, 15'h4442, 15'h4457, 15'h446C, + 15'h4481, 15'h4497, 15'h44AC, 15'h44C1, 15'h44D6, 15'h44EB, 15'h4501, 15'h4516, 15'h452B, 15'h4540, 15'h4555, 15'h456A, 15'h4580, 15'h4595, 15'h45AA, 15'h45BF, + 15'h45D4, 15'h45E9, 15'h45FE, 15'h4613, 15'h4628, 15'h463D, 15'h4652, 15'h4667, 15'h467C, 15'h4691, 15'h46A6, 15'h46BB, 15'h46D0, 15'h46E5, 15'h46FA, 15'h470F, + 15'h4724, 15'h4739, 15'h474D, 15'h4762, 15'h4777, 15'h478C, 15'h47A1, 15'h47B6, 15'h47CB, 15'h47DF, 15'h47F4, 15'h4809, 15'h481E, 15'h4833, 15'h4847, 15'h485C, + 15'h4871, 15'h4885, 15'h489A, 15'h48AF, 15'h48C4, 15'h48D8, 15'h48ED, 15'h4902, 15'h4916, 15'h492B, 15'h4940, 15'h4954, 15'h4969, 15'h497D, 15'h4992, 15'h49A6, + 15'h49BB, 15'h49D0, 15'h49E4, 15'h49F9, 15'h4A0D, 15'h4A22, 15'h4A36, 15'h4A4B, 15'h4A5F, 15'h4A74, 15'h4A88, 15'h4A9C, 15'h4AB1, 15'h4AC5, 15'h4ADA, 15'h4AEE, + 15'h4B02, 15'h4B17, 15'h4B2B, 15'h4B40, 15'h4B54, 15'h4B68, 15'h4B7C, 15'h4B91, 15'h4BA5, 15'h4BB9, 15'h4BCE, 15'h4BE2, 15'h4BF6, 15'h4C0A, 15'h4C1F, 15'h4C33, + 15'h4C47, 15'h4C5B, 15'h4C6F, 15'h4C84, 15'h4C98, 15'h4CAC, 15'h4CC0, 15'h4CD4, 15'h4CE8, 15'h4CFC, 15'h4D10, 15'h4D24, 15'h4D38, 15'h4D4C, 15'h4D61, 15'h4D75, + 15'h4D89, 15'h4D9D, 15'h4DB1, 15'h4DC5, 15'h4DD8, 15'h4DEC, 15'h4E00, 15'h4E14, 15'h4E28, 15'h4E3C, 15'h4E50, 15'h4E64, 15'h4E78, 15'h4E8C, 15'h4E9F, 15'h4EB3, + 15'h4EC7, 15'h4EDB, 15'h4EEF, 15'h4F03, 15'h4F16, 15'h4F2A, 15'h4F3E, 15'h4F52, 15'h4F65, 15'h4F79, 15'h4F8D, 15'h4FA0, 15'h4FB4, 15'h4FC8, 15'h4FDB, 15'h4FEF, + 15'h5003, 15'h5016, 15'h502A, 15'h503E, 15'h5051, 15'h5065, 15'h5078, 15'h508C, 15'h509F, 15'h50B3, 15'h50C6, 15'h50DA, 15'h50ED, 15'h5101, 15'h5114, 15'h5128, + 15'h513B, 15'h514F, 15'h5162, 15'h5175, 15'h5189, 15'h519C, 15'h51B0, 15'h51C3, 15'h51D6, 15'h51EA, 15'h51FD, 15'h5210, 15'h5223, 15'h5237, 15'h524A, 15'h525D, + 15'h5270, 15'h5284, 15'h5297, 15'h52AA, 15'h52BD, 15'h52D1, 15'h52E4, 15'h52F7, 15'h530A, 15'h531D, 15'h5330, 15'h5343, 15'h5356, 15'h5369, 15'h537D, 15'h5390, + 15'h53A3, 15'h53B6, 15'h53C9, 15'h53DC, 15'h53EF, 15'h5402, 15'h5415, 15'h5428, 15'h543B, 15'h544D, 15'h5460, 15'h5473, 15'h5486, 15'h5499, 15'h54AC, 15'h54BF, + 15'h54D2, 15'h54E4, 15'h54F7, 15'h550A, 15'h551D, 15'h5530, 15'h5542, 15'h5555, 15'h5568, 15'h557B, 15'h558D, 15'h55A0, 15'h55B3, 15'h55C5, 15'h55D8, 15'h55EB, + 15'h55FD, 15'h5610, 15'h5622, 15'h5635, 15'h5648, 15'h565A, 15'h566D, 15'h567F, 15'h5692, 15'h56A4, 15'h56B7, 15'h56C9, 15'h56DC, 15'h56EE, 15'h5701, 15'h5713, + 15'h5726, 15'h5738, 15'h574A, 15'h575D, 15'h576F, 15'h5781, 15'h5794, 15'h57A6, 15'h57B8, 15'h57CB, 15'h57DD, 15'h57EF, 15'h5802, 15'h5814, 15'h5826, 15'h5838, + 15'h584A, 15'h585D, 15'h586F, 15'h5881, 15'h5893, 15'h58A5, 15'h58B7, 15'h58CA, 15'h58DC, 15'h58EE, 15'h5900, 15'h5912, 15'h5924, 15'h5936, 15'h5948, 15'h595A, + 15'h596C, 15'h597E, 15'h5990, 15'h59A2, 15'h59B4, 15'h59C6, 15'h59D8, 15'h59EA, 15'h59FC, 15'h5A0D, 15'h5A1F, 15'h5A31, 15'h5A43, 15'h5A55, 15'h5A67, 15'h5A78, + 15'h5A8A, 15'h5A9C, 15'h5AAE, 15'h5ABF, 15'h5AD1, 15'h5AE3, 15'h5AF5, 15'h5B06, 15'h5B18, 15'h5B2A, 15'h5B3B, 15'h5B4D, 15'h5B5E, 15'h5B70, 15'h5B82, 15'h5B93, + 15'h5BA5, 15'h5BB6, 15'h5BC8, 15'h5BD9, 15'h5BEB, 15'h5BFC, 15'h5C0E, 15'h5C1F, 15'h5C31, 15'h5C42, 15'h5C54, 15'h5C65, 15'h5C76, 15'h5C88, 15'h5C99, 15'h5CAB, + 15'h5CBC, 15'h5CCD, 15'h5CDE, 15'h5CF0, 15'h5D01, 15'h5D12, 15'h5D24, 15'h5D35, 15'h5D46, 15'h5D57, 15'h5D68, 15'h5D7A, 15'h5D8B, 15'h5D9C, 15'h5DAD, 15'h5DBE, + 15'h5DCF, 15'h5DE0, 15'h5DF2, 15'h5E03, 15'h5E14, 15'h5E25, 15'h5E36, 15'h5E47, 15'h5E58, 15'h5E69, 15'h5E7A, 15'h5E8B, 15'h5E9C, 15'h5EAD, 15'h5EBD, 15'h5ECE, + 15'h5EDF, 15'h5EF0, 15'h5F01, 15'h5F12, 15'h5F23, 15'h5F33, 15'h5F44, 15'h5F55, 15'h5F66, 15'h5F77, 15'h5F87, 15'h5F98, 15'h5FA9, 15'h5FB9, 15'h5FCA, 15'h5FDB, + 15'h5FEB, 15'h5FFC, 15'h600D, 15'h601D, 15'h602E, 15'h603E, 15'h604F, 15'h6060, 15'h6070, 15'h6081, 15'h6091, 15'h60A2, 15'h60B2, 15'h60C3, 15'h60D3, 15'h60E4, + 15'h60F4, 15'h6104, 15'h6115, 15'h6125, 15'h6135, 15'h6146, 15'h6156, 15'h6166, 15'h6177, 15'h6187, 15'h6197, 15'h61A8, 15'h61B8, 15'h61C8, 15'h61D8, 15'h61E9, + 15'h61F9, 15'h6209, 15'h6219, 15'h6229, 15'h6239, 15'h6249, 15'h625A, 15'h626A, 15'h627A, 15'h628A, 15'h629A, 15'h62AA, 15'h62BA, 15'h62CA, 15'h62DA, 15'h62EA, + 15'h62FA, 15'h630A, 15'h631A, 15'h6329, 15'h6339, 15'h6349, 15'h6359, 15'h6369, 15'h6379, 15'h6389, 15'h6398, 15'h63A8, 15'h63B8, 15'h63C8, 15'h63D7, 15'h63E7, + 15'h63F7, 15'h6407, 15'h6416, 15'h6426, 15'h6436, 15'h6445, 15'h6455, 15'h6464, 15'h6474, 15'h6484, 15'h6493, 15'h64A3, 15'h64B2, 15'h64C2, 15'h64D1, 15'h64E1, + 15'h64F0, 15'h6500, 15'h650F, 15'h651F, 15'h652E, 15'h653D, 15'h654D, 15'h655C, 15'h656B, 15'h657B, 15'h658A, 15'h6599, 15'h65A9, 15'h65B8, 15'h65C7, 15'h65D6, + 15'h65E6, 15'h65F5, 15'h6604, 15'h6613, 15'h6622, 15'h6631, 15'h6641, 15'h6650, 15'h665F, 15'h666E, 15'h667D, 15'h668C, 15'h669B, 15'h66AA, 15'h66B9, 15'h66C8, + 15'h66D7, 15'h66E6, 15'h66F5, 15'h6704, 15'h6713, 15'h6722, 15'h6731, 15'h673F, 15'h674E, 15'h675D, 15'h676C, 15'h677B, 15'h678A, 15'h6798, 15'h67A7, 15'h67B6, + 15'h67C5, 15'h67D3, 15'h67E2, 15'h67F1, 15'h67FF, 15'h680E, 15'h681D, 15'h682B, 15'h683A, 15'h6848, 15'h6857, 15'h6866, 15'h6874, 15'h6883, 15'h6891, 15'h68A0, + 15'h68AE, 15'h68BD, 15'h68CB, 15'h68D9, 15'h68E8, 15'h68F6, 15'h6905, 15'h6913, 15'h6921, 15'h6930, 15'h693E, 15'h694C, 15'h695B, 15'h6969, 15'h6977, 15'h6985, + 15'h6994, 15'h69A2, 15'h69B0, 15'h69BE, 15'h69CC, 15'h69DA, 15'h69E9, 15'h69F7, 15'h6A05, 15'h6A13, 15'h6A21, 15'h6A2F, 15'h6A3D, 15'h6A4B, 15'h6A59, 15'h6A67, + 15'h6A75, 15'h6A83, 15'h6A91, 15'h6A9F, 15'h6AAD, 15'h6ABB, 15'h6AC8, 15'h6AD6, 15'h6AE4, 15'h6AF2, 15'h6B00, 15'h6B0E, 15'h6B1B, 15'h6B29, 15'h6B37, 15'h6B45, + 15'h6B52, 15'h6B60, 15'h6B6E, 15'h6B7B, 15'h6B89, 15'h6B97, 15'h6BA4, 15'h6BB2, 15'h6BBF, 15'h6BCD, 15'h6BDA, 15'h6BE8, 15'h6BF6, 15'h6C03, 15'h6C11, 15'h6C1E, + 15'h6C2B, 15'h6C39, 15'h6C46, 15'h6C54, 15'h6C61, 15'h6C6E, 15'h6C7C, 15'h6C89, 15'h6C96, 15'h6CA4, 15'h6CB1, 15'h6CBE, 15'h6CCC, 15'h6CD9, 15'h6CE6, 15'h6CF3, + 15'h6D00, 15'h6D0E, 15'h6D1B, 15'h6D28, 15'h6D35, 15'h6D42, 15'h6D4F, 15'h6D5C, 15'h6D69, 15'h6D76, 15'h6D83, 15'h6D90, 15'h6D9D, 15'h6DAA, 15'h6DB7, 15'h6DC4, + 15'h6DD1, 15'h6DDE, 15'h6DEB, 15'h6DF8, 15'h6E05, 15'h6E12, 15'h6E1E, 15'h6E2B, 15'h6E38, 15'h6E45, 15'h6E52, 15'h6E5E, 15'h6E6B, 15'h6E78, 15'h6E84, 15'h6E91, + 15'h6E9E, 15'h6EAA, 15'h6EB7, 15'h6EC4, 15'h6ED0, 15'h6EDD, 15'h6EE9, 15'h6EF6, 15'h6F02, 15'h6F0F, 15'h6F1B, 15'h6F28, 15'h6F34, 15'h6F41, 15'h6F4D, 15'h6F5A, + 15'h6F66, 15'h6F72, 15'h6F7F, 15'h6F8B, 15'h6F97, 15'h6FA4, 15'h6FB0, 15'h6FBC, 15'h6FC8, 15'h6FD5, 15'h6FE1, 15'h6FED, 15'h6FF9, 15'h7006, 15'h7012, 15'h701E, + 15'h702A, 15'h7036, 15'h7042, 15'h704E, 15'h705A, 15'h7066, 15'h7072, 15'h707E, 15'h708A, 15'h7096, 15'h70A2, 15'h70AE, 15'h70BA, 15'h70C6, 15'h70D2, 15'h70DE, + 15'h70EA, 15'h70F5, 15'h7101, 15'h710D, 15'h7119, 15'h7125, 15'h7130, 15'h713C, 15'h7148, 15'h7153, 15'h715F, 15'h716B, 15'h7176, 15'h7182, 15'h718E, 15'h7199, + 15'h71A5, 15'h71B0, 15'h71BC, 15'h71C7, 15'h71D3, 15'h71DE, 15'h71EA, 15'h71F5, 15'h7201, 15'h720C, 15'h7218, 15'h7223, 15'h722E, 15'h723A, 15'h7245, 15'h7250, + 15'h725C, 15'h7267, 15'h7272, 15'h727E, 15'h7289, 15'h7294, 15'h729F, 15'h72AA, 15'h72B6, 15'h72C1, 15'h72CC, 15'h72D7, 15'h72E2, 15'h72ED, 15'h72F8, 15'h7303, + 15'h730E, 15'h7319, 15'h7324, 15'h732F, 15'h733A, 15'h7345, 15'h7350, 15'h735B, 15'h7366, 15'h7371, 15'h737B, 15'h7386, 15'h7391, 15'h739C, 15'h73A7, 15'h73B1, + 15'h73BC, 15'h73C7, 15'h73D2, 15'h73DC, 15'h73E7, 15'h73F2, 15'h73FC, 15'h7407, 15'h7412, 15'h741C, 15'h7427, 15'h7431, 15'h743C, 15'h7446, 15'h7451, 15'h745B, + 15'h7466, 15'h7470, 15'h747B, 15'h7485, 15'h7490, 15'h749A, 15'h74A4, 15'h74AF, 15'h74B9, 15'h74C3, 15'h74CE, 15'h74D8, 15'h74E2, 15'h74EC, 15'h74F7, 15'h7501, + 15'h750B, 15'h7515, 15'h751F, 15'h7529, 15'h7533, 15'h753E, 15'h7548, 15'h7552, 15'h755C, 15'h7566, 15'h7570, 15'h757A, 15'h7584, 15'h758E, 15'h7598, 15'h75A2, + 15'h75AB, 15'h75B5, 15'h75BF, 15'h75C9, 15'h75D3, 15'h75DD, 15'h75E6, 15'h75F0, 15'h75FA, 15'h7604, 15'h760D, 15'h7617, 15'h7621, 15'h762B, 15'h7634, 15'h763E, + 15'h7647, 15'h7651, 15'h765B, 15'h7664, 15'h766E, 15'h7677, 15'h7681, 15'h768A, 15'h7694, 15'h769D, 15'h76A7, 15'h76B0, 15'h76B9, 15'h76C3, 15'h76CC, 15'h76D6, + 15'h76DF, 15'h76E8, 15'h76F2, 15'h76FB, 15'h7704, 15'h770D, 15'h7717, 15'h7720, 15'h7729, 15'h7732, 15'h773B, 15'h7744, 15'h774E, 15'h7757, 15'h7760, 15'h7769, + 15'h7772, 15'h777B, 15'h7784, 15'h778D, 15'h7796, 15'h779F, 15'h77A8, 15'h77B1, 15'h77BA, 15'h77C2, 15'h77CB, 15'h77D4, 15'h77DD, 15'h77E6, 15'h77EF, 15'h77F7, + 15'h7800, 15'h7809, 15'h7812, 15'h781A, 15'h7823, 15'h782C, 15'h7834, 15'h783D, 15'h7845, 15'h784E, 15'h7857, 15'h785F, 15'h7868, 15'h7870, 15'h7879, 15'h7881, + 15'h788A, 15'h7892, 15'h789B, 15'h78A3, 15'h78AB, 15'h78B4, 15'h78BC, 15'h78C4, 15'h78CD, 15'h78D5, 15'h78DD, 15'h78E6, 15'h78EE, 15'h78F6, 15'h78FE, 15'h7906, + 15'h790F, 15'h7917, 15'h791F, 15'h7927, 15'h792F, 15'h7937, 15'h793F, 15'h7947, 15'h794F, 15'h7957, 15'h795F, 15'h7967, 15'h796F, 15'h7977, 15'h797F, 15'h7987, + 15'h798F, 15'h7997, 15'h799F, 15'h79A7, 15'h79AE, 15'h79B6, 15'h79BE, 15'h79C6, 15'h79CD, 15'h79D5, 15'h79DD, 15'h79E4, 15'h79EC, 15'h79F4, 15'h79FB, 15'h7A03, + 15'h7A0B, 15'h7A12, 15'h7A1A, 15'h7A21, 15'h7A29, 15'h7A30, 15'h7A38, 15'h7A3F, 15'h7A47, 15'h7A4E, 15'h7A55, 15'h7A5D, 15'h7A64, 15'h7A6C, 15'h7A73, 15'h7A7A, + 15'h7A81, 15'h7A89, 15'h7A90, 15'h7A97, 15'h7A9E, 15'h7AA6, 15'h7AAD, 15'h7AB4, 15'h7ABB, 15'h7AC2, 15'h7AC9, 15'h7AD0, 15'h7AD8, 15'h7ADF, 15'h7AE6, 15'h7AED, + 15'h7AF4, 15'h7AFB, 15'h7B02, 15'h7B09, 15'h7B0F, 15'h7B16, 15'h7B1D, 15'h7B24, 15'h7B2B, 15'h7B32, 15'h7B39, 15'h7B3F, 15'h7B46, 15'h7B4D, 15'h7B54, 15'h7B5A, + 15'h7B61, 15'h7B68, 15'h7B6E, 15'h7B75, 15'h7B7C, 15'h7B82, 15'h7B89, 15'h7B8F, 15'h7B96, 15'h7B9D, 15'h7BA3, 15'h7BAA, 15'h7BB0, 15'h7BB7, 15'h7BBD, 15'h7BC3, + 15'h7BCA, 15'h7BD0, 15'h7BD7, 15'h7BDD, 15'h7BE3, 15'h7BE9, 15'h7BF0, 15'h7BF6, 15'h7BFC, 15'h7C03, 15'h7C09, 15'h7C0F, 15'h7C15, 15'h7C1B, 15'h7C21, 15'h7C28, + 15'h7C2E, 15'h7C34, 15'h7C3A, 15'h7C40, 15'h7C46, 15'h7C4C, 15'h7C52, 15'h7C58, 15'h7C5E, 15'h7C64, 15'h7C6A, 15'h7C70, 15'h7C75, 15'h7C7B, 15'h7C81, 15'h7C87, + 15'h7C8D, 15'h7C93, 15'h7C98, 15'h7C9E, 15'h7CA4, 15'h7CA9, 15'h7CAF, 15'h7CB5, 15'h7CBB, 15'h7CC0, 15'h7CC6, 15'h7CCB, 15'h7CD1, 15'h7CD6, 15'h7CDC, 15'h7CE2, + 15'h7CE7, 15'h7CED, 15'h7CF2, 15'h7CF7, 15'h7CFD, 15'h7D02, 15'h7D08, 15'h7D0D, 15'h7D12, 15'h7D18, 15'h7D1D, 15'h7D22, 15'h7D28, 15'h7D2D, 15'h7D32, 15'h7D37, + 15'h7D3D, 15'h7D42, 15'h7D47, 15'h7D4C, 15'h7D51, 15'h7D56, 15'h7D5B, 15'h7D60, 15'h7D65, 15'h7D6A, 15'h7D70, 15'h7D74, 15'h7D79, 15'h7D7E, 15'h7D83, 15'h7D88, + 15'h7D8D, 15'h7D92, 15'h7D97, 15'h7D9C, 15'h7DA1, 15'h7DA5, 15'h7DAA, 15'h7DAF, 15'h7DB4, 15'h7DB8, 15'h7DBD, 15'h7DC2, 15'h7DC6, 15'h7DCB, 15'h7DD0, 15'h7DD4, + 15'h7DD9, 15'h7DDE, 15'h7DE2, 15'h7DE7, 15'h7DEB, 15'h7DF0, 15'h7DF4, 15'h7DF9, 15'h7DFD, 15'h7E01, 15'h7E06, 15'h7E0A, 15'h7E0F, 15'h7E13, 15'h7E17, 15'h7E1C, + 15'h7E20, 15'h7E24, 15'h7E28, 15'h7E2D, 15'h7E31, 15'h7E35, 15'h7E39, 15'h7E3D, 15'h7E42, 15'h7E46, 15'h7E4A, 15'h7E4E, 15'h7E52, 15'h7E56, 15'h7E5A, 15'h7E5E, + 15'h7E62, 15'h7E66, 15'h7E6A, 15'h7E6E, 15'h7E72, 15'h7E76, 15'h7E7A, 15'h7E7D, 15'h7E81, 15'h7E85, 15'h7E89, 15'h7E8D, 15'h7E90, 15'h7E94, 15'h7E98, 15'h7E9C, + 15'h7E9F, 15'h7EA3, 15'h7EA6, 15'h7EAA, 15'h7EAE, 15'h7EB1, 15'h7EB5, 15'h7EB8, 15'h7EBC, 15'h7EBF, 15'h7EC3, 15'h7EC6, 15'h7ECA, 15'h7ECD, 15'h7ED1, 15'h7ED4, + 15'h7ED7, 15'h7EDB, 15'h7EDE, 15'h7EE2, 15'h7EE5, 15'h7EE8, 15'h7EEB, 15'h7EEF, 15'h7EF2, 15'h7EF5, 15'h7EF8, 15'h7EFB, 15'h7EFF, 15'h7F02, 15'h7F05, 15'h7F08, + 15'h7F0B, 15'h7F0E, 15'h7F11, 15'h7F14, 15'h7F17, 15'h7F1A, 15'h7F1D, 15'h7F20, 15'h7F23, 15'h7F26, 15'h7F29, 15'h7F2B, 15'h7F2E, 15'h7F31, 15'h7F34, 15'h7F37, + 15'h7F39, 15'h7F3C, 15'h7F3F, 15'h7F42, 15'h7F44, 15'h7F47, 15'h7F4A, 15'h7F4C, 15'h7F4F, 15'h7F51, 15'h7F54, 15'h7F57, 15'h7F59, 15'h7F5C, 15'h7F5E, 15'h7F61, + 15'h7F63, 15'h7F65, 15'h7F68, 15'h7F6A, 15'h7F6D, 15'h7F6F, 15'h7F71, 15'h7F74, 15'h7F76, 15'h7F78, 15'h7F7B, 15'h7F7D, 15'h7F7F, 15'h7F81, 15'h7F83, 15'h7F86, + 15'h7F88, 15'h7F8A, 15'h7F8C, 15'h7F8E, 15'h7F90, 15'h7F92, 15'h7F94, 15'h7F96, 15'h7F98, 15'h7F9A, 15'h7F9C, 15'h7F9E, 15'h7FA0, 15'h7FA2, 15'h7FA4, 15'h7FA6, + 15'h7FA7, 15'h7FA9, 15'h7FAB, 15'h7FAD, 15'h7FAF, 15'h7FB0, 15'h7FB2, 15'h7FB4, 15'h7FB6, 15'h7FB7, 15'h7FB9, 15'h7FBA, 15'h7FBC, 15'h7FBE, 15'h7FBF, 15'h7FC1, + 15'h7FC2, 15'h7FC4, 15'h7FC5, 15'h7FC7, 15'h7FC8, 15'h7FCA, 15'h7FCB, 15'h7FCD, 15'h7FCE, 15'h7FCF, 15'h7FD1, 15'h7FD2, 15'h7FD3, 15'h7FD4, 15'h7FD6, 15'h7FD7, + 15'h7FD8, 15'h7FD9, 15'h7FDB, 15'h7FDC, 15'h7FDD, 15'h7FDE, 15'h7FDF, 15'h7FE0, 15'h7FE1, 15'h7FE2, 15'h7FE3, 15'h7FE4, 15'h7FE5, 15'h7FE6, 15'h7FE7, 15'h7FE8, + 15'h7FE9, 15'h7FEA, 15'h7FEB, 15'h7FEC, 15'h7FED, 15'h7FED, 15'h7FEE, 15'h7FEF, 15'h7FF0, 15'h7FF1, 15'h7FF1, 15'h7FF2, 15'h7FF3, 15'h7FF3, 15'h7FF4, 15'h7FF5, + 15'h7FF5, 15'h7FF6, 15'h7FF6, 15'h7FF7, 15'h7FF7, 15'h7FF8, 15'h7FF8, 15'h7FF9, 15'h7FF9, 15'h7FFA, 15'h7FFA, 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFC, 15'h7FFC, + 15'h7FFC, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFF +*/ + + // sin((pi/2)*sin(x)) + 15'h0000, 15'h0027, 15'h004E, 15'h0076, 15'h009D, 15'h00C5, 15'h00EC, 15'h0114, 15'h013B, 15'h0163, 15'h018A, 15'h01B2, 15'h01D9, 15'h0201, 15'h0228, 15'h0250, + 15'h0277, 15'h029F, 15'h02C6, 15'h02EE, 15'h0315, 15'h033D, 15'h0364, 15'h038C, 15'h03B3, 15'h03DB, 15'h0402, 15'h042A, 15'h0451, 15'h0479, 15'h04A0, 15'h04C7, + 15'h04EF, 15'h0516, 15'h053E, 15'h0565, 15'h058D, 15'h05B4, 15'h05DC, 15'h0603, 15'h062B, 15'h0652, 15'h0679, 15'h06A1, 15'h06C8, 15'h06F0, 15'h0717, 15'h073E, + 15'h0766, 15'h078D, 15'h07B5, 15'h07DC, 15'h0803, 15'h082B, 15'h0852, 15'h087A, 15'h08A1, 15'h08C8, 15'h08F0, 15'h0917, 15'h093E, 15'h0966, 15'h098D, 15'h09B4, + 15'h09DC, 15'h0A03, 15'h0A2A, 15'h0A52, 15'h0A79, 15'h0AA0, 15'h0AC8, 15'h0AEF, 15'h0B16, 15'h0B3E, 15'h0B65, 15'h0B8C, 15'h0BB3, 15'h0BDB, 15'h0C02, 15'h0C29, + 15'h0C50, 15'h0C78, 15'h0C9F, 15'h0CC6, 15'h0CED, 15'h0D14, 15'h0D3C, 15'h0D63, 15'h0D8A, 15'h0DB1, 15'h0DD8, 15'h0E00, 15'h0E27, 15'h0E4E, 15'h0E75, 15'h0E9C, + 15'h0EC3, 15'h0EEA, 15'h0F12, 15'h0F39, 15'h0F60, 15'h0F87, 15'h0FAE, 15'h0FD5, 15'h0FFC, 15'h1023, 15'h104A, 15'h1071, 15'h1098, 15'h10BF, 15'h10E6, 15'h110D, + 15'h1134, 15'h115B, 15'h1182, 15'h11A9, 15'h11D0, 15'h11F7, 15'h121E, 15'h1245, 15'h126C, 15'h1293, 15'h12BA, 15'h12E1, 15'h1308, 15'h132E, 15'h1355, 15'h137C, + 15'h13A3, 15'h13CA, 15'h13F1, 15'h1417, 15'h143E, 15'h1465, 15'h148C, 15'h14B3, 15'h14D9, 15'h1500, 15'h1527, 15'h154E, 15'h1574, 15'h159B, 15'h15C2, 15'h15E8, + 15'h160F, 15'h1636, 15'h165C, 15'h1683, 15'h16AA, 15'h16D0, 15'h16F7, 15'h171D, 15'h1744, 15'h176B, 15'h1791, 15'h17B8, 15'h17DE, 15'h1805, 15'h182B, 15'h1852, + 15'h1878, 15'h189F, 15'h18C5, 15'h18EC, 15'h1912, 15'h1938, 15'h195F, 15'h1985, 15'h19AC, 15'h19D2, 15'h19F8, 15'h1A1F, 15'h1A45, 15'h1A6B, 15'h1A92, 15'h1AB8, + 15'h1ADE, 15'h1B04, 15'h1B2B, 15'h1B51, 15'h1B77, 15'h1B9D, 15'h1BC4, 15'h1BEA, 15'h1C10, 15'h1C36, 15'h1C5C, 15'h1C82, 15'h1CA8, 15'h1CCE, 15'h1CF5, 15'h1D1B, + 15'h1D41, 15'h1D67, 15'h1D8D, 15'h1DB3, 15'h1DD9, 15'h1DFF, 15'h1E25, 15'h1E4B, 15'h1E70, 15'h1E96, 15'h1EBC, 15'h1EE2, 15'h1F08, 15'h1F2E, 15'h1F54, 15'h1F79, + 15'h1F9F, 15'h1FC5, 15'h1FEB, 15'h2011, 15'h2036, 15'h205C, 15'h2082, 15'h20A7, 15'h20CD, 15'h20F3, 15'h2118, 15'h213E, 15'h2163, 15'h2189, 15'h21AF, 15'h21D4, + 15'h21FA, 15'h221F, 15'h2245, 15'h226A, 15'h2290, 15'h22B5, 15'h22DA, 15'h2300, 15'h2325, 15'h234B, 15'h2370, 15'h2395, 15'h23BB, 15'h23E0, 15'h2405, 15'h242A, + 15'h2450, 15'h2475, 15'h249A, 15'h24BF, 15'h24E4, 15'h250A, 15'h252F, 15'h2554, 15'h2579, 15'h259E, 15'h25C3, 15'h25E8, 15'h260D, 15'h2632, 15'h2657, 15'h267C, + 15'h26A1, 15'h26C6, 15'h26EB, 15'h2710, 15'h2735, 15'h2759, 15'h277E, 15'h27A3, 15'h27C8, 15'h27ED, 15'h2811, 15'h2836, 15'h285B, 15'h287F, 15'h28A4, 15'h28C9, + 15'h28ED, 15'h2912, 15'h2937, 15'h295B, 15'h2980, 15'h29A4, 15'h29C9, 15'h29ED, 15'h2A12, 15'h2A36, 15'h2A5A, 15'h2A7F, 15'h2AA3, 15'h2AC8, 15'h2AEC, 15'h2B10, + 15'h2B34, 15'h2B59, 15'h2B7D, 15'h2BA1, 15'h2BC5, 15'h2BEA, 15'h2C0E, 15'h2C32, 15'h2C56, 15'h2C7A, 15'h2C9E, 15'h2CC2, 15'h2CE6, 15'h2D0A, 15'h2D2E, 15'h2D52, + 15'h2D76, 15'h2D9A, 15'h2DBE, 15'h2DE2, 15'h2E06, 15'h2E29, 15'h2E4D, 15'h2E71, 15'h2E95, 15'h2EB8, 15'h2EDC, 15'h2F00, 15'h2F23, 15'h2F47, 15'h2F6B, 15'h2F8E, + 15'h2FB2, 15'h2FD5, 15'h2FF9, 15'h301C, 15'h3040, 15'h3063, 15'h3087, 15'h30AA, 15'h30CE, 15'h30F1, 15'h3114, 15'h3138, 15'h315B, 15'h317E, 15'h31A1, 15'h31C4, + 15'h31E8, 15'h320B, 15'h322E, 15'h3251, 15'h3274, 15'h3297, 15'h32BA, 15'h32DD, 15'h3300, 15'h3323, 15'h3346, 15'h3369, 15'h338C, 15'h33AF, 15'h33D2, 15'h33F4, + 15'h3417, 15'h343A, 15'h345D, 15'h347F, 15'h34A2, 15'h34C5, 15'h34E7, 15'h350A, 15'h352D, 15'h354F, 15'h3572, 15'h3594, 15'h35B7, 15'h35D9, 15'h35FB, 15'h361E, + 15'h3640, 15'h3663, 15'h3685, 15'h36A7, 15'h36C9, 15'h36EC, 15'h370E, 15'h3730, 15'h3752, 15'h3774, 15'h3796, 15'h37B9, 15'h37DB, 15'h37FD, 15'h381F, 15'h3841, + 15'h3863, 15'h3884, 15'h38A6, 15'h38C8, 15'h38EA, 15'h390C, 15'h392E, 15'h394F, 15'h3971, 15'h3993, 15'h39B4, 15'h39D6, 15'h39F8, 15'h3A19, 15'h3A3B, 15'h3A5C, + 15'h3A7E, 15'h3A9F, 15'h3AC1, 15'h3AE2, 15'h3B04, 15'h3B25, 15'h3B46, 15'h3B68, 15'h3B89, 15'h3BAA, 15'h3BCB, 15'h3BED, 15'h3C0E, 15'h3C2F, 15'h3C50, 15'h3C71, + 15'h3C92, 15'h3CB3, 15'h3CD4, 15'h3CF5, 15'h3D16, 15'h3D37, 15'h3D58, 15'h3D79, 15'h3D99, 15'h3DBA, 15'h3DDB, 15'h3DFC, 15'h3E1C, 15'h3E3D, 15'h3E5E, 15'h3E7E, + 15'h3E9F, 15'h3EC0, 15'h3EE0, 15'h3F01, 15'h3F21, 15'h3F41, 15'h3F62, 15'h3F82, 15'h3FA3, 15'h3FC3, 15'h3FE3, 15'h4003, 15'h4024, 15'h4044, 15'h4064, 15'h4084, + 15'h40A4, 15'h40C4, 15'h40E4, 15'h4104, 15'h4124, 15'h4144, 15'h4164, 15'h4184, 15'h41A4, 15'h41C4, 15'h41E4, 15'h4204, 15'h4223, 15'h4243, 15'h4263, 15'h4282, + 15'h42A2, 15'h42C2, 15'h42E1, 15'h4301, 15'h4320, 15'h4340, 15'h435F, 15'h437E, 15'h439E, 15'h43BD, 15'h43DC, 15'h43FC, 15'h441B, 15'h443A, 15'h4459, 15'h4479, + 15'h4498, 15'h44B7, 15'h44D6, 15'h44F5, 15'h4514, 15'h4533, 15'h4552, 15'h4571, 15'h4590, 15'h45AE, 15'h45CD, 15'h45EC, 15'h460B, 15'h4629, 15'h4648, 15'h4667, + 15'h4685, 15'h46A4, 15'h46C3, 15'h46E1, 15'h4700, 15'h471E, 15'h473C, 15'h475B, 15'h4779, 15'h4797, 15'h47B6, 15'h47D4, 15'h47F2, 15'h4810, 15'h482F, 15'h484D, + 15'h486B, 15'h4889, 15'h48A7, 15'h48C5, 15'h48E3, 15'h4901, 15'h491F, 15'h493D, 15'h495B, 15'h4978, 15'h4996, 15'h49B4, 15'h49D2, 15'h49EF, 15'h4A0D, 15'h4A2A, + 15'h4A48, 15'h4A66, 15'h4A83, 15'h4AA1, 15'h4ABE, 15'h4ADB, 15'h4AF9, 15'h4B16, 15'h4B33, 15'h4B51, 15'h4B6E, 15'h4B8B, 15'h4BA8, 15'h4BC6, 15'h4BE3, 15'h4C00, + 15'h4C1D, 15'h4C3A, 15'h4C57, 15'h4C74, 15'h4C91, 15'h4CAD, 15'h4CCA, 15'h4CE7, 15'h4D04, 15'h4D21, 15'h4D3D, 15'h4D5A, 15'h4D77, 15'h4D93, 15'h4DB0, 15'h4DCC, + 15'h4DE9, 15'h4E05, 15'h4E22, 15'h4E3E, 15'h4E5B, 15'h4E77, 15'h4E93, 15'h4EAF, 15'h4ECC, 15'h4EE8, 15'h4F04, 15'h4F20, 15'h4F3C, 15'h4F58, 15'h4F74, 15'h4F90, + 15'h4FAC, 15'h4FC8, 15'h4FE4, 15'h5000, 15'h501C, 15'h5038, 15'h5053, 15'h506F, 15'h508B, 15'h50A6, 15'h50C2, 15'h50DE, 15'h50F9, 15'h5115, 15'h5130, 15'h514C, + 15'h5167, 15'h5182, 15'h519E, 15'h51B9, 15'h51D4, 15'h51EF, 15'h520B, 15'h5226, 15'h5241, 15'h525C, 15'h5277, 15'h5292, 15'h52AD, 15'h52C8, 15'h52E3, 15'h52FE, + 15'h5319, 15'h5334, 15'h534E, 15'h5369, 15'h5384, 15'h539E, 15'h53B9, 15'h53D4, 15'h53EE, 15'h5409, 15'h5423, 15'h543E, 15'h5458, 15'h5473, 15'h548D, 15'h54A7, + 15'h54C2, 15'h54DC, 15'h54F6, 15'h5510, 15'h552A, 15'h5544, 15'h555E, 15'h5579, 15'h5593, 15'h55AC, 15'h55C6, 15'h55E0, 15'h55FA, 15'h5614, 15'h562E, 15'h5648, + 15'h5661, 15'h567B, 15'h5695, 15'h56AE, 15'h56C8, 15'h56E1, 15'h56FB, 15'h5714, 15'h572E, 15'h5747, 15'h5760, 15'h577A, 15'h5793, 15'h57AC, 15'h57C6, 15'h57DF, + 15'h57F8, 15'h5811, 15'h582A, 15'h5843, 15'h585C, 15'h5875, 15'h588E, 15'h58A7, 15'h58C0, 15'h58D9, 15'h58F1, 15'h590A, 15'h5923, 15'h593C, 15'h5954, 15'h596D, + 15'h5985, 15'h599E, 15'h59B6, 15'h59CF, 15'h59E7, 15'h5A00, 15'h5A18, 15'h5A30, 15'h5A49, 15'h5A61, 15'h5A79, 15'h5A91, 15'h5AAA, 15'h5AC2, 15'h5ADA, 15'h5AF2, + 15'h5B0A, 15'h5B22, 15'h5B3A, 15'h5B52, 15'h5B69, 15'h5B81, 15'h5B99, 15'h5BB1, 15'h5BC8, 15'h5BE0, 15'h5BF8, 15'h5C0F, 15'h5C27, 15'h5C3E, 15'h5C56, 15'h5C6D, + 15'h5C85, 15'h5C9C, 15'h5CB4, 15'h5CCB, 15'h5CE2, 15'h5CF9, 15'h5D11, 15'h5D28, 15'h5D3F, 15'h5D56, 15'h5D6D, 15'h5D84, 15'h5D9B, 15'h5DB2, 15'h5DC9, 15'h5DE0, + 15'h5DF7, 15'h5E0E, 15'h5E24, 15'h5E3B, 15'h5E52, 15'h5E68, 15'h5E7F, 15'h5E96, 15'h5EAC, 15'h5EC3, 15'h5ED9, 15'h5EF0, 15'h5F06, 15'h5F1C, 15'h5F33, 15'h5F49, + 15'h5F5F, 15'h5F76, 15'h5F8C, 15'h5FA2, 15'h5FB8, 15'h5FCE, 15'h5FE4, 15'h5FFA, 15'h6010, 15'h6026, 15'h603C, 15'h6052, 15'h6068, 15'h607E, 15'h6093, 15'h60A9, + 15'h60BF, 15'h60D4, 15'h60EA, 15'h6100, 15'h6115, 15'h612B, 15'h6140, 15'h6156, 15'h616B, 15'h6180, 15'h6196, 15'h61AB, 15'h61C0, 15'h61D5, 15'h61EB, 15'h6200, + 15'h6215, 15'h622A, 15'h623F, 15'h6254, 15'h6269, 15'h627E, 15'h6293, 15'h62A8, 15'h62BC, 15'h62D1, 15'h62E6, 15'h62FB, 15'h630F, 15'h6324, 15'h6339, 15'h634D, + 15'h6362, 15'h6376, 15'h638B, 15'h639F, 15'h63B4, 15'h63C8, 15'h63DC, 15'h63F1, 15'h6405, 15'h6419, 15'h642D, 15'h6441, 15'h6455, 15'h646A, 15'h647E, 15'h6492, + 15'h64A6, 15'h64B9, 15'h64CD, 15'h64E1, 15'h64F5, 15'h6509, 15'h651D, 15'h6530, 15'h6544, 15'h6558, 15'h656B, 15'h657F, 15'h6592, 15'h65A6, 15'h65B9, 15'h65CD, + 15'h65E0, 15'h65F3, 15'h6607, 15'h661A, 15'h662D, 15'h6640, 15'h6654, 15'h6667, 15'h667A, 15'h668D, 15'h66A0, 15'h66B3, 15'h66C6, 15'h66D9, 15'h66EC, 15'h66FF, + 15'h6711, 15'h6724, 15'h6737, 15'h674A, 15'h675C, 15'h676F, 15'h6782, 15'h6794, 15'h67A7, 15'h67B9, 15'h67CC, 15'h67DE, 15'h67F1, 15'h6803, 15'h6815, 15'h6828, + 15'h683A, 15'h684C, 15'h685E, 15'h6870, 15'h6883, 15'h6895, 15'h68A7, 15'h68B9, 15'h68CB, 15'h68DD, 15'h68EE, 15'h6900, 15'h6912, 15'h6924, 15'h6936, 15'h6948, + 15'h6959, 15'h696B, 15'h697C, 15'h698E, 15'h69A0, 15'h69B1, 15'h69C3, 15'h69D4, 15'h69E6, 15'h69F7, 15'h6A08, 15'h6A1A, 15'h6A2B, 15'h6A3C, 15'h6A4D, 15'h6A5E, + 15'h6A70, 15'h6A81, 15'h6A92, 15'h6AA3, 15'h6AB4, 15'h6AC5, 15'h6AD6, 15'h6AE7, 15'h6AF7, 15'h6B08, 15'h6B19, 15'h6B2A, 15'h6B3B, 15'h6B4B, 15'h6B5C, 15'h6B6D, + 15'h6B7D, 15'h6B8E, 15'h6B9E, 15'h6BAF, 15'h6BBF, 15'h6BD0, 15'h6BE0, 15'h6BF0, 15'h6C01, 15'h6C11, 15'h6C21, 15'h6C31, 15'h6C42, 15'h6C52, 15'h6C62, 15'h6C72, + 15'h6C82, 15'h6C92, 15'h6CA2, 15'h6CB2, 15'h6CC2, 15'h6CD2, 15'h6CE1, 15'h6CF1, 15'h6D01, 15'h6D11, 15'h6D20, 15'h6D30, 15'h6D40, 15'h6D4F, 15'h6D5F, 15'h6D6E, + 15'h6D7E, 15'h6D8D, 15'h6D9D, 15'h6DAC, 15'h6DBC, 15'h6DCB, 15'h6DDA, 15'h6DEA, 15'h6DF9, 15'h6E08, 15'h6E17, 15'h6E26, 15'h6E35, 15'h6E44, 15'h6E53, 15'h6E62, + 15'h6E71, 15'h6E80, 15'h6E8F, 15'h6E9E, 15'h6EAD, 15'h6EBC, 15'h6ECB, 15'h6ED9, 15'h6EE8, 15'h6EF7, 15'h6F05, 15'h6F14, 15'h6F22, 15'h6F31, 15'h6F3F, 15'h6F4E, + 15'h6F5C, 15'h6F6B, 15'h6F79, 15'h6F88, 15'h6F96, 15'h6FA4, 15'h6FB2, 15'h6FC1, 15'h6FCF, 15'h6FDD, 15'h6FEB, 15'h6FF9, 15'h7007, 15'h7015, 15'h7023, 15'h7031, + 15'h703F, 15'h704D, 15'h705B, 15'h7069, 15'h7076, 15'h7084, 15'h7092, 15'h709F, 15'h70AD, 15'h70BB, 15'h70C8, 15'h70D6, 15'h70E3, 15'h70F1, 15'h70FE, 15'h710C, + 15'h7119, 15'h7127, 15'h7134, 15'h7141, 15'h714F, 15'h715C, 15'h7169, 15'h7176, 15'h7183, 15'h7190, 15'h719E, 15'h71AB, 15'h71B8, 15'h71C5, 15'h71D2, 15'h71DF, + 15'h71EB, 15'h71F8, 15'h7205, 15'h7212, 15'h721F, 15'h722B, 15'h7238, 15'h7245, 15'h7251, 15'h725E, 15'h726B, 15'h7277, 15'h7284, 15'h7290, 15'h729D, 15'h72A9, + 15'h72B6, 15'h72C2, 15'h72CE, 15'h72DB, 15'h72E7, 15'h72F3, 15'h72FF, 15'h730B, 15'h7318, 15'h7324, 15'h7330, 15'h733C, 15'h7348, 15'h7354, 15'h7360, 15'h736C, + 15'h7378, 15'h7384, 15'h7390, 15'h739B, 15'h73A7, 15'h73B3, 15'h73BF, 15'h73CA, 15'h73D6, 15'h73E2, 15'h73ED, 15'h73F9, 15'h7404, 15'h7410, 15'h741B, 15'h7427, + 15'h7432, 15'h743E, 15'h7449, 15'h7454, 15'h7460, 15'h746B, 15'h7476, 15'h7481, 15'h748D, 15'h7498, 15'h74A3, 15'h74AE, 15'h74B9, 15'h74C4, 15'h74CF, 15'h74DA, + 15'h74E5, 15'h74F0, 15'h74FB, 15'h7506, 15'h7511, 15'h751C, 15'h7526, 15'h7531, 15'h753C, 15'h7546, 15'h7551, 15'h755C, 15'h7566, 15'h7571, 15'h757C, 15'h7586, + 15'h7591, 15'h759B, 15'h75A5, 15'h75B0, 15'h75BA, 15'h75C5, 15'h75CF, 15'h75D9, 15'h75E3, 15'h75EE, 15'h75F8, 15'h7602, 15'h760C, 15'h7616, 15'h7621, 15'h762B, + 15'h7635, 15'h763F, 15'h7649, 15'h7653, 15'h765D, 15'h7666, 15'h7670, 15'h767A, 15'h7684, 15'h768E, 15'h7698, 15'h76A1, 15'h76AB, 15'h76B5, 15'h76BE, 15'h76C8, + 15'h76D2, 15'h76DB, 15'h76E5, 15'h76EE, 15'h76F8, 15'h7701, 15'h770B, 15'h7714, 15'h771D, 15'h7727, 15'h7730, 15'h7739, 15'h7743, 15'h774C, 15'h7755, 15'h775E, + 15'h7767, 15'h7771, 15'h777A, 15'h7783, 15'h778C, 15'h7795, 15'h779E, 15'h77A7, 15'h77B0, 15'h77B9, 15'h77C2, 15'h77CB, 15'h77D3, 15'h77DC, 15'h77E5, 15'h77EE, + 15'h77F7, 15'h77FF, 15'h7808, 15'h7811, 15'h7819, 15'h7822, 15'h782A, 15'h7833, 15'h783C, 15'h7844, 15'h784D, 15'h7855, 15'h785D, 15'h7866, 15'h786E, 15'h7877, + 15'h787F, 15'h7887, 15'h7890, 15'h7898, 15'h78A0, 15'h78A8, 15'h78B0, 15'h78B9, 15'h78C1, 15'h78C9, 15'h78D1, 15'h78D9, 15'h78E1, 15'h78E9, 15'h78F1, 15'h78F9, + 15'h7901, 15'h7909, 15'h7911, 15'h7918, 15'h7920, 15'h7928, 15'h7930, 15'h7938, 15'h793F, 15'h7947, 15'h794F, 15'h7956, 15'h795E, 15'h7966, 15'h796D, 15'h7975, + 15'h797C, 15'h7984, 15'h798B, 15'h7993, 15'h799A, 15'h79A2, 15'h79A9, 15'h79B0, 15'h79B8, 15'h79BF, 15'h79C6, 15'h79CE, 15'h79D5, 15'h79DC, 15'h79E3, 15'h79EA, + 15'h79F2, 15'h79F9, 15'h7A00, 15'h7A07, 15'h7A0E, 15'h7A15, 15'h7A1C, 15'h7A23, 15'h7A2A, 15'h7A31, 15'h7A38, 15'h7A3F, 15'h7A46, 15'h7A4D, 15'h7A53, 15'h7A5A, + 15'h7A61, 15'h7A68, 15'h7A6E, 15'h7A75, 15'h7A7C, 15'h7A83, 15'h7A89, 15'h7A90, 15'h7A96, 15'h7A9D, 15'h7AA4, 15'h7AAA, 15'h7AB1, 15'h7AB7, 15'h7ABE, 15'h7AC4, + 15'h7ACA, 15'h7AD1, 15'h7AD7, 15'h7ADE, 15'h7AE4, 15'h7AEA, 15'h7AF1, 15'h7AF7, 15'h7AFD, 15'h7B03, 15'h7B09, 15'h7B10, 15'h7B16, 15'h7B1C, 15'h7B22, 15'h7B28, + 15'h7B2E, 15'h7B34, 15'h7B3A, 15'h7B40, 15'h7B46, 15'h7B4C, 15'h7B52, 15'h7B58, 15'h7B5E, 15'h7B64, 15'h7B6A, 15'h7B70, 15'h7B76, 15'h7B7B, 15'h7B81, 15'h7B87, + 15'h7B8D, 15'h7B92, 15'h7B98, 15'h7B9E, 15'h7BA3, 15'h7BA9, 15'h7BAF, 15'h7BB4, 15'h7BBA, 15'h7BBF, 15'h7BC5, 15'h7BCA, 15'h7BD0, 15'h7BD5, 15'h7BDB, 15'h7BE0, + 15'h7BE6, 15'h7BEB, 15'h7BF0, 15'h7BF6, 15'h7BFB, 15'h7C00, 15'h7C06, 15'h7C0B, 15'h7C10, 15'h7C15, 15'h7C1B, 15'h7C20, 15'h7C25, 15'h7C2A, 15'h7C2F, 15'h7C34, + 15'h7C3A, 15'h7C3F, 15'h7C44, 15'h7C49, 15'h7C4E, 15'h7C53, 15'h7C58, 15'h7C5D, 15'h7C62, 15'h7C67, 15'h7C6B, 15'h7C70, 15'h7C75, 15'h7C7A, 15'h7C7F, 15'h7C84, + 15'h7C88, 15'h7C8D, 15'h7C92, 15'h7C97, 15'h7C9B, 15'h7CA0, 15'h7CA5, 15'h7CA9, 15'h7CAE, 15'h7CB3, 15'h7CB7, 15'h7CBC, 15'h7CC1, 15'h7CC5, 15'h7CCA, 15'h7CCE, + 15'h7CD3, 15'h7CD7, 15'h7CDC, 15'h7CE0, 15'h7CE4, 15'h7CE9, 15'h7CED, 15'h7CF2, 15'h7CF6, 15'h7CFA, 15'h7CFF, 15'h7D03, 15'h7D07, 15'h7D0B, 15'h7D10, 15'h7D14, + 15'h7D18, 15'h7D1C, 15'h7D21, 15'h7D25, 15'h7D29, 15'h7D2D, 15'h7D31, 15'h7D35, 15'h7D39, 15'h7D3D, 15'h7D41, 15'h7D45, 15'h7D49, 15'h7D4D, 15'h7D51, 15'h7D55, + 15'h7D59, 15'h7D5D, 15'h7D61, 15'h7D65, 15'h7D69, 15'h7D6D, 15'h7D71, 15'h7D74, 15'h7D78, 15'h7D7C, 15'h7D80, 15'h7D84, 15'h7D87, 15'h7D8B, 15'h7D8F, 15'h7D92, + 15'h7D96, 15'h7D9A, 15'h7D9D, 15'h7DA1, 15'h7DA5, 15'h7DA8, 15'h7DAC, 15'h7DAF, 15'h7DB3, 15'h7DB7, 15'h7DBA, 15'h7DBE, 15'h7DC1, 15'h7DC5, 15'h7DC8, 15'h7DCB, + 15'h7DCF, 15'h7DD2, 15'h7DD6, 15'h7DD9, 15'h7DDC, 15'h7DE0, 15'h7DE3, 15'h7DE6, 15'h7DEA, 15'h7DED, 15'h7DF0, 15'h7DF4, 15'h7DF7, 15'h7DFA, 15'h7DFD, 15'h7E00, + 15'h7E04, 15'h7E07, 15'h7E0A, 15'h7E0D, 15'h7E10, 15'h7E13, 15'h7E17, 15'h7E1A, 15'h7E1D, 15'h7E20, 15'h7E23, 15'h7E26, 15'h7E29, 15'h7E2C, 15'h7E2F, 15'h7E32, + 15'h7E35, 15'h7E38, 15'h7E3B, 15'h7E3E, 15'h7E40, 15'h7E43, 15'h7E46, 15'h7E49, 15'h7E4C, 15'h7E4F, 15'h7E52, 15'h7E54, 15'h7E57, 15'h7E5A, 15'h7E5D, 15'h7E60, + 15'h7E62, 15'h7E65, 15'h7E68, 15'h7E6A, 15'h7E6D, 15'h7E70, 15'h7E72, 15'h7E75, 15'h7E78, 15'h7E7A, 15'h7E7D, 15'h7E80, 15'h7E82, 15'h7E85, 15'h7E87, 15'h7E8A, + 15'h7E8C, 15'h7E8F, 15'h7E91, 15'h7E94, 15'h7E96, 15'h7E99, 15'h7E9B, 15'h7E9E, 15'h7EA0, 15'h7EA3, 15'h7EA5, 15'h7EA7, 15'h7EAA, 15'h7EAC, 15'h7EAF, 15'h7EB1, + 15'h7EB3, 15'h7EB6, 15'h7EB8, 15'h7EBA, 15'h7EBC, 15'h7EBF, 15'h7EC1, 15'h7EC3, 15'h7EC5, 15'h7EC8, 15'h7ECA, 15'h7ECC, 15'h7ECE, 15'h7ED1, 15'h7ED3, 15'h7ED5, + 15'h7ED7, 15'h7ED9, 15'h7EDB, 15'h7EDD, 15'h7EDF, 15'h7EE2, 15'h7EE4, 15'h7EE6, 15'h7EE8, 15'h7EEA, 15'h7EEC, 15'h7EEE, 15'h7EF0, 15'h7EF2, 15'h7EF4, 15'h7EF6, + 15'h7EF8, 15'h7EFA, 15'h7EFC, 15'h7EFE, 15'h7F00, 15'h7F02, 15'h7F03, 15'h7F05, 15'h7F07, 15'h7F09, 15'h7F0B, 15'h7F0D, 15'h7F0F, 15'h7F10, 15'h7F12, 15'h7F14, + 15'h7F16, 15'h7F18, 15'h7F19, 15'h7F1B, 15'h7F1D, 15'h7F1F, 15'h7F20, 15'h7F22, 15'h7F24, 15'h7F26, 15'h7F27, 15'h7F29, 15'h7F2B, 15'h7F2C, 15'h7F2E, 15'h7F30, + 15'h7F31, 15'h7F33, 15'h7F35, 15'h7F36, 15'h7F38, 15'h7F39, 15'h7F3B, 15'h7F3D, 15'h7F3E, 15'h7F40, 15'h7F41, 15'h7F43, 15'h7F44, 15'h7F46, 15'h7F47, 15'h7F49, + 15'h7F4A, 15'h7F4C, 15'h7F4D, 15'h7F4F, 15'h7F50, 15'h7F52, 15'h7F53, 15'h7F54, 15'h7F56, 15'h7F57, 15'h7F59, 15'h7F5A, 15'h7F5B, 15'h7F5D, 15'h7F5E, 15'h7F60, + 15'h7F61, 15'h7F62, 15'h7F64, 15'h7F65, 15'h7F66, 15'h7F68, 15'h7F69, 15'h7F6A, 15'h7F6B, 15'h7F6D, 15'h7F6E, 15'h7F6F, 15'h7F70, 15'h7F72, 15'h7F73, 15'h7F74, + 15'h7F75, 15'h7F77, 15'h7F78, 15'h7F79, 15'h7F7A, 15'h7F7B, 15'h7F7D, 15'h7F7E, 15'h7F7F, 15'h7F80, 15'h7F81, 15'h7F82, 15'h7F83, 15'h7F85, 15'h7F86, 15'h7F87, + 15'h7F88, 15'h7F89, 15'h7F8A, 15'h7F8B, 15'h7F8C, 15'h7F8D, 15'h7F8E, 15'h7F8F, 15'h7F90, 15'h7F91, 15'h7F92, 15'h7F93, 15'h7F94, 15'h7F95, 15'h7F96, 15'h7F97, + 15'h7F98, 15'h7F99, 15'h7F9A, 15'h7F9B, 15'h7F9C, 15'h7F9D, 15'h7F9E, 15'h7F9F, 15'h7FA0, 15'h7FA1, 15'h7FA2, 15'h7FA3, 15'h7FA4, 15'h7FA4, 15'h7FA5, 15'h7FA6, + 15'h7FA7, 15'h7FA8, 15'h7FA9, 15'h7FAA, 15'h7FAB, 15'h7FAB, 15'h7FAC, 15'h7FAD, 15'h7FAE, 15'h7FAF, 15'h7FAF, 15'h7FB0, 15'h7FB1, 15'h7FB2, 15'h7FB3, 15'h7FB3, + 15'h7FB4, 15'h7FB5, 15'h7FB6, 15'h7FB6, 15'h7FB7, 15'h7FB8, 15'h7FB9, 15'h7FB9, 15'h7FBA, 15'h7FBB, 15'h7FBC, 15'h7FBC, 15'h7FBD, 15'h7FBE, 15'h7FBE, 15'h7FBF, + 15'h7FC0, 15'h7FC0, 15'h7FC1, 15'h7FC2, 15'h7FC2, 15'h7FC3, 15'h7FC4, 15'h7FC4, 15'h7FC5, 15'h7FC6, 15'h7FC6, 15'h7FC7, 15'h7FC8, 15'h7FC8, 15'h7FC9, 15'h7FC9, + 15'h7FCA, 15'h7FCB, 15'h7FCB, 15'h7FCC, 15'h7FCC, 15'h7FCD, 15'h7FCD, 15'h7FCE, 15'h7FCF, 15'h7FCF, 15'h7FD0, 15'h7FD0, 15'h7FD1, 15'h7FD1, 15'h7FD2, 15'h7FD2, + 15'h7FD3, 15'h7FD3, 15'h7FD4, 15'h7FD4, 15'h7FD5, 15'h7FD5, 15'h7FD6, 15'h7FD6, 15'h7FD7, 15'h7FD7, 15'h7FD8, 15'h7FD8, 15'h7FD9, 15'h7FD9, 15'h7FDA, 15'h7FDA, + 15'h7FDB, 15'h7FDB, 15'h7FDB, 15'h7FDC, 15'h7FDC, 15'h7FDD, 15'h7FDD, 15'h7FDE, 15'h7FDE, 15'h7FDE, 15'h7FDF, 15'h7FDF, 15'h7FE0, 15'h7FE0, 15'h7FE0, 15'h7FE1, + 15'h7FE1, 15'h7FE2, 15'h7FE2, 15'h7FE2, 15'h7FE3, 15'h7FE3, 15'h7FE3, 15'h7FE4, 15'h7FE4, 15'h7FE5, 15'h7FE5, 15'h7FE5, 15'h7FE6, 15'h7FE6, 15'h7FE6, 15'h7FE7, + 15'h7FE7, 15'h7FE7, 15'h7FE8, 15'h7FE8, 15'h7FE8, 15'h7FE9, 15'h7FE9, 15'h7FE9, 15'h7FE9, 15'h7FEA, 15'h7FEA, 15'h7FEA, 15'h7FEB, 15'h7FEB, 15'h7FEB, 15'h7FEB, + 15'h7FEC, 15'h7FEC, 15'h7FEC, 15'h7FED, 15'h7FED, 15'h7FED, 15'h7FED, 15'h7FEE, 15'h7FEE, 15'h7FEE, 15'h7FEE, 15'h7FEF, 15'h7FEF, 15'h7FEF, 15'h7FEF, 15'h7FF0, + 15'h7FF0, 15'h7FF0, 15'h7FF0, 15'h7FF0, 15'h7FF1, 15'h7FF1, 15'h7FF1, 15'h7FF1, 15'h7FF2, 15'h7FF2, 15'h7FF2, 15'h7FF2, 15'h7FF2, 15'h7FF3, 15'h7FF3, 15'h7FF3, + 15'h7FF3, 15'h7FF3, 15'h7FF4, 15'h7FF4, 15'h7FF4, 15'h7FF4, 15'h7FF4, 15'h7FF4, 15'h7FF5, 15'h7FF5, 15'h7FF5, 15'h7FF5, 15'h7FF5, 15'h7FF5, 15'h7FF6, 15'h7FF6, + 15'h7FF6, 15'h7FF6, 15'h7FF6, 15'h7FF6, 15'h7FF6, 15'h7FF7, 15'h7FF7, 15'h7FF7, 15'h7FF7, 15'h7FF7, 15'h7FF7, 15'h7FF7, 15'h7FF8, 15'h7FF8, 15'h7FF8, 15'h7FF8, + 15'h7FF8, 15'h7FF8, 15'h7FF8, 15'h7FF8, 15'h7FF9, 15'h7FF9, 15'h7FF9, 15'h7FF9, 15'h7FF9, 15'h7FF9, 15'h7FF9, 15'h7FF9, 15'h7FF9, 15'h7FFA, 15'h7FFA, 15'h7FFA, + 15'h7FFA, 15'h7FFA, 15'h7FFA, 15'h7FFA, 15'h7FFA, 15'h7FFA, 15'h7FFA, 15'h7FFA, 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFB, + 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFB, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, + 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFC, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, + 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFD, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, + 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFE, 15'h7FFF +}; + +endmodule diff --git a/common/Sound/opl3/exp_tab.mem b/common/Sound/opl3/exp_tab.mem new file mode 100644 index 00000000..4a54c60d --- /dev/null +++ b/common/Sound/opl3/exp_tab.mem @@ -0,0 +1,6656 @@ +0FF4 +F00B +0FEA +F015 +0FDE +F021 +0FD4 +F02B +0FC8 +F037 +0FBE +F041 +0FB4 +F04B +0FA8 +F057 +0F9E +F061 +0F92 +F06D +0F88 +F077 +0F7E +F081 +0F72 +F08D +0F68 +F097 +0F5C +F0A3 +0F52 +F0AD +0F48 +F0B7 +0F3E +F0C1 +0F32 +F0CD +0F28 +F0D7 +0F1E +F0E1 +0F14 +F0EB +0F08 +F0F7 +0EFE +F101 +0EF4 +F10B +0EEA +F115 +0EE0 +F11F +0ED4 +F12B +0ECA +F135 +0EC0 +F13F +0EB6 +F149 +0EAC +F153 +0EA2 +F15D +0E98 +F167 +0E8E +F171 +0E84 +F17B +0E7A +F185 +0E70 +F18F +0E66 +F199 +0E5C +F1A3 +0E52 +F1AD +0E48 +F1B7 +0E3E +F1C1 +0E34 +F1CB +0E2A +F1D5 +0E20 +F1DF +0E16 +F1E9 +0E0C +F1F3 +0E04 +F1FB +0DFA +F205 +0DF0 +F20F +0DE6 +F219 +0DDC +F223 +0DD2 +F22D +0DCA +F235 +0DC0 +F23F +0DB6 +F249 +0DAC +F253 +0DA4 +F25B +0D9A +F265 +0D90 +F26F +0D88 +F277 +0D7E +F281 +0D74 +F28B +0D6A +F295 +0D62 +F29D +0D58 +F2A7 +0D50 +F2AF +0D46 +F2B9 +0D3C +F2C3 +0D34 +F2CB +0D2A +F2D5 +0D22 +F2DD +0D18 +F2E7 +0D10 +F2EF +0D06 +F2F9 +0CFE +F301 +0CF4 +F30B +0CEC +F313 +0CE2 +F31D +0CDA +F325 +0CD0 +F32F +0CC8 +F337 +0CBE +F341 +0CB6 +F349 +0CAE +F351 +0CA4 +F35B +0C9C +F363 +0C92 +F36D +0C8A +F375 +0C82 +F37D +0C78 +F387 +0C70 +F38F +0C68 +F397 +0C60 +F39F +0C56 +F3A9 +0C4E +F3B1 +0C46 +F3B9 +0C3C +F3C3 +0C34 +F3CB +0C2C +F3D3 +0C24 +F3DB +0C1C +F3E3 +0C12 +F3ED +0C0A +F3F5 +0C02 +F3FD +0BFA +F405 +0BF2 +F40D +0BEA +F415 +0BE0 +F41F +0BD8 +F427 +0BD0 +F42F +0BC8 +F437 +0BC0 +F43F +0BB8 +F447 +0BB0 +F44F +0BA8 +F457 +0BA0 +F45F +0B98 +F467 +0B90 +F46F +0B88 +F477 +0B80 +F47F +0B78 +F487 +0B70 +F48F +0B68 +F497 +0B60 +F49F +0B58 +F4A7 +0B50 +F4AF +0B48 +F4B7 +0B40 +F4BF +0B38 +F4C7 +0B32 +F4CD +0B2A +F4D5 +0B22 +F4DD +0B1A +F4E5 +0B12 +F4ED +0B0A +F4F5 +0B02 +F4FD +0AFC +F503 +0AF4 +F50B +0AEC +F513 +0AE4 +F51B +0ADE +F521 +0AD6 +F529 +0ACE +F531 +0AC6 +F539 +0AC0 +F53F +0AB8 +F547 +0AB0 +F54F +0AA8 +F557 +0AA2 +F55D +0A9A +F565 +0A92 +F56D +0A8C +F573 +0A84 +F57B +0A7C +F583 +0A76 +F589 +0A6E +F591 +0A68 +F597 +0A60 +F59F +0A58 +F5A7 +0A52 +F5AD +0A4A +F5B5 +0A44 +F5BB +0A3C +F5C3 +0A36 +F5C9 +0A2E +F5D1 +0A28 +F5D7 +0A20 +F5DF +0A18 +F5E7 +0A12 +F5ED +0A0C +F5F3 +0A04 +F5FB +09FE +F601 +09F6 +F609 +09F0 +F60F +09E8 +F617 +09E2 +F61D +09DA +F625 +09D4 +F62B +09CE +F631 +09C6 +F639 +09C0 +F63F +09B8 +F647 +09B2 +F64D +09AC +F653 +09A4 +F65B +099E +F661 +0998 +F667 +0990 +F66F +098A +F675 +0984 +F67B +097C +F683 +0976 +F689 +0970 +F68F +096A +F695 +0962 +F69D +095C +F6A3 +0956 +F6A9 +0950 +F6AF +0948 +F6B7 +0942 +F6BD +093C +F6C3 +0936 +F6C9 +0930 +F6CF +0928 +F6D7 +0922 +F6DD +091C +F6E3 +0916 +F6E9 +0910 +F6EF +090A +F6F5 +0904 +F6FB +08FC +F703 +08F6 +F709 +08F0 +F70F +08EA +F715 +08E4 +F71B +08DE +F721 +08D8 +F727 +08D2 +F72D +08CC +F733 +08C6 +F739 +08C0 +F73F +08BA +F745 +08B4 +F74B +08AE +F751 +08A8 +F757 +08A2 +F75D +089C +F763 +0896 +F769 +0890 +F76F +088A +F775 +0884 +F77B +087E +F781 +0878 +F787 +0872 +F78D +086C +F793 +0866 +F799 +0860 +F79F +085A +F7A5 +0854 +F7AB +0850 +F7AF +084A +F7B5 +0844 +F7BB +083E +F7C1 +0838 +F7C7 +0832 +F7CD +082C +F7D3 +0828 +F7D7 +0822 +F7DD +081C +F7E3 +0816 +F7E9 +0810 +F7EF +080C +F7F3 +0806 +F7F9 +0800 +F7FF +07FA +F805 +07F5 +F80A +07EF +F810 +07EA +F815 +07E4 +F81B +07DF +F820 +07DA +F825 +07D4 +F82B +07CF +F830 +07C9 +F836 +07C4 +F83B +07BF +F840 +07B9 +F846 +07B4 +F84B +07AE +F851 +07A9 +F856 +07A4 +F85B +079F +F860 +0799 +F866 +0794 +F86B +078F +F870 +078A +F875 +0784 +F87B +077F +F880 +077A +F885 +0775 +F88A +0770 +F88F +076A +F895 +0765 +F89A +0760 +F89F +075B +F8A4 +0756 +F8A9 +0751 +F8AE +074C +F8B3 +0747 +F8B8 +0742 +F8BD +073D +F8C2 +0738 +F8C7 +0733 +F8CC +072E +F8D1 +0729 +F8D6 +0724 +F8DB +071F +F8E0 +071A +F8E5 +0715 +F8EA +0710 +F8EF +070B +F8F4 +0706 +F8F9 +0702 +F8FD +06FD +F902 +06F8 +F907 +06F3 +F90C +06EE +F911 +06E9 +F916 +06E5 +F91A +06E0 +F91F +06DB +F924 +06D6 +F929 +06D2 +F92D +06CD +F932 +06C8 +F937 +06C4 +F93B +06BF +F940 +06BA +F945 +06B5 +F94A +06B1 +F94E +06AC +F953 +06A8 +F957 +06A3 +F95C +069E +F961 +069A +F965 +0695 +F96A +0691 +F96E +068C +F973 +0688 +F977 +0683 +F97C +067F +F980 +067A +F985 +0676 +F989 +0671 +F98E +066D +F992 +0668 +F997 +0664 +F99B +065F +F9A0 +065B +F9A4 +0657 +F9A8 +0652 +F9AD +064E +F9B1 +0649 +F9B6 +0645 +F9BA +0641 +F9BE +063C +F9C3 +0638 +F9C7 +0634 +F9CB +0630 +F9CF +062B +F9D4 +0627 +F9D8 +0623 +F9DC +061E +F9E1 +061A +F9E5 +0616 +F9E9 +0612 +F9ED +060E +F9F1 +0609 +F9F6 +0605 +F9FA +0601 +F9FE +05FD +FA02 +05F9 +FA06 +05F5 +FA0A +05F0 +FA0F +05EC +FA13 +05E8 +FA17 +05E4 +FA1B +05E0 +FA1F +05DC +FA23 +05D8 +FA27 +05D4 +FA2B +05D0 +FA2F +05CC +FA33 +05C8 +FA37 +05C4 +FA3B +05C0 +FA3F +05BC +FA43 +05B8 +FA47 +05B4 +FA4B +05B0 +FA4F +05AC +FA53 +05A8 +FA57 +05A4 +FA5B +05A0 +FA5F +059C +FA63 +0599 +FA66 +0595 +FA6A +0591 +FA6E +058D +FA72 +0589 +FA76 +0585 +FA7A +0581 +FA7E +057E +FA81 +057A +FA85 +0576 +FA89 +0572 +FA8D +056F +FA90 +056B +FA94 +0567 +FA98 +0563 +FA9C +0560 +FA9F +055C +FAA3 +0558 +FAA7 +0554 +FAAB +0551 +FAAE +054D +FAB2 +0549 +FAB6 +0546 +FAB9 +0542 +FABD +053E +FAC1 +053B +FAC4 +0537 +FAC8 +0534 +FACB +0530 +FACF +052C +FAD3 +0529 +FAD6 +0525 +FADA +0522 +FADD +051E +FAE1 +051B +FAE4 +0517 +FAE8 +0514 +FAEB +0510 +FAEF +050C +FAF3 +0509 +FAF6 +0506 +FAF9 +0502 +FAFD +04FF +FB00 +04FB +FB04 +04F8 +FB07 +04F4 +FB0B +04F1 +FB0E +04ED +FB12 +04EA +FB15 +04E7 +FB18 +04E3 +FB1C +04E0 +FB1F +04DC +FB23 +04D9 +FB26 +04D6 +FB29 +04D2 +FB2D +04CF +FB30 +04CC +FB33 +04C8 +FB37 +04C5 +FB3A +04C2 +FB3D +04BE +FB41 +04BB +FB44 +04B8 +FB47 +04B5 +FB4A +04B1 +FB4E +04AE +FB51 +04AB +FB54 +04A8 +FB57 +04A4 +FB5B +04A1 +FB5E +049E +FB61 +049B +FB64 +0498 +FB67 +0494 +FB6B +0491 +FB6E +048E +FB71 +048B +FB74 +0488 +FB77 +0485 +FB7A +0482 +FB7D +047E +FB81 +047B +FB84 +0478 +FB87 +0475 +FB8A +0472 +FB8D +046F +FB90 +046C +FB93 +0469 +FB96 +0466 +FB99 +0463 +FB9C +0460 +FB9F +045D +FBA2 +045A +FBA5 +0457 +FBA8 +0454 +FBAB +0451 +FBAE +044E +FBB1 +044B +FBB4 +0448 +FBB7 +0445 +FBBA +0442 +FBBD +043F +FBC0 +043C +FBC3 +0439 +FBC6 +0436 +FBC9 +0433 +FBCC +0430 +FBCF +042D +FBD2 +042A +FBD5 +0428 +FBD7 +0425 +FBDA +0422 +FBDD +041F +FBE0 +041C +FBE3 +0419 +FBE6 +0416 +FBE9 +0414 +FBEB +0411 +FBEE +040E +FBF1 +040B +FBF4 +0408 +FBF7 +0406 +FBF9 +0403 +FBFC +0400 +FBFF +03FD +FC02 +03FA +FC05 +03F7 +FC08 +03F5 +FC0A +03F2 +FC0D +03EF +FC10 +03ED +FC12 +03EA +FC15 +03E7 +FC18 +03E4 +FC1B +03E2 +FC1D +03DF +FC20 +03DC +FC23 +03DA +FC25 +03D7 +FC28 +03D4 +FC2B +03D2 +FC2D +03CF +FC30 +03CC +FC33 +03CA +FC35 +03C7 +FC38 +03C5 +FC3A +03C2 +FC3D +03BF +FC40 +03BD +FC42 +03BA +FC45 +03B8 +FC47 +03B5 +FC4A +03B2 +FC4D +03B0 +FC4F +03AD +FC52 +03AB +FC54 +03A8 +FC57 +03A6 +FC59 +03A3 +FC5C +03A1 +FC5E +039E +FC61 +039C +FC63 +0399 +FC66 +0397 +FC68 +0394 +FC6B +0392 +FC6D +038F +FC70 +038D +FC72 +038A +FC75 +0388 +FC77 +0385 +FC7A +0383 +FC7C +0381 +FC7E +037E +FC81 +037C +FC83 +0379 +FC86 +0377 +FC88 +0374 +FC8B +0372 +FC8D +0370 +FC8F +036D +FC92 +036B +FC94 +0369 +FC96 +0366 +FC99 +0364 +FC9B +0362 +FC9D +035F +FCA0 +035D +FCA2 +035A +FCA5 +0358 +FCA7 +0356 +FCA9 +0354 +FCAB +0351 +FCAE +034F +FCB0 +034D +FCB2 +034A +FCB5 +0348 +FCB7 +0346 +FCB9 +0344 +FCBB +0341 +FCBE +033F +FCC0 +033D +FCC2 +033B +FCC4 +0338 +FCC7 +0336 +FCC9 +0334 +FCCB +0332 +FCCD +032F +FCD0 +032D +FCD2 +032B +FCD4 +0329 +FCD6 +0327 +FCD8 +0324 +FCDB +0322 +FCDD +0320 +FCDF +031E +FCE1 +031C +FCE3 +031A +FCE5 +0318 +FCE7 +0315 +FCEA +0313 +FCEC +0311 +FCEE +030F +FCF0 +030D +FCF2 +030B +FCF4 +0309 +FCF6 +0307 +FCF8 +0304 +FCFB +0302 +FCFD +0300 +FCFF +02FE +FD01 +02FC +FD03 +02FA +FD05 +02F8 +FD07 +02F6 +FD09 +02F4 +FD0B +02F2 +FD0D +02F0 +FD0F +02EE +FD11 +02EC +FD13 +02EA +FD15 +02E8 +FD17 +02E6 +FD19 +02E4 +FD1B +02E2 +FD1D +02E0 +FD1F +02DE +FD21 +02DC +FD23 +02DA +FD25 +02D8 +FD27 +02D6 +FD29 +02D4 +FD2B +02D2 +FD2D +02D0 +FD2F +02CE +FD31 +02CC +FD33 +02CA +FD35 +02C8 +FD37 +02C6 +FD39 +02C4 +FD3B +02C2 +FD3D +02C0 +FD3F +02BF +FD40 +02BD +FD42 +02BB +FD44 +02B9 +FD46 +02B7 +FD48 +02B5 +FD4A +02B3 +FD4C +02B1 +FD4E +02B0 +FD4F +02AE +FD51 +02AC +FD53 +02AA +FD55 +02A8 +FD57 +02A6 +FD59 +02A4 +FD5B +02A3 +FD5C +02A1 +FD5E +029F +FD60 +029D +FD62 +029B +FD64 +029A +FD65 +0298 +FD67 +0296 +FD69 +0294 +FD6B +0292 +FD6D +0291 +FD6E +028F +FD70 +028D +FD72 +028B +FD74 +028A +FD75 +0288 +FD77 +0286 +FD79 +0284 +FD7B +0283 +FD7C +0281 +FD7E +027F +FD80 +027D +FD82 +027C +FD83 +027A +FD85 +0278 +FD87 +0276 +FD89 +0275 +FD8A +0273 +FD8C +0271 +FD8E +0270 +FD8F +026E +FD91 +026C +FD93 +026B +FD94 +0269 +FD96 +0267 +FD98 +0266 +FD99 +0264 +FD9B +0262 +FD9D +0261 +FD9E +025F +FDA0 +025D +FDA2 +025C +FDA3 +025A +FDA5 +0258 +FDA7 +0257 +FDA8 +0255 +FDAA +0254 +FDAB +0252 +FDAD +0250 +FDAF +024F +FDB0 +024D +FDB2 +024C +FDB3 +024A +FDB5 +0248 +FDB7 +0247 +FDB8 +0245 +FDBA +0244 +FDBB +0242 +FDBD +0241 +FDBE +023F +FDC0 +023D +FDC2 +023C +FDC3 +023A +FDC5 +0239 +FDC6 +0237 +FDC8 +0236 +FDC9 +0234 +FDCB +0233 +FDCC +0231 +FDCE +0230 +FDCF +022E +FDD1 +022D +FDD2 +022B +FDD4 +022A +FDD5 +0228 +FDD7 +0227 +FDD8 +0225 +FDDA +0224 +FDDB +0222 +FDDD +0221 +FDDE +021F +FDE0 +021E +FDE1 +021C +FDE3 +021B +FDE4 +0219 +FDE6 +0218 +FDE7 +0216 +FDE9 +0215 +FDEA +0214 +FDEB +0212 +FDED +0211 +FDEE +020F +FDF0 +020E +FDF1 +020C +FDF3 +020B +FDF4 +020A +FDF5 +0208 +FDF7 +0207 +FDF8 +0205 +FDFA +0204 +FDFB +0203 +FDFC +0201 +FDFE +0200 +FDFF +01FE +FE01 +01FD +FE02 +01FB +FE04 +01FA +FE05 +01F9 +FE06 +01F7 +FE08 +01F6 +FE09 +01F5 +FE0A +01F3 +FE0C +01F2 +FE0D +01F1 +FE0E +01EF +FE10 +01EE +FE11 +01ED +FE12 +01EB +FE14 +01EA +FE15 +01E9 +FE16 +01E7 +FE18 +01E6 +FE19 +01E5 +FE1A +01E3 +FE1C +01E2 +FE1D +01E1 +FE1E +01DF +FE20 +01DE +FE21 +01DD +FE22 +01DC +FE23 +01DA +FE25 +01D9 +FE26 +01D8 +FE27 +01D6 +FE29 +01D5 +FE2A +01D4 +FE2B +01D3 +FE2C +01D1 +FE2E +01D0 +FE2F +01CF +FE30 +01CE +FE31 +01CC +FE33 +01CB +FE34 +01CA +FE35 +01C9 +FE36 +01C7 +FE38 +01C6 +FE39 +01C5 +FE3A +01C4 +FE3B +01C2 +FE3D +01C1 +FE3E +01C0 +FE3F +01BF +FE40 +01BE +FE41 +01BC +FE43 +01BB +FE44 +01BA +FE45 +01B9 +FE46 +01B8 +FE47 +01B6 +FE49 +01B5 +FE4A +01B4 +FE4B +01B3 +FE4C +01B2 +FE4D +01B1 +FE4E +01AF +FE50 +01AE +FE51 +01AD +FE52 +01AC +FE53 +01AB +FE54 +01AA +FE55 +01A8 +FE57 +01A7 +FE58 +01A6 +FE59 +01A5 +FE5A +01A4 +FE5B +01A3 +FE5C +01A2 +FE5D +01A0 +FE5F +019F +FE60 +019E +FE61 +019D +FE62 +019C +FE63 +019B +FE64 +019A +FE65 +0199 +FE66 +0197 +FE68 +0196 +FE69 +0195 +FE6A +0194 +FE6B +0193 +FE6C +0192 +FE6D +0191 +FE6E +0190 +FE6F +018F +FE70 +018E +FE71 +018D +FE72 +018C +FE73 +018A +FE75 +0189 +FE76 +0188 +FE77 +0187 +FE78 +0186 +FE79 +0185 +FE7A +0184 +FE7B +0183 +FE7C +0182 +FE7D +0181 +FE7E +0180 +FE7F +017F +FE80 +017E +FE81 +017D +FE82 +017C +FE83 +017B +FE84 +017A +FE85 +0179 +FE86 +0178 +FE87 +0177 +FE88 +0176 +FE89 +0175 +FE8A +0174 +FE8B +0173 +FE8C +0172 +FE8D +0171 +FE8E +0170 +FE8F +016F +FE90 +016E +FE91 +016D +FE92 +016C +FE93 +016B +FE94 +016A +FE95 +0169 +FE96 +0168 +FE97 +0167 +FE98 +0166 +FE99 +0165 +FE9A +0164 +FE9B +0163 +FE9C +0162 +FE9D +0161 +FE9E +0160 +FE9F +015F +FEA0 +015E +FEA1 +015D +FEA2 +015C +FEA3 +015B +FEA4 +015A +FEA5 +0159 +FEA6 +0158 +FEA7 +0158 +FEA7 +0157 +FEA8 +0156 +FEA9 +0155 +FEAA +0154 +FEAB +0153 +FEAC +0152 +FEAD +0151 +FEAE +0150 +FEAF +014F +FEB0 +014E +FEB1 +014D +FEB2 +014D +FEB2 +014C +FEB3 +014B +FEB4 +014A +FEB5 +0149 +FEB6 +0148 +FEB7 +0147 +FEB8 +0146 +FEB9 +0145 +FEBA +0145 +FEBA +0144 +FEBB +0143 +FEBC +0142 +FEBD +0141 +FEBE +0140 +FEBF +013F +FEC0 +013E +FEC1 +013E +FEC1 +013D +FEC2 +013C +FEC3 +013B +FEC4 +013A +FEC5 +0139 +FEC6 +0138 +FEC7 +0138 +FEC7 +0137 +FEC8 +0136 +FEC9 +0135 +FECA +0134 +FECB +0133 +FECC +0133 +FECC +0132 +FECD +0131 +FECE +0130 +FECF +012F +FED0 +012E +FED1 +012E +FED1 +012D +FED2 +012C +FED3 +012B +FED4 +012A +FED5 +012A +FED5 +0129 +FED6 +0128 +FED7 +0127 +FED8 +0126 +FED9 +0126 +FED9 +0125 +FEDA +0124 +FEDB +0123 +FEDC +0122 +FEDD +0122 +FEDD +0121 +FEDE +0120 +FEDF +011F +FEE0 +011E +FEE1 +011E +FEE1 +011D +FEE2 +011C +FEE3 +011B +FEE4 +011B +FEE4 +011A +FEE5 +0119 +FEE6 +0118 +FEE7 +0118 +FEE7 +0117 +FEE8 +0116 +FEE9 +0115 +FEEA +0115 +FEEA +0114 +FEEB +0113 +FEEC +0112 +FEED +0112 +FEED +0111 +FEEE +0110 +FEEF +010F +FEF0 +010F +FEF0 +010E +FEF1 +010D +FEF2 +010C +FEF3 +010C +FEF3 +010B +FEF4 +010A +FEF5 +010A +FEF5 +0109 +FEF6 +0108 +FEF7 +0107 +FEF8 +0107 +FEF8 +0106 +FEF9 +0105 +FEFA +0105 +FEFA +0104 +FEFB +0103 +FEFC +0102 +FEFD +0102 +FEFD +0101 +FEFE +0100 +FEFF +0100 +FEFF +00FF +FF00 +00FE +FF01 +00FD +FF02 +00FD +FF02 +00FC +FF03 +00FB +FF04 +00FB +FF04 +00FA +FF05 +00F9 +FF06 +00F9 +FF06 +00F8 +FF07 +00F7 +FF08 +00F7 +FF08 +00F6 +FF09 +00F5 +FF0A +00F5 +FF0A +00F4 +FF0B +00F3 +FF0C +00F3 +FF0C +00F2 +FF0D +00F1 +FF0E +00F1 +FF0E +00F0 +FF0F +00EF +FF10 +00EF +FF10 +00EE +FF11 +00EE +FF11 +00ED +FF12 +00EC +FF13 +00EC +FF13 +00EB +FF14 +00EA +FF15 +00EA +FF15 +00E9 +FF16 +00E8 +FF17 +00E8 +FF17 +00E7 +FF18 +00E7 +FF18 +00E6 +FF19 +00E5 +FF1A +00E5 +FF1A +00E4 +FF1B +00E3 +FF1C +00E3 +FF1C +00E2 +FF1D +00E2 +FF1D +00E1 +FF1E +00E0 +FF1F +00E0 +FF1F +00DF +FF20 +00DF +FF20 +00DE +FF21 +00DD +FF22 +00DD +FF22 +00DC +FF23 +00DC +FF23 +00DB +FF24 +00DA +FF25 +00DA +FF25 +00D9 +FF26 +00D9 +FF26 +00D8 +FF27 +00D7 +FF28 +00D7 +FF28 +00D6 +FF29 +00D6 +FF29 +00D5 +FF2A +00D5 +FF2A +00D4 +FF2B +00D3 +FF2C +00D3 +FF2C +00D2 +FF2D +00D2 +FF2D +00D1 +FF2E +00D1 +FF2E +00D0 +FF2F +00CF +FF30 +00CF +FF30 +00CE +FF31 +00CE +FF31 +00CD +FF32 +00CD +FF32 +00CC +FF33 +00CB +FF34 +00CB +FF34 +00CA +FF35 +00CA +FF35 +00C9 +FF36 +00C9 +FF36 +00C8 +FF37 +00C8 +FF37 +00C7 +FF38 +00C7 +FF38 +00C6 +FF39 +00C6 +FF39 +00C5 +FF3A +00C4 +FF3B +00C4 +FF3B +00C3 +FF3C +00C3 +FF3C +00C2 +FF3D +00C2 +FF3D +00C1 +FF3E +00C1 +FF3E +00C0 +FF3F +00C0 +FF3F +00BF +FF40 +00BF +FF40 +00BE +FF41 +00BE +FF41 +00BD +FF42 +00BD +FF42 +00BC +FF43 +00BC +FF43 +00BB +FF44 +00BB +FF44 +00BA +FF45 +00BA +FF45 +00B9 +FF46 +00B9 +FF46 +00B8 +FF47 +00B8 +FF47 +00B7 +FF48 +00B7 +FF48 +00B6 +FF49 +00B6 +FF49 +00B5 +FF4A +00B5 +FF4A +00B4 +FF4B +00B4 +FF4B +00B3 +FF4C +00B3 +FF4C +00B2 +FF4D +00B2 +FF4D +00B1 +FF4E +00B1 +FF4E +00B0 +FF4F +00B0 +FF4F +00AF +FF50 +00AF +FF50 +00AE +FF51 +00AE +FF51 +00AD +FF52 +00AD +FF52 +00AC +FF53 +00AC +FF53 +00AC +FF53 +00AB +FF54 +00AB +FF54 +00AA +FF55 +00AA +FF55 +00A9 +FF56 +00A9 +FF56 +00A8 +FF57 +00A8 +FF57 +00A7 +FF58 +00A7 +FF58 +00A6 +FF59 +00A6 +FF59 +00A6 +FF59 +00A5 +FF5A +00A5 +FF5A +00A4 +FF5B +00A4 +FF5B +00A3 +FF5C +00A3 +FF5C +00A2 +FF5D +00A2 +FF5D +00A2 +FF5D +00A1 +FF5E +00A1 +FF5E +00A0 +FF5F +00A0 +FF5F +009F +FF60 +009F +FF60 +009F +FF60 +009E +FF61 +009E +FF61 +009D +FF62 +009D +FF62 +009C +FF63 +009C +FF63 +009C +FF63 +009B +FF64 +009B +FF64 +009A +FF65 +009A +FF65 +0099 +FF66 +0099 +FF66 +0099 +FF66 +0098 +FF67 +0098 +FF67 +0097 +FF68 +0097 +FF68 +0097 +FF68 +0096 +FF69 +0096 +FF69 +0095 +FF6A +0095 +FF6A +0095 +FF6A +0094 +FF6B +0094 +FF6B +0093 +FF6C +0093 +FF6C +0093 +FF6C +0092 +FF6D +0092 +FF6D +0091 +FF6E +0091 +FF6E +0091 +FF6E +0090 +FF6F +0090 +FF6F +008F +FF70 +008F +FF70 +008F +FF70 +008E +FF71 +008E +FF71 +008D +FF72 +008D +FF72 +008D +FF72 +008C +FF73 +008C +FF73 +008C +FF73 +008B +FF74 +008B +FF74 +008A +FF75 +008A +FF75 +008A +FF75 +0089 +FF76 +0089 +FF76 +0089 +FF76 +0088 +FF77 +0088 +FF77 +0087 +FF78 +0087 +FF78 +0087 +FF78 +0086 +FF79 +0086 +FF79 +0086 +FF79 +0085 +FF7A +0085 +FF7A +0085 +FF7A +0084 +FF7B +0084 +FF7B +0083 +FF7C +0083 +FF7C +0083 +FF7C +0082 +FF7D +0082 +FF7D +0082 +FF7D +0081 +FF7E +0081 +FF7E +0081 +FF7E +0080 +FF7F +0080 +FF7F +0080 +FF7F +007F +FF80 +007F +FF80 +007E +FF81 +007E +FF81 +007E +FF81 +007D +FF82 +007D +FF82 +007D +FF82 +007C +FF83 +007C +FF83 +007C +FF83 +007B +FF84 +007B +FF84 +007B +FF84 +007A +FF85 +007A +FF85 +007A +FF85 +0079 +FF86 +0079 +FF86 +0079 +FF86 +0078 +FF87 +0078 +FF87 +0078 +FF87 +0077 +FF88 +0077 +FF88 +0077 +FF88 +0077 +FF88 +0076 +FF89 +0076 +FF89 +0076 +FF89 +0075 +FF8A +0075 +FF8A +0075 +FF8A +0074 +FF8B +0074 +FF8B +0074 +FF8B +0073 +FF8C +0073 +FF8C +0073 +FF8C +0072 +FF8D +0072 +FF8D +0072 +FF8D +0071 +FF8E +0071 +FF8E +0071 +FF8E +0071 +FF8E +0070 +FF8F +0070 +FF8F +0070 +FF8F +006F +FF90 +006F +FF90 +006F +FF90 +006E +FF91 +006E +FF91 +006E +FF91 +006E +FF91 +006D +FF92 +006D +FF92 +006D +FF92 +006C +FF93 +006C +FF93 +006C +FF93 +006B +FF94 +006B +FF94 +006B +FF94 +006B +FF94 +006A +FF95 +006A +FF95 +006A +FF95 +0069 +FF96 +0069 +FF96 +0069 +FF96 +0069 +FF96 +0068 +FF97 +0068 +FF97 +0068 +FF97 +0067 +FF98 +0067 +FF98 +0067 +FF98 +0067 +FF98 +0066 +FF99 +0066 +FF99 +0066 +FF99 +0065 +FF9A +0065 +FF9A +0065 +FF9A +0065 +FF9A +0064 +FF9B +0064 +FF9B +0064 +FF9B +0064 +FF9B +0063 +FF9C +0063 +FF9C +0063 +FF9C +0063 +FF9C +0062 +FF9D +0062 +FF9D +0062 +FF9D +0061 +FF9E +0061 +FF9E +0061 +FF9E +0061 +FF9E +0060 +FF9F +0060 +FF9F +0060 +FF9F +0060 +FF9F +005F +FFA0 +005F +FFA0 +005F +FFA0 +005F +FFA0 +005E +FFA1 +005E +FFA1 +005E +FFA1 +005E +FFA1 +005D +FFA2 +005D +FFA2 +005D +FFA2 +005D +FFA2 +005C +FFA3 +005C +FFA3 +005C +FFA3 +005C +FFA3 +005B +FFA4 +005B +FFA4 +005B +FFA4 +005B +FFA4 +005A +FFA5 +005A +FFA5 +005A +FFA5 +005A +FFA5 +0059 +FFA6 +0059 +FFA6 +0059 +FFA6 +0059 +FFA6 +0058 +FFA7 +0058 +FFA7 +0058 +FFA7 +0058 +FFA7 +0057 +FFA8 +0057 +FFA8 +0057 +FFA8 +0057 +FFA8 +0056 +FFA9 +0056 +FFA9 +0056 +FFA9 +0056 +FFA9 +0056 +FFA9 +0055 +FFAA +0055 +FFAA +0055 +FFAA +0055 +FFAA +0054 +FFAB +0054 +FFAB +0054 +FFAB +0054 +FFAB +0053 +FFAC +0053 +FFAC +0053 +FFAC +0053 +FFAC +0053 +FFAC +0052 +FFAD +0052 +FFAD +0052 +FFAD +0052 +FFAD +0051 +FFAE +0051 +FFAE +0051 +FFAE +0051 +FFAE +0051 +FFAE +0050 +FFAF +0050 +FFAF +0050 +FFAF +0050 +FFAF +004F +FFB0 +004F +FFB0 +004F +FFB0 +004F +FFB0 +004F +FFB0 +004E +FFB1 +004E +FFB1 +004E +FFB1 +004E +FFB1 +004E +FFB1 +004D +FFB2 +004D +FFB2 +004D +FFB2 +004D +FFB2 +004C +FFB3 +004C +FFB3 +004C +FFB3 +004C +FFB3 +004C +FFB3 +004B +FFB4 +004B +FFB4 +004B +FFB4 +004B +FFB4 +004B +FFB4 +004A +FFB5 +004A +FFB5 +004A +FFB5 +004A +FFB5 +004A +FFB5 +0049 +FFB6 +0049 +FFB6 +0049 +FFB6 +0049 +FFB6 +0049 +FFB6 +0048 +FFB7 +0048 +FFB7 +0048 +FFB7 +0048 +FFB7 +0048 +FFB7 +0047 +FFB8 +0047 +FFB8 +0047 +FFB8 +0047 +FFB8 +0047 +FFB8 +0046 +FFB9 +0046 +FFB9 +0046 +FFB9 +0046 +FFB9 +0046 +FFB9 +0046 +FFB9 +0045 +FFBA +0045 +FFBA +0045 +FFBA +0045 +FFBA +0045 +FFBA +0044 +FFBB +0044 +FFBB +0044 +FFBB +0044 +FFBB +0044 +FFBB +0043 +FFBC +0043 +FFBC +0043 +FFBC +0043 +FFBC +0043 +FFBC +0043 +FFBC +0042 +FFBD +0042 +FFBD +0042 +FFBD +0042 +FFBD +0042 +FFBD +0041 +FFBE +0041 +FFBE +0041 +FFBE +0041 +FFBE +0041 +FFBE +0041 +FFBE +0040 +FFBF +0040 +FFBF +0040 +FFBF +0040 +FFBF +0040 +FFBF +0040 +FFBF +003F +FFC0 +003F +FFC0 +003F +FFC0 +003F +FFC0 +003F +FFC0 +003E +FFC1 +003E +FFC1 +003E +FFC1 +003E +FFC1 +003E +FFC1 +003E +FFC1 +003D +FFC2 +003D +FFC2 +003D +FFC2 +003D +FFC2 +003D +FFC2 +003D +FFC2 +003C +FFC3 +003C +FFC3 +003C +FFC3 +003C +FFC3 +003C +FFC3 +003C +FFC3 +003B +FFC4 +003B +FFC4 +003B +FFC4 +003B +FFC4 +003B +FFC4 +003B +FFC4 +003B +FFC4 +003A +FFC5 +003A +FFC5 +003A +FFC5 +003A +FFC5 +003A +FFC5 +003A +FFC5 +0039 +FFC6 +0039 +FFC6 +0039 +FFC6 +0039 +FFC6 +0039 +FFC6 +0039 +FFC6 +0038 +FFC7 +0038 +FFC7 +0038 +FFC7 +0038 +FFC7 +0038 +FFC7 +0038 +FFC7 +0038 +FFC7 +0037 +FFC8 +0037 +FFC8 +0037 +FFC8 +0037 +FFC8 +0037 +FFC8 +0037 +FFC8 +0037 +FFC8 +0036 +FFC9 +0036 +FFC9 +0036 +FFC9 +0036 +FFC9 +0036 +FFC9 +0036 +FFC9 +0035 +FFCA +0035 +FFCA +0035 +FFCA +0035 +FFCA +0035 +FFCA +0035 +FFCA +0035 +FFCA +0034 +FFCB +0034 +FFCB +0034 +FFCB +0034 +FFCB +0034 +FFCB +0034 +FFCB +0034 +FFCB +0033 +FFCC +0033 +FFCC +0033 +FFCC +0033 +FFCC +0033 +FFCC +0033 +FFCC +0033 +FFCC +0032 +FFCD +0032 +FFCD +0032 +FFCD +0032 +FFCD +0032 +FFCD +0032 +FFCD +0032 +FFCD +0032 +FFCD +0031 +FFCE +0031 +FFCE +0031 +FFCE +0031 +FFCE +0031 +FFCE +0031 +FFCE +0031 +FFCE +0030 +FFCF +0030 +FFCF +0030 +FFCF +0030 +FFCF +0030 +FFCF +0030 +FFCF +0030 +FFCF +0030 +FFCF +002F +FFD0 +002F +FFD0 +002F +FFD0 +002F +FFD0 +002F +FFD0 +002F +FFD0 +002F +FFD0 +002F +FFD0 +002E +FFD1 +002E +FFD1 +002E +FFD1 +002E +FFD1 +002E +FFD1 +002E +FFD1 +002E +FFD1 +002E +FFD1 +002D +FFD2 +002D +FFD2 +002D +FFD2 +002D +FFD2 +002D +FFD2 +002D +FFD2 +002D +FFD2 +002D +FFD2 +002C +FFD3 +002C +FFD3 +002C +FFD3 +002C +FFD3 +002C +FFD3 +002C +FFD3 +002C +FFD3 +002C +FFD3 +002B +FFD4 +002B +FFD4 +002B +FFD4 +002B +FFD4 +002B +FFD4 +002B +FFD4 +002B +FFD4 +002B +FFD4 +002B +FFD4 +002A +FFD5 +002A +FFD5 +002A +FFD5 +002A +FFD5 +002A +FFD5 +002A +FFD5 +002A +FFD5 +002A +FFD5 +0029 +FFD6 +0029 +FFD6 +0029 +FFD6 +0029 +FFD6 +0029 +FFD6 +0029 +FFD6 +0029 +FFD6 +0029 +FFD6 +0029 +FFD6 +0028 +FFD7 +0028 +FFD7 +0028 +FFD7 +0028 +FFD7 +0028 +FFD7 +0028 +FFD7 +0028 +FFD7 +0028 +FFD7 +0028 +FFD7 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0027 +FFD8 +0026 +FFD9 +0026 +FFD9 +0026 +FFD9 +0026 +FFD9 +0026 +FFD9 +0026 +FFD9 +0026 +FFD9 +0026 +FFD9 +0026 +FFD9 +0025 +FFDA +0025 +FFDA +0025 +FFDA +0025 +FFDA +0025 +FFDA +0025 +FFDA +0025 +FFDA +0025 +FFDA +0025 +FFDA +0025 +FFDA +0024 +FFDB +0024 +FFDB +0024 +FFDB +0024 +FFDB +0024 +FFDB +0024 +FFDB +0024 +FFDB +0024 +FFDB +0024 +FFDB +0024 +FFDB +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0023 +FFDC +0022 +FFDD +0022 +FFDD +0022 +FFDD +0022 +FFDD +0022 +FFDD +0022 +FFDD +0022 +FFDD +0022 +FFDD +0022 +FFDD +0022 +FFDD +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0021 +FFDE +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +0020 +FFDF +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001F +FFE0 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001E +FFE1 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001D +FFE2 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001C +FFE3 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001B +FFE4 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +001A +FFE5 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0019 +FFE6 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0018 +FFE7 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0017 +FFE8 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0016 +FFE9 +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0015 +FFEA +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0014 +FFEB +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0013 +FFEC +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0012 +FFED +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0011 +FFEE +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +0010 +FFEF +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000F +FFF0 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000E +FFF1 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000D +FFF2 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000C +FFF3 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000B +FFF4 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +000A +FFF5 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0009 +FFF6 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0008 +FFF7 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0007 +FFF8 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0006 +FFF9 +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0005 +FFFA +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0004 +FFFB +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0003 +FFFC +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0002 +FFFD +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0001 +FFFE +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF +0000 +FFFF diff --git a/common/Sound/opl3/fw/OPL3.COM b/common/Sound/opl3/fw/OPL3.COM new file mode 100644 index 00000000..38909fc4 Binary files /dev/null and b/common/Sound/opl3/fw/OPL3.COM differ diff --git a/common/Sound/opl3/fw/OPL3.PRJ b/common/Sound/opl3/fw/OPL3.PRJ new file mode 100644 index 00000000..d4486395 --- /dev/null +++ b/common/Sound/opl3/fw/OPL3.PRJ @@ -0,0 +1,101 @@ +;Project file: Z:\OPL3FW\OPL3.PRJ for HI-TECH C Z80/Z180/64180 V7.80 + +List: Source Files Rel Auto +Entry: YMF262.C +Endlist: + +List: Object Files Abs Auto +Entry: $(LIB)\RTZ80-c.OBJ +Endlist: + +List: CPP Include Paths Abs Auto +Entry: $(INC) +Endlist: + +List: CPP Pre-defined Symbols Abs Auto +Entry: -Dz80 +Entry: -DHI_TECH_C +Entry: -SP2,2,2,2,2,2,2 +Entry: -S1,2,2,4,4,4 +Entry: -D_HOSTED +Entry: -DCPM +Entry: -DSMALL_MODEL +Entry: -D_HTC_VER_MAJOR_=7 +Entry: -D_HTC_VER_MINOR_=80 +Entry: -D_HTC_VER_PATCH_=2 +Endlist: + +List: Libraries Abs Auto +Entry: $(LIB)\Z80-cC.LIB +Endlist: + +List: Linker options Abs Frozen Warned +Entry: -pvectors=0,lowtext,text,strings,const,im2vecs,bss +Entry: -pnvram=bss,heap +Entry: -Pdata=1900h +Endlist: + +List: Objtohex options Abs Auto +Entry: -b100h +Endlist: + +Depfiles: +Entry: $(INC)\STRING.H +Entry: $(INC)\SYS.H +Entry: ymf262.h +Enddeps: + +Dependencies: +Entry: 1528935816 3 0 1 2 +Enddeps: + + +Int: Checksize: 1 +Int: OuputFormat: 0 +Int: Warnlevel: 0 +Int: IdLength: 31 +Int: DebugBaud: 0 +Int: ComPort: 0 +Int: GlobOptLevel: 9 +Time: OptionsModified: 1528921310 +Int: Rom_addr: 0 +Int: Ram_addr: 32768 +Int: Ram_size: 32768 +Int: Nvram_addr: 0 +Int: Ram_phys: 262144 +Int: Bank_addr: 8192 +Int: Bank_size: 24576 +Int: Bank_phys: 8192 +Int: Size_phys: 1040384 +Int: Modelno: 2 +Int: Chiptype: 0 + +Bool: Globopt: 1 +Bool: Postopt: 1 +Bool: Assemopt: 0 +Bool: Symbolic_debug: 0 +Bool: Nolocal: 0 +Bool: Uselong: 0 +Bool: Usefloat: 0 +Bool: Autoload: 0 +Bool: Cppasm: 0 +Bool: Genlist: 0 +Bool: GenSrclist: 0 +Bool: Gotadrs: 1 +Bool: Multirom: 0 +Bool: Avocet_symbols: 0 +Bool: Stopwarn: 1 +Bool: StrictANSI: 0 +Bool: Savedeps: 1 +Bool: NumericSort: 0 +Bool: Romdata: 0 +Bool: Port8: 0 +Bool: UseAltReg: 0 + +String: Outfile:OPL3.COM +String: Mapfile: +String: Symfile: +ROM Ranges: +EndROM +Checksums: +EndChecksums diff --git a/common/Sound/opl3/fw/TEST.H b/common/Sound/opl3/fw/TEST.H new file mode 100644 index 00000000..5bf4777f --- /dev/null +++ b/common/Sound/opl3/fw/TEST.H @@ -0,0 +1,346 @@ +#define delay(x) Sleep(x) + +const //List of FNumbers +uint16_t FNr[12] = { + /*C*/ 343, + /*C#/Db*/ 363, + /*D*/ 385, + /*D#/Eb*/ 408, + /*E*/ 432, + /*F*/ 458, + /*F#/Gb*/ 485, + /*G*/ 514, + /*G#/Ab*/ 544, + /*A*/ 577, + /*A#/Bb*/ 611, + /*B*/ 647 }; + +//Flat Whole Sharp} +#define C 0 +#define CSharp 1 +#define DFlat 1 +#define D 2 +#define DSharp 3 +#define EFlat 3 +#define E 4 +#define F 5 +#define FSharp 6 +#define GFlat 6 +#define G 7 +#define GSharp 8 +#define AFlat 8 +#define A 9 +#define ASharp 10 +#define BFlat 10 +#define B 11 + + +struct Operator { + uint8_t + //Tremolo + Tremolo, + //Vibrato + Vibrato, + //Envelop generator type + EGType, + //KSR + KSR, + //Frequency multiplier + Multi, + //Key scaling level + KSL, + //Volume + TotalLevel, + //Shape of the wave envelop + Attack, Decay, Sustain, Release, + //Type of wave + WaveShape; +}; + +struct Instrument { + struct Operator Modulator, Carrier; + + uint8_t + //Feedback strength + Feedback, + //Synthesis type + SynType; +}; + + +struct Instrument Flute, Piano, Harp; +uint8_t CurNote, CurBlock; + +/************************************************************************** +** Writes a value to a specified index register on the FM card ** +**************************************************************************/ +void WriteFM(uint8_t Register, uint8_t Value) +{ + OPL3Write(0, Register); + OPL3Write(1, Value); + +// unsigned char Counter; + + //Select register +// outportb(0x388, Register); + //Wait for card to accept value +// for (Counter = 1; Counter < 25; Counter++) { inportb(0x388); } + //Send value +// outportb(0x389, Value); + //Wait for card to accept value +// for (Counter = 1; Counter < 100; Counter++) { inportb(0x388); } +} + +/************************************************************************** +** Checks for the presence of an FM card ** +**************************************************************************/ +uint8_t FMInstalled() +{ + +// unsigned char A, B; + +// WriteFM(1, 0); +// WriteFM(4, 0x60); +// WriteFM(4, 0x80); +// A = inportb(0x388); +// A = OPL3Read(0); +// WriteFM(2, 0xFF); +// WriteFM(4, 0x21); +// B = inportb(0x388); +// OPL3TimerOver(0); +// B = OPL3Read(0); +// WriteFM(4, 0x60); +// WriteFM(4, 0x80); +// if ((A & 0xE0) == 0 && (B & 0xE0) == 0xC0) { + return (1); +// } +// else { +// return (0); +// } +} + +/************************************************************************** +** Activates a voice on the FM card ** +*************************************************************************** +** Voice selects one of the 9 FM voices ** +** FNumber selects the note to be played ** +** Block selects the octave for the specified note ** +**************************************************************************/ +void NoteOn(uint8_t Voice, uint8_t Note, uint8_t Block) +{ + WriteFM(0xA0 + Voice, FNr[Note] & 0xFF); + WriteFM(0xB0 + Voice, (FNr[Note] >> 8) + (Block << 2) + 32); +} + +/************************************************************************** +** Deactivates a voice on the FM card ** +*************************************************************************** +** Make sure to give the same values for Note and Block or this will ** +** sound very odd. ** +**************************************************************************/ +void NoteOff(uint8_t Voice, uint8_t Note, uint8_t Block) +{ + WriteFM(0xA0 + Voice, FNr[Note] & 0xFF); + WriteFM(0xB0 + Voice, (FNr[Note] >> 8) + (Block << 2)); +} + +/************************************************************************** +** Sets instrument settings for a voice on the FM card ** +**************************************************************************/ +const static unsigned char OpAdr[9] = { 0, 1, 2, 8, 9, 10, 16, 17, 18 }; //Addresses of the operators used to form voice data +void SetInstrument(uint8_t Voice, struct Instrument *Instr) +{ + uint8_t Value; + + //Set up voice modulator + Value = Instr->Modulator.Tremolo << 8 + | Instr->Modulator.Vibrato << 7 + | Instr->Modulator.EGType << 6 + | Instr->Modulator.KSR << 5 + | Instr->Modulator.Multi; + WriteFM(0x20 + OpAdr[Voice], Value); + + Value = Instr->Modulator.KSL << 7 + | Instr->Modulator.TotalLevel; + WriteFM(0x40 + OpAdr[Voice], Value); + + Value = Instr->Modulator.Attack << 4 + | Instr->Modulator.Decay; + WriteFM(0x60 + OpAdr[Voice], Value); + + Value = Instr->Modulator.Sustain << 4 + | Instr->Modulator.Release; + WriteFM(0x80 + OpAdr[Voice], Value); + + WriteFM(0xE0 + OpAdr[Voice], Instr->Modulator.WaveShape); + + Value = Instr->Feedback << 1 + | Instr->SynType; + WriteFM(0xC0 + OpAdr[Voice], Value); + + //Set up voice carrier + Value = Instr->Carrier.Tremolo << 8 + | Instr->Carrier.Vibrato << 7 + | Instr->Carrier.EGType << 6 + | Instr->Carrier.KSR << 5 + | Instr->Carrier.Multi; + WriteFM(0x23 + OpAdr[Voice], Value); + + Value = Instr->Carrier.KSL << 7 + | Instr->Carrier.TotalLevel; + WriteFM(0x43 + OpAdr[Voice], Value); + + Value = Instr->Carrier.Attack << 4 + | Instr->Carrier.Decay; + WriteFM(0x63 + OpAdr[Voice], Value); + + Value = Instr->Carrier.Sustain << 4 + | Instr->Carrier.Release; + WriteFM(0x83 + OpAdr[Voice], Value); + + WriteFM(0xE3 + OpAdr[Voice], Instr->Carrier.WaveShape); +} + +void test() +{ + // clrscr(); +again: + printf("Demonstration of programming a FM sound card [AdLib, SB and compatibles]\n"); + printf("--------------------------------------------------------------------------\n"); + + //Check to see if an FM sound card is present +/* if (FMInstalled()) { + printf("AdLib/SB or compatible FM sound card found.\n"); + } + else { + //If not, end the programme + printf("AdLib/SB or compatible FM sound card not found.\n"); + return; + } +*/ + //Set up voices 0 - 3 to a "harp" - note, only the values other than 0 are set + Harp.Modulator.Attack = 15; + Harp.Modulator.Decay = 5; + Harp.Modulator.Sustain = 8; + Harp.Modulator.Release = 5; + Harp.Modulator.Multi = 2; + Harp.Modulator.TotalLevel = 41; + + Harp.Carrier.Attack = 15; + Harp.Carrier.Decay = 2; + Harp.Carrier.Release = 3; + Harp.Carrier.Multi = 1; + Harp.Carrier.KSL = 2; + Harp.Carrier.TotalLevel = 3; + + SetInstrument(0, &Harp); + SetInstrument(1, &Harp); + SetInstrument(2, &Harp); + + //Play C chord using Harp + printf("Playing C chord.\n"); + + NoteOn(0, C, 4); + NoteOn(1, E, 4); + NoteOn(2, G, 4); + delay(1000); //Wait 1 second + NoteOff(0, C, 4); + NoteOff(1, E, 4); + NoteOff(2, G, 4); + //Wait a while + delay(500); + + //Set up voice 3 to a "piano" - this doesn't really sound like a piano, + //but that's what they call it! + Piano.Modulator.Attack = 15; + Piano.Modulator.Decay = 1; + Piano.Modulator.Sustain = 10; + Piano.Modulator.Release = 3; + Piano.Modulator.Multi = 1; + Piano.Modulator.KSL = 1; + Piano.Modulator.TotalLevel = 16; + + Piano.Carrier.Attack = 13; + Piano.Carrier.Decay = 2; + Piano.Carrier.Sustain = 8; + Piano.Carrier.Release = 4; + Piano.Carrier.Multi = 1; + Piano.Carrier.TotalLevel = 0; + Piano.Carrier.KSR = 1; + + Piano.Feedback = 3; + + SetInstrument(3, &Piano); + + //Play all notes in octave 4 for .1 seconds using piano [voice 3] + printf("Playing all notes in octave four.\n"); + CurBlock = 4; + for (CurNote = 0; CurNote < 12; CurNote++) { + NoteOn(3, CurNote, CurBlock); + delay(100); //Wait .1 seconds + NoteOff(3, CurNote, CurBlock); + } + + //Wait a while + delay(500); + //Set up voice 4 to a "flute" + Flute.Modulator.Attack = 6; + Flute.Modulator.Decay = 14; + Flute.Modulator.Sustain = 7; + Flute.Modulator.Release = 15; + Flute.Modulator.Vibrato = 1; + Flute.Modulator.Tremolo = 1; + Flute.Modulator.EGType = 1; + Flute.Modulator.KSL = 3; + Flute.Modulator.TotalLevel = 44; + + Flute.Carrier.Attack = 6; + Flute.Carrier.Decay = 5; + Flute.Carrier.Sustain = 13; + Flute.Carrier.Release = 10; + Flute.Carrier.Vibrato = 1; + Flute.Carrier.EGType = 1; + Flute.Carrier.Multi = 1; + Flute.Carrier.TotalLevel = 0; + + Flute.Feedback = 7; + Flute.SynType = 3; + + SetInstrument(4, &Flute); + + //Play short tune using Flute [voice 4] as primary, Harp [voice 0] as secondary voice + printf("Playing short tune.\n"); + + NoteOn(4, C, 5); NoteOn(0, C, 3); + delay(250); + NoteOff(4, C, 5); + NoteOn(4, E, 5); + delay(250); + NoteOff(4, E, 5); NoteOff(0, C, 3); + + NoteOn(4, C, 5); NoteOn(0, G, 3); + delay(250); + NoteOff(4, C, 5); + NoteOn(4, G, 4); + delay(250); + NoteOff(4, G, 4); NoteOff(0, G, 3); + + NoteOn(4, E, 4); NoteOn(0, C, 4); + delay(250); + NoteOff(4, E, 4); + NoteOn(4, G, 4); + delay(250); + NoteOff(4, G, 4); NoteOff(0, C, 4); + + NoteOn(4, E, 4); NoteOn(0, G, 3); + delay(250); + NoteOff(4, E, 4); + NoteOn(4, D, 4); + delay(250); + NoteOff(4, D, 4); NoteOff(0, G, 3); + + NoteOn(4, C, 4); NoteOn(0, C, 3); + delay(2000); + NoteOff(4, C, 4); NoteOff(0, C, 3); + goto again; +} diff --git a/common/Sound/opl3/fw/YMF262.C b/common/Sound/opl3/fw/YMF262.C new file mode 100644 index 00000000..e233d768 --- /dev/null +++ b/common/Sound/opl3/fw/YMF262.C @@ -0,0 +1,767 @@ +// license:GPL-2.0+ +// copyright-holders:Jarek Burczynski +/* +** +** File: ymf262.c - software implementation of YMF262 +** FM sound generator type OPL3 +** +** Copyright Jarek Burczynski +** +** Version 0.2 +** + +Revision History: + +03-03-2003: initial release + - thanks to Olivier Galibert and Chris Hardy for YMF262 and YAC512 chips + - thanks to Stiletto for the datasheets + + Features as listed in 4MF262A6 data sheet: + 1. Registers are compatible with YM3812 (OPL2) FM sound source. + 2. Up to six sounds can be used as four-operator melody sounds for variety. + 3. 18 simultaneous melody sounds, or 15 melody sounds with 5 rhythm sounds (with two operators). + 4. 6 four-operator melody sounds and 6 two-operator melody sounds, or 6 four-operator melody + sounds, 3 two-operator melody sounds and 5 rhythm sounds (with four operators). + 5. 8 selectable waveforms. + 6. 4-channel sound output. + 7. YMF262 compabile DAC (YAC512) is available. + 8. LFO for vibrato and tremolo effedts. + 9. 2 programable timers. + 10. Shorter register access time compared with YM3812. + 11. 5V single supply silicon gate CMOS process. + 12. 24 Pin SOP Package (YMF262-M), 48 Pin SQFP Package (YMF262-S). + + +differences between OPL2 and OPL3 not documented in Yamaha datahasheets: +- sinus table is a little different: the negative part is off by one... + +- in order to enable selection of four different waveforms on OPL2 + one must set bit 5 in register 0x01(test). + on OPL3 this bit is ignored and 4-waveform select works *always*. + (Don't confuse this with OPL3's 8-waveform select.) + +- Envelope Generator: all 15 x rates take zero time on OPL3 + (on OPL2 15 0 and 15 1 rates take some time while 15 2 and 15 3 rates + take zero time) + +- channel calculations: output of operator 1 is in perfect sync with + output of operator 2 on OPL3; on OPL and OPL2 output of operator 1 + is always delayed by one sample compared to output of operator 2 + + +differences between OPL2 and OPL3 shown in datasheets: +- YMF262 does not support CSM mode + + +*/ + +//#include "stdafx.h" +#include +#include +#include "ymf262.h" + +#define PITCH_COEF 1154 +//#define PITCH_COEF 1024 + +#define FREQ_SH 16 /* 16.16 fixed point (frequency calculations) */ +#define EG_SH 16 /* 16.16 fixed point (EG timing) */ +#define TIMER_SH 16 /* 16.16 fixed point (timers calculations) */ + +#define FREQ_MASK ((1<key ) + { + SLOT->Cnt = 0; /* restart Phase Generator */ + SLOT->state = EG_ATT; /* phase -> Attack */ + } + SLOT->key |= key_set; +} + +static void FM_KEYOFF(OPL3_SLOT *SLOT, uint8_t key_clr) +{ + if( SLOT->key ) + { + SLOT->key &= key_clr; + if( !SLOT->key ) + if (SLOT->state>EG_REL) SLOT->state = EG_REL; /* phase -> Release */ + } +} + +/* update phase increment counter of operator (also update the EG rates if necessary) */ +static void CALC_FCSLOT(OPL3_CH *CH, OPL3_SLOT *SLOT) +{ + uint8_t ksr; + + /* (frequency) phase increment counter */ + uint8_t shift = 7 - (CH->block_fnum >> 10); + SLOT->Incr = ((CH->block_fnum & 0x03ff) * (uint32_t)SLOT->mul << 2) >> shift; + ksr = CH->kcode >> SLOT->KSR; + + if( SLOT->ksr != ksr ) + { + SLOT->ksr = ksr; + ksr += SLOT->ar; + /* calculate envelope generator rates */ + if (ksr < 16+60) + { + SLOT->eg_sh_ar = eg_rate_shift [ksr]; + SLOT->eg_sel_ar = eg_rate_select[ksr]; + } + else + { + SLOT->eg_sh_ar = 0; + SLOT->eg_sel_ar = 13*RATE_STEPS; + } + ksr = SLOT->dr + SLOT->ksr; + SLOT->eg_sh_dr = eg_rate_shift [ksr]; + SLOT->eg_sel_dr = eg_rate_select[ksr]; + ksr = SLOT->rr + SLOT->ksr; + SLOT->eg_sh_rr = eg_rate_shift [ksr]; + SLOT->eg_sel_rr = eg_rate_select[ksr]; + } +} + +/* set multi,am,vib,EG-TYP,KSR,mul */ +static void set_mul(uint8_t slot, uint8_t v) +{ + OPL3_CH *CH = &chip.P_CH[slot >> 1]; + OPL3_SLOT *SLOT = (slot & 1) ? &CH->SLOT1 : &CH->SLOT0; + + SLOT->mul = PITCH_COEF*mul_tab[v & 0x0f]; + SLOT->KSR = (v & 0x10) ? 0 : 2; + SLOT->eg_type = !!(v & 0x20); + SLOT->vib = !!(v & 0x40); + SLOT->AMmask_TLL = ((uint16_t)(v & 0x80) << 8) + (SLOT->AMmask_TLL & 0x7fff); + + if (chip.OPL3_mode) + { + int8_t chan_no = slot >> 1; + + switch(chan_no) + { + case 0: case 1: case 2: + case 9: case 10: case 11: + if (CH->extended) CALC_FCSLOT(CH,SLOT); /* normal */ + else CALC_FCSLOT(CH,SLOT); /* normal */ + break; + case 3: case 4: case 5: + case 12: case 13: case 14: + if ((CH-3)->extended) CALC_FCSLOT(CH-3,SLOT); /* update this SLOT using frequency data for 1st channel of a pair */ + else CALC_FCSLOT(CH,SLOT); /* normal */ + break; + default: + CALC_FCSLOT(CH,SLOT); /* normal */ + break; + } + } + else CALC_FCSLOT(CH,SLOT); /* in OPL2 mode */ +} + +/* set ksl & tl */ +static void set_ksl_tl(uint8_t slot, uint8_t v) +{ + OPL3_CH *CH = &chip.P_CH[slot >> 1]; + OPL3_SLOT *SLOT = (slot & 1) ? &CH->SLOT1 : &CH->SLOT0; + + SLOT->ksl = ksl_shift[v >> 6]; + SLOT->TL = (v & 0x3f) << (ENV_BITS-1-7); /* 7 bits TL (bit 6 = always 0) */ + SLOT->AMmask_TLL = SLOT->TL + (CH->ksl_base >> SLOT->ksl) + (SLOT->AMmask_TLL & 0x8000); + + if (chip.OPL3_mode) + { + uint8_t chan_no = slot >> 2; + + switch(chan_no) + { + case 3: case 4: case 5: + case 12: case 13: case 14: + if ((CH-3)->extended) SLOT->AMmask_TLL = SLOT->TL + ((CH-3)->ksl_base>>SLOT->ksl) + (SLOT->AMmask_TLL & 0x8000); /* update this SLOT using frequency data for 1st channel of a pair */ + break; + } + } +} + +/* set attack rate & decay rate */ +static void set_ar_dr(uint8_t slot, uint8_t v) +{ + OPL3_CH *CH = &chip.P_CH[slot >> 1]; + OPL3_SLOT *SLOT = (slot & 1) ? &CH->SLOT1 : &CH->SLOT0; + uint8_t ksr; + SLOT->ar = (v & 0xf0) ? 16 + ((v & 0xf0) >> 2) : 0; + + ksr = SLOT->ar + SLOT->ksr; + if (ksr < 16+60) /* verified on real YMF262 - all 15 x rates take "zero" time */ + { + SLOT->eg_sh_ar = eg_rate_shift [ksr]; + SLOT->eg_sel_ar = eg_rate_select[ksr]; + } + else + { + SLOT->eg_sh_ar = 0; + SLOT->eg_sel_ar = 13*RATE_STEPS; + } + + SLOT->dr = (v&0x0f) ? 16 + ((v&0x0f)<<2) : 0; + ksr = SLOT->dr + SLOT->ksr; + SLOT->eg_sh_dr = eg_rate_shift [ksr]; + SLOT->eg_sel_dr = eg_rate_select[ksr]; +} + +/* set sustain level & release rate */ +static void set_sl_rr(uint8_t slot, uint8_t v) +{ + OPL3_CH *CH = &chip.P_CH[slot >> 1]; + OPL3_SLOT *SLOT = (slot & 1) ? &CH->SLOT1 : &CH->SLOT0; + uint8_t ksr = SLOT->ksr; + SLOT->sl = (uint16_t)sl_tab[ v>>4 ] << 1; + SLOT->rr = (v&0x0f) ? 16 + ((v&0x0f)<<2) : 0; + ksr += SLOT->rr; + SLOT->eg_sh_rr = eg_rate_shift [ksr]; + SLOT->eg_sel_rr = eg_rate_select[ksr]; +} + +void fn_a0(uint16_t r, uint8_t v, uint8_t ch_offset) +{ + OPL3_CH *CH; + uint16_t block_fnum; + + if (r == 0xbd) /* am depth, vibrato depth, r,bd,sd,tom,tc,hh */ + { + if (ch_offset != 0) return; /* 0xbd register is present in set #1 only */ + + chip.lfo_am_depth = !!(v & 0x80); + chip.lfo_pm_depth_range = (v & 0x40) ? 8 : 0; + chip.rhythm = !!(v & 0x20); + + if (chip.rhythm) + { + /* BD key on/off */ + if (v & 0x10) + { + FM_KEYON(&chip.P_CH[6].SLOT0, 2); + FM_KEYON(&chip.P_CH[6].SLOT1, 2); + } + else + { + FM_KEYOFF(&chip.P_CH[6].SLOT0, ~2); + FM_KEYOFF(&chip.P_CH[6].SLOT1, ~2); + } + /* HH key on/off */ + if (v & 0x01) FM_KEYON(&chip.P_CH[7].SLOT0, 2); + else FM_KEYOFF(&chip.P_CH[7].SLOT0, ~2); + /* SD key on/off */ + if (v & 0x08) FM_KEYON(&chip.P_CH[7].SLOT1, 2); + else FM_KEYOFF(&chip.P_CH[7].SLOT1, ~2); + /* TOM key on/off */ + if (v & 0x04) FM_KEYON(&chip.P_CH[8].SLOT0, 2); + else FM_KEYOFF(&chip.P_CH[8].SLOT0, ~2); + /* TOP-CY key on/off */ + if (v & 0x02) FM_KEYON(&chip.P_CH[8].SLOT1, 2); + else FM_KEYOFF(&chip.P_CH[8].SLOT1, ~2); + } + else + { + /* BD key off */ + FM_KEYOFF(&chip.P_CH[6].SLOT0, ~2); + FM_KEYOFF(&chip.P_CH[6].SLOT1, ~2); + /* HH key off */ + FM_KEYOFF(&chip.P_CH[7].SLOT0, ~2); + /* SD key off */ + FM_KEYOFF(&chip.P_CH[7].SLOT1, ~2); + /* TOM key off */ + FM_KEYOFF(&chip.P_CH[8].SLOT0, ~2); + /* TOP-CY off */ + FM_KEYOFF(&chip.P_CH[8].SLOT1, ~2); + } + return; + } + + /* keyon,block,fnum */ + if ((r & 0x0f) > 8) return; + CH = &chip.P_CH[(r & 0x0f) + ch_offset]; + + if (!(r & 0x10)) block_fnum = (CH->block_fnum & 0x1f00) | v; /* a0-a8 */ + else + { /* b0-b8 */ + block_fnum = ((v & 0x1f) << 8) | (CH->block_fnum & 0xff); + + if (chip.OPL3_mode) + { + uint8_t chan_no = (r & 0x0f) + ch_offset; + switch (chan_no) + { + case 0: case 1: case 2: + case 9: case 10: case 11: + if (CH->extended) + { + if (v & 0x20) + { + FM_KEYON(&CH->SLOT0, 1); + FM_KEYON(&CH->SLOT1, 1); + FM_KEYON(&(CH + 3)->SLOT0, 1); + FM_KEYON(&(CH + 3)->SLOT1, 1); + } + else + { + FM_KEYOFF(&CH->SLOT0, ~1); + FM_KEYOFF(&CH->SLOT1, ~1); + FM_KEYOFF(&(CH + 3)->SLOT0, ~1); + FM_KEYOFF(&(CH + 3)->SLOT1, ~1); + } + } + else + { + if (v & 0x20) + { + FM_KEYON(&CH->SLOT0, 1); + FM_KEYON(&CH->SLOT1, 1); + } + else + { + FM_KEYOFF(&CH->SLOT0, ~1); + FM_KEYOFF(&CH->SLOT1, ~1); + } + } + break; + + case 3: case 4: case 5: + case 12: case 13: case 14: + if ((CH - 3)->extended) + { + //if this is 2nd channel forming up 4-op channel just do nothing + } + else + { + if (v & 0x20) + { + FM_KEYON(&CH->SLOT0, 1); + FM_KEYON(&CH->SLOT1, 1); + } + else + { + FM_KEYOFF(&CH->SLOT0, ~1); + FM_KEYOFF(&CH->SLOT1, ~1); + } + } + break; + + default: + if (v & 0x20) + { + FM_KEYON(&CH->SLOT0, 1); + FM_KEYON(&CH->SLOT1, 1); + } + else + { + FM_KEYOFF(&CH->SLOT0, ~1); + FM_KEYOFF(&CH->SLOT1, ~1); + } + break; + } + } + else + { + if (v & 0x20) + { + FM_KEYON(&CH->SLOT0, 1); + FM_KEYON(&CH->SLOT1, 1); + } + else + { + FM_KEYOFF(&CH->SLOT0, ~1); + FM_KEYOFF(&CH->SLOT1, ~1); + } + } + } + /* update */ + if (CH->block_fnum != block_fnum) + { + CH->block_fnum = block_fnum; + CH->ksl_base = ksl_tab[block_fnum >> 6]; + + /* BLK 2,1,0 bits -> bits 3,2,1 of kcode */ + CH->kcode = (CH->block_fnum & 0x1c00) >> 9; + + /* the info below is actually opposite to what is stated in the Manuals (verifed on real YMF262) */ + /* if notesel == 0 -> lsb of kcode is bit 10 (MSB) of fnum */ + /* if notesel == 1 -> lsb of kcode is bit 9 (MSB-1) of fnum */ + if (chip.nts & 0x40) CH->kcode |= (CH->block_fnum >> 8) & 1; /* notesel == 1 */ + else CH->kcode |= (CH->block_fnum >> 9) & 1; /* notesel == 0 */ + + if (chip.OPL3_mode) + { + uint8_t chan_no = (r & 0x0f) + ch_offset; + switch (chan_no) + { + case 0: case 1: case 2: + case 9: case 10: case 11: + if (CH->extended) + { + /* refresh Total Level in FOUR SLOTs of this channel and channel+3 using data from THIS channel */ + (CH + 3)->SLOT0.AMmask_TLL = (CH + 3)->SLOT0.TL + (CH->ksl_base >> (CH + 3)->SLOT0.ksl) + ((CH + 3)->SLOT0.AMmask_TLL & 0x8000); + (CH + 3)->SLOT1.AMmask_TLL = (CH + 3)->SLOT1.TL + (CH->ksl_base >> (CH + 3)->SLOT1.ksl) + ((CH + 3)->SLOT1.AMmask_TLL & 0x8000); + + /* refresh frequency counter in FOUR SLOTs of this channel and channel+3 using data from THIS channel */ + CALC_FCSLOT(CH, &(CH + 3)->SLOT0); + CALC_FCSLOT(CH, &(CH + 3)->SLOT1); + } + break; + + case 3: case 4: case 5: + case 12: case 13: case 14: + if ((CH - 3)->extended) return; //if this is 2nd channel forming up 4-op channel just do nothing + break; + } + } + /* in OPL2 mode */ + /* refresh Total Level in both SLOTs of this channel */ + CH->SLOT0.AMmask_TLL = CH->SLOT0.TL + (CH->ksl_base >> CH->SLOT0.ksl) + (CH->SLOT0.AMmask_TLL & 0x8000); + CH->SLOT1.AMmask_TLL = CH->SLOT1.TL + (CH->ksl_base >> CH->SLOT1.ksl) + (CH->SLOT1.AMmask_TLL & 0x8000); + + /* refresh frequency counter in both SLOTs of this channel */ + CALC_FCSLOT(CH, &CH->SLOT0); + CALC_FCSLOT(CH, &CH->SLOT1); + } +} + +uint16_t packptr16(void *ptr) +{ + uint16_t v; + uint16_t i = (uint8_t*)ptr - (uint8_t*)&chip; + uint8_t j; + for (j = 0; i >= 96; i -= 96, j++); + v = (uint16_t)j << 7; + j = i & 0xff; + if (j >= 48) j -= 48, v |= 64; + return v | j; +} + +/* write a value v to register r on OPL chip */ +static void OPL3WriteReg(uint16_t r, uint8_t v) +{ + OPL3_CH *CH; + uint8_t ch_offset = 0, base; + int8_t slot; + uint32_t mask; + + if(r & 0x100) + { + switch(r) + { + case 0x101: return; /* test register */ + + case 0x104: /* 6 channels enable */ + { + CH = &chip.P_CH[0]; /* channel 0 */ + CH->extended = v & 1; + CH++; /* channel 1 */ + CH->extended = (v>>=1) & 1; + CH++; /* channel 2 */ + CH->extended = (v>>=1) & 1; + CH = &chip.P_CH[9]; /* channel 9 */ + CH->extended = (v>>=1) & 1; + CH++; /* channel 10 */ + CH->extended = (v>>=1) & 1; + CH++; /* channel 11 */ + CH->extended = (v>>1) & 1; + } + return; + + case 0x105: /* OPL3 extensions enable register */ + chip.OPL3_mode = v & 0x01; /* OPL3 mode when bit0=1 otherwise it is OPL2 mode */ + return; + } + ch_offset = 9; /* register page #2 starts from channel 9 (counting from 0) */ + } + + r &= 0xff; /* adjust bus to 8 bits */ + + switch(r & 0xe0) + { + case 0x00: /* 00-1f:control */ + switch(r & 0x1f) + { + case 0x01: /* test register */ + break; + case 0x02: /* Timer 1 */ + break; + case 0x03: /* Timer 2 */ + break; + case 0x04: /* IRQ clear / mask and Timer enable */ + break; + case 0x08: /* x,NTS,x,x, x,x,x,x */ + chip.nts = v; + break; + } + break; + case 0x20: /* am ON, vib ON, ksr, eg_type, mul */ + slot = slot_array[r & 0x1f]; + if(slot < 0) return; + set_mul(slot + ch_offset*2, v); + break; + case 0x40: + slot = slot_array[r & 0x1f]; + if(slot < 0) return; + set_ksl_tl(slot + ch_offset*2, v); + break; + case 0x60: + slot = slot_array[r&0x1f]; + if(slot < 0) return; + set_ar_dr(slot + ch_offset*2, v); + break; + case 0x80: + slot = slot_array[r&0x1f]; + if(slot < 0) return; + set_sl_rr(slot + ch_offset*2, v); + break; + case 0xa0: + fn_a0(r, v, ch_offset); + break; + + case 0xc0: + /* CH.D, CH.C, CH.B, CH.A, FB(3bits), C */ + if( (r & 0xf) > 8) return; + CH = &chip.P_CH[(r & 0xf) + ch_offset]; + base = (r & 0xf) + ch_offset; + mask = 1l << base; + + if (chip.OPL3_mode) /* OPL3 mode */ + { + chip.panA = (chip.panA & ~mask) | ((uint32_t)((v & 0x10) >> 4) << base); + chip.panB = (chip.panB & ~mask) | ((uint32_t)((v & 0x20) >> 5) << base); +// chip.pan[ base ] = (v & 0x10) != 0; /* ch.A */ +// chip.pan[ base +1 ] = (v & 0x20) != 0; /* ch.B */ +// chip.pan[ base +2 ] = (v & 0x40) != 0; /* ch.C */ +// chip.pan[ base +3 ] = (v & 0x80) != 0; /* ch.D */ + } + else /* OPL2 mode - always enabled */ + { + chip.panA |= mask; + chip.panB |= mask; +// chip.pan[ base ] = 1; /* ch.A */ +// chip.pan[ base +1 ] = 1; /* ch.B */ +// chip.pan[ base +2 ] = 1; /* ch.C */ +// chip.pan[ base +3 ] = 1; /* ch.D */ + } + CH->SLOT0.FB = (v & 0xe) ? 9 - ((v & 0xe) >> 1) : 0; + CH->SLOT0.CON = v & 1; + + if( chip.OPL3_mode ) + { + uint8_t chan_no = (r & 0x0f) + ch_offset; + + switch(chan_no) + { + case 0: case 1: case 2: + case 9: case 10: case 11: + if (CH->extended) + { + uint8_t conn = (CH->SLOT0.CON << 1) | (CH+3)->SLOT0.CON; + switch(conn) + { + case 0: + /* 1 -> 2 -> 3 -> 4 - out */ + CH->SLOT0.connect = packptr16(&chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.phase_modulation2); + (CH+3)->SLOT0.connect = packptr16(&chip.phase_modulation); + (CH + 3)->SLOT1.connect = packptr16(&chip.P_CH[chan_no + 3].chanout);// chanout[chan_no + 3]; + break; + case 1: + /* 1 -> 2 -\ + 3 -> 4 -+- out */ + CH->SLOT0.connect = packptr16(&chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[chan_no].chanout); // chanout[chan_no]; + (CH+3)->SLOT0.connect = packptr16(&chip.phase_modulation); + (CH+3)->SLOT1.connect = packptr16(&chip.P_CH[chan_no + 3].chanout); + break; + case 2: + /* 1 -----------\ + 2 -> 3 -> 4 -+- out */ + CH->SLOT0.connect = packptr16(&chip.P_CH[chan_no].chanout); + CH->SLOT1.connect = packptr16(&chip.phase_modulation2); + (CH+3)->SLOT0.connect = packptr16(&chip.phase_modulation); + (CH+3)->SLOT1.connect = packptr16(&chip.P_CH[chan_no + 3].chanout); + break; + case 3: + /* 1 ------\ + 2 -> 3 -+- out + 4 ------/ */ + CH->SLOT0.connect = packptr16(&chip.P_CH[chan_no].chanout); + CH->SLOT1.connect = packptr16(&chip.phase_modulation2); + (CH+3)->SLOT0.connect = packptr16(&chip.P_CH[chan_no + 3].chanout); + (CH+3)->SLOT1.connect = packptr16(&chip.P_CH[chan_no + 3].chanout); + break; + } + } + else + { + /* 2 operators mode */ + CH->SLOT0.connect = packptr16(CH->SLOT0.CON ? &chip.P_CH[(r & 0xf) + ch_offset].chanout : &chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[(r & 0xf) + ch_offset].chanout); + } + break; + + case 3: case 4: case 5: + case 12: case 13: case 14: + if ((CH-3)->extended) + { + uint8_t conn = ((CH-3)->SLOT0.CON << 1) | CH->SLOT0.CON; + switch(conn) + { + case 0: + /* 1 -> 2 -> 3 -> 4 - out */ + (CH-3)->SLOT0.connect = packptr16(&chip.phase_modulation); + (CH-3)->SLOT1.connect = packptr16(&chip.phase_modulation2); + CH->SLOT0.connect = packptr16(&chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[ chan_no ].chanout); + break; + case 1: + /* 1 -> 2 -\ + 3 -> 4 -+- out */ + (CH-3)->SLOT0.connect = packptr16(&chip.phase_modulation); + (CH-3)->SLOT1.connect = packptr16(&chip.P_CH[ chan_no - 3 ].chanout); + CH->SLOT0.connect = packptr16(&chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[ chan_no ].chanout); + break; + case 2: + /* 1 -----------\ + 2 -> 3 -> 4 -+- out */ + (CH-3)->SLOT0.connect = packptr16(&chip.P_CH[ chan_no - 3 ].chanout); + (CH-3)->SLOT1.connect = packptr16(&chip.phase_modulation2); + CH->SLOT0.connect = packptr16(&chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[ chan_no ].chanout); + break; + case 3: + /* 1 ------\ + 2 -> 3 -+- out + 4 ------/ */ + (CH-3)->SLOT0.connect = packptr16(&chip.P_CH[ chan_no - 3 ].chanout); + (CH-3)->SLOT1.connect = packptr16(&chip.phase_modulation2); + CH->SLOT0.connect = packptr16(&chip.P_CH[ chan_no ].chanout); + CH->SLOT1.connect = packptr16(&chip.P_CH[ chan_no ].chanout); + break; + } + } + else + { + /* 2 operators mode */ + CH->SLOT0.connect = packptr16(CH->SLOT0.CON ? &chip.P_CH[(r & 0xf) + ch_offset].chanout : &chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[(r & 0xf)+ch_offset].chanout); + } + break; + + default: + /* 2 operators mode */ + CH->SLOT0.connect = packptr16(CH->SLOT0.CON ? &chip.P_CH[(r & 0xf) + ch_offset].chanout : &chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[(r & 0xf) + ch_offset].chanout); + break; + } + } + else + { + /* OPL2 mode - always 2 operators mode */ + CH->SLOT0.connect = packptr16(CH->SLOT0.CON ? &chip.P_CH[(r&0xf)+ch_offset].chanout : &chip.phase_modulation); + CH->SLOT1.connect = packptr16(&chip.P_CH[(r&0xf)+ch_offset].chanout); + } + break; + + case 0xe0: /* waveform select */ + slot = slot_array[r&0x1f]; + if(slot < 0) return; + + slot += ch_offset*2; + CH = &chip.P_CH[slot >> 1]; + + /* store 3-bit value written regardless of current OPL2 or OPL3 mode... (verified on real YMF262) */ + v &= 7; + if(slot & 1) CH->SLOT1.waveform_number = v; + else CH->SLOT0.waveform_number = v; + + /* ... but select only waveforms 0-3 in OPL2 mode */ + if( !chip.OPL3_mode ) v &= 3; /* we're in OPL2 mode */ + if(slot & 1) CH->SLOT1.wavetable = v; + else CH->SLOT0.wavetable = v; + break; + } +} + +void OPL3ResetChip() +{ + uint16_t c; + +// eg_cnt = 0; +// noise_rng = 1; /* noise shift register */ + memset(&chip, 0, sizeof(chip)); + for(c = 0xff ; c >= 0x20 ; c-- ) OPL3WriteReg(c, 0); + for(c = 0x1ff ; c >= 0x120 ; c-- ) OPL3WriteReg(c, 0); + + /* reset operator parameters */ + for( c = 0 ; c < 9*2 ; c++ ) + { + OPL3_CH *CH = &chip.P_CH[c]; + CH->SLOT0.state = EG_OFF; + CH->SLOT0.volume = MAX_ATT_INDEX; + CH->SLOT1.state = EG_OFF; + CH->SLOT1.volume = MAX_ATT_INDEX; + } + + c = (uint16_t)&chip; + outp(0, (uint8_t)c); + outp(1, (uint8_t)(c>>8)); +} + +/* YMF262 I/O interface */ +void OPL3Write(uint8_t a, uint8_t v) +{ + switch(a&3) + { + case 0: /* address port 0 (register set #1) */ + chip.address = v; + break; + + case 1: /* data port - ignore A1 */ + case 3: /* data port - ignore A1 */ +// if(chip->UpdateHandler) chip->UpdateHandler(chip->UpdateParam,0); + OPL3WriteReg(chip.address, v); + break; + + case 2: /* address port 1 (register set #2) */ + if( chip.OPL3_mode ) chip.address = v | 0x100; /* OPL3 mode */ + else + { + if( v==5 ) chip.address = v | 0x100; /* in OPL2 mode the only accessible in set #2 is register 0x05 */ + else chip.address = v; /* verified range: 0x01, 0x04, 0x20-0xef(set #2 becomes set #1 in opl2 mode) */ + } + break; + } +} + +#define READY 1 +#define QEMPTY 2 + +int main() +{ + uint8_t c; + OPL3ResetChip(); + + while(1) + { + c = inp(0); + if((c & 3) == READY) OPL3Write((c >> 2) & 3, inp(1)); + } +} diff --git a/common/Sound/opl3/fw/YMF262.H b/common/Sound/opl3/fw/YMF262.H new file mode 100644 index 00000000..ecb26865 --- /dev/null +++ b/common/Sound/opl3/fw/YMF262.H @@ -0,0 +1,122 @@ +// license:GPL-2.0+ +// copyright-holders:Jarek Burczynski + +#define OPL3_SAMPLE_BITS 16 + +#define TL_RES_LEN (256) /* 8 bits addressing (real chip) */ +#define TL_TAB_LEN (13*2*TL_RES_LEN) + +/* sinwave entries */ +#define SIN_BITS 10 +#define SIN_LEN (1<>KSR */ + uint8_t key; /* 29 - 0 = KEY OFF, >0 = KEY ON */ + uint16_t mul; /* 30 - multiple: mul_tab[ML] */ + uint16_t sl; /* 32 - sustain level: sl_tab[SL] */ + uint8_t vib; /* 34 - bool - LFO Phase Modulation enable flag (active high)*/ + uint8_t waveform_number; /* 35 */ + int16_t connect; /* 36 - slot output pointer */ + uint8_t eg_sh_ar; /* 38 - (attack state) */ + uint8_t eg_sel_ar; /* 39 - (attack state) */ + uint8_t eg_sh_dr; /* 40 - (decay state) */ + uint8_t eg_sel_dr; /* 41 - (decay state) */ + uint8_t eg_sh_rr; /* 42 - (release state) */ + uint8_t eg_sel_rr; /* 43 - (release state) */ +} OPL3_SLOT; + +typedef struct _OPL3_CH // 96 bytes +{ + OPL3_SLOT SLOT0; /* 0 */ + uint16_t block_fnum; /* 44 - block+fnum */ + int16_t chanout; /* 46 */ + /* + there are 12 2-operator channels which can be combined in pairs + to form six 4-operator channel, they are: + 0 and 3, + 1 and 4, + 2 and 5, + 9 and 12, + 10 and 13, + 11 and 14 + */ + OPL3_SLOT SLOT1; /* 48 */ + + uint8_t extended; /* SLOT1+44 - bool - set to 1 if this channel forms up a 4op channel with another channel(only used by first of pair of channels, ie 0,1,2 and 9,10,11) */ + uint8_t ksl_base; /* 45 - KeyScaleLevel Base step */ + uint8_t kcode; /* 46 - key code (for key scaling) */ + uint8_t pad; /* 47 */ +} OPL3_CH; + +/* OPL3 state */ +typedef struct _OPL3 +{ + OPL3_CH P_CH[18]; /* OPL3 chips have 18 channels */ + int16_t phase_modulation; /* 0 - phase modulation input (SLOT 2) */ + int16_t phase_modulation2; /* 2 - phase modulation input (SLOT 3 in 4 operator channels) */ + uint32_t panA; /* 4 - channels output masks */ + uint32_t panB; /* 8 - channels output masks */ + /* LFO */ + uint8_t lfo_am_depth; /* 12 - bool */ + uint8_t lfo_pm_depth_range;/* 13 */ + uint8_t OPL3_mode; /* 14 - bool - OPL3 extension enable flag */ + uint8_t rhythm; /* 15 - bool - Rhythm mode */ + uint16_t address; /* 16 - address register */ + uint8_t nts; /* 20 - NTS (note select) */ +} OPL3; + + +void OPL3ResetChip(); +void OPL3Write(uint8_t a, uint8_t v); + + diff --git a/common/Sound/opl3/fw/bin2mem.c b/common/Sound/opl3/fw/bin2mem.c new file mode 100644 index 00000000..dd79a433 --- /dev/null +++ b/common/Sound/opl3/fw/bin2mem.c @@ -0,0 +1,49 @@ +#include +#include + +int main() +{ + int c1,c2,d=1,i; + FILE *in = fopen("opl3.com", "rb"); + + for(i=0; i<4096; i++) + { + if(i<128) + { + switch(i) + { + case 0: printf("00C3\n"); break; + case 1: printf("0001\n"); break; + case 2: printf("C300\n"); break; + case 3: printf("00FF\n"); break; + case 127: printf("C900\n"); break; + default: printf("0000\n"); break; + } + } + else if(d) + { + c1 = fgetc(in); + if(c1 == -1) + { + d = 0; + c1 = 0; + c2 = 0; + } + else + { + c2 = fgetc(in); + if(c2 == -1) + { + d = 0; + c2 = 0; + } + } + printf("%02X%02X\n", c2&0xff, c1&0xff); + } + else + { + printf("0000\n"); + } + } + fclose(in); +} diff --git a/common/Sound/opl3/fw/bin2mem.exe b/common/Sound/opl3/fw/bin2mem.exe new file mode 100644 index 00000000..99968e46 Binary files /dev/null and b/common/Sound/opl3/fw/bin2mem.exe differ diff --git a/common/Sound/opl3/fw/clean.bat b/common/Sound/opl3/fw/clean.bat new file mode 100644 index 00000000..09038d23 --- /dev/null +++ b/common/Sound/opl3/fw/clean.bat @@ -0,0 +1,5 @@ +del /q *.as +del /q *.obj +del /q *.map +del /q *.sym +del /q *.bak diff --git a/common/Sound/opl3/opl3.qip b/common/Sound/opl3/opl3.qip new file mode 100644 index 00000000..662be50f --- /dev/null +++ b/common/Sound/opl3/opl3.qip @@ -0,0 +1,7 @@ +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) opl3.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) opl3fm.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) opl3seq.sv ] +set_global_assignment -name SYSTEMVERILOG_FILE [file join $::quartus(qip_path) compressor.sv] +set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) NextZ80Reg.v ] +set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) NextZ80CPU.v ] +set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) NextZ80ALU.v ] diff --git a/common/Sound/opl3/opl3.sv b/common/Sound/opl3/opl3.sv new file mode 100644 index 00000000..7a380327 --- /dev/null +++ b/common/Sound/opl3/opl3.sv @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2014, Aleksander Osman + * All rights reserved. + * + * Redistribution and use in source and binary 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 binary 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. + * + * THIS SOFTWARE 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 COPYRIGHT HOLDER 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. + */ + +module opl3 +#( + parameter OPLCLK = 64000000 // opl_clk in Hz +) +( + input clk, + input clk_opl, + input rst_n, + output reg irq_n, + + input [12:0] period_80us, // from clk + + input [1:0] addr, + output [7:0] dout, + input [7:0] din, + input we, + + output signed [15:0] sample_l, + output signed [15:0] sample_r +); + +//------------------------------------------------------------------------------ + +wire [7:0] io_readdata = { timer1_overflow | timer2_overflow, timer1_overflow, timer2_overflow, 5'd0 }; +assign dout = !addr ? io_readdata : 8'hFF; + +//------------------------------------------------------------------------------ + +reg old_write; +always @(posedge clk) old_write <= we; + +wire write = (~old_write & we); + +reg [8:0] index; +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) index <= 0; + else if(~addr[0] && write) index <= {addr[1], din}; +end + +wire io_write = (addr[0] && write); +wire [7:0] io_writedata = din; + +//------------------------------------------------------------------------------ timer 1 + +reg [7:0] timer1_preset; +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) timer1_preset <= 0; + else if(io_write && index == 2) timer1_preset <= io_writedata; +end + +reg timer1_mask; +reg timer1_active; +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) {timer1_mask, timer1_active} <= 0; + else if(io_write && index == 4 && ~io_writedata[7]) {timer1_mask, timer1_active} <= {io_writedata[6], io_writedata[0]}; +end + +wire timer1_pulse; +timer timer1( clk, period_80us, timer1_preset, timer1_active, timer1_pulse ); + +reg timer1_overflow; +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) timer1_overflow <= 0; + else begin + if(io_write && index == 4 && io_writedata[7]) timer1_overflow <= 0; + if(timer1_pulse) timer1_overflow <= 1; + end +end + + +//------------------------------------------------------------------------------ timer 2 + +reg [7:0] timer2_preset; +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) timer2_preset <= 0; + else if(io_write && index == 3) timer2_preset <= io_writedata; +end + +reg timer2_mask; +reg timer2_active; +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) {timer2_mask, timer2_active} <= 0; + else if(io_write && index == 4 && ~io_writedata[7]) {timer2_mask, timer2_active} <= {io_writedata[5], io_writedata[1]}; +end + +wire timer2_pulse; +timer timer2( clk, {period_80us, 2'b00}, timer2_preset, timer2_active, timer2_pulse ); + +reg timer2_overflow; +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) timer2_overflow <= 0; + else begin + if(io_write && index == 4 && io_writedata[7]) timer2_overflow <= 0; + if(timer2_pulse) timer2_overflow <= 1; + end +end + + +//------------------------------------------------------------------------------ IRQ + +always @(posedge clk or negedge rst_n) begin + if(rst_n == 0) irq_n <= 1; + else begin + if(io_write && index == 4 && io_writedata[7]) irq_n <= 1; + if(~timer1_mask && timer1_pulse) irq_n <= 0; + if(~timer2_mask && timer2_pulse) irq_n <= 0; + end +end + +opl3sw #(OPLCLK) opl3 +( + .reset(~rst_n), + + .cpu_clk(clk), + .addr(addr), + .din(din), + .wr(write), + + .clk(clk_opl), + .left(sample_l), + .right(sample_r) +); + +endmodule + +module timer +( + input clk, + input [14:0] resolution, + input [7:0] init, + input active, + output reg overflow_pulse +); + +always @(posedge clk) begin + reg [7:0] counter = 0; + reg [14:0] sub_counter = 0; + reg old_act; + + old_act <= active; + overflow_pulse <= 0; + + if(~old_act && active) begin + counter <= init; + sub_counter <= resolution; + end + else if(active) begin + sub_counter <= sub_counter - 1'd1; + if(!sub_counter) begin + sub_counter <= resolution; + counter <= counter + 1'd1; + if(&counter) begin + overflow_pulse <= 1; + counter <= init; + end + end + end +end + +endmodule diff --git a/common/Sound/opl3/opl3fm.sv b/common/Sound/opl3/opl3fm.sv new file mode 100644 index 00000000..193b349a --- /dev/null +++ b/common/Sound/opl3/opl3fm.sv @@ -0,0 +1,263 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// +// This file is part of the Next186 Soc PC project +// http://opencores.org/project,next186 +// +// Filename: opl3seq.v +// Description: Part of the Next186 SoC PC project, OPL3 +// Version 1.0 +// Creation date: 13:55:57 02/27/2017 +// +// Author: Nicolae Dumitrache +// e-mail: ndumitrache@opencores.org +// +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 Nicolae Dumitrache +// +// This source file may be used and distributed without +// restriction provided that this copyright statement is not +// removed from the file and that any derivative work contains +// the original copyright notice and the associated disclaimer. +// +// This source file is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; +// either version 2.1 of the License, or (at your option) any +// later version. +// +// This source 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 Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General +// Public License along with this source; if not, download it +// from http://www.opencores.org/lgpl.shtml +// +/////////////////////////////////////////////////////////////////////////////////// +// Additional Comments: +// +// Port0 (R) = 4'b0000, Addr[1:0], qempty, ready +// Port1 (R) = Value[7:0], advance queue +// +/////////////////////////////////////////////////////////////////////////////////// + +// +// Improved reset stability and firmware portability by Sorgelig. +// + +module opl3sw #(parameter OPLCLK = 50000000) +( + input reset, + + // CPU interface + input cpu_clk, + input [1:0] addr, + input [7:0] din, + input wr, + + // OPL sequencer + input clk, // 50Mhz (min 45Mhz) + output [15:0] left, + output [15:0] right +); + +wire [7:0] ram_dout; +opl3_mem ram +( + .clk(clk), + .addr1(CPU_ADDR[12:0]), + .we1(CPU_MREQ & CPU_WR & CE), + .data_in1(CPU_DOUT), + .data_out1(ram_dout), + + .addr2(OPL3Struct_base+seq_addr), + .we2(seq_wr), + .data_in2(seq_wdata), + .data_out2(seq_rdata) +); + +wire [9:0] qdata; +wire qempty; + +// show ahead fifo +opl3_fifo in_queue +( + .aclr(reset), + + .wrclk(cpu_clk), + .data({addr, din}), + .wrreq(wr), + + .rdclk(clk), + .q(qdata), + .rdreq(CE && CPU_IORQ && !CPU_WR && CPU_ADDR[0]), + .rdempty(qempty) +); + + +reg stb44100; +always @(posedge clk) begin + integer cnt; + localparam RATE = (OPLCLK/44100)-1; + + cnt <= cnt+1; + if(cnt == RATE) cnt <= 0; + + stb44100 <= !cnt; +end + +wire seq_wr; +wire [11:0] seq_addr; +wire [15:0] seq_rdata; +wire [15:0] seq_wdata; +wire ready; + +reg [11:0] OPL3Struct_base = 0; +reg seq_reset_n = 0; + +always @(posedge clk) begin + if(reset) seq_reset_n <= 0; + + if(CPU_IORQ & CPU_WR & CE) begin + if(CPU_ADDR[0]) {seq_reset_n, OPL3Struct_base[11:7]} <= {1'b1, CPU_DOUT[4:0]}; + else OPL3Struct_base[6:0] <= CPU_DOUT[7:1]; + end +end + +opl3seq opl3seq +( + .clk(clk), + .reset(~seq_reset_n), + .rd(stb44100), + .A(A), + .B(B), + .ready(ready), + .ram_wr(seq_wr), + .ram_addr(seq_addr), + .ram_rdata(seq_rdata), + .ram_wdata(seq_wdata) +); + +wire [15:0] A,B; +compressor compressor +( + clk, + stb44100, + + A[15:4], B[15:4], + left, right +); + +wire [15:0] CPU_ADDR; +wire [7:0] CPU_DOUT; +wire CPU_WR; +wire CPU_MREQ; +wire CPU_IORQ; + +NextZ80 Z80 +( + .DI(~CPU_IORQ ? ram_dout : CPU_ADDR[0] ? qdata[7:0] : {4'b0000, qdata[9:8], qempty, ready}), + .DO(CPU_DOUT), + .ADDR(CPU_ADDR), + .WR(CPU_WR), + .MREQ(CPU_MREQ), + .IORQ(CPU_IORQ), + .HALT(), + .M1(), + .CLK(clk), + .RESET(reset), + .INT(0), + .NMI(0), + .WAIT(!CE) +); + +reg CE = 0; +always @(posedge clk) CE <= !CE; + +endmodule + +module opl3_mem +#( + parameter + DATA_WIDTH1 = 8, + ADDRESS_WIDTH1 = 13, + ADDRESS_WIDTH2 = 12, + INIT_FILE = "opl3prg.mem" +) +( + input clk, + input we1, + input [ADDRESS_WIDTH1-1:0] addr1, + input [DATA_WIDTH1-1:0] data_in1, + output reg [DATA_WIDTH1-1:0] data_out1, + + input we2, + input [ADDRESS_WIDTH2-1:0] addr2, + input [DATA_WIDTH2-1:0] data_in2, + output reg [DATA_WIDTH2-1:0] data_out2 +); + +localparam RATIO = 1 << (ADDRESS_WIDTH1 - ADDRESS_WIDTH2); +localparam DATA_WIDTH2 = DATA_WIDTH1 * RATIO; +localparam RAM_DEPTH = 1 << ADDRESS_WIDTH2; + +reg [RATIO-1:0] [DATA_WIDTH1-1:0] ram[0:RAM_DEPTH-1]; +initial $readmemh(INIT_FILE, ram); + +// Port A +always@(posedge clk) if(we1) ram[addr1 / RATIO][addr1 % RATIO] = data_in1; +always@(posedge clk) data_out1 <= ram[addr1 / RATIO][addr1 % RATIO]; + +// port B +always@(posedge clk) if(we2) ram[addr2] = data_in2; +always@(posedge clk) data_out2 <= ram[addr2]; + +endmodule + +module opl3_fifo +( + input aclr, + input [9:0] data, + input rdclk, + input rdreq, + input wrclk, + input wrreq, + output [9:0] q, + output rdempty +); + +dcfifo dcfifo_component ( + .aclr (aclr), + .data (data), + .rdclk (rdclk), + .rdreq (rdreq), + .wrclk (wrclk), + .wrreq (wrreq), + .q (q), + .rdempty (rdempty), + .eccstatus (), + .rdfull (), + .rdusedw (), + .wrempty (), + .wrfull (), + .wrusedw ()); +defparam + dcfifo_component.intended_device_family = "Cyclone V", + dcfifo_component.lpm_numwords = 1024, + dcfifo_component.lpm_showahead = "ON", + dcfifo_component.lpm_type = "dcfifo", + dcfifo_component.lpm_width = 10, + dcfifo_component.lpm_widthu = 10, + dcfifo_component.overflow_checking = "ON", + dcfifo_component.rdsync_delaypipe = 5, + dcfifo_component.read_aclr_synch = "ON", + dcfifo_component.underflow_checking = "ON", + dcfifo_component.use_eab = "ON", + dcfifo_component.write_aclr_synch = "ON", + dcfifo_component.wrsync_delaypipe = 5; + +endmodule diff --git a/common/Sound/opl3/opl3prg.mem b/common/Sound/opl3/opl3prg.mem new file mode 100644 index 00000000..adc0a298 --- /dev/null +++ b/common/Sound/opl3/opl3prg.mem @@ -0,0 +1,4096 @@ +00C3 +0001 +C300 +00FF +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +C900 +18B8 +B834 +0900 +F5BA +CD12 +B821 +4C01 +21CD +0000 +4300 +706F +7279 +6769 +7468 +2820 +2943 +3120 +3939 +2033 +4948 +542D +4345 +2048 +6F53 +7466 +6177 +6572 +2A00 +0006 +11F9 +150D +21B7 +1511 +52ED +444D +6B0B +1362 +0036 +B0ED +0021 +1119 +0000 +EDB7 +2852 +211A +1900 +0011 +B719 +52ED +0F28 +D321 +B71F +52ED +0728 +444D +0021 +ED19 +21B0 +0080 +234E +0006 +3609 +1100 +0081 +F401 +CD12 +11EC +2AE5 +150F +CDE5 +1134 +CDE5 +1252 +00C3 +DD00 +DDE5 +0021 +DD00 +3B39 +E5FD +71DD +D5FF +E1FD +7EFD +B71D +BEC2 +AF01 +77FD +FD04 +0577 +77FD +FD06 +0777 +36FD +0412 +7EFD +DD1D +FFB6 +77FD +FD1D +DDE1 +DDF9 +C9E1 +1D21 +1900 +B77E +21C8 +001D +7E19 +77A1 +1D21 +1900 +B77E +21C0 +0012 +7E19 +02FE +21D8 +0012 +3619 +C901 +E5DD +21DD +0000 +39DD +3BC5 +E5FD +73DD +DDFD +FE72 +FDC5 +06E1 +6B0A +1162 +002C +7E19 +6623 +CD6F +12E4 +3E4D +9107 +77DD +FDFF +1E5E +56FD +211F +0000 +D5E5 +6EDD +DDFD +FE66 +2C11 +1900 +234E +7946 +785F +03E6 +2157 +0000 +ADCD +0611 +CD02 +1241 +46DD +CDFF +1184 +73FD +FD08 +0972 +75FD +FD0A +0B74 +46FD +DD1A +FD6E +66DD +11FE +005E +6E19 +0504 +6FCA +CB02 +103D +4DFC +7EFD +B91C +F1CA +FD02 +1C71 +FD79 +0086 +FE4F +D24C +02A3 +2421 +7914 +6F85 +CE7C +6700 +FD6E +2675 +C421 +7913 +6F85 +CE7C +6700 +FD6E +2775 +ABC3 +FD02 +2636 +FD00 +2736 +FD68 +017E +86FD +4F1C +2421 +7914 +6F85 +CE7C +6700 +FD6E +2875 +C421 +7913 +6F85 +CE7C +6700 +FD6E +2975 +7EFD +FD02 +1C86 +214F +1424 +8579 +7C6F +00CE +6E67 +75FD +212A +13C4 +8579 +7C6F +00CE +6E67 +75FD +FD2B +DDE1 +DDF9 +C9E1 +E5DD +21DD +0000 +39DD +C5C5 +E5FD +71DD +DDFE +FF73 +6011 +DD00 +FF7E +3FCB +266F +CD00 +1298 +0011 +1919 +FDE5 +DDE1 +FFCB +C246 +03D2 +E5FD +DDE1 +FC75 +74DD +11FD +0482 +7EDD +E6FE +6F0F +0026 +8401 +0914 +266E +CD00 +1298 +DDE5 +FC6E +66DD +11FD +001E +EB19 +7DE1 +1312 +127C +4EDD +DDFC +FD46 +CBDD +66FE +003E +67C2 +3E03 +2102 +001A +7709 +CBDD +6EFE +013E +76C2 +3D03 +1321 +0900 +DD77 +FECB +3E76 +C201 +0385 +213D +0022 +7709 +7EDD +E6FE +6F80 +1E55 +2100 +0014 +7E09 +6623 +CB6F +19BC +21E5 +0014 +EB09 +7DE1 +1312 +127C +CE3A +B71F +DFCA +DD03 +FF7E +3FCB +6F47 +0026 +B7AF +DFDA +C203 +03C8 +0E3E +DABD +03DF +1129 +1494 +7E19 +6623 +E96F +3021 +FD00 +D1E5 +C319 +0329 +7EFD +DD5C +FC4E +46DD +FDFD +D1E5 +F2CD +FD01 +DDE1 +DDF9 +C9E1 +3C21 +FDFF +D1E5 +7E19 +DDB7 +FC4E +46DD +CAFD +03E5 +E021 +FDFE +D1E5 +EB19 +E8C3 +C303 +03DF +E5DD +21DD +0000 +39DD +C5C5 +FD3B +DDE5 +FF71 +73DD +11FE +0060 +7EDD +CBFE +6F3F +0026 +98CD +1112 +1900 +DD19 +FC75 +74DD +4DFD +DD44 +FECB +C246 +04D7 +FDE5 +DDE1 +FF4E +B021 +0613 +5906 +0504 +5BCA +CB04 +103B +7BFC +6F85 +CE7C +6700 +FD6E +1B75 +E679 +CB3F +CB27 +FD27 +1077 +165F +DD00 +FC6E +66DD +01FD +005D +6E09 +46FD +041B +CA05 +048A +3DCB +FC10 +0026 +7EFD +E615 +4780 +094C +FD19 +1475 +74FD +3A15 +1FCE +CAB7 +04D0 +7EDD +CBFE +CB3F +DD3F +FB77 +4EDD +DDFC +FD46 +03FE +DECA +FE04 +CA04 +04DE +05FE +DECA +FE04 +CA0C +04DE +0DFE +DECA +FE04 +CA0E +04DE +E1FD +F9DD +E1DD +21C9 +0030 +C309 +0446 +3C21 +09FF +B77E +D0CA +FD04 +105E +0016 +6EDD +DDFC +FD66 +3D01 +09FF +FD6E +1B46 +0504 +03CA +CB05 +103D +26FC +FD00 +157E +80E6 +4C47 +1909 +75FD +FD14 +1574 +D0C3 +DD04 +DDE5 +0021 +DD00 +C539 +FDC5 +DDE5 +FE71 +73DD +11FF +0060 +7EDD +CBFF +6F3F +0026 +98CD +1112 +1900 +DD19 +FC75 +74DD +DDFD +FFCB +C246 +0583 +FDE5 +DDE1 +FE4E +E679 +C2F0 +058A +0021 +FD00 +0075 +FD7D +1C86 +FE47 +D24C +059B +2421 +7814 +6F85 +CE7C +6700 +FD6E +2675 +C421 +7813 +6F85 +CE7C +6700 +FD6E +2775 +A3C3 +1105 +0030 +C319 +0548 +E679 +CBF0 +CB3F +6F3F +0026 +1011 +1900 +57C3 +FD05 +2636 +FD00 +2736 +7968 +0FE6 +D7C2 +2105 +0000 +75FD +7D01 +86FD +471C +2421 +7814 +6F85 +CE7C +6700 +FD6E +2875 +C421 +7813 +6F85 +CE7C +6700 +FD6E +2975 +E1FD +F9DD +E1DD +79C9 +0FE6 +266F +2900 +1129 +0010 +C319 +05AC +E5DD +21DD +0000 +39DD +C5C5 +E5FD +71DD +DDFE +FF73 +6011 +DD00 +FF7E +3FCB +266F +CD00 +1298 +0011 +1919 +75DD +DDFC +FD74 +CBDD +46FF +71C2 +E506 +E1FD +46FD +DD1C +FE4E +B421 +5913 +3BCB +3BCB +3BCB +3BCB +857B +7C6F +00CE +6E67 +0026 +FD29 +2075 +74FD +7921 +0FE6 +78C2 +2106 +0000 +75FD +7802 +86FD +4702 +2421 +7814 +6F85 +CE7C +6700 +FD6E +2A75 +C421 +7813 +6F85 +CE7C +6700 +FD6E +2B75 +E1FD +F9DD +E1DD +11C9 +0030 +C319 +0617 +E679 +6F0F +0026 +2929 +1011 +1900 +46C3 +DD06 +DDE5 +0021 +DD00 +C539 +3BC5 +E5FD +71DD +7BFF +BDEE +C2B2 +0788 +7EDD +B704 +49C2 +CB0A +3E79 +C201 +06AD +323D +1FCC +71CB +083E +B9C2 +3E06 +3200 +1FCD +69CB +013E +C4C2 +3D06 +CF32 +B71F +55CA +DD07 +FFCB +CA66 +06E5 +020E +4011 +CD1B +0195 +020E +7011 +CD1B +0195 +F5C3 +0E06 +11FD +1B40 +CECD +0E01 +11FD +1B70 +CECD +DD01 +FFCB +CA46 +0707 +020E +A011 +CD1B +0195 +0FC3 +0E07 +11FD +1BA0 +CECD +DD01 +FFCB +CA5E +0721 +020E +D011 +CD1B +0195 +29C3 +0E07 +11FD +1BD0 +CECD +DD01 +FFCB +CA56 +073B +020E +0011 +CD1C +0195 +43C3 +0E07 +11FD +1C00 +CECD +DD01 +FFCB +CA4E +077D +020E +3011 +CD1C +0195 +49C3 +0E0A +11FD +1B40 +CECD +0E01 +11FD +1B70 +CECD +0E01 +11FD +1BA0 +CECD +0E01 +11FD +1BD0 +CECD +0E01 +11FD +1C00 +CECD +0E01 +11FD +1C30 +CECD +C301 +0A49 +73DD +DDFB +FC72 +0901 +7B00 +0FE6 +266F +B700 +42ED +49D2 +110A +0060 +4EDD +0604 +DD00 +FB7E +0FE6 +606F +CD09 +1298 +0011 +1919 +FDE5 +DDE1 +FF4E +5EDD +DDFB +FC56 +63CB +D5C2 +FD07 +2D7E +1FE6 +7967 +77DD +DDFD +FE74 +A9C3 +7908 +1FE6 +6EFD +672C +75DD +DDFD +FE74 +CE3A +B71F +7FCA +7B08 +0FE6 +86DD +4704 +266F +AF00 +DAB7 +087F +01C2 +3E08 +BD0E +7FDA +2908 +B211 +1914 +237E +6F66 +FDE9 +5C7E +CAB7 +087F +69CB +49CA +0E08 +FD01 +D1E5 +95CD +0E01 +2101 +0030 +E5FD +19D1 +CDEB +0195 +010E +2021 +FD01 +D1E5 +EB19 +95CD +0E01 +2101 +0150 +E5FD +19D1 +CDEB +0195 +A9C3 +0E08 +FDFE +D1E5 +CECD +0E01 +21FE +0030 +E5FD +19D1 +CDEB +01CE +FE0E +2021 +FD01 +D1E5 +EB19 +CECD +0E01 +21FE +0150 +A1C3 +2108 +FF3C +E5FD +19D1 +B77E +A9C2 +CB08 +CA69 +0894 +010E +E5FD +CDD1 +0195 +010E +3021 +C300 +083E +FE0E +E5FD +CDD1 +01CE +FE0E +3021 +FD00 +D1E5 +EB19 +CECD +DD01 +FD4E +46DD +FDFE +2C6E +66FD +B72D +42ED +49CA +690A +FD60 +2C75 +74FD +062D +CD06 +12E4 +3011 +1913 +FD6E +5D75 +0906 +7EFD +E62D +671C +002E +E4CD +FD12 +5E75 +5EDD +DDFB +FC56 +D23A +CB1F +CA77 +08F4 +7EFD +C32D +0900 +0906 +6EFD +FD2C +2D66 +E4CD +7D12 +01E6 +FD4F +5E7E +FDB1 +5E77 +CE3A +B71F +DFCA +7B09 +0FE6 +86DD +4704 +266F +AF00 +DAB7 +09DF +29C2 +3E09 +BD0E +DFDA +2909 +D011 +C314 +0805 +7EFD +B75C +DFCA +2109 +0130 +E5FD +19D1 +165E +2100 +0134 +E5FD +09C1 +234E +E67E +6780 +E56A +3B21 +FD01 +C1E5 +4609 +4EFD +045D +CA05 +0964 +39CB +FC10 +79E1 +6F85 +CE7C +6700 +E519 +3421 +FD01 +D1E5 +EB19 +7DE1 +1312 +127C +6021 +FD01 +D1E5 +5E19 +0016 +6421 +FD01 +C1E5 +4E09 +7E23 +80E6 +6A67 +21E5 +016B +E5FD +09C1 +FD46 +5D4E +0504 +A9CA +CB09 +1039 +E1FC +8579 +7C6F +00CE +1967 +21E5 +0164 +E5FD +19D1 +E1EB +127D +7C13 +2112 +0120 +E5FD +19D1 +444D +E5FD +CDD1 +01F2 +5021 +FD01 +D1E5 +4D19 +FD44 +D1E5 +F2CD +FD01 +105E +0016 +7EFD +E615 +6780 +FD6A +1B46 +4EFD +045D +CA05 +09FA +39CB +FC10 +8579 +7C6F +00CE +1967 +75FD +FD14 +1574 +5EFD +1640 +FD00 +457E +80E6 +6A67 +46FD +FD4B +5D4E +0504 +23CA +CB0A +1039 +79FC +6F85 +CE7C +6700 +FD19 +4475 +74FD +FD45 +C1E5 +E5FD +CDD1 +01F2 +3021 +FD00 +D1E5 +4D19 +FD44 +D1E5 +F2CD +FD01 +DDE1 +DDF9 +E1E1 +E9F1 +3C21 +FDFF +D1E5 +7E19 +CAB7 +09DF +49C3 +FD0A +01E5 +1900 +626B +EDB7 +E542 +E1FD +000E +79C3 +110A +FFA0 +19FD +110C +0060 +E5FD +B7E1 +52ED +73D2 +060A +6907 +0026 +D7CD +EB12 +E5FD +4DE1 +FE79 +7930 +9FDA +D60A +4F30 +F3CB +B379 +626F +E1FD +DDC9 +DDE5 +0021 +DD00 +2139 +FFF5 +F939 +E5FD +FDD5 +06E1 +FD00 +E1E5 +44CB +DCCA +FD0A +E1E5 +FE7C +C201 +0ADA +FE7D +CA01 +0B6A +04FE +29CA +FE0B +CA05 +0B71 +0906 +70DD +DDFE +FC71 +E5FD +AFE1 +E567 +E1FD +75DD +DDFA +FB74 +E5FD +7DE1 +E0E6 +266F +AF00 +C2B7 +0B6A +B77D +83CA +FE0B +CA20 +0BAD +40FE +D4CA +FE0B +CA60 +0BFB +80FE +22CA +FE0C +CAA0 +0C49 +C0FE +5CCA +FE0C +CAE0 +0FC4 +6AC3 +FD0B +0021 +7919 +01E6 +77FD +115C +0060 +19FD +39CB +E679 +FD01 +5C77 +19FD +39CB +E679 +FD01 +5C77 +21FD +1C60 +39CB +E679 +FD01 +5C77 +19FD +39CB +E679 +FD01 +5C77 +19FD +CB79 +E63F +FD01 +5C77 +E1FD +F9DD +E1DD +79C9 +01E6 +CE32 +C31F +0B6A +7EDD +32FC +1FD2 +6AC3 +DD0B +FA7E +1FE6 +266F +AF00 +C2B7 +0B6A +FE7D +CA01 +0B6A +02FE +6ACA +FE0B +CA03 +0B6A +04FE +6ACA +FE0B +CA08 +0B7A +6AC3 +DD0B +FA7E +1FE6 +266F +1100 +1310 +4619 +70DD +78FD +FAB7 +0B6A +4EDD +DDFC +FE7E +27CB +86DD +5FFD +F8CD +C302 +0B6A +7EDD +E6FA +6F1F +0026 +1011 +1913 +DD46 +FD70 +B778 +6AFA +DD0B +FC4E +7EDD +CBFE +DD27 +FD86 +CD5F +0412 +6AC3 +DD0B +FA7E +1FE6 +266F +1100 +1310 +4619 +70DD +78FD +FAB7 +0B6A +4EDD +DDFC +FE7E +27CB +86DD +5FFD +17CD +C305 +0B6A +7EDD +E6FA +6F1F +0026 +1011 +1913 +DD46 +FD70 +B778 +6AFA +DD0B +FC4E +7EDD +CBFE +DD27 +FD86 +CD5F +05E6 +6AC3 +DD0B +FE6E +DDE5 +FC4E +5EDD +DDFA +FB56 +87CD +C306 +0B6A +0901 +DD00 +FA7E +0FE6 +266F +B700 +42ED +6AD2 +110B +0060 +4EDD +06FE +DD00 +FA7E +0FE6 +606F +CD09 +1298 +0011 +1919 +FDE5 +DDE1 +FA7E +0FE6 +86DD +DDFE +FF77 +1147 +0001 +0021 +CD00 +1241 +73DD +DDF6 +F772 +75DD +DDF8 +F974 +CE3A +B71F +44CA +DD0D +FF46 +7EDD +E6FC +CB10 +CB3F +CB3F +CB3F +5F3F +0021 +5400 +41CD +E512 +2AD5 +1FC6 +2AE5 +1FC4 +DDE5 +F65E +56DD +21F7 +FFFF +EDB7 +EB52 +FF3E +9EDD +6FF8 +FF3E +9EDD +67F9 +6FCD +CD11 +1198 +53ED +1FC4 +C622 +DD1F +FF46 +7EDD +E6FC +CB20 +CB3F +CB3F +CB3F +CB3F +5F3F +0021 +5400 +41CD +E512 +2AD5 +1FCA +2AE5 +1FC8 +DDE5 +F65E +56DD +21F7 +FFFF +EDB7 +EB52 +FF3E +9EDD +6FF8 +FF3E +9EDD +67F9 +6FCD +CD11 +1198 +53ED +1FC8 +CA22 +C31F +0D5C +F621 +CDFF +12C4 +C421 +CD1F +1166 +F621 +CDFF +12C4 +C821 +CD1F +1166 +4EDD +79FC +0EE6 +A0C2 +210D +0000 +75FD +7918 +01E6 +77FD +3A11 +1FCE +CAB7 +0F8C +7EDD +E6FA +DD0F +FE86 +DD4F +F571 +6F79 +0026 +B7AF +8CDA +C20F +0D96 +0E3E +DABD +0F8C +1129 +14EE +7E19 +6623 +E96F +E679 +CB0E +5F3F +0016 +0921 +B700 +52ED +68C3 +FD0D +5C7E +CAB7 +0F8C +3121 +FD01 +D1E5 +FD19 +117E +27CB +47B6 +CAB7 +0DDC +01FE +26CA +FE0E +CA02 +0E45 +03FE +58CA +C30E +0B6A +C011 +CD1F +0A61 +75FD +FD24 +2574 +C211 +CD1F +0A61 +75FD +FD54 +5574 +C011 +CD1F +0A61 +21EB +0144 +E5FD +09C1 +2373 +1172 +0060 +6EDD +26F5 +CD00 +1298 +4E11 +191A +CDEB +0A61 +21EB +0174 +E5FD +09C1 +2373 +C372 +0B6A +C011 +CD1F +0A61 +75FD +FD24 +2574 +6011 +DD00 +F56E +0026 +98CD +1112 +192E +EB19 +EBC3 +110D +0060 +6EDD +26F5 +CD00 +1298 +2E11 +1919 +C3EB +0DDF +6011 +DD00 +F56E +0026 +98CD +1112 +192E +EB19 +61CD +FD0A +2475 +74FD +1125 +1FC2 +61CD +FD0A +5475 +74FD +1155 +0060 +6EDD +26F5 +CD00 +1298 +4E11 +191A +C3EB +0DF7 +6011 +DD00 +FE4E +0006 +7EDD +E6FA +6F0F +0960 +98CD +1112 +192E +C319 +0F96 +3C21 +FDFF +D1E5 +7E19 +CAB7 +0F8C +F121 +FDFE +D1E5 +7E19 +27CB +B6FD +4711 +CAB7 +0EDA +01FE +13CA +FE0F +CA02 +0F37 +03FE +4ACA +C30F +0B6A +C011 +CD1F +0A61 +21EB +FF04 +E5FD +09C1 +2373 +1172 +1FC2 +61CD +EB0A +3421 +FDFF +C1E5 +7309 +7223 +C011 +CD1F +0A61 +75FD +FD24 +2574 +6011 +DD00 +F56E +0026 +B0C3 +110F +1FC0 +61CD +EB0A +0421 +FDFF +C1E5 +7309 +7223 +6011 +DD00 +F56E +0026 +98CD +1112 +180E +EB19 +EEC3 +110E +0060 +6EDD +26F5 +CD00 +1298 +0E11 +1918 +C3EB +0EDD +6011 +DD00 +F56E +0026 +98CD +1112 +180E +EB19 +61CD +EB0A +0421 +FDFF +C1E5 +7309 +7223 +C211 +CD1F +0A61 +21EB +FF34 +E5FD +09C1 +2373 +1172 +0060 +6EDD +26F5 +CD00 +1298 +2E11 +1919 +C3EB +0EFF +7EFD +B711 +90C2 +210E +1FC0 +CDEB +0A61 +75FD +FD24 +2574 +6011 +DD00 +FE4E +0006 +7EDD +E6FA +6F0F +0960 +98CD +1112 +192E +EB19 +61CD +FD0A +5475 +74FD +C355 +0B6A +7EDD +E6FA +6F1F +0026 +1011 +1913 +7846 +FAB7 +0B6A +4EDD +CBFE +7821 +4781 +70DD +11FD +0060 +CB78 +6F2F +9F17 +CD67 +1298 +0011 +1919 +FDE5 +DDE1 +FC7E +07E6 +DD4F +FD46 +40CB +09CA +FD10 +5371 +0CC3 +FD10 +2371 +CE3A +B71F +17C2 +7910 +03E6 +CB4F +CA40 +1022 +71FD +C349 +0B6A +71FD +C319 +0B6A +E5DD +21DD +0000 +39DD +FDC5 +11E5 +1900 +003E +D201 +1206 +626B +ED13 +FDB0 +FF21 +0E00 +FD00 +D1E5 +A5CD +FD0A +012B +0020 +E5FD +B7E1 +42ED +45D2 +FD10 +FF21 +0E01 +FD00 +D1E5 +A5CD +FD0A +012B +0120 +E5FD +B7E1 +42ED +5FD2 +FD10 +0021 +1100 +0060 +E5FD +CDE1 +1298 +0011 +1919 +75DD +DDFE +FF74 +444D +1221 +0900 +0036 +1621 +0900 +FF36 +3623 +2101 +0042 +3609 +2100 +0046 +3609 +23FF +0136 +23FD +1201 +FD00 +E1E5 +EDB7 +DA42 +1079 +017B +0000 +79ED +017A +0001 +79ED +E1FD +F9DD +E1DD +DDC9 +DDE5 +0021 +DD00 +3B39 +71DD +43FF +E678 +6F03 +0026 +B7AF +F9C2 +7D10 +CAB7 +10FE +01FE +09CA +FE11 +CA02 +1116 +03FE +09CA +DD11 +DDF9 +C9E1 +6EDD +26FF +2200 +1FD0 +F9C3 +DD10 +FF4E +5BED +1FD0 +A5CD +C30A +10F9 +4EDD +3AFF +1FCE +CAB7 +1128 +2669 +CB00 +C3C4 +1103 +FE79 +6905 +0026 +23CA +C311 +1103 +E5DD +21DD +0000 +39DD +CD3B +1028 +0001 +ED00 +6F78 +03E6 +01FE +40C2 +0111 +0001 +78ED +77DD +7DFF +3FCB +3FCB +03E6 +DD5F +FF4E +CDCD +C310 +1140 +72CD +CD12 +1198 +8CC3 +D912 +D9E1 +79C1 +5FA3 +A278 +C157 +A579 +786F +67A4 +E5D9 +C9D9 +B778 +FEC8 +3821 +0602 +CB20 +CB3C +CB1D +CB1A +101B +C9F6 +E1D9 +C1D9 +B379 +785F +57B2 +79C1 +6FB5 +B478 +D967 +D9E5 +EBC9 +D9E3 +C1D1 +C1D9 +21E5 +0000 +21D9 +0000 +4879 +D5CD +7911 +D5CD +D911 +D979 +D5CD +D911 +D978 +D5CD +E511 +D1D9 +06C9 +CB08 +303F +1905 +EDD9 +D95A +29EB +D9EB +EDEB +EB6A +10D9 +C9EC +EFC3 +E111 +3AD9 +0080 +ED3C +6F44 +FF26 +F939 +0001 +C500 +8021 +4E00 +0006 +4109 +2AEB +0006 +010E +362B +0400 +FE1A +2020 +1B18 +F810 +1518 +FE1A +1B20 +0B20 +0CE5 +FE1A +2020 +1B03 +F818 +2BAF +1077 +EDEB +0F43 +2115 +150C +21E5 +0000 +D939 +D9E5 +78C9 +C8B7 +21FE +0238 +2006 +29EB +EDEB +106A +C9F9 +E5DD +21DD +0000 +39DD +DDC5 +FE73 +72DD +CDFF +12B7 +5EDD +DDFE +FF56 +B8CD +DD12 +DDF9 +C9E1 +235E +2356 +234E +E346 +E3C5 +D9C1 +C1E1 +E3D1 +E3C5 +E3C1 +C5E5 +D9D5 +C9C5 +C1E3 +2B70 +2B71 +2B72 +C573 +C9E1 +4A7B +21EB +0000 +0806 +ABCD +EB12 +0118 +1029 +EBFD +CB79 +303F +1901 +29EB +C8EB +F510 +C9C9 +CDD5 +12C3 +22E1 +0080 +00C3 +C900 +DDD1 +C1E5 +2309 +2323 +2B46 +2B4E +46C5 +4E2B +EBC5 +78E9 +C8B7 +10FE +0238 +1006 +1029 +C9FD +B778 +FEC8 +3810 +0602 +CB10 +CB3C +101D +C9FA +4800 +2D49 +4554 +4843 +4320 +5A20 +3038 +2E20 +4F43 +204D +6966 +656C +0A0D +0024 +0200 +0104 +0503 +FFFF +0806 +070A +0B09 +FFFF +0E0C +0D10 +110F +FFFF +FFFF +FFFF +FFFF +FFFF +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0800 +100C +1814 +201C +0000 +0000 +0C00 +1C14 +2820 +302C +3834 +403C +0000 +1400 +2C20 +3C34 +4840 +504C +5854 +605C +0000 +3420 +4C40 +5C54 +6860 +706C +7874 +807C +2000 +5440 +6C60 +7C74 +8880 +908C +9894 +A09C +4000 +7460 +8C80 +9C94 +A8A0 +B0AC +B8B4 +C0BC +6000 +9480 +ACA0 +BCB4 +C8C0 +D0CC +D8D4 +E0DC +011F +0002 +0800 +1810 +2820 +3830 +4840 +5850 +6860 +F870 +7070 +7070 +7070 +7070 +7070 +7070 +7070 +7070 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +0800 +1810 +2820 +3830 +4840 +5850 +6060 +6060 +6060 +6060 +6060 +6060 +6060 +6060 +6060 +6060 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0C0C +0C0C +0B0B +0B0B +0A0A +0A0A +0909 +0909 +0808 +0808 +0707 +0707 +0606 +0606 +0505 +0505 +0404 +0404 +0303 +0303 +0202 +0202 +0101 +0101 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0201 +0604 +0A08 +0E0C +1210 +1414 +1818 +1E1E +03DC +03DC +03DC +03F2 +03F2 +03F2 +040F +040F +040F +03DC +03DC +03DC +03F2 +03F2 +03F2 +080B +080B +080B +0873 +0873 +0873 +087F +087F +087F +080B +080B +080B +0873 +0873 +0873 +0930 +0930 +0930 +0A52 +0A52 +0A52 +09DF +09DF +09DF +0930 +0930 +0930 +0A52 +0A52 +0A52 +0DB1 +0DB1 +0DB1 +0EAA +0EAA +0EAA +0F8C +0F8C +0F8C +0DB1 +0DB1 +0DB1 +0EAA +0EAA +0EAA +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +CDCC +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 diff --git a/common/Sound/opl3/opl3seq.sv b/common/Sound/opl3/opl3seq.sv new file mode 100644 index 00000000..92da27d9 --- /dev/null +++ b/common/Sound/opl3/opl3seq.sv @@ -0,0 +1,482 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// +// This file is part of the Next186 Soc PC project +// http://opencores.org/project,next186 +// +// Filename: opl3seq.v +// Description: Part of the Next186 SoC PC project, OPL3 Sequencer +// Version 1.0 +// Creation date: 13:55:57 02/27/2017 +// +// Author: Nicolae Dumitrache +// e-mail: ndumitrache@opencores.org +// +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 Nicolae Dumitrache +// +// This source file may be used and distributed without +// restriction provided that this copyright statement is not +// removed from the file and that any derivative work contains +// the original copyright notice and the associated disclaimer. +// +// This source file is free software; you can redistribute it +// and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; +// either version 2.1 of the License, or (at your option) any +// later version. +// +// This source 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 Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General +// Public License along with this source; if not, download it +// from http://www.opencores.org/lgpl.shtml +// +/////////////////////////////////////////////////////////////////////////////////// +// Additional Comments: +// +// It shares OPL3 structure (~1.7KB DP RAM) with the main processor. It drives 36 operators at 44100Hz, with at least 45Mhz clock +/////////////////////////////////////////////////////////////////////////////////// + +// altera message_off 10030 + + +`define LFO_AM_TAB_ELEMENTS 210 +`define phase_modulation_o 0 // CH18 +`define panA_o 6'd4 // CH18 +`define panB_o 6'd8 // CH18 +`define lfo_am_depth_o 12 // CH18 +`define block_fnum_o 44 // SLOT0 +`define chanout_o 6'd46 // SLOT0 + +`define Cnt_o 6'd4 +`define Incr_o 6'd8 +`define op1_out_o 6'd12 +`define state_o 18 +`define AMmask_o 20 +`define volume_o 22 +`define FB_o 24 +`define mul_o 30 +`define sl_o 32 +`define vib_o 34 +`define connect_o 36 +`define eg_sh_ar_o 38 +`define eg_sh_dr_o 40 +`define eg_sh_rr_o 42 + +module opl3seq +( + input clk, + input reset, + input rd, // clk synchronous pulse, read only while == 1 + output reg [15:0] A, + output reg [15:0] B, + output reg ready, + output reg ram_wr, + output [11:0] ram_addr, + input [15:0] ram_rdata, + output reg [15:0] ram_wdata +); + +reg [13:0]lfo_am_cnt = 0; +reg [4:0]r_lfo_am_cnt = 0; +wire [13:0]lfo_am_cnt1 = lfo_am_cnt + 1'b1; +reg [9:0]lfo_pm_cnt = 0; +reg [4:0]LFO_AM; // unsigned +reg [3:0]LFO_PM = 0; // unsigned + +reg [5:0]STATE = 0; +reg [5:0]nextSTATE; +reg [5:0]RET; +reg [5:0]ram_offset; // OPL3Struct_base + (CHindex*96 + OPindex*48 + offset) +reg [4:0]ram_CHindex; +reg [4:0]s_ram_CHindex; +wire s_ram_CHindex17 = s_ram_CHindex == 17; +wire s_ram_CHindex18 = s_ram_CHindex == 18; +wire [4:0]s_ram_CHindex1 = s_ram_CHindex + 1'b1; +reg ram_OPindex; +reg s_ram_OPindex; +reg [15:0]ram_rdata_lo; +reg [15:0]eg_cnt = 0; +// reg [22:0]noise_rng = 1; +reg [9:0]env; +reg [12:0]sinaddr; +reg [12:0]r_sinaddr; +wire [12:0]op_calc1; +wire signed [15:0]op_calc = {{3{op_calc1[12]}}, op_calc1}; +reg [15:0]tmp1; +wire [13:0]outshift1 = $signed(tmp1[13:0]) >>> ram_rdata[3:0]; +wire [9:0]outshift = |ram_rdata[3:0] ? outshift1[9:0] : 10'b0000000000; +reg [17:0]pan; +reg signed [18:0]rAcc; +wire [15:0]limAcc = rAcc > 32767 ? 16'h7fff : rAcc < -32768 ? 16'h8000 : rAcc[15:0]; // (~|rAcc[18:15] | &rAcc[18:15]) ? rAcc[15:0] : {rAcc[18], {15{!rAcc[18]}}}; +reg [11:0]phmask;// = (1'b1 << ram_rdata[3:0]) - 1'b1; +wire phtest = ~|(eg_cnt & phmask); +reg cond; +wire [15:0]eg_inc1 = eg_cnt >> ram_rdata[3:0]; +wire [6:0]eg_inc = ram_rdata[14:8] + eg_inc1[2:0]; +reg [2:0]r_eg_inc; +wire [9:0]volume_attack1 = $signed(~ram_rdata[9:0]) >>> (~r_eg_inc[1:0]); +wire [9:0]volume_attack = {1'b0, ram_rdata[8:0]} + (r_eg_inc[2] ? 10'h000 : volume_attack1); +reg [9:0]r_volume; +wire [2:0]exp_r_eg_inc = 3'b1 << r_eg_inc; +wire [9:0]volume_dsr = ram_rdata[8:0] + exp_r_eg_inc; // new volume for decay/sustain/release +reg signed [3:0]lfo_fn_table_index_offset; +reg [11:0]inc_hi; +reg [15:0]inc_lo; +reg carry = 1'b0; +reg cy; +reg [2:0]phase; +wire [25:0]mul1 = tmp1[9:0] * ram_rdata_lo; + +// tmp1 adder +reg [3:0]tmp1op; +reg [15:0]tmp1op1; +reg [15:0]tmp1op2; + +// .addrb(OPL3Struct_offset + {1'b1, ram_CHindex, ram_OPindex, ram_offset[5:1]}) +assign ram_addr = (ram_OPindex ? 12'd24 : 12'd0) + {ram_CHindex + {ram_CHindex, ram_offset[5]}, ram_offset[4:1]}; + +wire [4:0] lfo_am_table [`LFO_AM_TAB_ELEMENTS] = '{ + 0,0,0,0,0,0,0, 1,1,1,1, 2,2,2,2, 3,3,3,3, 4,4,4,4, 5,5,5,5, 6,6,6,6, 7,7,7,7, 8,8,8,8, 9,9,9,9, 10,10,10,10, 11,11,11,11, 12,12,12,12, 13,13,13,13, 14,14,14,14, + 15,15,15,15, 16,16,16,16, 17,17,17,17, 18,18,18,18, 19,19,19,19, 20,20,20,20, 21,21,21,21, 22,22,22,22, 23,23,23,23, 24,24,24,24, 25,25,25,25, 26,26,26, 25,25,25,25, + 24,24,24,24, 23,23,23,23, 22,22,22,22, 21,21,21,21, 20,20,20,20, 19,19,19,19, 18,18,18,18, 17,17,17,17, 16,16,16,16, 15,15,15,15, 14,14,14,14, 13,13,13,13, 12,12,12,12, + 11,11,11,11, 10,10,10,10, 9,9,9,9, 8,8,8,8, 7,7,7,7, 6,6,6,6, 5,5,5,5, 4,4,4,4, 3,3,3,3, 2,2,2,2, 1,1,1,1 +}; + +wire signed [3:0]lfo_pm_table[128] = '{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,-1, 0, 0, 0, 1, 0, 0, 0,-1, 0, 0, 0, 2, 1, 0,-1,-2,-1, 0, 1, 1, 0, 0, 0,-1, 0, 0, 0, 3, 1, 0,-1,-3,-1, 0, 1, + 2, 1, 0,-1,-2,-1, 0, 1, 4, 2, 0,-2,-4,-2, 0, 2, 2, 1, 0,-1,-2,-1, 0, 1, 5, 2, 0,-2,-5,-2, 0, 2, 3, 1, 0,-1,-3,-1, 0, 1, 6, 3, 0,-3,-6,-3, 0, 3, 3, 1, 0,-1,-3,-1, 0, 1, 7, 3, 0,-3,-7,-3, 0, 3 +}; + +wire [2:0]eg_inc_tab[120] = '{ + 4,0, 4,0, 4,0, 4,0, 4,0, 4,0, 0,0, 4,0, 4,0, 0,0, 4,0, 0,0, 4,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,1, 0,0, 0,2, 0,1, 0,1, 0,1, 0,1, + 0,1, 1,1, 0,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,1, 1,2, 1,1, 1,2, 1,2, 1,2, 1,2, 1,2, 1,2, 2,2, 1,2, 2,2, 2,2, 2,2, 2,2, 2,2, 3,3, 3,3, 3,3, 3,3, 4,4, 4,4, 4,4, 4,4 +}; // log tablle, 4 = log(0) + + +sampler sampler_inst +( + .clk(clk), + .index(r_sinaddr), + .ampl(env[8:0]), + .sample(op_calc1) +); + +always @(posedge clk) begin + STATE <= nextSTATE; + s_ram_CHindex <= ram_CHindex; + s_ram_OPindex <= ram_OPindex; + r_sinaddr <= sinaddr; + r_lfo_am_cnt <= lfo_am_table[lfo_am_cnt[13:6]]; + ram_rdata_lo <= ram_rdata; + r_eg_inc <= eg_inc_tab[eg_inc]; + lfo_fn_table_index_offset <= lfo_pm_table[{ram_rdata[9:7], LFO_PM}]; //34 + {carry, tmp1} <= tmp1op1 + tmp1op2 + cy; + pan <= pan >> 1; + if(pan[0]) rAcc <= rAcc + {{3{ram_rdata[15]}}, ram_rdata}; + + if(reset) STATE <= 0; + else + case(STATE) + 0: begin + if(lfo_am_cnt1[13:6] == `LFO_AM_TAB_ELEMENTS) lfo_am_cnt <= 14'h0000; + else lfo_am_cnt <= lfo_am_cnt1; + {LFO_PM[2:0], lfo_pm_cnt} <= {LFO_PM[2:0], lfo_pm_cnt} + 1'b1; + eg_cnt <= eg_cnt + 1'b1; +// noise_rng <= {noise_rng[0], noise_rng[22:1]} ^ (noise_rng[0] ? 9'h181 : 9'h000); + end + 1: begin + LFO_AM <= r_lfo_am_cnt >> {!ram_rdata[0], 1'b0}; + LFO_PM[3] <= ram_rdata[11]; + RET <= 3; + end + 2: s_ram_CHindex <= s_ram_CHindex17 ? 5'd0 : s_ram_CHindex1; + 3: s_ram_CHindex <= s_ram_CHindex; + 7: RET <= 8; + 8: begin + s_ram_CHindex <= s_ram_CHindex; + RET <= 18; + end + 10: s_ram_OPindex <= 1'b1; + 13: env <= ram_rdata_lo[9:0] + ram_rdata[8:0] + (ram_rdata_lo[15] ? LFO_AM : 10'd0); // env = volume_calc(SLOT1); + 15: {s_ram_CHindex, s_ram_OPindex} <= {s_ram_CHindex, s_ram_OPindex}; + 17: {s_ram_CHindex, s_ram_OPindex} <= {s_ram_CHindex, s_ram_OPindex}; + 18: s_ram_CHindex <= s_ram_CHindex1; + 20: begin + pan <= {ram_rdata[1:0], ram_rdata_lo}; + s_ram_CHindex <= 1; + rAcc <= 0; + end + 21: s_ram_CHindex <= s_ram_CHindex18 ? s_ram_CHindex : s_ram_CHindex1; + 22: A <= limAcc; + 23: begin + pan <= {ram_rdata[1:0], ram_rdata_lo}; + s_ram_CHindex <= 1; + rAcc <= 0; + end + 24: s_ram_CHindex <= s_ram_CHindex18 ? 5'd0 : s_ram_CHindex1; + 25: B <= limAcc; + +// advance + 27: cond <= phtest; + 28: r_volume <= tmp1[2] ? volume_attack : volume_dsr; + 29: if(r_volume[9]) r_volume <= (tmp1[2:0] < 3) ? 10'd511 : 10'd0; + +// phase gen + 32: inc_lo <= ram_rdata; + 33: begin + inc_hi <= ram_rdata[11:0]; + s_ram_OPindex <= s_ram_OPindex; + end + 35: cond <= |lfo_fn_table_index_offset; + 36: if(cond && ram_rdata[0]) {inc_hi, inc_lo} <= {mul1, 2'b00} >> ~tmp1[12:10]; + 37,38: inc_lo <= {4'b0000, inc_hi}; + 39: begin + s_ram_OPindex <= !s_ram_OPindex; + if(s_ram_OPindex) s_ram_CHindex <= s_ram_CHindex1; + end + endcase +end + +always @(*) begin + ram_offset = 6'b000000; + ram_CHindex = s_ram_CHindex; + ram_OPindex = s_ram_OPindex; + ram_wdata = 16'h0000; + ram_wr = 1'b0; + nextSTATE = STATE + 1'b1; + sinaddr = r_sinaddr; + tmp1op = 4'b1111; // tmp1 <= tmp1, carry <= 0 + cy = 1'b0; + ready = 1'b0; + + case(STATE) + 0: begin + ram_offset = `lfo_am_depth_o; + ram_CHindex = 18; + ram_OPindex = 0; + end + 1: ram_CHindex = 0; + 2: begin + ram_offset = `chanout_o; + ram_wr = 1'b1; + nextSTATE = s_ram_CHindex17 ? 6'd3 : 6'd2; + end + +// chan_calc + 3: begin // chip.phase_modulation = 0; + ram_CHindex = 18; + ram_offset = `phase_modulation_o; + ram_wr = 1'b1; + end + 4: ram_offset = `op1_out_o; // op1_out[0] + 5: ram_offset = `op1_out_o+6'd2; // op1_out[1] + 6: begin + ram_offset = `FB_o; // read {FB, wavetable, x, x} + tmp1op = 4'b0000; // tmp1 <= ram_rdata + ram_rdata_lo; // out = SLOT1->op1_out[0] + SLOT1->op1_out[1]; + end + 7: begin // SLOT->op1_out[0] = SLOT->op1_out[1]; + ram_offset = `op1_out_o; + ram_wdata = ram_rdata_lo; + ram_wr = 1'b1; + sinaddr = {ram_rdata[10:8], outshift}; // wavetable, out>>FB + nextSTATE = 11; // call + end + + 8: begin + ram_CHindex = 18; + ram_offset = `phase_modulation_o; + end + 9: begin + ram_offset = `FB_o; // read {FB, wavetable, x, x} + ram_OPindex = 1; + end + 10: begin // SLOT->op1_out[1] = op_calc + ram_offset = `op1_out_o+6'd2; + ram_OPindex = 0; + ram_wdata = tmp1; + ram_wr = 1'b1; + sinaddr = {ram_rdata[10:8], ram_rdata_lo[9:0]}; // wavetable, phase_modulation + end + 11: ram_offset = `AMmask_o; // read {TLL, AMmask} + 12: ram_offset = `volume_o; // read volume[15:0] + 13: ram_offset = `Cnt_o+6'd2; + 14: begin + ram_offset = `connect_o; + sinaddr[9:0] = sinaddr[9:0] + ram_rdata[9:0]; + if(env >= 416) nextSTATE = RET; + end + 15: {ram_CHindex, ram_OPindex, ram_offset} = ram_rdata[11:0]; + 16: ram_offset = `connect_o; + 17: begin + {ram_CHindex, ram_OPindex, ram_offset} = ram_rdata[11:0]; + ram_wdata = ram_rdata_lo + op_calc;//tmp1; + ram_wr = 1'b1; + nextSTATE = RET; + tmp1op = 4'b1110; // tmp1 <= op_calc; + end + 18: begin + ram_offset = `panA_o; + ram_OPindex = 0; + ram_CHindex = 18; + nextSTATE = s_ram_CHindex17 ? 6'd19 : 6'd3; + end + + 19: ram_offset = `panA_o+6'd2; + 20: begin + ram_offset = `chanout_o; + ram_CHindex = 0; + end + 21: begin + ram_offset = s_ram_CHindex18 ? `panB_o : `chanout_o; + nextSTATE = s_ram_CHindex18 ? 6'd22 : 6'd21; + end + 22: ram_offset = `panB_o+6'd2; + 23: begin + ram_offset = `chanout_o; + ram_CHindex = 0; + end + 24: begin + ram_offset = `chanout_o; + nextSTATE = s_ram_CHindex18 ? 6'd25 : 6'd24; + end + +// envelope + 25: ram_offset = `state_o; + 26: begin + case(ram_rdata[2:0]) + 3'd1: ram_offset = `eg_sh_rr_o; // release phase + 3'd2: begin // sustain phase + ram_offset = `eg_sh_rr_o; + if(ram_rdata[8]) nextSTATE = 31; // if (!op->eg_type) + end + 3'd3: ram_offset = `eg_sh_dr_o; // decay phase + 3'd4: ram_offset = `eg_sh_ar_o; // attack phase + default: nextSTATE = 31; + endcase + tmp1op = 4'b1100; // tmp1 <= ram_rdata; // {eg_type, state} + end + + 27: ram_offset = `volume_o; + 28: ram_offset = `sl_o; + 29: begin + ram_offset = `state_o; + ram_wdata = tmp1; + case(tmp1[1:0]) + 2'b00: if(r_volume[9]) ram_wdata[2:0] = 3'd3; // attack + 2'b11: if(r_volume >= {1'b0, ram_rdata[8:0]}) ram_wdata[2:0] = 3'd2; // decay + 2'b10:; // sustain + 2'b01: if(r_volume[9]) ram_wdata[2:0] = 3'd0; // release + endcase + ram_wr = cond; + end + 30: begin + ram_offset = `volume_o; + ram_wdata[9:0] = r_volume; + ram_wr = cond; + end + +// phase gen + 31: ram_offset = `Incr_o; + 32: ram_offset = `Incr_o+6'd2; + + 33: begin + ram_offset = `block_fnum_o; + ram_OPindex = 0; + end + 34: ram_offset = `mul_o; + 35: begin + ram_offset = `vib_o; + tmp1op = 4'b0001; //tmp1 <= ram_rdata_lo + lfo_fn_table_index_offset; + end + 36: ram_offset = `Cnt_o; + 37: begin + ram_offset = `Cnt_o+6'd2; + tmp1op = 4'b0100; //{carry, tmp1} <= inc_lo + ram_rdata; + end + 38: begin + ram_offset = `Cnt_o; + ram_wdata = tmp1; + ram_wr = 1'b1; + tmp1op = 4'b0100; //{carry, tmp1} <= inc_lo + ram_rdata + carry; + cy = carry; + end + 39: begin + ram_offset = `Cnt_o+6'd2; + ram_wdata = tmp1; + ram_wr = 1'b1; + if(!(s_ram_CHindex17 && s_ram_OPindex)) nextSTATE = 6'd25; + end + + default: begin + ready = 1'b1; + nextSTATE = rd ? 6'd0 : 6'd40; + end + + endcase + + case(tmp1op[1:0]) + 2'b00: tmp1op1 = ram_rdata; + 2'b01: tmp1op1 = lfo_fn_table_index_offset; + 2'b10: tmp1op1 = op_calc; + 2'b11: tmp1op1 = tmp1; + endcase + + case(tmp1op[3:2]) + 2'b00: tmp1op2 = ram_rdata_lo; + 2'b01: tmp1op2 = inc_lo; + default: tmp1op2 = 16'h0000; + endcase + + case(ram_rdata[3:0]) // ((1 << ram_rdata[3:0]) - 1)[11:0] + 4'h0: phmask = 12'h000; + 4'h1: phmask = 12'h001; + 4'h2: phmask = 12'h003; + 4'h3: phmask = 12'h007; + 4'h4: phmask = 12'h00f; + 4'h5: phmask = 12'h01f; + 4'h6: phmask = 12'h03f; + 4'h7: phmask = 12'h07f; + 4'h8: phmask = 12'h0ff; + 4'h9: phmask = 12'h1ff; + 4'ha: phmask = 12'h3ff; + 4'hb: phmask = 12'h7ff; + default: phmask = 12'hfff; + endcase +end + +endmodule + +module sampler +( + input clk, + input [12:0] index, + input [8:0] ampl, + output [12:0] sample +); + +reg [15:0] sin_tab[8191:0]; +initial $readmemh("sin_tab_full.mem", sin_tab); + +reg [15:0] exp_tab[6655:0]; +initial $readmemh("exp_tab.mem", exp_tab); + +reg [15:0] logsin; +wire [13:0] ilog = logsin[13:0] + {ampl, 4'b0000}; +reg log_rng; +reg [15:0] isample; +assign sample = log_rng ? isample[12:0] : 13'd0; + +always @(posedge clk) begin + logsin <= sin_tab[index]; + log_rng <= ilog < 6656; + isample <= exp_tab[ilog[12:0]]; +end + +endmodule diff --git a/common/Sound/opl3/sin_tab_full.mem b/common/Sound/opl3/sin_tab_full.mem new file mode 100644 index 00000000..d588f082 --- /dev/null +++ b/common/Sound/opl3/sin_tab_full.mem @@ -0,0 +1,8192 @@ +10B2 +0D86 +0C0E +0B16 +0A5C +09C8 +094C +08E2 +0886 +0834 +07EA +07A6 +076A +0730 +06FC +06CA +069C +0672 +0648 +0622 +05FE +05DA +05B8 +059A +057A +055E +0540 +0526 +050C +04F2 +04DA +04C2 +04AC +0496 +0480 +046C +0458 +0444 +0430 +041E +040C +03FA +03EA +03D8 +03C8 +03B8 +03A8 +039A +038A +037C +036E +0360 +0352 +0344 +0336 +032A +031E +0310 +0304 +02F8 +02EE +02E2 +02D6 +02CC +02C0 +02B6 +02AA +02A0 +0296 +028C +0282 +0278 +026E +0266 +025C +0252 +024A +0242 +0238 +0230 +0228 +021E +0216 +020E +0206 +01FE +01F6 +01F0 +01E8 +01E0 +01D8 +01D2 +01CA +01C4 +01BC +01B6 +01AE +01A8 +01A2 +019A +0194 +018E +0188 +0182 +017C +0176 +0170 +016A +0164 +015E +0158 +0152 +014E +0148 +0142 +013E +0138 +0132 +012E +0128 +0124 +011E +011A +0114 +0110 +010C +0106 +0102 +00FE +00FA +00F4 +00F0 +00EC +00E8 +00E4 +00E0 +00DC +00D8 +00D4 +00D0 +00CC +00C8 +00C4 +00C0 +00BC +00B8 +00B6 +00B2 +00AE +00AA +00A6 +00A4 +00A0 +009C +009A +0096 +0094 +0090 +008C +008A +0086 +0084 +0080 +007E +007C +0078 +0076 +0072 +0070 +006E +006A +0068 +0066 +0062 +0060 +005E +005C +005A +0056 +0054 +0052 +0050 +004E +004C +004A +0048 +0046 +0044 +0042 +0040 +003E +003C +003A +0038 +0036 +0034 +0032 +0030 +002E +002E +002C +002A +0028 +0028 +0026 +0024 +0022 +0022 +0020 +001E +001E +001C +001A +001A +0018 +0018 +0016 +0014 +0014 +0012 +0012 +0010 +0010 +000E +000E +000E +000C +000C +000A +000A +000A +0008 +0008 +0008 +0006 +0006 +0006 +0004 +0004 +0004 +0004 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0004 +0004 +0004 +0004 +0006 +0006 +0006 +0008 +0008 +0008 +000A +000A +000A +000C +000C +000E +000E +000E +0010 +0010 +0012 +0012 +0014 +0014 +0016 +0018 +0018 +001A +001A +001C +001E +001E +0020 +0022 +0022 +0024 +0026 +0028 +0028 +002A +002C +002E +002E +0030 +0032 +0034 +0036 +0038 +003A +003C +003E +0040 +0042 +0044 +0046 +0048 +004A +004C +004E +0050 +0052 +0054 +0056 +005A +005C +005E +0060 +0062 +0066 +0068 +006A +006E +0070 +0072 +0076 +0078 +007C +007E +0080 +0084 +0086 +008A +008C +0090 +0094 +0096 +009A +009C +00A0 +00A4 +00A6 +00AA +00AE +00B2 +00B6 +00B8 +00BC +00C0 +00C4 +00C8 +00CC +00D0 +00D4 +00D8 +00DC +00E0 +00E4 +00E8 +00EC +00F0 +00F4 +00FA +00FE +0102 +0106 +010C +0110 +0114 +011A +011E +0124 +0128 +012E +0132 +0138 +013E +0142 +0148 +014E +0152 +0158 +015E +0164 +016A +0170 +0176 +017C +0182 +0188 +018E +0194 +019A +01A2 +01A8 +01AE +01B6 +01BC +01C4 +01CA +01D2 +01D8 +01E0 +01E8 +01F0 +01F6 +01FE +0206 +020E +0216 +021E +0228 +0230 +0238 +0242 +024A +0252 +025C +0266 +026E +0278 +0282 +028C +0296 +02A0 +02AA +02B6 +02C0 +02CC +02D6 +02E2 +02EE +02F8 +0304 +0310 +031E +032A +0336 +0344 +0352 +0360 +036E +037C +038A +039A +03A8 +03B8 +03C8 +03D8 +03EA +03FA +040C +041E +0430 +0444 +0458 +046C +0480 +0496 +04AC +04C2 +04DA +04F2 +050C +0526 +0540 +055E +057A +059A +05B8 +05DA +05FE +0622 +0648 +0672 +069C +06CA +06FC +0730 +076A +07A6 +07EA +0834 +0886 +08E2 +094C +09C8 +0A5C +0B16 +0C0E +0D86 +10B2 +10B3 +0D87 +0C0F +0B17 +0A5D +09C9 +094D +08E3 +0887 +0835 +07EB +07A7 +076B +0731 +06FD +06CD +069D +0673 +0649 +0623 +05FF +05DB +05B9 +059B +057B +055F +0541 +0527 +050D +04F3 +04DB +04C3 +04AD +0497 +0481 +046D +0459 +0445 +0431 +041F +040D +03FB +03EB +03D9 +03C9 +03B9 +03A9 +039B +038B +037D +036F +0361 +0353 +0345 +0337 +032B +031F +0311 +0305 +02F9 +02EF +02E3 +02D7 +02CD +02C1 +02B7 +02AB +02A1 +0297 +028D +0283 +0279 +026F +0267 +025D +0253 +024B +0243 +0239 +0231 +0229 +021F +0217 +020F +0207 +01FF +01F7 +01F1 +01E9 +01E1 +01D9 +01D3 +01CB +01C5 +01BD +01B7 +01AF +01A9 +01A3 +019B +0195 +018F +0189 +0183 +017D +0177 +0171 +016B +0165 +015F +0159 +0153 +014F +0149 +0143 +013F +0139 +0133 +012F +0129 +0125 +011F +011B +0115 +0111 +010D +0107 +0103 +00FF +00FB +00F5 +00F1 +00ED +00E9 +00E5 +00E1 +00DD +00D9 +00D5 +00D1 +00CD +00C9 +00C5 +00C1 +00BD +00B9 +00B7 +00B3 +00AF +00AB +00A7 +00A5 +00A1 +009D +009B +0097 +0095 +0091 +008D +008B +0087 +0085 +0081 +007F +007D +0079 +0077 +0073 +0071 +006F +006B +0069 +0067 +0063 +0061 +005F +005D +005B +0057 +0055 +0053 +0051 +004F +004D +004B +0049 +0047 +0045 +0043 +0041 +003F +003D +003B +0039 +0037 +0035 +0033 +0031 +002F +002F +002D +002B +0029 +0029 +0027 +0025 +0023 +0023 +0021 +001F +001F +001D +001B +001B +0019 +0019 +0017 +0015 +0015 +0013 +0013 +0011 +0011 +000F +000F +000F +000D +000D +000B +000B +000B +0009 +0009 +0009 +0007 +0007 +0007 +0005 +0005 +0005 +0005 +0003 +0003 +0003 +0003 +0003 +0003 +0003 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0003 +0003 +0003 +0003 +0003 +0003 +0003 +0005 +0005 +0005 +0005 +0007 +0007 +0007 +0009 +0009 +0009 +000B +000B +000B +000D +000D +000F +000F +000F +0011 +0011 +0013 +0013 +0015 +0015 +0017 +0019 +0019 +001B +001B +001D +001F +001F +0021 +0023 +0023 +0025 +0027 +0029 +0029 +002B +002D +002F +002F +0031 +0033 +0035 +0037 +0039 +003B +003D +003F +0041 +0043 +0045 +0047 +0049 +004B +004D +004F +0051 +0053 +0055 +0057 +005B +005D +005F +0061 +0063 +0067 +0069 +006B +006F +0071 +0073 +0077 +0079 +007D +007F +0081 +0085 +0087 +008B +008D +0091 +0095 +0097 +009B +009D +00A1 +00A5 +00A7 +00AB +00AF +00B3 +00B7 +00B9 +00BD +00C1 +00C5 +00C9 +00CD +00D1 +00D5 +00D9 +00DD +00E1 +00E5 +00E9 +00ED +00F1 +00F5 +00FB +00FF +0103 +0107 +010D +0111 +0115 +011B +011F +0125 +0129 +012F +0133 +0139 +013F +0143 +0149 +014F +0153 +0159 +015F +0165 +016B +0171 +0177 +017D +0183 +0189 +018F +0195 +019B +01A3 +01A9 +01AF +01B7 +01BD +01C5 +01CB +01D3 +01D9 +01E1 +01E9 +01F1 +01F7 +01FF +0207 +020F +0217 +021F +0229 +0231 +0239 +0243 +024B +0253 +025D +0267 +026F +0279 +0283 +028D +0297 +02A1 +02AB +02B7 +02C1 +02CD +02D7 +02E3 +02EF +02F9 +0305 +0311 +031F +032B +0337 +0345 +0353 +0361 +036F +037D +038B +039B +03A9 +03B9 +03C9 +03D9 +03EB +03FB +040D +041F +0431 +0445 +0459 +046D +0481 +0497 +04AD +04C3 +04DB +04F3 +050D +0527 +0541 +055F +057B +059B +05B9 +05DB +05FF +0623 +0649 +0673 +069D +06CB +06FD +0731 +076B +07A7 +07EB +0835 +0887 +08E3 +094D +09C9 +0A5D +0B17 +0C0F +0D87 +10B3 +10B2 +0D86 +0C0E +0B16 +0A5C +09C8 +094C +08E2 +0886 +0834 +07EA +07A6 +076A +0730 +06FC +06CA +069C +0672 +0648 +0622 +05FE +05DA +05B8 +059A +057A +055E +0540 +0526 +050C +04F2 +04DA +04C2 +04AC +0496 +0480 +046C +0458 +0444 +0430 +041E +040C +03FA +03EA +03D8 +03C8 +03B8 +03A8 +039A +038A +037C +036E +0360 +0352 +0344 +0336 +032A +031E +0310 +0304 +02F8 +02EE +02E2 +02D6 +02CC +02C0 +02B6 +02AA +02A0 +0296 +028C +0282 +0278 +026E +0266 +025C +0252 +024A +0242 +0238 +0230 +0228 +021E +0216 +020E +0206 +01FE +01F6 +01F0 +01E8 +01E0 +01D8 +01D2 +01CA +01C4 +01BC +01B6 +01AE +01A8 +01A2 +019A +0194 +018E +0188 +0182 +017C +0176 +0170 +016A +0164 +015E +0158 +0152 +014E +0148 +0142 +013E +0138 +0132 +012E +0128 +0124 +011E +011A +0114 +0110 +010C +0106 +0102 +00FE +00FA +00F4 +00F0 +00EC +00E8 +00E4 +00E0 +00DC +00D8 +00D4 +00D0 +00CC +00C8 +00C4 +00C0 +00BC +00B8 +00B6 +00B2 +00AE +00AA +00A6 +00A4 +00A0 +009C +009A +0096 +0094 +0090 +008C +008A +0086 +0084 +0080 +007E +007C +0078 +0076 +0072 +0070 +006E +006A +0068 +0066 +0062 +0060 +005E +005C +005A +0056 +0054 +0052 +0050 +004E +004C +004A +0048 +0046 +0044 +0042 +0040 +003E +003C +003A +0038 +0036 +0034 +0032 +0030 +002E +002E +002C +002A +0028 +0028 +0026 +0024 +0022 +0022 +0020 +001E +001E +001C +001A +001A +0018 +0018 +0016 +0014 +0014 +0012 +0012 +0010 +0010 +000E +000E +000E +000C +000C +000A +000A +000A +0008 +0008 +0008 +0006 +0006 +0006 +0004 +0004 +0004 +0004 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0004 +0004 +0004 +0004 +0006 +0006 +0006 +0008 +0008 +0008 +000A +000A +000A +000C +000C +000E +000E +000E +0010 +0010 +0012 +0012 +0014 +0014 +0016 +0018 +0018 +001A +001A +001C +001E +001E +0020 +0022 +0022 +0024 +0026 +0028 +0028 +002A +002C +002E +002E +0030 +0032 +0034 +0036 +0038 +003A +003C +003E +0040 +0042 +0044 +0046 +0048 +004A +004C +004E +0050 +0052 +0054 +0056 +005A +005C +005E +0060 +0062 +0066 +0068 +006A +006E +0070 +0072 +0076 +0078 +007C +007E +0080 +0084 +0086 +008A +008C +0090 +0094 +0096 +009A +009C +00A0 +00A4 +00A6 +00AA +00AE +00B2 +00B6 +00B8 +00BC +00C0 +00C4 +00C8 +00CC +00D0 +00D4 +00D8 +00DC +00E0 +00E4 +00E8 +00EC +00F0 +00F4 +00FA +00FE +0102 +0106 +010C +0110 +0114 +011A +011E +0124 +0128 +012E +0132 +0138 +013E +0142 +0148 +014E +0152 +0158 +015E +0164 +016A +0170 +0176 +017C +0182 +0188 +018E +0194 +019A +01A2 +01A8 +01AE +01B6 +01BC +01C4 +01CA +01D2 +01D8 +01E0 +01E8 +01F0 +01F6 +01FE +0206 +020E +0216 +021E +0228 +0230 +0238 +0242 +024A +0252 +025C +0266 +026E +0278 +0282 +028C +0296 +02A0 +02AA +02B6 +02C0 +02CC +02D6 +02E2 +02EE +02F8 +0304 +0310 +031E +032A +0336 +0344 +0352 +0360 +036E +037C +038A +039A +03A8 +03B8 +03C8 +03D8 +03EA +03FA +040C +041E +0430 +0444 +0458 +046C +0480 +0496 +04AC +04C2 +04DA +04F2 +050C +0526 +0540 +055E +057A +059A +05B8 +05DA +05FE +0622 +0648 +0672 +069C +06CA +06FC +0730 +076A +07A6 +07EA +0834 +0886 +08E2 +094C +09C8 +0A5C +0B16 +0C0E +0D86 +10B2 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +10B2 +0D86 +0C0E +0B16 +0A5C +09C8 +094C +08E2 +0886 +0834 +07EA +07A6 +076A +0730 +06FC +06CA +069C +0672 +0648 +0622 +05FE +05DA +05B8 +059A +057A +055E +0540 +0526 +050C +04F2 +04DA +04C2 +04AC +0496 +0480 +046C +0458 +0444 +0430 +041E +040C +03FA +03EA +03D8 +03C8 +03B8 +03A8 +039A +038A +037C +036E +0360 +0352 +0344 +0336 +032A +031E +0310 +0304 +02F8 +02EE +02E2 +02D6 +02CC +02C0 +02B6 +02AA +02A0 +0296 +028C +0282 +0278 +026E +0266 +025C +0252 +024A +0242 +0238 +0230 +0228 +021E +0216 +020E +0206 +01FE +01F6 +01F0 +01E8 +01E0 +01D8 +01D2 +01CA +01C4 +01BC +01B6 +01AE +01A8 +01A2 +019A +0194 +018E +0188 +0182 +017C +0176 +0170 +016A +0164 +015E +0158 +0152 +014E +0148 +0142 +013E +0138 +0132 +012E +0128 +0124 +011E +011A +0114 +0110 +010C +0106 +0102 +00FE +00FA +00F4 +00F0 +00EC +00E8 +00E4 +00E0 +00DC +00D8 +00D4 +00D0 +00CC +00C8 +00C4 +00C0 +00BC +00B8 +00B6 +00B2 +00AE +00AA +00A6 +00A4 +00A0 +009C +009A +0096 +0094 +0090 +008C +008A +0086 +0084 +0080 +007E +007C +0078 +0076 +0072 +0070 +006E +006A +0068 +0066 +0062 +0060 +005E +005C +005A +0056 +0054 +0052 +0050 +004E +004C +004A +0048 +0046 +0044 +0042 +0040 +003E +003C +003A +0038 +0036 +0034 +0032 +0030 +002E +002E +002C +002A +0028 +0028 +0026 +0024 +0022 +0022 +0020 +001E +001E +001C +001A +001A +0018 +0018 +0016 +0014 +0014 +0012 +0012 +0010 +0010 +000E +000E +000E +000C +000C +000A +000A +000A +0008 +0008 +0008 +0006 +0006 +0006 +0004 +0004 +0004 +0004 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0004 +0004 +0004 +0004 +0006 +0006 +0006 +0008 +0008 +0008 +000A +000A +000A +000C +000C +000E +000E +000E +0010 +0010 +0012 +0012 +0014 +0014 +0016 +0018 +0018 +001A +001A +001C +001E +001E +0020 +0022 +0022 +0024 +0026 +0028 +0028 +002A +002C +002E +002E +0030 +0032 +0034 +0036 +0038 +003A +003C +003E +0040 +0042 +0044 +0046 +0048 +004A +004C +004E +0050 +0052 +0054 +0056 +005A +005C +005E +0060 +0062 +0066 +0068 +006A +006E +0070 +0072 +0076 +0078 +007C +007E +0080 +0084 +0086 +008A +008C +0090 +0094 +0096 +009A +009C +00A0 +00A4 +00A6 +00AA +00AE +00B2 +00B6 +00B8 +00BC +00C0 +00C4 +00C8 +00CC +00D0 +00D4 +00D8 +00DC +00E0 +00E4 +00E8 +00EC +00F0 +00F4 +00FA +00FE +0102 +0106 +010C +0110 +0114 +011A +011E +0124 +0128 +012E +0132 +0138 +013E +0142 +0148 +014E +0152 +0158 +015E +0164 +016A +0170 +0176 +017C +0182 +0188 +018E +0194 +019A +01A2 +01A8 +01AE +01B6 +01BC +01C4 +01CA +01D2 +01D8 +01E0 +01E8 +01F0 +01F6 +01FE +0206 +020E +0216 +021E +0228 +0230 +0238 +0242 +024A +0252 +025C +0266 +026E +0278 +0282 +028C +0296 +02A0 +02AA +02B6 +02C0 +02CC +02D6 +02E2 +02EE +02F8 +0304 +0310 +031E +032A +0336 +0344 +0352 +0360 +036E +037C +038A +039A +03A8 +03B8 +03C8 +03D8 +03EA +03FA +040C +041E +0430 +0444 +0458 +046C +0480 +0496 +04AC +04C2 +04DA +04F2 +050C +0526 +0540 +055E +057A +059A +05B8 +05DA +05FE +0622 +0648 +0672 +069C +06CA +06FC +0730 +076A +07A6 +07EA +0834 +0886 +08E2 +094C +09C8 +0A5C +0B16 +0C0E +0D86 +10B2 +10B2 +0D86 +0C0E +0B16 +0A5C +09C8 +094C +08E2 +0886 +0834 +07EA +07A6 +076A +0730 +06FC +06CA +069C +0672 +0648 +0622 +05FE +05DA +05B8 +059A +057A +055E +0540 +0526 +050C +04F2 +04DA +04C2 +04AC +0496 +0480 +046C +0458 +0444 +0430 +041E +040C +03FA +03EA +03D8 +03C8 +03B8 +03A8 +039A +038A +037C +036E +0360 +0352 +0344 +0336 +032A +031E +0310 +0304 +02F8 +02EE +02E2 +02D6 +02CC +02C0 +02B6 +02AA +02A0 +0296 +028C +0282 +0278 +026E +0266 +025C +0252 +024A +0242 +0238 +0230 +0228 +021E +0216 +020E +0206 +01FE +01F6 +01F0 +01E8 +01E0 +01D8 +01D2 +01CA +01C4 +01BC +01B6 +01AE +01A8 +01A2 +019A +0194 +018E +0188 +0182 +017C +0176 +0170 +016A +0164 +015E +0158 +0152 +014E +0148 +0142 +013E +0138 +0132 +012E +0128 +0124 +011E +011A +0114 +0110 +010C +0106 +0102 +00FE +00FA +00F4 +00F0 +00EC +00E8 +00E4 +00E0 +00DC +00D8 +00D4 +00D0 +00CC +00C8 +00C4 +00C0 +00BC +00B8 +00B6 +00B2 +00AE +00AA +00A6 +00A4 +00A0 +009C +009A +0096 +0094 +0090 +008C +008A +0086 +0084 +0080 +007E +007C +0078 +0076 +0072 +0070 +006E +006A +0068 +0066 +0062 +0060 +005E +005C +005A +0056 +0054 +0052 +0050 +004E +004C +004A +0048 +0046 +0044 +0042 +0040 +003E +003C +003A +0038 +0036 +0034 +0032 +0030 +002E +002E +002C +002A +0028 +0028 +0026 +0024 +0022 +0022 +0020 +001E +001E +001C +001A +001A +0018 +0018 +0016 +0014 +0014 +0012 +0012 +0010 +0010 +000E +000E +000E +000C +000C +000A +000A +000A +0008 +0008 +0008 +0006 +0006 +0006 +0004 +0004 +0004 +0004 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0004 +0004 +0004 +0004 +0006 +0006 +0006 +0008 +0008 +0008 +000A +000A +000A +000C +000C +000E +000E +000E +0010 +0010 +0012 +0012 +0014 +0014 +0016 +0018 +0018 +001A +001A +001C +001E +001E +0020 +0022 +0022 +0024 +0026 +0028 +0028 +002A +002C +002E +002E +0030 +0032 +0034 +0036 +0038 +003A +003C +003E +0040 +0042 +0044 +0046 +0048 +004A +004C +004E +0050 +0052 +0054 +0056 +005A +005C +005E +0060 +0062 +0066 +0068 +006A +006E +0070 +0072 +0076 +0078 +007C +007E +0080 +0084 +0086 +008A +008C +0090 +0094 +0096 +009A +009C +00A0 +00A4 +00A6 +00AA +00AE +00B2 +00B6 +00B8 +00BC +00C0 +00C4 +00C8 +00CC +00D0 +00D4 +00D8 +00DC +00E0 +00E4 +00E8 +00EC +00F0 +00F4 +00FA +00FE +0102 +0106 +010C +0110 +0114 +011A +011E +0124 +0128 +012E +0132 +0138 +013E +0142 +0148 +014E +0152 +0158 +015E +0164 +016A +0170 +0176 +017C +0182 +0188 +018E +0194 +019A +01A2 +01A8 +01AE +01B6 +01BC +01C4 +01CA +01D2 +01D8 +01E0 +01E8 +01F0 +01F6 +01FE +0206 +020E +0216 +021E +0228 +0230 +0238 +0242 +024A +0252 +025C +0266 +026E +0278 +0282 +028C +0296 +02A0 +02AA +02B6 +02C0 +02CC +02D6 +02E2 +02EE +02F8 +0304 +0310 +031E +032A +0336 +0344 +0352 +0360 +036E +037C +038A +039A +03A8 +03B8 +03C8 +03D8 +03EA +03FA +040C +041E +0430 +0444 +0458 +046C +0480 +0496 +04AC +04C2 +04DA +04F2 +050C +0526 +0540 +055E +057A +059A +05B8 +05DA +05FE +0622 +0648 +0672 +069C +06CA +06FC +0730 +076A +07A6 +07EA +0834 +0886 +08E2 +094C +09C8 +0A5C +0B16 +0C0E +0D86 +10B2 +10B2 +0D86 +0C0E +0B16 +0A5C +09C8 +094C +08E2 +0886 +0834 +07EA +07A6 +076A +0730 +06FC +06CA +069C +0672 +0648 +0622 +05FE +05DA +05B8 +059A +057A +055E +0540 +0526 +050C +04F2 +04DA +04C2 +04AC +0496 +0480 +046C +0458 +0444 +0430 +041E +040C +03FA +03EA +03D8 +03C8 +03B8 +03A8 +039A +038A +037C +036E +0360 +0352 +0344 +0336 +032A +031E +0310 +0304 +02F8 +02EE +02E2 +02D6 +02CC +02C0 +02B6 +02AA +02A0 +0296 +028C +0282 +0278 +026E +0266 +025C +0252 +024A +0242 +0238 +0230 +0228 +021E +0216 +020E +0206 +01FE +01F6 +01F0 +01E8 +01E0 +01D8 +01D2 +01CA +01C4 +01BC +01B6 +01AE +01A8 +01A2 +019A +0194 +018E +0188 +0182 +017C +0176 +0170 +016A +0164 +015E +0158 +0152 +014E +0148 +0142 +013E +0138 +0132 +012E +0128 +0124 +011E +011A +0114 +0110 +010C +0106 +0102 +00FE +00FA +00F4 +00F0 +00EC +00E8 +00E4 +00E0 +00DC +00D8 +00D4 +00D0 +00CC +00C8 +00C4 +00C0 +00BC +00B8 +00B6 +00B2 +00AE +00AA +00A6 +00A4 +00A0 +009C +009A +0096 +0094 +0090 +008C +008A +0086 +0084 +0080 +007E +007C +0078 +0076 +0072 +0070 +006E +006A +0068 +0066 +0062 +0060 +005E +005C +005A +0056 +0054 +0052 +0050 +004E +004C +004A +0048 +0046 +0044 +0042 +0040 +003E +003C +003A +0038 +0036 +0034 +0032 +0030 +002E +002E +002C +002A +0028 +0028 +0026 +0024 +0022 +0022 +0020 +001E +001E +001C +001A +001A +0018 +0018 +0016 +0014 +0014 +0012 +0012 +0010 +0010 +000E +000E +000E +000C +000C +000A +000A +000A +0008 +0008 +0008 +0006 +0006 +0006 +0004 +0004 +0004 +0004 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +10B2 +0D86 +0C0E +0B16 +0A5C +09C8 +094C +08E2 +0886 +0834 +07EA +07A6 +076A +0730 +06FC +06CA +069C +0672 +0648 +0622 +05FE +05DA +05B8 +059A +057A +055E +0540 +0526 +050C +04F2 +04DA +04C2 +04AC +0496 +0480 +046C +0458 +0444 +0430 +041E +040C +03FA +03EA +03D8 +03C8 +03B8 +03A8 +039A +038A +037C +036E +0360 +0352 +0344 +0336 +032A +031E +0310 +0304 +02F8 +02EE +02E2 +02D6 +02CC +02C0 +02B6 +02AA +02A0 +0296 +028C +0282 +0278 +026E +0266 +025C +0252 +024A +0242 +0238 +0230 +0228 +021E +0216 +020E +0206 +01FE +01F6 +01F0 +01E8 +01E0 +01D8 +01D2 +01CA +01C4 +01BC +01B6 +01AE +01A8 +01A2 +019A +0194 +018E +0188 +0182 +017C +0176 +0170 +016A +0164 +015E +0158 +0152 +014E +0148 +0142 +013E +0138 +0132 +012E +0128 +0124 +011E +011A +0114 +0110 +010C +0106 +0102 +00FE +00FA +00F4 +00F0 +00EC +00E8 +00E4 +00E0 +00DC +00D8 +00D4 +00D0 +00CC +00C8 +00C4 +00C0 +00BC +00B8 +00B6 +00B2 +00AE +00AA +00A6 +00A4 +00A0 +009C +009A +0096 +0094 +0090 +008C +008A +0086 +0084 +0080 +007E +007C +0078 +0076 +0072 +0070 +006E +006A +0068 +0066 +0062 +0060 +005E +005C +005A +0056 +0054 +0052 +0050 +004E +004C +004A +0048 +0046 +0044 +0042 +0040 +003E +003C +003A +0038 +0036 +0034 +0032 +0030 +002E +002E +002C +002A +0028 +0028 +0026 +0024 +0022 +0022 +0020 +001E +001E +001C +001A +001A +0018 +0018 +0016 +0014 +0014 +0012 +0012 +0010 +0010 +000E +000E +000E +000C +000C +000A +000A +000A +0008 +0008 +0008 +0006 +0006 +0006 +0004 +0004 +0004 +0004 +0002 +0002 +0002 +0002 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +10B2 +0C0E +0A5C +094C +0886 +07EA +076A +06FC +069C +0648 +05FE +05B8 +057A +0540 +050C +04DA +04AC +0480 +0458 +0430 +040C +03EA +03C8 +03A8 +038A +036E +0352 +0336 +031E +0304 +02EE +02D6 +02C0 +02AA +0296 +0282 +026E +025C +024A +0238 +0228 +0216 +0206 +01F6 +01E8 +01D8 +01CA +01BC +01AE +01A2 +0194 +0188 +017C +0170 +0164 +0158 +014E +0142 +0138 +012E +0124 +011A +0110 +0106 +00FE +00F4 +00EC +00E4 +00DC +00D4 +00CC +00C4 +00BC +00B6 +00AE +00A6 +00A0 +009A +0094 +008C +0086 +0080 +007C +0076 +0070 +006A +0066 +0060 +005C +0056 +0052 +004E +004A +0046 +0042 +003E +003A +0036 +0032 +002E +002C +0028 +0026 +0022 +0020 +001E +001A +0018 +0016 +0014 +0012 +0010 +000E +000C +000A +000A +0008 +0006 +0006 +0004 +0004 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0002 +0002 +0002 +0002 +0004 +0004 +0006 +0008 +0008 +000A +000C +000E +000E +0010 +0012 +0014 +0018 +001A +001C +001E +0022 +0024 +0028 +002A +002E +0030 +0034 +0038 +003C +0040 +0044 +0048 +004C +0050 +0054 +005A +005E +0062 +0068 +006E +0072 +0078 +007E +0084 +008A +0090 +0096 +009C +00A4 +00AA +00B2 +00B8 +00C0 +00C8 +00D0 +00D8 +00E0 +00E8 +00F0 +00FA +0102 +010C +0114 +011E +0128 +0132 +013E +0148 +0152 +015E +016A +0176 +0182 +018E +019A +01A8 +01B6 +01C4 +01D2 +01E0 +01F0 +01FE +020E +021E +0230 +0242 +0252 +0266 +0278 +028C +02A0 +02B6 +02CC +02E2 +02F8 +0310 +032A +0344 +0360 +037C +039A +03B8 +03D8 +03FA +041E +0444 +046C +0496 +04C2 +04F2 +0526 +055E +059A +05DA +0622 +0672 +06CA +0730 +07A6 +0834 +08E2 +09C8 +0B16 +0D86 +10B3 +0C0F +0A5D +094D +0887 +07EB +076B +06FD +069D +0649 +05FF +05B9 +057B +0541 +050D +04DB +04AD +0481 +0459 +0431 +040D +03EB +03C9 +03A9 +038B +036F +0353 +0337 +031F +0305 +02EF +02D7 +02C1 +02AB +0297 +0283 +026F +025D +024B +0239 +0229 +0217 +0207 +01F7 +01E9 +01D9 +01CB +01BD +01AF +01A3 +0195 +0189 +017D +0171 +0165 +0159 +014F +0143 +0139 +012F +0125 +011B +0111 +0107 +00FF +00F5 +00ED +00E5 +00DD +00D5 +00CD +00C5 +00BD +00B7 +00AF +00A7 +00A1 +009B +0095 +008D +0087 +0081 +007D +0077 +0071 +006B +0067 +0061 +005D +0057 +0053 +004F +004B +0047 +0043 +003F +003B +0037 +0033 +002F +002D +0029 +0027 +0023 +0021 +001F +001B +0019 +0017 +0015 +0013 +0011 +000F +000D +000B +000B +0009 +0007 +0007 +0005 +0005 +0003 +0003 +0003 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0003 +0003 +0003 +0003 +0005 +0005 +0007 +0009 +0009 +000B +000D +000F +000F +0011 +0013 +0015 +0019 +001B +001D +001F +0023 +0025 +0029 +002B +002F +0031 +0035 +0039 +003D +0041 +0045 +0049 +004D +0051 +0055 +005B +005F +0063 +0069 +006F +0073 +0079 +007F +0085 +008B +0091 +0097 +009D +00A5 +00AB +00B3 +00B9 +00C1 +00C9 +00D1 +00D9 +00E1 +00E9 +00F1 +00FB +0103 +010D +0115 +011F +0129 +0133 +013F +0149 +0153 +015F +016B +0177 +0183 +018F +019B +01A9 +01B7 +01C5 +01D3 +01E1 +01F1 +01FF +020F +021F +0231 +0243 +0253 +0267 +0279 +028D +02A1 +02B7 +02CD +02E3 +02F9 +0311 +032B +0345 +0361 +037D +039B +03B9 +03D9 +03FB +041F +0445 +046D +0497 +04C3 +04F3 +0527 +055F +059B +05DB +0623 +0673 +06CB +0731 +07A7 +0835 +08E3 +09C9 +0B17 +0D87 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +10B2 +0C0E +0A5C +094C +0886 +07EA +076A +06FC +069C +0648 +05FE +05B8 +057A +0540 +050C +04DA +04AC +0480 +0458 +0430 +040C +03EA +03C8 +03A8 +038A +036E +0352 +0336 +031E +0304 +02EE +02D6 +02C0 +02AA +0296 +0282 +026E +025C +024A +0238 +0228 +0216 +0206 +01F6 +01E8 +01D8 +01CA +01BC +01AE +01A2 +0194 +0188 +017C +0170 +0164 +0158 +014E +0142 +0138 +012E +0124 +011A +0110 +0106 +00FE +00F4 +00EC +00E4 +00DC +00D4 +00CC +00C4 +00BC +00B6 +00AE +00A6 +00A0 +009A +0094 +008C +0086 +0080 +007C +0076 +0070 +006A +0066 +0060 +005C +0056 +0052 +004E +004A +0046 +0042 +003E +003A +0036 +0032 +002E +002C +0028 +0026 +0022 +0020 +001E +001A +0018 +0016 +0014 +0012 +0010 +000E +000C +000A +000A +0008 +0006 +0006 +0004 +0004 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0002 +0002 +0002 +0002 +0004 +0004 +0006 +0008 +0008 +000A +000C +000E +000E +0010 +0012 +0014 +0018 +001A +001C +001E +0022 +0024 +0028 +002A +002E +0030 +0034 +0038 +003C +0040 +0044 +0048 +004C +0050 +0054 +005A +005E +0062 +0068 +006E +0072 +0078 +007E +0084 +008A +0090 +0096 +009C +00A4 +00AA +00B2 +00B8 +00C0 +00C8 +00D0 +00D8 +00E0 +00E8 +00F0 +00FA +0102 +010C +0114 +011E +0128 +0132 +013E +0148 +0152 +015E +016A +0176 +0182 +018E +019A +01A8 +01B6 +01C4 +01D2 +01E0 +01F0 +01FE +020E +021E +0230 +0242 +0252 +0266 +0278 +028C +02A0 +02B6 +02CC +02E2 +02F8 +0310 +032A +0344 +0360 +037C +039A +03B8 +03D8 +03FA +041E +0444 +046C +0496 +04C2 +04F2 +0526 +055E +059A +05DA +0622 +0672 +06CA +0730 +07A6 +0834 +08E2 +09C8 +0B16 +0D86 +10B2 +0C0E +0A5C +094C +0886 +07EA +076A +06FC +069C +0648 +05FE +05B8 +057A +0540 +050C +04DA +04AC +0480 +0458 +0430 +040C +03EA +03C8 +03A8 +038A +036E +0352 +0336 +031E +0304 +02EE +02D6 +02C0 +02AA +0296 +0282 +026E +025C +024A +0238 +0228 +0216 +0206 +01F6 +01E8 +01D8 +01CA +01BC +01AE +01A2 +0194 +0188 +017C +0170 +0164 +0158 +014E +0142 +0138 +012E +0124 +011A +0110 +0106 +00FE +00F4 +00EC +00E4 +00DC +00D4 +00CC +00C4 +00BC +00B6 +00AE +00A6 +00A0 +009A +0094 +008C +0086 +0080 +007C +0076 +0070 +006A +0066 +0060 +005C +0056 +0052 +004E +004A +0046 +0042 +003E +003A +0036 +0032 +002E +002C +0028 +0026 +0022 +0020 +001E +001A +0018 +0016 +0014 +0012 +0010 +000E +000C +000A +000A +0008 +0006 +0006 +0004 +0004 +0002 +0002 +0002 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0002 +0002 +0002 +0002 +0004 +0004 +0006 +0008 +0008 +000A +000C +000E +000E +0010 +0012 +0014 +0018 +001A +001C +001E +0022 +0024 +0028 +002A +002E +0030 +0034 +0038 +003C +0040 +0044 +0048 +004C +0050 +0054 +005A +005E +0062 +0068 +006E +0072 +0078 +007E +0084 +008A +0090 +0096 +009C +00A4 +00AA +00B2 +00B8 +00C0 +00C8 +00D0 +00D8 +00E0 +00E8 +00F0 +00FA +0102 +010C +0114 +011E +0128 +0132 +013E +0148 +0152 +015E +016A +0176 +0182 +018E +019A +01A8 +01B6 +01C4 +01D2 +01E0 +01F0 +01FE +020E +021E +0230 +0242 +0252 +0266 +0278 +028C +02A0 +02B6 +02CC +02E2 +02F8 +0310 +032A +0344 +0360 +037C +039A +03B8 +03D8 +03FA +041E +0444 +046C +0496 +04C2 +04F2 +0526 +055E +059A +05DA +0622 +0672 +06CA +0730 +07A6 +0834 +08E2 +09C8 +0B16 +0D86 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0000 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0001 +0000 +0010 +0020 +0030 +0040 +0050 +0060 +0070 +0080 +0090 +00A0 +00B0 +00C0 +00D0 +00E0 +00F0 +0100 +0110 +0120 +0130 +0140 +0150 +0160 +0170 +0180 +0190 +01A0 +01B0 +01C0 +01D0 +01E0 +01F0 +0200 +0210 +0220 +0230 +0240 +0250 +0260 +0270 +0280 +0290 +02A0 +02B0 +02C0 +02D0 +02E0 +02F0 +0300 +0310 +0320 +0330 +0340 +0350 +0360 +0370 +0380 +0390 +03A0 +03B0 +03C0 +03D0 +03E0 +03F0 +0400 +0410 +0420 +0430 +0440 +0450 +0460 +0470 +0480 +0490 +04A0 +04B0 +04C0 +04D0 +04E0 +04F0 +0500 +0510 +0520 +0530 +0540 +0550 +0560 +0570 +0580 +0590 +05A0 +05B0 +05C0 +05D0 +05E0 +05F0 +0600 +0610 +0620 +0630 +0640 +0650 +0660 +0670 +0680 +0690 +06A0 +06B0 +06C0 +06D0 +06E0 +06F0 +0700 +0710 +0720 +0730 +0740 +0750 +0760 +0770 +0780 +0790 +07A0 +07B0 +07C0 +07D0 +07E0 +07F0 +0800 +0810 +0820 +0830 +0840 +0850 +0860 +0870 +0880 +0890 +08A0 +08B0 +08C0 +08D0 +08E0 +08F0 +0900 +0910 +0920 +0930 +0940 +0950 +0960 +0970 +0980 +0990 +09A0 +09B0 +09C0 +09D0 +09E0 +09F0 +0A00 +0A10 +0A20 +0A30 +0A40 +0A50 +0A60 +0A70 +0A80 +0A90 +0AA0 +0AB0 +0AC0 +0AD0 +0AE0 +0AF0 +0B00 +0B10 +0B20 +0B30 +0B40 +0B50 +0B60 +0B70 +0B80 +0B90 +0BA0 +0BB0 +0BC0 +0BD0 +0BE0 +0BF0 +0C00 +0C10 +0C20 +0C30 +0C40 +0C50 +0C60 +0C70 +0C80 +0C90 +0CA0 +0CB0 +0CC0 +0CD0 +0CE0 +0CF0 +0D00 +0D10 +0D20 +0D30 +0D40 +0D50 +0D60 +0D70 +0D80 +0D90 +0DA0 +0DB0 +0DC0 +0DD0 +0DE0 +0DF0 +0E00 +0E10 +0E20 +0E30 +0E40 +0E50 +0E60 +0E70 +0E80 +0E90 +0EA0 +0EB0 +0EC0 +0ED0 +0EE0 +0EF0 +0F00 +0F10 +0F20 +0F30 +0F40 +0F50 +0F60 +0F70 +0F80 +0F90 +0FA0 +0FB0 +0FC0 +0FD0 +0FE0 +0FF0 +1000 +1010 +1020 +1030 +1040 +1050 +1060 +1070 +1080 +1090 +10A0 +10B0 +10C0 +10D0 +10E0 +10F0 +1100 +1110 +1120 +1130 +1140 +1150 +1160 +1170 +1180 +1190 +11A0 +11B0 +11C0 +11D0 +11E0 +11F0 +1200 +1210 +1220 +1230 +1240 +1250 +1260 +1270 +1280 +1290 +12A0 +12B0 +12C0 +12D0 +12E0 +12F0 +1300 +1310 +1320 +1330 +1340 +1350 +1360 +1370 +1380 +1390 +13A0 +13B0 +13C0 +13D0 +13E0 +13F0 +1400 +1410 +1420 +1430 +1440 +1450 +1460 +1470 +1480 +1490 +14A0 +14B0 +14C0 +14D0 +14E0 +14F0 +1500 +1510 +1520 +1530 +1540 +1550 +1560 +1570 +1580 +1590 +15A0 +15B0 +15C0 +15D0 +15E0 +15F0 +1600 +1610 +1620 +1630 +1640 +1650 +1660 +1670 +1680 +1690 +16A0 +16B0 +16C0 +16D0 +16E0 +16F0 +1700 +1710 +1720 +1730 +1740 +1750 +1760 +1770 +1780 +1790 +17A0 +17B0 +17C0 +17D0 +17E0 +17F0 +1800 +1810 +1820 +1830 +1840 +1850 +1860 +1870 +1880 +1890 +18A0 +18B0 +18C0 +18D0 +18E0 +18F0 +1900 +1910 +1920 +1930 +1940 +1950 +1960 +1970 +1980 +1990 +19A0 +19B0 +19C0 +19D0 +19E0 +19F0 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +1A00 +19F1 +19E1 +19D1 +19C1 +19B1 +19A1 +1991 +1981 +1971 +1961 +1951 +1941 +1931 +1921 +1911 +1901 +18F1 +18E1 +18D1 +18C1 +18B1 +18A1 +1891 +1881 +1871 +1861 +1851 +1841 +1831 +1821 +1811 +1801 +17F1 +17E1 +17D1 +17C1 +17B1 +17A1 +1791 +1781 +1771 +1761 +1751 +1741 +1731 +1721 +1711 +1701 +16F1 +16E1 +16D1 +16C1 +16B1 +16A1 +1691 +1681 +1671 +1661 +1651 +1641 +1631 +1621 +1611 +1601 +15F1 +15E1 +15D1 +15C1 +15B1 +15A1 +1591 +1581 +1571 +1561 +1551 +1541 +1531 +1521 +1511 +1501 +14F1 +14E1 +14D1 +14C1 +14B1 +14A1 +1491 +1481 +1471 +1461 +1451 +1441 +1431 +1421 +1411 +1401 +13F1 +13E1 +13D1 +13C1 +13B1 +13A1 +1391 +1381 +1371 +1361 +1351 +1341 +1331 +1321 +1311 +1301 +12F1 +12E1 +12D1 +12C1 +12B1 +12A1 +1291 +1281 +1271 +1261 +1251 +1241 +1231 +1221 +1211 +1201 +11F1 +11E1 +11D1 +11C1 +11B1 +11A1 +1191 +1181 +1171 +1161 +1151 +1141 +1131 +1121 +1111 +1101 +10F1 +10E1 +10D1 +10C1 +10B1 +10A1 +1091 +1081 +1071 +1061 +1051 +1041 +1031 +1021 +1011 +1001 +0FF1 +0FE1 +0FD1 +0FC1 +0FB1 +0FA1 +0F91 +0F81 +0F71 +0F61 +0F51 +0F41 +0F31 +0F21 +0F11 +0F01 +0EF1 +0EE1 +0ED1 +0EC1 +0EB1 +0EA1 +0E91 +0E81 +0E71 +0E61 +0E51 +0E41 +0E31 +0E21 +0E11 +0E01 +0DF1 +0DE1 +0DD1 +0DC1 +0DB1 +0DA1 +0D91 +0D81 +0D71 +0D61 +0D51 +0D41 +0D31 +0D21 +0D11 +0D01 +0CF1 +0CE1 +0CD1 +0CC1 +0CB1 +0CA1 +0C91 +0C81 +0C71 +0C61 +0C51 +0C41 +0C31 +0C21 +0C11 +0C01 +0BF1 +0BE1 +0BD1 +0BC1 +0BB1 +0BA1 +0B91 +0B81 +0B71 +0B61 +0B51 +0B41 +0B31 +0B21 +0B11 +0B01 +0AF1 +0AE1 +0AD1 +0AC1 +0AB1 +0AA1 +0A91 +0A81 +0A71 +0A61 +0A51 +0A41 +0A31 +0A21 +0A11 +0A01 +09F1 +09E1 +09D1 +09C1 +09B1 +09A1 +0991 +0981 +0971 +0961 +0951 +0941 +0931 +0921 +0911 +0901 +08F1 +08E1 +08D1 +08C1 +08B1 +08A1 +0891 +0881 +0871 +0861 +0851 +0841 +0831 +0821 +0811 +0801 +07F1 +07E1 +07D1 +07C1 +07B1 +07A1 +0791 +0781 +0771 +0761 +0751 +0741 +0731 +0721 +0711 +0701 +06F1 +06E1 +06D1 +06C1 +06B1 +06A1 +0691 +0681 +0671 +0661 +0651 +0641 +0631 +0621 +0611 +0601 +05F1 +05E1 +05D1 +05C1 +05B1 +05A1 +0591 +0581 +0571 +0561 +0551 +0541 +0531 +0521 +0511 +0501 +04F1 +04E1 +04D1 +04C1 +04B1 +04A1 +0491 +0481 +0471 +0461 +0451 +0441 +0431 +0421 +0411 +0401 +03F1 +03E1 +03D1 +03C1 +03B1 +03A1 +0391 +0381 +0371 +0361 +0351 +0341 +0331 +0321 +0311 +0301 +02F1 +02E1 +02D1 +02C1 +02B1 +02A1 +0291 +0281 +0271 +0261 +0251 +0241 +0231 +0221 +0211 +0201 +01F1 +01E1 +01D1 +01C1 +01B1 +01A1 +0191 +0181 +0171 +0161 +0151 +0141 +0131 +0121 +0111 +0101 +00F1 +00E1 +00D1 +00C1 +00B1 +00A1 +0091 +0081 +0071 +0061 +0051 +0041 +0031 +0021 +0011 +0001 diff --git a/common/Sound/sn76489/pll_mist.qip b/common/Sound/sn76489/pll_mist.qip new file mode 100644 index 00000000..e69de29b diff --git a/common/Sound/sn76489/sn76489.qip b/common/Sound/sn76489/sn76489.qip new file mode 100644 index 00000000..e6903c6d --- /dev/null +++ b/common/Sound/sn76489/sn76489.qip @@ -0,0 +1,6 @@ +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) sn76489_top.vhd] +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) sn76489_attenuator.vhd] +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) sn76489_clock_div.vhd] +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) sn76489_latch_ctrl.vhd] +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) sn76489_noise.vhd] +set_global_assignment -name VHDL_FILE [file join $::quartus(qip_path) sn76489_tone.vhd]