From fb3354352be70781450ea70963c44d4b8f88ae9b Mon Sep 17 00:00:00 2001 From: Joseph Rahmeh Date: Mon, 19 Apr 2021 07:56:12 -0700 Subject: [PATCH] Branch 1.4 --- README.md | 11 +- configs/swerv.config | 17 +- design/dbg/el2_dbg.sv | 7 +- design/dec/csrdecode | 2 +- design/dec/decode | 163 +- design/dec/el2_dec_decode_ctl.sv | 347 +-- design/dec/el2_dec_tlu_ctl.sv | 16 +- design/el2_dma_ctrl.sv | 2 +- design/el2_pic_ctrl.sv | 64 +- design/exu/el2_exu_alu_ctl.sv | 129 +- design/exu/el2_exu_mul_ctl.sv | 226 +- design/flist | 43 + design/ifu/el2_ifu_aln_ctl.sv | 11 +- design/ifu/el2_ifu_bp_ctl.sv | 64 +- design/ifu/el2_ifu_ic_mem.sv | 2 +- design/ifu/el2_ifu_mem_ctl.sv | 2 +- design/include/el2_def.sv | 38 +- design/lsu/el2_lsu_bus_intf.sv | 8 +- release-notes.md | 23 +- testbench/asm/printf.c | 2 + testbench/dasm.svi | 267 +- testbench/hex/cmark_dccm.hex | 4155 ++++++++++++++--------------- testbench/hex/data.hex | 8 - testbench/hex/dhry.hex | 317 +++ testbench/hex/program.hex | 18 - testbench/tb_top.sv | 25 +- testbench/tests/Coremark/Makefile | 14 - testbench/tests/Coremark/cmark.c | 2167 --------------- testbench/tests/Coremark/printf.c | 262 -- testbench/tests/dhry/dhry_1.c | 24 +- testbench/tests/dhry/dhry_2.c | 6 +- tools/Makefile | 25 +- 32 files changed, 3237 insertions(+), 5228 deletions(-) create mode 100644 design/flist delete mode 100755 testbench/hex/data.hex create mode 100644 testbench/hex/dhry.hex delete mode 100644 testbench/hex/program.hex delete mode 100644 testbench/tests/Coremark/Makefile delete mode 100644 testbench/tests/Coremark/cmark.c delete mode 100644 testbench/tests/Coremark/printf.c diff --git a/README.md b/README.md index c381e76..55f84aa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # EL2 SweRV RISC-V CoreTM 1.3 from Western Digital -This repository contains the SweRV EL2 CoreTM design RTL +This repository contains the EL2 RISC-V SweRV CoreTM design RTL ## License @@ -53,7 +53,7 @@ For example to build with a DCCM of size 64 Kb: `% $RV_ROOT/configs/swerv.config -dccm_size=64` -This will update the **default** snapshot in $RV_ROOT/configs/snapshots/default/ with parameters for a 64K DCCM. +This will update the **default** snapshot in ./snapshots/default/ with parameters for a 64K DCCM. Add `-snapshot=dccm64`, for example, if you wish to name your build snapshot *dccm64* and refer to it during the build. @@ -70,7 +70,7 @@ target``typical_pd``.** This script derives the following consistent set of include files : - $RV_ROOT/configs/snapshots/default + ./snapshots/default ├── common_defines.vh # `defines for testbench or design ├── defines.h # #defines for C/assembly headers ├── el2_param.vh # Design parameters @@ -99,13 +99,10 @@ Example for csh or its derivatives: *(Name your snapshot to distinguish it from the default. Without an explicit name, it will update/override the __default__ snapshot)* For example if `mybuild` is the name for the snapshot: - set BUILD_PATH environment variable: - - `setenv BUILD_PATH snapshots/mybuild` `$RV_ROOT/configs/swerv.config [configuration options..] -snapshot=mybuild` - Snapshots are placed in `$BUILD_PATH` directory + Snapshots are placed in ./snapshots directory 1. Running a simple Hello World program (verilator) diff --git a/configs/swerv.config b/configs/swerv.config index d717517..d333ad5 100755 --- a/configs/swerv.config +++ b/configs/swerv.config @@ -37,7 +37,7 @@ my @verilog_vars = qw (xlen config_key reset_vec tec_rv_icg numiregs nmi_vec tar # Include these macros in assembly (pattern matched) my @asm_vars = qw (xlen reset_vec nmi_vec target dccm.* iccm.* pic.* memmap testbench.* protection.* core.*); -my @asm_overridable = qw (reset_vec nmi_vec) ; +my @asm_overridable = qw (reset_vec nmi_vec serialio external_data) ; # Include these macros in PD (pattern matched) my @pd_vars = qw (physical retstack target btb.* bht.* dccm.* iccm.* icache.* pic.* bus.* reset_vec nmi_vec build_ahb_lite datawidth ); @@ -308,9 +308,9 @@ my $div_new=1; # old or new div algorithm my $fpga_optimize = 1; # Default bitmanip options -my $bitmanip_zba = 0; +my $bitmanip_zba = 1; my $bitmanip_zbb = 1; -my $bitmanip_zbc = 0; +my $bitmanip_zbc = 1; my $bitmanip_zbe = 0; my $bitmanip_zbf = 0; my $bitmanip_zbp = 0; @@ -504,7 +504,7 @@ our %csr = (#{{{ "exists" => "true", }, "mimpid" => { - "reset" => "0x3", + "reset" => "0x4", "mask" => "0x0", "exists" => "true", }, @@ -904,7 +904,7 @@ our %config = (#{{{ "bitmanip_zbs" => $bitmanip_zbs, # Design Parm, Overridable "fast_interrupt_redirect" => "$fast_interrupt_redirect", # Design Parm, Overridable "lsu2dma" => $lsu2dma, # used by design/TB for LSU to DMA bridge - "fpga_optimize" => $fpga_optimize # Optimize fpga speed by removing clock gating + "fpga_optimize" => $fpga_optimize # Design Parm, Overridable }, "dccm" => { @@ -1986,7 +1986,6 @@ my $pddata=' `include "common_defines.vh" `undef RV_ASSERT_ON `undef TEC_RV_ICG -`define TEC_RV_ICG HDBLVT16_CKGTPLT_V5_12 `define RV_PHYSICAL 1 '; @@ -2595,8 +2594,10 @@ SECTIONS . = $io; .data.io . : { *(.data.io) } $data_loc - .data : ALIGN(0x800) { *(.*data) *(.rodata*) STACK = ALIGN(16) + 0x8000; } - .bss : { *(.bss) } + .data : ALIGN(0x800) { *(.*data) *(.rodata*)} + .bss : {BSS_START = .; *(.*bss)} + BSS_END = .; + STACK = ALIGN(16) + 0x1000; $iccm_ctl $dccm_ctl } diff --git a/design/dbg/el2_dbg.sv b/design/dbg/el2_dbg.sv index 09fdd12..f8b25a6 100644 --- a/design/dbg/el2_dbg.sv +++ b/design/dbg/el2_dbg.sv @@ -108,6 +108,7 @@ import el2_pkg::*; // general inputs input logic clk, + input logic free_clk, input logic rst_l, // This includes both top rst and debug rst input logic dbg_rst_l, input logic clk_override, @@ -247,6 +248,7 @@ import el2_pkg::*; logic [2:0] sb_axi_size; logic dbg_dm_rst_l; + logic rst_l_sync; //clken logic dbg_free_clken; @@ -271,6 +273,9 @@ import el2_pkg::*; assign dbg_dm_rst_l = dbg_rst_l & (dmcontrol_reg[0] | scan_mode); assign dbg_core_rst_l = ~dmcontrol_reg[1] | scan_mode; + // synchronize the rst + rvsyncss #(1) rstl_syncff (.din(rst_l), .dout(rst_l_sync), .clk(free_clk), .rst_l(dbg_rst_l)); + // system bus register // sbcs[31:29], sbcs - [22]:sbbusyerror, [21]: sbbusy, [20]:sbreadonaddr, [19:17]:sbaccess, [16]:sbautoincrement, [15]:sbreadondata, [14:12]:sberror, sbsize=32, 128=0, 64/32/16/8 are legal assign sbcs_reg[31:29] = 3'b1; @@ -362,7 +367,7 @@ import el2_pkg::*; assign dmstatus_haveresetn_wren = (dmi_reg_addr == 7'h10) & dmi_reg_wdata[28] & dmi_reg_en & dmi_reg_wr_en & dmcontrol_reg[0]; // clear the havereset assign dmstatus_havereset = ~dmstatus_haveresetn; - assign dmstatus_unavail = dmcontrol_reg[1] | ~rst_l; + assign dmstatus_unavail = dmcontrol_reg[1] | ~rst_l_sync; assign dmstatus_running = ~(dmstatus_unavail | dmstatus_halted); rvdffs #(1) dmstatus_resumeack_reg (.din(dmstatus_resumeack_din), .dout(dmstatus_resumeack), .en(dmstatus_resumeack_wren), .rst_l(dbg_dm_rst_l), .clk(dbg_free_clk)); diff --git a/design/dec/csrdecode b/design/dec/csrdecode index b43c79b..3b80870 100644 --- a/design/dec/csrdecode +++ b/design/dec/csrdecode @@ -214,7 +214,7 @@ csr[ csr_mfdc ] = { csr_mfdc presync postsync } csr[ csr_dcsr ] = { csr_dcsr } csr[ csr_dpc ] = { csr_dpc } csr[ csr_mtsel ] = { csr_mtsel } -csr[ csr_mtdata1 ] = { csr_mtdata1 postsync } +csr[ csr_mtdata1 ] = { csr_mtdata1 presync postsync } csr[ csr_mtdata2 ] = { csr_mtdata2 postsync } csr[ csr_mhpmc3 ] = { csr_mhpmc3 presync } csr[ csr_mhpmc4 ] = { csr_mhpmc4 presync } diff --git a/design/dec/decode b/design/dec/decode index b9e98c8..c4aca83 100644 --- a/design/dec/decode +++ b/design/dec/decode @@ -3,23 +3,53 @@ clz = [011000000000.....001.....0010011] ctz = [011000000001.....001.....0010011] -pcnt = [011000000010.....001.....0010011] +cpop = [011000000010.....001.....0010011] sext_b = [011000000100.....001.....0010011] sext_h = [011000000101.....001.....0010011] -slo = [0010000..........001.....0110011] -sro = [0010000..........101.....0110011] -sloi = [0010000..........001.....0010011] -sroi = [0010000..........101.....0010011] min = [0000101..........100.....0110011] -max = [0000101..........101.....0110011] -minu = [0000101..........110.....0110011] +max = [0000101..........110.....0110011] +minu = [0000101..........101.....0110011] maxu = [0000101..........111.....0110011] andn = [0100000..........111.....0110011] orn = [0100000..........110.....0110011] xnor = [0100000..........100.....0110011] -pack = [0000100..........100.....0110011] + +#pack = [0000100..........100.....0110011] +zext_h = [000010000000.....100.....0110011] +pack1 = [000010000001.....100.....0110011] +pack2 = [000010000010.....100.....0110011] +pack3 = [000010000011.....100.....0110011] +pack4 = [000010000100.....100.....0110011] +pack5 = [000010000101.....100.....0110011] +pack6 = [000010000110.....100.....0110011] +pack7 = [000010000111.....100.....0110011] +pack8 = [000010001000.....100.....0110011] +pack9 = [000010001001.....100.....0110011] +pack10 = [000010001010.....100.....0110011] +pack11 = [000010001011.....100.....0110011] +pack12 = [000010001100.....100.....0110011] +pack13 = [000010001101.....100.....0110011] +pack14 = [000010001110.....100.....0110011] +pack15 = [000010001111.....100.....0110011] +pack16 = [000010010000.....100.....0110011] +pack17 = [000010010001.....100.....0110011] +pack18 = [000010010010.....100.....0110011] +pack19 = [000010010011.....100.....0110011] +pack20 = [000010010100.....100.....0110011] +pack21 = [000010010101.....100.....0110011] +pack22 = [000010010110.....100.....0110011] +pack23 = [000010010111.....100.....0110011] +pack24 = [000010011000.....100.....0110011] +pack25 = [000010011001.....100.....0110011] +pack26 = [000010011010.....100.....0110011] +pack27 = [000010011011.....100.....0110011] +pack28 = [000010011100.....100.....0110011] +pack29 = [000010011101.....100.....0110011] +pack30 = [000010011110.....100.....0110011] +pack31 = [000010011111.....100.....0110011] + packu = [0100100..........100.....0110011] packh = [0000100..........111.....0110011] rol = [0110000..........001.....0110011] @@ -30,28 +60,28 @@ sh1add = [0010000..........010.....0110011] sh2add = [0010000..........100.....0110011] sh3add = [0010000..........110.....0110011] -sbset = [0010100..........001.....0110011] -sbclr = [0100100..........001.....0110011] -sbinv = [0110100..........001.....0110011] -sbext = [0100100..........101.....0110011] +bset = [0010100..........001.....0110011] +bclr = [0100100..........001.....0110011] +binv = [0110100..........001.....0110011] +bext = [0100100..........101.....0110011] -sbseti = [0010100..........001.....0010011] -sbclri = [0100100..........001.....0010011] -sbinvi = [0110100..........001.....0010011] -sbexti = [0100100..........101.....0010011] +bseti = [0010100..........001.....0010011] +bclri = [0100100..........001.....0010011] +binvi = [0110100..........001.....0010011] +bexti = [0100100..........101.....0010011] grev = [0110100..........101.....0110011] #grevi = [01101............101.....0010011] -grevi0 = [011010000000.....101.....0010011] -grevi1 = [011010000001.....101.....0010011] -grevi2 = [011010000010.....101.....0010011] -grevi3 = [011010000011.....101.....0010011] -grevi4 = [011010000100.....101.....0010011] -grevi5 = [011010000101.....101.....0010011] -grevi6 = [011010000110.....101.....0010011] -grevi7 = [011010000111.....101.....0010011] -grevi8 = [011010001000.....101.....0010011] -grevi9 = [011010001001.....101.....0010011] +grevi0 = [011010000000.....101.....0010011] +grevi1 = [011010000001.....101.....0010011] +grevi2 = [011010000010.....101.....0010011] +grevi3 = [011010000011.....101.....0010011] +grevi4 = [011010000100.....101.....0010011] +grevi5 = [011010000101.....101.....0010011] +grevi6 = [011010000110.....101.....0010011] +grevi7 = [011010000111.....101.....0010011] +grevi8 = [011010001000.....101.....0010011] +grevi9 = [011010001001.....101.....0010011] grevi10 = [011010001010.....101.....0010011] grevi11 = [011010001011.....101.....0010011] grevi12 = [011010001100.....101.....0010011] @@ -74,8 +104,7 @@ grevi27 = [011010011011.....101.....0010011] grevi28 = [011010011100.....101.....0010011] grevi29 = [011010011101.....101.....0010011] grevi30 = [011010011110.....101.....0010011] -#grevi31 = [011010011111.....101.....0010011] # REV -rev = [011010011111.....101.....0010011] +grevi31 = [011010011111.....101.....0010011] gorc = [0010100..........101.....0110011] #gorci = [00101............101.....0010011] @@ -96,8 +125,7 @@ gorci12 = [001010001100.....101.....0010011] gorci13 = [001010001101.....101.....0010011] gorci14 = [001010001110.....101.....0010011] gorci15 = [001010001111.....101.....0010011] -#gorci16 = [001010010000.....101.....0010011] # ORC16 -orc16 = [001010010000.....101.....0010011] +gorci16 = [001010010000.....101.....0010011] gorci17 = [001010010001.....101.....0010011] gorci18 = [001010010010.....101.....0010011] gorci19 = [001010010011.....101.....0010011] @@ -121,8 +149,8 @@ shfli = [00001000.........001.....0010011] unshfl = [0000100..........101.....0110011] unshfli = [00001000.........101.....0010011] -bdep = [0100100..........110.....0110011] -bext = [0000100..........110.....0110011] +bdecompress = [0100100..........110.....0110011] +bcompress = [0000100..........110.....0110011] clmul = [0000101..........001.....0110011] clmulr = [0000101..........010.....0110011] @@ -137,6 +165,11 @@ crc32c_w = [011000011010.....001.....0010011] bfp = [0100100..........111.....0110011] +xperm_n = [0010100..........010.....0110011] +xperm_b = [0010100..........100.....0110011] +xperm_h = [0010100..........110.....0110011] + + @@ -348,11 +381,9 @@ rv32i = { fence_i clz ctz - pcnt + cpop sext_b sext_h - slo - sro min max pack @@ -361,13 +392,13 @@ rv32i = { rol ror zbb - sbset - sbclr - sbinv - sbext - zbs + bset + bclr + binv bext - bdep + zbs + bcompress + bdecompress zbe clmul clmulh @@ -377,6 +408,9 @@ rv32i = { gorc shfl unshfl + xperm_n + xperm_b + xperm_h zbp crc32_b crc32_h @@ -398,13 +432,9 @@ rv32i = { rv32i[clz] = { alu zbb rs1 rd clz } rv32i[ctz] = { alu zbb rs1 rd ctz } -rv32i[pcnt] = { alu zbb rs1 rd pcnt } +rv32i[cpop] = { alu zbb rs1 rd cpop } rv32i[sext_b] = { alu zbb rs1 rd sext_b} rv32i[sext_h] = { alu zbb rs1 rd sext_h} -rv32i[slo] = { alu zbp rs1 rs2 rd slo } -rv32i[sro] = { alu zbp rs1 rs2 rd sro } -rv32i[sloi] = { alu zbp rs1 rd shimm5 slo } -rv32i[sroi] = { alu zbp rs1 rd shimm5 sro } rv32i[min] = { alu zbb rs1 rs2 rd sub min } rv32i[max] = { alu zbb rs1 rs2 rd sub max } rv32i[minu] = { alu zbb rs1 rs2 rd unsign sub min } @@ -412,30 +442,33 @@ rv32i[maxu] = { alu zbb rs1 rs2 rd unsign sub max } rv32i[andn] = { alu zbb zbp rs1 rs2 rd land } rv32i[orn] = { alu zbb zbp rs1 rs2 rd lor } rv32i[xnor] = { alu zbb zbp rs1 rs2 rd lxor } -rv32i[pack] = { alu zbb zbp rs1 rs2 rd pack } -rv32i[packu] = { alu zbb zbp rs1 rs2 rd packu } -rv32i[packh] = { alu zbb zbp rs1 rs2 rd packh } +rv32i[packu] = { alu zbp rs1 rs2 rd packu } +rv32i[packh] = { alu zbp rs1 rs2 rd packh zbe zbf} rv32i[rol] = { alu zbb zbp rs1 rs2 rd rol } rv32i[ror] = { alu zbb zbp rs1 rs2 rd ror } rv32i[rori] = { alu zbb zbp rs1 rd shimm5 ror } -rv32i[sbset] = { alu zbs rs1 rs2 rd sbset } -rv32i[sbclr] = { alu zbs rs1 rs2 rd sbclr } -rv32i[sbinv] = { alu zbs rs1 rs2 rd sbinv } -rv32i[sbext] = { alu zbs rs1 rs2 rd sbext } -rv32i[sbseti] = { alu zbs rs1 rd shimm5 sbset } -rv32i[sbclri] = { alu zbs rs1 rd shimm5 sbclr } -rv32i[sbinvi] = { alu zbs rs1 rd shimm5 sbinv } -rv32i[sbexti] = { alu zbs rs1 rd shimm5 sbext } +rv32i[bset] = { alu zbs rs1 rs2 rd bset } +rv32i[bclr] = { alu zbs rs1 rs2 rd bclr } +rv32i[binv] = { alu zbs rs1 rs2 rd binv } +rv32i[bext] = { alu zbs rs1 rs2 rd bext } +rv32i[bseti] = { alu zbs rs1 rd shimm5 bset } +rv32i[bclri] = { alu zbs rs1 rd shimm5 bclr } +rv32i[binvi] = { alu zbs rs1 rd shimm5 binv } +rv32i[bexti] = { alu zbs rs1 rd shimm5 bext } rv32i[sh1add] = { alu zba rs1 rs2 rd sh1add} rv32i[sh2add] = { alu zba rs1 rs2 rd sh2add} rv32i[sh3add] = { alu zba rs1 rs2 rd sh3add} +#v32i[pack] = { alu zbp rs1 rs2 rd pack zbe zbf} +rv32i[zext_h] = { alu zbb zbp rs1 rs2 rd pack zbe zbf} # pack with rs2=x0 +rv32i[pack{1-31}]= { alu zbp rs1 rs2 rd pack zbe zbf} + rv32i[mul] = { mul rs1 rs2 rd low } rv32i[mulh] = { mul rs1 rs2 rd rs1_sign rs2_sign } rv32i[mulhu] = { mul rs1 rs2 rd } rv32i[mulhsu] = { mul rs1 rs2 rd rs1_sign } -rv32i[bext] = { mul zbe rs1 rs2 rd bext } -rv32i[bdep] = { mul zbe rs1 rs2 rd bdep } +rv32i[bcompress] = { mul zbe rs1 rs2 rd bcompress } +rv32i[bdecompress] = { mul zbe rs1 rs2 rd bdecompress } rv32i[clmul] = { mul zbc rs1 rs2 rd clmul } rv32i[clmulh] = { mul zbc rs1 rs2 rd clmulh} rv32i[clmulr] = { mul zbc rs1 rs2 rd clmulr} @@ -452,19 +485,16 @@ rv32i[bfp] = { mul zbf rs1 rs2 rd bfp } rv32i[grev] = { mul zbp rs1 rs2 rd grev } rv32i[grevi{0-23}] = { mul zbp rs1 rd shimm5 grev } -rv32i[grevi{25-30}] = { mul zbp rs1 rd shimm5 grev } +rv32i[grevi{25-31}] = { mul zbp rs1 rd shimm5 grev } rv32i[rev8] = { alu zbb zbp rs1 rd shimm5 grev } # grevi24 -rv32i[rev] = { alu zbb zbp rs1 rd shimm5 grev } # grevi31 rv32i[gorc] = { mul zbp rs1 rs2 rd gorc } rv32i[gorci{0-6}] = { mul zbp rs1 rd shimm5 gorc } -rv32i[gorci{8-15}] = { mul zbp rs1 rd shimm5 gorc } -rv32i[gorci{17-31}] = { mul zbp rs1 rd shimm5 gorc } +rv32i[gorci{8-31}] = { mul zbp rs1 rd shimm5 gorc } rv32i[orc_b] = { alu zbb zbp rs1 rd shimm5 gorc } # gorci7 -rv32i[orc16] = { alu zbb zbp rs1 rd shimm5 gorc } # gorci16 rv32i[shfl] = { mul zbp rs1 rs2 rd shfl } @@ -473,6 +503,11 @@ rv32i[shfli] = { mul zbp rs1 rd shimm5 shfl } rv32i[unshfl] = { mul zbp rs1 rs2 rd unshfl} rv32i[unshfli] = { mul zbp rs1 rd shimm5 unshfl} +rv32i[xperm_n] = { mul zbp rs1 rs2 rd xperm_n} +rv32i[xperm_b] = { mul zbp rs1 rs2 rd xperm_b} +rv32i[xperm_h] = { mul zbp rs1 rs2 rd xperm_h} + + rv32i[div] = { div rs1 rs2 rd } rv32i[divu] = { div rs1 rs2 rd unsign } diff --git a/design/dec/el2_dec_decode_ctl.sv b/design/dec/el2_dec_decode_ctl.sv index 7d71917..255e320 100644 --- a/design/dec/el2_dec_decode_ctl.sv +++ b/design/dec/el2_dec_decode_ctl.sv @@ -371,6 +371,8 @@ import el2_pkg::*; logic bitmanip_zbf_legal; logic bitmanip_zba_legal; logic bitmanip_zbb_zbp_legal; + logic bitmanip_zbp_zbe_zbf_legal; + logic bitmanip_zbb_zbp_zbe_zbf_legal; logic bitmanip_legal; logic data_gate_en; @@ -563,15 +565,13 @@ end // else: !if(pt.BTB_ENABLE==1) assign i0_ap.clz = i0_dp.clz; assign i0_ap.ctz = i0_dp.ctz; - assign i0_ap.pcnt = i0_dp.pcnt; + assign i0_ap.cpop = i0_dp.cpop; assign i0_ap.sext_b = i0_dp.sext_b; assign i0_ap.sext_h = i0_dp.sext_h; assign i0_ap.sh1add = i0_dp.sh1add; assign i0_ap.sh2add = i0_dp.sh2add; assign i0_ap.sh3add = i0_dp.sh3add; assign i0_ap.zba = i0_dp.zba; - assign i0_ap.slo = i0_dp.slo; - assign i0_ap.sro = i0_dp.sro; assign i0_ap.min = i0_dp.min; assign i0_ap.max = i0_dp.max; assign i0_ap.pack = i0_dp.pack; @@ -582,10 +582,10 @@ end // else: !if(pt.BTB_ENABLE==1) assign i0_ap.grev = i0_dp.grev; assign i0_ap.gorc = i0_dp.gorc; assign i0_ap.zbb = i0_dp.zbb; - assign i0_ap.sbset = i0_dp.sbset; - assign i0_ap.sbclr = i0_dp.sbclr; - assign i0_ap.sbinv = i0_dp.sbinv; - assign i0_ap.sbext = i0_dp.sbext; + assign i0_ap.bset = i0_dp.bset; + assign i0_ap.bclr = i0_dp.bclr; + assign i0_ap.binv = i0_dp.binv; + assign i0_ap.bext = i0_dp.bext; assign i0_ap.csr_write = i0_csr_write_only_d; assign i0_ap.csr_imm = i0_dp.csr_imm; @@ -831,25 +831,29 @@ end : cam_array assign mul_p.valid = mul_decode_d; - assign mul_p.rs1_sign = i0_dp.rs1_sign; - assign mul_p.rs2_sign = i0_dp.rs2_sign; - assign mul_p.low = i0_dp.low; - assign mul_p.bext = i0_dp.bext; - assign mul_p.bdep = i0_dp.bdep; - assign mul_p.clmul = i0_dp.clmul; - assign mul_p.clmulh = i0_dp.clmulh; - assign mul_p.clmulr = i0_dp.clmulr; - assign mul_p.grev = i0_dp.grev; - assign mul_p.gorc = i0_dp.gorc; - assign mul_p.shfl = i0_dp.shfl; - assign mul_p.unshfl = i0_dp.unshfl; - assign mul_p.crc32_b = i0_dp.crc32_b; - assign mul_p.crc32_h = i0_dp.crc32_h; - assign mul_p.crc32_w = i0_dp.crc32_w; - assign mul_p.crc32c_b = i0_dp.crc32c_b; - assign mul_p.crc32c_h = i0_dp.crc32c_h; - assign mul_p.crc32c_w = i0_dp.crc32c_w; - assign mul_p.bfp = i0_dp.bfp; + assign mul_p.rs1_sign = i0_dp.rs1_sign; + assign mul_p.rs2_sign = i0_dp.rs2_sign; + assign mul_p.low = i0_dp.low; + assign mul_p.bcompress = i0_dp.bcompress; + assign mul_p.bdecompress = i0_dp.bdecompress; + assign mul_p.clmul = i0_dp.clmul; + assign mul_p.clmulh = i0_dp.clmulh; + assign mul_p.clmulr = i0_dp.clmulr; + assign mul_p.grev = i0_dp.grev; + assign mul_p.gorc = i0_dp.gorc; + assign mul_p.shfl = i0_dp.shfl; + assign mul_p.unshfl = i0_dp.unshfl; + assign mul_p.xperm_n = i0_dp.xperm_n; + assign mul_p.xperm_b = i0_dp.xperm_b; + assign mul_p.xperm_h = i0_dp.xperm_h; + assign mul_p.crc32_b = i0_dp.crc32_b; + assign mul_p.crc32_h = i0_dp.crc32_h; + assign mul_p.crc32_w = i0_dp.crc32_w; + assign mul_p.crc32c_b = i0_dp.crc32c_b; + assign mul_p.crc32c_h = i0_dp.crc32c_h; + assign mul_p.crc32c_w = i0_dp.crc32c_w; + assign mul_p.bfp = i0_dp.bfp; + always_comb begin lsu_p = '0; @@ -1065,53 +1069,63 @@ end : cam_array if (pt.BITMANIP_ZBB == 1) - assign bitmanip_zbb_legal = 1'b1; + assign bitmanip_zbb_legal = 1'b1; else - assign bitmanip_zbb_legal = ~(i0_dp.zbb & ~i0_dp.zbp); + assign bitmanip_zbb_legal = ~(i0_dp.zbb & ~i0_dp.zbp); if (pt.BITMANIP_ZBS == 1) - assign bitmanip_zbs_legal = 1'b1; + assign bitmanip_zbs_legal = 1'b1; else - assign bitmanip_zbs_legal = ~i0_dp.zbs; + assign bitmanip_zbs_legal = ~i0_dp.zbs; if (pt.BITMANIP_ZBE == 1) - assign bitmanip_zbe_legal = 1'b1; + assign bitmanip_zbe_legal = 1'b1; else - assign bitmanip_zbe_legal = ~i0_dp.zbe; + assign bitmanip_zbe_legal = ~(i0_dp.zbe & ~i0_dp.zbp & ~i0_dp.zbf); if (pt.BITMANIP_ZBC == 1) - assign bitmanip_zbc_legal = 1'b1; + assign bitmanip_zbc_legal = 1'b1; else - assign bitmanip_zbc_legal = ~i0_dp.zbc; + assign bitmanip_zbc_legal = ~i0_dp.zbc; if (pt.BITMANIP_ZBP == 1) - assign bitmanip_zbp_legal = 1'b1; + assign bitmanip_zbp_legal = 1'b1; else - assign bitmanip_zbp_legal = ~(i0_dp.zbp & ~i0_dp.zbb); + assign bitmanip_zbp_legal = ~(i0_dp.zbp & ~i0_dp.zbb & ~i0_dp.zbe & ~i0_dp.zbf); if (pt.BITMANIP_ZBR == 1) - assign bitmanip_zbr_legal = 1'b1; + assign bitmanip_zbr_legal = 1'b1; else - assign bitmanip_zbr_legal = ~i0_dp.zbr; + assign bitmanip_zbr_legal = ~i0_dp.zbr; if (pt.BITMANIP_ZBF == 1) - assign bitmanip_zbf_legal = 1'b1; + assign bitmanip_zbf_legal = 1'b1; else - assign bitmanip_zbf_legal = ~i0_dp.zbf; + assign bitmanip_zbf_legal = ~(i0_dp.zbf & ~i0_dp.zbp & ~i0_dp.zbe); if (pt.BITMANIP_ZBA == 1) - assign bitmanip_zba_legal = 1'b1; + assign bitmanip_zba_legal = 1'b1; else - assign bitmanip_zba_legal = ~i0_dp.zba; + assign bitmanip_zba_legal = ~i0_dp.zba; if ( (pt.BITMANIP_ZBB == 1) | (pt.BITMANIP_ZBP == 1) ) - assign bitmanip_zbb_zbp_legal = 1'b1; + assign bitmanip_zbb_zbp_legal = 1'b1; else - assign bitmanip_zbb_zbp_legal = ~(i0_dp.zbb & i0_dp.zbp); + assign bitmanip_zbb_zbp_legal = ~(i0_dp.zbb & i0_dp.zbp & ~i0_dp.zbf); // added ~ZBF to exclude ZEXT.H + + if ( (pt.BITMANIP_ZBP == 1) | (pt.BITMANIP_ZBE == 1) | (pt.BITMANIP_ZBF == 1)) + assign bitmanip_zbp_zbe_zbf_legal = 1'b1; + else + assign bitmanip_zbp_zbe_zbf_legal = ~(i0_dp.zbp & i0_dp.zbe & i0_dp.zbf & ~i0_dp.zbb); // added ~ZBB to exclude ZEXT.H + + if ( (pt.BITMANIP_ZBB == 1) | (pt.BITMANIP_ZBP == 1) | (pt.BITMANIP_ZBE == 1) | (pt.BITMANIP_ZBF == 1)) + assign bitmanip_zbb_zbp_zbe_zbf_legal = 1'b1; + else + assign bitmanip_zbb_zbp_zbe_zbf_legal = ~(i0_dp.zbp & i0_dp.zbe & i0_dp.zbf & i0_dp.zbb); // added only for ZEXT.H assign any_csr_d = i0_dp.csr_read | i0_csr_write; - assign bitmanip_legal = bitmanip_zbb_legal & bitmanip_zbs_legal & bitmanip_zbe_legal & bitmanip_zbc_legal & bitmanip_zbp_legal & bitmanip_zbr_legal & bitmanip_zbf_legal & bitmanip_zba_legal & bitmanip_zbb_zbp_legal; + assign bitmanip_legal = bitmanip_zbb_legal & bitmanip_zbs_legal & bitmanip_zbe_legal & bitmanip_zbc_legal & bitmanip_zbp_legal & bitmanip_zbr_legal & bitmanip_zbf_legal & bitmanip_zba_legal & bitmanip_zbb_zbp_legal & bitmanip_zbp_zbe_zbf_legal & bitmanip_zbb_zbp_zbe_zbf_legal; assign i0_legal = i0_dp.legal & (~any_csr_d | dec_csr_legal_d) & bitmanip_legal; @@ -1505,21 +1519,19 @@ import el2_pkg::*; assign i[31:0] = inst[31:0]; +assign out.alu = (i[30]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[5]&i[4]) | (i[30] + &!i[27]&!i[24]&i[4]) | (!i[30]&!i[25]&i[13]&i[12]) | (!i[29]&!i[27] + &!i[5]&i[4]) | (i[27]&i[25]&i[14]&i[4]) | (!i[29]&!i[25]&!i[13]&!i[12] + &i[4]) | (i[29]&i[27]&!i[14]&i[12]&i[4]) | (!i[27]&i[14]&!i[5]&i[4]) | ( + i[30]&!i[29]&!i[13]&i[4]) | (!i[27]&!i[25]&i[5]&i[4]) | (i[13]&!i[5] + &i[4]) | (i[2]) | (i[6]) | (!i[30]&i[29]&!i[24]&!i[23]&i[22]&i[21] + &i[20]&!i[5]&i[4]) | (!i[12]&!i[5]&i[4]); -assign out.alu = (i[30]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[5]&i[4]) | (i[29] - &!i[27]&!i[24]&i[4]) | (!i[25]&!i[13]&!i[12]&i[4]) | (!i[30]&!i[25] - &i[13]&i[12]) | (i[27]&i[25]&i[14]&i[4]) | (i[29]&i[27]&!i[14]&i[4]) | ( - i[29]&!i[14]&i[5]&i[4]) | (!i[27]&!i[25]&i[14]&i[4]) | (i[30]&!i[29] - &!i[13]&i[4]) | (!i[30]&!i[27]&!i[25]&i[4]) | (i[13]&!i[5]&i[4]) | ( - !i[12]&!i[5]&i[4]) | (i[2]) | (i[6]) | (i[30]&i[24]&i[23]&i[22]&i[21] - &i[20]&!i[5]&i[4]) | (!i[30]&i[29]&!i[24]&!i[23]&i[22]&i[21]&i[20] - &!i[5]&i[4]) | (!i[30]&i[24]&!i[23]&!i[22]&!i[21]&!i[20]&!i[5]&i[4]); - -assign out.rs1 = (!i[14]&!i[13]&!i[2]) | (!i[13]&i[11]&!i[2]) | (i[19]&i[13]&!i[2]) | ( - !i[13]&i[10]&!i[2]) | (i[18]&i[13]&!i[2]) | (!i[13]&i[9]&!i[2]) | ( - i[17]&i[13]&!i[2]) | (!i[13]&i[8]&!i[2]) | (i[16]&i[13]&!i[2]) | ( - !i[13]&i[7]&!i[2]) | (i[15]&i[13]&!i[2]) | (!i[4]&!i[3]) | (!i[6] - &!i[2]); +assign out.rs1 = (!i[13]&i[11]&!i[2]) | (!i[13]&i[10]&!i[2]) | (i[19]&i[13]&!i[2]) | ( + !i[13]&i[9]&!i[2]) | (i[18]&i[13]&!i[2]) | (!i[13]&i[8]&!i[2]) | ( + i[17]&i[13]&!i[2]) | (!i[13]&i[7]&!i[2]) | (i[16]&i[13]&!i[2]) | ( + i[15]&i[13]&!i[2]) | (!i[4]&!i[2]) | (!i[14]&!i[13]&i[6]&!i[3]) | ( + !i[6]&!i[2]); assign out.rs2 = (i[5]&!i[4]&!i[2]) | (!i[6]&i[5]&!i[2]); @@ -1528,7 +1540,7 @@ assign out.imm12 = (!i[4]&!i[3]&i[2]) | (i[13]&!i[5]&i[4]&!i[2]) | (!i[13]&!i[12 assign out.rd = (!i[5]&!i[2]) | (i[5]&i[2]) | (i[4]); -assign out.shimm5 = (i[27]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&!i[13]&i[12] +assign out.shimm5 = (!i[29]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&!i[13]&i[12] &!i[5]&i[4]&!i[2]) | (i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); assign out.imm20 = (i[5]&i[3]) | (i[4]&i[2]); @@ -1562,15 +1574,14 @@ assign out.sll = (!i[29]&!i[27]&!i[25]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); assign out.sra = (i[30]&!i[29]&!i[27]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.srl = (!i[30]&!i[29]&!i[27]&!i[25]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.srl = (!i[30]&!i[27]&!i[25]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); assign out.slt = (!i[29]&!i[25]&!i[14]&i[13]&!i[6]&i[4]&!i[2]) | (!i[14]&i[13]&!i[5] &i[4]&!i[2]); -assign out.unsign = (!i[27]&i[25]&i[14]&i[12]&!i[6]&i[5]&!i[2]) | (!i[14]&i[13] - &i[12]&!i[5]&!i[2]) | (i[13]&i[6]&!i[4]&!i[2]) | (i[14]&!i[5]&!i[4]) | ( - !i[25]&!i[14]&i[13]&i[12]&!i[6]&!i[2]) | (i[27]&i[25]&i[14]&i[13] - &!i[6]&i[5]&!i[2]); +assign out.unsign = (!i[14]&i[13]&i[12]&!i[5]&!i[2]) | (i[13]&i[6]&!i[4]&!i[2]) | ( + i[14]&!i[5]&!i[4]) | (!i[25]&!i[14]&i[13]&i[12]&!i[6]&!i[2]) | ( + i[25]&i[14]&i[12]&!i[6]&i[5]&!i[2]); assign out.condbr = (i[6]&!i[4]&!i[2]); @@ -1625,19 +1636,17 @@ assign out.ecall = (!i[21]&!i[20]&!i[13]&!i[12]&i[6]&i[4]); assign out.mret = (i[29]&!i[13]&!i[12]&i[6]&i[4]); -assign out.mul = (!i[30]&i[27]&i[24]&i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | ( - i[29]&i[27]&!i[24]&i[23]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | ( - i[29]&i[27]&!i[24]&!i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | ( - i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]) | (i[30]&i[27]&i[13] - &!i[6]&i[5]&i[4]&!i[2]) | (i[29]&i[27]&i[22]&!i[20]&i[14]&!i[13] - &i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[21]&i[20]&i[14]&!i[13] - &i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[22]&i[21]&i[14]&!i[13] - &i[12]&!i[5]&i[4]&!i[2]) | (i[30]&i[29]&i[27]&!i[23]&i[14]&!i[13] - &i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[27]&i[23]&i[14]&!i[13]&i[12] - &!i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&i[12]&!i[6] - &i[4]&!i[2]) | (i[25]&!i[14]&!i[6]&i[5]&i[4]&!i[2]) | (i[30]&!i[27] - &i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&i[14] - &!i[6]&i[5]&!i[2]); +assign out.mul = (i[29]&!i[27]&i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[30] + &i[27]&i[13]&!i[6]&i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[23]&!i[20] + &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[21]&i[20] + &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&i[24]&i[21] + &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[24]&!i[22] + &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[29]&i[23]&i[14] + &!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[30]&i[29]&i[27]&i[22]&i[14] + &!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&!i[25]&i[13]&!i[12]&!i[6] + &i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&i[12]&!i[6] + &i[4]&!i[2]) | (i[25]&!i[14]&!i[6]&i[5]&i[4]&!i[2]) | (i[29]&i[27] + &i[14]&!i[6]&i[5]&!i[2]); assign out.rs1_sign = (!i[27]&i[25]&!i[14]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]) | ( !i[27]&i[25]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); @@ -1654,169 +1663,173 @@ assign out.fence = (!i[5]&i[3]); assign out.fence_i = (i[12]&!i[5]&i[3]); -assign out.clz = (i[30]&!i[27]&!i[24]&!i[22]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5] +assign out.clz = (i[29]&!i[27]&!i[24]&!i[22]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5] &i[4]&!i[2]); -assign out.ctz = (i[30]&!i[27]&!i[24]&!i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4] +assign out.ctz = (i[29]&!i[27]&!i[24]&!i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4] &!i[2]); -assign out.pcnt = (i[30]&!i[27]&!i[24]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); +assign out.cpop = (i[29]&!i[27]&!i[24]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); -assign out.sext_b = (i[30]&!i[27]&i[22]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); +assign out.sext_b = (i[29]&!i[27]&i[22]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); -assign out.sext_h = (i[30]&!i[27]&i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); +assign out.sext_h = (i[29]&!i[27]&i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); -assign out.slo = (!i[30]&i[29]&!i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.min = (i[27]&i[25]&i[14]&!i[13]&!i[6]&i[5]&!i[2]); -assign out.sro = (!i[30]&i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.max = (i[27]&i[25]&i[14]&i[13]&!i[6]&i[5]&!i[2]); -assign out.min = (i[27]&i[25]&i[14]&!i[12]&!i[6]&i[5]&!i[2]); - -assign out.max = (i[27]&i[25]&i[14]&i[12]&!i[6]&i[5]&!i[2]); - -assign out.pack = (!i[30]&i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]); +assign out.pack = (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]); assign out.packu = (i[30]&i[27]&!i[13]&!i[12]&i[5]&i[4]&!i[2]); assign out.packh = (!i[30]&i[27]&!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]); -assign out.rol = (i[30]&!i[27]&!i[14]&i[12]&!i[6]&i[5]&i[4]&!i[2]); +assign out.rol = (i[29]&!i[27]&!i[14]&i[12]&!i[6]&i[5]&i[4]&!i[2]); -assign out.ror = (i[30]&i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.ror = (i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.zbb = (i[30]&!i[27]&!i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | ( - !i[30]&i[27]&i[14]&i[13]&i[12]&!i[6]&i[5]&!i[2]) | (i[30]&i[29]&!i[27] - &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&!i[13]&!i[12]&i[5] - &i[4]&!i[2]) | (i[30]&i[14]&!i[13]&!i[12]&!i[6]&i[5]&!i[2]) | (i[30] - &!i[27]&i[13]&!i[6]&i[5]&i[4]&!i[2]) | (i[30]&i[29]&!i[27]&!i[6]&i[5] - &i[4]&!i[2]) | (i[30]&i[29]&i[24]&i[23]&i[22]&i[21]&i[20]&i[14]&!i[13] - &i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[29]&i[27]&!i[24]&!i[23]&i[22] - &i[21]&i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[27] - &i[24]&!i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | ( - i[30]&i[29]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[13]&i[12]&!i[5] - &i[4]&!i[2]) | (i[27]&i[25]&i[14]&!i[6]&i[5]&!i[2]); +assign out.zbb = (!i[30]&!i[29]&i[27]&!i[24]&!i[23]&!i[22]&!i[21]&!i[20]&!i[13] + &!i[12]&i[5]&i[4]&!i[2]) | (i[29]&!i[27]&!i[24]&!i[13]&i[12]&!i[5] + &i[4]&!i[2]) | (i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | ( + i[30]&!i[27]&i[14]&!i[12]&!i[6]&i[5]&!i[2]) | (i[30]&!i[27]&i[13] + &!i[6]&i[5]&i[4]&!i[2]) | (i[29]&!i[27]&i[12]&!i[6]&i[5]&i[4]&!i[2]) | ( + !i[30]&i[29]&!i[24]&!i[23]&i[22]&i[21]&i[20]&i[14]&!i[13]&i[12]&!i[5] + &i[4]&!i[2]) | (i[30]&i[29]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14] + &!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&i[25]&i[14]&!i[6]&i[5]&!i[2]); -assign out.sbset = (!i[30]&i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.bset = (!i[30]&i[29]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.sbclr = (i[30]&!i[29]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.bclr = (i[30]&!i[29]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.sbinv = (i[30]&i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.binv = (i[30]&i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.sbext = (i[30]&!i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.bext = (i[30]&!i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); assign out.zbs = (i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]) | (i[30]&!i[29] &i[27]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.bext = (!i[30]&i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); +assign out.bcompress = (!i[30]&!i[29]&i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); -assign out.bdep = (i[30]&i[27]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); +assign out.bdecompress = (i[30]&i[27]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); -assign out.zbe = (i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); +assign out.zbe = (i[30]&i[27]&i[14]&i[13]&!i[12]&!i[6]&i[5]&!i[2]) | (!i[30]&i[27] + &!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25] + &!i[12]&!i[6]&i[5]&i[4]&!i[2]); assign out.clmul = (i[27]&i[25]&!i[14]&!i[13]&!i[6]&i[5]&i[4]&!i[2]); assign out.clmulh = (i[27]&!i[14]&i[13]&i[12]&!i[6]&i[5]&!i[2]); -assign out.clmulr = (i[27]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); +assign out.clmulr = (i[27]&i[25]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); assign out.zbc = (i[27]&i[25]&!i[14]&!i[6]&i[5]&i[4]&!i[2]); assign out.grev = (i[30]&i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.gorc = (!i[30]&i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.gorc = (!i[30]&i[29]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); assign out.shfl = (!i[30]&!i[29]&i[27]&!i[25]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); assign out.unshfl = (!i[30]&!i[29]&i[27]&!i[25]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); -assign out.zbp = (!i[30]&i[29]&!i[27]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&!i[29] - &i[27]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[30]&!i[27]&i[13]&!i[6] - &i[5]&i[4]&!i[2]) | (i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | ( - i[30]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | (i[29]&!i[27]&i[12]&!i[6] - &i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&i[12]&!i[6]&i[5]&i[4] - &!i[2]) | (i[29]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); +assign out.xperm_n = (i[29]&i[27]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); -assign out.crc32_b = (i[30]&!i[27]&i[24]&!i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12] +assign out.xperm_b = (i[29]&i[27]&!i[13]&!i[12]&i[5]&i[4]&!i[2]); + +assign out.xperm_h = (i[29]&i[27]&i[14]&i[13]&!i[6]&i[5]&!i[2]); + +assign out.zbp = (i[30]&!i[27]&!i[14]&i[12]&!i[6]&i[5]&i[4]&!i[2]) | (!i[30]&i[27] + &!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]) | (i[30]&!i[27]&i[13]&!i[6] + &i[5]&i[4]&!i[2]) | (i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | ( + i[30]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[12]&!i[6] + &i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&i[12]&!i[6] + &i[4]&!i[2]) | (i[29]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]); + +assign out.crc32_b = (i[29]&!i[27]&i[24]&!i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12] &!i[5]&i[4]&!i[2]); -assign out.crc32_h = (i[30]&!i[27]&i[24]&!i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4] +assign out.crc32_h = (i[29]&!i[27]&i[24]&!i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4] &!i[2]); -assign out.crc32_w = (i[30]&!i[27]&i[24]&!i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4] +assign out.crc32_w = (i[29]&!i[27]&i[24]&!i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4] &!i[2]); -assign out.crc32c_b = (i[30]&!i[27]&i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5] +assign out.crc32c_b = (i[29]&!i[27]&i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5] &i[4]&!i[2]); -assign out.crc32c_h = (i[30]&!i[27]&i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); +assign out.crc32c_h = (i[29]&!i[27]&i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); -assign out.crc32c_w = (i[30]&!i[27]&i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); +assign out.crc32c_w = (i[29]&!i[27]&i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); -assign out.zbr = (i[30]&!i[27]&i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); +assign out.zbr = (i[29]&!i[27]&i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]); assign out.bfp = (i[30]&i[27]&i[13]&i[12]&!i[6]&i[5]&!i[2]); -assign out.zbf = (i[30]&i[27]&i[13]&i[12]&!i[6]&i[5]&!i[2]); +assign out.zbf = (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | ( + i[27]&!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]); -assign out.sh1add = (i[29]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); +assign out.sh1add = (i[29]&!i[27]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); -assign out.sh2add = (i[29]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]); +assign out.sh2add = (i[29]&!i[27]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]); -assign out.sh3add = (i[29]&i[14]&i[13]&!i[6]&i[5]&!i[2]); +assign out.sh3add = (i[29]&!i[27]&i[14]&i[13]&!i[6]&i[5]&!i[2]); -assign out.zba = (i[29]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); +assign out.zba = (i[29]&!i[27]&!i[12]&!i[6]&i[5]&i[4]&!i[2]); -assign out.pm_alu = (i[28]&i[22]&!i[13]&!i[12]&i[4]) | (!i[30]&!i[29]&!i[27]&!i[25] +assign out.pm_alu = (i[28]&i[20]&!i[13]&!i[12]&i[4]) | (!i[30]&!i[29]&!i[27]&!i[25] &!i[6]&i[4]) | (!i[29]&!i[27]&!i[25]&!i[13]&i[12]&!i[6]&i[4]) | ( !i[29]&!i[27]&!i[25]&!i[14]&!i[6]&i[4]) | (i[13]&!i[5]&i[4]) | (i[4] &i[2]) | (!i[12]&!i[5]&i[4]); -assign out.legal = (!i[31]&!i[30]&!i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23] - &i[22]&!i[21]&i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11] +assign out.legal = (!i[31]&!i[30]&i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23] + &!i[22]&i[21]&!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11] &!i[10]&!i[9]&!i[8]&!i[7]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | ( - !i[31]&!i[30]&i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22] - &i[21]&!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]&!i[10] + !i[31]&!i[30]&!i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&i[22] + &!i[21]&i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]&!i[10] &!i[9]&!i[8]&!i[7]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31] &!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22]&!i[21] &!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]&!i[10]&!i[9]&!i[8] - &!i[7]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&!i[26] - &!i[25]&i[24]&!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | ( - !i[31]&i[29]&!i[28]&!i[26]&!i[25]&i[24]&!i[22]&!i[21]&!i[6]&!i[5] - &i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&!i[26]&!i[25]&!i[23] - &!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29] - &!i[28]&!i[26]&!i[25]&!i[24]&!i[23]&!i[21]&!i[6]&!i[5]&i[4]&!i[3] - &i[1]&i[0]) | (!i[31]&!i[30]&!i[29]&!i[28]&!i[26]&i[25]&i[13]&!i[6] - &i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[28]&!i[26]&!i[25]&!i[24] - &!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[28]&!i[27] - &!i[26]&!i[25]&i[14]&!i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31] - &!i[30]&!i[28]&!i[27]&!i[26]&!i[25]&i[13]&!i[12]&!i[6]&i[4]&!i[3] - &i[1]&i[0]) | (!i[31]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[13]&!i[12] - &!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[28]&!i[27]&!i[26]&!i[25] - &i[14]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29] - &!i[28]&!i[26]&!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | ( + &!i[7]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]&i[30]&i[29]&!i[28] + &!i[26]&!i[25]&i[24]&!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | ( + !i[31]&i[30]&i[29]&!i[28]&!i[26]&!i[25]&i[24]&!i[22]&!i[21]&!i[6] + &!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[30]&i[29]&!i[28]&!i[26] + &!i[25]&!i[23]&!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | ( + !i[31]&i[30]&i[29]&!i[28]&!i[26]&!i[25]&!i[24]&!i[23]&!i[21]&!i[6] + &!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29]&!i[28]&!i[26] + &i[25]&i[13]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[28]&i[27]&!i[26] + &!i[25]&!i[24]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30] + &i[29]&!i[28]&!i[26]&!i[25]&i[13]&!i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | ( + !i[31]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[13]&!i[12]&!i[6]&i[4] + &!i[3]&i[1]&i[0]) | (!i[31]&i[30]&!i[28]&!i[26]&!i[25]&i[14]&!i[6] + &!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29]&!i[28]&!i[26] + &!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29] + &!i[28]&!i[27]&!i[26]&!i[25]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31] + &i[30]&i[29]&!i[28]&!i[26]&!i[25]&!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2] + &i[1]&i[0]) | (!i[31]&i[30]&!i[28]&i[27]&!i[26]&!i[25]&!i[13]&i[12] + &!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[29]&!i[28]&!i[26]&!i[25] + &i[14]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&i[27] + &!i[26]&!i[25]&!i[13]&i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31] + &!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | ( !i[31]&!i[30]&!i[29]&!i[28]&!i[26]&i[14]&!i[6]&i[5]&i[4]&!i[3]&i[1] - &i[0]) | (!i[31]&i[30]&!i[28]&i[27]&!i[26]&!i[25]&!i[13]&i[12]&!i[6] - &i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&i[27]&!i[26]&!i[25] - &!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[28]&!i[27] - &!i[26]&!i[25]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30] - &!i[29]&!i[28]&!i[27]&!i[26]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | ( - !i[14]&!i[13]&!i[12]&i[6]&i[5]&!i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[29] - &!i[28]&!i[26]&!i[25]&i[14]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | ( - !i[31]&i[29]&!i[28]&!i[26]&!i[25]&!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2] - &i[1]&i[0]) | (i[14]&i[6]&i[5]&!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[14] - &!i[13]&i[5]&!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[12]&!i[6]&!i[5]&i[4] - &!i[3]&i[1]&i[0]) | (!i[13]&i[12]&i[6]&i[5]&!i[3]&!i[2]&i[1]&i[0]) | ( - !i[31]&!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22] - &!i[21]&!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[13]&!i[11] - &!i[10]&!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3]&i[2]&i[1]&i[0]) | ( - !i[31]&!i[30]&!i[29]&!i[28]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14] - &!i[13]&!i[12]&!i[11]&!i[10]&!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3] - &i[2]&i[1]&i[0]) | (i[13]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | ( + &i[0]) | (!i[14]&!i[13]&!i[12]&i[6]&i[5]&!i[4]&!i[3]&i[1]&i[0]) | ( + i[14]&i[6]&i[5]&!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[14]&!i[13]&i[5] + &!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[12]&!i[6]&!i[5]&i[4]&!i[3]&i[1] + &i[0]) | (!i[13]&i[12]&i[6]&i[5]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31] + &!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22]&!i[21] + &!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[13]&!i[11]&!i[10] + &!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3]&i[2]&i[1]&i[0]) | (!i[31] + &!i[30]&!i[29]&!i[28]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[13] + &!i[12]&!i[11]&!i[10]&!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3]&i[2] + &i[1]&i[0]) | (i[13]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31] + &!i[30]&!i[28]&!i[26]&!i[25]&i[14]&!i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | ( i[6]&i[5]&!i[4]&i[3]&i[2]&i[1]&i[0]) | (!i[14]&!i[12]&!i[6]&!i[4] &!i[3]&!i[2]&i[1]&i[0]) | (!i[13]&!i[6]&!i[5]&!i[4]&!i[3]&!i[2]&i[1] &i[0]) | (i[13]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[6]&i[4]&!i[3] &i[2]&i[1]&i[0]); + + endmodule // el2_dec_dec_ctl diff --git a/design/dec/el2_dec_tlu_ctl.sv b/design/dec/el2_dec_tlu_ctl.sv index 7b98983..511c0ad 100644 --- a/design/dec/el2_dec_tlu_ctl.sv +++ b/design/dec/el2_dec_tlu_ctl.sv @@ -604,8 +604,8 @@ localparam DCSR_STEP = 2; assign debug_brkpt_status_ns = (debug_brkpt_valid | debug_brkpt_status_f) & (internal_dbg_halt_mode & ~dcsr_single_step_running_f); // acks back to interface - assign mpc_debug_halt_ack_ns = mpc_halt_state_f & internal_dbg_halt_mode_f & mpc_debug_halt_req_sync & core_empty; - assign mpc_debug_run_ack_ns = (mpc_debug_run_req_sync & ~dbg_halt_state_ns & ~mpc_debug_halt_req_sync) | (mpc_debug_run_ack_f & mpc_debug_run_req_sync) ; + assign mpc_debug_halt_ack_ns = (mpc_halt_state_f & internal_dbg_halt_mode_f & mpc_debug_halt_req_sync & core_empty) | (mpc_debug_halt_ack_f & mpc_debug_halt_req_sync); + assign mpc_debug_run_ack_ns = (mpc_debug_run_req_sync & ~internal_dbg_halt_mode & ~mpc_debug_halt_req_sync) | (mpc_debug_run_ack_f & mpc_debug_run_req_sync) ; // Pins assign mpc_debug_halt_ack = mpc_debug_halt_ack_f; @@ -2595,12 +2595,14 @@ assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[6] + &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[5] + &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[6] &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] - &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - &!dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] - &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1] + &!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] + &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); @@ -2727,7 +2729,7 @@ assign dec_csr_legal_d = ( dec_csr_any_unq_d & assign dec_csr_rddata_d[31:0] = ( ({32{csr_misa}} & 32'h40001104) | ({32{csr_mvendorid}} & 32'h00000045) | ({32{csr_marchid}} & 32'h00000010) | - ({32{csr_mimpid}} & 32'h3) | + ({32{csr_mimpid}} & 32'h4) | ({32{csr_mhartid}} & {core_id[31:4], 4'b0}) | ({32{csr_mstatus}} & {19'b0, 2'b11, 3'b0, mstatus[1], 3'b0, mstatus[0], 3'b0}) | ({32{csr_mtvec}} & {mtvec[30:1], 1'b0, mtvec[0]}) | diff --git a/design/el2_dma_ctrl.sv b/design/el2_dma_ctrl.sv index fcdaa42..b47ce97 100644 --- a/design/el2_dma_ctrl.sv +++ b/design/el2_dma_ctrl.sv @@ -318,7 +318,7 @@ module el2_dma_ctrl #( //Dbg outputs assign dma_dbg_ready = fifo_empty & dbg_dma_bubble; assign dma_dbg_cmd_done = (fifo_valid[RspPtr] & fifo_dbg[RspPtr] & fifo_done[RspPtr]); - assign dma_dbg_cmd_fail = |fifo_error[RspPtr]; + assign dma_dbg_cmd_fail = (|fifo_error[RspPtr] & dma_dbg_cmd_done) ; assign dma_dbg_sz[1:0] = fifo_sz[RspPtr][1:0]; assign dma_dbg_addr[1:0] = fifo_addr[RspPtr][1:0]; diff --git a/design/el2_pic_ctrl.sv b/design/el2_pic_ctrl.sv index a36deeb..8f8881f 100644 --- a/design/el2_pic_ctrl.sv +++ b/design/el2_pic_ctrl.sv @@ -196,7 +196,15 @@ rvdff #(1) picm_rde_flop (.*, .din (picm_rden), .dout(picm_rden_ff), rvdff #(1) picm_mke_flop (.*, .din (picm_mken), .dout(picm_mken_ff), .clk(free_clk)); rvdff #(32) picm_dat_flop (.*, .din (picm_wr_data[31:0]), .dout(picm_wr_data_ff[31:0]), .clk(pic_data_c1_clk)); - +//rvsyncss #(pt.PIC_TOTAL_INT_PLUS1-1) sync_inst +//( +// .clk (free_clk), +// .dout(extintsrc_req_sync[pt.PIC_TOTAL_INT_PLUS1-1:1]), +// .din (extintsrc_req[pt.PIC_TOTAL_INT_PLUS1-1:1]), +// .*) ; +// +//assign extintsrc_req_sync[0] = extintsrc_req[0]; +/* genvar p ; for (p=0; p<=INT_ENABLE_GRPS ; p++) begin : IO_CLK_GRP if (p==INT_ENABLE_GRPS) begin : LAST_GRP @@ -207,10 +215,45 @@ for (p=0; p<=INT_ENABLE_GRPS ; p++) begin : IO_CLK_GRP rvoclkhdr intenable_c1_cgc ( .en(intenable_clk_enable_grp[p]), .l1clk(gw_clk[p]), .* ); end end +*/ genvar i ; +genvar p ; +for (p=0; p<=INT_ENABLE_GRPS ; p++) begin : IO_CLK_GRP +wire grp_clk, grp_clken; + + assign grp_clken = |intenable_clk_enable[(p==INT_ENABLE_GRPS?pt.PIC_TOTAL_INT_PLUS1-1:p*4+3) : p*4] | io_clk_override; + + `ifndef RV_FPGA_OPTIMIZE + rvclkhdr intenable_c1_cgc( .en(grp_clken), .l1clk(grp_clk), .* ); + `else + assign gw_clk[p] = 1'b0 ; + `endif + + for(genvar i= (p==0 ? 1: 0); i< (p==INT_ENABLE_GRPS ? pt.PIC_TOTAL_INT_PLUS1-p*4 :4); i++) begin : GW + el2_configurable_gw gw_inst( + .*, + .gw_clk(grp_clk), + .rawclk(clk), + .clken (grp_clken), + .extintsrc_req(extintsrc_req[i+p*4]) , + .meigwctrl_polarity(gw_config_reg[i+p*4][0]) , + .meigwctrl_type(gw_config_reg[i+p*4][1]) , + .meigwclr(gw_clear_reg_we[i+p*4]) , + .extintsrc_req_config(extintsrc_req_gw[i+p*4]) + ); + end +end + + + + + + + + for (i=0; i 0 ) begin : NON_ZERO_INT @@ -227,9 +270,11 @@ for (i=0; i> shift_amount[4:0] ); // 62-32 unused - assign sout[31:0] = ( shift_long[31:0] & shift_mask[31:0] ) | ( {32{ap_slo}} & ~shift_mask[31:0] ); + assign sout[31:0] = shift_long[31:0] & shift_mask[31:0]; @@ -363,26 +354,26 @@ import el2_pkg::*; - // * * * * * * * * * * * * * * * * * * BitManip : PCNT * * * * * * * * * * * * * * * * * * + // * * * * * * * * * * * * * * * * * * BitManip : CPOP * * * * * * * * * * * * * * * * * * - logic [5:0] bitmanip_pcnt; - logic [5:0] bitmanip_pcnt_result; + logic [5:0] bitmanip_cpop; + logic [5:0] bitmanip_cpop_result; - integer bitmanip_pcnt_i; + integer bitmanip_cpop_i; always_comb begin - bitmanip_pcnt[5:0] = 6'b0; + bitmanip_cpop[5:0] = 6'b0; - for (bitmanip_pcnt_i=0; bitmanip_pcnt_i<32; bitmanip_pcnt_i++) + for (bitmanip_cpop_i=0; bitmanip_cpop_i<32; bitmanip_cpop_i++) begin - bitmanip_pcnt[5:0] = bitmanip_pcnt[5:0] + {5'b0,a_in[bitmanip_pcnt_i]}; - end // FOR bitmanip_pcnt_i + bitmanip_cpop[5:0] = bitmanip_cpop[5:0] + {5'b0,a_in[bitmanip_cpop_i]}; + end // FOR bitmanip_cpop_i end // ALWAYS_COMB - assign bitmanip_pcnt_result[5:0] = {6{ap_pcnt}} & bitmanip_pcnt[5:0]; + assign bitmanip_cpop_result[5:0] = {6{ap_cpop}} & bitmanip_cpop[5:0]; @@ -404,7 +395,6 @@ import el2_pkg::*; assign bitmanip_minmax_sel = ap_min | ap_max; - logic bitmanip_minmax_sel_a; assign bitmanip_minmax_sel_a = ge ^ ap_min; @@ -414,6 +404,7 @@ import el2_pkg::*; + // * * * * * * * * * * * * * * * * * * BitManip : PACK, PACKU, PACKH * * * * * * * * * * * * * * * logic [31:0] bitmanip_pack_result; @@ -426,18 +417,10 @@ import el2_pkg::*; - // * * * * * * * * * * * * * * * * * * BitManip : REV, REV8, ORC_B * * * * * * * * * * * * * * * * + // * * * * * * * * * * * * * * * * * * BitManip : REV, ORC_B * * * * * * * * * * * * * * * * * * - logic [31:0] bitmanip_rev_result; logic [31:0] bitmanip_rev8_result; logic [31:0] bitmanip_orc_b_result; - logic [31:0] bitmanip_orc16_result; - - assign bitmanip_rev_result[31:0] = {32{ap_rev}} & - {a_in[00],a_in[01],a_in[02],a_in[03],a_in[04],a_in[05],a_in[06],a_in[07], - a_in[08],a_in[09],a_in[10],a_in[11],a_in[12],a_in[13],a_in[14],a_in[15], - a_in[16],a_in[17],a_in[18],a_in[19],a_in[20],a_in[21],a_in[22],a_in[23], - a_in[24],a_in[25],a_in[26],a_in[27],a_in[28],a_in[29],a_in[30],a_in[31]}; assign bitmanip_rev8_result[31:0] = {32{ap_rev8}} & {a_in[7:0],a_in[15:8],a_in[23:16],a_in[31:24]}; @@ -466,8 +449,6 @@ import el2_pkg::*; assign bitmanip_orc_b_result[31:0] = {32{ap_orc_b}} & { {8{| a_in[31:24]}}, {8{| a_in[23:16]}}, {8{| a_in[15:8]}}, {8{| a_in[7:0]}} }; - assign bitmanip_orc16_result[31:0] = {32{ap_orc16}} & { {a_in[31:16] | a_in[15:0]}, {a_in[31:16] | a_in[15:0]} }; - // * * * * * * * * * * * * * * * * * * BitManip : ZBSET, ZBCLR, ZBINV * * * * * * * * * * * * * * @@ -477,16 +458,16 @@ import el2_pkg::*; assign bitmanip_sb_1hot[31:0] = ( 32'h00000001 << b_in[4:0] ); - assign bitmanip_sb_data[31:0] = ( {32{ap_sbset}} & ( a_in[31:0] | bitmanip_sb_1hot[31:0]) ) | - ( {32{ap_sbclr}} & ( a_in[31:0] & ~bitmanip_sb_1hot[31:0]) ) | - ( {32{ap_sbinv}} & ( a_in[31:0] ^ bitmanip_sb_1hot[31:0]) ); + assign bitmanip_sb_data[31:0] = ( {32{ap_bset}} & ( a_in[31:0] | bitmanip_sb_1hot[31:0]) ) | + ( {32{ap_bclr}} & ( a_in[31:0] & ~bitmanip_sb_1hot[31:0]) ) | + ( {32{ap_binv}} & ( a_in[31:0] ^ bitmanip_sb_1hot[31:0]) ); - assign sel_shift = ap.sll | ap.srl | ap.sra | ap_slo | ap_sro | ap_rol | ap_ror; + assign sel_shift = ap.sll | ap.srl | ap.sra | ap_rol | ap_ror; assign sel_adder = (ap.add | ap.sub | ap_zba) & ~ap.slt & ~ap_min & ~ap_max; assign sel_pc = ap.jal | pp_in.pcall | pp_in.pja | pp_in.pret; assign csr_write_data[31:0]= (ap.csr_imm) ? b_in[31:0] : a_in[31:0]; @@ -501,18 +482,16 @@ import el2_pkg::*; ({32{sel_pc}} & {pcout[31:1],1'b0} ) | ({32{ap.csr_write}} & csr_write_data[31:0] ) | {31'b0, slt_one} | - ({32{ap_sbext}} & {31'b0, sout[0]} ) | + ({32{ap_bext}} & {31'b0, sout[0]} ) | {26'b0, bitmanip_clz_ctz_result[5:0]} | - {26'b0, bitmanip_pcnt_result[5:0]} | + {26'b0, bitmanip_cpop_result[5:0]} | bitmanip_sext_result[31:0] | bitmanip_minmax_result[31:0] | bitmanip_pack_result[31:0] | bitmanip_packu_result[31:0] | bitmanip_packh_result[31:0] | - bitmanip_rev_result[31:0] | bitmanip_rev8_result[31:0] | bitmanip_orc_b_result[31:0] | - bitmanip_orc16_result[31:0] | bitmanip_sb_data[31:0]; diff --git a/design/exu/el2_exu_mul_ctl.sv b/design/exu/el2_exu_mul_ctl.sv index 9b6dae7..e47a7d8 100644 --- a/design/exu/el2_exu_mul_ctl.sv +++ b/design/exu/el2_exu_mul_ctl.sv @@ -53,8 +53,8 @@ import el2_pkg::*; // ZBE - logic ap_bext; - logic ap_bdep; + logic ap_bcompress; + logic ap_bdecompress; // ZBC logic ap_clmul; @@ -66,6 +66,9 @@ import el2_pkg::*; logic ap_gorc; logic ap_shfl; logic ap_unshfl; + logic ap_xperm_n; + logic ap_xperm_b; + logic ap_xperm_h; // ZBR logic ap_crc32_b; @@ -81,13 +84,13 @@ import el2_pkg::*; if (pt.BITMANIP_ZBE == 1) begin - assign ap_bext = mul_p.bext; - assign ap_bdep = mul_p.bdep; + assign ap_bcompress = mul_p.bcompress; + assign ap_bdecompress = mul_p.bdecompress; end else begin - assign ap_bext = 1'b0; - assign ap_bdep = 1'b0; + assign ap_bcompress = 1'b0; + assign ap_bdecompress = 1'b0; end if (pt.BITMANIP_ZBC == 1) @@ -109,6 +112,9 @@ import el2_pkg::*; assign ap_gorc = mul_p.gorc; assign ap_shfl = mul_p.shfl; assign ap_unshfl = mul_p.unshfl; + assign ap_xperm_n = mul_p.xperm_n; + assign ap_xperm_b = mul_p.xperm_b; + assign ap_xperm_h = mul_p.xperm_h; end else begin @@ -116,6 +122,9 @@ import el2_pkg::*; assign ap_gorc = 1'b0; assign ap_shfl = 1'b0; assign ap_unshfl = 1'b0; + assign ap_xperm_n = 1'b0; + assign ap_xperm_b = 1'b0; + assign ap_xperm_h = 1'b0; end if (pt.BITMANIP_ZBR == 1) @@ -175,59 +184,61 @@ import el2_pkg::*; assign prod_x[65:0] = rs1_x * rs2_x; - // * * * * * * * * * * * * * * * * * * BitManip : BEXT, BDEP * * * * * * * * * * * * * * * * * * - // *** BEXT == "gather" *** + // * * * * * * * * * * * * * * * * * * BitManip : BCOMPRESS, BDECOMPRESS * * * * * * * * * * * * * - logic [31:0] bext_d; - logic bext_test_bit_d; - integer bext_i, bext_j; + + // *** BCOMPRESS == "gather" *** + + logic [31:0] bcompress_d; + logic bcompress_test_bit_d; + integer bcompress_i, bcompress_j; always_comb begin - bext_j = 0; - bext_test_bit_d = 1'b0; - bext_d[31:0] = 32'b0; + bcompress_j = 0; + bcompress_test_bit_d = 1'b0; + bcompress_d[31:0] = 32'b0; - for (bext_i=0; bext_i<32; bext_i++) + for (bcompress_i=0; bcompress_i<32; bcompress_i++) begin - bext_test_bit_d = rs2_in[bext_i]; - if (bext_test_bit_d) + bcompress_test_bit_d = rs2_in[bcompress_i]; + if (bcompress_test_bit_d) begin - bext_d[bext_j] = rs1_in[bext_i]; - bext_j = bext_j + 1; - end // IF bext_test_bit - end // FOR bext_i + bcompress_d[bcompress_j] = rs1_in[bcompress_i]; + bcompress_j = bcompress_j + 1; + end // IF bcompress_test_bit + end // FOR bcompress_i end // ALWAYS_COMB - // *** BDEP == "scatter" *** + // *** BDECOMPRESS == "scatter" *** - logic [31:0] bdep_d; - logic bdep_test_bit_d; - integer bdep_i, bdep_j; + logic [31:0] bdecompress_d; + logic bdecompress_test_bit_d; + integer bdecompress_i, bdecompress_j; always_comb begin - bdep_j = 0; - bdep_test_bit_d = 1'b0; - bdep_d[31:0] = 32'b0; + bdecompress_j = 0; + bdecompress_test_bit_d = 1'b0; + bdecompress_d[31:0] = 32'b0; - for (bdep_i=0; bdep_i<32; bdep_i++) + for (bdecompress_i=0; bdecompress_i<32; bdecompress_i++) begin - bdep_test_bit_d = rs2_in[bdep_i]; - if (bdep_test_bit_d) + bdecompress_test_bit_d = rs2_in[bdecompress_i]; + if (bdecompress_test_bit_d) begin - bdep_d[bdep_i] = rs1_in[bdep_j]; - bdep_j = bdep_j + 1; - end // IF bdep_test_bit - end // FOR bdep_i + bdecompress_d[bdecompress_i] = rs1_in[bdecompress_j]; + bdecompress_j = bdecompress_j + 1; + end // IF bdecompress_test_bit + end // FOR bdecompress_i end // ALWAYS_COMB @@ -450,6 +461,88 @@ import el2_pkg::*; + // * * * * * * * * * * * * * * * * * * BitManip : XPERM * * * * * * * * * * * * * * * * * + +// +// These instructions operate on nibbles/bytes/half-words/words. +// rs1 is a vector of data words and rs2 is a vector of indices into rs1. +// The result of the instruction is the vector rs2 with each element replaced by the corresponding data word from rs1, +// or zero then the index in rs2 is out of bounds. +// +// uint_xlen_t xperm(uint_xlen_t rs1, uint_xlen_t rs2, int sz_log2) +// { +// uint_xlen_t r = 0; +// uint_xlen_t sz = 1LL << sz_log2; +// uint_xlen_t mask = (1LL << sz) - 1; +// for (int i = 0; i < XLEN; i += sz) +// { uint_xlen_t pos = ((rs2 >> i) & mask) << sz_log2; +// if (pos < XLEN) +// r |= ((rs1 >> pos) & mask) << i; +// } +// return r; +// } +// +// uint_xlen_t xperm_n (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 2); } +// uint_xlen_t xperm_b (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 3); } +// uint_xlen_t xperm_h (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 4); } +// uint_xlen_t xperm_w (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 5); } Not part of RV32 +// +// The xperm.[nbhw] instructions can be implemented with an XLEN/4-lane nibble-wide crossbarswitch. + +// *** XPERM_B *** + + // XLEN = 32 + // SZ_LOG2 = 3 + // SZ = 4'd8; + // MASK = ( 1 << 8 ) - 1 + // = 8'hFF + + // integer xperm_b_i; + // logic [31:0] xperm_b_r; + // logic [3:0] xperm_b_sz; + // logic [7:0] xperm_b_mask; + // logic [31:0] xperm_b_pos; + // + // + // assign xperm_b_sz[3:0] = 4'd8; + // assign xperm_b_mask[7:0] = 8'hff; + // + // always_comb + // begin + // xperm_b_r[31:0] = 32'b0; + // + // for (xperm_b_i=0; xperm_b_i<32; xperm_b_i = xperm_b_i + xperm_b_sz) // This code did not work... + // begin + // xperm_b_pos[31:0] = ( (rs2_in[31:0] >> xperm_b_i) & {24'h0,xperm_b_mask[7:0]} ) << 3; + // if (xperm_b_pos[31:0] < 32'd32) + // xperm_b_r[31:0] = xperm_b_r[31:0] | ( ((rs1_in[31:0] >> xperm_b_pos[4:0]) & {24'h0,xperm_b_mask[7:0]}) << xperm_b_i ); + // end + // end + + logic [31:0] xperm_n; + logic [31:0] xperm_b; + logic [31:0] xperm_h; + + assign xperm_n[03:00] = { 4{ ~rs2_in[03] }} & ( (rs1_in[31:0] >> {rs2_in[02:00],2'b0}) & 4'hf ); // This is a 8:1 mux with qualified selects + assign xperm_n[07:04] = { 4{ ~rs2_in[07] }} & ( (rs1_in[31:0] >> {rs2_in[06:04],2'b0}) & 4'hf ); + assign xperm_n[11:08] = { 4{ ~rs2_in[11] }} & ( (rs1_in[31:0] >> {rs2_in[10:08],2'b0}) & 4'hf ); + assign xperm_n[15:12] = { 4{ ~rs2_in[15] }} & ( (rs1_in[31:0] >> {rs2_in[14:12],2'b0}) & 4'hf ); + assign xperm_n[19:16] = { 4{ ~rs2_in[19] }} & ( (rs1_in[31:0] >> {rs2_in[18:16],2'b0}) & 4'hf ); + assign xperm_n[23:20] = { 4{ ~rs2_in[23] }} & ( (rs1_in[31:0] >> {rs2_in[22:20],2'b0}) & 4'hf ); + assign xperm_n[27:24] = { 4{ ~rs2_in[27] }} & ( (rs1_in[31:0] >> {rs2_in[26:24],2'b0}) & 4'hf ); + assign xperm_n[31:28] = { 4{ ~rs2_in[31] }} & ( (rs1_in[31:0] >> {rs2_in[30:28],2'b0}) & 4'hf ); + + assign xperm_b[07:00] = { 8{ ~(| rs2_in[07:02]) }} & ( (rs1_in[31:0] >> {rs2_in[01:00],3'b0}) & 8'hff ); // This is a 4:1 mux with qualified selects + assign xperm_b[15:08] = { 8{ ~(| rs2_in[15:10]) }} & ( (rs1_in[31:0] >> {rs2_in[09:08],3'b0}) & 8'hff ); + assign xperm_b[23:16] = { 8{ ~(| rs2_in[23:18]) }} & ( (rs1_in[31:0] >> {rs2_in[17:16],3'b0}) & 8'hff ); + assign xperm_b[31:24] = { 8{ ~(| rs2_in[31:26]) }} & ( (rs1_in[31:0] >> {rs2_in[25:24],3'b0}) & 8'hff ); + + assign xperm_h[15:00] = {16{ ~(| rs2_in[15:01]) }} & ( (rs1_in[31:0] >> {rs2_in[00] ,4'b0}) & 16'hffff ); // This is a 2:1 mux with qualified selects + assign xperm_h[31:16] = {16{ ~(| rs2_in[31:17]) }} & ( (rs1_in[31:0] >> {rs2_in[16] ,4'b0}) & 16'hffff ); + + + + // * * * * * * * * * * * * * * * * * * BitManip : CRC32, CRC32c * * * * * * * * * * * * * * * * * // *** computed from https: //crccalc.com *** @@ -564,12 +657,26 @@ import el2_pkg::*; // * * * * * * * * * * * * * * * * * * BitManip : BFP * * * * * * * * * * * * * * * * * * + + // uint_xlen_t bfp(uint_xlen_t rs1, uint_xlen_t rs2) + // { + // uint_xlen_t cfg = rs2 >> (XLEN/2); + // if ((cfg >> 30) == 2) cfg = cfg >> 16; + // int len = (cfg >> 8) & (XLEN/2-1); + // int off = cfg & (XLEN-1); + // len = len ? len : XLEN/2; + // uint_xlen_t mask = slo(0, len) << off; + // uint_xlen_t data = rs2 << off; + // return (data & mask) | (rs1 & ~mask); + + logic [4:0] bfp_len; logic [4:0] bfp_off; logic [31:0] bfp_len_mask_; + logic [31:0] bfp_off_mask_; logic [15:0] bfp_preshift_data; - logic [63:0] bfp_shift_data; - logic [63:0] bfp_shift_mask; + logic [31:0] bfp_shift_data; + logic [31:0] bfp_shift_mask; logic [31:0] bfp_result_d; @@ -578,13 +685,13 @@ import el2_pkg::*; assign bfp_off[4:0] = rs2_in[20:16]; assign bfp_len_mask_[31:0] = 32'hffff_ffff << bfp_len[4:0]; + assign bfp_off_mask_[31:0] = 32'hffff_ffff << bfp_off[4:0]; assign bfp_preshift_data[15:0]= rs2_in[15:0] & ~bfp_len_mask_[15:0]; - assign bfp_shift_data[63:0] = {16'b0,bfp_preshift_data[15:0], 16'b0,bfp_preshift_data[15:0]} << bfp_off[4:0]; - assign bfp_shift_mask[63:0] = {bfp_len_mask_[31:0], bfp_len_mask_[31:0]} << bfp_off[4:0]; - - assign bfp_result_d[31:0] = bfp_shift_data[63:32] | (rs1_in[31:0] & bfp_shift_mask[63:32]); + assign bfp_shift_data[31:0] = {16'b0,bfp_preshift_data[15:0]} << bfp_off[4:0]; + assign bfp_shift_mask[31:0] = (bfp_len_mask_[31:0] << bfp_off[4:0]) | ~bfp_off_mask_[31:0]; + assign bfp_result_d[31:0] = bfp_shift_data[31:0] | (rs1_in[31:0] & bfp_shift_mask[31:0]); @@ -592,24 +699,27 @@ import el2_pkg::*; // * * * * * * * * * * * * * * * * * * BitManip : Common logic * * * * * * * * * * * * * * * * * * - assign bitmanip_sel_d = ap_bext | ap_bdep | ap_clmul | ap_clmulh | ap_clmulr | ap_grev | ap_gorc | ap_shfl | ap_unshfl | crc32_all | ap_bfp; + assign bitmanip_sel_d = ap_bcompress | ap_bdecompress | ap_clmul | ap_clmulh | ap_clmulr | ap_grev | ap_gorc | ap_shfl | ap_unshfl | crc32_all | ap_bfp | ap_xperm_n | ap_xperm_b | ap_xperm_h; - assign bitmanip_d[31:0] = ( {32{ap_bext}} & bext_d[31:0] ) | - ( {32{ap_bdep}} & bdep_d[31:0] ) | - ( {32{ap_clmul}} & clmul_raw_d[31:0] ) | - ( {32{ap_clmulh}} & {1'b0,clmul_raw_d[62:32]} ) | - ( {32{ap_clmulr}} & clmul_raw_d[62:31] ) | - ( {32{ap_grev}} & grev_d[31:0] ) | - ( {32{ap_gorc}} & gorc_d[31:0] ) | - ( {32{ap_shfl}} & shfl_d[31:0] ) | - ( {32{ap_unshfl}} & unshfl_d[31:0] ) | - ( {32{ap_crc32_b}} & crc32_bd[31:0] ) | - ( {32{ap_crc32_h}} & crc32_hd[31:0] ) | - ( {32{ap_crc32_w}} & crc32_wd[31:0] ) | - ( {32{ap_crc32c_b}} & crc32c_bd[31:0] ) | - ( {32{ap_crc32c_h}} & crc32c_hd[31:0] ) | - ( {32{ap_crc32c_w}} & crc32c_wd[31:0] ) | - ( {32{ap_bfp}} & bfp_result_d[31:0] ); + assign bitmanip_d[31:0] = ( {32{ap_bcompress}} & bcompress_d[31:0] ) | + ( {32{ap_bdecompress}} & bdecompress_d[31:0] ) | + ( {32{ap_clmul}} & clmul_raw_d[31:0] ) | + ( {32{ap_clmulh}} & {1'b0,clmul_raw_d[62:32]} ) | + ( {32{ap_clmulr}} & clmul_raw_d[62:31] ) | + ( {32{ap_grev}} & grev_d[31:0] ) | + ( {32{ap_gorc}} & gorc_d[31:0] ) | + ( {32{ap_shfl}} & shfl_d[31:0] ) | + ( {32{ap_unshfl}} & unshfl_d[31:0] ) | + ( {32{ap_crc32_b}} & crc32_bd[31:0] ) | + ( {32{ap_crc32_h}} & crc32_hd[31:0] ) | + ( {32{ap_crc32_w}} & crc32_wd[31:0] ) | + ( {32{ap_crc32c_b}} & crc32c_bd[31:0] ) | + ( {32{ap_crc32c_h}} & crc32c_hd[31:0] ) | + ( {32{ap_crc32c_w}} & crc32c_wd[31:0] ) | + ( {32{ap_bfp}} & bfp_result_d[31:0] ) | + ( {32{ap_xperm_n}} & xperm_n[31:0] ) | + ( {32{ap_xperm_b}} & xperm_b[31:0] ) | + ( {32{ap_xperm_h}} & xperm_h[31:0] ); diff --git a/design/flist b/design/flist new file mode 100644 index 0000000..179e8ee --- /dev/null +++ b/design/flist @@ -0,0 +1,43 @@ +$RV_ROOT/design/el2_swerv_wrapper.sv +$RV_ROOT/design/el2_mem.sv +$RV_ROOT/design/el2_pic_ctrl.sv +$RV_ROOT/design/el2_swerv.sv +$RV_ROOT/design/el2_dma_ctrl.sv +$RV_ROOT/design/ifu/el2_ifu_aln_ctl.sv +$RV_ROOT/design/ifu/el2_ifu_compress_ctl.sv +$RV_ROOT/design/ifu/el2_ifu_ifc_ctl.sv +$RV_ROOT/design/ifu/el2_ifu_bp_ctl.sv +$RV_ROOT/design/ifu/el2_ifu_ic_mem.sv +$RV_ROOT/design/ifu/el2_ifu_mem_ctl.sv +$RV_ROOT/design/ifu/el2_ifu_iccm_mem.sv +$RV_ROOT/design/ifu/el2_ifu.sv +$RV_ROOT/design/dec/el2_dec_decode_ctl.sv +$RV_ROOT/design/dec/el2_dec_gpr_ctl.sv +$RV_ROOT/design/dec/el2_dec_ib_ctl.sv +$RV_ROOT/design/dec/el2_dec_tlu_ctl.sv +$RV_ROOT/design/dec/el2_dec_trigger.sv +$RV_ROOT/design/dec/el2_dec.sv +$RV_ROOT/design/exu/el2_exu_alu_ctl.sv +$RV_ROOT/design/exu/el2_exu_mul_ctl.sv +$RV_ROOT/design/exu/el2_exu_div_ctl.sv +$RV_ROOT/design/exu/el2_exu.sv +$RV_ROOT/design/lsu/el2_lsu.sv +$RV_ROOT/design/lsu/el2_lsu_clkdomain.sv +$RV_ROOT/design/lsu/el2_lsu_addrcheck.sv +$RV_ROOT/design/lsu/el2_lsu_lsc_ctl.sv +$RV_ROOT/design/lsu/el2_lsu_stbuf.sv +$RV_ROOT/design/lsu/el2_lsu_bus_buffer.sv +$RV_ROOT/design/lsu/el2_lsu_bus_intf.sv +$RV_ROOT/design/lsu/el2_lsu_ecc.sv +$RV_ROOT/design/lsu/el2_lsu_dccm_mem.sv +$RV_ROOT/design/lsu/el2_lsu_dccm_ctl.sv +$RV_ROOT/design/lsu/el2_lsu_trigger.sv +$RV_ROOT/design/dbg/el2_dbg.sv +$RV_ROOT/design/dmi/dmi_wrapper.v +$RV_ROOT/design/dmi/dmi_jtag_to_core_sync.v +$RV_ROOT/design/dmi/rvjtag_tap.v +$RV_ROOT/design/lib/el2_lib.sv +-v $RV_ROOT/design/lib/beh_lib.sv +-v $RV_ROOT/design/lib/mem_lib.sv +$RV_ROOT/design/lib/ahb_to_axi4.sv +$RV_ROOT/design/lib/axi4_to_ahb.sv diff --git a/design/ifu/el2_ifu_aln_ctl.sv b/design/ifu/el2_ifu_aln_ctl.sv index 9deda1b..59eb97f 100644 --- a/design/ifu/el2_ifu_aln_ctl.sv +++ b/design/ifu/el2_ifu_aln_ctl.sv @@ -186,8 +186,8 @@ import el2_pkg::*; logic consume_fb1, consume_fb0; logic [1:0] icaf_eff; - localparam BRDATA_SIZE = pt.BTB_ENABLE ? 16+($clog2(pt.BTB_SIZE)*2*pt.BTB_FULLYA) : 2; - localparam BRDATA_WIDTH = pt.BTB_ENABLE ? 8+($clog2(pt.BTB_SIZE)*pt.BTB_FULLYA) : 1; + localparam BRDATA_SIZE = pt.BTB_ENABLE ? 16+($clog2(pt.BTB_SIZE)*2*pt.BTB_FULLYA) : 4; + localparam BRDATA_WIDTH = pt.BTB_ENABLE ? 8+($clog2(pt.BTB_SIZE)*pt.BTB_FULLYA) : 2; logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0; logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff; logic [BRDATA_SIZE-1:0] brdata1final, brdata0final; @@ -229,8 +229,9 @@ else begin .din({qwen[2] ? {misc_data_in[MHI:0], brdata_in[BRDATA_SIZE-1:0]} : {misc2[MHI:0], brdata2[BRDATA_SIZE-1:0]}, qwen[1] ? {misc_data_in[MHI:0], brdata_in[BRDATA_SIZE-1:0]} : {misc1[MHI:0], brdata1[BRDATA_SIZE-1:0]}, qwen[0] ? {misc_data_in[MHI:0], brdata_in[BRDATA_SIZE-1:0]} : {misc0[MHI:0], brdata0[BRDATA_SIZE-1:0]}}), - .dout({misc2[MHI:0],misc1[MHI:0],misc0[MHI:0], - brdata2[BRDATA_SIZE-1:0], brdata1[BRDATA_SIZE-1:0], brdata0[BRDATA_SIZE-1:0]}) + .dout({misc2[MHI:0], brdata2[BRDATA_SIZE-1:0], + misc1[MHI:0], brdata1[BRDATA_SIZE-1:0], + misc0[MHI:0], brdata0[BRDATA_SIZE-1:0]}) ); end @@ -395,7 +396,7 @@ end assign {brdata1eff[BRDATA_SIZE-1:0],brdata0eff[BRDATA_SIZE-1:0]} = (({BRDATA_SIZE*2{qren[0]}} & {brdata1[BRDATA_SIZE-1:0],brdata0[BRDATA_SIZE-1:0]}) | ({BRDATA_SIZE*2{qren[1]}} & {brdata2[BRDATA_SIZE-1:0],brdata1[BRDATA_SIZE-1:0]}) | - ({BRDATA_SIZE*2{qren[2]}} & {brdata0[BRDATA_SIZE-1:0],brdata2[BRDATA_SIZE-1:0]})); + ({BRDATA_SIZE*2{qren[2]}} & {brdata0[BRDATA_SIZE-1:0],brdata2[BRDATA_SIZE-1:0]})); assign brdata0final[BRDATA_SIZE-1:0] = (({BRDATA_SIZE{q0sel[0]}} & { brdata0eff[2*BRDATA_WIDTH-1:0]}) | ({BRDATA_SIZE{q0sel[1]}} & {{BRDATA_WIDTH{1'b0}},brdata0eff[BRDATA_SIZE-1:BRDATA_WIDTH]})); diff --git a/design/ifu/el2_ifu_bp_ctl.sv b/design/ifu/el2_ifu_bp_ctl.sv index 6c2f6e5..3e16391 100644 --- a/design/ifu/el2_ifu_bp_ctl.sv +++ b/design/ifu/el2_ifu_bp_ctl.sv @@ -721,10 +721,10 @@ end // if (!pt.BTB_FULLYA) always_comb begin btb_vbank0_rd_data_f = '0; btb_vbank1_rd_data_f = '0; - btb_tag_hit = '0; - btb_upper_hit = '0; - btb_offset_0 = '0; - btb_offset_1 = '0; +// btb_tag_hit = '0; +// btb_upper_hit = '0; +// btb_offset_0 = '0; +// btb_offset_1 = '0; found1 = 1'b0; hit0 = 1'b0; @@ -734,22 +734,28 @@ end // if (!pt.BTB_FULLYA) btb_fa_wr_addr0 = '0; for(int i=0; iTM 1.4 from Western Digital + +* Upgraded bit-manipulation support for Zba, Zbb, Zbc, Zbe, Zbf, Zbp, Zbr, Zbs to `0.94` draft spec. + * Zba, Zbb, Zbc and Zbs are enabled by default. Use `-set=bitmanip_zb*=1` to enable other sub-extensions. +* Simulation performance improvement coding style changes in branch predictor and PIC +* Several corner case and exotic bug fixes : + * MPC run ack timing + * Force halt mechanism and MPC + * Store data collision with DCCM DMA error when address is 0x0 + * RAW hazard on mtdata1 + * Errors on DMA access could leak into Dbg abstract cmd ocurring at same time + * Icache parity error and branch error collision leading to fwd progress issue +* Fixed linter warning for async reset + + # EL2 SweRV RISC-V CoreTM 1.3 from Western Digital @@ -8,10 +23,10 @@ * Significantly lower power in sleep as well as normal operation. * Enhanced debug memory abstract command to access internal as well as external memories * Added bit-manipulation support for Zba, Zbb, Zbc, Zbe, Zbf, Zbp, Zbr, Zbs (Jan 29, 2020 Draft spec). - * Zbs and Zbb are enabled by default. Use -set=bitmanip+zb*=1 to enable other sub-extensions. + * Zbs and Zbb are enabled by default. Use `-set=bitmanip_zb*=1` to enable other sub-extensions. * Enhancements and additional configurations options for a faster divider -* JTAG controller intial state issue fixed -* Branch predictor fully-associative mode for 8,16,32 entries. +* JTAG bypass register intial state issue fixed +* New branch predictor fully-associative option with 8,16,32 entries. * Corner case bugs fixes related to * Bus protocol corner cases (ahb) * Fetch bus error recording improved accuracy @@ -25,7 +40,7 @@ * Handling bigger test sizes using associative arrays in external memory slaves, * simplified test building process and CCM loading functions (only program.hex is generated, no data.hex) * Improved Makefile and example tests (see README) - * Generating crt0 and link.ld from swerv.config + * Generating link.ld with swerv.config # EL2 SweRV RISC-V CoreTM 1.2 from Western Digital ## Release Notes diff --git a/testbench/asm/printf.c b/testbench/asm/printf.c index aab027b..c25f4bc 100644 --- a/testbench/asm/printf.c +++ b/testbench/asm/printf.c @@ -31,6 +31,8 @@ whisperPuts(const char* s) { while (*s) whisperPutc(*s++); + whisperPutc('\n'); +// whisperPutc(0xd); return 1; } diff --git a/testbench/dasm.svi b/testbench/dasm.svi index 777fdbe..aef232c 100644 --- a/testbench/dasm.svi +++ b/testbench/dasm.svi @@ -15,70 +15,71 @@ // // Run time disassembler functions -// supports RISCV extentions I, C, M +// supports RISCV extentions I, C, M, A +`ifndef RV_NUM_THREADS +`define RV_NUM_THREADS 1 +`endif -bit[31:0] gpr[32]; +bit[31:0] [31:0] gpr[`RV_NUM_THREADS]; // main DASM function -function string dasm(input[31:0] opcode, input[31:0] pc, input[4:0] regn, input[31:0] regv); - if(regn) gpr[regn] = regv; - - if( opcode[1:0] == 2'b11 ) return dasm32(opcode, pc); - else return dasm16(opcode, pc); +function string dasm(input[31:0] opcode, input[31:0] pc, input[4:0] regn, input[31:0] regv, input tid=0); + dasm = (opcode[1:0] == 2'b11) ? dasm32(opcode, pc, tid) : dasm16(opcode, pc, tid); + if(regn) gpr[tid][regn] = regv; endfunction ///////////////// 16 bits instructions /////////////////////// -function string dasm16( input[31:0] opcode, input[31:0] pc); +function string dasm16( input[31:0] opcode, input[31:0] pc, input tid=0); case(opcode[1:0]) - 0: return dasm16_0(opcode); + 0: return dasm16_0(opcode, tid); 1: return dasm16_1(opcode, pc); 2: return dasm16_2(opcode); endcase return $sformatf(".short 0x%h", opcode[15:0]); endfunction -function string dasm16_0( input[31:0] opcode); +function string dasm16_0( input[31:0] opcode, tid); case(opcode[15:13]) 3'b000: return dasm16_ciw(opcode); - 3'b001: return {"c.fld", dasm16_cl(opcode)}; - 3'b010: return {"c.lw", dasm16_cl(opcode)}; - 3'b011: return {"c.flw", dasm16_cl(opcode)}; - 3'b101: return {"c.fsd", dasm16_cl(opcode)}; - 3'b110: return {"c.sw", dasm16_cl(opcode)}; - 3'b111: return {"c.fsw", dasm16_cl(opcode)}; + 3'b001: return {"c.fld ", dasm16_cl(opcode, tid)}; + 3'b010: return {"c.lw ", dasm16_cl(opcode, tid)}; + 3'b011: return {"c.flw ", dasm16_cl(opcode, tid)}; + 3'b101: return {"c.fsd ", dasm16_cl(opcode, tid)}; + 3'b110: return {"c.sw ", dasm16_cl(opcode, tid)}; + 3'b111: return {"c.fsw ", dasm16_cl(opcode, tid)}; endcase - return $sformatf(".short 0x%h", opcode[15:0]); + return $sformatf(".short 0x%h", opcode[15:0]); endfunction function string dasm16_ciw( input[31:0] opcode); int imm; imm=0; - if(opcode[15:0] == 0) return ".short 0"; + if(opcode[15:0] == 0) return ".short 0"; {imm[5:4],imm[9:6],imm[2],imm[3]} = opcode[12:5]; - return $sformatf("c.addi4spn %s, 0x%0h", abi_reg[opcode[4:2]+8], imm); + return $sformatf("c.addi4spn %s,0x%0h", abi_reg[opcode[4:2]+8], imm); endfunction -function string dasm16_cl( input[31:0] opcode); +function string dasm16_cl( input[31:0] opcode, input tid=0); int imm; imm=0; imm[5:3] = opcode[12:10]; imm[7:6] = opcode[6:5]; - return $sformatf(" %s, %0d(%s) [%h]", abi_reg[opcode[4:2]+8], imm, abi_reg[opcode[9:7]+8], gpr[opcode[9:7]+8]+imm); + return $sformatf(" %s,%0d(%s) [%h]", abi_reg[opcode[4:2]+8], imm, abi_reg[opcode[9:7]+8], gpr[tid][opcode[9:7]+8]+imm); endfunction function string dasm16_1( input[31:0] opcode, input[31:0] pc); case(opcode[15:13]) - 3'b000: return opcode[11:7]==0 ? "c.nop" : {"c.addi",dasm16_ci(opcode)}; - 3'b001: return {"c.jal", dasm16_cj(opcode, pc)}; - 3'b010: return {"c.li", dasm16_ci(opcode)}; + 3'b000: return opcode[11:7]==0 ? "c.nop" : {"c.addi ",dasm16_ci(opcode)}; + 3'b001: return {"c.jal ", dasm16_cj(opcode, pc)}; + 3'b010: return {"c.li ", dasm16_ci(opcode)}; 3'b011: return dasm16_1_3(opcode); 3'b100: return dasm16_cr(opcode); - 3'b101: return {"c.j", dasm16_cj(opcode, pc)}; - 3'b110: return {"c.beqz", dasm16_cb(opcode, pc)}; - 3'b111: return {"c.bnez", dasm16_cb(opcode, pc)}; + 3'b101: return {"c.j ", dasm16_cj(opcode, pc)}; + 3'b110: return {"c.beqz ", dasm16_cb(opcode, pc)}; + 3'b111: return {"c.bnez ", dasm16_cb(opcode, pc)}; endcase endfunction @@ -87,7 +88,7 @@ int imm; imm=0; imm[4:0] = opcode[6:2]; if(opcode[12]) imm [31:5] = '1; - return $sformatf(" %s, %0d", abi_reg[opcode[11:7]], imm); + return $sformatf("%s,%0d", abi_reg[opcode[11:7]], imm); endfunction function string dasm16_cj( input[31:0] opcode, input[31:0] pc); @@ -95,16 +96,16 @@ bit[31:0] imm; imm=0; {imm[11],imm[4],imm[9:8],imm[10],imm[6], imm[7],imm[3:1], imm[5]} = opcode[12:2]; if(opcode[12]) imm [31:12] = '1; - return $sformatf(" 0x%h", imm+pc); + return $sformatf("0x%0h", imm+pc); endfunction function string dasm16_cb( input[31:0] opcode, input[31:0] pc); bit[31:0] imm; imm=0; - {imm[11],imm[4:3]} = opcode[12:10]; - {imm[7], imm[6],imm[2:1], imm[5]} = opcode[6:2]; + {imm[8],imm[4:3]} = opcode[12:10]; + {imm[7:6],imm[2:1], imm[5]} = opcode[6:2]; if(opcode[12]) imm [31:9] = '1; - return $sformatf(" %s, 0x%h",abi_reg[opcode[9:7]+8], imm+pc); + return $sformatf("%s,0x%0h",abi_reg[opcode[9:7]+8], imm+pc); endfunction function string dasm16_cr( input[31:0] opcode); @@ -114,16 +115,16 @@ bit[31:0] imm; imm[4:0] = opcode[6:2]; if(opcode[5]) imm [31:5] = '1; case(opcode[11:10]) - 0: return $sformatf("c.srli %s, %0d", abi_reg[opcode[9:7]+8], imm[5:0]); - 1: return $sformatf("c.srai %s, %0d", abi_reg[opcode[9:7]+8], imm[5:0]); - 2: return $sformatf("c.andi %s, 0x%h", abi_reg[opcode[9:7]+8], imm); + 0: return $sformatf("c.srli %s,%0d", abi_reg[opcode[9:7]+8], imm[5:0]); + 1: return $sformatf("c.srai %s,%0d", abi_reg[opcode[9:7]+8], imm[5:0]); + 2: return $sformatf("c.andi %s,0x%0h", abi_reg[opcode[9:7]+8], imm); endcase case(opcode[6:5]) - 0: return $sformatf("c.sub %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); - 1: return $sformatf("c.xor %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); - 2: return $sformatf("c.or %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); - 3: return $sformatf("c.and %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); + 0: return $sformatf("c.sub %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); + 1: return $sformatf("c.xor %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); + 2: return $sformatf("c.or %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); + 3: return $sformatf("c.and %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]); endcase endfunction @@ -137,78 +138,78 @@ int imm; return $sformatf("c.addi16sp %0d", imm); end else begin - // {imm[4], imm[6],imm[8:7], imm[5]} = opcode[6:2]; imm[16:12] = opcode[6:2]; if(opcode[12]) imm [31:17] = '1; - return $sformatf("c.lui %3s, 0x%h", abi_reg[opcode[11:7]], imm); + return $sformatf("c.lui %s,0x%0h", abi_reg[opcode[11:7]], imm); end endfunction -function string dasm16_2( input[31:0] opcode); +function string dasm16_2( input[31:0] opcode, input tid=0); case(opcode[15:13]) - 3'b000: return {"c.slli", dasm16_ci(opcode)}; - 3'b001: return {"c.fldsp", dasm16_cls(opcode,1)}; - 3'b010: return {"c.lwsp", dasm16_cls(opcode)}; - 3'b011: return {"c.flwsp", dasm16_cls(opcode)}; - 3'b101: return {"c.fsdsp", dasm16_css(opcode,1)}; - 3'b110: return {"c.swsp", dasm16_css(opcode)}; - 3'b111: return {"c.fswsp", dasm16_css(opcode)}; + 3'b000: return {"c.slli ", dasm16_ci(opcode)}; + 3'b001: return {"c.fldsp ", dasm16_cls(opcode,1,tid)}; + 3'b010: return {"c.lwsp ", dasm16_cls(opcode,0,tid)}; + 3'b011: return {"c.flwsp ", dasm16_cls(opcode,0,tid)}; + 3'b101: return {"c.fsdsp ", dasm16_css(opcode,1,tid)}; + 3'b110: return {"c.swsp ", dasm16_css(opcode,0,tid)}; + 3'b111: return {"c.fswsp ", dasm16_css(opcode,0,tid)}; endcase if(opcode[12]) begin if(opcode[12:2] == 0) return "c.ebreak"; - else if(opcode[6:2] == 0) return $sformatf("c.jalr %s", abi_reg[opcode[11:7]]); - else return $sformatf("c.add %s, %s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]); + else if(opcode[6:2] == 0) return $sformatf("c.jalr %s", abi_reg[opcode[11:7]]); + else return $sformatf("c.add %s,%s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]); end else begin - if(opcode[6:2] == 0) return $sformatf("c.jr %s", abi_reg[opcode[11:7]]); - else return $sformatf("c.mv %s, %s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]); + if(opcode[6:2] == 0) return $sformatf("c.jr %s", abi_reg[opcode[11:7]]); + else return $sformatf("c.mv %s,%s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]); end endfunction -function string dasm16_cls( input[31:0] opcode, input sh1=0); +function string dasm16_cls( input[31:0] opcode, input sh1=0, tid=0); bit[31:0] imm; imm=0; if(sh1) {imm[4:3],imm[8:6]} = opcode[6:2]; else {imm[4:2],imm[7:6]} = opcode[6:2]; imm[5] = opcode[12]; - return $sformatf(" %s, 0x%0h [%h]", abi_reg[opcode[11:7]], imm, gpr[2]+imm); + return $sformatf("%s,0x%0h [%h]", abi_reg[opcode[11:7]], imm, gpr[tid][2]+imm); endfunction -function string dasm16_css( input[31:0] opcode, input sh1=0); +function string dasm16_css( input[31:0] opcode, input sh1=0, tid=0); bit[31:0] imm; imm=0; if(sh1) {imm[5:3],imm[8:6]} = opcode[12:7]; else {imm[5:2],imm[7:6]} = opcode[12:7]; - return $sformatf(" %s, 0x%0h [%h]", abi_reg[opcode[6:2]], imm, gpr[2]+imm); + return $sformatf("%s,0x%0h [%h]", abi_reg[opcode[6:2]], imm, gpr[tid][2]+imm); endfunction ///////////////// 32 bit instructions /////////////////////// -function string dasm32( input[31:0] opcode, input[31:0] pc); +function string dasm32( input[31:0] opcode, input[31:0] pc, input tid=0); case(opcode[6:0]) - 7'b0110111: return {"lui", dasm32_u(opcode)}; - 7'b0010111: return {"auipc", dasm32_u(opcode)}; - 7'b1101111: return {"jal", dasm32_j(opcode,pc)}; - 7'b1100111: return {"jalr", dasm32_jr(opcode,pc)}; + 7'b0110111: return {"lui ", dasm32_u(opcode)}; + 7'b0010111: return {"auipc ", dasm32_u(opcode)}; + 7'b1101111: return {"jal ", dasm32_j(opcode,pc)}; + 7'b1100111: return {"jalr ", dasm32_jr(opcode,pc)}; 7'b1100011: return dasm32_b(opcode,pc); - 7'b0000011: return dasm32_l(opcode); - 7'b0100011: return dasm32_s(opcode); + 7'b0000011: return dasm32_l(opcode,tid); + 7'b0100011: return dasm32_s(opcode,tid); 7'b0010011: return dasm32_ai(opcode); 7'b0110011: return dasm32_ar(opcode); 7'b0001111: return {"fence", dasm32_fence(opcode)}; 7'b1110011: return dasm32_e(opcode); + 7'b0101111: return dasm32_a(opcode,tid); endcase - return $sformatf(".long 0x%h", opcode); + return $sformatf(".long 0x%h", opcode); endfunction function string dasm32_u( input[31:0] opcode); bit[31:0] imm; imm=0; imm[31:12] = opcode[31:12]; - return $sformatf(" %s, 0x%0h", abi_reg[opcode[11:7]], imm); + return $sformatf("%s,0x%0h", abi_reg[opcode[11:7]], imm); endfunction function string dasm32_j( input[31:0] opcode, input[31:0] pc); @@ -216,7 +217,7 @@ int imm; imm=0; {imm[20], imm[10:1], imm[11], imm[19:12]} = opcode[31:12]; if(opcode[31]) imm[31:20] = '1; - return $sformatf(" %s, 0x%0h",abi_reg[opcode[11:7]], imm+pc); + return $sformatf("%s,0x%0h",abi_reg[opcode[11:7]], imm+pc); endfunction function string dasm32_jr( input[31:0] opcode, input[31:0] pc); @@ -224,7 +225,7 @@ int imm; imm=0; imm[11:1] = opcode[31:19]; if(opcode[31]) imm[31:12] = '1; - return $sformatf(" %s, %s, 0x%0h",abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm+pc); + return $sformatf("%s,%s,0x%0h",abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm+pc); endfunction function string dasm32_b( input[31:0] opcode, input[31:0] pc); @@ -235,35 +236,35 @@ string mn; {imm[4:1],imm[11]} = opcode[11:7]; if(opcode[31]) imm[31:12] = '1; case(opcode[14:12]) - 0: mn = "beq"; - 1: mn = "bne"; - 2,3 : return $sformatf(".long 0x%h", opcode); - 4: mn = "blt"; - 5: mn = "bge"; - 6: mn = "bltu"; - 7: mn = "bgeu"; + 0: mn = "beq "; + 1: mn = "bne "; + 2,3 : return $sformatf(".long 0x%h", opcode); + 4: mn = "blt "; + 5: mn = "bge "; + 6: mn = "bltu "; + 7: mn = "bgeu "; endcase - return $sformatf("%s %s, %s, 0x%0h", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm+pc); + return $sformatf("%s%s,%s,0x%0h", mn, abi_reg[opcode[19:15]], abi_reg[opcode[24:20]], imm+pc); endfunction -function string dasm32_l( input[31:0] opcode); +function string dasm32_l( input[31:0] opcode, input tid=0); int imm; string mn; imm=0; imm[11:0] = opcode[31:20]; if(opcode[31]) imm[31:12] = '1; case(opcode[14:12]) - 0: mn = "lb"; - 1: mn = "lh"; - 2: mn = "lw"; - 4: mn = "lbu"; - 5: mn = "lhu"; - default : return $sformatf(".long 0x%h", opcode); + 0: mn = "lb "; + 1: mn = "lh "; + 2: mn = "lw "; + 4: mn = "lbu "; + 5: mn = "lhu "; + default : return $sformatf(".long 0x%h", opcode); endcase - return $sformatf("%s %s, %0d(%s) [%h]", mn, abi_reg[opcode[11:7]], imm, abi_reg[opcode[19:15]], imm+gpr[opcode[19:15]]); + return $sformatf("%s%s,%0d(%s) [%h]", mn, abi_reg[opcode[11:7]], imm, abi_reg[opcode[19:15]], imm+gpr[tid][opcode[19:15]]); endfunction -function string dasm32_s( input[31:0] opcode); +function string dasm32_s( input[31:0] opcode, input tid=0); int imm; string mn; imm=0; @@ -271,12 +272,12 @@ string mn; imm[4:0] = opcode[11:7]; if(opcode[31]) imm[31:12] = '1; case(opcode[14:12]) - 0: mn = "sb"; - 1: mn = "sh"; - 2: mn = "sw"; - default : return $sformatf(".long 0x%h", opcode); + 0: mn = "sb "; + 1: mn = "sh "; + 2: mn = "sw "; + default : return $sformatf(".long 0x%h", opcode); endcase - return $sformatf("%s %s, %0d(%s) [%h]", mn, abi_reg[opcode[24:20]], imm, abi_reg[opcode[19:15]], imm+gpr[opcode[19:15]]); + return $sformatf("%s%s,%0d(%s) [%h]", mn, abi_reg[opcode[24:20]], imm, abi_reg[opcode[19:15]], imm+gpr[tid][opcode[19:15]]); endfunction function string dasm32_ai( input[31:0] opcode); @@ -286,16 +287,16 @@ string mn; imm[11:0] = opcode[31:20]; if(opcode[31]) imm[31:12] = '1; case(opcode[14:12]) - 0: mn = "addi"; - 2: mn = "slti"; - 3: mn = "sltiu"; - 4: mn = "xori"; - 6: mn = "ori"; - 7: mn = "andi"; + 0: mn = "addi "; + 2: mn = "slti "; + 3: mn = "sltiu "; + 4: mn = "xori "; + 6: mn = "ori "; + 7: mn = "andi "; default: return dasm32_si(opcode); endcase -return $sformatf("%s %s, %s, %0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm); +return $sformatf("%s%s,%s,%0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm); endfunction function string dasm32_si( input[31:0] opcode); @@ -307,7 +308,7 @@ string mn; 5: mn = opcode[30] ? "srli": "srai"; endcase - return $sformatf("%s %s, %s, %0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm); + return $sformatf("%s %s,%s,%0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm); endfunction @@ -316,27 +317,27 @@ function string dasm32_ar( input[31:0] opcode); string mn; if(opcode[25]) case(opcode[14:12]) - 0: mn = "mul"; - 1: mn = "mulh"; - 2: mn = "mulhsu"; - 3: mn = "mulhu"; - 4: mn = "div"; - 5: mn = "divu"; - 6: mn = "rem"; - 7: mn = "remu"; + 0: mn = "mul "; + 1: mn = "mulh "; + 2: mn = "mulhsu "; + 3: mn = "mulhu "; + 4: mn = "div "; + 5: mn = "divu "; + 6: mn = "rem "; + 7: mn = "remu "; endcase else case(opcode[14:12]) - 0: mn = opcode[30]? "sub":"add"; - 1: mn = "sll"; - 2: mn = "slt"; - 3: mn = "sltu"; - 4: mn = "xor"; - 5: mn = opcode[30]? "sra" :"srl"; - 6: mn = "or"; - 7: mn = "and"; + 0: mn = opcode[30]? "sub ":"add "; + 1: mn = "sll "; + 2: mn = "slt "; + 3: mn = "sltu "; + 4: mn = "xor "; + 5: mn = opcode[30]? "sra ":"srl "; + 6: mn = "or "; + 7: mn = "and "; endcase - return $sformatf("%s %s, %s, %s", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], abi_reg[opcode[24:20]]); + return $sformatf("%s%s,%s,%s", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], abi_reg[opcode[24:20]]); endfunction function string dasm32_fence( input[31:0] opcode); @@ -348,12 +349,12 @@ function string dasm32_e(input[31:0] opcode); else if({opcode[31:21],opcode [19:7]} == 0) return "ebreak"; else case(opcode[14:12]) - 1: return {"csrrw", dasm32_csr(opcode)}; - 2: return {"csrrs", dasm32_csr(opcode)}; - 3: return {"csrrc", dasm32_csr(opcode)}; - 5: return {"csrrwi", dasm32_csr(opcode, 1)}; - 6: return {"csrrsi", dasm32_csr(opcode, 1)}; - 7: return {"csrrci", dasm32_csr(opcode, 1)}; + 1: return {"csrrw ", dasm32_csr(opcode)}; + 2: return {"csrrs ", dasm32_csr(opcode)}; + 3: return {"csrrc ", dasm32_csr(opcode)}; + 5: return {"csrrwi ", dasm32_csr(opcode, 1)}; + 6: return {"csrrsi ", dasm32_csr(opcode, 1)}; + 7: return {"csrrci ", dasm32_csr(opcode, 1)}; endcase endfunction @@ -363,12 +364,32 @@ function string dasm32_csr(input[31:0] opcode, input im=0); bit[11:0] csr; csr = opcode[31:20]; if(im) begin - return $sformatf(" %s, csr_%0h, 0x%h", abi_reg[opcode[11:7]], csr, opcode[19:15]); + return $sformatf("%s,csr_%0h,0x%h", abi_reg[opcode[11:7]], csr, opcode[19:15]); end else begin - return $sformatf(" %s, csr_%0h, %s", abi_reg[opcode[11:7]], csr, abi_reg[opcode[19:15]]); + return $sformatf("%s,csr_%0h,%s", abi_reg[opcode[11:7]], csr, abi_reg[opcode[19:15]]); end endfunction +//atomics +function string dasm32_a(input[31:0] opcode, input tid=0); + case(opcode[31:27]) + 'b00010: return $sformatf("lr.w %s,(%s) [%h]", abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], gpr[tid][opcode[19:15]]); + 'b00011: return $sformatf("sc.w %s,%s,(%s) [%h]", abi_reg[opcode[11:7]], abi_reg[opcode[24:20]], abi_reg[opcode[19:15]], gpr[tid][opcode[19:15]]); + 'b00001: return {"amoswap.w", dasm32_amo(opcode, tid)}; + 'b00000: return {"amoadd.w", dasm32_amo(opcode, tid)}; + 'b00100: return {"amoxor.w", dasm32_amo(opcode, tid)}; + 'b01100: return {"amoand.w", dasm32_amo(opcode, tid)}; + 'b01000: return {"amoor.w", dasm32_amo(opcode, tid)}; + 'b10000: return {"amomin.w", dasm32_amo(opcode, tid)}; + 'b10100: return {"amomax.w", dasm32_amo(opcode, tid)}; + 'b11000: return {"amominu.w", dasm32_amo(opcode, tid)}; + 'b11100: return {"amomaxu.w", dasm32_amo(opcode, tid)}; + endcase + return $sformatf(".long 0x%h", opcode); +endfunction +function string dasm32_amo( input[31:0] opcode, input tid=0); + return $sformatf(" %s,%s,(%s) [%h]", abi_reg[opcode[11:7]], abi_reg[opcode[24:20]], abi_reg[opcode[19:15]], gpr[tid][opcode[19:15]]); +endfunction diff --git a/testbench/hex/cmark_dccm.hex b/testbench/hex/cmark_dccm.hex index 119b842..568823e 100755 --- a/testbench/hex/cmark_dccm.hex +++ b/testbench/hex/cmark_dccm.hex @@ -1,2169 +1,2046 @@ @00000000 -00 00 00 00 B7 52 55 5F 93 82 52 55 73 90 02 7C -17 11 04 F0 13 01 01 5D EF 70 F0 11 97 05 00 00 -93 85 45 FE 05 45 88 C1 B7 02 58 D0 13 03 F0 0F -23 80 62 00 E3 0A 00 FE 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 03 47 05 00 -E3 09 07 2A 39 71 B7 02 04 F0 22 DE 26 DC 2A 86 -4A DA 4E D8 52 D6 56 D4 5A D2 5E D0 01 45 13 0E -50 02 37 08 58 D0 93 08 00 03 93 03 D0 02 93 04 -A0 02 13 04 00 02 93 82 02 00 93 0F B1 00 25 4F -A9 4E 19 A8 BE 86 23 00 E8 00 B2 87 05 05 36 86 -03 C7 17 00 63 06 07 20 93 07 16 00 E3 14 C7 FF -03 43 16 00 63 0E 03 1E 09 06 63 05 C3 1F E3 15 -13 23 03 C7 17 00 3E 86 85 07 BE 86 63 12 17 07 -03 C7 17 00 3E 86 85 07 63 1C 17 05 03 C7 26 00 -3E 86 93 87 26 00 63 15 17 05 03 C7 36 00 3E 86 -93 87 36 00 63 1E 17 03 03 C7 46 00 3E 86 93 87 -46 00 63 17 17 03 03 C7 56 00 3E 86 93 87 56 00 -63 10 17 03 03 C7 66 00 3E 86 93 87 66 00 63 19 -17 01 03 C7 76 00 3E 86 93 87 76 00 E3 0B 17 F9 -09 06 63 08 77 02 63 0C 97 02 93 09 07 FD 13 F9 -F9 0F 81 46 63 73 2F 0B 13 07 87 FA 13 79 F7 0F -E3 68 24 F5 13 1A 29 00 B3 0B 5A 00 83 A9 0B 00 -82 89 03 C7 17 00 B2 87 05 06 E3 18 97 FC 03 C7 -17 00 91 05 B2 87 81 46 05 06 F9 B7 03 47 59 00 -13 9B 26 00 B3 0A DB 00 93 0B 07 FD 93 96 1A 00 -93 F9 FB 0F 3E 86 D2 96 93 07 59 00 63 62 3F 11 -03 47 69 00 13 96 26 00 33 0B D6 00 13 0A 07 FD -93 16 1B 00 93 7A FA 0F 3E 86 DE 96 93 07 69 00 -63 60 5F 0F 03 47 79 00 93 9B 26 00 33 86 DB 00 -93 09 07 FD 13 1B 16 00 93 FA F9 0F 3E 86 B3 06 -6A 01 93 07 79 00 63 6D 5F 0B 03 C7 17 00 13 9A -26 00 B3 0A DA 00 13 0B 07 FD 3E 86 93 9B 1A 00 -85 07 13 7A FB 0F 3E 89 B3 86 79 01 63 6A 4F 09 -03 C7 17 00 93 99 26 00 CE 96 93 0B 07 FD 13 9A -16 00 93 FA FB 0F 3E 86 B3 06 4B 01 85 07 63 69 -5F 07 03 47 29 00 13 96 26 00 33 0B D6 00 13 0A -07 FD 93 19 1B 00 93 7A FA 0F 3E 86 B3 86 3B 01 -93 07 29 00 63 66 5F 05 03 47 39 00 93 9B 26 00 -DE 96 13 0B 07 FD 93 99 16 00 93 7A FB 0F 3E 86 -B3 06 3A 01 93 07 39 00 63 64 5F 03 03 47 49 00 -13 96 26 00 B3 0B D6 00 13 0A 07 FD 93 96 1B 00 -93 79 FA 0F 3E 86 DA 96 93 07 49 00 E3 70 3F EF -09 06 5D B5 23 00 C8 01 03 C7 17 00 E3 1E 07 DE -72 54 E2 54 52 59 C2 59 32 5A A2 5A 12 5B 82 5B -21 61 82 80 98 41 81 49 91 05 11 A0 B6 89 93 7A -F7 00 13 83 7A 05 63 44 5F 01 13 83 0A 03 93 86 -19 00 13 0B C1 00 33 0A DB 00 A3 0F 6A FE 11 83 -71 FF 13 09 C1 00 33 07 39 01 B3 09 F7 41 93 FA -79 00 63 89 0A 06 85 4B 63 8F 7A 05 09 43 63 87 -6A 04 0D 4B 63 8F 6A 03 11 4A 63 87 4A 03 15 49 -63 8F 2A 01 99 49 63 87 3A 01 83 4A 07 00 7D 17 -23 00 58 01 83 4B 07 00 7D 17 23 00 78 01 03 43 -07 00 7D 17 23 00 68 00 03 4B 07 00 7D 17 23 00 -68 01 03 4A 07 00 7D 17 23 00 48 01 03 49 07 00 -7D 17 23 00 28 01 83 49 07 00 7D 17 23 00 38 01 -63 05 F7 05 83 4A 07 00 61 17 23 00 58 01 83 4B -77 00 23 00 78 01 03 43 67 00 23 00 68 00 03 4B -57 00 23 00 68 01 03 4A 47 00 23 00 48 01 03 49 -37 00 23 00 28 01 83 49 27 00 23 00 38 01 83 4A -17 00 23 00 58 01 E3 1F F7 FB 36 95 D5 B1 03 C9 -05 00 05 05 91 05 23 00 28 01 D9 B9 03 AA 05 00 -01 49 91 05 B3 7A DA 03 4A 87 13 0B C1 00 05 09 -B3 0B 2B 01 CA 89 93 8A 0A 03 A3 8F 5B FF B3 5B -DA 03 63 78 4F 0F 4A 87 13 0B C1 00 05 09 B3 0A -2B 01 33 FA DB 03 13 0A 0A 03 A3 8F 4A FF 33 DA -DB 03 63 78 7F 0D 93 0B C1 00 4A 87 13 89 29 00 -33 8B 2B 01 B3 7A DA 03 93 8B 0A 03 A3 0F 7B FF -B3 5A DA 03 63 77 4F 0B 13 0A C1 00 4A 87 13 89 -39 00 33 0B 2A 01 B3 FB DA 03 13 8A 0B 03 A3 0F -4B FF B3 DB DA 03 63 76 5F 09 93 0A C1 00 4A 87 -13 89 49 00 33 8B 2A 01 33 FA DB 03 93 0A 0A 03 -A3 0F 5B FF B3 DA DB 03 63 75 7F 07 93 0B C1 00 -4A 87 13 89 59 00 33 8B 2B 01 33 FA DA 03 93 0B -0A 03 A3 0F 7B FF 33 DA DA 03 63 74 5F 05 93 0A -C1 00 4A 87 13 89 69 00 33 8B 2A 01 B3 7B DA 03 -93 8A 0B 03 A3 0F 5B FF 33 5B DA 03 63 73 4F 03 -4A 87 13 89 79 00 93 09 C1 00 33 8A 29 01 B3 7B -DB 03 93 8A 0B 03 A3 0F 5A FF 33 5A DB 03 E3 6B -6F EF CA 89 63 55 D9 08 33 8B 26 41 93 7B 7B 00 -63 8C 0B 04 85 4A 63 84 5B 05 09 4A 63 8E 4B 03 -0D 4B 63 88 6B 03 91 4A 63 82 5B 03 15 4A 63 8C -4B 01 19 4B 63 86 6B 01 23 00 68 00 93 09 19 00 -23 00 68 00 85 09 23 00 68 00 85 09 23 00 68 00 -85 09 23 00 68 00 85 09 23 00 68 00 85 09 23 00 -68 00 85 09 63 85 36 03 23 00 68 00 23 00 68 00 -23 00 68 00 23 00 68 00 23 00 68 00 23 00 68 00 -23 00 68 00 23 00 68 00 A1 09 E3 9F 36 FD 13 03 -C1 00 1A 97 B3 06 F7 41 93 FB 76 00 63 89 0B 06 -85 4A 63 8F 5B 05 09 4A 63 87 4B 05 0D 4B 63 8F -6B 03 91 49 63 87 3B 03 15 43 63 8F 6B 00 99 46 -63 87 DB 00 83 4B 07 00 7D 17 23 00 78 01 83 4A -07 00 7D 17 23 00 58 01 03 4A 07 00 7D 17 23 00 -48 01 03 4B 07 00 7D 17 23 00 68 01 83 49 07 00 -7D 17 23 00 38 01 03 43 07 00 7D 17 23 00 68 00 -83 46 07 00 7D 17 23 00 D8 00 63 05 F7 05 83 4B -07 00 61 17 23 00 78 01 83 4A 77 00 23 00 58 01 -03 4A 67 00 23 00 48 01 03 4B 57 00 23 00 68 01 -83 49 47 00 23 00 38 01 03 43 37 00 23 00 68 00 -83 46 27 00 23 00 D8 00 83 4B 17 00 23 00 78 01 -E3 1F F7 FB 4A 95 AD B4 98 41 91 05 83 4B 07 00 -63 82 0B 06 23 00 78 01 03 49 17 00 63 0C 09 04 -23 00 28 01 83 4A 27 00 63 86 0A 04 23 00 58 01 -03 4A 37 00 63 00 0A 04 23 00 48 01 03 4B 47 00 -63 0A 0B 02 23 00 68 01 83 49 57 00 63 84 09 02 -23 00 38 01 03 43 67 00 63 0E 03 00 23 00 68 00 -83 46 77 00 81 CA 21 07 23 00 D8 00 83 4B 07 00 -E3 92 0B FA 05 05 ED BA 03 A3 05 00 01 47 91 05 -BA 86 13 79 73 00 05 07 93 0A C1 00 33 8A EA 00 -13 0B 09 03 A3 0F 6A FF 93 5B 33 00 BA 89 63 88 -0B 0E 13 F9 7B 00 BA 86 93 0A C1 00 05 07 33 8A -EA 00 13 0B 09 03 A3 0F 6A FF 93 5B 63 00 63 88 -0B 0C 13 F9 7B 00 BA 86 93 0A C1 00 13 87 29 00 -33 8A EA 00 13 0B 09 03 A3 0F 6A FF 93 5B 93 00 -63 87 0B 0A 13 F9 7B 00 BA 86 93 0A C1 00 13 87 -39 00 33 8A EA 00 13 0B 09 03 A3 0F 6A FF 93 5B -C3 00 63 86 0B 08 13 F9 7B 00 BA 86 93 0A C1 00 -13 87 49 00 33 8A EA 00 13 0B 09 03 A3 0F 6A FF -93 5B F3 00 63 85 0B 06 13 F9 7B 00 BA 86 93 0A -C1 00 13 87 59 00 33 8A EA 00 13 0B 09 03 A3 0F -6A FF 93 5B 23 01 63 84 0B 04 13 F9 7B 00 BA 86 -93 0A C1 00 13 87 69 00 33 8A EA 00 13 0B 09 03 -A3 0F 6A FF 93 5B 53 01 63 83 0B 02 BA 86 13 F9 -7B 00 13 87 79 00 93 09 C1 00 B3 8A E9 00 13 0A -09 03 A3 8F 4A FF 13 53 83 01 E3 1B 03 EE 13 0B -C1 00 DA 96 B3 8B F6 41 93 F9 7B 00 63 89 09 06 -05 49 63 8F 29 05 89 4A 63 87 59 05 0D 4A 63 8F -49 03 11 43 63 87 69 02 15 4B 63 8F 69 01 99 4B -63 87 79 01 83 C9 06 00 FD 16 23 00 38 01 03 C9 -06 00 FD 16 23 00 28 01 83 CA 06 00 FD 16 23 00 -58 01 03 CA 06 00 FD 16 23 00 48 01 03 C3 06 00 -FD 16 23 00 68 00 03 CB 06 00 FD 16 23 00 68 01 -83 CB 06 00 FD 16 23 00 78 01 63 85 F6 05 83 C9 -06 00 E1 16 23 00 38 01 03 C9 76 00 23 00 28 01 -83 CA 66 00 23 00 58 01 03 CA 56 00 23 00 48 01 -03 C3 46 00 23 00 68 00 03 CB 36 00 23 00 68 01 -83 CB 26 00 23 00 78 01 83 C9 16 00 23 00 38 01 -E3 9F F6 FB 3A 95 29 B8 83 AA 05 00 91 05 56 87 -63 C3 0A 26 01 49 33 6B D7 03 13 0A C1 00 CA 89 -05 09 B3 0B 2A 01 4A 8A 33 47 D7 03 13 0B 0B 03 -A3 8F 6B FF 71 CB 33 6B D7 03 CA 89 93 0B C1 00 -05 09 CA 9B 33 47 D7 03 13 0B 0B 03 A3 8F 6B FF -45 CF 33 6B D7 03 CA 89 93 0B C1 00 13 09 2A 00 -CA 9B 33 47 D7 03 13 0B 0B 03 A3 8F 6B FF 49 CF -33 6B D7 03 CA 89 93 0B C1 00 13 09 3A 00 CA 9B -33 47 D7 03 13 0B 0B 03 A3 8F 6B FF 35 CF 33 6B -D7 03 CA 89 93 0B C1 00 13 09 4A 00 CA 9B 33 47 -D7 03 13 0B 0B 03 A3 8F 6B FF 39 CF 33 6B D7 03 -CA 89 93 0B C1 00 13 09 5A 00 CA 9B 33 47 D7 03 -13 0B 0B 03 A3 8F 6B FF 21 C3 33 6B D7 03 CA 89 -93 0B C1 00 13 09 6A 00 CA 9B 33 47 D7 03 13 0B -0B 03 A3 8F 6B FF 0D C3 33 6B D7 03 CA 89 13 09 -7A 00 13 0A C1 00 B3 0B 2A 01 33 47 D7 03 13 0B -0B 03 A3 8F 6B FF 01 FB 4A 87 63 55 D9 08 33 8A -26 41 93 7B 7A 00 63 8C 0B 04 05 4B 63 84 6B 05 -09 4A 63 8E 4B 03 0D 4B 63 88 6B 03 11 4A 63 82 -4B 03 15 4B 63 8C 6B 01 19 4A 63 86 4B 01 23 00 -68 00 13 07 19 00 23 00 68 00 05 07 23 00 68 00 -05 07 23 00 68 00 05 07 23 00 68 00 05 07 23 00 -68 00 05 07 23 00 68 00 05 07 63 05 D7 02 23 00 -68 00 23 00 68 00 23 00 68 00 23 00 68 00 23 00 -68 00 23 00 68 00 23 00 68 00 23 00 68 00 21 07 -E3 1F D7 FC 74 00 33 87 36 01 33 03 F7 41 93 7B -73 00 63 89 0B 06 05 4B 63 8F 6B 05 09 4A 63 87 -4B 05 8D 46 63 8F DB 02 11 43 63 87 6B 02 15 4B -63 8F 6B 01 19 4A 63 87 4B 01 83 4B 07 00 7D 17 -23 00 78 01 83 46 07 00 7D 17 23 00 D8 00 03 43 -07 00 7D 17 23 00 68 00 03 4B 07 00 7D 17 23 00 -68 01 03 4A 07 00 7D 17 23 00 48 01 83 4B 07 00 -7D 17 23 00 78 01 83 46 07 00 7D 17 23 00 D8 00 -63 05 F7 05 03 43 07 00 61 17 23 00 68 00 03 4B -77 00 23 00 68 01 03 4A 67 00 23 00 48 01 83 4B -57 00 23 00 78 01 83 46 47 00 23 00 D8 00 03 43 -37 00 23 00 68 00 03 4B 27 00 23 00 68 01 03 4A -17 00 23 00 48 01 E3 1F F7 FB E3 DD 0A B4 13 89 -29 00 4A 95 6F F0 CF DB 1A 87 13 03 00 02 63 14 -77 E4 6F F0 0F E7 33 07 50 41 23 00 78 00 FD 16 -51 BB 01 45 82 80 39 71 13 03 41 02 2E D2 9A 85 +B7 52 55 59 93 82 52 55 73 90 02 7C 17 11 04 F0 +13 01 41 5D EF 70 E0 14 97 02 58 D0 93 82 82 FE +13 03 F0 0F 23 80 62 00 05 43 23 A0 62 00 E3 05 +00 FE 01 00 01 00 01 00 01 00 01 00 01 00 01 00 +01 00 01 00 01 00 03 48 05 00 63 0B 08 28 39 71 +22 DE 37 04 04 F0 26 DC 4A DA 4E D8 52 D6 AA 86 +56 D4 5A D2 5E D0 01 45 93 0F 50 02 B7 08 58 D0 +13 03 00 03 93 09 D0 02 13 09 A0 02 93 04 00 02 +13 04 04 00 29 4F 93 03 B1 00 A5 42 13 0A D0 02 +03 C6 16 00 93 87 16 00 63 03 F8 03 23 80 08 01 +05 05 BE 86 32 88 E3 15 08 FE 72 54 E2 54 52 59 +C2 59 32 5A A2 5A 12 5B 82 5B 21 61 82 80 75 D6 +13 8E 26 00 63 00 F6 07 63 1D 66 1E 03 C7 17 00 +BE 86 85 07 E3 0C 67 FE 89 06 03 C8 17 00 63 05 +37 03 63 0A 27 03 93 0A 07 FD 13 FE FA 0F 81 4E +63 F2 C2 05 13 07 87 FA 13 77 F7 0F E3 E5 E4 FA +0A 07 22 97 1C 43 82 87 42 87 03 C8 27 00 B6 87 +85 06 E3 1A 27 FD 42 87 91 05 03 C8 27 00 85 06 +81 4E C9 BF 23 80 08 01 03 C8 26 00 F2 86 E3 11 +08 F6 A5 BF 03 C8 17 00 19 A0 93 0A 07 FD 13 9E +2E 00 76 9E 93 06 08 FD 3E 8B 06 0E 85 07 93 F6 +F6 0F 42 87 B3 8E CA 01 03 C8 17 00 E3 FF D2 FC +93 06 2B 00 41 BF 98 41 81 47 91 05 11 A0 B2 87 +93 7E F7 00 13 8E 7E 05 63 C4 D2 01 13 8E 0E 03 +13 86 17 00 93 0E C1 00 B2 9E A3 8F CE FF 11 83 +79 FF 78 00 BA 97 03 C7 07 00 FD 17 23 80 E8 00 +E3 9B F3 FE 32 95 E3 15 08 EE 01 B7 03 AE 05 00 +01 47 91 05 B3 7A EE 03 13 0B C1 00 BA 87 05 07 +B3 0B EB 00 72 8B 93 8A 0A 03 A3 8F 5B FF 33 5E +EE 03 E3 E1 62 FF 3A 8E 63 57 D7 01 23 80 C8 00 +05 0E E3 9D CE FF 70 00 B2 97 03 C6 07 00 FD 17 +23 80 C8 00 E3 9B 77 FE 3A 95 E3 1B 08 E8 75 B5 +98 41 91 05 83 47 07 00 99 C7 05 07 23 80 F8 00 +83 47 07 00 FD FB 23 80 E8 01 05 05 E3 1A 08 E6 +69 B5 90 41 01 47 91 05 13 7E 76 00 BA 87 93 0E +C1 00 05 07 BA 9E 13 0E 0E 03 A3 8F CE FF 0D 82 +65 F6 70 00 B2 97 03 C6 07 00 FD 17 23 80 C8 00 +E3 9B 77 FE 3A 95 55 B7 83 AB 05 00 91 05 5E 87 +63 CA 0B 06 81 47 33 6E E7 03 3E 8B 93 0A C1 00 +85 07 BE 9A 33 47 E7 03 13 0E 0E 03 A3 8F CA FF +7D F3 3E 87 63 D7 D7 01 23 80 C8 00 05 07 E3 1D +D7 FF 78 00 5A 97 03 46 07 00 7D 17 23 80 C8 00 +E3 1B 77 FE 63 C4 0B 02 3E 95 E3 13 08 DE F5 BB +83 C7 05 00 05 05 91 05 23 80 F8 00 E3 1A 08 DC +ED B3 32 87 F2 86 13 06 00 02 01 BD 93 07 2B 00 +3E 95 E1 BF 33 07 70 41 23 80 48 01 FD 1E 59 B7 +01 45 82 80 39 71 13 03 41 02 2E D2 9A 85 06 CE +32 D4 36 D6 3A D8 3E DA 42 DC 46 DE 1A C6 A1 33 +F2 40 21 61 82 80 13 77 F5 0F B7 07 58 D0 23 80 +E7 00 3A 85 82 80 13 77 F5 0F B7 07 58 D0 23 80 +E7 00 3A 85 82 80 83 47 05 00 37 07 58 D0 99 C7 +05 05 23 00 F7 00 83 47 05 00 FD FB A9 47 23 00 +F7 00 05 45 82 80 39 71 13 03 41 02 2E D2 9A 85 06 CE 32 D4 36 D6 3A D8 3E DA 42 DC 46 DE 1A C6 -EF F0 CF D2 F2 40 21 61 82 80 39 71 13 03 41 02 -2E D2 9A 85 06 CE 32 D4 36 D6 3A D8 3E DA 42 DC -46 DE 1A C6 EF F0 8F D0 F2 40 21 61 82 80 19 C6 -03 15 25 00 83 95 25 00 0D 8D 82 80 83 17 05 00 -13 97 07 01 93 52 07 01 13 F3 07 F0 93 D3 82 00 -33 66 73 00 23 10 C5 00 83 96 05 00 03 15 25 00 -13 98 06 01 93 58 08 01 13 FE 06 F0 93 DE 88 00 -33 6F DE 01 23 90 E5 01 83 95 25 00 0D 8D 82 80 -03 97 05 00 83 97 25 00 23 10 E5 00 23 11 F5 00 -82 80 D1 48 B3 52 15 03 61 73 23 A0 05 00 13 07 -03 08 93 87 05 01 93 86 85 00 93 88 E2 FF 13 98 -38 00 2E 98 23 A2 05 01 13 9E 28 00 23 11 08 00 -23 10 E8 00 42 9E 13 05 48 00 63 FB 07 3F 13 07 -88 00 63 77 C7 3F 23 A4 05 00 94 C1 C8 C5 93 43 -F3 FF FD 5E 23 12 D8 01 23 13 78 00 63 8D 08 20 -13 1F 06 01 E1 7F 93 F2 38 00 13 5F 0F 01 01 45 -93 CE FF FF 63 8D 02 0C 05 43 63 84 62 08 89 43 -63 8D 72 02 93 82 87 00 63 F8 02 03 93 0F 47 00 -63 F4 CF 03 13 15 3F 00 94 C3 93 76 85 07 9C C1 -13 93 86 00 D8 C3 B3 63 D3 00 23 10 77 00 23 11 -D7 01 BE 86 7E 87 96 87 05 45 93 82 87 00 63 F1 -02 05 93 03 47 00 63 FD C3 03 93 1F 05 01 93 DF -0F 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF 7F 00 -94 C3 B3 66 F3 01 9C C1 13 93 86 00 D8 C3 B3 6F -D3 00 23 10 F7 01 23 11 D7 01 BE 86 1E 87 96 87 -05 05 93 82 87 00 63 F1 02 05 93 03 47 00 63 FD -C3 03 13 13 05 01 93 5F 03 01 33 C3 EF 01 0E 03 -13 73 83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1 -13 93 86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11 -D7 01 BE 86 1E 87 96 87 05 05 63 86 A8 12 93 82 +DD 31 F2 40 21 61 82 80 F3 25 00 B8 73 25 00 B0 +F3 27 00 B8 E3 9A F5 FE 82 80 19 C6 03 15 25 00 +83 95 25 00 0D 8D 82 80 83 17 05 00 13 97 07 01 +93 52 07 01 13 F3 07 F0 93 D3 82 00 33 66 73 00 +23 10 C5 00 83 96 05 00 03 15 25 00 13 98 06 01 +93 58 08 01 13 FE 06 F0 93 DE 88 00 33 6F DE 01 +23 90 E5 01 83 95 25 00 0D 8D 82 80 03 97 05 00 +83 97 25 00 23 10 E5 00 23 11 F5 00 82 80 D1 48 +B3 52 15 03 61 73 23 A0 05 00 13 07 03 08 93 87 +05 01 93 86 85 00 93 88 E2 FF 13 98 38 00 2E 98 +23 A2 05 01 13 9E 28 00 23 11 08 00 23 10 E8 00 +42 9E 13 05 48 00 63 FB 07 3F 13 07 88 00 63 77 +C7 3F 23 A4 05 00 94 C1 C8 C5 93 43 F3 FF FD 5E +23 12 D8 01 23 13 78 00 63 8D 08 20 13 1F 06 01 +E1 7F 93 F2 38 00 13 5F 0F 01 01 45 93 CE FF FF +63 8D 02 0C 05 43 63 84 62 08 89 43 63 8D 72 02 +93 82 87 00 63 F8 02 03 93 0F 47 00 63 F4 CF 03 +13 15 3F 00 94 C3 93 76 85 07 9C C1 13 93 86 00 +D8 C3 B3 63 D3 00 23 10 77 00 23 11 D7 01 BE 86 +7E 87 96 87 05 45 93 82 87 00 63 F1 02 05 93 03 +47 00 63 FD C3 03 93 1F 05 01 93 DF 0F 01 33 C3 +EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66 +F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10 +F7 01 23 11 D7 01 BE 86 1E 87 96 87 05 05 93 82 87 00 63 F1 02 05 93 03 47 00 63 FD C3 03 13 13 05 01 93 5F 03 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11 D7 01 BE 86 -1E 87 96 87 93 82 87 00 05 05 63 F1 02 05 93 03 -47 00 63 FD C3 03 13 13 05 01 93 5F 03 01 33 C3 -EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66 -F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10 -F7 01 23 11 D7 01 BE 86 1E 87 96 87 93 82 87 00 -13 03 15 00 63 F1 02 05 93 03 47 00 63 FD C3 03 -93 1F 03 01 93 DF 0F 01 33 C3 EF 01 0E 03 13 73 -83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1 13 93 -86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11 D7 01 -BE 86 1E 87 96 87 93 82 87 00 13 03 25 00 63 F1 -02 05 93 03 47 00 63 FD C3 03 93 1F 03 01 93 DF -0F 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF 7F 00 +1E 87 96 87 05 05 63 86 A8 12 93 82 87 00 63 F1 +02 05 93 03 47 00 63 FD C3 03 13 13 05 01 93 5F +03 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11 D7 01 BE 86 1E 87 96 87 -0D 05 E3 9E A8 EC 88 42 29 CD 15 48 33 DF 08 03 -91 68 05 47 13 8E F8 FF 11 A8 03 28 05 00 23 91 -EE 00 05 07 63 0F 08 02 AA 86 42 85 83 AE 46 00 -E3 65 E7 FF 93 12 07 01 93 D3 02 01 13 83 13 00 -93 1F 83 00 93 F7 0F 70 B3 C6 C3 00 03 28 05 00 -B3 E8 D7 00 B3 F2 C8 01 23 91 5E 00 05 07 E3 15 -08 FC 05 48 81 48 01 45 81 4F 85 42 13 7F 78 00 -85 0F AE 87 01 47 63 0B 0F 04 05 46 63 03 CF 04 -09 4E 63 0D CF 03 8D 4E 63 07 DF 03 91 43 63 01 -7F 02 15 43 63 0B 6F 00 99 46 63 05 DF 00 9C 41 -05 47 A5 C7 9C 43 05 07 AD C3 9C 43 05 07 B1 CF -9C 43 05 07 B9 CB 9C 43 05 07 A1 CB 9C 43 05 07 -A9 C7 9C 43 05 07 B1 C3 63 02 E8 0C 9C 43 05 07 -3A 8F 85 CF 9C 43 05 07 8D CB 9C 43 13 07 2F 00 -8D C7 9C 43 13 07 3F 00 8D C3 9C 43 13 07 4F 00 -89 CF 9C 43 13 07 5F 00 89 CB 9C 43 13 07 6F 00 -89 C7 9C 43 13 07 7F 00 E1 F3 AE 86 42 86 BE 85 -25 C7 51 C2 C9 C1 83 AE 46 00 03 AE 45 00 83 97 -0E 00 83 13 2E 00 03 93 2E 00 13 9F 07 01 13 5F -0F 01 13 5F 8F 00 93 F7 07 F0 B3 E7 E7 01 23 90 -FE 00 03 1F 0E 00 33 03 73 40 93 1E 0F 01 93 D3 -0E 01 93 77 0F F0 13 DF 83 00 B3 EE E7 01 23 10 -DE 01 63 5A 60 02 2E 8E 8C 41 7D 16 63 8D 08 00 -23 A0 C8 01 F2 88 51 FF 1D C2 85 C5 2E 8E 7D 16 -8C 41 E3 97 08 FE 72 85 F2 88 F5 B7 AE 86 42 87 -42 86 BE 85 B5 BF 36 8E 7D 17 94 42 C1 BF E3 97 -05 EC 23 A0 08 00 63 89 5F 00 06 08 19 C5 AA 85 -81 4F 81 48 01 45 5D BD 82 80 23 20 00 00 02 90 -B6 87 2A 87 81 46 1D B1 03 28 06 00 93 08 88 00 -63 F1 E8 04 98 42 13 03 47 00 63 7C F3 02 23 20 -16 01 1C 41 83 92 05 00 03 96 25 00 23 20 F8 00 -23 20 05 01 23 22 E8 00 83 A3 06 00 13 85 43 00 -88 C2 83 25 48 00 42 85 23 90 55 00 23 91 C5 00 -82 80 01 48 42 85 82 80 AA 87 08 41 D4 43 50 41 -18 41 D0 C3 54 C1 98 C3 23 20 05 00 82 80 D0 41 -54 41 98 41 50 C1 D4 C1 18 C1 88 C1 82 80 03 96 -25 00 63 4D 06 00 01 E5 05 A8 08 41 05 C5 03 23 -45 00 83 13 23 00 E3 9A C3 FE 82 80 01 CD 03 97 -05 00 19 A0 08 41 01 C9 5C 41 83 C2 07 00 E3 9B -E2 FE 82 80 01 45 82 80 82 80 2D C9 1C 41 81 48 -23 20 15 01 AA 86 BD C3 98 43 94 C3 3E 85 25 C3 -83 22 07 00 1C C3 3A 85 63 8A 02 04 03 A3 02 00 -23 A0 E2 00 16 85 63 03 03 04 83 23 03 00 23 20 -53 00 1A 85 63 8C 03 02 83 A5 03 00 23 A0 63 00 -1E 85 8D C5 03 A8 05 00 23 A0 75 00 2E 85 63 0F -08 00 03 26 08 00 23 20 B8 00 42 85 C2 88 19 C6 -32 85 1C 41 23 20 15 01 AA 86 D9 FF 82 80 82 80 -79 71 22 D4 5A C8 5E C6 66 C2 6A C0 06 D6 26 D2 -4A D0 4E CE 52 CC 56 CA 62 C4 2A 84 2E 8B 32 8D -85 4B 85 4C 63 01 04 10 01 4C 81 44 81 4A 13 F7 -7B 00 05 0C A2 87 01 49 31 CB 85 46 63 03 D7 04 -89 40 63 0D 17 02 8D 42 63 07 57 02 11 43 63 01 -67 02 95 43 63 0B 77 00 19 45 63 05 A7 00 1C 40 -05 49 A5 C7 9C 43 05 09 AD C3 9C 43 05 09 B1 CF -9C 43 05 09 B9 CB 9C 43 05 09 A1 CB 9C 43 05 09 -A9 C7 9C 43 05 09 B1 C3 63 81 2B 05 9C 43 05 09 -CA 85 85 CF 9C 43 05 09 8D CB 9C 43 13 89 25 00 -8D C7 9C 43 13 89 35 00 8D C3 9C 43 13 89 45 00 -89 CF 9C 43 13 89 55 00 89 CB 9C 43 13 89 65 00 -89 C7 9C 43 13 89 75 00 E1 F3 22 8A DE 89 3E 84 -63 04 09 02 63 8C 09 02 15 C8 4C 40 03 25 4A 00 -6A 86 02 9B 63 54 A0 02 22 86 00 40 FD 19 81 CC -90 C0 B2 84 E3 10 09 FE 63 8F 09 00 11 CC 22 86 -FD 19 00 40 F5 F4 B2 8A B2 84 ED B7 52 86 7D 19 -03 2A 0A 00 E9 BF 01 FC 23 A0 04 00 63 08 9C 01 -86 0B 56 84 01 B7 23 20 00 00 02 90 B2 50 22 54 -92 54 02 59 F2 49 62 4A 42 4B B2 4B 22 4C 92 4C -02 4D 56 85 D2 4A 45 61 82 80 1D 71 A6 CA CE C6 -D2 C4 5E DE FD 74 13 1A 07 01 86 CE A2 CC CA C8 -D6 C2 DA C0 62 DC 66 DA 6A D8 6E D6 2E C2 32 C6 -AA 89 B6 8B D9 8C 13 5A 0A 01 19 E1 6F 10 70 48 -93 18 15 00 33 0F A0 40 B2 98 13 13 1F 00 C6 86 -01 46 0A 0F 33 05 D3 00 B3 85 A6 40 93 80 E5 FF -93 D2 10 00 93 83 12 00 13 F4 73 00 AA 87 59 C4 -05 48 63 0C 04 07 09 49 63 02 24 07 8D 4A 63 08 -54 05 11 4B 63 0E 64 03 15 4C 63 04 84 03 99 4C -63 0A 94 01 03 5D 05 00 93 07 25 00 33 0E AA 01 -23 10 C5 01 83 DE 07 00 89 07 B3 0F DA 01 23 9F -F7 FF 83 DD 07 00 89 07 B3 05 BA 01 23 9F B7 FE -83 D0 07 00 89 07 B3 02 1A 00 23 9F 57 FE 83 D3 -07 00 89 07 33 04 7A 00 23 9F 87 FE 03 D8 07 00 -89 07 33 09 0A 01 23 9F 27 FF 83 DA 07 00 89 07 -33 0B 5A 01 23 9F 67 FF 63 85 D7 06 03 DC 07 00 -83 DC 27 00 03 DD 47 00 83 DF 67 00 83 DE 87 00 -03 DE A7 00 83 DD C7 00 83 D5 E7 00 B3 00 8A 01 -B3 03 9A 01 B3 02 AA 01 33 04 FA 01 33 09 DA 01 -B3 0A CA 01 33 08 BA 01 33 0B BA 00 23 90 17 00 -23 91 77 00 23 92 57 00 23 93 87 00 23 94 27 01 -23 95 57 01 23 96 07 01 23 97 67 01 C1 07 E3 9F -D7 F8 93 0E 16 00 B3 06 E5 41 63 84 D9 01 76 86 -D5 B5 92 43 33 08 30 41 01 4F 81 4F 13 15 28 00 -33 8D 68 00 B3 87 A8 41 13 8C E7 FF 93 5C 1C 00 -13 8E 1C 00 93 1D 2F 00 93 75 7E 00 B3 87 7D 00 -EA 86 D1 CD 85 40 63 82 15 08 89 42 63 87 55 06 -0D 44 63 8C 85 04 11 49 63 81 25 05 95 4A 63 86 -55 03 19 4B 63 8B 65 01 03 1C 0D 00 93 06 2D 00 -91 07 B3 0C EC 02 23 AE 97 FF 03 9E 06 00 91 07 -89 06 B3 0D EE 02 23 AE B7 FF 83 95 06 00 91 07 -89 06 B3 80 E5 02 23 AE 17 FE 83 92 06 00 91 07 -89 06 33 84 E2 02 23 AE 87 FE 03 99 06 00 91 07 -89 06 B3 0A E9 02 23 AE 57 FF 03 9B 06 00 91 07 -89 06 33 0C EB 02 23 AE 87 FF 83 9C 06 00 91 07 -89 06 33 8E EC 02 23 AE C7 FF 63 87 16 07 83 9D -06 00 83 90 26 00 03 9B 46 00 83 9A 66 00 03 99 -86 00 03 94 A6 00 83 92 C6 00 83 95 E6 00 B3 8C -ED 02 C1 06 93 87 07 02 33 8C E0 02 23 A0 97 FF -33 0E EB 02 23 A2 87 FF B3 8D EA 02 23 A4 C7 FF -B3 00 E9 02 23 A6 B7 FF 33 0B E4 02 23 A8 17 FE -B3 8A E2 02 23 AA 67 FF 33 89 E5 02 23 AC 57 FF -23 AE 27 FF E3 9D 16 F9 93 86 1F 00 76 9F B3 08 -AD 40 63 84 CF 00 B6 8F E1 B5 92 4F 13 97 2E 00 -81 40 7E 97 01 4E 81 46 81 45 0E 08 33 0D A7 00 -33 03 A7 41 93 03 C3 FF 93 DE 23 00 13 84 1E 00 -93 72 34 00 6A 8F 63 8C 02 0E 85 4C 63 8A 92 05 -09 4C 63 85 82 03 F2 8D 03 2E 0D 00 93 97 00 01 -93 D0 07 01 F2 96 63 D7 D4 1A 13 8F A0 00 93 18 -0F 01 93 D0 08 41 81 46 13 0F 4D 00 F2 8F 03 2E -0F 00 13 93 00 01 93 53 03 01 F2 96 63 DB D4 16 -93 86 A3 00 93 9C 06 01 93 D0 0C 41 81 46 11 0F -72 8C 03 2E 0F 00 93 9D 00 01 93 D7 0D 01 F2 96 -63 DC D4 12 93 88 A7 00 93 9F 08 01 13 93 08 01 -93 DE 0F 01 93 50 03 41 81 46 11 0F 63 19 E7 07 -93 8D 15 00 33 07 0D 41 63 07 B6 14 EE 85 B9 B7 -83 22 4F 00 93 8E AA 00 13 94 0E 01 93 53 04 41 -01 49 13 9E 03 01 B3 06 59 00 93 5C 0E 01 63 DF -D4 08 03 2E 8F 00 93 87 AC 00 93 9A 07 01 13 DB -0A 41 81 46 13 19 0B 01 F2 96 93 58 09 01 63 D0 -D4 0A 93 82 A8 00 93 9C 02 01 13 9C 02 01 93 DE -0C 01 93 50 0C 41 81 46 31 0F E3 0B E7 F9 83 23 -0F 00 93 9E 00 01 13 D4 0E 01 B3 80 76 00 63 C5 -14 08 33 2E 7E 00 B3 02 C4 01 93 9C 02 01 93 DD -0C 41 03 2B 4F 00 93 97 0D 01 11 0F 33 89 60 01 -93 DA 07 01 E3 C6 24 F7 B3 A8 63 01 83 22 4F 00 -B3 8F 1A 01 13 93 0F 01 93 53 03 41 13 9E 03 01 -B3 06 59 00 93 5C 0E 01 E3 C5 D4 F6 33 2C 5B 00 -03 2E 8F 00 B3 8D 8C 01 93 90 0D 01 13 DB 00 41 -13 19 0B 01 F2 96 93 58 09 01 E3 C4 D4 F6 B3 AF -C2 01 33 83 F8 01 93 13 03 01 13 14 03 01 93 DE -03 01 93 50 04 41 8D B7 93 06 A4 00 13 9C 06 01 -93 5D 0C 41 81 40 B5 BF B3 20 CC 01 33 8B 17 00 -93 1A 0B 01 13 19 0B 01 93 DE 0A 01 93 50 09 41 -E9 B5 B3 AE CF 01 33 84 D3 01 93 12 04 01 93 D0 -02 41 71 B5 33 AB CD 01 B3 8A 60 01 13 99 0A 01 -93 50 09 41 91 BD A9 67 93 F5 10 00 13 FD F0 0F -93 8A 17 00 33 0B B0 40 33 FE 6A 01 13 59 1D 00 -B3 48 2E 01 93 F6 18 00 13 D7 8E 00 93 57 2D 00 -93 5D 1E 00 91 CA E9 7F 13 83 1F 00 B3 C3 6D 00 -93 9E 03 01 93 DD 0E 01 33 C4 B7 01 93 70 14 00 -93 D2 17 00 13 D8 1D 00 63 8B 00 00 E9 7C 13 8C -1C 00 33 4F 88 01 13 15 0F 01 13 58 05 01 33 C6 -02 01 93 75 16 00 13 DD 27 00 13 59 18 00 91 C9 -69 7B 93 0A 1B 00 B3 4D 59 01 13 9E 0D 01 13 59 -0E 01 B3 48 A9 01 93 F6 18 00 93 DF 37 00 93 50 -19 00 91 CA 69 73 93 03 13 00 B3 CE 70 00 13 94 -0E 01 93 50 04 01 B3 C2 F0 01 93 FC 12 00 13 DC -47 00 93 D5 10 00 63 8B 0C 00 69 7F 13 05 1F 00 -33 C8 A5 00 13 16 08 01 93 55 06 01 33 4D BC 00 -13 7B 1D 00 95 83 93 D8 15 00 63 0B 0B 00 E9 7A -13 8E 1A 00 B3 CD C8 01 13 99 0D 01 93 58 09 01 -93 F6 18 00 13 D4 18 00 63 8B F6 00 E9 7F 13 83 -1F 00 B3 43 64 00 93 9E 03 01 13 D4 0E 01 B3 40 -87 00 93 F2 10 00 93 5C 17 00 13 56 14 00 63 8B -02 00 69 7C 13 0F 1C 00 33 45 E6 01 13 18 05 01 -13 56 08 01 B3 C5 CC 00 13 FD 15 00 13 5B 27 00 -13 59 16 00 63 0B 0D 00 E9 77 93 8A 17 00 33 4E -59 01 93 1D 0E 01 13 D9 0D 01 B3 48 69 01 93 FF -18 00 93 56 37 00 93 50 19 00 63 8B 0F 00 69 73 -93 03 13 00 B3 CE 70 00 13 94 0E 01 93 50 04 01 -B3 C2 D0 00 93 FC 12 00 13 5C 47 00 93 D5 10 00 -63 8B 0C 00 69 7F 13 05 1F 00 33 C8 A5 00 13 16 -08 01 93 55 06 01 33 4D BC 00 13 7B 1D 00 93 5A -57 00 93 D8 15 00 63 0B 0B 00 E9 77 13 8E 17 00 -B3 CD C8 01 13 99 0D 01 93 58 09 01 B3 CF 1A 01 -93 F6 1F 00 13 53 67 00 93 D2 18 00 91 CA E9 73 -93 8E 13 00 33 C4 D2 01 93 10 04 01 93 D2 00 01 -B3 4C 53 00 13 FC 1C 00 1D 83 93 D5 12 00 63 0B -0C 00 69 7F 13 05 1F 00 33 C8 A5 00 13 16 08 01 -93 55 06 01 13 FD 15 00 93 DD 15 00 63 0B ED 00 -69 7B 93 0A 1B 00 B3 C7 5D 01 13 9E 07 01 93 5D -0E 01 63 94 09 00 6F 10 60 5C 92 4C 13 94 29 00 -81 45 22 86 66 85 EF 50 B0 7B 32 4D 93 9F 19 00 -66 85 B3 05 94 01 B3 82 7F 01 81 43 26 C4 B3 84 -72 41 13 83 E4 FF 93 5E 13 00 93 80 1E 00 13 9C -13 00 13 F7 70 00 B3 06 8D 01 5E 86 81 47 45 C7 -05 4F 63 07 E7 09 09 48 63 0B 07 07 0D 4B 63 0F -67 05 91 4A 63 03 57 05 15 4E 63 07 C7 03 19 49 -63 0B 27 01 83 98 06 00 83 97 0B 00 89 06 13 86 -2B 00 B3 87 F8 02 03 94 06 00 83 1C 06 00 89 06 -09 06 B3 0F 94 03 FE 97 83 94 06 00 03 13 06 00 -89 06 09 06 B3 8E 64 02 F6 97 83 90 06 00 03 1C -06 00 89 06 09 06 33 87 80 03 BA 97 03 9F 06 00 -03 18 06 00 89 06 09 06 33 0B 0F 03 DA 97 83 9A -06 00 03 1E 06 00 89 06 09 06 33 89 CA 03 CA 97 -83 98 06 00 03 14 06 00 09 06 89 06 B3 8C 88 02 -E6 97 63 06 56 08 83 9F 06 00 03 13 06 00 83 90 -26 00 83 1A 26 00 33 87 6F 02 83 94 46 00 03 1C -46 00 83 9E 66 00 03 1B 66 00 03 9E 86 00 03 19 -86 00 83 9C A6 00 03 14 A6 00 83 98 C6 00 33 83 -50 03 B3 80 E7 00 83 1F C6 00 03 98 E6 00 03 1F -E6 00 41 06 C1 06 B3 87 84 03 B3 8A 60 00 B3 84 -6E 03 33 8C FA 00 B3 0E 2E 03 33 0B 9C 00 33 87 -8C 02 33 0E DB 01 33 89 F8 03 B3 0C EE 00 33 04 -E8 03 B3 88 2C 01 B3 87 88 00 E3 1E 56 F6 1C C1 -11 05 CE 93 E3 95 A5 EA A2 44 B3 02 30 41 13 95 -22 00 81 47 01 43 01 48 81 46 13 96 32 00 33 8D -A5 00 B3 8F A5 41 13 8F CF FF 93 50 2F 00 93 8A -10 00 13 FC 3A 00 EA 8E 63 02 0C 52 05 4B 63 09 -6C 05 09 47 63 04 EC 02 9A 8E 03 23 0D 00 C2 07 -13 DE 07 01 1A 98 63 DF 04 5D 13 08 AE 00 93 18 -08 01 93 D7 08 41 01 48 93 0E 4D 00 9A 83 03 A3 -0E 00 93 92 07 01 93 DF 02 01 1A 98 63 D3 04 5B -13 8C AF 00 13 1B 0C 01 93 57 0B 41 01 48 91 0E -1A 87 03 A3 0E 00 C2 07 13 DE 07 01 1A 98 63 D5 -04 57 13 08 AE 00 93 13 08 01 93 12 08 01 93 D0 -03 01 93 D7 02 41 01 48 91 0E 63 91 D5 4B 85 06 -B3 05 CD 40 E3 9D D9 F4 93 F8 F7 0F 13 D9 80 00 -33 CD B8 01 13 7E 1D 00 93 DC 18 00 93 D2 1D 00 -63 0B 0E 00 69 74 13 03 14 00 B3 C3 62 00 13 98 -03 01 93 52 08 01 B3 CF 5C 00 13 FF 1F 00 93 D0 -28 00 13 D7 12 00 63 0B 0F 00 E9 7A 13 8C 1A 00 -B3 47 87 01 13 9B 07 01 13 57 0B 01 B3 CE E0 00 -13 F5 1E 00 93 DD 38 00 13 5E 17 00 11 C9 69 76 -93 06 16 00 B3 45 DE 00 13 9D 05 01 13 5E 0D 01 -B3 CC CD 01 13 F4 1C 00 13 D3 48 00 13 5F 1E 00 -11 C8 E9 73 13 88 13 00 B3 42 0F 01 93 9F 02 01 -13 DF 0F 01 B3 40 E3 01 93 FA 10 00 13 DC 58 00 -13 55 1F 00 63 8B 0A 00 69 7B 13 07 1B 00 B3 47 -E5 00 93 9E 07 01 13 D5 0E 01 B3 4D AC 00 93 F6 -1D 00 13 D6 68 00 13 54 15 00 91 CA E9 75 13 8D -15 00 33 4E A4 01 93 1C 0E 01 13 D4 0C 01 33 43 -86 00 93 73 13 00 93 D8 78 00 93 50 14 00 63 8B -03 00 69 78 93 02 18 00 B3 CF 50 00 13 9F 0F 01 -93 50 0F 01 93 FA 10 00 93 DE 10 00 63 8B 1A 01 -69 7C 13 0B 1C 00 33 C7 6E 01 93 17 07 01 93 DE -07 01 33 C5 2E 01 93 7D 15 00 13 56 19 00 93 DC -1E 00 63 8B 0D 00 E9 76 93 85 16 00 33 CD BC 00 -13 1E 0D 01 93 5C 0E 01 33 C4 CC 00 13 73 14 00 -93 53 29 00 13 DF 1C 00 63 0B 03 00 E9 78 13 88 -18 00 B3 42 0F 01 93 9F 02 01 13 DF 0F 01 B3 40 -7F 00 93 FA 10 00 13 5C 39 00 13 55 1F 00 63 8B -0A 00 69 7B 13 07 1B 00 B3 47 E5 00 93 9E 07 01 -13 D5 0E 01 B3 4D AC 00 13 F6 1D 00 93 56 49 00 -13 54 15 00 11 CA E9 75 13 8D 15 00 33 4E A4 01 -93 1C 0E 01 13 D4 0C 01 33 C3 86 00 93 73 13 00 -93 58 59 00 93 50 14 00 63 8B 03 00 69 78 93 02 -18 00 B3 CF 50 00 13 9F 0F 01 93 50 0F 01 B3 CA -18 00 13 FC 1A 00 13 5B 69 00 93 DD 10 00 63 0B -0C 00 69 77 93 0E 17 00 B3 C7 DD 01 13 95 07 01 -93 5D 05 01 33 46 BB 01 93 76 16 00 13 59 79 00 -13 D4 1D 00 91 CA E9 75 13 8D 15 00 33 4E A4 01 -93 1C 0E 01 13 D4 0C 01 93 53 14 00 13 73 14 00 -1E C8 63 0C 23 01 E9 78 13 88 18 00 B3 C2 03 01 -93 9F 02 01 13 DF 0F 01 7A C8 81 4A 81 42 63 88 -09 32 B2 40 13 9C 29 00 13 94 19 00 01 47 52 CE -5E C4 86 8A 33 09 14 00 62 CA 01 4B 26 CC 3A 8A -E2 8B 92 4E 93 14 2A 00 5E 86 33 85 D4 01 81 45 -EF 50 10 30 A2 4F 2A 8F 01 45 B3 07 59 41 93 8D -E7 FF 13 D6 1D 00 93 06 16 00 13 FD 76 00 7E 86 -D6 86 81 47 63 06 0D 0A 85 45 63 08 BD 08 09 4E -63 0C CD 07 8D 4C 63 00 9D 07 11 43 63 04 6D 04 -95 43 63 08 7D 02 99 48 63 0C 1D 01 03 98 0A 00 -83 92 0F 00 93 86 2A 00 33 86 8F 00 B3 07 58 02 -83 90 06 00 03 1C 06 00 89 06 22 96 33 87 80 03 -BA 97 83 94 06 00 83 1E 06 00 89 06 22 96 B3 8D -D4 03 EE 97 03 9D 06 00 83 15 06 00 89 06 22 96 -33 0E BD 02 F2 97 83 9C 06 00 03 13 06 00 89 06 -22 96 B3 83 6C 02 9E 97 83 98 06 00 03 18 06 00 -89 06 22 96 B3 82 08 03 96 97 83 90 06 00 03 1C -06 00 89 06 22 96 33 87 80 03 BA 97 63 03 D9 0A -B3 04 86 00 83 9C 06 00 03 13 06 00 B3 8E 84 00 -03 9E 04 00 03 9D 26 00 B3 83 8E 00 83 90 46 00 -83 9D 0E 00 33 87 6C 02 B3 85 83 00 83 9E 66 00 -83 9C 03 00 33 88 85 00 03 93 86 00 03 9C 05 00 -83 98 A6 00 83 13 08 00 B3 02 88 00 33 0D CD 03 -03 98 C6 00 33 86 82 00 83 92 02 00 83 95 E6 00 -03 1E 06 00 BA 97 C1 06 22 96 B3 84 B0 03 B3 80 -A7 01 B3 8D 9E 03 B3 8E 90 00 B3 0C 83 03 33 87 -BE 01 33 83 78 02 33 0C 97 01 B3 08 58 02 B3 03 -6C 00 33 88 C5 03 33 8D 13 01 B3 07 0D 01 E3 11 -D9 F6 23 20 FF 00 93 06 15 00 11 0F 89 0F 63 84 -D9 12 36 85 59 B5 33 23 F3 01 03 A9 4E 00 B3 8A -60 00 13 9C 0A 01 93 57 0C 41 93 9C 07 01 B3 08 -2E 01 91 0E 13 D4 0C 01 63 DE 14 09 83 AA 4E 00 -13 0F A4 00 93 10 0F 01 93 DF 00 41 81 48 13 93 -0F 01 33 8B 58 01 13 5C 03 01 63 DF 64 09 03 A3 -8E 00 93 0C AC 00 13 94 0C 01 13 59 04 41 01 4B -93 18 09 01 33 08 6B 00 93 D3 08 01 63 D0 04 0B -13 8C A3 00 13 1B 0C 01 13 17 0C 01 93 50 0B 01 -93 57 07 41 01 48 B1 0E E3 83 D5 B7 83 AF 0E 00 -13 9F 07 01 93 50 0F 01 33 0E F8 01 E3 D5 C4 F7 -03 A9 4E 00 13 8B A0 00 13 17 0B 01 93 57 07 41 -01 4E 93 9C 07 01 B3 08 2E 01 91 0E 13 D4 0C 01 -E3 C6 14 F7 33 A8 2F 01 83 AA 4E 00 B3 03 04 01 -93 92 03 01 93 DF 02 41 13 93 0F 01 33 8B 58 01 -13 5C 03 01 E3 C5 64 F7 33 27 59 01 03 A3 8E 00 -B3 07 EC 00 13 9E 07 01 13 59 0E 41 93 18 09 01 -33 08 6B 00 93 D3 08 01 E3 C4 04 F7 B3 A2 6A 00 -B3 8F 53 00 13 9F 0F 01 93 9A 0F 01 93 50 0F 01 -93 D7 0A 41 8D B7 13 0F 1B 00 A2 9A 4E 9A 22 99 -63 00 AB 7E 7A 8B 35 BB 33 29 67 00 B3 0C 2E 01 -13 94 0C 01 93 98 0C 01 93 50 04 01 93 D7 08 41 -61 BC 33 AF 63 00 B3 80 EF 01 93 9A 00 01 93 D7 -0A 41 B1 BC 33 A9 6E 00 B3 0C 2E 01 13 94 0C 01 -93 57 04 41 15 B4 93 72 FD 0F 93 DA 8E 00 C2 47 -93 DF 12 00 33 C9 57 00 13 7E 19 00 93 DC 17 00 -63 0B 0E 00 E9 76 93 80 16 00 B3 CD 1C 00 93 9E -0D 01 93 DC 0E 01 33 CD 9F 01 13 73 1D 00 13 DC -22 00 13 D8 1C 00 63 0B 03 00 E9 78 13 8F 18 00 -33 45 E8 01 93 15 05 01 13 D8 05 01 B3 43 0C 01 -13 F7 13 00 13 D6 32 00 13 5E 18 00 11 CB 69 7B -93 07 1B 00 33 44 FE 00 13 19 04 01 13 5E 09 01 -B3 4F CE 00 93 F0 1F 00 93 D6 42 00 13 53 1E 00 -63 8B 00 00 E9 7D 93 8E 1D 00 B3 4C D3 01 13 9D -0C 01 13 53 0D 01 33 4C D3 00 93 78 1C 00 13 DF -52 00 13 57 13 00 63 8B 08 00 69 75 93 05 15 00 -33 48 B7 00 93 13 08 01 13 D7 03 01 33 46 E7 01 -13 7B 16 00 93 D7 62 00 93 50 17 00 63 0B 0B 00 -69 79 13 0E 19 00 33 C4 C0 01 93 1F 04 01 93 D0 -0F 01 B3 C6 F0 00 93 FD 16 00 93 D2 72 00 13 DC -10 00 63 8B 0D 00 E9 7E 93 8C 1E 00 33 4D 9C 01 -13 13 0D 01 13 5C 03 01 93 78 1C 00 93 53 1C 00 -63 8B 58 00 69 7F 13 05 1F 00 B3 C5 A3 00 13 98 -05 01 93 53 08 01 33 C7 53 01 13 76 17 00 13 DB -1A 00 93 DF 13 00 11 CA E9 77 13 89 17 00 33 CE -2F 01 13 14 0E 01 93 5F 04 01 B3 40 FB 01 93 F6 -10 00 93 DD 2A 00 13 D3 1F 00 91 CA E9 72 93 8E -12 00 B3 4C D3 01 13 9D 0C 01 13 53 0D 01 33 4C -B3 01 93 78 1C 00 13 DF 3A 00 13 56 13 00 63 8B -08 00 69 75 93 05 15 00 33 48 B6 00 93 13 08 01 -13 D6 03 01 33 47 E6 01 13 7B 17 00 93 D7 4A 00 -93 50 16 00 63 0B 0B 00 69 79 13 0E 19 00 33 C4 -C0 01 93 1F 04 01 93 D0 0F 01 B3 C6 17 00 93 FD -16 00 93 D2 5A 00 13 DC 10 00 63 8B 0D 00 E9 7E -93 8C 1E 00 33 4D 9C 01 13 13 0D 01 13 5C 03 01 -B3 C8 82 01 13 FF 18 00 13 D5 6A 00 13 5B 1C 00 -63 0B 0F 00 E9 75 13 88 15 00 B3 43 0B 01 13 96 -03 01 13 5B 06 01 33 47 AB 00 13 79 17 00 93 DA -7A 00 93 50 1B 00 63 0B 09 00 E9 77 13 8E 17 00 -33 C4 C0 01 93 1F 04 01 93 D0 0F 01 93 F6 10 00 -13 D4 10 00 63 8B 56 01 E9 7D 93 82 1D 00 B3 4E -54 00 93 9C 0E 01 13 D4 0C 01 81 4D 81 46 63 80 -09 1A 32 4D 92 4D 93 9A 19 00 6A 8C 33 8B AA 01 -13 99 29 00 81 4C 01 4D 13 93 2C 00 81 45 33 05 -B3 01 4A 86 EF 50 C0 58 AA 86 81 45 5E 85 B3 08 -8B 41 13 8F E8 FF 13 58 1F 00 93 03 18 00 13 F6 -33 00 2A 83 E2 88 81 4E 59 C2 05 47 63 0C E6 04 -89 47 63 06 F6 02 03 1E 0C 00 83 1F 05 00 93 08 -2C 00 33 03 55 01 B3 00 FE 03 93 DE 50 40 93 D2 -20 40 13 FF F2 00 13 F8 FE 07 B3 0E 0F 03 83 93 -08 00 03 16 03 00 89 08 56 93 B3 87 C3 02 13 D7 -27 40 13 DE 57 40 93 7F F7 00 93 70 FE 07 B3 82 -1F 02 96 9E 03 9F 08 00 03 18 03 00 89 08 56 93 -B3 03 0F 03 13 D6 23 40 93 D7 53 40 13 77 F6 00 -13 FE F7 07 B3 0F C7 03 FE 9E 63 03 1B 0B B3 00 -53 01 03 9F 08 00 03 18 03 00 33 86 50 01 83 93 -28 00 03 97 00 00 03 1E 06 00 33 03 56 01 83 92 -48 00 B3 0F 0F 03 83 17 03 00 83 90 68 00 A1 08 -56 93 33 8F E3 02 13 D8 5F 40 93 D3 2F 40 13 F7 -F3 00 93 73 F8 07 B3 82 C2 03 13 56 5F 40 13 5E -2F 40 93 7F FE 00 13 76 F6 07 B3 80 F0 02 13 D8 -52 40 93 D7 22 40 13 FF F7 00 93 72 F8 07 33 07 -77 02 13 DE 50 40 93 D3 20 40 93 F0 F3 00 93 77 -FE 07 B3 8F CF 02 BA 9E 33 06 5F 02 33 88 FE 01 -33 8F F0 02 B3 02 C8 00 B3 8E E2 01 E3 11 1B F7 -23 A0 D6 01 93 88 15 00 91 06 09 05 63 84 19 01 -C6 85 75 B5 93 06 1D 00 56 9C CE 9C 56 9B 63 81 -A5 5F 36 8D 51 B5 93 F6 FA 0F 93 5D 8B 00 B3 C0 -86 00 13 F3 10 00 93 DF 16 00 93 52 14 00 63 0B -03 00 69 7E 93 0E 1E 00 33 CF D2 01 93 18 0F 01 -93 D2 08 01 33 CC 5F 00 93 7C 1C 00 13 DB 26 00 -93 D4 12 00 63 8B 0C 00 69 77 13 08 17 00 B3 C7 -04 01 13 94 07 01 93 54 04 01 33 45 9B 00 13 76 -15 00 93 D5 36 00 93 DB 14 00 11 CA E9 73 13 8D -13 00 33 C9 AB 01 93 1A 09 01 93 DB 0A 01 B3 C0 -75 01 13 F3 10 00 93 DF 46 00 93 D2 1B 00 63 0B -03 00 69 7E 93 0E 1E 00 33 CF D2 01 93 18 0F 01 -93 D2 08 01 33 CC 5F 00 93 7C 1C 00 13 DB 56 00 -93 D4 12 00 63 8B 0C 00 69 77 13 08 17 00 B3 C7 -04 01 13 94 07 01 93 54 04 01 33 C5 64 01 93 75 -15 00 13 D6 66 00 93 DB 14 00 91 C9 E9 73 13 8D -13 00 33 C9 AB 01 93 1A 09 01 93 DB 0A 01 B3 C0 -CB 00 13 F3 10 00 9D 82 93 D8 1B 00 63 0B 03 00 -E9 7F 13 8E 1F 00 B3 CE C8 01 13 9F 0E 01 93 58 -0F 01 93 F2 18 00 13 D8 18 00 63 8B D2 00 69 7C -93 0C 1C 00 33 4B 98 01 13 17 0B 01 13 58 07 01 -B3 C7 0D 01 13 F4 17 00 93 D4 1D 00 13 5D 18 00 -11 C8 69 75 93 05 15 00 33 46 BD 00 93 13 06 01 -13 DD 03 01 33 C9 A4 01 93 7A 19 00 93 DB 2D 00 -13 5E 1D 00 63 8B 0A 00 E9 70 13 83 10 00 B3 46 -6E 00 93 9F 06 01 13 DE 0F 01 B3 CE CB 01 13 FF -1E 00 93 D8 3D 00 13 57 1E 00 63 0B 0F 00 E9 72 -13 8C 12 00 B3 4C 87 01 13 9B 0C 01 13 57 0B 01 -33 C8 E8 00 13 74 18 00 93 D4 4D 00 93 53 17 00 -11 C8 69 75 93 05 15 00 B3 C7 B3 00 13 96 07 01 -93 53 06 01 33 CD 74 00 13 79 1D 00 93 DA 5D 00 -93 DF 13 00 63 0B 09 00 E9 7B 93 80 1B 00 33 C3 -1F 00 93 16 03 01 93 DF 06 01 33 CE 5F 01 93 7E -1E 00 13 DF 6D 00 13 DB 1F 00 63 8B 0E 00 E9 78 -93 82 18 00 33 4C 5B 00 93 1C 0C 01 13 DB 0C 01 -33 47 6F 01 13 78 17 00 93 DD 7D 00 93 57 1B 00 -63 0B 08 00 69 74 93 04 14 00 33 C5 97 00 93 15 -05 01 93 D7 05 01 13 F6 17 00 13 D5 17 00 63 0B -B6 01 E9 73 13 8D 13 00 33 49 A5 01 93 1A 09 01 -13 D5 0A 01 63 8B 09 12 32 43 B3 0B 30 41 93 90 -19 00 B3 06 13 00 93 92 1B 00 01 4F 93 9F 2B 00 -33 8C 56 00 33 8E 86 41 93 0E EE FF 93 D8 1E 00 -93 8C 18 00 13 FB 7C 00 E2 87 63 08 0B 08 05 47 -63 0C EB 06 09 48 63 02 0B 07 8D 4D 63 08 BB 05 -11 44 63 0E 8B 02 95 44 63 04 9B 02 99 45 63 0A -BB 00 03 56 0C 00 93 07 2C 00 B3 03 46 41 23 10 -7C 00 03 DD 07 00 89 07 33 09 4D 41 23 9F 27 FF -83 DA 07 00 89 07 B3 8B 4A 41 23 9F 77 FF 83 D0 -07 00 89 07 33 83 40 41 23 9F 67 FE 03 DE 07 00 -89 07 B3 0E 4E 41 23 9F D7 FF 83 D8 07 00 89 07 -B3 8C 48 41 23 9F 97 FF 03 DB 07 00 89 07 33 07 -4B 41 23 9F E7 FE 63 85 D7 06 83 DD 07 00 03 D4 -27 00 83 D4 47 00 03 D6 67 00 03 DD 87 00 03 D8 -A7 00 83 D5 C7 00 03 D9 E7 00 B3 83 4D 41 B3 0A -44 41 B3 8B 44 41 B3 00 46 41 33 03 4D 41 33 0E -48 41 B3 8E 45 41 B3 08 49 41 23 90 77 00 23 91 -57 01 23 92 77 01 23 93 17 00 23 94 67 00 23 95 -C7 01 23 96 D7 01 23 97 17 01 C1 07 E3 9F D7 F8 -05 0F B3 06 FC 41 E3 95 E9 EF F6 40 66 44 13 1C -05 01 D6 44 46 49 B6 49 26 4A 96 4A 06 4B F2 5B -D2 5C 42 5D B2 5D 13 55 0C 41 62 5C 25 61 82 80 -12 44 D2 4F E2 44 72 4A A2 4B 33 0B 30 41 33 07 -F4 01 13 18 2B 00 01 4D 01 4E 81 46 01 46 93 15 -3B 00 B3 02 07 01 B3 00 57 40 93 8D C0 FF 93 DE -2D 00 93 8C 1E 00 13 F3 3C 00 16 8F 63 0F 03 10 -05 4C 63 0A 83 05 89 48 63 05 13 03 F2 83 03 AE -02 00 93 17 0D 01 13 DD 07 01 F2 96 63 D1 D4 1C -13 0B AD 00 13 14 0B 01 13 5D 04 41 81 46 13 8F -42 00 F2 8F 03 2E 0F 00 93 10 0D 01 93 DD 00 01 -F2 96 63 D5 D4 18 93 86 AD 00 13 9C 06 01 13 5D -0C 41 81 46 11 0F F2 88 03 2E 0F 00 93 13 0D 01 -93 D7 03 01 F2 96 63 D6 D4 14 13 84 A7 00 93 1F -04 01 93 10 04 01 93 DE 0F 01 13 DD 00 41 81 46 -11 0F 63 1C E7 09 93 03 16 00 33 87 B2 40 63 0C -C5 F8 1E 86 B9 B7 33 2E BE 01 83 2A 4F 00 33 83 -CC 01 13 1C 03 01 93 53 0C 41 93 97 03 01 33 0B -5D 01 11 0F 13 D9 07 01 63 DD 64 09 03 23 4F 00 -93 0E A9 00 93 9C 0E 01 93 DD 0C 41 01 4B 13 9E -0D 01 B3 06 6B 00 13 5C 0E 01 63 DE D4 08 03 2E -8F 00 93 07 AC 00 13 99 07 01 93 5A 09 41 81 46 -13 9B 0A 01 F2 96 13 54 0B 01 63 DF D4 08 13 03 -A4 00 13 1C 03 01 93 18 03 01 93 5E 0C 01 13 DD -08 41 81 46 31 0F E3 08 E7 F7 83 2D 0F 00 93 1E -0D 01 93 DC 0E 01 33 8D B6 01 E3 D6 A4 F7 83 2A -4F 00 93 86 AC 00 93 98 06 01 93 D3 08 41 01 4D -93 97 03 01 33 0B 5D 01 11 0F 13 D9 07 01 E3 C7 -64 F7 33 A4 5D 01 03 23 4F 00 B3 0F 89 00 93 90 -0F 01 93 DD 00 41 13 9E 0D 01 B3 06 6B 00 13 5C -0E 01 E3 C6 D4 F6 B3 A8 6A 00 03 2E 8F 00 B3 03 -1C 01 13 9D 03 01 93 5A 0D 41 13 9B 0A 01 F2 96 -13 54 0B 01 E3 C5 D4 F6 B3 2F C3 01 B3 00 F4 01 -93 9D 00 01 93 9C 00 01 93 DE 0D 01 13 DD 0C 41 -95 B7 33 AD C8 01 B3 8A A7 01 13 99 0A 01 13 9B -0A 01 93 5E 09 01 13 5D 0B 41 5D BD B3 AE CF 01 -B3 8C DD 01 13 93 0C 01 13 5D 03 41 A5 BD 33 AF -C3 01 B3 0A ED 01 13 99 0A 01 13 5D 09 41 81 B5 -92 4A B3 0B 30 41 13 95 2B 00 56 99 01 4E 81 4A -81 48 81 46 13 96 3B 00 B3 0D A9 00 33 0D B9 41 -13 03 CD FF 13 57 23 00 93 03 17 00 93 F0 73 00 -6E 88 63 88 00 24 85 4F 63 8E F0 0F 89 4E 63 89 -D0 0D 0D 4F 63 84 E0 0B 91 42 63 8F 50 06 15 4C -63 8A 80 05 99 4C 63 85 90 03 72 88 03 AE 0D 00 -93 97 0A 01 13 DB 07 01 F2 98 63 DB 14 3B 93 08 -AB 00 13 93 08 01 93 5A 03 41 81 48 13 88 4D 00 -72 87 03 2E 08 00 93 93 0A 01 93 D0 03 01 F2 98 -63 DF 14 37 93 82 A0 00 13 9C 02 01 93 5A 0C 41 -81 48 11 08 F2 8C 03 2E 08 00 93 97 0A 01 13 DB -07 01 F2 98 63 D4 14 35 93 08 AB 00 13 93 08 01 -93 5A 03 41 81 48 11 08 72 87 03 2E 08 00 93 93 -0A 01 93 D0 03 01 F2 98 63 D9 14 31 93 82 A0 00 -13 9C 02 01 93 5A 0C 41 81 48 11 08 F2 8C 03 2E -08 00 93 97 0A 01 13 DB 07 01 F2 98 63 DE 14 2D -93 08 AB 00 13 93 08 01 93 5A 03 41 81 48 11 08 -72 87 03 2E 08 00 93 93 0A 01 93 D0 03 01 F2 98 -63 D3 14 2B 93 82 A0 00 13 9C 02 01 93 5A 0C 41 -81 48 11 08 F2 8C 03 2E 08 00 93 97 0A 01 13 DB -07 01 F2 98 63 D4 14 27 93 08 AB 00 13 93 08 01 -93 93 08 01 13 5B 03 01 93 DA 03 41 81 48 11 08 -63 11 28 13 93 83 16 00 33 89 CD 40 E3 8D D5 8A -9E 86 5D B5 33 2E 1E 00 83 2B 48 00 33 8F CE 01 -93 12 0F 01 93 D7 02 41 93 9A 07 01 33 07 7B 01 -11 08 13 DD 0A 01 63 D2 E4 12 03 2F 48 00 93 0F -AD 00 93 9E 0F 01 93 D0 0E 41 01 47 13 9E 00 01 -33 0C E7 01 93 52 0E 01 63 D3 84 13 03 27 88 00 -93 8A A2 00 13 9D 0A 01 93 5B 0D 41 01 4C 93 98 -0B 01 B3 00 EC 00 93 D3 08 01 63 D4 14 12 03 2C -C8 00 13 8E A3 00 93 12 0E 01 13 DF 02 41 81 40 -93 1C 0F 01 33 8B 80 01 93 D7 0C 01 63 D5 64 13 -83 20 08 01 93 88 A7 00 93 93 08 01 13 D7 03 41 -01 4B 13 13 07 01 B3 0E 1B 00 93 5F 03 01 63 D6 -D4 13 03 2B 48 01 93 8C AF 00 93 97 0C 01 13 DC -07 41 81 4E 93 1B 0C 01 33 8D 6E 01 93 DA 0B 01 -63 D7 A4 13 03 2E 88 01 13 83 AA 00 93 1F 03 01 -93 D0 0F 41 01 4D 93 9E 00 01 B3 08 CD 01 13 DF -0E 01 63 D8 14 13 93 0B AF 00 13 9D 0B 01 13 97 -0B 01 13 5B 0D 01 93 5A 07 41 81 48 71 08 E3 03 -28 EF 83 20 08 00 93 9F 0A 01 93 DE 0F 01 33 8B -18 00 E3 D1 64 EF 83 2B 48 00 13 8C AE 00 93 1C -0C 01 93 D7 0C 41 01 4B 93 9A 07 01 33 07 7B 01 -11 08 13 DD 0A 01 E3 C2 E4 EE B3 A8 70 01 03 2F -48 00 33 03 1D 01 93 13 03 01 93 D0 03 41 13 9E -00 01 33 0C E7 01 93 52 0E 01 E3 C1 84 EF B3 AC -EB 01 03 27 88 00 B3 87 92 01 13 9B 07 01 93 5B -0B 41 93 98 0B 01 B3 00 EC 00 93 D3 08 01 E3 C0 -14 EE 33 23 EF 00 03 2C C8 00 B3 8F 63 00 93 9E -0F 01 13 DF 0E 41 93 1C 0F 01 33 8B 80 01 93 D7 -0C 01 E3 CF 64 ED B3 2B 87 01 83 20 08 01 B3 8A -77 01 13 9D 0A 01 13 57 0D 41 13 13 07 01 B3 0E -1B 00 93 5F 03 01 E3 CE D4 ED 33 2F 1C 00 03 2B -48 01 33 8E EF 01 93 12 0E 01 13 DC 02 41 93 1B -0C 01 33 8D 6E 01 93 DA 0B 01 E3 CD A4 ED 33 A7 -60 01 B3 88 EA 00 03 2E 88 01 93 93 08 01 93 D0 -03 41 93 9E 00 01 B3 08 CD 01 13 DF 0E 01 E3 CC -14 ED B3 22 CB 01 33 0C 5F 00 93 1C 0C 01 93 17 -0C 01 13 DB 0C 01 93 DA 07 41 C9 BD B3 AB CC 01 -B3 0A 7B 01 13 9D 0A 01 13 97 0A 01 13 5B 0D 01 -93 5A 07 41 69 BB B3 2F C7 01 B3 8E F0 01 13 9F -0E 01 93 5A 0F 41 B1 BB B3 AB CC 01 B3 0A 7B 01 -13 9D 0A 01 93 5A 0D 41 1D B3 B3 2F C7 01 B3 8E -F0 01 13 9F 0E 01 93 5A 0F 41 C5 B9 B3 AB CC 01 -B3 0A 7B 01 13 9D 0A 01 93 5A 0D 41 6D B9 B3 2F -C7 01 B3 8E F0 01 13 9F 0E 01 93 5A 0F 41 51 B1 -B3 2B C8 01 B3 0A 7B 01 13 9D 0A 01 93 5A 0D 41 -B1 B1 81 47 01 47 81 4D 6F E0 1F 84 01 49 81 48 -6F E0 1F C8 41 11 14 45 2E 87 22 C4 4C 45 32 84 -50 41 08 41 06 C6 EF E0 4F B2 B3 46 A4 00 13 77 -F5 0F 93 17 05 01 93 F2 16 00 13 D3 07 01 13 56 -17 00 13 58 14 00 63 8B 02 00 E9 70 93 83 10 00 -33 45 78 00 93 15 05 01 13 D8 05 01 B3 48 C8 00 -13 FE 18 00 93 5E 27 00 93 52 18 00 63 0B 0E 00 -69 7F 93 0F 1F 00 33 C4 F2 01 93 16 04 01 93 D2 -06 01 B3 C7 D2 01 93 F0 17 00 13 56 37 00 93 D8 -12 00 63 8B 00 00 E9 73 93 85 13 00 33 C5 B8 00 -13 18 05 01 93 58 08 01 33 CE C8 00 93 7E 1E 00 -13 5F 47 00 93 D7 18 00 63 8B 0E 00 E9 7F 13 84 -1F 00 B3 C6 87 00 93 92 06 01 93 D7 02 01 B3 C0 -E7 01 93 F3 10 00 13 56 57 00 13 DE 17 00 63 8B -03 00 E9 75 13 88 15 00 33 45 0E 01 93 18 05 01 -13 DE 08 01 B3 4E CE 00 13 FF 1E 00 93 5F 67 00 -93 50 1E 00 63 0B 0F 00 69 74 93 06 14 00 B3 C2 -D0 00 93 97 02 01 93 D0 07 01 B3 C3 F0 01 13 F6 -13 00 1D 83 13 DE 10 00 11 CA E9 75 13 88 15 00 -33 45 0E 01 93 18 05 01 13 DE 08 01 93 7E 1E 00 -93 52 1E 00 63 8B EE 00 69 7F 93 0F 1F 00 33 C4 -F2 01 93 16 04 01 93 D2 06 01 93 57 83 00 B3 C0 -57 00 93 F3 10 00 13 56 83 00 93 D8 12 00 13 53 -93 00 63 8B 03 00 69 77 93 05 17 00 33 C8 B8 00 -13 15 08 01 93 58 05 01 33 4E 13 01 93 7E 1E 00 -13 5F 26 00 93 D0 18 00 63 8B 0E 00 E9 7F 13 84 -1F 00 B3 C6 80 00 93 92 06 01 93 D0 02 01 B3 C7 -E0 01 93 F3 17 00 13 53 36 00 93 D8 10 00 63 8B +93 82 87 00 05 05 63 F1 02 05 93 03 47 00 63 FD +C3 03 13 13 05 01 93 5F 03 01 33 C3 EF 01 0E 03 +13 73 83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1 +13 93 86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11 +D7 01 BE 86 1E 87 96 87 93 82 87 00 13 03 15 00 +63 F1 02 05 93 03 47 00 63 FD C3 03 93 1F 03 01 +93 DF 0F 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF +7F 00 94 C3 B3 66 F3 01 9C C1 13 93 86 00 D8 C3 +B3 6F D3 00 23 10 F7 01 23 11 D7 01 BE 86 1E 87 +96 87 93 82 87 00 13 03 25 00 63 F1 02 05 93 03 +47 00 63 FD C3 03 93 1F 03 01 93 DF 0F 01 33 C3 +EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66 +F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10 +F7 01 23 11 D7 01 BE 86 1E 87 96 87 0D 05 E3 9E +A8 EC 88 42 29 CD 15 48 33 DF 08 03 91 68 05 47 +13 8E F8 FF 11 A8 03 28 05 00 23 91 EE 00 05 07 +63 0F 08 02 AA 86 42 85 83 AE 46 00 E3 65 E7 FF +93 12 07 01 93 D3 02 01 13 83 13 00 93 1F 83 00 +93 F7 0F 70 B3 C6 C3 00 03 28 05 00 B3 E8 D7 00 +B3 F2 C8 01 23 91 5E 00 05 07 E3 15 08 FC 05 48 +81 48 01 45 81 4F 85 42 13 7F 78 00 85 0F AE 87 +01 47 63 0B 0F 04 05 46 63 03 CF 04 09 4E 63 0D +CF 03 8D 4E 63 07 DF 03 91 43 63 01 7F 02 15 43 +63 0B 6F 00 99 46 63 05 DF 00 9C 41 05 47 A5 C7 +9C 43 05 07 AD C3 9C 43 05 07 B1 CF 9C 43 05 07 +B9 CB 9C 43 05 07 A1 CB 9C 43 05 07 A9 C7 9C 43 +05 07 B1 C3 63 02 E8 0C 9C 43 05 07 3A 8F 85 CF +9C 43 05 07 8D CB 9C 43 13 07 2F 00 8D C7 9C 43 +13 07 3F 00 8D C3 9C 43 13 07 4F 00 89 CF 9C 43 +13 07 5F 00 89 CB 9C 43 13 07 6F 00 89 C7 9C 43 +13 07 7F 00 E1 F3 AE 86 42 86 BE 85 25 C7 51 C2 +C9 C1 83 AE 46 00 03 AE 45 00 83 97 0E 00 83 13 +2E 00 03 93 2E 00 13 9F 07 01 13 5F 0F 01 13 5F +8F 00 93 F7 07 F0 B3 E7 E7 01 23 90 FE 00 03 1F +0E 00 33 03 73 40 93 1E 0F 01 93 D3 0E 01 93 77 +0F F0 13 DF 83 00 B3 EE E7 01 23 10 DE 01 63 5A +60 02 2E 8E 8C 41 7D 16 63 8D 08 00 23 A0 C8 01 +F2 88 51 FF 1D C2 85 C5 2E 8E 7D 16 8C 41 E3 97 +08 FE 72 85 F2 88 F5 B7 AE 86 42 87 42 86 BE 85 +B5 BF 36 8E 7D 17 94 42 C1 BF E3 97 05 EC 23 A0 +08 00 63 89 5F 00 06 08 19 C5 AA 85 81 4F 81 48 +01 45 5D BD 82 80 23 20 00 00 02 90 B6 87 2A 87 +81 46 1D B1 03 28 06 00 93 08 88 00 63 F1 E8 04 +98 42 13 03 47 00 63 7C F3 02 23 20 16 01 1C 41 +83 92 05 00 03 96 25 00 23 20 F8 00 23 20 05 01 +23 22 E8 00 83 A3 06 00 13 85 43 00 88 C2 83 25 +48 00 42 85 23 90 55 00 23 91 C5 00 82 80 01 48 +42 85 82 80 AA 87 08 41 D4 43 50 41 18 41 D0 C3 +54 C1 98 C3 23 20 05 00 82 80 D0 41 54 41 98 41 +50 C1 D4 C1 18 C1 88 C1 82 80 03 96 25 00 63 4D +06 00 01 E5 05 A8 08 41 05 C5 03 23 45 00 83 13 +23 00 E3 9A C3 FE 82 80 01 CD 03 97 05 00 19 A0 +08 41 01 C9 5C 41 83 C2 07 00 E3 9B E2 FE 82 80 +01 45 82 80 82 80 2D C9 1C 41 81 48 23 20 15 01 +AA 86 BD C3 98 43 94 C3 3E 85 25 C3 83 22 07 00 +1C C3 3A 85 63 8A 02 04 03 A3 02 00 23 A0 E2 00 +16 85 63 03 03 04 83 23 03 00 23 20 53 00 1A 85 +63 8C 03 02 83 A5 03 00 23 A0 63 00 1E 85 8D C5 +03 A8 05 00 23 A0 75 00 2E 85 63 0F 08 00 03 26 +08 00 23 20 B8 00 42 85 C2 88 19 C6 32 85 1C 41 +23 20 15 01 AA 86 D9 FF 82 80 82 80 79 71 22 D4 +5A C8 5E C6 66 C2 6A C0 06 D6 26 D2 4A D0 4E CE +52 CC 56 CA 62 C4 2A 84 2E 8B 32 8D 85 4B 85 4C +63 01 04 10 01 4C 81 44 81 4A 13 F7 7B 00 05 0C +A2 87 01 49 31 CB 85 46 63 03 D7 04 89 40 63 0D +17 02 8D 42 63 07 57 02 11 43 63 01 67 02 95 43 +63 0B 77 00 19 45 63 05 A7 00 1C 40 05 49 A5 C7 +9C 43 05 09 AD C3 9C 43 05 09 B1 CF 9C 43 05 09 +B9 CB 9C 43 05 09 A1 CB 9C 43 05 09 A9 C7 9C 43 +05 09 B1 C3 63 81 2B 05 9C 43 05 09 CA 85 85 CF +9C 43 05 09 8D CB 9C 43 13 89 25 00 8D C7 9C 43 +13 89 35 00 8D C3 9C 43 13 89 45 00 89 CF 9C 43 +13 89 55 00 89 CB 9C 43 13 89 65 00 89 C7 9C 43 +13 89 75 00 E1 F3 22 8A DE 89 3E 84 63 04 09 02 +63 8C 09 02 15 C8 4C 40 03 25 4A 00 6A 86 02 9B +63 54 A0 02 22 86 00 40 FD 19 81 CC 90 C0 B2 84 +E3 10 09 FE 63 8F 09 00 11 CC 22 86 FD 19 00 40 +F5 F4 B2 8A B2 84 ED B7 52 86 7D 19 03 2A 0A 00 +E9 BF 01 FC 23 A0 04 00 63 08 9C 01 86 0B 56 84 +01 B7 23 20 00 00 02 90 B2 50 22 54 92 54 02 59 +F2 49 62 4A 42 4B B2 4B 22 4C 92 4C 02 4D 56 85 +D2 4A 45 61 82 80 1D 71 A6 CA CE C6 D2 C4 5E DE +FD 74 13 1A 07 01 86 CE A2 CC CA C8 D6 C2 DA C0 +62 DC 66 DA 6A D8 6E D6 2E C2 32 C6 AA 89 B6 8B +D9 8C 13 5A 0A 01 19 E1 6F 10 70 48 93 18 15 00 +33 0F A0 40 B2 98 13 13 1F 00 C6 86 01 46 0A 0F +33 05 D3 00 B3 85 A6 40 93 80 E5 FF 93 D2 10 00 +93 83 12 00 13 F4 73 00 AA 87 59 C4 05 48 63 0C +04 07 09 49 63 02 24 07 8D 4A 63 08 54 05 11 4B +63 0E 64 03 15 4C 63 04 84 03 99 4C 63 0A 94 01 +03 5D 05 00 93 07 25 00 33 0E AA 01 23 10 C5 01 +83 DE 07 00 89 07 B3 0F DA 01 23 9F F7 FF 83 DD +07 00 89 07 B3 05 BA 01 23 9F B7 FE 83 D0 07 00 +89 07 B3 02 1A 00 23 9F 57 FE 83 D3 07 00 89 07 +33 04 7A 00 23 9F 87 FE 03 D8 07 00 89 07 33 09 +0A 01 23 9F 27 FF 83 DA 07 00 89 07 33 0B 5A 01 +23 9F 67 FF 63 85 D7 06 03 DC 07 00 83 DC 27 00 +03 DD 47 00 83 DF 67 00 83 DE 87 00 03 DE A7 00 +83 DD C7 00 83 D5 E7 00 B3 00 8A 01 B3 03 9A 01 +B3 02 AA 01 33 04 FA 01 33 09 DA 01 B3 0A CA 01 +33 08 BA 01 33 0B BA 00 23 90 17 00 23 91 77 00 +23 92 57 00 23 93 87 00 23 94 27 01 23 95 57 01 +23 96 07 01 23 97 67 01 C1 07 E3 9F D7 F8 93 0E +16 00 B3 06 E5 41 63 84 D9 01 76 86 D5 B5 92 43 +33 08 30 41 01 4F 81 4F 13 15 28 00 33 8D 68 00 +B3 87 A8 41 13 8C E7 FF 93 5C 1C 00 13 8E 1C 00 +93 1D 2F 00 93 75 7E 00 B3 87 7D 00 EA 86 D1 CD +85 40 63 82 15 08 89 42 63 87 55 06 0D 44 63 8C +85 04 11 49 63 81 25 05 95 4A 63 86 55 03 19 4B +63 8B 65 01 03 1C 0D 00 93 06 2D 00 91 07 B3 0C +EC 02 23 AE 97 FF 03 9E 06 00 91 07 89 06 B3 0D +EE 02 23 AE B7 FF 83 95 06 00 91 07 89 06 B3 80 +E5 02 23 AE 17 FE 83 92 06 00 91 07 89 06 33 84 +E2 02 23 AE 87 FE 03 99 06 00 91 07 89 06 B3 0A +E9 02 23 AE 57 FF 03 9B 06 00 91 07 89 06 33 0C +EB 02 23 AE 87 FF 83 9C 06 00 91 07 89 06 33 8E +EC 02 23 AE C7 FF 63 87 16 07 83 9D 06 00 83 90 +26 00 03 9B 46 00 83 9A 66 00 03 99 86 00 03 94 +A6 00 83 92 C6 00 83 95 E6 00 B3 8C ED 02 C1 06 +93 87 07 02 33 8C E0 02 23 A0 97 FF 33 0E EB 02 +23 A2 87 FF B3 8D EA 02 23 A4 C7 FF B3 00 E9 02 +23 A6 B7 FF 33 0B E4 02 23 A8 17 FE B3 8A E2 02 +23 AA 67 FF 33 89 E5 02 23 AC 57 FF 23 AE 27 FF +E3 9D 16 F9 93 86 1F 00 76 9F B3 08 AD 40 63 84 +CF 00 B6 8F E1 B5 92 4F 13 97 2E 00 81 40 7E 97 +01 4E 81 46 81 45 0E 08 33 0D A7 00 33 03 A7 41 +93 03 C3 FF 93 DE 23 00 13 84 1E 00 93 72 34 00 +6A 8F 63 8C 02 0E 85 4C 63 8A 92 05 09 4C 63 85 +82 03 F2 8D 03 2E 0D 00 93 97 00 01 93 D0 07 01 +F2 96 63 D7 D4 1A 13 8F A0 00 93 18 0F 01 93 D0 +08 41 81 46 13 0F 4D 00 F2 8F 03 2E 0F 00 13 93 +00 01 93 53 03 01 F2 96 63 DB D4 16 93 86 A3 00 +93 9C 06 01 93 D0 0C 41 81 46 11 0F 72 8C 03 2E +0F 00 93 9D 00 01 93 D7 0D 01 F2 96 63 DC D4 12 +93 88 A7 00 93 9F 08 01 13 93 08 01 93 DE 0F 01 +93 50 03 41 81 46 11 0F 63 19 E7 07 93 8D 15 00 +33 07 0D 41 63 07 B6 14 EE 85 B9 B7 83 22 4F 00 +93 8E AA 00 13 94 0E 01 93 53 04 41 01 49 13 9E +03 01 B3 06 59 00 93 5C 0E 01 63 DF D4 08 03 2E +8F 00 93 87 AC 00 93 9A 07 01 13 DB 0A 41 81 46 +13 19 0B 01 F2 96 93 58 09 01 63 D0 D4 0A 93 82 +A8 00 93 9C 02 01 13 9C 02 01 93 DE 0C 01 93 50 +0C 41 81 46 31 0F E3 0B E7 F9 83 23 0F 00 93 9E +00 01 13 D4 0E 01 B3 80 76 00 63 C5 14 08 33 2E +7E 00 B3 02 C4 01 93 9C 02 01 93 DD 0C 41 03 2B +4F 00 93 97 0D 01 11 0F 33 89 60 01 93 DA 07 01 +E3 C6 24 F7 B3 A8 63 01 83 22 4F 00 B3 8F 1A 01 +13 93 0F 01 93 53 03 41 13 9E 03 01 B3 06 59 00 +93 5C 0E 01 E3 C5 D4 F6 33 2C 5B 00 03 2E 8F 00 +B3 8D 8C 01 93 90 0D 01 13 DB 00 41 13 19 0B 01 +F2 96 93 58 09 01 E3 C4 D4 F6 B3 AF C2 01 33 83 +F8 01 93 13 03 01 13 14 03 01 93 DE 03 01 93 50 +04 41 8D B7 93 06 A4 00 13 9C 06 01 93 5D 0C 41 +81 40 B5 BF B3 20 CC 01 33 8B 17 00 93 1A 0B 01 +13 19 0B 01 93 DE 0A 01 93 50 09 41 E9 B5 B3 AE +CF 01 33 84 D3 01 93 12 04 01 93 D0 02 41 71 B5 +33 AB CD 01 B3 8A 60 01 13 99 0A 01 93 50 09 41 +91 BD A9 67 93 F5 10 00 13 FD F0 0F 93 8A 17 00 +33 0B B0 40 33 FE 6A 01 13 59 1D 00 B3 48 2E 01 +93 F6 18 00 13 D7 8E 00 93 57 2D 00 93 5D 1E 00 +91 CA E9 7F 13 83 1F 00 B3 C3 6D 00 93 9E 03 01 +93 DD 0E 01 33 C4 B7 01 93 70 14 00 93 D2 17 00 +13 D8 1D 00 63 8B 00 00 E9 7C 13 8C 1C 00 33 4F +88 01 13 15 0F 01 13 58 05 01 33 C6 02 01 93 75 +16 00 13 DD 27 00 13 59 18 00 91 C9 69 7B 93 0A +1B 00 B3 4D 59 01 13 9E 0D 01 13 59 0E 01 B3 48 +A9 01 93 F6 18 00 93 DF 37 00 93 50 19 00 91 CA +69 73 93 03 13 00 B3 CE 70 00 13 94 0E 01 93 50 +04 01 B3 C2 F0 01 93 FC 12 00 13 DC 47 00 93 D5 +10 00 63 8B 0C 00 69 7F 13 05 1F 00 33 C8 A5 00 +13 16 08 01 93 55 06 01 33 4D BC 00 13 7B 1D 00 +95 83 93 D8 15 00 63 0B 0B 00 E9 7A 13 8E 1A 00 +B3 CD C8 01 13 99 0D 01 93 58 09 01 93 F6 18 00 +13 D4 18 00 63 8B F6 00 E9 7F 13 83 1F 00 B3 43 +64 00 93 9E 03 01 13 D4 0E 01 B3 40 87 00 93 F2 +10 00 93 5C 17 00 13 56 14 00 63 8B 02 00 69 7C +13 0F 1C 00 33 45 E6 01 13 18 05 01 13 56 08 01 +B3 C5 CC 00 13 FD 15 00 13 5B 27 00 13 59 16 00 +63 0B 0D 00 E9 77 93 8A 17 00 33 4E 59 01 93 1D +0E 01 13 D9 0D 01 B3 48 69 01 93 FF 18 00 93 56 +37 00 93 50 19 00 63 8B 0F 00 69 73 93 03 13 00 +B3 CE 70 00 13 94 0E 01 93 50 04 01 B3 C2 D0 00 +93 FC 12 00 13 5C 47 00 93 D5 10 00 63 8B 0C 00 +69 7F 13 05 1F 00 33 C8 A5 00 13 16 08 01 93 55 +06 01 33 4D BC 00 13 7B 1D 00 93 5A 57 00 93 D8 +15 00 63 0B 0B 00 E9 77 13 8E 17 00 B3 CD C8 01 +13 99 0D 01 93 58 09 01 B3 CF 1A 01 93 F6 1F 00 +13 53 67 00 93 D2 18 00 91 CA E9 73 93 8E 13 00 +33 C4 D2 01 93 10 04 01 93 D2 00 01 B3 4C 53 00 +13 FC 1C 00 1D 83 93 D5 12 00 63 0B 0C 00 69 7F +13 05 1F 00 33 C8 A5 00 13 16 08 01 93 55 06 01 +13 FD 15 00 93 DD 15 00 63 0B ED 00 69 7B 93 0A +1B 00 B3 C7 5D 01 13 9E 07 01 93 5D 0E 01 63 94 +09 00 6F 10 60 5C 92 4C 13 94 29 00 81 45 22 86 +66 85 EF 50 B0 7B 32 4D 93 9F 19 00 66 85 B3 05 +94 01 B3 82 7F 01 81 43 26 C4 B3 84 72 41 13 83 +E4 FF 93 5E 13 00 93 80 1E 00 13 9C 13 00 13 F7 +70 00 B3 06 8D 01 5E 86 81 47 45 C7 05 4F 63 07 +E7 09 09 48 63 0B 07 07 0D 4B 63 0F 67 05 91 4A +63 03 57 05 15 4E 63 07 C7 03 19 49 63 0B 27 01 +83 98 06 00 83 97 0B 00 89 06 13 86 2B 00 B3 87 +F8 02 03 94 06 00 83 1C 06 00 89 06 09 06 B3 0F +94 03 FE 97 83 94 06 00 03 13 06 00 89 06 09 06 +B3 8E 64 02 F6 97 83 90 06 00 03 1C 06 00 89 06 +09 06 33 87 80 03 BA 97 03 9F 06 00 03 18 06 00 +89 06 09 06 33 0B 0F 03 DA 97 83 9A 06 00 03 1E +06 00 89 06 09 06 33 89 CA 03 CA 97 83 98 06 00 +03 14 06 00 09 06 89 06 B3 8C 88 02 E6 97 63 06 +56 08 83 9F 06 00 03 13 06 00 83 90 26 00 83 1A +26 00 33 87 6F 02 83 94 46 00 03 1C 46 00 83 9E +66 00 03 1B 66 00 03 9E 86 00 03 19 86 00 83 9C +A6 00 03 14 A6 00 83 98 C6 00 33 83 50 03 B3 80 +E7 00 83 1F C6 00 03 98 E6 00 03 1F E6 00 41 06 +C1 06 B3 87 84 03 B3 8A 60 00 B3 84 6E 03 33 8C +FA 00 B3 0E 2E 03 33 0B 9C 00 33 87 8C 02 33 0E +DB 01 33 89 F8 03 B3 0C EE 00 33 04 E8 03 B3 88 +2C 01 B3 87 88 00 E3 1E 56 F6 1C C1 11 05 CE 93 +E3 95 A5 EA A2 44 B3 02 30 41 13 95 22 00 81 47 +01 43 01 48 81 46 13 96 32 00 33 8D A5 00 B3 8F +A5 41 13 8F CF FF 93 50 2F 00 93 8A 10 00 13 FC +3A 00 EA 8E 63 02 0C 52 05 4B 63 09 6C 05 09 47 +63 04 EC 02 9A 8E 03 23 0D 00 C2 07 13 DE 07 01 +1A 98 63 DF 04 5D 13 08 AE 00 93 18 08 01 93 D7 +08 41 01 48 93 0E 4D 00 9A 83 03 A3 0E 00 93 92 +07 01 93 DF 02 01 1A 98 63 D3 04 5B 13 8C AF 00 +13 1B 0C 01 93 57 0B 41 01 48 91 0E 1A 87 03 A3 +0E 00 C2 07 13 DE 07 01 1A 98 63 D5 04 57 13 08 +AE 00 93 13 08 01 93 12 08 01 93 D0 03 01 93 D7 +02 41 01 48 91 0E 63 91 D5 4B 85 06 B3 05 CD 40 +E3 9D D9 F4 93 F8 F7 0F 13 D9 80 00 33 CD B8 01 +13 7E 1D 00 93 DC 18 00 93 D2 1D 00 63 0B 0E 00 +69 74 13 03 14 00 B3 C3 62 00 13 98 03 01 93 52 +08 01 B3 CF 5C 00 13 FF 1F 00 93 D0 28 00 13 D7 +12 00 63 0B 0F 00 E9 7A 13 8C 1A 00 B3 47 87 01 +13 9B 07 01 13 57 0B 01 B3 CE E0 00 13 F5 1E 00 +93 DD 38 00 13 5E 17 00 11 C9 69 76 93 06 16 00 +B3 45 DE 00 13 9D 05 01 13 5E 0D 01 B3 CC CD 01 +13 F4 1C 00 13 D3 48 00 13 5F 1E 00 11 C8 E9 73 +13 88 13 00 B3 42 0F 01 93 9F 02 01 13 DF 0F 01 +B3 40 E3 01 93 FA 10 00 13 DC 58 00 13 55 1F 00 +63 8B 0A 00 69 7B 13 07 1B 00 B3 47 E5 00 93 9E +07 01 13 D5 0E 01 B3 4D AC 00 93 F6 1D 00 13 D6 +68 00 13 54 15 00 91 CA E9 75 13 8D 15 00 33 4E +A4 01 93 1C 0E 01 13 D4 0C 01 33 43 86 00 93 73 +13 00 93 D8 78 00 93 50 14 00 63 8B 03 00 69 78 +93 02 18 00 B3 CF 50 00 13 9F 0F 01 93 50 0F 01 +93 FA 10 00 93 DE 10 00 63 8B 1A 01 69 7C 13 0B +1C 00 33 C7 6E 01 93 17 07 01 93 DE 07 01 33 C5 +2E 01 93 7D 15 00 13 56 19 00 93 DC 1E 00 63 8B +0D 00 E9 76 93 85 16 00 33 CD BC 00 13 1E 0D 01 +93 5C 0E 01 33 C4 CC 00 13 73 14 00 93 53 29 00 +13 DF 1C 00 63 0B 03 00 E9 78 13 88 18 00 B3 42 +0F 01 93 9F 02 01 13 DF 0F 01 B3 40 7F 00 93 FA +10 00 13 5C 39 00 13 55 1F 00 63 8B 0A 00 69 7B +13 07 1B 00 B3 47 E5 00 93 9E 07 01 13 D5 0E 01 +B3 4D AC 00 13 F6 1D 00 93 56 49 00 13 54 15 00 +11 CA E9 75 13 8D 15 00 33 4E A4 01 93 1C 0E 01 +13 D4 0C 01 33 C3 86 00 93 73 13 00 93 58 59 00 +93 50 14 00 63 8B 03 00 69 78 93 02 18 00 B3 CF +50 00 13 9F 0F 01 93 50 0F 01 B3 CA 18 00 13 FC +1A 00 13 5B 69 00 93 DD 10 00 63 0B 0C 00 69 77 +93 0E 17 00 B3 C7 DD 01 13 95 07 01 93 5D 05 01 +33 46 BB 01 93 76 16 00 13 59 79 00 13 D4 1D 00 +91 CA E9 75 13 8D 15 00 33 4E A4 01 93 1C 0E 01 +13 D4 0C 01 93 53 14 00 13 73 14 00 1E C8 63 0C +23 01 E9 78 13 88 18 00 B3 C2 03 01 93 9F 02 01 +13 DF 0F 01 7A C8 81 4A 81 42 63 88 09 32 B2 40 +13 9C 29 00 13 94 19 00 01 47 52 CE 5E C4 86 8A +33 09 14 00 62 CA 01 4B 26 CC 3A 8A E2 8B 92 4E +93 14 2A 00 5E 86 33 85 D4 01 81 45 EF 50 10 30 +A2 4F 2A 8F 01 45 B3 07 59 41 93 8D E7 FF 13 D6 +1D 00 93 06 16 00 13 FD 76 00 7E 86 D6 86 81 47 +63 06 0D 0A 85 45 63 08 BD 08 09 4E 63 0C CD 07 +8D 4C 63 00 9D 07 11 43 63 04 6D 04 95 43 63 08 +7D 02 99 48 63 0C 1D 01 03 98 0A 00 83 92 0F 00 +93 86 2A 00 33 86 8F 00 B3 07 58 02 83 90 06 00 +03 1C 06 00 89 06 22 96 33 87 80 03 BA 97 83 94 +06 00 83 1E 06 00 89 06 22 96 B3 8D D4 03 EE 97 +03 9D 06 00 83 15 06 00 89 06 22 96 33 0E BD 02 +F2 97 83 9C 06 00 03 13 06 00 89 06 22 96 B3 83 +6C 02 9E 97 83 98 06 00 03 18 06 00 89 06 22 96 +B3 82 08 03 96 97 83 90 06 00 03 1C 06 00 89 06 +22 96 33 87 80 03 BA 97 63 03 D9 0A B3 04 86 00 +83 9C 06 00 03 13 06 00 B3 8E 84 00 03 9E 04 00 +03 9D 26 00 B3 83 8E 00 83 90 46 00 83 9D 0E 00 +33 87 6C 02 B3 85 83 00 83 9E 66 00 83 9C 03 00 +33 88 85 00 03 93 86 00 03 9C 05 00 83 98 A6 00 +83 13 08 00 B3 02 88 00 33 0D CD 03 03 98 C6 00 +33 86 82 00 83 92 02 00 83 95 E6 00 03 1E 06 00 +BA 97 C1 06 22 96 B3 84 B0 03 B3 80 A7 01 B3 8D +9E 03 B3 8E 90 00 B3 0C 83 03 33 87 BE 01 33 83 +78 02 33 0C 97 01 B3 08 58 02 B3 03 6C 00 33 88 +C5 03 33 8D 13 01 B3 07 0D 01 E3 11 D9 F6 23 20 +FF 00 93 06 15 00 11 0F 89 0F 63 84 D9 12 36 85 +59 B5 33 23 F3 01 03 A9 4E 00 B3 8A 60 00 13 9C +0A 01 93 57 0C 41 93 9C 07 01 B3 08 2E 01 91 0E +13 D4 0C 01 63 DE 14 09 83 AA 4E 00 13 0F A4 00 +93 10 0F 01 93 DF 00 41 81 48 13 93 0F 01 33 8B +58 01 13 5C 03 01 63 DF 64 09 03 A3 8E 00 93 0C +AC 00 13 94 0C 01 13 59 04 41 01 4B 93 18 09 01 +33 08 6B 00 93 D3 08 01 63 D0 04 0B 13 8C A3 00 +13 1B 0C 01 13 17 0C 01 93 50 0B 01 93 57 07 41 +01 48 B1 0E E3 83 D5 B7 83 AF 0E 00 13 9F 07 01 +93 50 0F 01 33 0E F8 01 E3 D5 C4 F7 03 A9 4E 00 +13 8B A0 00 13 17 0B 01 93 57 07 41 01 4E 93 9C +07 01 B3 08 2E 01 91 0E 13 D4 0C 01 E3 C6 14 F7 +33 A8 2F 01 83 AA 4E 00 B3 03 04 01 93 92 03 01 +93 DF 02 41 13 93 0F 01 33 8B 58 01 13 5C 03 01 +E3 C5 64 F7 33 27 59 01 03 A3 8E 00 B3 07 EC 00 +13 9E 07 01 13 59 0E 41 93 18 09 01 33 08 6B 00 +93 D3 08 01 E3 C4 04 F7 B3 A2 6A 00 B3 8F 53 00 +13 9F 0F 01 93 9A 0F 01 93 50 0F 01 93 D7 0A 41 +8D B7 13 0F 1B 00 A2 9A 4E 9A 22 99 63 00 AB 7E +7A 8B 35 BB 33 29 67 00 B3 0C 2E 01 13 94 0C 01 +93 98 0C 01 93 50 04 01 93 D7 08 41 61 BC 33 AF +63 00 B3 80 EF 01 93 9A 00 01 93 D7 0A 41 B1 BC +33 A9 6E 00 B3 0C 2E 01 13 94 0C 01 93 57 04 41 +15 B4 93 72 FD 0F 93 DA 8E 00 C2 47 93 DF 12 00 +33 C9 57 00 13 7E 19 00 93 DC 17 00 63 0B 0E 00 +E9 76 93 80 16 00 B3 CD 1C 00 93 9E 0D 01 93 DC +0E 01 33 CD 9F 01 13 73 1D 00 13 DC 22 00 13 D8 +1C 00 63 0B 03 00 E9 78 13 8F 18 00 33 45 E8 01 +93 15 05 01 13 D8 05 01 B3 43 0C 01 13 F7 13 00 +13 D6 32 00 13 5E 18 00 11 CB 69 7B 93 07 1B 00 +33 44 FE 00 13 19 04 01 13 5E 09 01 B3 4F CE 00 +93 F0 1F 00 93 D6 42 00 13 53 1E 00 63 8B 00 00 +E9 7D 93 8E 1D 00 B3 4C D3 01 13 9D 0C 01 13 53 +0D 01 33 4C D3 00 93 78 1C 00 13 DF 52 00 13 57 +13 00 63 8B 08 00 69 75 93 05 15 00 33 48 B7 00 +93 13 08 01 13 D7 03 01 33 46 E7 01 13 7B 16 00 +93 D7 62 00 93 50 17 00 63 0B 0B 00 69 79 13 0E +19 00 33 C4 C0 01 93 1F 04 01 93 D0 0F 01 B3 C6 +F0 00 93 FD 16 00 93 D2 72 00 13 DC 10 00 63 8B +0D 00 E9 7E 93 8C 1E 00 33 4D 9C 01 13 13 0D 01 +13 5C 03 01 93 78 1C 00 93 53 1C 00 63 8B 58 00 +69 7F 13 05 1F 00 B3 C5 A3 00 13 98 05 01 93 53 +08 01 33 C7 53 01 13 76 17 00 13 DB 1A 00 93 DF +13 00 11 CA E9 77 13 89 17 00 33 CE 2F 01 13 14 +0E 01 93 5F 04 01 B3 40 FB 01 93 F6 10 00 93 DD +2A 00 13 D3 1F 00 91 CA E9 72 93 8E 12 00 B3 4C +D3 01 13 9D 0C 01 13 53 0D 01 33 4C B3 01 93 78 +1C 00 13 DF 3A 00 13 56 13 00 63 8B 08 00 69 75 +93 05 15 00 33 48 B6 00 93 13 08 01 13 D6 03 01 +33 47 E6 01 13 7B 17 00 93 D7 4A 00 93 50 16 00 +63 0B 0B 00 69 79 13 0E 19 00 33 C4 C0 01 93 1F +04 01 93 D0 0F 01 B3 C6 17 00 93 FD 16 00 93 D2 +5A 00 13 DC 10 00 63 8B 0D 00 E9 7E 93 8C 1E 00 +33 4D 9C 01 13 13 0D 01 13 5C 03 01 B3 C8 82 01 +13 FF 18 00 13 D5 6A 00 13 5B 1C 00 63 0B 0F 00 +E9 75 13 88 15 00 B3 43 0B 01 13 96 03 01 13 5B +06 01 33 47 AB 00 13 79 17 00 93 DA 7A 00 93 50 +1B 00 63 0B 09 00 E9 77 13 8E 17 00 33 C4 C0 01 +93 1F 04 01 93 D0 0F 01 93 F6 10 00 13 D4 10 00 +63 8B 56 01 E9 7D 93 82 1D 00 B3 4E 54 00 93 9C +0E 01 13 D4 0C 01 81 4D 81 46 63 80 09 1A 32 4D +92 4D 93 9A 19 00 6A 8C 33 8B AA 01 13 99 29 00 +81 4C 01 4D 13 93 2C 00 81 45 33 05 B3 01 4A 86 +EF 50 C0 58 AA 86 81 45 5E 85 B3 08 8B 41 13 8F +E8 FF 13 58 1F 00 93 03 18 00 13 F6 33 00 2A 83 +E2 88 81 4E 59 C2 05 47 63 0C E6 04 89 47 63 06 +F6 02 03 1E 0C 00 83 1F 05 00 93 08 2C 00 33 03 +55 01 B3 00 FE 03 93 DE 50 40 93 D2 20 40 13 FF +F2 00 13 F8 FE 07 B3 0E 0F 03 83 93 08 00 03 16 +03 00 89 08 56 93 B3 87 C3 02 13 D7 27 40 13 DE +57 40 93 7F F7 00 93 70 FE 07 B3 82 1F 02 96 9E +03 9F 08 00 03 18 03 00 89 08 56 93 B3 03 0F 03 +13 D6 23 40 93 D7 53 40 13 77 F6 00 13 FE F7 07 +B3 0F C7 03 FE 9E 63 03 1B 0B B3 00 53 01 03 9F +08 00 03 18 03 00 33 86 50 01 83 93 28 00 03 97 +00 00 03 1E 06 00 33 03 56 01 83 92 48 00 B3 0F +0F 03 83 17 03 00 83 90 68 00 A1 08 56 93 33 8F +E3 02 13 D8 5F 40 93 D3 2F 40 13 F7 F3 00 93 73 +F8 07 B3 82 C2 03 13 56 5F 40 13 5E 2F 40 93 7F +FE 00 13 76 F6 07 B3 80 F0 02 13 D8 52 40 93 D7 +22 40 13 FF F7 00 93 72 F8 07 33 07 77 02 13 DE +50 40 93 D3 20 40 93 F0 F3 00 93 77 FE 07 B3 8F +CF 02 BA 9E 33 06 5F 02 33 88 FE 01 33 8F F0 02 +B3 02 C8 00 B3 8E E2 01 E3 11 1B F7 23 A0 D6 01 +93 88 15 00 91 06 09 05 63 84 19 01 C6 85 75 B5 +93 06 1D 00 56 9C CE 9C 56 9B 63 81 A5 5F 36 8D +51 B5 93 F6 FA 0F 93 5D 8B 00 B3 C0 86 00 13 F3 +10 00 93 DF 16 00 93 52 14 00 63 0B 03 00 69 7E +93 0E 1E 00 33 CF D2 01 93 18 0F 01 93 D2 08 01 +33 CC 5F 00 93 7C 1C 00 13 DB 26 00 93 D4 12 00 +63 8B 0C 00 69 77 13 08 17 00 B3 C7 04 01 13 94 +07 01 93 54 04 01 33 45 9B 00 13 76 15 00 93 D5 +36 00 93 DB 14 00 11 CA E9 73 13 8D 13 00 33 C9 +AB 01 93 1A 09 01 93 DB 0A 01 B3 C0 75 01 13 F3 +10 00 93 DF 46 00 93 D2 1B 00 63 0B 03 00 69 7E +93 0E 1E 00 33 CF D2 01 93 18 0F 01 93 D2 08 01 +33 CC 5F 00 93 7C 1C 00 13 DB 56 00 93 D4 12 00 +63 8B 0C 00 69 77 13 08 17 00 B3 C7 04 01 13 94 +07 01 93 54 04 01 33 C5 64 01 93 75 15 00 13 D6 +66 00 93 DB 14 00 91 C9 E9 73 13 8D 13 00 33 C9 +AB 01 93 1A 09 01 93 DB 0A 01 B3 C0 CB 00 13 F3 +10 00 9D 82 93 D8 1B 00 63 0B 03 00 E9 7F 13 8E +1F 00 B3 CE C8 01 13 9F 0E 01 93 58 0F 01 93 F2 +18 00 13 D8 18 00 63 8B D2 00 69 7C 93 0C 1C 00 +33 4B 98 01 13 17 0B 01 13 58 07 01 B3 C7 0D 01 +13 F4 17 00 93 D4 1D 00 13 5D 18 00 11 C8 69 75 +93 05 15 00 33 46 BD 00 93 13 06 01 13 DD 03 01 +33 C9 A4 01 93 7A 19 00 93 DB 2D 00 13 5E 1D 00 +63 8B 0A 00 E9 70 13 83 10 00 B3 46 6E 00 93 9F +06 01 13 DE 0F 01 B3 CE CB 01 13 FF 1E 00 93 D8 +3D 00 13 57 1E 00 63 0B 0F 00 E9 72 13 8C 12 00 +B3 4C 87 01 13 9B 0C 01 13 57 0B 01 33 C8 E8 00 +13 74 18 00 93 D4 4D 00 93 53 17 00 11 C8 69 75 +93 05 15 00 B3 C7 B3 00 13 96 07 01 93 53 06 01 +33 CD 74 00 13 79 1D 00 93 DA 5D 00 93 DF 13 00 +63 0B 09 00 E9 7B 93 80 1B 00 33 C3 1F 00 93 16 +03 01 93 DF 06 01 33 CE 5F 01 93 7E 1E 00 13 DF +6D 00 13 DB 1F 00 63 8B 0E 00 E9 78 93 82 18 00 +33 4C 5B 00 93 1C 0C 01 13 DB 0C 01 33 47 6F 01 +13 78 17 00 93 DD 7D 00 93 57 1B 00 63 0B 08 00 +69 74 93 04 14 00 33 C5 97 00 93 15 05 01 93 D7 +05 01 13 F6 17 00 13 D5 17 00 63 0B B6 01 E9 73 +13 8D 13 00 33 49 A5 01 93 1A 09 01 13 D5 0A 01 +63 8B 09 12 32 43 B3 0B 30 41 93 90 19 00 B3 06 +13 00 93 92 1B 00 01 4F 93 9F 2B 00 33 8C 56 00 +33 8E 86 41 93 0E EE FF 93 D8 1E 00 93 8C 18 00 +13 FB 7C 00 E2 87 63 08 0B 08 05 47 63 0C EB 06 +09 48 63 02 0B 07 8D 4D 63 08 BB 05 11 44 63 0E +8B 02 95 44 63 04 9B 02 99 45 63 0A BB 00 03 56 +0C 00 93 07 2C 00 B3 03 46 41 23 10 7C 00 03 DD +07 00 89 07 33 09 4D 41 23 9F 27 FF 83 DA 07 00 +89 07 B3 8B 4A 41 23 9F 77 FF 83 D0 07 00 89 07 +33 83 40 41 23 9F 67 FE 03 DE 07 00 89 07 B3 0E +4E 41 23 9F D7 FF 83 D8 07 00 89 07 B3 8C 48 41 +23 9F 97 FF 03 DB 07 00 89 07 33 07 4B 41 23 9F +E7 FE 63 85 D7 06 83 DD 07 00 03 D4 27 00 83 D4 +47 00 03 D6 67 00 03 DD 87 00 03 D8 A7 00 83 D5 +C7 00 03 D9 E7 00 B3 83 4D 41 B3 0A 44 41 B3 8B +44 41 B3 00 46 41 33 03 4D 41 33 0E 48 41 B3 8E +45 41 B3 08 49 41 23 90 77 00 23 91 57 01 23 92 +77 01 23 93 17 00 23 94 67 00 23 95 C7 01 23 96 +D7 01 23 97 17 01 C1 07 E3 9F D7 F8 05 0F B3 06 +FC 41 E3 95 E9 EF F6 40 66 44 13 1C 05 01 D6 44 +46 49 B6 49 26 4A 96 4A 06 4B F2 5B D2 5C 42 5D +B2 5D 13 55 0C 41 62 5C 25 61 82 80 12 44 D2 4F +E2 44 72 4A A2 4B 33 0B 30 41 33 07 F4 01 13 18 +2B 00 01 4D 01 4E 81 46 01 46 93 15 3B 00 B3 02 +07 01 B3 00 57 40 93 8D C0 FF 93 DE 2D 00 93 8C +1E 00 13 F3 3C 00 16 8F 63 0F 03 10 05 4C 63 0A +83 05 89 48 63 05 13 03 F2 83 03 AE 02 00 93 17 +0D 01 13 DD 07 01 F2 96 63 D1 D4 1C 13 0B AD 00 +13 14 0B 01 13 5D 04 41 81 46 13 8F 42 00 F2 8F +03 2E 0F 00 93 10 0D 01 93 DD 00 01 F2 96 63 D5 +D4 18 93 86 AD 00 13 9C 06 01 13 5D 0C 41 81 46 +11 0F F2 88 03 2E 0F 00 93 13 0D 01 93 D7 03 01 +F2 96 63 D6 D4 14 13 84 A7 00 93 1F 04 01 93 10 +04 01 93 DE 0F 01 13 DD 00 41 81 46 11 0F 63 1C +E7 09 93 03 16 00 33 87 B2 40 63 0C C5 F8 1E 86 +B9 B7 33 2E BE 01 83 2A 4F 00 33 83 CC 01 13 1C +03 01 93 53 0C 41 93 97 03 01 33 0B 5D 01 11 0F +13 D9 07 01 63 DD 64 09 03 23 4F 00 93 0E A9 00 +93 9C 0E 01 93 DD 0C 41 01 4B 13 9E 0D 01 B3 06 +6B 00 13 5C 0E 01 63 DE D4 08 03 2E 8F 00 93 07 +AC 00 13 99 07 01 93 5A 09 41 81 46 13 9B 0A 01 +F2 96 13 54 0B 01 63 DF D4 08 13 03 A4 00 13 1C +03 01 93 18 03 01 93 5E 0C 01 13 DD 08 41 81 46 +31 0F E3 08 E7 F7 83 2D 0F 00 93 1E 0D 01 93 DC +0E 01 33 8D B6 01 E3 D6 A4 F7 83 2A 4F 00 93 86 +AC 00 93 98 06 01 93 D3 08 41 01 4D 93 97 03 01 +33 0B 5D 01 11 0F 13 D9 07 01 E3 C7 64 F7 33 A4 +5D 01 03 23 4F 00 B3 0F 89 00 93 90 0F 01 93 DD +00 41 13 9E 0D 01 B3 06 6B 00 13 5C 0E 01 E3 C6 +D4 F6 B3 A8 6A 00 03 2E 8F 00 B3 03 1C 01 13 9D +03 01 93 5A 0D 41 13 9B 0A 01 F2 96 13 54 0B 01 +E3 C5 D4 F6 B3 2F C3 01 B3 00 F4 01 93 9D 00 01 +93 9C 00 01 93 DE 0D 01 13 DD 0C 41 95 B7 33 AD +C8 01 B3 8A A7 01 13 99 0A 01 13 9B 0A 01 93 5E +09 01 13 5D 0B 41 5D BD B3 AE CF 01 B3 8C DD 01 +13 93 0C 01 13 5D 03 41 A5 BD 33 AF C3 01 B3 0A +ED 01 13 99 0A 01 13 5D 09 41 81 B5 92 4A B3 0B +30 41 13 95 2B 00 56 99 01 4E 81 4A 81 48 81 46 +13 96 3B 00 B3 0D A9 00 33 0D B9 41 13 03 CD FF +13 57 23 00 93 03 17 00 93 F0 73 00 6E 88 63 88 +00 24 85 4F 63 8E F0 0F 89 4E 63 89 D0 0D 0D 4F +63 84 E0 0B 91 42 63 8F 50 06 15 4C 63 8A 80 05 +99 4C 63 85 90 03 72 88 03 AE 0D 00 93 97 0A 01 +13 DB 07 01 F2 98 63 DB 14 3B 93 08 AB 00 13 93 +08 01 93 5A 03 41 81 48 13 88 4D 00 72 87 03 2E +08 00 93 93 0A 01 93 D0 03 01 F2 98 63 DF 14 37 +93 82 A0 00 13 9C 02 01 93 5A 0C 41 81 48 11 08 +F2 8C 03 2E 08 00 93 97 0A 01 13 DB 07 01 F2 98 +63 D4 14 35 93 08 AB 00 13 93 08 01 93 5A 03 41 +81 48 11 08 72 87 03 2E 08 00 93 93 0A 01 93 D0 +03 01 F2 98 63 D9 14 31 93 82 A0 00 13 9C 02 01 +93 5A 0C 41 81 48 11 08 F2 8C 03 2E 08 00 93 97 +0A 01 13 DB 07 01 F2 98 63 DE 14 2D 93 08 AB 00 +13 93 08 01 93 5A 03 41 81 48 11 08 72 87 03 2E +08 00 93 93 0A 01 93 D0 03 01 F2 98 63 D3 14 2B +93 82 A0 00 13 9C 02 01 93 5A 0C 41 81 48 11 08 +F2 8C 03 2E 08 00 93 97 0A 01 13 DB 07 01 F2 98 +63 D4 14 27 93 08 AB 00 13 93 08 01 93 93 08 01 +13 5B 03 01 93 DA 03 41 81 48 11 08 63 11 28 13 +93 83 16 00 33 89 CD 40 E3 8D D5 8A 9E 86 5D B5 +33 2E 1E 00 83 2B 48 00 33 8F CE 01 93 12 0F 01 +93 D7 02 41 93 9A 07 01 33 07 7B 01 11 08 13 DD +0A 01 63 D2 E4 12 03 2F 48 00 93 0F AD 00 93 9E +0F 01 93 D0 0E 41 01 47 13 9E 00 01 33 0C E7 01 +93 52 0E 01 63 D3 84 13 03 27 88 00 93 8A A2 00 +13 9D 0A 01 93 5B 0D 41 01 4C 93 98 0B 01 B3 00 +EC 00 93 D3 08 01 63 D4 14 12 03 2C C8 00 13 8E +A3 00 93 12 0E 01 13 DF 02 41 81 40 93 1C 0F 01 +33 8B 80 01 93 D7 0C 01 63 D5 64 13 83 20 08 01 +93 88 A7 00 93 93 08 01 13 D7 03 41 01 4B 13 13 +07 01 B3 0E 1B 00 93 5F 03 01 63 D6 D4 13 03 2B +48 01 93 8C AF 00 93 97 0C 01 13 DC 07 41 81 4E +93 1B 0C 01 33 8D 6E 01 93 DA 0B 01 63 D7 A4 13 +03 2E 88 01 13 83 AA 00 93 1F 03 01 93 D0 0F 41 +01 4D 93 9E 00 01 B3 08 CD 01 13 DF 0E 01 63 D8 +14 13 93 0B AF 00 13 9D 0B 01 13 97 0B 01 13 5B +0D 01 93 5A 07 41 81 48 71 08 E3 03 28 EF 83 20 +08 00 93 9F 0A 01 93 DE 0F 01 33 8B 18 00 E3 D1 +64 EF 83 2B 48 00 13 8C AE 00 93 1C 0C 01 93 D7 +0C 41 01 4B 93 9A 07 01 33 07 7B 01 11 08 13 DD +0A 01 E3 C2 E4 EE B3 A8 70 01 03 2F 48 00 33 03 +1D 01 93 13 03 01 93 D0 03 41 13 9E 00 01 33 0C +E7 01 93 52 0E 01 E3 C1 84 EF B3 AC EB 01 03 27 +88 00 B3 87 92 01 13 9B 07 01 93 5B 0B 41 93 98 +0B 01 B3 00 EC 00 93 D3 08 01 E3 C0 14 EE 33 23 +EF 00 03 2C C8 00 B3 8F 63 00 93 9E 0F 01 13 DF +0E 41 93 1C 0F 01 33 8B 80 01 93 D7 0C 01 E3 CF +64 ED B3 2B 87 01 83 20 08 01 B3 8A 77 01 13 9D +0A 01 13 57 0D 41 13 13 07 01 B3 0E 1B 00 93 5F +03 01 E3 CE D4 ED 33 2F 1C 00 03 2B 48 01 33 8E +EF 01 93 12 0E 01 13 DC 02 41 93 1B 0C 01 33 8D +6E 01 93 DA 0B 01 E3 CD A4 ED 33 A7 60 01 B3 88 +EA 00 03 2E 88 01 93 93 08 01 93 D0 03 41 93 9E +00 01 B3 08 CD 01 13 DF 0E 01 E3 CC 14 ED B3 22 +CB 01 33 0C 5F 00 93 1C 0C 01 93 17 0C 01 13 DB +0C 01 93 DA 07 41 C9 BD B3 AB CC 01 B3 0A 7B 01 +13 9D 0A 01 13 97 0A 01 13 5B 0D 01 93 5A 07 41 +69 BB B3 2F C7 01 B3 8E F0 01 13 9F 0E 01 93 5A +0F 41 B1 BB B3 AB CC 01 B3 0A 7B 01 13 9D 0A 01 +93 5A 0D 41 1D B3 B3 2F C7 01 B3 8E F0 01 13 9F +0E 01 93 5A 0F 41 C5 B9 B3 AB CC 01 B3 0A 7B 01 +13 9D 0A 01 93 5A 0D 41 6D B9 B3 2F C7 01 B3 8E +F0 01 13 9F 0E 01 93 5A 0F 41 51 B1 B3 2B C8 01 +B3 0A 7B 01 13 9D 0A 01 93 5A 0D 41 B1 B1 81 47 +01 47 81 4D 6F E0 1F 84 01 49 81 48 6F E0 1F C8 +41 11 14 45 2E 87 22 C4 4C 45 32 84 50 41 08 41 +06 C6 EF E0 4F B2 B3 46 A4 00 13 77 F5 0F 93 17 +05 01 93 F2 16 00 13 D3 07 01 13 56 17 00 13 58 +14 00 63 8B 02 00 E9 70 93 83 10 00 33 45 78 00 +93 15 05 01 13 D8 05 01 B3 48 C8 00 13 FE 18 00 +93 5E 27 00 93 52 18 00 63 0B 0E 00 69 7F 93 0F +1F 00 33 C4 F2 01 93 16 04 01 93 D2 06 01 B3 C7 +D2 01 93 F0 17 00 13 56 37 00 93 D8 12 00 63 8B +00 00 E9 73 93 85 13 00 33 C5 B8 00 13 18 05 01 +93 58 08 01 33 CE C8 00 93 7E 1E 00 13 5F 47 00 +93 D7 18 00 63 8B 0E 00 E9 7F 13 84 1F 00 B3 C6 +87 00 93 92 06 01 93 D7 02 01 B3 C0 E7 01 93 F3 +10 00 13 56 57 00 13 DE 17 00 63 8B 03 00 E9 75 +13 88 15 00 33 45 0E 01 93 18 05 01 13 DE 08 01 +B3 4E CE 00 13 FF 1E 00 93 5F 67 00 93 50 1E 00 +63 0B 0F 00 69 74 93 06 14 00 B3 C2 D0 00 93 97 +02 01 93 D0 07 01 B3 C3 F0 01 13 F6 13 00 1D 83 +13 DE 10 00 11 CA E9 75 13 88 15 00 33 45 0E 01 +93 18 05 01 13 DE 08 01 93 7E 1E 00 93 52 1E 00 +63 8B EE 00 69 7F 93 0F 1F 00 33 C4 F2 01 93 16 +04 01 93 D2 06 01 93 57 83 00 B3 C0 57 00 93 F3 +10 00 13 56 83 00 93 D8 12 00 13 53 93 00 63 8B 03 00 69 77 93 05 17 00 33 C8 B8 00 13 15 08 01 -93 58 05 01 33 CE 68 00 93 7E 1E 00 13 5F 46 00 +93 58 05 01 33 4E 13 01 93 7E 1E 00 13 5F 26 00 93 D0 18 00 63 8B 0E 00 E9 7F 13 84 1F 00 B3 C6 80 00 93 92 06 01 93 D0 02 01 B3 C7 E0 01 93 F3 -17 00 13 53 56 00 93 D8 10 00 63 8B 03 00 69 77 +17 00 13 53 36 00 93 D8 10 00 63 8B 03 00 69 77 93 05 17 00 33 C8 B8 00 13 15 08 01 93 58 05 01 -33 CE 68 00 93 7E 1E 00 13 5F 66 00 93 D0 18 00 +33 CE 68 00 93 7E 1E 00 13 5F 46 00 93 D0 18 00 63 8B 0E 00 E9 7F 13 84 1F 00 B3 C6 80 00 93 92 -06 01 93 D0 02 01 B3 C7 E0 01 93 F3 17 00 1D 82 -13 D5 10 00 63 8B 03 00 69 73 13 07 13 00 B3 45 -E5 00 13 98 05 01 13 55 08 01 93 78 15 00 05 81 -63 8B C8 00 69 7E 93 0E 1E 00 33 4F D5 01 93 1F -0F 01 13 D5 0F 01 B2 40 22 44 41 01 82 80 79 71 -4A D2 22 D6 26 D4 4E D0 52 CE 56 CC 5A CA 5E C8 -62 C6 66 C4 6A C2 2A 87 36 89 11 E2 05 46 FD 15 -13 F4 C5 FF 13 0A 44 00 81 47 63 02 07 34 93 82 -17 00 B3 86 52 02 13 88 27 00 13 8E 37 00 13 8F -47 00 93 8E 57 00 93 88 67 00 13 83 77 00 3E 85 -A1 07 93 93 36 00 63 F3 E3 06 B3 09 08 03 16 85 -13 9B 39 00 63 7C EB 04 B3 0B CE 03 42 85 13 9C -3B 00 63 75 EC 04 B3 0C EF 03 72 85 13 9D 3C 00 -63 7E ED 02 B3 8F DE 03 7A 85 93 95 3F 00 63 F7 -E5 02 33 84 18 03 76 85 93 1A 34 00 63 F0 EA 02 -B3 04 63 02 46 85 93 92 34 00 63 F9 E2 00 33 88 -F7 02 1A 85 13 1E 38 00 E3 6B EE F6 33 07 A5 02 -AA 8A 93 14 17 00 33 04 9A 00 63 06 05 26 C1 6E -81 46 81 43 85 4F 33 0F 8A 40 FD 1E 93 09 F5 FF -33 06 F6 03 93 98 0F 01 93 D7 08 01 13 93 16 00 -33 0B 83 00 13 0C F5 FF 93 7C 3C 00 B3 0B 6F 01 -05 4E 13 88 1F 00 13 5D F6 41 93 52 0D 01 33 07 -56 00 33 76 D7 01 33 06 56 40 B3 88 C7 00 13 93 -08 01 13 5C 03 01 E2 97 23 10 8B 01 13 FD F7 0F -23 90 AB 01 93 05 2B 00 63 76 AE 1E 63 83 0C 0E -63 8C CC 09 89 4B 63 86 7C 05 B3 0C 06 03 42 08 -93 52 08 01 B3 08 BF 00 93 05 4B 00 13 88 2F 00 -09 4E 13 D7 FC 41 13 53 07 01 33 86 6C 00 33 7C -D6 01 33 06 6C 40 B3 87 C2 00 13 9D 07 01 93 5B -0D 01 B3 8C 5B 00 23 11 7B 01 13 FB FC 0F 23 90 -68 01 B3 02 06 03 93 18 08 01 13 D3 08 01 33 0C -BF 00 05 0E 05 08 89 05 13 D7 F2 41 93 57 07 01 -33 86 F2 00 33 7D D6 01 33 06 FD 40 B3 0B C3 00 -93 9C 0B 01 13 DB 0C 01 B3 02 6B 00 23 9F 65 FF -93 F8 F2 0F 23 10 1C 01 33 03 06 03 13 1C 08 01 -93 57 0C 01 33 0D BF 00 89 05 05 0E 05 08 13 57 -F3 41 93 5B 07 01 33 06 73 01 B3 7C D6 01 33 86 -7C 41 33 8B C7 00 93 12 0B 01 93 D8 02 01 33 83 -F8 00 23 9F 15 FF 13 7C F3 0F 23 10 8D 01 63 73 -AE 10 33 06 06 03 93 07 28 00 13 0B 38 00 13 1D -08 01 93 52 0D 01 93 98 07 01 13 1D 0B 01 13 D3 -08 01 93 58 0D 01 13 07 18 00 13 5D F6 41 13 5D -0D 01 6A 96 33 76 D6 01 33 0D A6 41 93 1B 07 01 -33 07 ED 02 33 86 A2 01 13 1D 06 01 13 56 0D 01 -B2 92 B3 0C BF 00 23 90 C5 00 13 FD F2 0F 23 90 -AC 01 66 8C 66 86 E6 82 93 5C F7 41 13 DD 0C 01 -6A 97 B3 7C D7 01 33 8D AC 41 B3 07 FD 02 93 DB -0B 01 33 87 AB 01 93 1C 07 01 13 DD 0C 01 EA 9B -23 91 A5 01 13 F7 FB 0F 23 11 EC 00 A1 05 13 DC -F7 41 93 5C 0C 01 E6 97 33 FD D7 01 B3 0B 9D 41 -33 8B 6B 03 33 07 73 01 13 1C 07 01 93 5C 0C 01 -66 93 23 9E 95 FF 93 77 F3 0F 23 12 F6 00 11 0E -11 08 13 56 FB 41 13 5D 06 01 B3 0B AB 01 33 FB -DB 01 33 06 AB 41 33 87 C8 00 13 1C 07 01 93 5C -0C 01 E6 98 23 9F 95 FF 13 F3 F8 0F 23 93 62 00 -E3 61 AE F0 85 0F 01 4E 11 C1 4E 8E 85 03 F2 9F -AA 96 E3 E7 A3 DA A2 94 93 86 F4 FF 23 24 89 00 -93 F3 C6 FF 32 54 13 8F 43 00 23 22 49 01 23 20 -59 01 23 26 E9 01 A2 54 12 59 82 59 72 4A E2 4A -52 4B C2 4B 32 4C A2 4C 12 4D 45 61 82 80 19 04 -FD 5A 7D 55 89 44 A1 BB 2A 88 63 06 05 3E B3 08 -A0 40 13 17 25 00 2E 97 13 93 28 00 81 45 01 45 -81 4F 81 4E 8E 08 B3 06 E3 00 B3 07 D7 40 93 82 -C7 FF 93 D3 22 00 13 8E 13 00 93 77 7E 00 36 8E -63 80 07 22 05 4F 63 89 E7 0F 89 42 63 84 57 0C -8D 43 63 81 77 0A 11 4F 63 8C E7 07 95 42 63 87 -57 04 99 43 63 84 77 02 7E 8E 83 AF 06 00 42 05 -13 5F 05 01 FE 9E 63 57 D6 37 93 0E AF 00 13 9E -0E 01 13 55 0E 41 81 4E 13 8E 46 00 7E 8F 83 2F -0E 00 42 05 93 52 05 01 FE 9E 63 5C D6 33 93 8E -A2 00 13 95 0E 01 41 85 81 4E 11 0E FE 82 83 2F -0E 00 93 17 05 01 93 D3 07 01 FE 9E 63 52 D6 31 -93 8E A3 00 93 97 0E 01 13 D5 07 41 81 4E 11 0E -FE 83 83 2F 0E 00 13 1F 05 01 13 55 0F 01 FE 9E -63 57 D6 2D 93 0E A5 00 13 9F 0E 01 13 55 0F 41 -81 4E 11 0E FE 82 83 2F 0E 00 42 05 93 53 05 01 -FE 9E 63 5D D6 29 93 8E A3 00 13 95 0E 01 41 85 -81 4E 11 0E FE 83 83 2F 0E 00 93 17 05 01 13 DF -07 01 FE 9E 63 53 D6 27 93 0E AF 00 93 97 0E 01 -13 D5 07 41 81 4E 11 0E 7E 8F 83 2F 0E 00 93 12 -05 01 13 D5 02 01 FE 9E 63 58 D6 23 93 0E A5 00 -93 92 0E 01 13 D5 02 41 81 4E 11 0E 63 12 C7 11 -85 05 33 87 16 41 E3 10 B8 EC 82 80 B3 AF 7F 00 -B3 07 FF 01 83 2F 4E 00 93 92 07 01 13 DF 02 41 -93 17 0F 01 33 85 FE 01 11 0E 93 D2 07 01 63 53 -A6 10 83 23 4E 00 A9 02 13 95 02 01 93 57 05 41 -01 45 13 9F 07 01 B3 0E 75 00 93 57 0F 01 63 55 -D6 11 83 2F 8E 00 A9 07 93 9E 07 01 13 DF 0E 41 -81 4E 93 12 0F 01 FE 9E 13 D5 02 01 63 57 D6 11 -83 23 CE 00 29 05 93 1E 05 01 93 D2 0E 41 81 4E -13 9F 02 01 B3 82 7E 00 93 57 0F 01 63 59 56 10 -A9 07 83 2F 0E 01 93 92 07 01 13 DF 02 41 81 42 -13 15 0F 01 B3 8E F2 01 93 57 05 01 63 5B D6 11 -83 23 4E 01 A9 07 93 9E 07 01 13 D5 0E 41 81 4E -13 1F 05 01 9E 9E 93 52 0F 01 63 5D D6 11 83 2F -8E 01 A9 02 93 9E 02 01 13 DF 0E 41 81 4E 13 15 -0F 01 FE 9E 93 57 05 01 63 5F D6 11 13 85 A7 00 -93 17 05 01 13 D5 07 41 81 4E 71 0E E3 02 C7 F1 -83 23 0E 00 42 05 13 5F 05 01 9E 9E E3 50 D6 F1 -93 0E AF 00 83 2F 4E 00 13 95 0E 01 13 5F 05 41 -81 4E 93 17 0F 01 33 85 FE 01 11 0E 93 D2 07 01 -E3 41 A6 F0 B3 A3 F3 01 33 8F 72 00 83 23 4E 00 -93 1E 0F 01 93 D7 0E 41 13 9F 07 01 B3 0E 75 00 -93 57 0F 01 E3 4F D6 EF B3 AF 7F 00 B3 82 F7 01 -83 2F 8E 00 13 95 02 01 13 5F 05 41 93 12 0F 01 -FE 9E 13 D5 02 01 E3 4D D6 EF B3 A3 F3 01 33 0F -75 00 83 23 CE 00 93 17 0F 01 93 D2 07 41 13 9F -02 01 B3 82 7E 00 93 57 0F 01 E3 4B 56 EE B3 AF -7F 00 33 85 F7 01 83 2F 0E 01 93 1E 05 01 13 DF -0E 41 13 15 0F 01 B3 8E F2 01 93 57 05 01 E3 49 -D6 EF B3 A3 F3 01 33 8F 77 00 83 23 4E 01 93 12 -0F 01 13 D5 02 41 13 1F 05 01 9E 9E 93 52 0F 01 -E3 47 D6 EF B3 AF 7F 00 33 85 F2 01 83 2F 8E 01 -93 17 05 01 13 DF 07 41 13 15 0F 01 FE 9E 93 57 -05 01 E3 45 D6 EF B3 A3 F3 01 33 8F 77 00 93 12 -0F 01 13 D5 02 41 D5 B5 B3 23 FF 01 B3 07 75 00 -13 9F 07 01 13 55 0F 41 C9 BB B3 A2 F3 01 33 05 -5F 00 93 13 05 01 13 D5 03 41 71 BB B3 A7 F2 01 -33 8F F3 00 93 12 0F 01 13 D5 02 41 9D B3 B3 A2 -F3 01 B3 07 55 00 93 93 07 01 13 D5 03 41 15 BB -33 AF F2 01 33 85 E3 01 93 12 05 01 13 D5 02 41 -FD B9 B3 27 FF 01 B3 83 F2 00 13 9F 03 01 13 55 -0F 41 E1 B1 B3 27 FE 01 B3 02 FF 00 93 93 02 01 -13 D5 03 41 51 B9 01 45 82 80 63 01 05 16 41 11 -B3 03 A0 40 13 18 15 00 22 C6 26 C4 13 94 13 00 -4A C2 4E C0 32 98 81 4F 81 42 8A 03 B3 08 04 01 -33 06 18 41 13 03 E6 FF 93 54 13 00 13 87 14 00 -93 97 2F 00 13 79 77 00 AE 97 46 87 63 0F 09 08 -85 49 63 02 39 09 09 4E 63 07 C9 07 8D 4E 63 0C -D9 05 11 4F 63 01 E9 05 15 46 63 06 C9 02 19 43 -63 0B 69 00 83 94 08 00 13 87 28 00 91 07 33 89 -D4 02 23 AE 27 FF 83 19 07 00 91 07 09 07 33 8E -D9 02 23 AE C7 FF 83 1E 07 00 91 07 09 07 33 8F -DE 02 23 AE E7 FF 03 16 07 00 91 07 09 07 33 03 -D6 02 23 AE 67 FE 83 14 07 00 91 07 09 07 33 89 -D4 02 23 AE 27 FF 83 19 07 00 91 07 09 07 33 8E -D9 02 23 AE C7 FF 83 1E 07 00 91 07 09 07 33 8F -DE 02 23 AE E7 FF 63 07 E8 06 83 19 07 00 03 19 -27 00 83 14 47 00 03 1F 67 00 83 1E 87 00 03 1E -A7 00 03 13 C7 00 03 16 E7 00 B3 89 D9 02 41 07 -93 87 07 02 33 09 D9 02 23 A0 37 FF B3 84 D4 02 -23 A2 27 FF 33 0F DF 02 23 A4 97 FE B3 8E DE 02 -23 A6 E7 FF 33 0E DE 02 23 A8 D7 FF 33 03 D3 02 -23 AA C7 FF 33 06 D6 02 23 AC 67 FE 23 AE C7 FE -E3 1D E8 F8 85 02 AA 9F 33 88 78 40 E3 18 55 EC -32 44 A2 44 12 49 82 49 41 01 82 80 82 80 63 00 -05 1E B3 02 A0 40 93 16 06 01 93 17 15 00 93 93 -12 00 C1 82 33 86 F5 00 81 4F 8A 02 B3 85 C3 00 -33 07 B6 40 13 03 E7 FF 13 58 13 00 93 08 18 00 -13 FE 78 00 AE 87 63 08 0E 08 85 4E 63 0C DE 07 -09 4F 63 02 EE 07 0D 47 63 08 EE 04 11 43 63 0E -6E 02 15 48 63 04 0E 03 99 48 63 0A 1E 01 03 DE -05 00 93 87 25 00 B3 8E C6 01 23 90 D5 01 03 DF -07 00 89 07 33 87 E6 01 23 9F E7 FE 03 D3 07 00 -89 07 33 88 66 00 23 9F 07 FF 83 D8 07 00 89 07 -33 8E 16 01 23 9F C7 FF 83 DE 07 00 89 07 33 8F -D6 01 23 9F E7 FF 03 D7 07 00 89 07 33 83 E6 00 -23 9F 67 FE 03 D8 07 00 89 07 B3 88 06 01 23 9F -17 FF 63 09 F6 10 41 11 22 C6 03 D4 07 00 03 DF -27 00 83 DE 47 00 03 DE 67 00 03 D3 87 00 83 D8 -A7 00 03 D8 C7 00 03 D7 E7 00 36 94 36 9F B6 9E -36 9E 36 93 B6 98 36 98 36 97 23 90 87 00 23 91 -E7 01 23 92 D7 01 23 93 C7 01 23 94 67 00 23 95 -17 01 23 96 07 01 23 97 E7 00 C1 07 E3 17 F6 FA -85 0F 33 86 55 40 63 04 F5 0B B3 85 C3 00 B3 07 -B6 40 13 84 E7 FF 13 5F 14 00 93 0E 1F 00 13 FE -7E 00 AE 87 E3 03 0E F8 05 43 63 04 6E 06 89 48 -63 0A 1E 05 0D 48 63 00 0E 05 11 47 63 06 EE 02 -15 44 63 0C 8E 00 19 4F 63 1C EE 07 03 D3 07 00 -89 07 B3 88 66 00 23 9F 17 FF 03 D8 07 00 89 07 -33 87 06 01 23 9F E7 FE 03 D4 07 00 89 07 33 8F -86 00 23 9F E7 FF 83 DE 07 00 89 07 33 8E D6 01 -23 9F C7 FF 03 D3 07 00 89 07 B3 88 66 00 23 9F -17 FF 03 D8 07 00 89 07 33 87 06 01 23 9F E7 FE -E3 15 F6 F0 85 0F 33 86 55 40 E3 10 F5 F7 32 44 -41 01 82 80 85 0F 33 86 55 40 E3 11 F5 E5 82 80 -83 DE 05 00 93 87 25 00 33 8E D6 01 23 90 C5 01 -B5 BF 63 08 05 1A 79 71 26 D2 AA 84 4E CE 93 99 -24 00 4A D0 2E 85 32 89 81 45 4E 86 22 D4 06 D6 -36 84 52 CC 56 CA 5A C8 5E C6 62 C4 66 C2 EF 30 -30 49 93 96 14 00 AA 85 A2 96 4E 95 01 46 33 83 -86 40 93 00 E3 FF 93 D2 10 00 93 83 12 00 93 17 -16 00 93 F8 73 00 CA 97 22 87 01 4E 63 85 08 0A -05 48 63 87 08 09 09 4A 63 8B 48 07 8D 4A 63 8F -58 05 11 4B 63 83 68 05 95 4B 63 87 78 03 19 4C -63 8B 88 01 83 9C 07 00 03 1E 04 00 89 07 13 07 -24 00 33 8E CC 03 83 9E 07 00 03 1F 07 00 89 07 -09 07 B3 8F EE 03 7E 9E 83 99 07 00 03 13 07 00 -89 07 09 07 B3 80 69 02 06 9E 83 92 07 00 83 13 -07 00 89 07 09 07 B3 88 72 02 46 9E 03 98 07 00 -03 1A 07 00 89 07 09 07 B3 0A 48 03 56 9E 03 9B -07 00 83 1B 07 00 89 07 09 07 33 0C 7B 03 62 9E -83 9C 07 00 83 1E 07 00 09 07 89 07 33 8F DC 03 -7A 9E 63 85 E6 08 83 9F 07 00 83 19 07 00 83 90 -27 00 83 1A 27 00 B3 88 3F 03 03 98 47 00 03 1C -47 00 83 92 67 00 83 1B 67 00 83 9C 87 00 03 1B -87 00 03 9F A7 00 03 1A A7 00 83 9E C7 00 B3 8F -50 03 83 19 C7 00 03 93 E7 00 83 13 E7 00 46 9E -41 07 C1 07 B3 00 88 03 B3 0A FE 01 33 8C 72 03 -33 88 1A 00 B3 82 6C 03 B3 0B 88 01 B3 08 4F 03 -B3 8C 5B 00 33 8B 3E 03 33 8F 1C 01 33 0A 73 02 -B3 0E 6F 01 33 8E 4E 01 E3 9F E6 F6 23 A0 C5 01 -91 05 26 96 E3 15 B5 EA B2 50 22 54 92 54 02 59 -F2 49 62 4A D2 4A 42 4B B2 4B 22 4C 92 4C 45 61 -82 80 82 80 5D 71 86 C6 A2 C4 A6 C2 CA C0 4E DE -52 DC 56 DA 5A D8 5E D6 62 D4 66 D2 6A D0 6E CE -2E C4 36 C6 63 0F 05 1A 13 14 15 00 AA 8A B2 89 -33 09 86 00 93 14 25 00 01 4B 81 4B A2 47 13 1F -2B 00 26 86 33 85 E7 01 81 45 EF 30 70 2C 32 46 -2A 8F 81 4F 33 07 39 41 93 00 E7 FF 93 D2 10 00 -13 83 12 00 93 73 73 00 B2 85 CE 86 81 47 63 86 -03 0A 05 48 63 88 03 09 89 48 63 8C 13 07 0D 4A -63 80 43 07 11 4C 63 84 83 05 95 4C 63 88 93 03 -19 4D 63 8C A3 01 83 9D 09 00 03 1E 06 00 93 86 -29 00 B3 05 86 00 B3 87 CD 03 83 9E 06 00 03 95 -05 00 89 06 A2 95 33 87 AE 02 BA 97 83 90 06 00 -83 92 05 00 89 06 A2 95 33 83 50 02 9A 97 83 93 -06 00 03 98 05 00 89 06 A2 95 B3 88 03 03 C6 97 -03 9A 06 00 03 9C 05 00 89 06 A2 95 B3 0C 8A 03 -E6 97 03 9D 06 00 83 9D 05 00 89 06 A2 95 33 0E -BD 03 F2 97 83 9E 06 00 03 95 05 00 89 06 A2 95 -33 87 AE 02 BA 97 63 03 D9 0A 03 93 06 00 83 93 -05 00 B3 80 85 00 B3 82 80 00 33 07 73 02 03 9E -00 00 03 9D 26 00 33 88 82 00 83 9D 02 00 03 9A -46 00 B3 08 88 00 83 1C 08 00 83 90 66 00 B3 8E -88 00 33 0D CD 03 03 93 86 00 03 9C 08 00 83 92 -A6 00 83 93 0E 00 33 85 8E 00 03 98 C6 00 B3 05 -85 00 83 1E 05 00 BA 97 33 0A BA 03 03 95 E6 00 -03 9E 05 00 B3 8D A7 01 C1 06 A2 95 B3 80 90 03 -B3 88 4D 01 33 07 83 03 B3 8C 18 00 33 83 72 02 -33 8C EC 00 B3 02 D8 03 B3 03 6C 00 33 08 C5 03 -33 8D 53 00 B3 07 0D 01 E3 11 D9 F6 23 20 FF 00 -93 86 1F 00 11 0F 09 06 63 84 DA 00 B6 8F 59 B5 -13 8F 1B 00 A2 99 56 9B 22 99 63 84 FB 01 FA 8B -B1 BD B6 40 26 44 96 44 06 49 F2 59 62 5A D2 5A -42 5B B2 5B 22 5C 92 5C 02 5D F2 4D 61 61 82 80 -63 04 05 1C 79 71 4E CE 93 19 15 00 22 D4 26 D2 -4A D0 52 CC 56 CA 5A C8 5E C6 62 C4 06 D6 2A 8B -2E 84 B6 84 B2 8A 33 0A 36 01 13 19 25 00 81 4B -01 4C 13 98 2B 00 33 05 04 01 4A 86 81 45 EF 30 -30 0D AA 83 A6 88 01 43 B3 07 5A 41 93 80 E7 FF -93 D2 10 00 93 85 12 00 13 F6 35 00 46 85 D6 86 -81 4E 59 C2 05 47 63 0C E6 04 09 4E 63 06 C6 03 -83 9E 0A 00 03 9F 08 00 93 86 2A 00 33 85 38 01 -B3 8F EE 03 13 D8 2F 40 93 D7 5F 40 93 70 F8 00 -93 F2 F7 07 B3 8E 50 02 83 95 06 00 03 16 05 00 -89 06 4E 95 33 8E C5 02 13 57 2E 40 13 5F 5E 40 -93 7F F7 00 13 78 FF 07 B3 87 0F 03 BE 9E 83 90 -06 00 83 12 05 00 89 06 4E 95 B3 85 50 02 13 D6 -25 40 13 DE 55 40 13 77 F6 00 13 7F FE 07 B3 0F -E7 03 FE 9E 63 03 DA 0A 33 08 35 01 83 90 06 00 -83 12 05 00 B3 07 38 01 03 9E 26 00 03 17 08 00 -83 9F 07 00 33 85 37 01 03 96 46 00 33 8F 50 02 -03 18 05 00 83 95 66 00 A1 06 4E 95 B3 00 EE 02 -93 52 2F 40 13 5E 5F 40 13 F7 F2 00 93 77 FE 07 -33 06 F6 03 13 DF 50 40 93 DF 20 40 93 72 FF 07 -93 F0 FF 00 B3 85 05 03 13 5E 56 40 13 58 26 40 -93 7F F8 00 13 76 FE 07 B3 07 F7 02 13 DF 55 40 -13 D7 25 40 13 78 F7 00 93 75 FF 07 B3 80 50 02 -BE 9E B3 82 CF 02 33 8E 1E 00 B3 0F B8 02 33 06 -5E 00 B3 0E F6 01 E3 11 DA F6 23 A0 D3 01 93 06 -13 00 91 03 89 08 63 04 DB 00 36 83 75 B5 93 03 -1C 00 CE 9A DA 9B 4E 9A 63 04 6C 00 1E 8C 51 B5 -B2 50 22 54 92 54 02 59 F2 49 62 4A D2 4A 42 4B -B2 4B 22 4C 45 61 82 80 82 80 13 03 F5 FF 85 47 -B2 88 63 FA 67 16 85 05 93 92 05 01 93 D5 02 01 -37 06 04 F0 93 D3 35 00 9D 4E 93 F6 75 00 01 47 -13 06 86 0A A1 4F 11 48 05 4E 13 0F C0 02 93 F7 -33 00 63 8C D6 11 63 68 D8 12 93 83 D6 FF 93 92 -03 01 8A 07 93 D6 02 01 B3 03 F6 00 63 68 DE 10 -83 A6 03 01 A5 47 A1 43 B3 02 F7 00 63 F5 62 12 -41 11 22 C6 35 A0 63 66 88 0C 93 06 D4 FF 93 97 -06 01 13 94 23 00 93 D2 07 01 B3 03 86 00 63 65 -5E 0A 83 A6 03 01 A5 42 A1 43 BA 92 63 F3 62 08 -03 C4 06 00 B3 87 E8 00 23 80 87 00 03 C7 16 00 -A3 80 E7 00 03 C4 26 00 23 81 87 00 03 C7 36 00 -A3 81 E7 00 63 84 03 03 03 C4 46 00 23 82 87 00 -03 C7 56 00 A3 82 E7 00 03 C4 66 00 23 83 87 00 -63 96 F3 01 83 C6 76 00 A3 83 D7 00 85 05 BE 93 -93 97 05 01 93 D5 07 01 23 80 E3 01 16 87 13 F4 -75 00 93 D2 35 00 93 F3 32 00 E3 16 D4 F7 93 96 -23 00 A5 42 B3 07 D6 00 BA 92 94 5B A1 43 E3 E1 -62 F8 63 79 A7 02 32 44 33 06 E5 40 81 45 33 85 -E8 00 41 01 6F 30 C0 61 83 A6 03 00 95 42 91 43 -A9 BF 13 94 23 00 B3 03 86 00 83 A6 03 02 A5 42 -A1 43 A1 B7 32 44 41 01 82 80 93 92 27 00 B3 03 -56 00 83 A6 03 03 A5 47 A1 43 FD BD 83 A6 03 00 -95 47 91 43 D5 BD 93 92 27 00 B3 06 56 00 94 52 -A5 47 A1 43 D5 B5 01 47 33 06 E5 40 81 45 33 85 -E8 00 6F 30 E0 5B E3 69 A7 FE 82 80 1C 41 2A 8E -01 45 03 C7 07 00 3E 88 61 C3 93 06 C0 02 13 88 -17 00 63 07 D7 24 88 41 13 06 07 FD 93 72 F6 0F -A5 48 13 03 15 00 63 E4 58 0A 23 A0 65 00 83 C8 -17 00 63 8A 08 12 13 87 27 00 63 85 D8 12 13 86 -08 FD 13 0F E0 02 A5 4F 93 07 C0 02 93 76 F6 0F -63 84 E8 03 63 E4 DF 0A 83 48 18 00 13 05 17 00 -3A 88 63 81 08 10 63 8C F8 20 13 86 08 FD 2A 87 -93 76 F6 0F E3 90 E8 FF 03 A3 05 01 15 45 93 03 -13 00 23 A8 75 00 03 43 18 00 3A 88 63 0E 03 02 -13 08 C0 02 93 08 17 00 63 01 03 1D 93 0E 50 04 -25 4F 93 0F C0 02 93 07 03 FD 13 76 F3 0D 93 F6 -F7 0F 63 0C D6 0B 63 7F DF 14 83 A2 45 01 46 88 -05 45 13 87 12 00 D8 C9 23 20 0E 01 82 80 93 03 -B0 02 63 0F 77 02 93 0E D0 02 63 0B D7 03 13 0F -E0 02 63 04 E7 15 83 AF 45 00 23 A0 65 00 05 45 -93 87 1F 00 DC C1 23 20 0E 01 82 80 83 A2 05 01 -3A 88 05 45 13 87 12 00 98 C9 23 20 0E 01 82 80 -23 A0 65 00 03 C6 17 00 63 0E 06 14 13 88 27 00 -63 0A D6 14 94 45 13 07 06 FD 93 72 F7 0F 25 45 -93 88 16 00 63 7C 55 00 13 03 E0 02 63 03 66 10 -23 A4 15 01 05 45 23 20 0E 01 82 80 23 A4 15 01 -83 C8 27 00 63 89 08 00 93 0E C0 02 13 07 18 00 -E3 9F D8 ED 3A 88 11 45 85 B7 C8 49 93 03 15 00 -23 AA 75 00 83 4E 17 00 63 89 0E 0E 13 0F C0 02 -13 88 18 00 63 84 EE 0F 83 AF C5 00 93 87 5E FD -13 F6 D7 0F 93 86 1F 00 D4 C5 09 C6 05 45 23 20 -0E 01 82 80 83 C2 18 00 63 84 02 0C 13 88 28 00 -63 80 E2 0D 03 A3 85 01 13 87 02 FD 13 75 F7 0F -93 0E 13 00 A5 43 23 AC D5 01 E3 E9 A3 FC 83 C2 -28 00 63 8A 02 08 13 87 38 00 63 85 E2 09 A5 48 -13 0F C0 02 93 8F 02 FD 13 F6 FF 0F 63 F9 C8 00 -D4 41 3A 88 05 45 93 87 16 00 DC C1 F1 B5 83 42 -18 00 13 03 17 00 3A 88 63 8E 02 04 63 86 E2 07 -1A 87 C9 BF 03 43 17 00 13 88 18 00 46 87 63 0E -03 02 63 0D F3 03 C2 88 BD BD 23 A0 65 00 03 C3 -17 00 63 05 03 02 93 88 27 00 63 00 D3 02 42 87 -B1 BD 23 A4 15 01 03 C3 27 00 63 09 03 00 93 03 -C0 02 93 08 18 00 E3 14 73 FE 46 88 15 45 AD B5 -01 45 9D B5 3A 88 1D 45 85 B5 46 88 0D 45 A9 BD -19 45 99 BD 09 45 89 BD 1A 88 1D 45 B1 B5 2A 88 -11 45 99 B5 19 71 A2 DC A6 DA CA D8 D2 D4 D6 D2 -DA D0 DE CE 86 DE CE D6 2E 89 83 C5 05 00 4A C6 -02 D8 02 C8 02 DA 02 DC 02 DE 82 C0 82 C2 82 C4 -82 C6 02 CA 02 CC 02 CE 02 D0 02 D2 02 D4 02 D6 -04 18 2A 8A B2 8B 36 8B BA 8A 3E 84 E3 8C 05 1C -93 09 C1 00 A6 85 4E 85 15 33 AA 87 93 92 27 00 -98 08 33 03 57 00 B2 46 83 23 03 FC A6 85 03 C6 -06 00 13 88 13 00 23 20 03 FD 4E 85 35 CA FD 39 -AA 88 13 9E 28 00 93 0E 01 05 33 8F CE 01 B2 47 -83 2F 0F FC A6 85 83 C2 07 00 13 87 1F 00 23 20 -EF FC 4E 85 63 86 02 04 D1 39 2A 83 93 13 23 00 -94 08 33 86 76 00 B2 48 03 28 06 FC A6 85 03 CE -08 00 93 0E 18 00 23 20 D6 FD 4E 85 63 02 0E 02 -75 31 0A 05 8C 08 33 8F A5 00 B2 47 83 2F 0F FC -83 C2 07 00 13 87 1F 00 23 20 EF FC E3 94 02 F6 -4A C6 4A 9A 83 45 09 00 E3 7C 49 13 93 00 C0 02 -4A 83 B3 C9 75 01 63 80 15 02 23 00 33 01 B2 43 -33 83 53 01 1A C6 63 7C 43 01 83 45 03 00 B3 C9 -75 01 E3 94 15 FE 56 93 1A C6 E3 68 43 FF 83 4B -09 00 4A C6 93 09 C1 00 63 83 0B 0A A6 85 4E 85 -35 39 AA 86 13 96 26 00 13 08 01 05 B3 08 C8 00 -B2 4E 03 AE 08 FC A6 85 03 CF 0E 00 93 0F 1E 00 -23 A0 F8 FD 4E 85 63 09 0F 06 09 39 AA 87 93 92 -27 00 98 08 33 03 57 00 B2 4B 83 23 03 FC A6 85 -83 C6 0B 00 13 86 13 00 23 20 C3 FC 4E 85 A9 C6 -F5 36 2A 88 93 18 28 00 13 0E 01 05 B3 0E 1E 01 -B2 4F 03 AF 0E FC A6 85 83 C7 0F 00 93 02 1F 00 -23 A0 5E FC 4E 85 8D C3 D1 36 0A 05 8C 08 33 83 -A5 00 32 47 83 23 03 FC 83 4B 07 00 93 86 13 00 -23 20 D3 FC E3 94 0B F6 4A C6 63 72 49 03 93 00 -C0 02 83 49 09 00 33 C6 69 01 E3 87 19 02 23 00 -C9 00 32 48 33 09 58 01 4A C6 E3 64 49 FF 69 7A -14 08 26 86 13 0E 1A 00 83 AE 06 00 93 53 14 00 -33 C4 8E 00 13 FF FE 0F 93 9F 0E 01 93 78 14 00 -93 D2 0F 01 13 55 1F 00 63 88 08 00 B3 C7 C3 01 -93 95 07 01 93 D3 05 01 33 C3 A3 00 13 77 13 00 -93 5B 2F 00 93 D0 13 00 19 C7 B3 CA C0 01 13 9B -0A 01 93 50 0B 01 B3 C9 70 01 13 F9 19 00 13 58 -3F 00 93 DF 10 00 63 08 09 00 33 CA CF 01 13 14 -0A 01 93 5F 04 01 B3 C8 0F 01 13 F5 18 00 93 55 -4F 00 13 D7 1F 00 19 C5 B3 47 C7 01 93 93 07 01 -13 D7 03 01 33 C3 E5 00 93 7B 13 00 93 5A 5F 00 -93 59 17 00 63 88 0B 00 33 CB C9 01 93 10 0B 01 -93 D9 00 01 33 C9 59 01 13 78 19 00 13 5A 6F 00 -13 D5 19 00 63 08 08 00 33 44 C5 01 93 1F 04 01 -13 D5 0F 01 B3 48 AA 00 93 F5 18 00 13 5F 7F 00 -13 57 15 00 99 C5 B3 47 C7 01 93 93 07 01 13 D7 -03 01 13 73 17 00 13 5B 17 00 63 08 E3 01 B3 4B -CB 01 93 9A 0B 01 13 DB 0A 01 93 D0 82 00 B3 C9 -60 01 13 F9 19 00 13 D8 82 00 93 5F 1B 00 93 D2 -92 00 63 08 09 00 33 CA CF 01 13 14 0A 01 93 5F -04 01 33 C5 F2 01 93 75 15 00 93 58 28 00 93 D3 -1F 00 99 C5 33 CF C3 01 93 17 0F 01 93 D3 07 01 -33 C7 78 00 13 73 17 00 93 5B 38 00 93 D0 13 00 -63 08 03 00 B3 CA C0 01 13 9B 0A 01 93 50 0B 01 -B3 C9 1B 00 13 F9 19 00 93 52 48 00 93 DF 10 00 -63 08 09 00 33 CA CF 01 13 14 0A 01 93 5F 04 01 -33 C5 F2 01 93 75 15 00 93 58 58 00 93 D3 1F 00 -99 C5 33 CF C3 01 93 17 0F 01 93 D3 07 01 33 C7 -78 00 13 73 17 00 93 5B 68 00 93 D0 13 00 63 08 -03 00 B3 CA C0 01 13 9B 0A 01 93 50 0B 01 B3 C9 -1B 00 13 F9 19 00 13 58 78 00 13 D4 10 00 63 08 -09 00 B3 42 C4 01 13 9A 02 01 13 54 0A 01 93 7F -14 00 13 5F 14 00 63 88 0F 01 33 45 CF 01 93 15 -05 01 13 DF 05 01 93 D8 0E 01 B3 C7 E8 01 93 F3 -F8 0F 13 F7 17 00 93 DE 0E 01 13 D3 13 00 13 5B -1F 00 19 C7 B3 4B CB 01 93 9A 0B 01 13 DB 0A 01 -B3 40 63 01 93 F9 10 00 13 D9 23 00 13 5A 1B 00 -63 88 09 00 33 48 CA 01 93 12 08 01 13 DA 02 01 -33 44 49 01 93 7F 14 00 13 D5 33 00 93 57 1A 00 -63 88 0F 00 B3 C5 C7 01 13 9F 05 01 93 57 0F 01 -B3 48 F5 00 13 F7 18 00 13 D3 43 00 13 DB 17 00 -19 C7 B3 4B CB 01 93 9A 0B 01 13 DB 0A 01 B3 40 -63 01 93 F9 10 00 13 D9 53 00 13 5A 1B 00 63 88 -09 00 33 48 CA 01 93 12 08 01 13 DA 02 01 33 44 -49 01 93 7F 14 00 13 D5 63 00 93 57 1A 00 63 88 -0F 00 B3 C5 C7 01 13 9F 05 01 93 57 0F 01 B3 48 -F5 00 13 F7 18 00 93 D3 73 00 93 DA 17 00 19 C7 -33 C3 CA 01 93 1B 03 01 93 DA 0B 01 13 FB 1A 00 -13 D9 1A 00 63 08 7B 00 B3 40 C9 01 93 99 00 01 -13 D9 09 01 13 D8 8E 00 B3 42 28 01 13 FA 12 00 -13 D4 8E 00 13 5F 19 00 93 DE 9E 00 63 08 0A 00 -B3 4F CF 01 13 95 0F 01 13 5F 05 01 B3 C5 EE 01 -93 F8 15 00 13 57 24 00 13 53 1F 00 63 88 08 00 -B3 47 C3 01 93 93 07 01 13 D3 03 01 B3 4B 67 00 -93 FA 1B 00 13 5B 34 00 13 59 13 00 63 88 0A 00 -B3 40 C9 01 93 99 00 01 13 D9 09 01 33 48 2B 01 -93 72 18 00 13 5A 44 00 13 55 19 00 63 88 02 00 -B3 4E C5 01 93 9F 0E 01 13 D5 0F 01 33 4F AA 00 -93 75 1F 00 93 58 54 00 93 53 15 00 99 C5 33 C7 -C3 01 93 17 07 01 93 D3 07 01 33 C3 78 00 93 7B -13 00 93 5A 64 00 93 D9 13 00 63 88 0B 00 33 CB -C9 01 93 10 0B 01 93 D9 00 01 33 C9 3A 01 13 78 -19 00 1D 80 93 DE 19 00 63 08 08 00 B3 C2 CE 01 -13 9A 02 01 93 5E 0A 01 93 FF 1E 00 93 D8 1E 00 -63 88 8F 00 33 C5 C8 01 13 1F 05 01 93 58 0F 01 -0C 42 93 D9 18 00 33 C7 15 01 93 F3 F5 0F 13 93 -05 01 93 77 17 00 93 5B 03 01 93 DA 13 00 99 C7 -33 CB C9 01 93 10 0B 01 93 D9 00 01 33 C9 3A 01 -13 78 19 00 93 D2 23 00 93 DE 19 00 63 08 08 00 -33 C4 CE 01 13 1A 04 01 93 5E 0A 01 B3 CF D2 01 -13 F5 1F 00 13 DF 33 00 13 D3 1E 00 19 C5 B3 48 -C3 01 13 97 08 01 13 53 07 01 B3 47 6F 00 93 FA -17 00 13 DB 43 00 13 59 13 00 63 88 0A 00 B3 40 -C9 01 93 99 00 01 13 D9 09 01 33 48 2B 01 93 72 -18 00 13 DA 53 00 93 5F 19 00 63 88 02 00 33 C4 -CF 01 93 1E 04 01 93 DF 0E 01 33 45 FA 01 13 7F -15 00 93 D8 63 00 93 DA 1F 00 63 08 0F 00 33 C7 -CA 01 13 13 07 01 93 5A 03 01 B3 C7 58 01 13 FB -17 00 93 D3 73 00 13 D9 1A 00 63 08 0B 00 B3 40 -C9 01 93 99 00 01 13 D9 09 01 13 78 19 00 13 54 -19 00 63 08 78 00 B3 42 C4 01 13 9A 02 01 13 54 -0A 01 93 DE 8B 00 B3 CF 8E 00 13 FF 1F 00 13 D5 -8B 00 13 53 14 00 93 DB 9B 00 63 08 0F 00 B3 48 -C3 01 13 97 08 01 13 53 07 01 B3 CA 6B 00 93 F7 -1A 00 13 5B 25 00 93 59 13 00 99 C7 B3 C3 C9 01 -93 90 03 01 93 D9 00 01 33 49 3B 01 93 72 19 00 -13 58 35 00 93 DE 19 00 63 88 02 00 33 CA CE 01 -13 14 0A 01 93 5E 04 01 B3 4F D8 01 13 FF 1F 00 -93 5B 45 00 13 D3 1E 00 63 08 0F 00 B3 48 C3 01 -13 97 08 01 13 53 07 01 B3 CA 6B 00 93 F7 1A 00 -13 5B 55 00 93 59 13 00 99 C7 B3 C3 C9 01 93 90 -03 01 93 D9 00 01 33 49 3B 01 93 72 19 00 13 58 -65 00 93 DE 19 00 63 88 02 00 33 CA CE 01 13 14 -0A 01 93 5E 04 01 B3 4F D8 01 13 FF 1F 00 1D 81 -13 D7 1E 00 63 08 0F 00 B3 4B C7 01 93 98 0B 01 -13 D7 08 01 13 73 17 00 13 5B 17 00 63 08 A3 00 -B3 4A CB 01 93 97 0A 01 13 DB 07 01 93 D3 05 01 -B3 C0 63 01 93 F9 F3 0F 13 F9 10 00 C1 81 93 D2 -19 00 13 54 1B 00 63 08 09 00 33 48 C4 01 13 1A -08 01 13 54 0A 01 B3 CE 82 00 93 FF 1E 00 13 DF -29 00 93 58 14 00 63 88 0F 00 33 C5 C8 01 93 1B -05 01 93 D8 0B 01 33 47 1F 01 13 73 17 00 93 DA -39 00 93 D3 18 00 63 08 03 00 B3 C7 C3 01 13 9B -07 01 93 53 0B 01 B3 C0 7A 00 13 F9 10 00 93 D2 -49 00 13 D4 13 00 63 08 09 00 33 48 C4 01 13 1A -08 01 13 54 0A 01 B3 CE 82 00 93 FF 1E 00 13 DF -59 00 93 58 14 00 63 88 0F 00 33 C5 C8 01 93 1B -05 01 93 D8 0B 01 33 47 1F 01 13 73 17 00 93 DA -69 00 93 D3 18 00 63 08 03 00 B3 C7 C3 01 13 9B -07 01 93 53 0B 01 B3 C0 7A 00 13 F9 10 00 93 D9 -79 00 13 DA 13 00 63 08 09 00 B3 42 CA 01 13 98 -02 01 13 5A 08 01 93 7E 1A 00 13 5F 1A 00 63 88 -3E 01 33 44 CF 01 93 1F 04 01 13 DF 0F 01 13 D5 -85 00 B3 4B E5 01 93 F8 1B 00 13 D7 85 00 93 57 -1F 00 A5 81 63 88 08 00 33 C3 C7 01 93 1A 03 01 -93 D7 0A 01 33 CB F5 00 93 73 1B 00 93 50 27 00 -93 D2 17 00 63 88 03 00 33 C9 C2 01 93 19 09 01 -93 D2 09 01 33 C8 50 00 13 7A 18 00 93 5E 37 00 -13 DF 12 00 63 08 0A 00 33 44 CF 01 93 1F 04 01 -13 DF 0F 01 33 C5 EE 01 93 7B 15 00 93 58 47 00 -93 5A 1F 00 63 88 0B 00 B3 C5 CA 01 13 93 05 01 -93 5A 03 01 B3 C7 58 01 13 FB 17 00 93 53 57 00 -93 D9 1A 00 63 08 0B 00 B3 C0 C9 01 13 99 00 01 -93 59 09 01 B3 C2 33 01 13 F8 12 00 13 5A 67 00 -93 DF 19 00 63 08 08 00 B3 CE CF 01 13 94 0E 01 -93 5F 04 01 33 4F FA 01 13 75 1F 00 1D 83 13 D3 -1F 00 19 C5 B3 4B C3 01 93 98 0B 01 13 D3 08 01 -93 75 13 00 13 54 13 00 63 88 E5 00 B3 4A C4 01 -93 97 0A 01 13 D4 07 01 91 06 11 06 E3 96 D4 80 -F6 50 22 85 66 54 D6 54 46 59 B6 59 26 5A 96 5A -06 5B F6 4B 09 61 82 80 56 99 4A C6 63 63 49 FD -6F F0 EF FD 33 0A A9 00 63 6A 49 ED 6F F0 2F FD -63 96 05 F0 6F F0 AF FC 01 11 26 CA 83 14 05 00 -06 CE 22 CC 93 D7 74 40 4A C8 4E C6 93 F0 17 00 -63 8B 00 00 F2 40 62 44 42 49 B2 49 13 F5 F4 07 -D2 44 05 61 82 80 13 D7 34 40 93 72 F7 00 13 93 -42 00 93 F6 74 00 03 D4 85 03 AA 89 2E 89 33 67 -53 00 63 87 06 50 05 45 63 83 A6 28 13 95 04 01 -41 81 A6 8E B3 CF 8E 00 93 F0 FE 0F 93 F8 1F 00 -13 DF 10 00 93 53 14 00 63 8B 08 00 69 77 93 02 -17 00 B3 C7 53 00 13 93 07 01 93 53 03 01 33 48 -7F 00 93 75 18 00 93 D6 20 00 93 D8 13 00 91 C9 -69 76 13 04 16 00 33 CE 88 00 93 1F 0E 01 93 D8 -0F 01 33 CF 16 01 13 77 1F 00 93 D2 30 00 93 D6 -18 00 11 CB 69 73 93 03 13 00 B3 C7 76 00 13 98 -07 01 93 56 08 01 B3 C5 D2 00 13 F4 15 00 13 D6 -40 00 13 D7 16 00 11 C8 69 7E 93 0F 1E 00 B3 48 -F7 01 13 9F 08 01 13 57 0F 01 B3 42 C7 00 13 F3 -12 00 93 D3 50 00 13 54 17 00 63 0B 03 00 69 78 -93 06 18 00 B3 47 D4 00 93 95 07 01 13 D4 05 01 -33 46 74 00 13 7E 16 00 93 DF 60 00 13 53 14 00 -63 0B 0E 00 E9 78 13 8F 18 00 33 47 E3 01 93 12 -07 01 13 D3 02 01 B3 43 F3 01 13 F8 13 00 93 D0 -70 00 13 5E 13 00 63 0B 08 00 E9 76 93 85 16 00 -B3 47 BE 00 13 94 07 01 13 5E 04 01 13 76 1E 00 -93 52 1E 00 63 0B 16 00 E9 7F 93 88 1F 00 33 CF -12 01 13 17 0F 01 93 52 07 01 21 81 33 43 55 00 -93 73 F5 0F 13 78 13 00 93 D0 13 00 13 DE 12 00 -63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00 13 94 -07 01 13 5E 04 01 33 46 1E 00 93 7F 16 00 93 D8 -23 00 13 53 1E 00 63 8B 0F 00 69 7F 13 07 1F 00 -B3 42 E3 00 13 95 02 01 13 53 05 01 33 C8 68 00 -93 70 18 00 93 D5 33 00 93 5F 13 00 63 8B 00 00 -E9 76 13 84 16 00 B3 C7 8F 00 13 9E 07 01 93 5F -0E 01 33 C6 F5 01 93 78 16 00 13 DF 43 00 13 D8 -1F 00 63 8B 08 00 69 77 93 02 17 00 33 45 58 00 -13 13 05 01 13 58 03 01 B3 40 0F 01 93 F5 10 00 -13 D4 53 00 93 58 18 00 91 C9 E9 76 13 8E 16 00 -B3 C7 C8 01 93 9F 07 01 93 D8 0F 01 33 46 14 01 -13 7F 16 00 13 D7 63 00 93 D0 18 00 63 0B 0F 00 -E9 72 13 85 12 00 33 C3 A0 00 13 18 03 01 93 50 -08 01 B3 45 17 00 13 F4 15 00 93 D3 73 00 93 D8 -10 00 11 C8 E9 76 13 8E 16 00 B3 C7 C8 01 93 9F -07 01 93 D8 0F 01 33 C6 13 01 13 7F 16 00 13 D8 -18 00 63 0B 0F 00 69 77 93 02 17 00 33 45 58 00 -13 13 05 01 13 58 03 01 13 F5 FE 07 93 F4 04 F0 -F2 40 62 44 B3 6E 95 00 23 1C 09 03 13 E9 0E 08 -23 90 29 01 D2 44 42 49 B2 49 05 61 82 80 D0 55 -94 59 03 25 89 02 CC 59 EF B0 3F F5 33 46 A4 00 -93 78 F5 0F 93 1E 05 01 13 7E 16 00 13 DF 0E 01 -93 DF 18 00 13 53 14 00 63 0B 0E 00 E9 77 93 80 -17 00 33 47 13 00 93 12 07 01 13 D3 02 01 B3 46 -F3 01 93 F3 16 00 13 D8 28 00 13 5E 13 00 63 8B -03 00 E9 75 13 84 15 00 33 45 8E 00 13 16 05 01 -13 5E 06 01 B3 4E 0E 01 93 FF 1E 00 93 D7 38 00 -93 53 1E 00 63 8B 0F 00 E9 70 13 87 10 00 B3 C2 -E3 00 13 93 02 01 93 53 03 01 B3 C6 F3 00 13 F8 -16 00 93 D5 48 00 93 DE 13 00 63 0B 08 00 69 74 -13 06 14 00 33 C5 CE 00 13 1E 05 01 93 5E 0E 01 -B3 CF BE 00 93 F7 1F 00 93 D0 58 00 13 D8 1E 00 -91 CB 69 77 93 02 17 00 33 43 58 00 93 13 03 01 -13 D8 03 01 B3 46 18 00 93 F5 16 00 13 D4 68 00 -93 5F 18 00 91 C9 69 76 13 0E 16 00 33 C5 CF 01 -93 1E 05 01 93 DF 0E 01 B3 C7 8F 00 93 F0 17 00 -93 D8 78 00 13 D8 1F 00 63 8B 00 00 69 77 93 02 -17 00 33 43 58 00 93 13 03 01 13 D8 03 01 93 76 -18 00 13 55 18 00 63 8B 16 01 E9 75 13 84 15 00 -33 46 85 00 13 1E 06 01 13 55 0E 01 93 5E 8F 00 -B3 4F D5 01 93 F0 1F 00 93 58 8F 00 93 53 15 00 -13 5F 9F 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2 -E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01 93 75 -18 00 93 D6 28 00 93 DE 13 00 91 C9 69 74 13 06 -14 00 33 CE CE 00 13 15 0E 01 93 5E 05 01 B3 CF -DE 00 93 F0 1F 00 13 DF 38 00 93 D3 1E 00 63 8B -00 00 E9 77 13 87 17 00 B3 C2 E3 00 13 93 02 01 -93 53 03 01 33 C8 E3 01 93 75 18 00 13 D4 48 00 -93 DE 13 00 91 C9 E9 76 13 86 16 00 33 CE CE 00 -13 15 0E 01 93 5E 05 01 B3 CF 8E 00 93 F0 1F 00 -13 DF 58 00 93 D3 1E 00 63 8B 00 00 E9 77 13 87 -17 00 B3 C2 E3 00 13 93 02 01 93 53 03 01 33 C8 -E3 01 93 75 18 00 13 D4 68 00 93 DE 13 00 91 C9 -E9 76 13 86 16 00 33 CE CE 00 13 15 0E 01 93 5E -05 01 B3 CF 8E 00 93 F0 1F 00 93 D8 78 00 13 D3 -1E 00 63 8B 00 00 69 7F 93 07 1F 00 33 47 F3 00 -93 12 07 01 13 D3 02 01 93 73 13 00 13 55 13 00 -63 8B 13 01 69 78 93 05 18 00 33 44 B5 00 93 16 -04 01 13 D5 06 01 03 56 C9 03 13 1E 05 01 03 54 -89 03 93 5E 0E 41 E3 17 06 B0 23 1E A9 02 19 B6 -93 03 20 02 3A 88 63 54 77 00 13 08 20 02 83 25 -49 01 83 16 29 00 03 16 09 00 03 25 89 01 A2 87 -13 77 F8 0F EF F0 0F 85 83 55 E9 03 13 14 05 01 -93 5E 04 41 03 54 89 03 E3 96 05 AC 23 1F A9 02 -D1 B4 01 11 4A C8 03 19 05 00 06 CE 22 CC 93 57 -79 40 26 CA 52 C4 4E C6 93 F0 17 00 2E 8A B2 84 -13 74 F9 07 63 9E 00 28 13 57 39 40 93 72 F7 00 -93 96 42 00 13 73 79 00 03 54 86 03 AA 89 33 E7 -D2 00 63 00 03 7C 05 45 63 0D A3 52 13 15 09 01 -41 81 CA 8E B3 4F D4 01 93 F0 FE 0F 93 F8 1F 00 -13 DF 10 00 93 53 14 00 63 8B 08 00 69 77 93 02 -17 00 B3 C7 53 00 13 93 07 01 93 53 03 01 33 C8 -E3 01 93 75 18 00 93 D6 20 00 93 D8 13 00 91 C9 -69 76 13 04 16 00 33 CE 88 00 93 1F 0E 01 93 D8 -0F 01 33 CF D8 00 13 77 1F 00 93 D2 30 00 93 D6 -18 00 11 CB 69 73 93 03 13 00 B3 C7 76 00 13 98 -07 01 93 56 08 01 B3 C5 56 00 13 F4 15 00 13 D6 -40 00 13 D7 16 00 11 C8 69 7E 93 0F 1E 00 B3 48 -F7 01 13 9F 08 01 13 57 0F 01 B3 42 C7 00 13 F3 -12 00 93 D3 50 00 13 54 17 00 63 0B 03 00 69 78 -93 06 18 00 B3 47 D4 00 93 95 07 01 13 D4 05 01 -33 46 74 00 13 7E 16 00 93 DF 60 00 13 53 14 00 -63 0B 0E 00 E9 78 13 8F 18 00 33 47 E3 01 93 12 -07 01 13 D3 02 01 B3 43 F3 01 13 F8 13 00 93 D0 -70 00 13 5E 13 00 63 0B 08 00 E9 76 93 85 16 00 -B3 47 BE 00 13 94 07 01 13 5E 04 01 13 76 1E 00 -93 52 1E 00 63 0B 16 00 E9 7F 93 88 1F 00 33 CF -12 01 13 17 0F 01 93 52 07 01 21 81 33 43 55 00 -93 73 F5 0F 13 78 13 00 93 D0 13 00 13 DE 12 00 -63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00 13 94 -07 01 13 5E 04 01 33 46 1E 00 93 7F 16 00 93 D8 -23 00 13 53 1E 00 63 8B 0F 00 69 7F 13 07 1F 00 -B3 42 E3 00 13 95 02 01 13 53 05 01 33 48 13 01 -93 70 18 00 93 D5 33 00 93 5F 13 00 63 8B 00 00 -E9 76 13 84 16 00 B3 C7 8F 00 13 9E 07 01 93 5F -0E 01 33 C6 BF 00 93 78 16 00 13 DF 43 00 13 D8 -1F 00 63 8B 08 00 69 77 93 02 17 00 33 45 58 00 -13 13 05 01 13 58 03 01 B3 40 E8 01 93 F5 10 00 -13 D4 53 00 93 58 18 00 91 C9 E9 76 13 8E 16 00 -B3 C7 C8 01 93 9F 07 01 93 D8 0F 01 33 C6 88 00 -13 7F 16 00 13 D7 63 00 93 D0 18 00 63 0B 0F 00 -E9 72 13 85 12 00 33 C3 A0 00 13 18 03 01 93 50 -08 01 B3 C5 E0 00 13 F4 15 00 93 D3 73 00 93 D8 -10 00 11 C8 E9 76 13 8E 16 00 B3 C7 C8 01 93 9F -07 01 93 D8 0F 01 33 C6 13 01 13 7F 16 00 13 D8 -18 00 63 0B 0F 00 69 77 93 02 17 00 33 45 58 00 -13 13 05 01 13 58 03 01 13 F4 FE 07 13 79 09 F0 -B3 6E 24 01 23 9C 04 03 93 E0 0E 08 23 90 19 00 -03 19 0A 00 93 59 79 40 93 F5 19 00 13 78 F9 07 -63 9F 05 28 93 53 39 40 13 FE F3 00 93 16 4E 00 -93 77 79 00 83 D9 84 03 33 67 DE 00 63 8A 07 54 -85 42 63 86 57 58 13 15 09 01 41 81 4A 88 B3 45 -38 01 93 70 F8 0F 93 FE 15 00 13 D7 10 00 93 D8 -19 00 63 8B 0E 00 E9 73 13 8E 13 00 B3 CF C8 01 -93 97 0F 01 93 D8 07 01 33 4F 17 01 93 72 1F 00 -93 D6 20 00 93 DE 18 00 63 8B 02 00 69 76 93 09 -16 00 33 C3 3E 01 93 15 03 01 93 DE 05 01 33 C7 -DE 00 93 73 17 00 13 DE 30 00 93 D2 1E 00 63 8B -03 00 E9 7F 93 88 1F 00 B3 C7 12 01 13 9F 07 01 -93 52 0F 01 B3 C6 C2 01 13 F6 16 00 93 D9 40 00 -93 D3 12 00 11 CA 69 73 93 05 13 00 B3 CE B3 00 -13 97 0E 01 93 53 07 01 33 CE 33 01 93 7F 1E 00 -93 D8 50 00 13 D6 13 00 63 8B 0F 00 69 7F 93 02 -1F 00 B3 47 56 00 93 96 07 01 13 D6 06 01 B3 49 -16 01 13 F3 19 00 93 DE 60 00 93 5F 16 00 63 0B -03 00 E9 75 13 87 15 00 B3 C3 EF 00 13 9E 03 01 -93 5F 0E 01 B3 C8 FE 01 13 FF 18 00 93 D0 70 00 -93 D9 1F 00 63 0B 0F 00 E9 72 93 86 12 00 B3 C7 -D9 00 13 96 07 01 93 59 06 01 13 F3 19 00 13 DE -19 00 63 0B 13 00 E9 7E 93 85 1E 00 33 47 BE 00 -93 13 07 01 13 DE 03 01 21 81 B3 4F C5 01 93 78 -F5 0F 13 FF 1F 00 93 D0 18 00 93 59 1E 00 63 0B -0F 00 E9 72 93 86 12 00 B3 C7 D9 00 13 96 07 01 -93 59 06 01 33 C3 19 00 93 7E 13 00 13 D7 28 00 -93 DF 19 00 63 8B 0E 00 E9 75 93 83 15 00 33 CE -7F 00 13 15 0E 01 93 5F 05 01 33 CF EF 00 93 70 -1F 00 93 D2 38 00 13 D3 1F 00 63 8B 00 00 E9 76 -13 86 16 00 B3 47 C3 00 93 99 07 01 13 D3 09 01 -B3 4E 53 00 13 F7 1E 00 93 D3 48 00 13 5F 13 00 -11 CB E9 75 13 8E 15 00 33 45 CF 01 93 1F 05 01 -13 DF 0F 01 B3 C0 E3 01 93 F2 10 00 93 D6 58 00 -93 5E 1F 00 63 8B 02 00 69 76 93 09 16 00 B3 C7 -3E 01 13 93 07 01 93 5E 03 01 33 C7 D6 01 93 73 -17 00 13 DE 68 00 93 D0 1E 00 63 8B 03 00 E9 75 -13 85 15 00 B3 CF A0 00 13 9F 0F 01 93 50 0F 01 -B3 42 1E 00 13 F6 12 00 93 D8 78 00 93 DE 10 00 -11 CA E9 76 93 89 16 00 B3 C7 3E 01 13 93 07 01 -93 5E 03 01 33 C7 D8 01 93 73 17 00 13 DF 1E 00 -63 8B 03 00 69 7E 93 05 1E 00 33 45 BF 00 93 1F -05 01 13 DF 0F 01 13 78 F8 07 13 79 09 F0 B3 60 -28 01 23 9C E4 03 93 E4 00 08 23 10 9A 00 F2 40 -33 05 04 41 62 44 D2 44 42 49 B2 49 22 4A 05 61 -82 80 14 5A CC 58 50 56 88 54 EF B0 0F F1 33 46 -A4 00 93 78 F5 0F 93 1E 05 01 13 7E 16 00 13 DF -0E 01 93 DF 18 00 13 53 14 00 63 0B 0E 00 E9 77 -93 80 17 00 33 47 13 00 93 12 07 01 13 D3 02 01 -B3 46 F3 01 93 F3 16 00 13 D8 28 00 13 5E 13 00 -63 8B 03 00 E9 75 13 84 15 00 33 45 8E 00 13 16 -05 01 13 5E 06 01 B3 4E 0E 01 93 FF 1E 00 93 D7 -38 00 93 53 1E 00 63 8B 0F 00 E9 70 13 87 10 00 -B3 C2 E3 00 13 93 02 01 93 53 03 01 B3 C6 F3 00 -13 F8 16 00 93 D5 48 00 93 DE 13 00 63 0B 08 00 -69 74 13 06 14 00 33 C5 CE 00 13 1E 05 01 93 5E -0E 01 B3 CF BE 00 93 F7 1F 00 93 D0 58 00 13 D8 -1E 00 91 CB 69 77 93 02 17 00 33 43 58 00 93 13 -03 01 13 D8 03 01 B3 46 18 00 93 F5 16 00 13 D4 -68 00 93 5F 18 00 91 C9 69 76 13 0E 16 00 33 C5 -CF 01 93 1E 05 01 93 DF 0E 01 B3 C7 8F 00 93 F0 -17 00 93 D8 78 00 13 D8 1F 00 63 8B 00 00 69 77 +06 01 93 D0 02 01 B3 C7 E0 01 93 F3 17 00 13 53 +56 00 93 D8 10 00 63 8B 03 00 69 77 93 05 17 00 +33 C8 B8 00 13 15 08 01 93 58 05 01 33 CE 68 00 +93 7E 1E 00 13 5F 66 00 93 D0 18 00 63 8B 0E 00 +E9 7F 13 84 1F 00 B3 C6 80 00 93 92 06 01 93 D0 +02 01 B3 C7 E0 01 93 F3 17 00 1D 82 13 D5 10 00 +63 8B 03 00 69 73 13 07 13 00 B3 45 E5 00 13 98 +05 01 13 55 08 01 93 78 15 00 05 81 63 8B C8 00 +69 7E 93 0E 1E 00 33 4F D5 01 93 1F 0F 01 13 D5 +0F 01 B2 40 22 44 41 01 82 80 79 71 4A D2 22 D6 +26 D4 4E D0 52 CE 56 CC 5A CA 5E C8 62 C6 66 C4 +6A C2 2A 87 36 89 11 E2 05 46 FD 15 13 F4 C5 FF +13 0A 44 00 81 47 63 02 07 34 93 82 17 00 B3 86 +52 02 13 88 27 00 13 8E 37 00 13 8F 47 00 93 8E +57 00 93 88 67 00 13 83 77 00 3E 85 A1 07 93 93 +36 00 63 F3 E3 06 B3 09 08 03 16 85 13 9B 39 00 +63 7C EB 04 B3 0B CE 03 42 85 13 9C 3B 00 63 75 +EC 04 B3 0C EF 03 72 85 13 9D 3C 00 63 7E ED 02 +B3 8F DE 03 7A 85 93 95 3F 00 63 F7 E5 02 33 84 +18 03 76 85 93 1A 34 00 63 F0 EA 02 B3 04 63 02 +46 85 93 92 34 00 63 F9 E2 00 33 88 F7 02 1A 85 +13 1E 38 00 E3 6B EE F6 33 07 A5 02 AA 8A 93 14 +17 00 33 04 9A 00 63 06 05 26 C1 6E 81 46 81 43 +85 4F 33 0F 8A 40 FD 1E 93 09 F5 FF 33 06 F6 03 +93 98 0F 01 93 D7 08 01 13 93 16 00 33 0B 83 00 +13 0C F5 FF 93 7C 3C 00 B3 0B 6F 01 05 4E 13 88 +1F 00 13 5D F6 41 93 52 0D 01 33 07 56 00 33 76 +D7 01 33 06 56 40 B3 88 C7 00 13 93 08 01 13 5C +03 01 E2 97 23 10 8B 01 13 FD F7 0F 23 90 AB 01 +93 05 2B 00 63 76 AE 1E 63 83 0C 0E 63 8C CC 09 +89 4B 63 86 7C 05 B3 0C 06 03 42 08 93 52 08 01 +B3 08 BF 00 93 05 4B 00 13 88 2F 00 09 4E 13 D7 +FC 41 13 53 07 01 33 86 6C 00 33 7C D6 01 33 06 +6C 40 B3 87 C2 00 13 9D 07 01 93 5B 0D 01 B3 8C +5B 00 23 11 7B 01 13 FB FC 0F 23 90 68 01 B3 02 +06 03 93 18 08 01 13 D3 08 01 33 0C BF 00 05 0E +05 08 89 05 13 D7 F2 41 93 57 07 01 33 86 F2 00 +33 7D D6 01 33 06 FD 40 B3 0B C3 00 93 9C 0B 01 +13 DB 0C 01 B3 02 6B 00 23 9F 65 FF 93 F8 F2 0F +23 10 1C 01 33 03 06 03 13 1C 08 01 93 57 0C 01 +33 0D BF 00 89 05 05 0E 05 08 13 57 F3 41 93 5B +07 01 33 06 73 01 B3 7C D6 01 33 86 7C 41 33 8B +C7 00 93 12 0B 01 93 D8 02 01 33 83 F8 00 23 9F +15 FF 13 7C F3 0F 23 10 8D 01 63 73 AE 10 33 06 +06 03 93 07 28 00 13 0B 38 00 13 1D 08 01 93 52 +0D 01 93 98 07 01 13 1D 0B 01 13 D3 08 01 93 58 +0D 01 13 07 18 00 13 5D F6 41 13 5D 0D 01 6A 96 +33 76 D6 01 33 0D A6 41 93 1B 07 01 33 07 ED 02 +33 86 A2 01 13 1D 06 01 13 56 0D 01 B2 92 B3 0C +BF 00 23 90 C5 00 13 FD F2 0F 23 90 AC 01 66 8C +66 86 E6 82 93 5C F7 41 13 DD 0C 01 6A 97 B3 7C +D7 01 33 8D AC 41 B3 07 FD 02 93 DB 0B 01 33 87 +AB 01 93 1C 07 01 13 DD 0C 01 EA 9B 23 91 A5 01 +13 F7 FB 0F 23 11 EC 00 A1 05 13 DC F7 41 93 5C +0C 01 E6 97 33 FD D7 01 B3 0B 9D 41 33 8B 6B 03 +33 07 73 01 13 1C 07 01 93 5C 0C 01 66 93 23 9E +95 FF 93 77 F3 0F 23 12 F6 00 11 0E 11 08 13 56 +FB 41 13 5D 06 01 B3 0B AB 01 33 FB DB 01 33 06 +AB 41 33 87 C8 00 13 1C 07 01 93 5C 0C 01 E6 98 +23 9F 95 FF 13 F3 F8 0F 23 93 62 00 E3 61 AE F0 +85 0F 01 4E 11 C1 4E 8E 85 03 F2 9F AA 96 E3 E7 +A3 DA A2 94 93 86 F4 FF 23 24 89 00 93 F3 C6 FF +32 54 13 8F 43 00 23 22 49 01 23 20 59 01 23 26 +E9 01 A2 54 12 59 82 59 72 4A E2 4A 52 4B C2 4B +32 4C A2 4C 12 4D 45 61 82 80 19 04 FD 5A 7D 55 +89 44 A1 BB 2A 88 63 06 05 3E B3 08 A0 40 13 17 +25 00 2E 97 13 93 28 00 81 45 01 45 81 4F 81 4E +8E 08 B3 06 E3 00 B3 07 D7 40 93 82 C7 FF 93 D3 +22 00 13 8E 13 00 93 77 7E 00 36 8E 63 80 07 22 +05 4F 63 89 E7 0F 89 42 63 84 57 0C 8D 43 63 81 +77 0A 11 4F 63 8C E7 07 95 42 63 87 57 04 99 43 +63 84 77 02 7E 8E 83 AF 06 00 42 05 13 5F 05 01 +FE 9E 63 57 D6 37 93 0E AF 00 13 9E 0E 01 13 55 +0E 41 81 4E 13 8E 46 00 7E 8F 83 2F 0E 00 42 05 +93 52 05 01 FE 9E 63 5C D6 33 93 8E A2 00 13 95 +0E 01 41 85 81 4E 11 0E FE 82 83 2F 0E 00 93 17 +05 01 93 D3 07 01 FE 9E 63 52 D6 31 93 8E A3 00 +93 97 0E 01 13 D5 07 41 81 4E 11 0E FE 83 83 2F +0E 00 13 1F 05 01 13 55 0F 01 FE 9E 63 57 D6 2D +93 0E A5 00 13 9F 0E 01 13 55 0F 41 81 4E 11 0E +FE 82 83 2F 0E 00 42 05 93 53 05 01 FE 9E 63 5D +D6 29 93 8E A3 00 13 95 0E 01 41 85 81 4E 11 0E +FE 83 83 2F 0E 00 93 17 05 01 13 DF 07 01 FE 9E +63 53 D6 27 93 0E AF 00 93 97 0E 01 13 D5 07 41 +81 4E 11 0E 7E 8F 83 2F 0E 00 93 12 05 01 13 D5 +02 01 FE 9E 63 58 D6 23 93 0E A5 00 93 92 0E 01 +13 D5 02 41 81 4E 11 0E 63 12 C7 11 85 05 33 87 +16 41 E3 10 B8 EC 82 80 B3 AF 7F 00 B3 07 FF 01 +83 2F 4E 00 93 92 07 01 13 DF 02 41 93 17 0F 01 +33 85 FE 01 11 0E 93 D2 07 01 63 53 A6 10 83 23 +4E 00 A9 02 13 95 02 01 93 57 05 41 01 45 13 9F +07 01 B3 0E 75 00 93 57 0F 01 63 55 D6 11 83 2F +8E 00 A9 07 93 9E 07 01 13 DF 0E 41 81 4E 93 12 +0F 01 FE 9E 13 D5 02 01 63 57 D6 11 83 23 CE 00 +29 05 93 1E 05 01 93 D2 0E 41 81 4E 13 9F 02 01 +B3 82 7E 00 93 57 0F 01 63 59 56 10 A9 07 83 2F +0E 01 93 92 07 01 13 DF 02 41 81 42 13 15 0F 01 +B3 8E F2 01 93 57 05 01 63 5B D6 11 83 23 4E 01 +A9 07 93 9E 07 01 13 D5 0E 41 81 4E 13 1F 05 01 +9E 9E 93 52 0F 01 63 5D D6 11 83 2F 8E 01 A9 02 +93 9E 02 01 13 DF 0E 41 81 4E 13 15 0F 01 FE 9E +93 57 05 01 63 5F D6 11 13 85 A7 00 93 17 05 01 +13 D5 07 41 81 4E 71 0E E3 02 C7 F1 83 23 0E 00 +42 05 13 5F 05 01 9E 9E E3 50 D6 F1 93 0E AF 00 +83 2F 4E 00 13 95 0E 01 13 5F 05 41 81 4E 93 17 +0F 01 33 85 FE 01 11 0E 93 D2 07 01 E3 41 A6 F0 +B3 A3 F3 01 33 8F 72 00 83 23 4E 00 93 1E 0F 01 +93 D7 0E 41 13 9F 07 01 B3 0E 75 00 93 57 0F 01 +E3 4F D6 EF B3 AF 7F 00 B3 82 F7 01 83 2F 8E 00 +13 95 02 01 13 5F 05 41 93 12 0F 01 FE 9E 13 D5 +02 01 E3 4D D6 EF B3 A3 F3 01 33 0F 75 00 83 23 +CE 00 93 17 0F 01 93 D2 07 41 13 9F 02 01 B3 82 +7E 00 93 57 0F 01 E3 4B 56 EE B3 AF 7F 00 33 85 +F7 01 83 2F 0E 01 93 1E 05 01 13 DF 0E 41 13 15 +0F 01 B3 8E F2 01 93 57 05 01 E3 49 D6 EF B3 A3 +F3 01 33 8F 77 00 83 23 4E 01 93 12 0F 01 13 D5 +02 41 13 1F 05 01 9E 9E 93 52 0F 01 E3 47 D6 EF +B3 AF 7F 00 33 85 F2 01 83 2F 8E 01 93 17 05 01 +13 DF 07 41 13 15 0F 01 FE 9E 93 57 05 01 E3 45 +D6 EF B3 A3 F3 01 33 8F 77 00 93 12 0F 01 13 D5 +02 41 D5 B5 B3 23 FF 01 B3 07 75 00 13 9F 07 01 +13 55 0F 41 C9 BB B3 A2 F3 01 33 05 5F 00 93 13 +05 01 13 D5 03 41 71 BB B3 A7 F2 01 33 8F F3 00 +93 12 0F 01 13 D5 02 41 9D B3 B3 A2 F3 01 B3 07 +55 00 93 93 07 01 13 D5 03 41 15 BB 33 AF F2 01 +33 85 E3 01 93 12 05 01 13 D5 02 41 FD B9 B3 27 +FF 01 B3 83 F2 00 13 9F 03 01 13 55 0F 41 E1 B1 +B3 27 FE 01 B3 02 FF 00 93 93 02 01 13 D5 03 41 +51 B9 01 45 82 80 63 01 05 16 41 11 B3 03 A0 40 +13 18 15 00 22 C6 26 C4 13 94 13 00 4A C2 4E C0 +32 98 81 4F 81 42 8A 03 B3 08 04 01 33 06 18 41 +13 03 E6 FF 93 54 13 00 13 87 14 00 93 97 2F 00 +13 79 77 00 AE 97 46 87 63 0F 09 08 85 49 63 02 +39 09 09 4E 63 07 C9 07 8D 4E 63 0C D9 05 11 4F +63 01 E9 05 15 46 63 06 C9 02 19 43 63 0B 69 00 +83 94 08 00 13 87 28 00 91 07 33 89 D4 02 23 AE +27 FF 83 19 07 00 91 07 09 07 33 8E D9 02 23 AE +C7 FF 83 1E 07 00 91 07 09 07 33 8F DE 02 23 AE +E7 FF 03 16 07 00 91 07 09 07 33 03 D6 02 23 AE +67 FE 83 14 07 00 91 07 09 07 33 89 D4 02 23 AE +27 FF 83 19 07 00 91 07 09 07 33 8E D9 02 23 AE +C7 FF 83 1E 07 00 91 07 09 07 33 8F DE 02 23 AE +E7 FF 63 07 E8 06 83 19 07 00 03 19 27 00 83 14 +47 00 03 1F 67 00 83 1E 87 00 03 1E A7 00 03 13 +C7 00 03 16 E7 00 B3 89 D9 02 41 07 93 87 07 02 +33 09 D9 02 23 A0 37 FF B3 84 D4 02 23 A2 27 FF +33 0F DF 02 23 A4 97 FE B3 8E DE 02 23 A6 E7 FF +33 0E DE 02 23 A8 D7 FF 33 03 D3 02 23 AA C7 FF +33 06 D6 02 23 AC 67 FE 23 AE C7 FE E3 1D E8 F8 +85 02 AA 9F 33 88 78 40 E3 18 55 EC 32 44 A2 44 +12 49 82 49 41 01 82 80 82 80 63 00 05 1E B3 02 +A0 40 93 16 06 01 93 17 15 00 93 93 12 00 C1 82 +33 86 F5 00 81 4F 8A 02 B3 85 C3 00 33 07 B6 40 +13 03 E7 FF 13 58 13 00 93 08 18 00 13 FE 78 00 +AE 87 63 08 0E 08 85 4E 63 0C DE 07 09 4F 63 02 +EE 07 0D 47 63 08 EE 04 11 43 63 0E 6E 02 15 48 +63 04 0E 03 99 48 63 0A 1E 01 03 DE 05 00 93 87 +25 00 B3 8E C6 01 23 90 D5 01 03 DF 07 00 89 07 +33 87 E6 01 23 9F E7 FE 03 D3 07 00 89 07 33 88 +66 00 23 9F 07 FF 83 D8 07 00 89 07 33 8E 16 01 +23 9F C7 FF 83 DE 07 00 89 07 33 8F D6 01 23 9F +E7 FF 03 D7 07 00 89 07 33 83 E6 00 23 9F 67 FE +03 D8 07 00 89 07 B3 88 06 01 23 9F 17 FF 63 09 +F6 10 41 11 22 C6 03 D4 07 00 03 DF 27 00 83 DE +47 00 03 DE 67 00 03 D3 87 00 83 D8 A7 00 03 D8 +C7 00 03 D7 E7 00 36 94 36 9F B6 9E 36 9E 36 93 +B6 98 36 98 36 97 23 90 87 00 23 91 E7 01 23 92 +D7 01 23 93 C7 01 23 94 67 00 23 95 17 01 23 96 +07 01 23 97 E7 00 C1 07 E3 17 F6 FA 85 0F 33 86 +55 40 63 04 F5 0B B3 85 C3 00 B3 07 B6 40 13 84 +E7 FF 13 5F 14 00 93 0E 1F 00 13 FE 7E 00 AE 87 +E3 03 0E F8 05 43 63 04 6E 06 89 48 63 0A 1E 05 +0D 48 63 00 0E 05 11 47 63 06 EE 02 15 44 63 0C +8E 00 19 4F 63 1C EE 07 03 D3 07 00 89 07 B3 88 +66 00 23 9F 17 FF 03 D8 07 00 89 07 33 87 06 01 +23 9F E7 FE 03 D4 07 00 89 07 33 8F 86 00 23 9F +E7 FF 83 DE 07 00 89 07 33 8E D6 01 23 9F C7 FF +03 D3 07 00 89 07 B3 88 66 00 23 9F 17 FF 03 D8 +07 00 89 07 33 87 06 01 23 9F E7 FE E3 15 F6 F0 +85 0F 33 86 55 40 E3 10 F5 F7 32 44 41 01 82 80 +85 0F 33 86 55 40 E3 11 F5 E5 82 80 83 DE 05 00 +93 87 25 00 33 8E D6 01 23 90 C5 01 B5 BF 63 08 +05 1A 79 71 26 D2 AA 84 4E CE 93 99 24 00 4A D0 +2E 85 32 89 81 45 4E 86 22 D4 06 D6 36 84 52 CC +56 CA 5A C8 5E C6 62 C4 66 C2 EF 30 30 49 93 96 +14 00 AA 85 A2 96 4E 95 01 46 33 83 86 40 93 00 +E3 FF 93 D2 10 00 93 83 12 00 93 17 16 00 93 F8 +73 00 CA 97 22 87 01 4E 63 85 08 0A 05 48 63 87 +08 09 09 4A 63 8B 48 07 8D 4A 63 8F 58 05 11 4B +63 83 68 05 95 4B 63 87 78 03 19 4C 63 8B 88 01 +83 9C 07 00 03 1E 04 00 89 07 13 07 24 00 33 8E +CC 03 83 9E 07 00 03 1F 07 00 89 07 09 07 B3 8F +EE 03 7E 9E 83 99 07 00 03 13 07 00 89 07 09 07 +B3 80 69 02 06 9E 83 92 07 00 83 13 07 00 89 07 +09 07 B3 88 72 02 46 9E 03 98 07 00 03 1A 07 00 +89 07 09 07 B3 0A 48 03 56 9E 03 9B 07 00 83 1B +07 00 89 07 09 07 33 0C 7B 03 62 9E 83 9C 07 00 +83 1E 07 00 09 07 89 07 33 8F DC 03 7A 9E 63 85 +E6 08 83 9F 07 00 83 19 07 00 83 90 27 00 83 1A +27 00 B3 88 3F 03 03 98 47 00 03 1C 47 00 83 92 +67 00 83 1B 67 00 83 9C 87 00 03 1B 87 00 03 9F +A7 00 03 1A A7 00 83 9E C7 00 B3 8F 50 03 83 19 +C7 00 03 93 E7 00 83 13 E7 00 46 9E 41 07 C1 07 +B3 00 88 03 B3 0A FE 01 33 8C 72 03 33 88 1A 00 +B3 82 6C 03 B3 0B 88 01 B3 08 4F 03 B3 8C 5B 00 +33 8B 3E 03 33 8F 1C 01 33 0A 73 02 B3 0E 6F 01 +33 8E 4E 01 E3 9F E6 F6 23 A0 C5 01 91 05 26 96 +E3 15 B5 EA B2 50 22 54 92 54 02 59 F2 49 62 4A +D2 4A 42 4B B2 4B 22 4C 92 4C 45 61 82 80 82 80 +5D 71 86 C6 A2 C4 A6 C2 CA C0 4E DE 52 DC 56 DA +5A D8 5E D6 62 D4 66 D2 6A D0 6E CE 2E C4 36 C6 +63 0F 05 1A 13 14 15 00 AA 8A B2 89 33 09 86 00 +93 14 25 00 01 4B 81 4B A2 47 13 1F 2B 00 26 86 +33 85 E7 01 81 45 EF 30 70 2C 32 46 2A 8F 81 4F +33 07 39 41 93 00 E7 FF 93 D2 10 00 13 83 12 00 +93 73 73 00 B2 85 CE 86 81 47 63 86 03 0A 05 48 +63 88 03 09 89 48 63 8C 13 07 0D 4A 63 80 43 07 +11 4C 63 84 83 05 95 4C 63 88 93 03 19 4D 63 8C +A3 01 83 9D 09 00 03 1E 06 00 93 86 29 00 B3 05 +86 00 B3 87 CD 03 83 9E 06 00 03 95 05 00 89 06 +A2 95 33 87 AE 02 BA 97 83 90 06 00 83 92 05 00 +89 06 A2 95 33 83 50 02 9A 97 83 93 06 00 03 98 +05 00 89 06 A2 95 B3 88 03 03 C6 97 03 9A 06 00 +03 9C 05 00 89 06 A2 95 B3 0C 8A 03 E6 97 03 9D +06 00 83 9D 05 00 89 06 A2 95 33 0E BD 03 F2 97 +83 9E 06 00 03 95 05 00 89 06 A2 95 33 87 AE 02 +BA 97 63 03 D9 0A 03 93 06 00 83 93 05 00 B3 80 +85 00 B3 82 80 00 33 07 73 02 03 9E 00 00 03 9D +26 00 33 88 82 00 83 9D 02 00 03 9A 46 00 B3 08 +88 00 83 1C 08 00 83 90 66 00 B3 8E 88 00 33 0D +CD 03 03 93 86 00 03 9C 08 00 83 92 A6 00 83 93 +0E 00 33 85 8E 00 03 98 C6 00 B3 05 85 00 83 1E +05 00 BA 97 33 0A BA 03 03 95 E6 00 03 9E 05 00 +B3 8D A7 01 C1 06 A2 95 B3 80 90 03 B3 88 4D 01 +33 07 83 03 B3 8C 18 00 33 83 72 02 33 8C EC 00 +B3 02 D8 03 B3 03 6C 00 33 08 C5 03 33 8D 53 00 +B3 07 0D 01 E3 11 D9 F6 23 20 FF 00 93 86 1F 00 +11 0F 09 06 63 84 DA 00 B6 8F 59 B5 13 8F 1B 00 +A2 99 56 9B 22 99 63 84 FB 01 FA 8B B1 BD B6 40 +26 44 96 44 06 49 F2 59 62 5A D2 5A 42 5B B2 5B +22 5C 92 5C 02 5D F2 4D 61 61 82 80 63 04 05 1C +79 71 4E CE 93 19 15 00 22 D4 26 D2 4A D0 52 CC +56 CA 5A C8 5E C6 62 C4 06 D6 2A 8B 2E 84 B6 84 +B2 8A 33 0A 36 01 13 19 25 00 81 4B 01 4C 13 98 +2B 00 33 05 04 01 4A 86 81 45 EF 30 30 0D AA 83 +A6 88 01 43 B3 07 5A 41 93 80 E7 FF 93 D2 10 00 +93 85 12 00 13 F6 35 00 46 85 D6 86 81 4E 59 C2 +05 47 63 0C E6 04 09 4E 63 06 C6 03 83 9E 0A 00 +03 9F 08 00 93 86 2A 00 33 85 38 01 B3 8F EE 03 +13 D8 2F 40 93 D7 5F 40 93 70 F8 00 93 F2 F7 07 +B3 8E 50 02 83 95 06 00 03 16 05 00 89 06 4E 95 +33 8E C5 02 13 57 2E 40 13 5F 5E 40 93 7F F7 00 +13 78 FF 07 B3 87 0F 03 BE 9E 83 90 06 00 83 12 +05 00 89 06 4E 95 B3 85 50 02 13 D6 25 40 13 DE +55 40 13 77 F6 00 13 7F FE 07 B3 0F E7 03 FE 9E +63 03 DA 0A 33 08 35 01 83 90 06 00 83 12 05 00 +B3 07 38 01 03 9E 26 00 03 17 08 00 83 9F 07 00 +33 85 37 01 03 96 46 00 33 8F 50 02 03 18 05 00 +83 95 66 00 A1 06 4E 95 B3 00 EE 02 93 52 2F 40 +13 5E 5F 40 13 F7 F2 00 93 77 FE 07 33 06 F6 03 +13 DF 50 40 93 DF 20 40 93 72 FF 07 93 F0 FF 00 +B3 85 05 03 13 5E 56 40 13 58 26 40 93 7F F8 00 +13 76 FE 07 B3 07 F7 02 13 DF 55 40 13 D7 25 40 +13 78 F7 00 93 75 FF 07 B3 80 50 02 BE 9E B3 82 +CF 02 33 8E 1E 00 B3 0F B8 02 33 06 5E 00 B3 0E +F6 01 E3 11 DA F6 23 A0 D3 01 93 06 13 00 91 03 +89 08 63 04 DB 00 36 83 75 B5 93 03 1C 00 CE 9A +DA 9B 4E 9A 63 04 6C 00 1E 8C 51 B5 B2 50 22 54 +92 54 02 59 F2 49 62 4A D2 4A 42 4B B2 4B 22 4C +45 61 82 80 82 80 13 03 F5 FF 85 47 B2 88 63 FA +67 16 85 05 93 92 05 01 93 D5 02 01 37 06 04 F0 +93 D3 35 00 9D 4E 93 F6 75 00 01 47 13 06 86 0A +A1 4F 11 48 05 4E 13 0F C0 02 93 F7 33 00 63 8C +D6 11 63 68 D8 12 93 83 D6 FF 93 92 03 01 8A 07 +93 D6 02 01 B3 03 F6 00 63 68 DE 10 83 A6 03 01 +A5 47 A1 43 B3 02 F7 00 63 F5 62 12 41 11 22 C6 +35 A0 63 66 88 0C 93 06 D4 FF 93 97 06 01 13 94 +23 00 93 D2 07 01 B3 03 86 00 63 65 5E 0A 83 A6 +03 01 A5 42 A1 43 BA 92 63 F3 62 08 03 C4 06 00 +B3 87 E8 00 23 80 87 00 03 C7 16 00 A3 80 E7 00 +03 C4 26 00 23 81 87 00 03 C7 36 00 A3 81 E7 00 +63 84 03 03 03 C4 46 00 23 82 87 00 03 C7 56 00 +A3 82 E7 00 03 C4 66 00 23 83 87 00 63 96 F3 01 +83 C6 76 00 A3 83 D7 00 85 05 BE 93 93 97 05 01 +93 D5 07 01 23 80 E3 01 16 87 13 F4 75 00 93 D2 +35 00 93 F3 32 00 E3 16 D4 F7 93 96 23 00 A5 42 +B3 07 D6 00 BA 92 94 5B A1 43 E3 E1 62 F8 63 79 +A7 02 32 44 33 06 E5 40 81 45 33 85 E8 00 41 01 +6F 30 C0 61 83 A6 03 00 95 42 91 43 A9 BF 13 94 +23 00 B3 03 86 00 83 A6 03 02 A5 42 A1 43 A1 B7 +32 44 41 01 82 80 93 92 27 00 B3 03 56 00 83 A6 +03 03 A5 47 A1 43 FD BD 83 A6 03 00 95 47 91 43 +D5 BD 93 92 27 00 B3 06 56 00 94 52 A5 47 A1 43 +D5 B5 01 47 33 06 E5 40 81 45 33 85 E8 00 6F 30 +E0 5B E3 69 A7 FE 82 80 1C 41 2A 8E 01 45 03 C7 +07 00 3E 88 61 C3 93 06 C0 02 13 88 17 00 63 07 +D7 24 88 41 13 06 07 FD 93 72 F6 0F A5 48 13 03 +15 00 63 E4 58 0A 23 A0 65 00 83 C8 17 00 63 8A +08 12 13 87 27 00 63 85 D8 12 13 86 08 FD 13 0F +E0 02 A5 4F 93 07 C0 02 93 76 F6 0F 63 84 E8 03 +63 E4 DF 0A 83 48 18 00 13 05 17 00 3A 88 63 81 +08 10 63 8C F8 20 13 86 08 FD 2A 87 93 76 F6 0F +E3 90 E8 FF 03 A3 05 01 15 45 93 03 13 00 23 A8 +75 00 03 43 18 00 3A 88 63 0E 03 02 13 08 C0 02 +93 08 17 00 63 01 03 1D 93 0E 50 04 25 4F 93 0F +C0 02 93 07 03 FD 13 76 F3 0D 93 F6 F7 0F 63 0C +D6 0B 63 7F DF 14 83 A2 45 01 46 88 05 45 13 87 +12 00 D8 C9 23 20 0E 01 82 80 93 03 B0 02 63 0F +77 02 93 0E D0 02 63 0B D7 03 13 0F E0 02 63 04 +E7 15 83 AF 45 00 23 A0 65 00 05 45 93 87 1F 00 +DC C1 23 20 0E 01 82 80 83 A2 05 01 3A 88 05 45 +13 87 12 00 98 C9 23 20 0E 01 82 80 23 A0 65 00 +03 C6 17 00 63 0E 06 14 13 88 27 00 63 0A D6 14 +94 45 13 07 06 FD 93 72 F7 0F 25 45 93 88 16 00 +63 7C 55 00 13 03 E0 02 63 03 66 10 23 A4 15 01 +05 45 23 20 0E 01 82 80 23 A4 15 01 83 C8 27 00 +63 89 08 00 93 0E C0 02 13 07 18 00 E3 9F D8 ED +3A 88 11 45 85 B7 C8 49 93 03 15 00 23 AA 75 00 +83 4E 17 00 63 89 0E 0E 13 0F C0 02 13 88 18 00 +63 84 EE 0F 83 AF C5 00 93 87 5E FD 13 F6 D7 0F +93 86 1F 00 D4 C5 09 C6 05 45 23 20 0E 01 82 80 +83 C2 18 00 63 84 02 0C 13 88 28 00 63 80 E2 0D +03 A3 85 01 13 87 02 FD 13 75 F7 0F 93 0E 13 00 +A5 43 23 AC D5 01 E3 E9 A3 FC 83 C2 28 00 63 8A +02 08 13 87 38 00 63 85 E2 09 A5 48 13 0F C0 02 +93 8F 02 FD 13 F6 FF 0F 63 F9 C8 00 D4 41 3A 88 +05 45 93 87 16 00 DC C1 F1 B5 83 42 18 00 13 03 +17 00 3A 88 63 8E 02 04 63 86 E2 07 1A 87 C9 BF +03 43 17 00 13 88 18 00 46 87 63 0E 03 02 63 0D +F3 03 C2 88 BD BD 23 A0 65 00 03 C3 17 00 63 05 +03 02 93 88 27 00 63 00 D3 02 42 87 B1 BD 23 A4 +15 01 03 C3 27 00 63 09 03 00 93 03 C0 02 93 08 +18 00 E3 14 73 FE 46 88 15 45 AD B5 01 45 9D B5 +3A 88 1D 45 85 B5 46 88 0D 45 A9 BD 19 45 99 BD +09 45 89 BD 1A 88 1D 45 B1 B5 2A 88 11 45 99 B5 +19 71 A2 DC A6 DA CA D8 D2 D4 D6 D2 DA D0 DE CE +86 DE CE D6 2E 89 83 C5 05 00 4A C6 02 D8 02 C8 +02 DA 02 DC 02 DE 82 C0 82 C2 82 C4 82 C6 02 CA +02 CC 02 CE 02 D0 02 D2 02 D4 02 D6 04 18 2A 8A +B2 8B 36 8B BA 8A 3E 84 E3 8C 05 1C 93 09 C1 00 +A6 85 4E 85 15 33 AA 87 93 92 27 00 98 08 33 03 +57 00 B2 46 83 23 03 FC A6 85 03 C6 06 00 13 88 +13 00 23 20 03 FD 4E 85 35 CA FD 39 AA 88 13 9E +28 00 93 0E 01 05 33 8F CE 01 B2 47 83 2F 0F FC +A6 85 83 C2 07 00 13 87 1F 00 23 20 EF FC 4E 85 +63 86 02 04 D1 39 2A 83 93 13 23 00 94 08 33 86 +76 00 B2 48 03 28 06 FC A6 85 03 CE 08 00 93 0E +18 00 23 20 D6 FD 4E 85 63 02 0E 02 75 31 0A 05 +8C 08 33 8F A5 00 B2 47 83 2F 0F FC 83 C2 07 00 +13 87 1F 00 23 20 EF FC E3 94 02 F6 4A C6 4A 9A +83 45 09 00 E3 7C 49 13 93 00 C0 02 4A 83 B3 C9 +75 01 63 80 15 02 23 00 33 01 B2 43 33 83 53 01 +1A C6 63 7C 43 01 83 45 03 00 B3 C9 75 01 E3 94 +15 FE 56 93 1A C6 E3 68 43 FF 83 4B 09 00 4A C6 +93 09 C1 00 63 83 0B 0A A6 85 4E 85 35 39 AA 86 +13 96 26 00 13 08 01 05 B3 08 C8 00 B2 4E 03 AE +08 FC A6 85 03 CF 0E 00 93 0F 1E 00 23 A0 F8 FD +4E 85 63 09 0F 06 09 39 AA 87 93 92 27 00 98 08 +33 03 57 00 B2 4B 83 23 03 FC A6 85 83 C6 0B 00 +13 86 13 00 23 20 C3 FC 4E 85 A9 C6 F5 36 2A 88 +93 18 28 00 13 0E 01 05 B3 0E 1E 01 B2 4F 03 AF +0E FC A6 85 83 C7 0F 00 93 02 1F 00 23 A0 5E FC +4E 85 8D C3 D1 36 0A 05 8C 08 33 83 A5 00 32 47 +83 23 03 FC 83 4B 07 00 93 86 13 00 23 20 D3 FC +E3 94 0B F6 4A C6 63 72 49 03 93 00 C0 02 83 49 +09 00 33 C6 69 01 E3 87 19 02 23 00 C9 00 32 48 +33 09 58 01 4A C6 E3 64 49 FF 69 7A 14 08 26 86 +13 0E 1A 00 83 AE 06 00 93 53 14 00 33 C4 8E 00 +13 FF FE 0F 93 9F 0E 01 93 78 14 00 93 D2 0F 01 +13 55 1F 00 63 88 08 00 B3 C7 C3 01 93 95 07 01 +93 D3 05 01 33 C3 A3 00 13 77 13 00 93 5B 2F 00 +93 D0 13 00 19 C7 B3 CA C0 01 13 9B 0A 01 93 50 +0B 01 B3 C9 70 01 13 F9 19 00 13 58 3F 00 93 DF +10 00 63 08 09 00 33 CA CF 01 13 14 0A 01 93 5F +04 01 B3 C8 0F 01 13 F5 18 00 93 55 4F 00 13 D7 +1F 00 19 C5 B3 47 C7 01 93 93 07 01 13 D7 03 01 +33 C3 E5 00 93 7B 13 00 93 5A 5F 00 93 59 17 00 +63 88 0B 00 33 CB C9 01 93 10 0B 01 93 D9 00 01 +33 C9 59 01 13 78 19 00 13 5A 6F 00 13 D5 19 00 +63 08 08 00 33 44 C5 01 93 1F 04 01 13 D5 0F 01 +B3 48 AA 00 93 F5 18 00 13 5F 7F 00 13 57 15 00 +99 C5 B3 47 C7 01 93 93 07 01 13 D7 03 01 13 73 +17 00 13 5B 17 00 63 08 E3 01 B3 4B CB 01 93 9A +0B 01 13 DB 0A 01 93 D0 82 00 B3 C9 60 01 13 F9 +19 00 13 D8 82 00 93 5F 1B 00 93 D2 92 00 63 08 +09 00 33 CA CF 01 13 14 0A 01 93 5F 04 01 33 C5 +F2 01 93 75 15 00 93 58 28 00 93 D3 1F 00 99 C5 +33 CF C3 01 93 17 0F 01 93 D3 07 01 33 C7 78 00 +13 73 17 00 93 5B 38 00 93 D0 13 00 63 08 03 00 +B3 CA C0 01 13 9B 0A 01 93 50 0B 01 B3 C9 1B 00 +13 F9 19 00 93 52 48 00 93 DF 10 00 63 08 09 00 +33 CA CF 01 13 14 0A 01 93 5F 04 01 33 C5 F2 01 +93 75 15 00 93 58 58 00 93 D3 1F 00 99 C5 33 CF +C3 01 93 17 0F 01 93 D3 07 01 33 C7 78 00 13 73 +17 00 93 5B 68 00 93 D0 13 00 63 08 03 00 B3 CA +C0 01 13 9B 0A 01 93 50 0B 01 B3 C9 1B 00 13 F9 +19 00 13 58 78 00 13 D4 10 00 63 08 09 00 B3 42 +C4 01 13 9A 02 01 13 54 0A 01 93 7F 14 00 13 5F +14 00 63 88 0F 01 33 45 CF 01 93 15 05 01 13 DF +05 01 93 D8 0E 01 B3 C7 E8 01 93 F3 F8 0F 13 F7 +17 00 93 DE 0E 01 13 D3 13 00 13 5B 1F 00 19 C7 +B3 4B CB 01 93 9A 0B 01 13 DB 0A 01 B3 40 63 01 +93 F9 10 00 13 D9 23 00 13 5A 1B 00 63 88 09 00 +33 48 CA 01 93 12 08 01 13 DA 02 01 33 44 49 01 +93 7F 14 00 13 D5 33 00 93 57 1A 00 63 88 0F 00 +B3 C5 C7 01 13 9F 05 01 93 57 0F 01 B3 48 F5 00 +13 F7 18 00 13 D3 43 00 13 DB 17 00 19 C7 B3 4B +CB 01 93 9A 0B 01 13 DB 0A 01 B3 40 63 01 93 F9 +10 00 13 D9 53 00 13 5A 1B 00 63 88 09 00 33 48 +CA 01 93 12 08 01 13 DA 02 01 33 44 49 01 93 7F +14 00 13 D5 63 00 93 57 1A 00 63 88 0F 00 B3 C5 +C7 01 13 9F 05 01 93 57 0F 01 B3 48 F5 00 13 F7 +18 00 93 D3 73 00 93 DA 17 00 19 C7 33 C3 CA 01 +93 1B 03 01 93 DA 0B 01 13 FB 1A 00 13 D9 1A 00 +63 08 7B 00 B3 40 C9 01 93 99 00 01 13 D9 09 01 +13 D8 8E 00 B3 42 28 01 13 FA 12 00 13 D4 8E 00 +13 5F 19 00 93 DE 9E 00 63 08 0A 00 B3 4F CF 01 +13 95 0F 01 13 5F 05 01 B3 C5 EE 01 93 F8 15 00 +13 57 24 00 13 53 1F 00 63 88 08 00 B3 47 C3 01 +93 93 07 01 13 D3 03 01 B3 4B 67 00 93 FA 1B 00 +13 5B 34 00 13 59 13 00 63 88 0A 00 B3 40 C9 01 +93 99 00 01 13 D9 09 01 33 48 2B 01 93 72 18 00 +13 5A 44 00 13 55 19 00 63 88 02 00 B3 4E C5 01 +93 9F 0E 01 13 D5 0F 01 33 4F AA 00 93 75 1F 00 +93 58 54 00 93 53 15 00 99 C5 33 C7 C3 01 93 17 +07 01 93 D3 07 01 33 C3 78 00 93 7B 13 00 93 5A +64 00 93 D9 13 00 63 88 0B 00 33 CB C9 01 93 10 +0B 01 93 D9 00 01 33 C9 3A 01 13 78 19 00 1D 80 +93 DE 19 00 63 08 08 00 B3 C2 CE 01 13 9A 02 01 +93 5E 0A 01 93 FF 1E 00 93 D8 1E 00 63 88 8F 00 +33 C5 C8 01 13 1F 05 01 93 58 0F 01 0C 42 93 D9 +18 00 33 C7 15 01 93 F3 F5 0F 13 93 05 01 93 77 +17 00 93 5B 03 01 93 DA 13 00 99 C7 33 CB C9 01 +93 10 0B 01 93 D9 00 01 33 C9 3A 01 13 78 19 00 +93 D2 23 00 93 DE 19 00 63 08 08 00 33 C4 CE 01 +13 1A 04 01 93 5E 0A 01 B3 CF D2 01 13 F5 1F 00 +13 DF 33 00 13 D3 1E 00 19 C5 B3 48 C3 01 13 97 +08 01 13 53 07 01 B3 47 6F 00 93 FA 17 00 13 DB +43 00 13 59 13 00 63 88 0A 00 B3 40 C9 01 93 99 +00 01 13 D9 09 01 33 48 2B 01 93 72 18 00 13 DA +53 00 93 5F 19 00 63 88 02 00 33 C4 CF 01 93 1E +04 01 93 DF 0E 01 33 45 FA 01 13 7F 15 00 93 D8 +63 00 93 DA 1F 00 63 08 0F 00 33 C7 CA 01 13 13 +07 01 93 5A 03 01 B3 C7 58 01 13 FB 17 00 93 D3 +73 00 13 D9 1A 00 63 08 0B 00 B3 40 C9 01 93 99 +00 01 13 D9 09 01 13 78 19 00 13 54 19 00 63 08 +78 00 B3 42 C4 01 13 9A 02 01 13 54 0A 01 93 DE +8B 00 B3 CF 8E 00 13 FF 1F 00 13 D5 8B 00 13 53 +14 00 93 DB 9B 00 63 08 0F 00 B3 48 C3 01 13 97 +08 01 13 53 07 01 B3 CA 6B 00 93 F7 1A 00 13 5B +25 00 93 59 13 00 99 C7 B3 C3 C9 01 93 90 03 01 +93 D9 00 01 33 49 3B 01 93 72 19 00 13 58 35 00 +93 DE 19 00 63 88 02 00 33 CA CE 01 13 14 0A 01 +93 5E 04 01 B3 4F D8 01 13 FF 1F 00 93 5B 45 00 +13 D3 1E 00 63 08 0F 00 B3 48 C3 01 13 97 08 01 +13 53 07 01 B3 CA 6B 00 93 F7 1A 00 13 5B 55 00 +93 59 13 00 99 C7 B3 C3 C9 01 93 90 03 01 93 D9 +00 01 33 49 3B 01 93 72 19 00 13 58 65 00 93 DE +19 00 63 88 02 00 33 CA CE 01 13 14 0A 01 93 5E +04 01 B3 4F D8 01 13 FF 1F 00 1D 81 13 D7 1E 00 +63 08 0F 00 B3 4B C7 01 93 98 0B 01 13 D7 08 01 +13 73 17 00 13 5B 17 00 63 08 A3 00 B3 4A CB 01 +93 97 0A 01 13 DB 07 01 93 D3 05 01 B3 C0 63 01 +93 F9 F3 0F 13 F9 10 00 C1 81 93 D2 19 00 13 54 +1B 00 63 08 09 00 33 48 C4 01 13 1A 08 01 13 54 +0A 01 B3 CE 82 00 93 FF 1E 00 13 DF 29 00 93 58 +14 00 63 88 0F 00 33 C5 C8 01 93 1B 05 01 93 D8 +0B 01 33 47 1F 01 13 73 17 00 93 DA 39 00 93 D3 +18 00 63 08 03 00 B3 C7 C3 01 13 9B 07 01 93 53 +0B 01 B3 C0 7A 00 13 F9 10 00 93 D2 49 00 13 D4 +13 00 63 08 09 00 33 48 C4 01 13 1A 08 01 13 54 +0A 01 B3 CE 82 00 93 FF 1E 00 13 DF 59 00 93 58 +14 00 63 88 0F 00 33 C5 C8 01 93 1B 05 01 93 D8 +0B 01 33 47 1F 01 13 73 17 00 93 DA 69 00 93 D3 +18 00 63 08 03 00 B3 C7 C3 01 13 9B 07 01 93 53 +0B 01 B3 C0 7A 00 13 F9 10 00 93 D9 79 00 13 DA +13 00 63 08 09 00 B3 42 CA 01 13 98 02 01 13 5A +08 01 93 7E 1A 00 13 5F 1A 00 63 88 3E 01 33 44 +CF 01 93 1F 04 01 13 DF 0F 01 13 D5 85 00 B3 4B +E5 01 93 F8 1B 00 13 D7 85 00 93 57 1F 00 A5 81 +63 88 08 00 33 C3 C7 01 93 1A 03 01 93 D7 0A 01 +33 CB F5 00 93 73 1B 00 93 50 27 00 93 D2 17 00 +63 88 03 00 33 C9 C2 01 93 19 09 01 93 D2 09 01 +33 C8 50 00 13 7A 18 00 93 5E 37 00 13 DF 12 00 +63 08 0A 00 33 44 CF 01 93 1F 04 01 13 DF 0F 01 +33 C5 EE 01 93 7B 15 00 93 58 47 00 93 5A 1F 00 +63 88 0B 00 B3 C5 CA 01 13 93 05 01 93 5A 03 01 +B3 C7 58 01 13 FB 17 00 93 53 57 00 93 D9 1A 00 +63 08 0B 00 B3 C0 C9 01 13 99 00 01 93 59 09 01 +B3 C2 33 01 13 F8 12 00 13 5A 67 00 93 DF 19 00 +63 08 08 00 B3 CE CF 01 13 94 0E 01 93 5F 04 01 +33 4F FA 01 13 75 1F 00 1D 83 13 D3 1F 00 19 C5 +B3 4B C3 01 93 98 0B 01 13 D3 08 01 93 75 13 00 +13 54 13 00 63 88 E5 00 B3 4A C4 01 93 97 0A 01 +13 D4 07 01 91 06 11 06 E3 96 D4 80 F6 50 22 85 +66 54 D6 54 46 59 B6 59 26 5A 96 5A 06 5B F6 4B +09 61 82 80 56 99 4A C6 63 63 49 FD 6F F0 EF FD +33 0A A9 00 63 6A 49 ED 6F F0 2F FD 63 96 05 F0 +6F F0 AF FC 01 11 26 CA 83 14 05 00 06 CE 22 CC +93 D7 74 40 4A C8 4E C6 93 F0 17 00 63 8B 00 00 +F2 40 62 44 42 49 B2 49 13 F5 F4 07 D2 44 05 61 +82 80 13 D7 34 40 93 72 F7 00 13 93 42 00 93 F6 +74 00 03 D4 85 03 AA 89 2E 89 33 67 53 00 63 87 +06 50 05 45 63 83 A6 28 13 95 04 01 41 81 A6 8E +B3 CF 8E 00 93 F0 FE 0F 93 F8 1F 00 13 DF 10 00 +93 53 14 00 63 8B 08 00 69 77 93 02 17 00 B3 C7 +53 00 13 93 07 01 93 53 03 01 33 48 7F 00 93 75 +18 00 93 D6 20 00 93 D8 13 00 91 C9 69 76 13 04 +16 00 33 CE 88 00 93 1F 0E 01 93 D8 0F 01 33 CF +16 01 13 77 1F 00 93 D2 30 00 93 D6 18 00 11 CB +69 73 93 03 13 00 B3 C7 76 00 13 98 07 01 93 56 +08 01 B3 C5 D2 00 13 F4 15 00 13 D6 40 00 13 D7 +16 00 11 C8 69 7E 93 0F 1E 00 B3 48 F7 01 13 9F +08 01 13 57 0F 01 B3 42 C7 00 13 F3 12 00 93 D3 +50 00 13 54 17 00 63 0B 03 00 69 78 93 06 18 00 +B3 47 D4 00 93 95 07 01 13 D4 05 01 33 46 74 00 +13 7E 16 00 93 DF 60 00 13 53 14 00 63 0B 0E 00 +E9 78 13 8F 18 00 33 47 E3 01 93 12 07 01 13 D3 +02 01 B3 43 F3 01 13 F8 13 00 93 D0 70 00 13 5E +13 00 63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00 +13 94 07 01 13 5E 04 01 13 76 1E 00 93 52 1E 00 +63 0B 16 00 E9 7F 93 88 1F 00 33 CF 12 01 13 17 +0F 01 93 52 07 01 21 81 33 43 55 00 93 73 F5 0F +13 78 13 00 93 D0 13 00 13 DE 12 00 63 0B 08 00 +E9 76 93 85 16 00 B3 47 BE 00 13 94 07 01 13 5E +04 01 33 46 1E 00 93 7F 16 00 93 D8 23 00 13 53 +1E 00 63 8B 0F 00 69 7F 13 07 1F 00 B3 42 E3 00 +13 95 02 01 13 53 05 01 33 C8 68 00 93 70 18 00 +93 D5 33 00 93 5F 13 00 63 8B 00 00 E9 76 13 84 +16 00 B3 C7 8F 00 13 9E 07 01 93 5F 0E 01 33 C6 +F5 01 93 78 16 00 13 DF 43 00 13 D8 1F 00 63 8B +08 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01 +13 58 03 01 B3 40 0F 01 93 F5 10 00 13 D4 53 00 +93 58 18 00 91 C9 E9 76 13 8E 16 00 B3 C7 C8 01 +93 9F 07 01 93 D8 0F 01 33 46 14 01 13 7F 16 00 +13 D7 63 00 93 D0 18 00 63 0B 0F 00 E9 72 13 85 +12 00 33 C3 A0 00 13 18 03 01 93 50 08 01 B3 45 +17 00 13 F4 15 00 93 D3 73 00 93 D8 10 00 11 C8 +E9 76 13 8E 16 00 B3 C7 C8 01 93 9F 07 01 93 D8 +0F 01 33 C6 13 01 13 7F 16 00 13 D8 18 00 63 0B +0F 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01 +13 58 03 01 13 F5 FE 07 93 F4 04 F0 F2 40 62 44 +B3 6E 95 00 23 1C 09 03 13 E9 0E 08 23 90 29 01 +D2 44 42 49 B2 49 05 61 82 80 D0 55 94 59 03 25 +89 02 CC 59 EF B0 3F F5 33 46 A4 00 93 78 F5 0F +93 1E 05 01 13 7E 16 00 13 DF 0E 01 93 DF 18 00 +13 53 14 00 63 0B 0E 00 E9 77 93 80 17 00 33 47 +13 00 93 12 07 01 13 D3 02 01 B3 46 F3 01 93 F3 +16 00 13 D8 28 00 13 5E 13 00 63 8B 03 00 E9 75 +13 84 15 00 33 45 8E 00 13 16 05 01 13 5E 06 01 +B3 4E 0E 01 93 FF 1E 00 93 D7 38 00 93 53 1E 00 +63 8B 0F 00 E9 70 13 87 10 00 B3 C2 E3 00 13 93 +02 01 93 53 03 01 B3 C6 F3 00 13 F8 16 00 93 D5 +48 00 93 DE 13 00 63 0B 08 00 69 74 13 06 14 00 +33 C5 CE 00 13 1E 05 01 93 5E 0E 01 B3 CF BE 00 +93 F7 1F 00 93 D0 58 00 13 D8 1E 00 91 CB 69 77 93 02 17 00 33 43 58 00 93 13 03 01 13 D8 03 01 -93 76 18 00 13 55 18 00 63 8B 16 01 E9 75 13 84 -15 00 33 46 85 00 13 1E 06 01 13 55 0E 01 93 5E -8F 00 B3 4F D5 01 93 F0 1F 00 93 58 8F 00 93 53 -15 00 13 5F 9F 00 63 8B 00 00 E9 77 13 87 17 00 -B3 C2 E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01 -93 75 18 00 93 D6 28 00 93 DE 13 00 91 C9 69 74 -13 06 14 00 33 CE CE 00 13 15 0E 01 93 5E 05 01 -B3 CF DE 00 93 F0 1F 00 13 DF 38 00 93 D3 1E 00 +B3 46 18 00 93 F5 16 00 13 D4 68 00 93 5F 18 00 +91 C9 69 76 13 0E 16 00 33 C5 CF 01 93 1E 05 01 +93 DF 0E 01 B3 C7 8F 00 93 F0 17 00 93 D8 78 00 +13 D8 1F 00 63 8B 00 00 69 77 93 02 17 00 33 43 +58 00 93 13 03 01 13 D8 03 01 93 76 18 00 13 55 +18 00 63 8B 16 01 E9 75 13 84 15 00 33 46 85 00 +13 1E 06 01 13 55 0E 01 93 5E 8F 00 B3 4F D5 01 +93 F0 1F 00 93 58 8F 00 93 53 15 00 13 5F 9F 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2 E3 00 13 93 -02 01 93 53 03 01 33 C8 E3 01 93 75 18 00 13 D4 -48 00 93 DE 13 00 91 C9 E9 76 13 86 16 00 33 CE -CE 00 13 15 0E 01 93 5E 05 01 B3 CF 8E 00 93 F0 -1F 00 13 DF 58 00 93 D3 1E 00 63 8B 00 00 E9 77 +02 01 93 53 03 01 33 C8 E3 01 93 75 18 00 93 D6 +28 00 93 DE 13 00 91 C9 69 74 13 06 14 00 33 CE +CE 00 13 15 0E 01 93 5E 05 01 B3 CF DE 00 93 F0 +1F 00 13 DF 38 00 93 D3 1E 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2 E3 00 13 93 02 01 93 53 03 01 -33 C8 E3 01 93 75 18 00 13 D4 68 00 93 DE 13 00 +33 C8 E3 01 93 75 18 00 13 D4 48 00 93 DE 13 00 91 C9 E9 76 13 86 16 00 33 CE CE 00 13 15 0E 01 -93 5E 05 01 B3 CF 8E 00 93 F0 1F 00 93 D8 78 00 -13 D3 1E 00 63 8B 00 00 69 7F 93 07 1F 00 33 47 -F3 00 93 12 07 01 13 D3 02 01 93 73 13 00 13 55 -13 00 63 8B 13 01 69 78 93 05 18 00 33 44 B5 00 -93 16 04 01 13 D5 06 01 03 D6 C4 03 13 1E 05 01 -03 D4 84 03 93 5E 0E 41 E3 1E 06 84 23 9E A4 02 -91 B8 93 03 20 02 3A 88 63 54 77 00 13 08 20 02 -CC 48 83 96 24 00 03 96 04 00 88 4C A2 87 13 77 -F8 0F EF E0 3F 81 83 D5 E4 03 13 14 05 01 93 5E -04 41 03 D4 84 03 E3 9F 05 80 23 9F A4 02 19 B8 -93 0F 20 02 BA 88 63 54 F7 01 93 08 20 02 03 96 -04 00 83 96 24 00 CC 48 88 4C CE 87 13 F7 F8 0F -EF E0 4F FD 03 D6 E4 03 13 1F 05 01 83 D9 84 03 -13 58 0F 41 E3 15 06 A8 23 9F A4 02 49 B4 CC 58 -94 58 D0 54 88 54 EF B0 4F C1 33 43 35 01 13 77 -F5 0F 13 78 13 00 42 05 93 5E 05 01 93 55 17 00 -93 D7 19 00 63 0B 08 00 E9 70 93 89 10 00 B3 C3 -37 01 13 9E 03 01 93 57 0E 01 B3 C6 F5 00 93 FF -16 00 93 58 27 00 13 D8 17 00 63 8B 0F 00 69 76 -13 0F 16 00 B3 42 E8 01 13 93 02 01 13 58 03 01 -33 45 18 01 93 75 15 00 93 50 37 00 93 5F 18 00 -91 C9 E9 79 93 83 19 00 33 CE 7F 00 93 17 0E 01 -93 DF 07 01 B3 C6 F0 01 93 F8 16 00 13 5F 47 00 -13 D5 1F 00 63 8B 08 00 69 76 93 02 16 00 33 43 -55 00 13 18 03 01 13 55 08 01 B3 45 AF 00 93 F0 -15 00 93 59 57 00 93 58 15 00 63 8B 00 00 E9 73 -13 8E 13 00 B3 C7 C8 01 93 9F 07 01 93 D8 0F 01 -B3 C6 38 01 13 FF 16 00 93 52 67 00 93 D5 18 00 -63 0B 0F 00 69 76 13 03 16 00 33 C8 65 00 13 15 -08 01 93 55 05 01 B3 C0 55 00 93 F9 10 00 1D 83 -93 D8 15 00 63 8B 09 00 E9 73 13 8E 13 00 B3 C7 -C8 01 93 9F 07 01 93 D8 0F 01 93 F6 18 00 13 D8 -18 00 63 8B E6 00 69 7F 93 02 1F 00 33 46 58 00 -13 13 06 01 13 58 03 01 13 D5 8E 00 B3 45 05 01 -93 F0 15 00 93 D9 8E 00 93 5F 18 00 93 DE 9E 00 -63 8B 00 00 69 77 93 03 17 00 33 CE 7F 00 93 17 -0E 01 93 DF 07 01 B3 C8 FE 01 13 FF 18 00 93 D6 -29 00 13 D5 1F 00 63 0B 0F 00 E9 72 13 86 12 00 -33 43 C5 00 13 18 03 01 13 55 08 01 B3 C5 A6 00 -93 F0 15 00 93 DE 39 00 93 5F 15 00 63 8B 00 00 +93 5E 05 01 B3 CF 8E 00 93 F0 1F 00 13 DF 58 00 +93 D3 1E 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2 +E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01 93 75 +18 00 13 D4 68 00 93 DE 13 00 91 C9 E9 76 13 86 +16 00 33 CE CE 00 13 15 0E 01 93 5E 05 01 B3 CF +8E 00 93 F0 1F 00 93 D8 78 00 13 D3 1E 00 63 8B +00 00 69 7F 93 07 1F 00 33 47 F3 00 93 12 07 01 +13 D3 02 01 93 73 13 00 13 55 13 00 63 8B 13 01 +69 78 93 05 18 00 33 44 B5 00 93 16 04 01 13 D5 +06 01 03 56 C9 03 13 1E 05 01 03 54 89 03 93 5E +0E 41 E3 17 06 B0 23 1E A9 02 19 B6 93 03 20 02 +3A 88 63 54 77 00 13 08 20 02 83 25 49 01 83 16 +29 00 03 16 09 00 03 25 89 01 A2 87 13 77 F8 0F +EF F0 0F 85 83 55 E9 03 13 14 05 01 93 5E 04 41 +03 54 89 03 E3 96 05 AC 23 1F A9 02 D1 B4 01 11 +4A C8 03 19 05 00 06 CE 22 CC 93 57 79 40 26 CA +52 C4 4E C6 93 F0 17 00 2E 8A B2 84 13 74 F9 07 +63 9E 00 28 13 57 39 40 93 72 F7 00 93 96 42 00 +13 73 79 00 03 54 86 03 AA 89 33 E7 D2 00 63 00 +03 7C 05 45 63 0D A3 52 13 15 09 01 41 81 CA 8E +B3 4F D4 01 93 F0 FE 0F 93 F8 1F 00 13 DF 10 00 +93 53 14 00 63 8B 08 00 69 77 93 02 17 00 B3 C7 +53 00 13 93 07 01 93 53 03 01 33 C8 E3 01 93 75 +18 00 93 D6 20 00 93 D8 13 00 91 C9 69 76 13 04 +16 00 33 CE 88 00 93 1F 0E 01 93 D8 0F 01 33 CF +D8 00 13 77 1F 00 93 D2 30 00 93 D6 18 00 11 CB +69 73 93 03 13 00 B3 C7 76 00 13 98 07 01 93 56 +08 01 B3 C5 56 00 13 F4 15 00 13 D6 40 00 13 D7 +16 00 11 C8 69 7E 93 0F 1E 00 B3 48 F7 01 13 9F +08 01 13 57 0F 01 B3 42 C7 00 13 F3 12 00 93 D3 +50 00 13 54 17 00 63 0B 03 00 69 78 93 06 18 00 +B3 47 D4 00 93 95 07 01 13 D4 05 01 33 46 74 00 +13 7E 16 00 93 DF 60 00 13 53 14 00 63 0B 0E 00 +E9 78 13 8F 18 00 33 47 E3 01 93 12 07 01 13 D3 +02 01 B3 43 F3 01 13 F8 13 00 93 D0 70 00 13 5E +13 00 63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00 +13 94 07 01 13 5E 04 01 13 76 1E 00 93 52 1E 00 +63 0B 16 00 E9 7F 93 88 1F 00 33 CF 12 01 13 17 +0F 01 93 52 07 01 21 81 33 43 55 00 93 73 F5 0F +13 78 13 00 93 D0 13 00 13 DE 12 00 63 0B 08 00 +E9 76 93 85 16 00 B3 47 BE 00 13 94 07 01 13 5E +04 01 33 46 1E 00 93 7F 16 00 93 D8 23 00 13 53 +1E 00 63 8B 0F 00 69 7F 13 07 1F 00 B3 42 E3 00 +13 95 02 01 13 53 05 01 33 48 13 01 93 70 18 00 +93 D5 33 00 93 5F 13 00 63 8B 00 00 E9 76 13 84 +16 00 B3 C7 8F 00 13 9E 07 01 93 5F 0E 01 33 C6 +BF 00 93 78 16 00 13 DF 43 00 13 D8 1F 00 63 8B +08 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01 +13 58 03 01 B3 40 E8 01 93 F5 10 00 13 D4 53 00 +93 58 18 00 91 C9 E9 76 13 8E 16 00 B3 C7 C8 01 +93 9F 07 01 93 D8 0F 01 33 C6 88 00 13 7F 16 00 +13 D7 63 00 93 D0 18 00 63 0B 0F 00 E9 72 13 85 +12 00 33 C3 A0 00 13 18 03 01 93 50 08 01 B3 C5 +E0 00 13 F4 15 00 93 D3 73 00 93 D8 10 00 11 C8 +E9 76 13 8E 16 00 B3 C7 C8 01 93 9F 07 01 93 D8 +0F 01 33 C6 13 01 13 7F 16 00 13 D8 18 00 63 0B +0F 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01 +13 58 03 01 13 F4 FE 07 13 79 09 F0 B3 6E 24 01 +23 9C 04 03 93 E0 0E 08 23 90 19 00 03 19 0A 00 +93 59 79 40 93 F5 19 00 13 78 F9 07 63 9F 05 28 +93 53 39 40 13 FE F3 00 93 16 4E 00 93 77 79 00 +83 D9 84 03 33 67 DE 00 63 8A 07 54 85 42 63 86 +57 58 13 15 09 01 41 81 4A 88 B3 45 38 01 93 70 +F8 0F 93 FE 15 00 13 D7 10 00 93 D8 19 00 63 8B +0E 00 E9 73 13 8E 13 00 B3 CF C8 01 93 97 0F 01 +93 D8 07 01 33 4F 17 01 93 72 1F 00 93 D6 20 00 +93 DE 18 00 63 8B 02 00 69 76 93 09 16 00 33 C3 +3E 01 93 15 03 01 93 DE 05 01 33 C7 DE 00 93 73 +17 00 13 DE 30 00 93 D2 1E 00 63 8B 03 00 E9 7F +93 88 1F 00 B3 C7 12 01 13 9F 07 01 93 52 0F 01 +B3 C6 C2 01 13 F6 16 00 93 D9 40 00 93 D3 12 00 +11 CA 69 73 93 05 13 00 B3 CE B3 00 13 97 0E 01 +93 53 07 01 33 CE 33 01 93 7F 1E 00 93 D8 50 00 +13 D6 13 00 63 8B 0F 00 69 7F 93 02 1F 00 B3 47 +56 00 93 96 07 01 13 D6 06 01 B3 49 16 01 13 F3 +19 00 93 DE 60 00 93 5F 16 00 63 0B 03 00 E9 75 +13 87 15 00 B3 C3 EF 00 13 9E 03 01 93 5F 0E 01 +B3 C8 FE 01 13 FF 18 00 93 D0 70 00 93 D9 1F 00 +63 0B 0F 00 E9 72 93 86 12 00 B3 C7 D9 00 13 96 +07 01 93 59 06 01 13 F3 19 00 13 DE 19 00 63 0B +13 00 E9 7E 93 85 1E 00 33 47 BE 00 93 13 07 01 +13 DE 03 01 21 81 B3 4F C5 01 93 78 F5 0F 13 FF +1F 00 93 D0 18 00 93 59 1E 00 63 0B 0F 00 E9 72 +93 86 12 00 B3 C7 D9 00 13 96 07 01 93 59 06 01 +33 C3 19 00 93 7E 13 00 13 D7 28 00 93 DF 19 00 +63 8B 0E 00 E9 75 93 83 15 00 33 CE 7F 00 13 15 +0E 01 93 5F 05 01 33 CF EF 00 93 70 1F 00 93 D2 +38 00 13 D3 1F 00 63 8B 00 00 E9 76 13 86 16 00 +B3 47 C3 00 93 99 07 01 13 D3 09 01 B3 4E 53 00 +13 F7 1E 00 93 D3 48 00 13 5F 13 00 11 CB E9 75 +13 8E 15 00 33 45 CF 01 93 1F 05 01 13 DF 0F 01 +B3 C0 E3 01 93 F2 10 00 93 D6 58 00 93 5E 1F 00 +63 8B 02 00 69 76 93 09 16 00 B3 C7 3E 01 13 93 +07 01 93 5E 03 01 33 C7 D6 01 93 73 17 00 13 DE +68 00 93 D0 1E 00 63 8B 03 00 E9 75 13 85 15 00 +B3 CF A0 00 13 9F 0F 01 93 50 0F 01 B3 42 1E 00 +13 F6 12 00 93 D8 78 00 93 DE 10 00 11 CA E9 76 +93 89 16 00 B3 C7 3E 01 13 93 07 01 93 5E 03 01 +33 C7 D8 01 93 73 17 00 13 DF 1E 00 63 8B 03 00 +69 7E 93 05 1E 00 33 45 BF 00 93 1F 05 01 13 DF +0F 01 13 78 F8 07 13 79 09 F0 B3 60 28 01 23 9C +E4 03 93 E4 00 08 23 10 9A 00 F2 40 33 05 04 41 +62 44 D2 44 42 49 B2 49 22 4A 05 61 82 80 14 5A +CC 58 50 56 88 54 EF B0 0F F1 33 46 A4 00 93 78 +F5 0F 93 1E 05 01 13 7E 16 00 13 DF 0E 01 93 DF +18 00 13 53 14 00 63 0B 0E 00 E9 77 93 80 17 00 +33 47 13 00 93 12 07 01 13 D3 02 01 B3 46 F3 01 +93 F3 16 00 13 D8 28 00 13 5E 13 00 63 8B 03 00 +E9 75 13 84 15 00 33 45 8E 00 13 16 05 01 13 5E +06 01 B3 4E 0E 01 93 FF 1E 00 93 D7 38 00 93 53 +1E 00 63 8B 0F 00 E9 70 13 87 10 00 B3 C2 E3 00 +13 93 02 01 93 53 03 01 B3 C6 F3 00 13 F8 16 00 +93 D5 48 00 93 DE 13 00 63 0B 08 00 69 74 13 06 +14 00 33 C5 CE 00 13 1E 05 01 93 5E 0E 01 B3 CF +BE 00 93 F7 1F 00 93 D0 58 00 13 D8 1E 00 91 CB +69 77 93 02 17 00 33 43 58 00 93 13 03 01 13 D8 +03 01 B3 46 18 00 93 F5 16 00 13 D4 68 00 93 5F +18 00 91 C9 69 76 13 0E 16 00 33 C5 CF 01 93 1E +05 01 93 DF 0E 01 B3 C7 8F 00 93 F0 17 00 93 D8 +78 00 13 D8 1F 00 63 8B 00 00 69 77 93 02 17 00 +33 43 58 00 93 13 03 01 13 D8 03 01 93 76 18 00 +13 55 18 00 63 8B 16 01 E9 75 13 84 15 00 33 46 +85 00 13 1E 06 01 13 55 0E 01 93 5E 8F 00 B3 4F +D5 01 93 F0 1F 00 93 58 8F 00 93 53 15 00 13 5F +9F 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2 E3 00 +13 93 02 01 93 53 03 01 33 C8 E3 01 93 75 18 00 +93 D6 28 00 93 DE 13 00 91 C9 69 74 13 06 14 00 +33 CE CE 00 13 15 0E 01 93 5E 05 01 B3 CF DE 00 +93 F0 1F 00 13 DF 38 00 93 D3 1E 00 63 8B 00 00 +E9 77 13 87 17 00 B3 C2 E3 00 13 93 02 01 93 53 +03 01 33 C8 E3 01 93 75 18 00 13 D4 48 00 93 DE +13 00 91 C9 E9 76 13 86 16 00 33 CE CE 00 13 15 +0E 01 93 5E 05 01 B3 CF 8E 00 93 F0 1F 00 13 DF +58 00 93 D3 1E 00 63 8B 00 00 E9 77 13 87 17 00 +B3 C2 E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01 +93 75 18 00 13 D4 68 00 93 DE 13 00 91 C9 E9 76 +13 86 16 00 33 CE CE 00 13 15 0E 01 93 5E 05 01 +B3 CF 8E 00 93 F0 1F 00 93 D8 78 00 13 D3 1E 00 +63 8B 00 00 69 7F 93 07 1F 00 33 47 F3 00 93 12 +07 01 13 D3 02 01 93 73 13 00 13 55 13 00 63 8B +13 01 69 78 93 05 18 00 33 44 B5 00 93 16 04 01 +13 D5 06 01 03 D6 C4 03 13 1E 05 01 03 D4 84 03 +93 5E 0E 41 E3 1E 06 84 23 9E A4 02 91 B8 93 03 +20 02 3A 88 63 54 77 00 13 08 20 02 CC 48 83 96 +24 00 03 96 04 00 88 4C A2 87 13 77 F8 0F EF E0 +3F 81 83 D5 E4 03 13 14 05 01 93 5E 04 41 03 D4 +84 03 E3 9F 05 80 23 9F A4 02 19 B8 93 0F 20 02 +BA 88 63 54 F7 01 93 08 20 02 03 96 04 00 83 96 +24 00 CC 48 88 4C CE 87 13 F7 F8 0F EF E0 4F FD +03 D6 E4 03 13 1F 05 01 83 D9 84 03 13 58 0F 41 +E3 15 06 A8 23 9F A4 02 49 B4 CC 58 94 58 D0 54 +88 54 EF B0 4F C1 33 43 35 01 13 77 F5 0F 13 78 +13 00 42 05 93 5E 05 01 93 55 17 00 93 D7 19 00 +63 0B 08 00 E9 70 93 89 10 00 B3 C3 37 01 13 9E +03 01 93 57 0E 01 B3 C6 F5 00 93 FF 16 00 93 58 +27 00 13 D8 17 00 63 8B 0F 00 69 76 13 0F 16 00 +B3 42 E8 01 13 93 02 01 13 58 03 01 33 45 18 01 +93 75 15 00 93 50 37 00 93 5F 18 00 91 C9 E9 79 +93 83 19 00 33 CE 7F 00 93 17 0E 01 93 DF 07 01 +B3 C6 F0 01 93 F8 16 00 13 5F 47 00 13 D5 1F 00 +63 8B 08 00 69 76 93 02 16 00 33 43 55 00 13 18 +03 01 13 55 08 01 B3 45 AF 00 93 F0 15 00 93 59 +57 00 93 58 15 00 63 8B 00 00 E9 73 13 8E 13 00 +B3 C7 C8 01 93 9F 07 01 93 D8 0F 01 B3 C6 38 01 +13 FF 16 00 93 52 67 00 93 D5 18 00 63 0B 0F 00 +69 76 13 03 16 00 33 C8 65 00 13 15 08 01 93 55 +05 01 B3 C0 55 00 93 F9 10 00 1D 83 93 D8 15 00 +63 8B 09 00 E9 73 13 8E 13 00 B3 C7 C8 01 93 9F +07 01 93 D8 0F 01 93 F6 18 00 13 D8 18 00 63 8B +E6 00 69 7F 93 02 1F 00 33 46 58 00 13 13 06 01 +13 58 03 01 13 D5 8E 00 B3 45 05 01 93 F0 15 00 +93 D9 8E 00 93 5F 18 00 93 DE 9E 00 63 8B 00 00 69 77 93 03 17 00 33 CE 7F 00 93 17 0E 01 93 DF -07 01 B3 C8 FE 01 13 FF 18 00 93 D2 49 00 13 D5 -1F 00 63 0B 0F 00 E9 76 13 86 16 00 33 43 C5 00 -13 18 03 01 13 55 08 01 B3 C5 A2 00 93 F0 15 00 -93 DE 59 00 93 5F 15 00 63 8B 00 00 69 77 93 03 +07 01 B3 C8 FE 01 13 FF 18 00 93 D6 29 00 13 D5 +1F 00 63 0B 0F 00 E9 72 13 86 12 00 33 43 C5 00 +13 18 03 01 13 55 08 01 B3 C5 A6 00 93 F0 15 00 +93 DE 39 00 93 5F 15 00 63 8B 00 00 69 77 93 03 17 00 33 CE 7F 00 93 17 0E 01 93 DF 07 01 B3 C8 -FE 01 13 FF 18 00 93 D2 69 00 13 D5 1F 00 63 0B +FE 01 13 FF 18 00 93 D2 49 00 13 D5 1F 00 63 0B 0F 00 E9 76 13 86 16 00 33 43 C5 00 13 18 03 01 -13 55 08 01 B3 C5 A2 00 93 F0 15 00 93 D9 79 00 -93 5F 15 00 63 8B 00 00 E9 7E 13 87 1E 00 B3 C3 -EF 00 13 9E 03 01 93 5F 0E 01 93 F7 1F 00 13 D5 -1F 00 63 8B 37 01 E9 78 13 8F 18 00 B3 42 E5 01 -93 96 02 01 13 D5 06 01 03 D6 C4 03 13 13 05 01 -83 D9 84 03 13 58 03 41 E3 13 06 80 23 9E A4 02 -6F F0 EF FF 03 1E 45 00 39 71 22 DC 6A C8 06 DE -26 DA 4A D8 4E D6 52 D4 56 D2 5A D0 5E CE 62 CC -66 CA 6E C6 40 51 2A 8D E3 52 C0 0B 2E 8B 01 48 -81 4E 81 4C 01 4F 13 7C F8 0F 63 4D 0B 38 E3 0D -04 08 A2 87 19 A0 9C 43 99 C7 83 A2 47 00 83 93 -22 00 E3 9A 63 FF 22 8A 03 26 0A 00 01 47 23 20 -EA 00 52 84 3D C6 08 42 23 20 46 01 52 87 32 84 -2D C1 14 41 10 C1 32 87 2A 84 A1 CE 84 42 88 C2 -2A 87 36 84 B9 C4 03 A9 04 00 94 C0 36 87 26 84 -63 01 09 04 83 28 09 00 23 20 99 00 26 87 4A 84 -63 89 08 02 83 A9 08 00 23 A0 28 01 4A 87 46 84 -63 81 09 02 03 AA 09 00 23 A0 19 01 46 87 4E 84 -63 09 0A 00 03 26 0A 00 4E 87 23 20 EA 00 52 84 -59 FA 63 8E 07 30 83 AA 47 00 13 83 1C 00 93 1B -03 01 83 9D 0A 00 93 DC 0B 01 93 FF 1D 00 63 8B -0F 00 13 D7 9D 40 93 70 17 00 06 9F 93 12 0F 01 -13 DF 02 01 83 A3 07 00 63 8A 03 00 03 A6 03 00 -90 C3 1C 40 23 A0 F3 00 23 20 74 00 63 47 0B 00 -05 0B 13 1A 0B 01 13 5B 0A 41 05 08 93 1A 08 01 -13 D8 0A 41 E3 11 0E F1 13 9E 2C 00 33 03 DE 41 -B3 0B 6F 00 93 9C 0B 01 93 D4 0C 01 63 49 B0 66 -03 2D 04 00 A2 8D 83 2A 0D 00 83 2B 4D 00 83 A7 -4A 00 03 A5 0A 00 23 22 FD 00 23 A2 7A 01 23 20 -AD 00 23 A0 0A 00 63 48 0B 22 03 AC 4D 00 83 AD -0D 00 83 18 2C 00 63 82 68 25 E3 98 0D FE 03 2B -04 00 83 2D 0B 00 6E 87 83 29 44 00 69 78 93 00 -18 00 03 9E 09 00 13 13 0E 01 93 5C 03 01 13 DD -8C 00 13 7F FE 0F 93 15 8E 01 13 15 8D 01 13 5A -1F 00 13 5C 2F 00 13 59 3F 00 93 53 4F 00 93 52 -5F 00 93 5F 6F 00 13 56 7F 00 93 D7 85 41 93 59 -85 41 13 DF 9C 00 93 DE AC 00 13 DE BC 00 13 D3 -CC 00 93 D8 DC 00 13 D8 EC 00 93 D6 FC 00 B3 CC -97 00 13 FD 1C 00 13 D5 14 00 63 08 0D 00 B3 44 -15 00 93 95 04 01 13 D5 05 01 B3 4C AA 00 13 FD +13 55 08 01 B3 C5 A2 00 93 F0 15 00 93 DE 59 00 +93 5F 15 00 63 8B 00 00 69 77 93 03 17 00 33 CE +7F 00 93 17 0E 01 93 DF 07 01 B3 C8 FE 01 13 FF +18 00 93 D2 69 00 13 D5 1F 00 63 0B 0F 00 E9 76 +13 86 16 00 33 43 C5 00 13 18 03 01 13 55 08 01 +B3 C5 A2 00 93 F0 15 00 93 D9 79 00 93 5F 15 00 +63 8B 00 00 E9 7E 13 87 1E 00 B3 C3 EF 00 13 9E +03 01 93 5F 0E 01 93 F7 1F 00 13 D5 1F 00 63 8B +37 01 E9 78 13 8F 18 00 B3 42 E5 01 93 96 02 01 +13 D5 06 01 03 D6 C4 03 13 13 05 01 83 D9 84 03 +13 58 03 41 E3 13 06 80 23 9E A4 02 6F F0 EF FF +03 1E 45 00 39 71 22 DC 6A C8 06 DE 26 DA 4A D8 +4E D6 52 D4 56 D2 5A D0 5E CE 62 CC 66 CA 6E C6 +40 51 2A 8D E3 52 C0 0B 2E 8B 01 48 81 4E 81 4C +01 4F 13 7C F8 0F 63 4D 0B 38 E3 0D 04 08 A2 87 +19 A0 9C 43 99 C7 83 A2 47 00 83 93 22 00 E3 9A +63 FF 22 8A 03 26 0A 00 01 47 23 20 EA 00 52 84 +3D C6 08 42 23 20 46 01 52 87 32 84 2D C1 14 41 +10 C1 32 87 2A 84 A1 CE 84 42 88 C2 2A 87 36 84 +B9 C4 03 A9 04 00 94 C0 36 87 26 84 63 01 09 04 +83 28 09 00 23 20 99 00 26 87 4A 84 63 89 08 02 +83 A9 08 00 23 A0 28 01 4A 87 46 84 63 81 09 02 +03 AA 09 00 23 A0 19 01 46 87 4E 84 63 09 0A 00 +03 26 0A 00 4E 87 23 20 EA 00 52 84 59 FA 63 8E +07 30 83 AA 47 00 13 83 1C 00 93 1B 03 01 83 9D +0A 00 93 DC 0B 01 93 FF 1D 00 63 8B 0F 00 13 D7 +9D 40 93 70 17 00 06 9F 93 12 0F 01 13 DF 02 01 +83 A3 07 00 63 8A 03 00 03 A6 03 00 90 C3 1C 40 +23 A0 F3 00 23 20 74 00 63 47 0B 00 05 0B 13 1A +0B 01 13 5B 0A 41 05 08 93 1A 08 01 13 D8 0A 41 +E3 11 0E F1 13 9E 2C 00 33 03 DE 41 B3 0B 6F 00 +93 9C 0B 01 93 D4 0C 01 63 49 B0 66 03 2D 04 00 +A2 8D 83 2A 0D 00 83 2B 4D 00 83 A7 4A 00 03 A5 +0A 00 23 22 FD 00 23 A2 7A 01 23 20 AD 00 23 A0 +0A 00 63 48 0B 22 03 AC 4D 00 83 AD 0D 00 83 18 +2C 00 63 82 68 25 E3 98 0D FE 03 2B 04 00 83 2D +0B 00 6E 87 83 29 44 00 69 78 93 00 18 00 03 9E +09 00 13 13 0E 01 93 5C 03 01 13 DD 8C 00 13 7F +FE 0F 93 15 8E 01 13 15 8D 01 13 5A 1F 00 13 5C +2F 00 13 59 3F 00 93 53 4F 00 93 52 5F 00 93 5F +6F 00 13 56 7F 00 93 D7 85 41 93 59 85 41 13 DF +9C 00 93 DE AC 00 13 DE BC 00 13 D3 CC 00 93 D8 +DC 00 13 D8 EC 00 93 D6 FC 00 B3 CC 97 00 13 FD +1C 00 13 D5 14 00 63 08 0D 00 B3 44 15 00 93 95 +04 01 13 D5 05 01 B3 4C AA 00 13 FD 1C 00 05 81 +63 08 0D 00 B3 44 15 00 93 95 04 01 13 D5 05 01 +B3 4C AC 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44 +15 00 93 95 04 01 13 D5 05 01 B3 4C A9 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00 93 95 04 01 -13 D5 05 01 B3 4C AC 00 13 FD 1C 00 05 81 63 08 -0D 00 B3 44 15 00 93 95 04 01 13 D5 05 01 B3 4C -A9 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00 -93 95 04 01 13 D5 05 01 B3 CC A3 00 13 FD 1C 00 +13 D5 05 01 B3 CC A3 00 13 FD 1C 00 05 81 63 08 +0D 00 B3 44 15 00 93 95 04 01 13 D5 05 01 B3 CC +A2 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00 +93 95 04 01 13 D5 05 01 B3 CC AF 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00 93 95 04 01 13 D5 -05 01 B3 CC A2 00 13 FD 1C 00 05 81 63 08 0D 00 -B3 44 15 00 93 95 04 01 13 D5 05 01 B3 CC AF 00 -13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00 93 95 -04 01 13 D5 05 01 93 7C 15 00 93 55 15 00 63 88 -CC 00 33 CD 15 00 93 14 0D 01 93 D5 04 01 33 C5 -B9 00 93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00 -93 14 0D 01 93 D5 04 01 33 45 BF 00 93 7C 15 00 -85 81 63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5 -04 01 33 C5 BE 00 93 7C 15 00 85 81 63 88 0C 00 -33 CD 15 00 93 14 0D 01 93 D5 04 01 33 45 BE 00 -93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00 93 14 -0D 01 93 D5 04 01 33 45 B3 00 93 7C 15 00 85 81 -63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5 04 01 -33 C5 B8 00 93 7C 15 00 85 81 63 88 0C 00 33 CD -15 00 93 14 0D 01 93 D5 04 01 33 45 B8 00 93 7C +05 01 93 7C 15 00 93 55 15 00 63 88 CC 00 33 CD +15 00 93 14 0D 01 93 D5 04 01 33 C5 B9 00 93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00 93 14 0D 01 -93 D5 04 01 13 F5 15 00 93 D4 15 00 63 08 D5 00 -B3 CC 14 00 13 9D 0C 01 93 54 0D 01 63 8A 0D 06 -83 AD 0D 00 A9 BD 83 AE 4D 00 83 AD 0D 00 83 C6 -0E 00 63 8C 86 01 E3 8C 0D DC 83 AE 4D 00 83 AD -0D 00 83 C6 0E 00 E3 98 86 FF 03 2B 04 00 03 27 -0B 00 D9 B3 63 02 04 50 A2 87 21 A0 9C 43 E3 8C -07 C6 D8 43 83 40 07 00 E3 9A 80 FF AD B1 48 43 -85 0E 93 96 0E 01 83 04 15 00 93 DE 06 01 13 F9 -14 00 B3 08 2F 01 93 99 08 01 13 DF 09 01 39 B3 -83 2D 4B 00 01 4E 01 43 23 A2 BA 01 23 22 7B 01 -23 A0 EA 00 23 20 5B 01 85 49 81 4C 05 4D 93 FA -79 00 85 0C A2 87 01 47 63 8B 0A 04 05 4B 63 83 -6A 05 89 4B 63 8D 7A 03 8D 40 63 87 1A 02 11 4A -63 81 4A 03 15 4C 63 8B 8A 01 19 49 63 85 2A 01 -1C 40 05 47 A5 C7 9C 43 05 07 AD C3 9C 43 05 07 -B1 CF 9C 43 05 07 B9 CB 9C 43 05 07 A1 CB 9C 43 -05 07 A9 C7 9C 43 05 07 B1 C3 63 01 37 05 9C 43 -05 07 BA 83 85 CF 9C 43 05 07 8D CB 9C 43 13 87 -23 00 8D C7 9C 43 13 87 33 00 8D C3 9C 43 13 87 -43 00 89 CF 9C 43 13 87 53 00 89 CB 9C 43 13 87 -63 00 89 C7 9C 43 13 87 73 00 E1 F3 CE 86 25 C7 -AD CE A5 CF 83 2D 44 00 83 AA 47 00 03 9B 0D 00 -83 9B 2A 00 83 95 2D 00 93 10 0B 01 13 DC 00 01 -13 75 0B F0 13 59 8C 00 B3 63 25 01 23 90 7D 00 -83 98 0A 00 B3 8E 75 41 13 98 08 01 13 5A 08 01 -93 F2 08 F0 93 5F 8A 00 33 E6 F2 01 23 90 CA 00 -63 55 D0 03 3E 8F 9C 43 FD 16 63 0D 0E 00 23 20 -EE 01 7A 8E 51 FF 91 CE 85 C3 3E 8F FD 16 9C 43 -E3 17 0E FE 7A 83 7A 8E F5 B7 22 8F 7D 17 00 40 -E9 BF 99 C3 3E 84 E1 BD 23 20 0E 00 63 8E AC 01 -86 09 63 08 03 00 9A 87 01 4E 01 43 81 4C 3E 84 -7D BD 23 20 00 00 02 90 03 27 03 00 63 01 07 22 -03 24 43 00 E9 72 93 8C 12 00 83 1F 04 00 13 96 -0F 01 93 56 06 01 93 DE 86 00 13 FF FF 0F 13 9E -8F 01 13 93 8E 01 93 55 8E 41 13 5D 1F 00 93 5D -2F 00 93 5A 3F 00 13 5B 4F 00 93 5B 5F 00 93 50 -6F 00 13 5C 7F 00 13 55 83 41 13 D9 96 00 93 D3 -A6 00 93 D7 B6 00 93 D9 C6 00 93 D8 D6 00 13 D8 -E6 00 13 D4 F6 00 33 CA 95 00 93 72 1A 00 13 D6 -14 00 63 88 02 00 B3 44 96 01 93 9F 04 01 13 D6 -0F 01 B3 46 CD 00 13 FF 16 00 13 53 16 00 63 08 -0F 00 B3 4E 93 01 13 9E 0E 01 13 53 0E 01 33 CA -6D 00 93 72 1A 00 13 56 13 00 63 88 02 00 B3 44 -96 01 93 9F 04 01 13 D6 0F 01 B3 C6 CA 00 13 FF -16 00 13 53 16 00 63 08 0F 00 B3 4E 93 01 13 9E -0E 01 13 53 0E 01 33 4A 6B 00 93 72 1A 00 13 56 -13 00 63 88 02 00 B3 44 96 01 93 9F 04 01 13 D6 -0F 01 B3 C6 CB 00 13 FF 16 00 13 53 16 00 63 08 -0F 00 B3 4E 93 01 13 9E 0E 01 13 53 0E 01 33 CA -60 00 93 72 1A 00 13 56 13 00 63 88 02 00 B3 44 -96 01 93 9F 04 01 13 D6 0F 01 93 76 16 00 13 5E -16 00 63 88 86 01 33 4F 9E 01 93 1E 0F 01 13 DE -0E 01 33 43 C5 01 13 7A 13 00 93 5F 1E 00 63 08 -0A 00 B3 C2 9F 01 93 94 02 01 93 DF 04 01 33 46 -F9 01 93 76 16 00 13 DE 1F 00 99 C6 33 4F 9E 01 -93 1E 0F 01 13 DE 0E 01 33 C3 C3 01 13 7A 13 00 -93 5F 1E 00 63 08 0A 00 B3 C2 9F 01 93 94 02 01 -93 DF 04 01 33 C6 F7 01 93 76 16 00 13 DE 1F 00 -99 C6 33 4F 9E 01 93 1E 0F 01 13 DE 0E 01 33 C3 -C9 01 13 7A 13 00 93 5F 1E 00 63 08 0A 00 B3 C2 -9F 01 93 94 02 01 93 DF 04 01 33 C6 F8 01 93 76 +93 D5 04 01 33 45 BF 00 93 7C 15 00 85 81 63 88 +0C 00 33 CD 15 00 93 14 0D 01 93 D5 04 01 33 C5 +BE 00 93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00 +93 14 0D 01 93 D5 04 01 33 45 BE 00 93 7C 15 00 +85 81 63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5 +04 01 33 45 B3 00 93 7C 15 00 85 81 63 88 0C 00 +33 CD 15 00 93 14 0D 01 93 D5 04 01 33 C5 B8 00 +93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00 93 14 +0D 01 93 D5 04 01 33 45 B8 00 93 7C 15 00 85 81 +63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5 04 01 +13 F5 15 00 93 D4 15 00 63 08 D5 00 B3 CC 14 00 +13 9D 0C 01 93 54 0D 01 63 8A 0D 06 83 AD 0D 00 +A9 BD 83 AE 4D 00 83 AD 0D 00 83 C6 0E 00 63 8C +86 01 E3 8C 0D DC 83 AE 4D 00 83 AD 0D 00 83 C6 +0E 00 E3 98 86 FF 03 2B 04 00 03 27 0B 00 D9 B3 +63 02 04 50 A2 87 21 A0 9C 43 E3 8C 07 C6 D8 43 +83 40 07 00 E3 9A 80 FF AD B1 48 43 85 0E 93 96 +0E 01 83 04 15 00 93 DE 06 01 13 F9 14 00 B3 08 +2F 01 93 99 08 01 13 DF 09 01 39 B3 83 2D 4B 00 +01 4E 01 43 23 A2 BA 01 23 22 7B 01 23 A0 EA 00 +23 20 5B 01 85 49 81 4C 05 4D 93 FA 79 00 85 0C +A2 87 01 47 63 8B 0A 04 05 4B 63 83 6A 05 89 4B +63 8D 7A 03 8D 40 63 87 1A 02 11 4A 63 81 4A 03 +15 4C 63 8B 8A 01 19 49 63 85 2A 01 1C 40 05 47 +A5 C7 9C 43 05 07 AD C3 9C 43 05 07 B1 CF 9C 43 +05 07 B9 CB 9C 43 05 07 A1 CB 9C 43 05 07 A9 C7 +9C 43 05 07 B1 C3 63 01 37 05 9C 43 05 07 BA 83 +85 CF 9C 43 05 07 8D CB 9C 43 13 87 23 00 8D C7 +9C 43 13 87 33 00 8D C3 9C 43 13 87 43 00 89 CF +9C 43 13 87 53 00 89 CB 9C 43 13 87 63 00 89 C7 +9C 43 13 87 73 00 E1 F3 CE 86 25 C7 AD CE A5 CF +83 2D 44 00 83 AA 47 00 03 9B 0D 00 83 9B 2A 00 +83 95 2D 00 93 10 0B 01 13 DC 00 01 13 75 0B F0 +13 59 8C 00 B3 63 25 01 23 90 7D 00 83 98 0A 00 +B3 8E 75 41 13 98 08 01 13 5A 08 01 93 F2 08 F0 +93 5F 8A 00 33 E6 F2 01 23 90 CA 00 63 55 D0 03 +3E 8F 9C 43 FD 16 63 0D 0E 00 23 20 EE 01 7A 8E +51 FF 91 CE 85 C3 3E 8F FD 16 9C 43 E3 17 0E FE +7A 83 7A 8E F5 B7 22 8F 7D 17 00 40 E9 BF 99 C3 +3E 84 E1 BD 23 20 0E 00 63 8E AC 01 86 09 63 08 +03 00 9A 87 01 4E 01 43 81 4C 3E 84 7D BD 23 20 +00 00 02 90 03 27 03 00 63 01 07 22 03 24 43 00 +E9 72 93 8C 12 00 83 1F 04 00 13 96 0F 01 93 56 +06 01 93 DE 86 00 13 FF FF 0F 13 9E 8F 01 13 93 +8E 01 93 55 8E 41 13 5D 1F 00 93 5D 2F 00 93 5A +3F 00 13 5B 4F 00 93 5B 5F 00 93 50 6F 00 13 5C +7F 00 13 55 83 41 13 D9 96 00 93 D3 A6 00 93 D7 +B6 00 93 D9 C6 00 93 D8 D6 00 13 D8 E6 00 13 D4 +F6 00 33 CA 95 00 93 72 1A 00 13 D6 14 00 63 88 +02 00 B3 44 96 01 93 9F 04 01 13 D6 0F 01 B3 46 +CD 00 13 FF 16 00 13 53 16 00 63 08 0F 00 B3 4E +93 01 13 9E 0E 01 13 53 0E 01 33 CA 6D 00 93 72 +1A 00 13 56 13 00 63 88 02 00 B3 44 96 01 93 9F +04 01 13 D6 0F 01 B3 C6 CA 00 13 FF 16 00 13 53 +16 00 63 08 0F 00 B3 4E 93 01 13 9E 0E 01 13 53 +0E 01 33 4A 6B 00 93 72 1A 00 13 56 13 00 63 88 +02 00 B3 44 96 01 93 9F 04 01 13 D6 0F 01 B3 C6 +CB 00 13 FF 16 00 13 53 16 00 63 08 0F 00 B3 4E +93 01 13 9E 0E 01 13 53 0E 01 33 CA 60 00 93 72 +1A 00 13 56 13 00 63 88 02 00 B3 44 96 01 93 9F +04 01 13 D6 0F 01 93 76 16 00 13 5E 16 00 63 88 +86 01 33 4F 9E 01 93 1E 0F 01 13 DE 0E 01 33 43 +C5 01 13 7A 13 00 93 5F 1E 00 63 08 0A 00 B3 C2 +9F 01 93 94 02 01 93 DF 04 01 33 46 F9 01 93 76 16 00 13 DE 1F 00 99 C6 33 4F 9E 01 93 1E 0F 01 -13 DE 0E 01 33 43 C8 01 13 7A 13 00 93 5F 1E 00 +13 DE 0E 01 33 C3 C3 01 13 7A 13 00 93 5F 1E 00 63 08 0A 00 B3 C2 9F 01 93 94 02 01 93 DF 04 01 -13 F6 1F 00 93 D4 1F 00 63 08 86 00 B3 C6 94 01 -13 9F 06 01 93 54 0F 01 18 43 E3 16 07 E4 F2 50 -62 54 42 59 B2 59 22 5A 92 5A 02 5B F2 4B 62 4C -D2 4C 42 4D B2 4D 26 85 D2 54 21 61 82 80 05 4A -E3 09 04 DA 81 4C 81 4A 81 4B 93 75 7A 00 85 0B -22 86 01 49 B1 C9 85 4D 63 83 B5 05 89 4F 63 8D -F5 03 0D 47 63 87 E5 02 91 40 63 81 15 02 95 42 -63 8B 55 00 19 4F 63 85 E5 01 10 40 05 49 25 C6 -10 42 05 09 2D C2 10 42 05 09 31 CE 10 42 05 09 -39 CA 10 42 05 09 21 CA 10 42 05 09 29 C6 10 42 -05 09 31 C2 63 01 49 05 10 42 05 09 CA 83 05 CE -10 42 05 09 0D CA 10 42 13 89 23 00 0D C6 10 42 -13 89 33 00 0D C2 10 42 13 89 43 00 09 CE 10 42 -13 89 53 00 09 CA 10 42 13 89 63 00 09 C6 10 42 -13 89 73 00 61 F2 A2 89 D2 8D 32 84 63 07 09 02 -63 80 0D 04 15 CC 4C 40 03 A5 49 00 6A 86 EF E0 -5F C8 63 57 A0 02 A2 87 00 40 FD 1D 63 8F 0C 00 -23 A0 FC 00 BE 8C E3 1D 09 FC 63 80 0D 02 19 CC -A2 87 FD 1D 00 40 E3 95 0C FE BE 8A BE 8C E5 B7 -CE 87 7D 19 83 A9 09 00 D1 BF 01 F8 23 A0 0C 00 -05 44 63 89 8B 00 06 0A 56 84 DD BD 01 4C 2E 8B -81 44 AD B8 56 84 AD B8 83 27 00 00 02 90 01 11 -26 CA 44 4D 22 CC 4A C8 4E C6 06 CE 69 79 23 2C -05 02 23 2E 05 02 AA 89 01 44 05 09 63 8E 04 40 -85 45 4E 85 EF F0 0F F0 83 D7 89 03 13 77 F5 0F -13 56 17 00 B3 C6 A7 00 93 F2 16 00 93 D3 17 00 -63 88 02 00 B3 C0 23 01 13 93 00 01 93 53 03 01 -B3 C5 C3 00 13 F8 15 00 93 58 27 00 13 DF 13 00 -63 08 08 00 33 4E 2F 01 93 1E 0E 01 13 DF 0E 01 -B3 4F 1F 01 93 F6 1F 00 93 52 37 00 93 50 1F 00 -99 C6 B3 C7 20 01 13 96 07 01 93 50 06 01 33 C3 -50 00 93 73 13 00 93 55 47 00 13 DE 10 00 63 88 -03 00 33 48 2E 01 93 18 08 01 13 DE 08 01 B3 4E -BE 00 13 FF 1E 00 93 5F 57 00 93 57 1E 00 63 08 -0F 00 B3 C6 27 01 93 92 06 01 93 D7 02 01 33 C6 -F7 01 93 70 16 00 13 53 67 00 13 D8 17 00 63 88 -00 00 B3 43 28 01 93 95 03 01 13 D8 05 01 B3 48 -68 00 13 FE 18 00 1D 83 93 5F 18 00 63 08 0E 00 -B3 CE 2F 01 13 9F 0E 01 93 5F 0F 01 93 F6 1F 00 -13 D6 1F 00 63 88 E6 00 B3 42 26 01 93 97 02 01 -13 D6 07 01 21 81 B3 40 C5 00 13 73 F5 0F 93 F3 -10 00 93 55 13 00 13 5E 16 00 63 88 03 00 33 48 -2E 01 93 18 08 01 13 DE 08 01 33 47 BE 00 93 7E -17 00 13 5F 23 00 93 52 1E 00 63 88 0E 00 B3 CF -22 01 93 96 0F 01 93 D2 06 01 B3 C7 E2 01 13 F6 -17 00 13 55 33 00 93 D5 12 00 19 C6 B3 C0 25 01 -93 93 00 01 93 D5 03 01 33 C8 A5 00 93 78 18 00 -13 5E 43 00 13 DF 15 00 63 88 08 00 33 47 2F 01 -93 1E 07 01 13 DF 0E 01 B3 4F CF 01 93 F2 1F 00 -93 56 53 00 13 55 1F 00 63 88 02 00 B3 47 25 01 -13 96 07 01 13 55 06 01 B3 40 D5 00 93 F3 10 00 -93 55 63 00 13 5E 15 00 63 88 03 00 33 48 2E 01 -93 18 08 01 13 DE 08 01 33 47 BE 00 93 7E 17 00 -13 53 73 00 93 52 1E 00 63 88 0E 00 33 CF 22 01 -93 1F 0F 01 93 D2 0F 01 B3 C6 62 00 13 F6 16 00 -93 D0 12 00 19 C6 B3 C7 20 01 13 95 07 01 93 50 -05 01 FD 55 23 9C 19 02 4E 85 EF F0 AF CF 83 D3 -89 03 13 78 F5 0F 13 5E 18 00 B3 C5 A3 00 93 F8 -15 00 13 D3 13 00 63 88 08 00 33 47 23 01 93 1E -07 01 13 D3 0E 01 33 4F C3 01 93 7F 1F 00 93 52 -28 00 93 57 13 00 63 88 0F 00 B3 C6 27 01 13 96 -06 01 93 57 06 01 B3 C0 57 00 93 F3 10 00 93 55 -38 00 13 D7 17 00 63 88 03 00 B3 48 27 01 13 9E -08 01 13 57 0E 01 B3 4E B7 00 13 F3 1E 00 13 5F -48 00 93 57 17 00 63 08 03 00 B3 CF 27 01 93 92 -0F 01 93 D7 02 01 B3 C6 E7 01 93 F0 16 00 13 56 -58 00 93 D8 17 00 63 88 00 00 B3 C3 28 01 93 95 -03 01 93 D8 05 01 33 CE C8 00 13 77 1E 00 93 5E -68 00 93 DF 18 00 19 C7 33 C3 2F 01 13 1F 03 01 -93 5F 0F 01 B3 C2 DF 01 93 F6 12 00 13 58 78 00 -13 D6 1F 00 99 C6 B3 47 26 01 93 90 07 01 13 D6 -00 01 93 73 16 00 13 5E 16 00 63 88 03 01 B3 45 -2E 01 93 98 05 01 13 DE 08 01 21 81 33 47 C5 01 -93 7E F5 0F 13 73 17 00 13 DF 1E 00 13 58 1E 00 -63 08 03 00 B3 4F 28 01 93 92 0F 01 13 D8 02 01 -B3 46 E8 01 93 F0 16 00 13 D6 2E 00 93 55 18 00 -63 88 00 00 B3 C7 25 01 93 93 07 01 93 D5 03 01 -B3 C8 C5 00 13 FE 18 00 13 D5 3E 00 13 DF 15 00 -63 08 0E 00 33 47 2F 01 13 13 07 01 13 5F 03 01 -B3 4F AF 00 93 F2 1F 00 13 D8 4E 00 13 56 1F 00 -63 88 02 00 B3 46 26 01 93 90 06 01 13 D6 00 01 -B3 47 06 01 93 F3 17 00 93 D5 5E 00 13 55 16 00 -63 88 03 00 B3 48 25 01 13 9E 08 01 13 55 0E 01 -33 47 B5 00 13 73 17 00 13 DF 6E 00 13 58 15 00 -63 08 03 00 B3 4F 28 01 93 92 0F 01 13 D8 02 01 -B3 46 E8 01 93 F0 16 00 93 DE 7E 00 93 53 18 00 -63 88 00 00 33 C6 23 01 93 17 06 01 93 D3 07 01 -B3 C5 D3 01 93 F8 15 00 13 D7 13 00 63 88 08 00 -33 4E 27 01 13 15 0E 01 13 57 05 01 23 9C E9 02 -01 CC 05 04 E3 96 84 BE F2 40 62 44 D2 44 42 49 -B2 49 01 45 05 61 82 80 23 9D E9 02 05 44 E3 85 -84 FE 05 44 F1 B6 95 47 63 E5 A7 04 B7 02 04 F0 -0A 05 13 83 02 09 B3 03 65 00 83 A5 03 00 82 85 -37 06 04 F0 03 25 86 5C 82 80 B7 08 04 F0 03 A5 -08 5D 82 80 37 08 04 F0 03 25 C8 5C 82 80 37 07 -04 F0 03 25 07 0F 82 80 B7 06 04 F0 03 A5 C6 0E -82 80 01 45 82 80 B3 46 B5 00 93 F2 16 00 13 57 -15 00 13 D6 15 00 63 8B 02 00 69 73 93 03 13 00 -B3 47 76 00 93 95 07 01 13 D6 05 01 33 48 E6 00 -93 78 18 00 13 5E 25 00 93 52 16 00 63 8B 08 00 -E9 7E 13 8F 1E 00 B3 CF E2 01 93 96 0F 01 93 D2 -06 01 33 C7 C2 01 13 73 17 00 93 53 35 00 93 D8 -12 00 63 0B 03 00 E9 75 13 86 15 00 B3 C7 C8 00 -13 98 07 01 93 58 08 01 33 CE 78 00 93 7E 1E 00 -13 5F 45 00 13 D3 18 00 63 8B 0E 00 E9 7F 93 86 -1F 00 B3 42 D3 00 13 97 02 01 13 53 07 01 B3 43 -E3 01 93 F5 13 00 13 56 55 00 93 5E 13 00 91 C9 -69 78 93 08 18 00 B3 C7 1E 01 13 9E 07 01 93 5E -0E 01 33 CF CE 00 93 7F 1F 00 93 56 65 00 93 D5 -1E 00 63 8B 0F 00 E9 72 13 87 12 00 33 C3 E5 00 -93 13 03 01 93 D5 03 01 33 C6 D5 00 13 78 16 00 -93 58 75 00 13 DF 15 00 63 0B 08 00 E9 77 13 8E -17 00 33 45 CF 01 93 1E 05 01 13 DF 0E 01 93 7F -1F 00 13 55 1F 00 63 8B 1F 01 E9 76 93 82 16 00 -33 47 55 00 13 13 07 01 13 55 03 01 82 80 B3 C6 -A5 00 13 77 F5 0F 93 F2 16 00 AA 87 13 56 17 00 -13 D8 15 00 63 8B 02 00 E9 75 13 83 15 00 B3 43 -68 00 13 95 03 01 13 58 05 01 B3 48 C8 00 13 FE -18 00 93 5E 27 00 93 55 18 00 63 0B 0E 00 69 7F -93 0F 1F 00 B3 C6 F5 01 93 92 06 01 93 D5 02 01 -33 C6 D5 01 13 73 16 00 93 53 37 00 93 DE 15 00 -63 0B 03 00 69 78 93 08 18 00 33 C5 1E 01 13 1E -05 01 93 5E 0E 01 33 CF 7E 00 93 7F 1F 00 93 56 -47 00 93 D3 1E 00 63 8B 0F 00 E9 72 93 85 12 00 -33 C6 B3 00 13 13 06 01 93 53 03 01 33 C8 D3 00 -93 78 18 00 13 5E 57 00 93 D2 13 00 63 8B 08 00 -E9 7E 13 8F 1E 00 33 C5 E2 01 93 1F 05 01 93 D2 -0F 01 B3 C6 C2 01 93 F5 16 00 13 53 67 00 13 DE -12 00 91 C9 69 76 93 03 16 00 33 48 7E 00 93 18 -08 01 13 DE 08 01 B3 4E 6E 00 13 FF 1E 00 1D 83 -93 55 1E 00 63 0B 0F 00 E9 7F 93 82 1F 00 33 C5 -55 00 93 16 05 01 93 D5 06 01 13 F3 15 00 13 DE -15 00 63 0B E3 00 69 76 93 03 16 00 33 48 7E 00 -93 18 08 01 13 DE 08 01 93 DE 87 00 33 CF CE 01 -93 7F 1F 00 13 D7 87 00 13 53 1E 00 A5 83 63 8B -0F 00 E9 72 93 86 12 00 33 45 D3 00 93 15 05 01 -13 D3 05 01 33 C6 67 00 93 73 16 00 13 58 27 00 -93 5F 13 00 63 8B 03 00 E9 78 13 8E 18 00 B3 CE -CF 01 13 9F 0E 01 93 5F 0F 01 B3 C7 0F 01 93 F2 -17 00 93 56 37 00 93 D3 1F 00 63 8B 02 00 E9 75 -13 83 15 00 33 C5 63 00 13 16 05 01 93 53 06 01 -33 C8 D3 00 93 78 18 00 13 5E 47 00 93 D2 13 00 -63 8B 08 00 E9 7E 13 8F 1E 00 B3 CF E2 01 93 97 -0F 01 93 D2 07 01 B3 C6 C2 01 93 F5 16 00 13 53 -57 00 93 D8 12 00 91 C9 69 76 93 03 16 00 33 C5 -78 00 13 18 05 01 93 58 08 01 33 CE 68 00 93 7E -1E 00 13 5F 67 00 93 D5 18 00 63 8B 0E 00 E9 7F -93 87 1F 00 B3 C2 F5 00 93 96 02 01 93 D5 06 01 -33 C3 E5 01 13 76 13 00 1D 83 13 DE 15 00 11 CA -E9 73 13 88 13 00 33 45 0E 01 93 18 05 01 13 DE -08 01 93 7E 1E 00 13 55 1E 00 63 8B EE 00 69 7F -93 0F 1F 00 B3 47 F5 01 93 92 07 01 13 D5 02 01 -82 80 33 C6 A5 00 93 76 F5 0F 13 17 05 01 93 72 -16 00 AA 87 13 53 07 01 13 D8 16 00 13 DE 15 00 -63 8B 02 00 69 75 93 03 15 00 B3 45 7E 00 93 98 -05 01 13 DE 08 01 B3 4E 0E 01 13 FF 1E 00 93 DF -26 00 13 55 1E 00 63 0B 0F 00 69 76 93 02 16 00 -33 47 55 00 13 18 07 01 13 55 08 01 B3 43 F5 01 -93 F8 13 00 93 D5 36 00 93 52 15 00 63 8B 08 00 -69 7E 93 0E 1E 00 33 CF D2 01 93 1F 0F 01 93 D2 -0F 01 33 C6 B2 00 13 77 16 00 13 D8 46 00 13 DE -12 00 11 CB E9 73 93 88 13 00 33 45 1E 01 93 15 -05 01 13 DE 05 01 B3 4E 0E 01 13 FF 1E 00 93 DF -56 00 93 53 1E 00 63 0B 0F 00 E9 72 13 86 12 00 -33 C7 C3 00 13 18 07 01 93 53 08 01 B3 C8 F3 01 -93 F5 18 00 13 DE 66 00 93 D2 13 00 91 C9 E9 7E -13 8F 1E 00 33 C5 E2 01 93 1F 05 01 93 D2 0F 01 -33 C6 C2 01 13 77 16 00 9D 82 13 DE 12 00 11 CB -69 78 93 03 18 00 B3 48 7E 00 93 95 08 01 13 DE -05 01 93 7E 1E 00 13 58 1E 00 63 94 DE 38 13 56 -83 00 33 47 C8 00 93 73 17 00 93 56 83 00 13 5F -18 00 13 53 93 00 63 8B 03 00 E9 78 93 85 18 00 -33 4E BF 00 93 1E 0E 01 13 DF 0E 01 B3 4F 6F 00 -93 F2 1F 00 13 D8 26 00 13 53 1F 00 63 8B 02 00 -69 76 13 07 16 00 33 45 E3 00 93 13 05 01 13 D3 -03 01 B3 48 03 01 93 F5 18 00 13 DE 36 00 13 58 -13 00 91 C9 E9 7E 13 8F 1E 00 B3 4F E8 01 93 92 -0F 01 13 D8 02 01 33 46 C8 01 93 73 16 00 13 D7 -46 00 13 5E 18 00 63 8B 03 00 69 73 93 08 13 00 -33 45 1E 01 93 15 05 01 13 DE 05 01 B3 4E EE 00 -13 FF 1E 00 93 DF 56 00 13 53 1E 00 63 0B 0F 00 -E9 72 13 88 12 00 33 46 03 01 93 13 06 01 13 D3 -03 01 33 47 F3 01 93 78 17 00 93 D5 66 00 93 5F -13 00 63 8B 08 00 69 7E 93 0E 1E 00 33 C5 DF 01 -13 1F 05 01 93 5F 0F 01 B3 C2 BF 00 13 F8 12 00 -9D 82 93 D8 1F 00 63 0B 08 00 69 76 93 03 16 00 -33 C3 78 00 13 17 03 01 93 58 07 01 93 F5 18 00 -93 DF 18 00 63 8B D5 00 69 7E 93 0E 1E 00 33 C5 -DF 01 13 1F 05 01 93 5F 0F 01 93 D2 07 01 33 C8 -5F 00 93 F3 F2 0F 93 76 18 00 C1 83 13 D6 13 00 -13 DE 1F 00 91 CA 69 73 13 07 13 00 B3 48 EE 00 -93 95 08 01 13 DE 05 01 B3 4E CE 00 13 FF 1E 00 -93 DF 23 00 13 53 1E 00 63 0B 0F 00 E9 72 13 88 -12 00 33 45 03 01 93 16 05 01 13 D3 06 01 33 46 -F3 01 13 77 16 00 93 D8 33 00 93 5F 13 00 11 CB -E9 75 13 8E 15 00 B3 CE CF 01 13 9F 0E 01 93 5F -0F 01 B3 C2 1F 01 13 F8 12 00 93 D6 43 00 93 D8 -1F 00 63 0B 08 00 69 73 13 06 13 00 33 C5 C8 00 -13 17 05 01 93 58 07 01 B3 C5 D8 00 13 FE 15 00 -93 DE 53 00 13 D3 18 00 63 0B 0E 00 69 7F 93 0F -1F 00 B3 42 F3 01 13 98 02 01 13 53 08 01 B3 46 -D3 01 13 F6 16 00 13 D7 63 00 93 5E 13 00 11 CA -E9 78 93 85 18 00 33 C5 BE 00 13 1E 05 01 93 5E -0E 01 33 CF EE 00 93 7F 1F 00 93 D3 73 00 13 D6 -1E 00 63 8B 0F 00 E9 72 13 88 12 00 33 43 06 01 -93 16 03 01 13 D6 06 01 13 77 16 00 93 5E 16 00 -63 17 77 12 13 DF 87 00 B3 4F DF 01 93 F3 1F 00 -93 D2 87 00 13 D7 1E 00 A5 83 63 8B 03 00 69 78 -13 03 18 00 B3 46 67 00 13 96 06 01 13 57 06 01 -B3 48 F7 00 93 F5 18 00 13 DE 22 00 93 53 17 00 -91 C9 E9 7E 13 8F 1E 00 33 C5 E3 01 93 1F 05 01 -93 D3 0F 01 B3 47 7E 00 13 F8 17 00 13 D3 32 00 -93 D5 13 00 63 0B 08 00 E9 76 13 86 16 00 33 C7 -C5 00 93 18 07 01 93 D5 08 01 33 4E B3 00 93 7E -1E 00 13 DF 42 00 13 D8 15 00 63 8B 0E 00 E9 7F -93 83 1F 00 33 45 78 00 93 17 05 01 13 D8 07 01 -33 43 0F 01 13 76 13 00 93 D6 52 00 93 5E 18 00 -11 CA 69 77 93 08 17 00 B3 C5 1E 01 13 9E 05 01 -93 5E 0E 01 33 CF D6 01 93 7F 1F 00 93 D3 62 00 -13 D6 1E 00 63 8B 0F 00 E9 77 13 88 17 00 33 45 -06 01 13 13 05 01 13 56 03 01 B3 C6 C3 00 93 F8 -16 00 93 D2 72 00 13 5F 16 00 63 8B 08 00 69 77 -93 05 17 00 33 4E BF 00 93 1E 0E 01 13 DF 0E 01 -93 7F 1F 00 13 55 1F 00 63 8A 5F 00 E9 73 93 87 -13 00 33 48 F5 00 13 15 08 01 41 81 82 80 E9 78 -93 85 18 00 33 C5 BE 00 13 1E 05 01 93 5E 0E 01 -D1 B5 69 7F 93 0F 1F 00 33 45 F8 01 93 12 05 01 -13 D8 02 01 AD B1 B3 C6 A5 00 13 77 F5 0F 93 17 -05 01 93 F2 16 00 13 D3 07 01 13 56 17 00 93 D8 -15 00 63 8B 02 00 E9 75 93 83 15 00 33 C5 78 00 -13 18 05 01 93 58 08 01 33 CE C8 00 93 7E 1E 00 -13 5F 27 00 93 D5 18 00 63 8B 0E 00 E9 7F 93 86 -1F 00 B3 C2 D5 00 93 97 02 01 93 D5 07 01 33 C6 -E5 01 93 73 16 00 13 58 37 00 13 DF 15 00 63 8B -03 00 E9 78 13 8E 18 00 33 45 CF 01 93 1E 05 01 -13 DF 0E 01 B3 4F 0F 01 93 F2 1F 00 93 56 47 00 -13 58 1F 00 63 8B 02 00 E9 77 93 85 17 00 33 46 -B8 00 93 13 06 01 13 D8 03 01 B3 48 D8 00 13 FE -18 00 93 5E 57 00 93 57 18 00 63 0B 0E 00 69 7F -93 0F 1F 00 33 C5 F7 01 93 12 05 01 93 D7 02 01 -B3 C6 D7 01 93 F5 16 00 93 53 67 00 93 DE 17 00 -91 C9 69 76 13 08 16 00 B3 C8 0E 01 13 9E 08 01 -93 5E 0E 01 33 CF 7E 00 93 7F 1F 00 1D 83 93 D5 -1E 00 63 8B 0F 00 E9 72 93 87 12 00 33 C5 F5 00 -93 16 05 01 93 D5 06 01 93 F3 15 00 93 DE 15 00 -63 8B E3 00 69 76 13 08 16 00 B3 C8 0E 01 13 9E -08 01 93 5E 0E 01 13 5F 83 00 B3 4F DF 01 93 F2 -1F 00 13 57 83 00 93 D3 1E 00 13 53 93 00 63 8B -02 00 E9 77 93 86 17 00 33 C5 D3 00 93 15 05 01 -93 D3 05 01 33 46 73 00 13 78 16 00 93 58 27 00 -93 D2 13 00 63 0B 08 00 69 7E 93 0E 1E 00 33 CF -D2 01 93 1F 0F 01 93 D2 0F 01 33 C3 12 01 93 77 -13 00 93 56 37 00 13 D8 12 00 91 CB E9 75 93 83 -15 00 33 45 78 00 13 16 05 01 13 58 06 01 B3 48 -D8 00 13 FE 18 00 93 5E 47 00 93 55 18 00 63 0B -0E 00 69 7F 93 0F 1F 00 B3 C2 F5 01 13 93 02 01 -93 55 03 01 B3 C7 D5 01 93 F3 17 00 93 56 57 00 -13 DE 15 00 63 8B 03 00 69 76 13 08 16 00 33 45 -0E 01 93 18 05 01 13 DE 08 01 B3 4E DE 00 13 FF -1E 00 93 5F 67 00 93 53 1E 00 63 0B 0F 00 E9 72 -13 83 12 00 B3 C5 63 00 93 97 05 01 93 D3 07 01 -B3 C6 F3 01 13 F6 16 00 1D 83 93 DE 13 00 11 CA +33 C6 F7 01 93 76 16 00 13 DE 1F 00 99 C6 33 4F +9E 01 93 1E 0F 01 13 DE 0E 01 33 C3 C9 01 13 7A +13 00 93 5F 1E 00 63 08 0A 00 B3 C2 9F 01 93 94 +02 01 93 DF 04 01 33 C6 F8 01 93 76 16 00 13 DE +1F 00 99 C6 33 4F 9E 01 93 1E 0F 01 13 DE 0E 01 +33 43 C8 01 13 7A 13 00 93 5F 1E 00 63 08 0A 00 +B3 C2 9F 01 93 94 02 01 93 DF 04 01 13 F6 1F 00 +93 D4 1F 00 63 08 86 00 B3 C6 94 01 13 9F 06 01 +93 54 0F 01 18 43 E3 16 07 E4 F2 50 62 54 42 59 +B2 59 22 5A 92 5A 02 5B F2 4B 62 4C D2 4C 42 4D +B2 4D 26 85 D2 54 21 61 82 80 05 4A E3 09 04 DA +81 4C 81 4A 81 4B 93 75 7A 00 85 0B 22 86 01 49 +B1 C9 85 4D 63 83 B5 05 89 4F 63 8D F5 03 0D 47 +63 87 E5 02 91 40 63 81 15 02 95 42 63 8B 55 00 +19 4F 63 85 E5 01 10 40 05 49 25 C6 10 42 05 09 +2D C2 10 42 05 09 31 CE 10 42 05 09 39 CA 10 42 +05 09 21 CA 10 42 05 09 29 C6 10 42 05 09 31 C2 +63 01 49 05 10 42 05 09 CA 83 05 CE 10 42 05 09 +0D CA 10 42 13 89 23 00 0D C6 10 42 13 89 33 00 +0D C2 10 42 13 89 43 00 09 CE 10 42 13 89 53 00 +09 CA 10 42 13 89 63 00 09 C6 10 42 13 89 73 00 +61 F2 A2 89 D2 8D 32 84 63 07 09 02 63 80 0D 04 +15 CC 4C 40 03 A5 49 00 6A 86 EF E0 5F C8 63 57 +A0 02 A2 87 00 40 FD 1D 63 8F 0C 00 23 A0 FC 00 +BE 8C E3 1D 09 FC 63 80 0D 02 19 CC A2 87 FD 1D +00 40 E3 95 0C FE BE 8A BE 8C E5 B7 CE 87 7D 19 +83 A9 09 00 D1 BF 01 F8 23 A0 0C 00 05 44 63 89 +8B 00 06 0A 56 84 DD BD 01 4C 2E 8B 81 44 AD B8 +56 84 AD B8 83 27 00 00 02 90 01 11 26 CA 44 4D +22 CC 4A C8 4E C6 06 CE 69 79 23 2C 05 02 23 2E +05 02 AA 89 01 44 05 09 63 8E 04 40 85 45 4E 85 +EF F0 0F F0 83 D7 89 03 13 77 F5 0F 13 56 17 00 +B3 C6 A7 00 93 F2 16 00 93 D3 17 00 63 88 02 00 +B3 C0 23 01 13 93 00 01 93 53 03 01 B3 C5 C3 00 +13 F8 15 00 93 58 27 00 13 DF 13 00 63 08 08 00 +33 4E 2F 01 93 1E 0E 01 13 DF 0E 01 B3 4F 1F 01 +93 F6 1F 00 93 52 37 00 93 50 1F 00 99 C6 B3 C7 +20 01 13 96 07 01 93 50 06 01 33 C3 50 00 93 73 +13 00 93 55 47 00 13 DE 10 00 63 88 03 00 33 48 +2E 01 93 18 08 01 13 DE 08 01 B3 4E BE 00 13 FF +1E 00 93 5F 57 00 93 57 1E 00 63 08 0F 00 B3 C6 +27 01 93 92 06 01 93 D7 02 01 33 C6 F7 01 93 70 +16 00 13 53 67 00 13 D8 17 00 63 88 00 00 B3 43 +28 01 93 95 03 01 13 D8 05 01 B3 48 68 00 13 FE +18 00 1D 83 93 5F 18 00 63 08 0E 00 B3 CE 2F 01 +13 9F 0E 01 93 5F 0F 01 93 F6 1F 00 13 D6 1F 00 +63 88 E6 00 B3 42 26 01 93 97 02 01 13 D6 07 01 +21 81 B3 40 C5 00 13 73 F5 0F 93 F3 10 00 93 55 +13 00 13 5E 16 00 63 88 03 00 33 48 2E 01 93 18 +08 01 13 DE 08 01 33 47 BE 00 93 7E 17 00 13 5F +23 00 93 52 1E 00 63 88 0E 00 B3 CF 22 01 93 96 +0F 01 93 D2 06 01 B3 C7 E2 01 13 F6 17 00 13 55 +33 00 93 D5 12 00 19 C6 B3 C0 25 01 93 93 00 01 +93 D5 03 01 33 C8 A5 00 93 78 18 00 13 5E 43 00 +13 DF 15 00 63 88 08 00 33 47 2F 01 93 1E 07 01 +13 DF 0E 01 B3 4F CF 01 93 F2 1F 00 93 56 53 00 +13 55 1F 00 63 88 02 00 B3 47 25 01 13 96 07 01 +13 55 06 01 B3 40 D5 00 93 F3 10 00 93 55 63 00 +13 5E 15 00 63 88 03 00 33 48 2E 01 93 18 08 01 +13 DE 08 01 33 47 BE 00 93 7E 17 00 13 53 73 00 +93 52 1E 00 63 88 0E 00 33 CF 22 01 93 1F 0F 01 +93 D2 0F 01 B3 C6 62 00 13 F6 16 00 93 D0 12 00 +19 C6 B3 C7 20 01 13 95 07 01 93 50 05 01 FD 55 +23 9C 19 02 4E 85 EF F0 AF CF 83 D3 89 03 13 78 +F5 0F 13 5E 18 00 B3 C5 A3 00 93 F8 15 00 13 D3 +13 00 63 88 08 00 33 47 23 01 93 1E 07 01 13 D3 +0E 01 33 4F C3 01 93 7F 1F 00 93 52 28 00 93 57 +13 00 63 88 0F 00 B3 C6 27 01 13 96 06 01 93 57 +06 01 B3 C0 57 00 93 F3 10 00 93 55 38 00 13 D7 +17 00 63 88 03 00 B3 48 27 01 13 9E 08 01 13 57 +0E 01 B3 4E B7 00 13 F3 1E 00 13 5F 48 00 93 57 +17 00 63 08 03 00 B3 CF 27 01 93 92 0F 01 93 D7 +02 01 B3 C6 E7 01 93 F0 16 00 13 56 58 00 93 D8 +17 00 63 88 00 00 B3 C3 28 01 93 95 03 01 93 D8 +05 01 33 CE C8 00 13 77 1E 00 93 5E 68 00 93 DF +18 00 19 C7 33 C3 2F 01 13 1F 03 01 93 5F 0F 01 +B3 C2 DF 01 93 F6 12 00 13 58 78 00 13 D6 1F 00 +99 C6 B3 47 26 01 93 90 07 01 13 D6 00 01 93 73 +16 00 13 5E 16 00 63 88 03 01 B3 45 2E 01 93 98 +05 01 13 DE 08 01 21 81 33 47 C5 01 93 7E F5 0F +13 73 17 00 13 DF 1E 00 13 58 1E 00 63 08 03 00 +B3 4F 28 01 93 92 0F 01 13 D8 02 01 B3 46 E8 01 +93 F0 16 00 13 D6 2E 00 93 55 18 00 63 88 00 00 +B3 C7 25 01 93 93 07 01 93 D5 03 01 B3 C8 C5 00 +13 FE 18 00 13 D5 3E 00 13 DF 15 00 63 08 0E 00 +33 47 2F 01 13 13 07 01 13 5F 03 01 B3 4F AF 00 +93 F2 1F 00 13 D8 4E 00 13 56 1F 00 63 88 02 00 +B3 46 26 01 93 90 06 01 13 D6 00 01 B3 47 06 01 +93 F3 17 00 93 D5 5E 00 13 55 16 00 63 88 03 00 +B3 48 25 01 13 9E 08 01 13 55 0E 01 33 47 B5 00 +13 73 17 00 13 DF 6E 00 13 58 15 00 63 08 03 00 +B3 4F 28 01 93 92 0F 01 13 D8 02 01 B3 46 E8 01 +93 F0 16 00 93 DE 7E 00 93 53 18 00 63 88 00 00 +33 C6 23 01 93 17 06 01 93 D3 07 01 B3 C5 D3 01 +93 F8 15 00 13 D7 13 00 63 88 08 00 33 4E 27 01 +13 15 0E 01 13 57 05 01 23 9C E9 02 01 CC 05 04 +E3 96 84 BE F2 40 62 44 D2 44 42 49 B2 49 01 45 +05 61 82 80 23 9D E9 02 05 44 E3 85 84 FE 05 44 +F1 B6 95 47 63 E5 A7 04 B7 02 04 F0 0A 05 13 83 +02 09 B3 03 65 00 83 A5 03 00 82 85 37 06 04 F0 +03 25 86 5C 82 80 B7 08 04 F0 03 A5 08 5D 82 80 +37 08 04 F0 03 25 C8 5C 82 80 37 07 04 F0 03 25 +07 0F 82 80 B7 06 04 F0 03 A5 C6 0E 82 80 01 45 +82 80 B3 46 B5 00 93 F2 16 00 13 57 15 00 13 D6 +15 00 63 8B 02 00 69 73 93 03 13 00 B3 47 76 00 +93 95 07 01 13 D6 05 01 33 48 E6 00 93 78 18 00 +13 5E 25 00 93 52 16 00 63 8B 08 00 E9 7E 13 8F +1E 00 B3 CF E2 01 93 96 0F 01 93 D2 06 01 33 C7 +C2 01 13 73 17 00 93 53 35 00 93 D8 12 00 63 0B +03 00 E9 75 13 86 15 00 B3 C7 C8 00 13 98 07 01 +93 58 08 01 33 CE 78 00 93 7E 1E 00 13 5F 45 00 +13 D3 18 00 63 8B 0E 00 E9 7F 93 86 1F 00 B3 42 +D3 00 13 97 02 01 13 53 07 01 B3 43 E3 01 93 F5 +13 00 13 56 55 00 93 5E 13 00 91 C9 69 78 93 08 +18 00 B3 C7 1E 01 13 9E 07 01 93 5E 0E 01 33 CF +CE 00 93 7F 1F 00 93 56 65 00 93 D5 1E 00 63 8B +0F 00 E9 72 13 87 12 00 33 C3 E5 00 93 13 03 01 +93 D5 03 01 33 C6 D5 00 13 78 16 00 93 58 75 00 +13 DF 15 00 63 0B 08 00 E9 77 13 8E 17 00 33 45 +CF 01 93 1E 05 01 13 DF 0E 01 93 7F 1F 00 13 55 +1F 00 63 8B 1F 01 E9 76 93 82 16 00 33 47 55 00 +13 13 07 01 13 55 03 01 82 80 B3 C6 A5 00 13 77 +F5 0F 93 F2 16 00 AA 87 13 56 17 00 13 D8 15 00 +63 8B 02 00 E9 75 13 83 15 00 B3 43 68 00 13 95 +03 01 13 58 05 01 B3 48 C8 00 13 FE 18 00 93 5E +27 00 93 55 18 00 63 0B 0E 00 69 7F 93 0F 1F 00 +B3 C6 F5 01 93 92 06 01 93 D5 02 01 33 C6 D5 01 +13 73 16 00 93 53 37 00 93 DE 15 00 63 0B 03 00 69 78 93 08 18 00 33 C5 1E 01 13 1E 05 01 93 5E -0E 01 13 FF 1E 00 13 D5 1E 00 63 0B EF 00 E9 7F -93 82 1F 00 33 43 55 00 93 15 03 01 13 D5 05 01 -82 80 01 45 82 80 73 27 00 B0 B7 07 04 F0 23 A2 -E7 5C 82 80 73 27 00 B0 B7 07 04 F0 23 A0 E7 5C -82 80 B7 07 04 F0 B7 02 04 F0 03 A5 07 5C 03 A3 -42 5C 33 05 65 40 82 80 93 07 80 3E 33 55 F5 02 -82 80 85 47 23 00 F5 00 82 80 23 00 05 00 82 80 -AA 82 2A 96 63 56 C5 00 23 00 B5 00 05 05 DD BF -16 85 82 80 82 80 75 71 06 C7 B7 07 04 F0 B7 00 -04 F0 B7 02 04 F0 03 A6 07 5D 83 A5 C0 5C 03 A3 -02 0F 37 07 04 F0 83 26 C7 0E B7 03 04 F0 22 C5 -26 C3 13 14 06 01 93 14 03 01 83 A8 83 5C 13 56 -04 41 13 D8 04 41 05 45 4A C1 CE DE D2 DC D6 DA -DA D8 DE D6 E2 D4 E6 D2 EA D0 EE CE 23 07 A1 04 -23 16 C1 00 23 17 B1 00 23 18 01 01 36 D4 63 93 -08 00 9D 48 32 49 46 D6 E3 1B 09 3C E3 0F 08 42 -B2 59 B7 0C 04 F0 13 8D 4C 5D 13 F7 29 00 93 FD -19 00 33 3E E0 00 6A CA 23 16 01 04 93 FE 49 00 -6E 8F B3 85 CD 01 63 88 0E 00 93 8F 15 00 93 90 -0F 01 93 D5 00 01 93 02 00 7D 33 D5 B2 02 01 44 -2A D2 E3 10 0F 3E E3 10 07 3C E3 95 0E 3A 63 10 -0F 1C 63 17 07 1C 13 F5 49 00 19 C5 02 56 83 15 -C1 00 12 55 EF C0 6F FC 22 5A 63 0F 0A 6C 37 0C -04 F0 B7 0C 04 F0 13 0D C1 00 F3 23 00 B0 23 22 -7C 5C 6A 85 EF E0 BF F6 73 2D 00 B0 03 55 C1 00 -81 45 23 A0 AC 5D EF F0 8F D2 AA 85 03 55 E1 00 -03 2C 4C 5C EF F0 AF D1 AA 85 03 55 01 01 B3 0A -8D 41 EF F0 CF D0 92 54 AA 85 93 9C 04 01 13 D5 -0C 01 EF F0 CF CF 21 68 93 06 58 B0 AA 89 E3 06 -D5 3A 63 E6 A6 16 89 6D 93 82 2D 8F E3 01 55 3C -15 6D 93 00 FD EA E3 12 15 3E B7 0C 04 F0 13 85 -0C 15 EF 90 4F 86 93 0B 8D 60 39 68 9D 66 13 0A -48 5A 5E 8C 13 8B 96 A7 B7 0C 04 F0 83 A8 8C 0E -01 49 01 4D E3 87 08 3A B7 0D 04 F0 89 A8 03 D6 -A4 FF 63 03 46 0F 37 07 04 F0 D2 86 EA 85 13 05 -47 24 EF 90 4F 82 83 D7 C4 FF 13 8E 17 00 93 1E -0E 01 93 DF 0E 01 23 9E F4 FF 05 0D 83 A2 8C 0E -7E 99 93 15 0D 01 13 1F 09 01 13 13 09 01 13 DD -05 01 13 54 0F 01 13 59 03 41 63 74 5D 10 13 14 -4D 00 33 06 A4 01 13 15 26 00 98 08 B3 04 A7 00 -83 A7 C4 FD 23 9E 04 FE 13 FE 17 00 63 02 0E 02 -03 D6 64 FF 63 0E 66 01 DA 86 EA 85 13 85 0D 1E -EF 80 7F FB 83 DE C4 FF 93 8F 1E 00 23 9E F4 FF -B3 05 A4 01 93 92 25 00 13 0F 01 05 B3 04 5F 00 -83 A8 C4 FD 13 F3 28 00 63 06 03 02 03 D6 84 FF -63 02 86 03 B7 03 04 F0 DE 86 EA 85 13 85 03 21 -EF 80 7F F7 03 D8 C4 FF 83 A8 C4 FD 93 06 18 00 -23 9E D4 FE 6A 94 13 16 24 00 88 08 93 F0 48 00 -B3 04 C5 00 E3 9D 00 F0 83 DF C4 FF 3D BF E2 45 -EF 80 3F FF B2 59 2A D8 13 F7 29 00 E3 0D 07 E2 -83 17 E1 00 03 16 C1 00 F2 45 12 55 13 99 07 01 -54 18 33 66 C9 00 EF B0 8F DB B2 59 29 BD 25 6A -13 07 2A A0 E3 09 E5 20 BD 6B 13 84 5B 9F E3 1E -85 26 B7 05 04 F0 89 64 13 85 45 18 93 8B 74 FD -39 6B EF 80 5F EF 13 0A AA E3 5E 8C 13 0B 4B 71 -61 BD 92 54 B7 0B 04 F0 A6 85 13 85 4B 27 EF 80 -9F ED 37 0C 04 F0 D6 85 13 05 CC 28 13 0B 80 3E -EF 80 7F EC B3 DD 6A 03 B7 03 04 F0 13 85 43 2A -EE 85 EF 80 5F EB 13 08 70 3E 63 6F 58 45 B7 0A -04 F0 05 04 13 85 CA 2B 13 1D 04 01 EF 80 BF E9 -13 59 0D 41 03 AF 8C 0E 22 53 B7 05 04 F0 13 85 -85 31 B3 05 E3 03 37 0A 04 F0 B7 0B 04 F0 37 0C -04 F0 37 0B 04 F0 B7 0D 04 F0 EF 80 DF E6 93 05 -0A 33 13 85 CB 33 EF 80 1F E6 93 05 4C 35 13 05 -0B 37 EF 80 5F E5 B7 03 04 F0 93 85 8D 38 13 85 -03 39 EF 80 5F E4 CE 85 B7 09 04 F0 13 85 89 3A -EF 80 7F E3 32 5A 13 78 1A 00 63 05 08 0E 83 A8 -8C 0E 63 81 08 0E 01 4D B7 04 04 F0 93 16 4D 00 -B3 80 A6 01 13 96 20 00 98 08 B3 07 C7 00 03 D6 -67 FF EA 85 13 85 44 3C EF 80 FF DF 93 0E 1D 00 -93 9F 0E 01 93 DA 0F 01 93 92 4A 00 03 AE 8C 0E -33 84 52 01 13 1D 24 00 13 0F 01 05 13 85 44 3C -33 03 AF 01 D6 85 63 F6 CA 09 03 56 63 FF 93 09 -01 05 EF 80 5F DC 93 85 1A 00 93 9B 05 01 13 DC -0B 01 13 1B 4C 00 03 AA 8C 0E B3 0D 8B 01 93 93 -2D 00 13 85 44 3C 33 88 79 00 E2 85 63 7B 4C 05 -03 56 68 FF EF 80 3F D9 93 06 1C 00 13 96 06 01 -93 5A 06 01 13 97 4A 00 83 A8 8C 0E B3 07 57 01 -13 9E 27 00 93 0E 01 05 13 85 44 3C B3 8F CE 01 -D6 85 63 F0 1A 03 03 D6 6F FF EF 80 DF D5 93 82 -1A 00 03 A5 8C 0E 13 94 02 01 13 5D 04 01 E3 67 -AD F2 32 5A 93 74 2A 00 FD C0 83 A0 8C 0E 63 8F -00 1E 01 44 37 0A 04 F0 13 13 44 00 B3 05 83 00 -93 9B 25 00 13 0C 01 05 33 0B 7C 01 03 56 8B FF -A2 85 13 05 0A 3E EF 80 1F D1 93 03 14 00 93 99 -03 01 93 DA 09 01 13 98 4A 00 83 AD 8C 0E B3 08 -58 01 93 96 28 00 90 08 13 05 0A 3E 33 07 D6 00 -D6 85 63 F5 BA 09 03 56 87 FF 84 08 EF 80 BF CD -93 87 1A 00 93 9E 07 01 13 D4 0E 01 93 1F 44 00 -03 AE 8C 0E B3 82 8F 00 13 9D 22 00 13 05 0A 3E -33 8F A4 01 A2 85 63 7B C4 05 03 56 8F FF 93 09 -01 05 EF 80 5F CA 93 05 14 00 93 9B 05 01 13 DC -0B 01 13 1B 4C 00 03 A3 8C 0E B3 0D 8B 01 93 93 -2D 00 13 05 0A 3E B3 8A 79 00 E2 85 63 70 6C 02 -03 D6 8A FF EF 80 3F C7 13 08 1C 00 03 A5 8C 0E -93 18 08 01 13 D4 08 01 E3 68 A4 F2 32 5A 93 70 -4A 00 63 91 00 12 83 A0 8C 0E 81 44 37 0D 04 F0 -63 8D 00 0C 93 95 44 00 33 8B 95 00 93 03 01 05 -93 1D 2B 00 B3 89 B3 01 03 D6 49 FF A6 85 13 05 -8D 41 EF 80 5F C2 13 88 14 00 93 18 08 01 13 D4 -08 01 13 1A 44 00 83 AA 8C 0E B3 06 8A 00 13 96 -26 00 98 08 13 05 8D 41 33 0E C7 00 A2 85 63 76 -54 09 03 56 4E FF EF 80 1F BF 93 07 14 00 93 9E -07 01 93 DB 0E 01 93 9F 4B 00 83 A4 8C 0E B3 82 -7F 01 13 9F 22 00 13 03 01 05 13 05 8D 41 33 0C -E3 01 DE 85 63 FB 9B 04 03 56 4C FF EF 80 BF BB -93 85 1B 00 93 9D 05 01 93 D9 0D 01 93 93 49 00 -03 AB 8C 0E B3 8A 33 01 13 98 2A 00 93 08 01 05 -13 05 8D 41 33 84 08 01 CE 85 63 F0 69 03 03 56 -44 FF 13 8A 19 00 EF 80 1F B8 03 A5 8C 0E 93 16 -0A 01 93 D4 06 01 E3 E7 A4 F2 63 0F 09 64 63 5F -20 63 37 09 04 F0 13 05 09 48 EF 80 DF B5 BA 40 -2A 44 9A 44 0A 49 F6 59 66 5A D6 5A 46 5B B6 5B -26 5C 96 5C 06 5D F6 4D 49 61 82 80 13 7F 4A 00 -E3 05 0F FC 83 A6 8C 0E E9 D2 01 4C 37 0D 04 F0 -13 16 4C 00 33 07 86 01 13 1E 27 00 9C 08 B3 8E -C7 01 03 D6 AE FF E2 85 13 05 CD 3F EF 80 BF B0 -93 02 1C 00 93 94 02 01 93 DB 04 01 13 9F 4B 00 -83 AF 8C 0E 33 03 7F 01 93 15 23 00 13 0C 01 05 -33 0B BC 00 13 05 CD 3F DE 85 E3 F6 FB E9 03 56 -AB FF 13 0A 01 05 EF 80 1F AD 93 83 1B 00 93 99 -03 01 93 DA 09 01 13 98 4A 00 83 AD 8C 0E B3 08 -58 01 13 94 28 00 13 05 CD 3F B3 06 8A 00 D6 85 -E3 FB BA E5 03 D6 A6 FF EF 80 FF A9 13 87 1A 00 -13 1E 07 01 93 54 0E 01 93 97 44 00 03 A6 8C 0E -B3 8E 97 00 93 9F 2E 00 93 02 01 05 13 05 CD 3F -B3 8B F2 01 A6 85 E3 F0 C4 E2 03 D6 AB FF EF 80 -9F A6 13 8F 14 00 03 A5 8C 0E 13 13 0F 01 13 5C -03 01 E3 67 AC F2 01 B5 83 A8 8C 0E A2 56 E1 64 -13 87 04 6A B3 80 16 03 37 06 04 F0 93 0F 40 06 -13 05 C6 2F B3 87 E0 02 33 DE B7 03 B3 8E 60 03 -33 76 FE 03 B3 D5 BE 03 EF 80 FF A1 09 65 93 02 -F5 70 E3 E1 52 B9 A5 B6 E9 7A 05 44 37 0C 04 F0 -B7 0C 04 F0 13 0D C1 00 13 8B 1A 00 93 0D 70 3E -93 1B 24 00 33 8E 8B 00 13 14 1E 00 22 D4 F3 24 -00 B0 23 22 9C 5C 82 C2 82 C4 81 4B 63 0F 04 40 -85 45 6A 85 EF D0 1F F9 83 5E 41 04 13 7F F5 0F -93 52 1F 00 B3 CF AE 00 93 F5 1F 00 93 D3 1E 00 -99 C5 B3 C0 63 01 13 93 00 01 93 53 03 01 B3 C6 -53 00 13 F8 16 00 93 58 2F 00 13 D9 13 00 63 08 -08 00 33 47 69 01 93 17 07 01 13 D9 07 01 33 46 -19 01 93 79 16 00 13 5A 3F 00 93 5E 19 00 63 88 -09 00 B3 CA 6E 01 13 9E 0A 01 93 5E 0E 01 B3 CF -4E 01 93 F5 1F 00 93 52 4F 00 93 D3 1E 00 99 C5 -B3 C0 63 01 13 93 00 01 93 53 03 01 B3 C6 53 00 -13 F8 16 00 93 58 5F 00 13 D9 13 00 63 08 08 00 -33 47 69 01 93 17 07 01 13 D9 07 01 33 46 19 01 -93 79 16 00 13 5A 6F 00 93 5E 19 00 63 88 09 00 -B3 CA 6E 01 13 9E 0A 01 93 5E 0E 01 B3 CF 4E 01 -93 F5 1F 00 13 5F 7F 00 13 D3 1E 00 99 C5 B3 42 -63 01 93 90 02 01 13 D3 00 01 93 73 13 00 93 58 -13 00 63 88 E3 01 B3 C6 68 01 13 98 06 01 93 58 -08 01 21 81 33 47 15 01 13 79 F5 0F 13 76 17 00 -93 59 19 00 93 DA 18 00 19 C6 B3 C7 6A 01 13 9A -07 01 93 5A 0A 01 33 CE 3A 01 93 7E 1E 00 93 5F -29 00 93 D2 1A 00 63 88 0E 00 B3 C5 62 01 13 9F -05 01 93 52 0F 01 B3 C0 F2 01 13 F3 10 00 93 53 -39 00 93 D8 12 00 63 08 03 00 B3 C6 68 01 13 98 -06 01 93 58 08 01 33 C5 78 00 13 76 15 00 13 57 -49 00 13 DA 18 00 19 C6 B3 49 6A 01 93 97 09 01 -13 DA 07 01 B3 4A EA 00 13 FE 1A 00 93 5E 59 00 -13 5F 1A 00 63 08 0E 00 B3 4F 6F 01 93 95 0F 01 -13 DF 05 01 B3 42 DF 01 93 F0 12 00 13 53 69 00 -13 58 1F 00 63 88 00 00 B3 43 68 01 93 96 03 01 -13 D8 06 01 B3 48 68 00 13 F6 18 00 13 59 79 00 -93 59 18 00 19 C6 33 C5 69 01 13 17 05 01 93 59 -07 01 B3 C7 29 01 13 FA 17 00 93 DE 19 00 63 08 -0A 00 B3 CA 6E 01 13 9E 0A 01 93 5E 0E 01 FD 55 -6A 85 23 12 D1 05 EF D0 FF D8 83 5F 41 04 13 7F -F5 0F 13 53 1F 00 B3 C5 AF 00 93 F2 15 00 13 D8 -1F 00 63 88 02 00 B3 40 68 01 93 93 00 01 13 D8 -03 01 B3 46 68 00 93 F8 16 00 13 56 2F 00 93 59 -18 00 63 88 08 00 33 C9 69 01 13 17 09 01 93 59 -07 01 B3 C7 C9 00 13 FA 17 00 93 5A 3F 00 93 DF -19 00 63 08 0A 00 33 CE 6F 01 93 1E 0E 01 93 DF -0E 01 B3 C5 5F 01 93 F2 15 00 13 53 4F 00 13 D8 -1F 00 63 88 02 00 B3 40 68 01 93 93 00 01 13 D8 -03 01 B3 46 68 00 93 F8 16 00 13 56 5F 00 93 59 -18 00 63 88 08 00 33 C9 69 01 13 17 09 01 93 59 -07 01 B3 C7 C9 00 13 FA 17 00 93 5A 6F 00 93 DF -19 00 63 08 0A 00 33 CE 6F 01 93 1E 0E 01 93 DF -0E 01 B3 C5 5F 01 93 F2 15 00 13 5F 7F 00 93 D3 -1F 00 63 88 02 00 33 C3 63 01 93 10 03 01 93 D3 -00 01 13 F8 13 00 13 D6 13 00 63 08 E8 01 B3 46 -66 01 93 98 06 01 13 D6 08 01 21 81 33 49 C5 00 -93 79 F5 0F 13 77 19 00 13 DA 19 00 13 5E 16 00 -19 C7 B3 47 6E 01 93 9A 07 01 13 DE 0A 01 B3 4E -4E 01 93 FF 1E 00 93 D5 29 00 13 53 1E 00 63 88 -0F 00 B3 42 63 01 13 9F 02 01 13 53 0F 01 B3 40 -B3 00 93 F3 10 00 13 D8 39 00 13 56 13 00 63 88 -03 00 B3 46 66 01 93 98 06 01 13 D6 08 01 33 45 -06 01 13 79 15 00 13 D7 49 00 93 5A 16 00 63 08 -09 00 33 CA 6A 01 93 17 0A 01 93 DA 07 01 33 CE -EA 00 93 7E 1E 00 93 DF 59 00 13 DF 1A 00 63 88 -0E 00 B3 45 6F 01 93 92 05 01 13 DF 02 01 33 43 -FF 01 93 70 13 00 93 D3 69 00 93 58 1F 00 63 88 -00 00 33 C8 68 01 93 16 08 01 93 D8 06 01 33 C6 -78 00 13 79 16 00 93 D9 79 00 13 DA 18 00 63 08 -09 00 33 45 6A 01 13 17 05 01 13 5A 07 01 B3 47 -3A 01 93 FA 17 00 93 5F 1A 00 63 88 0A 00 33 CE -6F 01 93 1E 0E 01 93 DF 0E 01 23 12 F1 05 63 8C -0B 02 85 0B E3 16 74 BF 22 54 F3 25 00 B0 23 A0 -BC 5C B3 84 95 40 E3 FD 9D BA 13 0B 80 3E B3 DD -64 03 A9 42 33 DF B2 03 13 03 1F 00 B3 00 64 02 -06 D4 6F F0 8F CB 23 13 F1 05 85 4B 55 BE 85 49 -63 18 39 C3 63 16 08 C2 37 3A 15 34 93 0A 5A 41 -13 0B 60 06 8D 6B 56 C6 23 18 61 01 13 86 5B 41 -6F F0 0F C1 33 08 A4 02 B3 08 0D 01 46 D0 63 0A -0F C4 6F F0 CF E0 33 03 A4 02 93 06 14 00 93 93 -06 01 13 D4 03 01 B3 04 6D 00 26 CE 63 89 0E C2 -D1 BF 6A CC 05 44 63 02 07 C2 F1 BF B7 0C 04 F0 -13 85 4C 49 EF 80 2F D2 D9 B2 13 0C 60 06 23 18 -81 01 01 46 6F F0 CF BB B7 00 04 F0 13 85 40 43 -EF 80 6F D0 6D B2 B7 07 04 F0 13 85 47 0F EF 80 -8F CF 31 6E 93 0B 2E E5 99 6E B5 6F 13 8A 7E E4 -5E 8C 13 8B 0F 4B 6F F0 2F C9 B7 08 04 F0 13 85 -48 12 EF 80 4F CD 05 66 93 0B 96 19 11 69 0D 65 -13 0A F9 9B 5E 8C 13 0B 05 34 6F F0 EF C6 37 0F -04 F0 13 05 4F 1B EF 80 0F CB 25 63 B9 63 13 0A -43 D8 93 0B 70 74 13 0C 70 74 13 8B 13 3C 6F F0 -AF C4 92 54 01 44 6F F0 EF DA 41 6A 13 04 FA FF -7D 59 B7 0C 04 F0 6F F0 EF D9 +0E 01 33 CF 7E 00 93 7F 1F 00 93 56 47 00 93 D3 +1E 00 63 8B 0F 00 E9 72 93 85 12 00 33 C6 B3 00 +13 13 06 01 93 53 03 01 33 C8 D3 00 93 78 18 00 +13 5E 57 00 93 D2 13 00 63 8B 08 00 E9 7E 13 8F +1E 00 33 C5 E2 01 93 1F 05 01 93 D2 0F 01 B3 C6 +C2 01 93 F5 16 00 13 53 67 00 13 DE 12 00 91 C9 +69 76 93 03 16 00 33 48 7E 00 93 18 08 01 13 DE +08 01 B3 4E 6E 00 13 FF 1E 00 1D 83 93 55 1E 00 +63 0B 0F 00 E9 7F 93 82 1F 00 33 C5 55 00 93 16 +05 01 93 D5 06 01 13 F3 15 00 13 DE 15 00 63 0B +E3 00 69 76 93 03 16 00 33 48 7E 00 93 18 08 01 +13 DE 08 01 93 DE 87 00 33 CF CE 01 93 7F 1F 00 +13 D7 87 00 13 53 1E 00 A5 83 63 8B 0F 00 E9 72 +93 86 12 00 33 45 D3 00 93 15 05 01 13 D3 05 01 +33 C6 67 00 93 73 16 00 13 58 27 00 93 5F 13 00 +63 8B 03 00 E9 78 13 8E 18 00 B3 CE CF 01 13 9F +0E 01 93 5F 0F 01 B3 C7 0F 01 93 F2 17 00 93 56 +37 00 93 D3 1F 00 63 8B 02 00 E9 75 13 83 15 00 +33 C5 63 00 13 16 05 01 93 53 06 01 33 C8 D3 00 +93 78 18 00 13 5E 47 00 93 D2 13 00 63 8B 08 00 +E9 7E 13 8F 1E 00 B3 CF E2 01 93 97 0F 01 93 D2 +07 01 B3 C6 C2 01 93 F5 16 00 13 53 57 00 93 D8 +12 00 91 C9 69 76 93 03 16 00 33 C5 78 00 13 18 +05 01 93 58 08 01 33 CE 68 00 93 7E 1E 00 13 5F +67 00 93 D5 18 00 63 8B 0E 00 E9 7F 93 87 1F 00 +B3 C2 F5 00 93 96 02 01 93 D5 06 01 33 C3 E5 01 +13 76 13 00 1D 83 13 DE 15 00 11 CA E9 73 13 88 +13 00 33 45 0E 01 93 18 05 01 13 DE 08 01 93 7E +1E 00 13 55 1E 00 63 8B EE 00 69 7F 93 0F 1F 00 +B3 47 F5 01 93 92 07 01 13 D5 02 01 82 80 33 C6 +A5 00 93 76 F5 0F 13 17 05 01 93 72 16 00 AA 87 +13 53 07 01 13 D8 16 00 13 DE 15 00 63 8B 02 00 +69 75 93 03 15 00 B3 45 7E 00 93 98 05 01 13 DE +08 01 B3 4E 0E 01 13 FF 1E 00 93 DF 26 00 13 55 +1E 00 63 0B 0F 00 69 76 93 02 16 00 33 47 55 00 +13 18 07 01 13 55 08 01 B3 43 F5 01 93 F8 13 00 +93 D5 36 00 93 52 15 00 63 8B 08 00 69 7E 93 0E +1E 00 33 CF D2 01 93 1F 0F 01 93 D2 0F 01 33 C6 +B2 00 13 77 16 00 13 D8 46 00 13 DE 12 00 11 CB +E9 73 93 88 13 00 33 45 1E 01 93 15 05 01 13 DE +05 01 B3 4E 0E 01 13 FF 1E 00 93 DF 56 00 93 53 +1E 00 63 0B 0F 00 E9 72 13 86 12 00 33 C7 C3 00 +13 18 07 01 93 53 08 01 B3 C8 F3 01 93 F5 18 00 +13 DE 66 00 93 D2 13 00 91 C9 E9 7E 13 8F 1E 00 +33 C5 E2 01 93 1F 05 01 93 D2 0F 01 33 C6 C2 01 +13 77 16 00 9D 82 13 DE 12 00 11 CB 69 78 93 03 +18 00 B3 48 7E 00 93 95 08 01 13 DE 05 01 93 7E +1E 00 13 58 1E 00 63 94 DE 38 13 56 83 00 33 47 +C8 00 93 73 17 00 93 56 83 00 13 5F 18 00 13 53 +93 00 63 8B 03 00 E9 78 93 85 18 00 33 4E BF 00 +93 1E 0E 01 13 DF 0E 01 B3 4F 6F 00 93 F2 1F 00 +13 D8 26 00 13 53 1F 00 63 8B 02 00 69 76 13 07 +16 00 33 45 E3 00 93 13 05 01 13 D3 03 01 B3 48 +03 01 93 F5 18 00 13 DE 36 00 13 58 13 00 91 C9 +E9 7E 13 8F 1E 00 B3 4F E8 01 93 92 0F 01 13 D8 +02 01 33 46 C8 01 93 73 16 00 13 D7 46 00 13 5E +18 00 63 8B 03 00 69 73 93 08 13 00 33 45 1E 01 +93 15 05 01 13 DE 05 01 B3 4E EE 00 13 FF 1E 00 +93 DF 56 00 13 53 1E 00 63 0B 0F 00 E9 72 13 88 +12 00 33 46 03 01 93 13 06 01 13 D3 03 01 33 47 +F3 01 93 78 17 00 93 D5 66 00 93 5F 13 00 63 8B +08 00 69 7E 93 0E 1E 00 33 C5 DF 01 13 1F 05 01 +93 5F 0F 01 B3 C2 BF 00 13 F8 12 00 9D 82 93 D8 +1F 00 63 0B 08 00 69 76 93 03 16 00 33 C3 78 00 +13 17 03 01 93 58 07 01 93 F5 18 00 93 DF 18 00 +63 8B D5 00 69 7E 93 0E 1E 00 33 C5 DF 01 13 1F +05 01 93 5F 0F 01 93 D2 07 01 33 C8 5F 00 93 F3 +F2 0F 93 76 18 00 C1 83 13 D6 13 00 13 DE 1F 00 +91 CA 69 73 13 07 13 00 B3 48 EE 00 93 95 08 01 +13 DE 05 01 B3 4E CE 00 13 FF 1E 00 93 DF 23 00 +13 53 1E 00 63 0B 0F 00 E9 72 13 88 12 00 33 45 +03 01 93 16 05 01 13 D3 06 01 33 46 F3 01 13 77 +16 00 93 D8 33 00 93 5F 13 00 11 CB E9 75 13 8E +15 00 B3 CE CF 01 13 9F 0E 01 93 5F 0F 01 B3 C2 +1F 01 13 F8 12 00 93 D6 43 00 93 D8 1F 00 63 0B +08 00 69 73 13 06 13 00 33 C5 C8 00 13 17 05 01 +93 58 07 01 B3 C5 D8 00 13 FE 15 00 93 DE 53 00 +13 D3 18 00 63 0B 0E 00 69 7F 93 0F 1F 00 B3 42 +F3 01 13 98 02 01 13 53 08 01 B3 46 D3 01 13 F6 +16 00 13 D7 63 00 93 5E 13 00 11 CA E9 78 93 85 +18 00 33 C5 BE 00 13 1E 05 01 93 5E 0E 01 33 CF +EE 00 93 7F 1F 00 93 D3 73 00 13 D6 1E 00 63 8B +0F 00 E9 72 13 88 12 00 33 43 06 01 93 16 03 01 +13 D6 06 01 13 77 16 00 93 5E 16 00 63 17 77 12 +13 DF 87 00 B3 4F DF 01 93 F3 1F 00 93 D2 87 00 +13 D7 1E 00 A5 83 63 8B 03 00 69 78 13 03 18 00 +B3 46 67 00 13 96 06 01 13 57 06 01 B3 48 F7 00 +93 F5 18 00 13 DE 22 00 93 53 17 00 91 C9 E9 7E +13 8F 1E 00 33 C5 E3 01 93 1F 05 01 93 D3 0F 01 +B3 47 7E 00 13 F8 17 00 13 D3 32 00 93 D5 13 00 +63 0B 08 00 E9 76 13 86 16 00 33 C7 C5 00 93 18 +07 01 93 D5 08 01 33 4E B3 00 93 7E 1E 00 13 DF +42 00 13 D8 15 00 63 8B 0E 00 E9 7F 93 83 1F 00 +33 45 78 00 93 17 05 01 13 D8 07 01 33 43 0F 01 +13 76 13 00 93 D6 52 00 93 5E 18 00 11 CA 69 77 +93 08 17 00 B3 C5 1E 01 13 9E 05 01 93 5E 0E 01 +33 CF D6 01 93 7F 1F 00 93 D3 62 00 13 D6 1E 00 +63 8B 0F 00 E9 77 13 88 17 00 33 45 06 01 13 13 +05 01 13 56 03 01 B3 C6 C3 00 93 F8 16 00 93 D2 +72 00 13 5F 16 00 63 8B 08 00 69 77 93 05 17 00 +33 4E BF 00 93 1E 0E 01 13 DF 0E 01 93 7F 1F 00 +13 55 1F 00 63 8A 5F 00 E9 73 93 87 13 00 33 48 +F5 00 13 15 08 01 41 81 82 80 E9 78 93 85 18 00 +33 C5 BE 00 13 1E 05 01 93 5E 0E 01 D1 B5 69 7F +93 0F 1F 00 33 45 F8 01 93 12 05 01 13 D8 02 01 +AD B1 B3 C6 A5 00 13 77 F5 0F 93 17 05 01 93 F2 +16 00 13 D3 07 01 13 56 17 00 93 D8 15 00 63 8B +02 00 E9 75 93 83 15 00 33 C5 78 00 13 18 05 01 +93 58 08 01 33 CE C8 00 93 7E 1E 00 13 5F 27 00 +93 D5 18 00 63 8B 0E 00 E9 7F 93 86 1F 00 B3 C2 +D5 00 93 97 02 01 93 D5 07 01 33 C6 E5 01 93 73 +16 00 13 58 37 00 13 DF 15 00 63 8B 03 00 E9 78 +13 8E 18 00 33 45 CF 01 93 1E 05 01 13 DF 0E 01 +B3 4F 0F 01 93 F2 1F 00 93 56 47 00 13 58 1F 00 +63 8B 02 00 E9 77 93 85 17 00 33 46 B8 00 93 13 +06 01 13 D8 03 01 B3 48 D8 00 13 FE 18 00 93 5E +57 00 93 57 18 00 63 0B 0E 00 69 7F 93 0F 1F 00 +33 C5 F7 01 93 12 05 01 93 D7 02 01 B3 C6 D7 01 +93 F5 16 00 93 53 67 00 93 DE 17 00 91 C9 69 76 +13 08 16 00 B3 C8 0E 01 13 9E 08 01 93 5E 0E 01 +33 CF 7E 00 93 7F 1F 00 1D 83 93 D5 1E 00 63 8B +0F 00 E9 72 93 87 12 00 33 C5 F5 00 93 16 05 01 +93 D5 06 01 93 F3 15 00 93 DE 15 00 63 8B E3 00 +69 76 13 08 16 00 B3 C8 0E 01 13 9E 08 01 93 5E +0E 01 13 5F 83 00 B3 4F DF 01 93 F2 1F 00 13 57 +83 00 93 D3 1E 00 13 53 93 00 63 8B 02 00 E9 77 +93 86 17 00 33 C5 D3 00 93 15 05 01 93 D3 05 01 +33 46 73 00 13 78 16 00 93 58 27 00 93 D2 13 00 +63 0B 08 00 69 7E 93 0E 1E 00 33 CF D2 01 93 1F +0F 01 93 D2 0F 01 33 C3 12 01 93 77 13 00 93 56 +37 00 13 D8 12 00 91 CB E9 75 93 83 15 00 33 45 +78 00 13 16 05 01 13 58 06 01 B3 48 D8 00 13 FE +18 00 93 5E 47 00 93 55 18 00 63 0B 0E 00 69 7F +93 0F 1F 00 B3 C2 F5 01 13 93 02 01 93 55 03 01 +B3 C7 D5 01 93 F3 17 00 93 56 57 00 13 DE 15 00 +63 8B 03 00 69 76 13 08 16 00 33 45 0E 01 93 18 +05 01 13 DE 08 01 B3 4E DE 00 13 FF 1E 00 93 5F +67 00 93 53 1E 00 63 0B 0F 00 E9 72 13 83 12 00 +B3 C5 63 00 93 97 05 01 93 D3 07 01 B3 C6 F3 01 +13 F6 16 00 1D 83 93 DE 13 00 11 CA 69 78 93 08 +18 00 33 C5 1E 01 13 1E 05 01 93 5E 0E 01 13 FF +1E 00 13 D5 1E 00 63 0B EF 00 E9 7F 93 82 1F 00 +33 43 55 00 93 15 03 01 13 D5 05 01 82 80 01 45 +82 80 73 27 00 B0 B7 07 04 F0 23 A2 E7 5C 82 80 +73 27 00 B0 B7 07 04 F0 23 A0 E7 5C 82 80 B7 07 +04 F0 B7 02 04 F0 03 A5 07 5C 03 A3 42 5C 33 05 +65 40 82 80 93 07 80 3E 33 55 F5 02 82 80 85 47 +23 00 F5 00 82 80 23 00 05 00 82 80 AA 82 2A 96 +63 56 C5 00 23 00 B5 00 05 05 DD BF 16 85 82 80 +82 80 75 71 06 C7 B7 07 04 F0 B7 00 04 F0 B7 02 +04 F0 03 A6 07 5D 83 A5 C0 5C 03 A3 02 0F 37 07 +04 F0 83 26 C7 0E B7 03 04 F0 22 C5 26 C3 13 14 +06 01 93 14 03 01 83 A8 83 5C 13 56 04 41 13 D8 +04 41 05 45 4A C1 CE DE D2 DC D6 DA DA D8 DE D6 +E2 D4 E6 D2 EA D0 EE CE 23 07 A1 04 23 16 C1 00 +23 17 B1 00 23 18 01 01 36 D4 63 93 08 00 9D 48 +32 49 46 D6 E3 1B 09 3C E3 0F 08 42 B2 59 B7 0C +04 F0 13 8D 4C 5D 13 F7 29 00 93 FD 19 00 33 3E +E0 00 6A CA 23 16 01 04 93 FE 49 00 6E 8F B3 85 +CD 01 63 88 0E 00 93 8F 15 00 93 90 0F 01 93 D5 +00 01 93 02 00 7D 33 D5 B2 02 01 44 2A D2 E3 10 +0F 3E E3 10 07 3C E3 95 0E 3A 63 10 0F 1C 63 17 +07 1C 13 F5 49 00 19 C5 02 56 83 15 C1 00 12 55 +EF C0 6F FC 22 5A 63 0F 0A 6C 37 0C 04 F0 B7 0C +04 F0 13 0D C1 00 F3 23 00 B0 23 22 7C 5C 6A 85 +EF E0 BF F6 73 2D 00 B0 03 55 C1 00 81 45 23 A0 +AC 5D EF F0 8F D2 AA 85 03 55 E1 00 03 2C 4C 5C +EF F0 AF D1 AA 85 03 55 01 01 B3 0A 8D 41 EF F0 +CF D0 92 54 AA 85 93 9C 04 01 13 D5 0C 01 EF F0 +CF CF 21 68 93 06 58 B0 AA 89 E3 06 D5 3A 63 E6 +A6 16 89 6D 93 82 2D 8F E3 01 55 3C 15 6D 93 00 +FD EA E3 12 15 3E B7 0C 04 F0 13 85 0C 15 EF 90 +6F 81 93 0B 8D 60 39 68 9D 66 13 0A 48 5A 5E 8C +13 8B 96 A7 B7 0C 04 F0 83 A8 8C 0E 01 49 01 4D +E3 87 08 3A B7 0D 04 F0 89 A8 03 D6 A4 FF 63 03 +46 0F 37 07 04 F0 D2 86 EA 85 13 05 47 24 EF 80 +7F FD 83 D7 C4 FF 13 8E 17 00 93 1E 0E 01 93 DF +0E 01 23 9E F4 FF 05 0D 83 A2 8C 0E 7E 99 93 15 +0D 01 13 1F 09 01 13 13 09 01 13 DD 05 01 13 54 +0F 01 13 59 03 41 63 74 5D 10 13 14 4D 00 33 06 +A4 01 13 15 26 00 98 08 B3 04 A7 00 83 A7 C4 FD +23 9E 04 FE 13 FE 17 00 63 02 0E 02 03 D6 64 FF +63 0E 66 01 DA 86 EA 85 13 85 0D 1E EF 80 9F F6 +83 DE C4 FF 93 8F 1E 00 23 9E F4 FF B3 05 A4 01 +93 92 25 00 13 0F 01 05 B3 04 5F 00 83 A8 C4 FD +13 F3 28 00 63 06 03 02 03 D6 84 FF 63 02 86 03 +B7 03 04 F0 DE 86 EA 85 13 85 03 21 EF 80 9F F2 +03 D8 C4 FF 83 A8 C4 FD 93 06 18 00 23 9E D4 FE +6A 94 13 16 24 00 88 08 93 F0 48 00 B3 04 C5 00 +E3 9D 00 F0 83 DF C4 FF 3D BF E2 45 EF 80 3F FF +B2 59 2A D8 13 F7 29 00 E3 0D 07 E2 83 17 E1 00 +03 16 C1 00 F2 45 12 55 13 99 07 01 54 18 33 66 +C9 00 EF B0 8F DB B2 59 29 BD 25 6A 13 07 2A A0 +E3 09 E5 20 BD 6B 13 84 5B 9F E3 1E 85 26 B7 05 +04 F0 89 64 13 85 45 18 93 8B 74 FD 39 6B EF 80 +7F EA 13 0A AA E3 5E 8C 13 0B 4B 71 61 BD 92 54 +B7 0B 04 F0 A6 85 13 85 4B 27 EF 80 BF E8 37 0C +04 F0 D6 85 13 05 CC 28 13 0B 80 3E EF 80 9F E7 +B3 DD 6A 03 B7 03 04 F0 13 85 43 2A EE 85 EF 80 +7F E6 13 08 70 3E 63 6F 58 45 B7 0A 04 F0 05 04 +13 85 CA 2B 13 1D 04 01 EF 80 DF E4 13 59 0D 41 +03 AF 8C 0E 22 53 B7 05 04 F0 13 85 85 31 B3 05 +E3 03 37 0A 04 F0 B7 0B 04 F0 37 0C 04 F0 37 0B +04 F0 B7 0D 04 F0 EF 80 FF E1 93 05 0A 33 13 85 +CB 33 EF 80 3F E1 93 05 4C 35 13 05 0B 37 EF 80 +7F E0 B7 03 04 F0 93 85 8D 38 13 85 03 39 EF 80 +7F DF CE 85 B7 09 04 F0 13 85 89 3A EF 80 9F DE +32 5A 13 78 1A 00 63 05 08 0E 83 A8 8C 0E 63 81 +08 0E 01 4D B7 04 04 F0 93 16 4D 00 B3 80 A6 01 +13 96 20 00 98 08 B3 07 C7 00 03 D6 67 FF EA 85 +13 85 44 3C EF 80 1F DB 93 0E 1D 00 93 9F 0E 01 +93 DA 0F 01 93 92 4A 00 03 AE 8C 0E 33 84 52 01 +13 1D 24 00 13 0F 01 05 13 85 44 3C 33 03 AF 01 +D6 85 63 F6 CA 09 03 56 63 FF 93 09 01 05 EF 80 +7F D7 93 85 1A 00 93 9B 05 01 13 DC 0B 01 13 1B +4C 00 03 AA 8C 0E B3 0D 8B 01 93 93 2D 00 13 85 +44 3C 33 88 79 00 E2 85 63 7B 4C 05 03 56 68 FF +EF 80 5F D4 93 06 1C 00 13 96 06 01 93 5A 06 01 +13 97 4A 00 83 A8 8C 0E B3 07 57 01 13 9E 27 00 +93 0E 01 05 13 85 44 3C B3 8F CE 01 D6 85 63 F0 +1A 03 03 D6 6F FF EF 80 FF D0 93 82 1A 00 03 A5 +8C 0E 13 94 02 01 13 5D 04 01 E3 67 AD F2 32 5A +93 74 2A 00 FD C0 83 A0 8C 0E 63 8F 00 1E 01 44 +37 0A 04 F0 13 13 44 00 B3 05 83 00 93 9B 25 00 +13 0C 01 05 33 0B 7C 01 03 56 8B FF A2 85 13 05 +0A 3E EF 80 3F CC 93 03 14 00 93 99 03 01 93 DA +09 01 13 98 4A 00 83 AD 8C 0E B3 08 58 01 93 96 +28 00 90 08 13 05 0A 3E 33 07 D6 00 D6 85 63 F5 +BA 09 03 56 87 FF 84 08 EF 80 DF C8 93 87 1A 00 +93 9E 07 01 13 D4 0E 01 93 1F 44 00 03 AE 8C 0E +B3 82 8F 00 13 9D 22 00 13 05 0A 3E 33 8F A4 01 +A2 85 63 7B C4 05 03 56 8F FF 93 09 01 05 EF 80 +7F C5 93 05 14 00 93 9B 05 01 13 DC 0B 01 13 1B +4C 00 03 A3 8C 0E B3 0D 8B 01 93 93 2D 00 13 05 +0A 3E B3 8A 79 00 E2 85 63 70 6C 02 03 D6 8A FF +EF 80 5F C2 13 08 1C 00 03 A5 8C 0E 93 18 08 01 +13 D4 08 01 E3 68 A4 F2 32 5A 93 70 4A 00 63 91 +00 12 83 A0 8C 0E 81 44 37 0D 04 F0 63 8D 00 0C +93 95 44 00 33 8B 95 00 93 03 01 05 93 1D 2B 00 +B3 89 B3 01 03 D6 49 FF A6 85 13 05 8D 41 EF 80 +7F BD 13 88 14 00 93 18 08 01 13 D4 08 01 13 1A +44 00 83 AA 8C 0E B3 06 8A 00 13 96 26 00 98 08 +13 05 8D 41 33 0E C7 00 A2 85 63 76 54 09 03 56 +4E FF EF 80 3F BA 93 07 14 00 93 9E 07 01 93 DB +0E 01 93 9F 4B 00 83 A4 8C 0E B3 82 7F 01 13 9F +22 00 13 03 01 05 13 05 8D 41 33 0C E3 01 DE 85 +63 FB 9B 04 03 56 4C FF EF 80 DF B6 93 85 1B 00 +93 9D 05 01 93 D9 0D 01 93 93 49 00 03 AB 8C 0E +B3 8A 33 01 13 98 2A 00 93 08 01 05 13 05 8D 41 +33 84 08 01 CE 85 63 F0 69 03 03 56 44 FF 13 8A +19 00 EF 80 3F B3 03 A5 8C 0E 93 16 0A 01 93 D4 +06 01 E3 E7 A4 F2 63 0F 09 64 63 5F 20 63 37 09 +04 F0 13 05 09 48 EF 80 FF B0 BA 40 2A 44 9A 44 +0A 49 F6 59 66 5A D6 5A 46 5B B6 5B 26 5C 96 5C +06 5D F6 4D 49 61 82 80 13 7F 4A 00 E3 05 0F FC +83 A6 8C 0E E9 D2 01 4C 37 0D 04 F0 13 16 4C 00 +33 07 86 01 13 1E 27 00 9C 08 B3 8E C7 01 03 D6 +AE FF E2 85 13 05 CD 3F EF 80 DF AB 93 02 1C 00 +93 94 02 01 93 DB 04 01 13 9F 4B 00 83 AF 8C 0E +33 03 7F 01 93 15 23 00 13 0C 01 05 33 0B BC 00 +13 05 CD 3F DE 85 E3 F6 FB E9 03 56 AB FF 13 0A +01 05 EF 80 3F A8 93 83 1B 00 93 99 03 01 93 DA +09 01 13 98 4A 00 83 AD 8C 0E B3 08 58 01 13 94 +28 00 13 05 CD 3F B3 06 8A 00 D6 85 E3 FB BA E5 +03 D6 A6 FF EF 80 1F A5 13 87 1A 00 13 1E 07 01 +93 54 0E 01 93 97 44 00 03 A6 8C 0E B3 8E 97 00 +93 9F 2E 00 93 02 01 05 13 05 CD 3F B3 8B F2 01 +A6 85 E3 F0 C4 E2 03 D6 AB FF EF 80 BF A1 13 8F +14 00 03 A5 8C 0E 13 13 0F 01 13 5C 03 01 E3 67 +AC F2 01 B5 83 A8 8C 0E A2 56 E1 64 13 87 04 6A +B3 80 16 03 37 06 04 F0 93 0F 40 06 13 05 C6 2F +B3 87 E0 02 33 DE B7 03 B3 8E 60 03 33 76 FE 03 +B3 D5 BE 03 EF 80 1F 9D 09 65 93 02 F5 70 E3 E1 +52 B9 A5 B6 E9 7A 05 44 37 0C 04 F0 B7 0C 04 F0 +13 0D C1 00 13 8B 1A 00 93 0D 70 3E 93 1B 24 00 +33 8E 8B 00 13 14 1E 00 22 D4 F3 24 00 B0 23 22 +9C 5C 82 C2 82 C4 81 4B 63 0F 04 40 85 45 6A 85 +EF D0 1F F9 83 5E 41 04 13 7F F5 0F 93 52 1F 00 +B3 CF AE 00 93 F5 1F 00 93 D3 1E 00 99 C5 B3 C0 +63 01 13 93 00 01 93 53 03 01 B3 C6 53 00 13 F8 +16 00 93 58 2F 00 13 D9 13 00 63 08 08 00 33 47 +69 01 93 17 07 01 13 D9 07 01 33 46 19 01 93 79 +16 00 13 5A 3F 00 93 5E 19 00 63 88 09 00 B3 CA +6E 01 13 9E 0A 01 93 5E 0E 01 B3 CF 4E 01 93 F5 +1F 00 93 52 4F 00 93 D3 1E 00 99 C5 B3 C0 63 01 +13 93 00 01 93 53 03 01 B3 C6 53 00 13 F8 16 00 +93 58 5F 00 13 D9 13 00 63 08 08 00 33 47 69 01 +93 17 07 01 13 D9 07 01 33 46 19 01 93 79 16 00 +13 5A 6F 00 93 5E 19 00 63 88 09 00 B3 CA 6E 01 +13 9E 0A 01 93 5E 0E 01 B3 CF 4E 01 93 F5 1F 00 +13 5F 7F 00 13 D3 1E 00 99 C5 B3 42 63 01 93 90 +02 01 13 D3 00 01 93 73 13 00 93 58 13 00 63 88 +E3 01 B3 C6 68 01 13 98 06 01 93 58 08 01 21 81 +33 47 15 01 13 79 F5 0F 13 76 17 00 93 59 19 00 +93 DA 18 00 19 C6 B3 C7 6A 01 13 9A 07 01 93 5A +0A 01 33 CE 3A 01 93 7E 1E 00 93 5F 29 00 93 D2 +1A 00 63 88 0E 00 B3 C5 62 01 13 9F 05 01 93 52 +0F 01 B3 C0 F2 01 13 F3 10 00 93 53 39 00 93 D8 +12 00 63 08 03 00 B3 C6 68 01 13 98 06 01 93 58 +08 01 33 C5 78 00 13 76 15 00 13 57 49 00 13 DA +18 00 19 C6 B3 49 6A 01 93 97 09 01 13 DA 07 01 +B3 4A EA 00 13 FE 1A 00 93 5E 59 00 13 5F 1A 00 +63 08 0E 00 B3 4F 6F 01 93 95 0F 01 13 DF 05 01 +B3 42 DF 01 93 F0 12 00 13 53 69 00 13 58 1F 00 +63 88 00 00 B3 43 68 01 93 96 03 01 13 D8 06 01 +B3 48 68 00 13 F6 18 00 13 59 79 00 93 59 18 00 +19 C6 33 C5 69 01 13 17 05 01 93 59 07 01 B3 C7 +29 01 13 FA 17 00 93 DE 19 00 63 08 0A 00 B3 CA +6E 01 13 9E 0A 01 93 5E 0E 01 FD 55 6A 85 23 12 +D1 05 EF D0 FF D8 83 5F 41 04 13 7F F5 0F 13 53 +1F 00 B3 C5 AF 00 93 F2 15 00 13 D8 1F 00 63 88 +02 00 B3 40 68 01 93 93 00 01 13 D8 03 01 B3 46 +68 00 93 F8 16 00 13 56 2F 00 93 59 18 00 63 88 +08 00 33 C9 69 01 13 17 09 01 93 59 07 01 B3 C7 +C9 00 13 FA 17 00 93 5A 3F 00 93 DF 19 00 63 08 +0A 00 33 CE 6F 01 93 1E 0E 01 93 DF 0E 01 B3 C5 +5F 01 93 F2 15 00 13 53 4F 00 13 D8 1F 00 63 88 +02 00 B3 40 68 01 93 93 00 01 13 D8 03 01 B3 46 +68 00 93 F8 16 00 13 56 5F 00 93 59 18 00 63 88 +08 00 33 C9 69 01 13 17 09 01 93 59 07 01 B3 C7 +C9 00 13 FA 17 00 93 5A 6F 00 93 DF 19 00 63 08 +0A 00 33 CE 6F 01 93 1E 0E 01 93 DF 0E 01 B3 C5 +5F 01 93 F2 15 00 13 5F 7F 00 93 D3 1F 00 63 88 +02 00 33 C3 63 01 93 10 03 01 93 D3 00 01 13 F8 +13 00 13 D6 13 00 63 08 E8 01 B3 46 66 01 93 98 +06 01 13 D6 08 01 21 81 33 49 C5 00 93 79 F5 0F +13 77 19 00 13 DA 19 00 13 5E 16 00 19 C7 B3 47 +6E 01 93 9A 07 01 13 DE 0A 01 B3 4E 4E 01 93 FF +1E 00 93 D5 29 00 13 53 1E 00 63 88 0F 00 B3 42 +63 01 13 9F 02 01 13 53 0F 01 B3 40 B3 00 93 F3 +10 00 13 D8 39 00 13 56 13 00 63 88 03 00 B3 46 +66 01 93 98 06 01 13 D6 08 01 33 45 06 01 13 79 +15 00 13 D7 49 00 93 5A 16 00 63 08 09 00 33 CA +6A 01 93 17 0A 01 93 DA 07 01 33 CE EA 00 93 7E +1E 00 93 DF 59 00 13 DF 1A 00 63 88 0E 00 B3 45 +6F 01 93 92 05 01 13 DF 02 01 33 43 FF 01 93 70 +13 00 93 D3 69 00 93 58 1F 00 63 88 00 00 33 C8 +68 01 93 16 08 01 93 D8 06 01 33 C6 78 00 13 79 +16 00 93 D9 79 00 13 DA 18 00 63 08 09 00 33 45 +6A 01 13 17 05 01 13 5A 07 01 B3 47 3A 01 93 FA +17 00 93 5F 1A 00 63 88 0A 00 33 CE 6F 01 93 1E +0E 01 93 DF 0E 01 23 12 F1 05 63 8C 0B 02 85 0B +E3 16 74 BF 22 54 F3 25 00 B0 23 A0 BC 5C B3 84 +95 40 E3 FD 9D BA 13 0B 80 3E B3 DD 64 03 A9 42 +33 DF B2 03 13 03 1F 00 B3 00 64 02 06 D4 6F F0 +8F CB 23 13 F1 05 85 4B 55 BE 85 49 63 18 39 C3 +63 16 08 C2 37 3A 15 34 93 0A 5A 41 13 0B 60 06 +8D 6B 56 C6 23 18 61 01 13 86 5B 41 6F F0 0F C1 +33 08 A4 02 B3 08 0D 01 46 D0 63 0A 0F C4 6F F0 +CF E0 33 03 A4 02 93 06 14 00 93 93 06 01 13 D4 +03 01 B3 04 6D 00 26 CE 63 89 0E C2 D1 BF 6A CC +05 44 63 02 07 C2 F1 BF B7 0C 04 F0 13 85 4C 49 +EF 80 4F CD D9 B2 13 0C 60 06 23 18 81 01 01 46 +6F F0 CF BB B7 00 04 F0 13 85 40 43 EF 80 8F CB +6D B2 B7 07 04 F0 13 85 47 0F EF 80 AF CA 31 6E +93 0B 2E E5 99 6E B5 6F 13 8A 7E E4 5E 8C 13 8B +0F 4B 6F F0 2F C9 B7 08 04 F0 13 85 48 12 EF 80 +6F C8 05 66 93 0B 96 19 11 69 0D 65 13 0A F9 9B +5E 8C 13 0B 05 34 6F F0 EF C6 37 0F 04 F0 13 05 +4F 1B EF 80 2F C6 25 63 B9 63 13 0A 43 D8 93 0B +70 74 13 0C 70 74 13 8B 13 3C 6F F0 AF C4 92 54 +01 44 6F F0 EF DA 41 6A 13 04 FA FF 7D 59 B7 0C +04 F0 6F F0 EF D9 +@D0580000 +00 00 00 00 @F0040000 -C4 02 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00 -A0 00 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00 -A0 00 00 00 A0 00 00 00 A0 00 00 00 BE 03 00 00 -88 08 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00 -A0 00 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00 -A0 00 00 00 A0 00 00 00 A0 00 00 00 A8 06 00 00 -A0 00 00 00 A0 00 00 00 A0 00 00 00 38 06 00 00 -A0 00 00 00 CC 03 00 00 A0 00 00 00 A0 00 00 00 -C4 02 00 00 A8 05 04 F0 B0 05 04 F0 B8 05 04 F0 -42 6E 00 00 1A 6E 00 00 24 6E 00 00 2E 6E 00 00 -38 6E 00 00 10 6E 00 00 88 05 04 F0 90 05 04 F0 +66 01 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00 +A6 00 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00 +A6 00 00 00 A6 00 00 00 A6 00 00 00 B0 02 00 00 +58 02 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00 +A6 00 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00 +A6 00 00 00 A6 00 00 00 A6 00 00 00 22 02 00 00 +A6 00 00 00 A6 00 00 00 A6 00 00 00 00 02 00 00 +A6 00 00 00 AC 01 00 00 A6 00 00 00 A6 00 00 00 +66 01 00 00 A8 05 04 F0 B0 05 04 F0 B8 05 04 F0 +6E 66 00 00 46 66 00 00 50 66 00 00 5A 66 00 00 +64 66 00 00 3C 66 00 00 88 05 04 F0 90 05 04 F0 98 05 04 F0 A0 05 04 F0 58 05 04 F0 64 05 04 F0 70 05 04 F0 7C 05 04 F0 28 05 04 F0 34 05 04 F0 40 05 04 F0 4C 05 04 F0 F8 04 04 F0 04 05 04 F0 diff --git a/testbench/hex/data.hex b/testbench/hex/data.hex deleted file mode 100755 index b71d0ef..0000000 --- a/testbench/hex/data.hex +++ /dev/null @@ -1,8 +0,0 @@ -@00001000 -2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -2D 2D 0A 48 65 6C 6C 6F 20 57 6F 72 6C 64 20 66 -72 6F 6D 20 53 77 65 52 56 20 45 4C 32 20 40 57 -44 43 20 21 21 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D -2D 2D 2D 2D 2D 2D 2D 2D 0A 00 diff --git a/testbench/hex/dhry.hex b/testbench/hex/dhry.hex new file mode 100644 index 0000000..d2e46d8 --- /dev/null +++ b/testbench/hex/dhry.hex @@ -0,0 +1,317 @@ +@80000000 +B7 52 55 59 93 82 52 55 73 90 02 7C 17 41 04 70 +13 01 41 E2 97 00 00 6E E7 80 C0 69 97 02 58 50 +93 82 42 FE 13 03 F0 0F 23 80 62 00 05 43 23 A0 +62 00 E3 05 00 FE 01 00 01 00 01 00 01 00 01 00 +01 00 01 00 01 00 01 00 01 00 +@D0580000 +00 00 00 00 +@EE000000 +41 11 4A C0 37 39 04 F0 83 27 09 D5 22 C4 00 41 +94 43 03 AF 47 00 83 AE 87 00 03 AE 07 01 03 A3 +47 01 83 A8 87 01 03 A8 C7 01 90 57 D8 57 CC 53 +06 C6 26 C2 AA 84 88 53 14 C0 94 40 23 22 E4 01 +23 24 D4 01 23 28 C4 01 23 2A 64 00 23 2C 14 01 +23 2E 04 01 08 D0 10 D4 58 D4 4C D0 15 47 D8 C4 +14 C0 9C 43 B7 36 04 F0 83 A5 86 D4 1C C0 03 26 +09 D5 58 C4 29 45 31 06 99 22 5C 40 A1 CF 9C 40 +B2 40 22 44 03 AF 07 00 83 AE 47 00 03 AE 87 00 +03 A3 C7 00 83 A8 07 01 03 A8 47 01 88 4F CC 4F +90 53 D4 53 98 57 DC 57 23 A0 E4 01 23 A2 D4 01 +23 A4 C4 01 23 A6 64 00 23 A8 14 01 23 AA 04 01 +88 CC CC CC 90 D0 D4 D0 98 D4 DC D4 02 49 92 44 +41 01 82 80 88 44 99 47 93 05 84 00 5C C4 55 20 +83 27 09 D5 48 44 13 06 C4 00 9C 43 B2 40 92 44 +1C C0 22 44 02 49 A9 45 41 01 D1 A0 B7 37 04 F0 +03 C7 C7 D4 93 07 10 04 63 03 F7 00 82 80 1C 41 +37 37 04 F0 03 27 87 D4 A5 07 99 8F 1C C1 82 80 +B7 37 04 F0 03 A6 07 D5 09 C6 18 42 18 C1 03 A6 +07 D5 B7 37 04 F0 83 A5 87 D4 31 06 29 45 41 A0 +B7 37 04 F0 83 C7 C7 D4 37 37 04 F0 83 26 C7 E1 +93 87 F7 FB 93 B7 17 00 D5 8F 23 2E F7 E0 B7 37 +04 F0 13 07 20 04 A3 86 E7 D4 82 80 B7 37 04 F0 +13 07 10 04 23 86 E7 D4 B7 37 04 F0 23 AE 07 E0 +82 80 09 47 63 0A E5 02 8D 47 9C C1 85 47 63 09 +F5 00 63 FF A7 00 91 47 63 1F F5 00 98 C1 82 80 +B7 37 04 F0 03 A7 87 D4 93 07 40 06 E3 D9 E7 FE +23 A0 05 00 82 80 82 80 85 47 9C C1 82 80 09 05 +2E 95 08 C2 82 80 13 07 56 00 13 08 80 0C 33 08 +07 03 93 17 27 00 0A 06 3E 95 14 C1 38 DD 54 C1 +B3 07 C8 00 AE 97 94 4B D8 CB 98 CF 13 87 16 00 +98 CB 18 41 C2 95 85 67 B2 95 BE 95 23 AA E5 FA +B7 37 04 F0 15 47 23 A4 E7 D4 82 80 13 75 F5 0F +93 F5 F5 0F 63 04 B5 00 01 45 82 80 B7 37 04 F0 +23 86 A7 D4 05 45 82 80 03 47 25 00 83 C7 35 00 +63 02 F7 02 41 11 06 C6 A9 2E 81 47 63 58 A0 00 +B7 37 04 F0 29 47 23 A4 E7 D4 85 47 B2 40 3E 85 +41 01 82 80 01 A0 79 15 13 35 15 00 82 80 03 48 +05 00 63 0B 08 28 39 71 22 DE 37 04 04 F0 26 DC +4A DA 4E D8 52 D6 AA 86 56 D4 5A D2 5E D0 01 45 +93 0F 50 02 B7 08 58 D0 13 03 00 03 93 09 D0 02 +13 09 A0 02 93 04 00 02 13 04 04 00 29 4F 93 03 +B1 00 A5 42 13 0A D0 02 03 C6 16 00 93 87 16 00 +63 03 F8 03 23 80 08 01 05 05 BE 86 32 88 E3 15 +08 FE 72 54 E2 54 52 59 C2 59 32 5A A2 5A 12 5B +82 5B 21 61 82 80 75 D6 13 8E 26 00 63 00 F6 07 +63 1D 66 1E 03 C7 17 00 BE 86 85 07 E3 0C 67 FE +89 06 03 C8 17 00 63 05 37 03 63 0A 27 03 93 0A +07 FD 13 FE FA 0F 81 4E 63 F2 C2 05 13 07 87 FA +13 77 F7 0F E3 E5 E4 FA 0A 07 22 97 1C 43 82 87 +42 87 03 C8 27 00 B6 87 85 06 E3 1A 27 FD 42 87 +91 05 03 C8 27 00 85 06 81 4E C9 BF 23 80 08 01 +03 C8 26 00 F2 86 E3 11 08 F6 A5 BF 03 C8 17 00 +19 A0 93 0A 07 FD 13 9E 2E 00 76 9E 93 06 08 FD +3E 8B 06 0E 85 07 93 F6 F6 0F 42 87 B3 8E CA 01 +03 C8 17 00 E3 FF D2 FC 93 06 2B 00 41 BF 98 41 +81 47 91 05 11 A0 B2 87 93 7E F7 00 13 8E 7E 05 +63 C4 D2 01 13 8E 0E 03 13 86 17 00 93 0E C1 00 +B2 9E A3 8F CE FF 11 83 79 FF 78 00 BA 97 03 C7 +07 00 FD 17 23 80 E8 00 E3 9B F3 FE 32 95 E3 15 +08 EE 01 B7 03 AE 05 00 01 47 91 05 B3 7A EE 03 +13 0B C1 00 BA 87 05 07 B3 0B EB 00 72 8B 93 8A +0A 03 A3 8F 5B FF 33 5E EE 03 E3 E1 62 FF 3A 8E +63 57 D7 01 23 80 C8 00 05 0E E3 9D CE FF 70 00 +B2 97 03 C6 07 00 FD 17 23 80 C8 00 E3 9B 77 FE +3A 95 E3 1B 08 E8 75 B5 98 41 91 05 83 47 07 00 +99 C7 05 07 23 80 F8 00 83 47 07 00 FD FB 23 80 +E8 01 05 05 E3 1A 08 E6 69 B5 90 41 01 47 91 05 +13 7E 76 00 BA 87 93 0E C1 00 05 07 BA 9E 13 0E +0E 03 A3 8F CE FF 0D 82 65 F6 70 00 B2 97 03 C6 +07 00 FD 17 23 80 C8 00 E3 9B 77 FE 3A 95 55 B7 +83 AB 05 00 91 05 5E 87 63 CA 0B 06 81 47 33 6E +E7 03 3E 8B 93 0A C1 00 85 07 BE 9A 33 47 E7 03 +13 0E 0E 03 A3 8F CA FF 7D F3 3E 87 63 D7 D7 01 +23 80 C8 00 05 07 E3 1D D7 FF 78 00 5A 97 03 46 +07 00 7D 17 23 80 C8 00 E3 1B 77 FE 63 C4 0B 02 +3E 95 E3 13 08 DE F5 BB 83 C7 05 00 05 05 91 05 +23 80 F8 00 E3 1A 08 DC ED B3 32 87 F2 86 13 06 +00 02 01 BD 93 07 2B 00 3E 95 E1 BF 33 07 70 41 +23 80 48 01 FD 1E 59 B7 01 45 82 80 39 71 13 03 +41 02 2E D2 9A 85 06 CE 32 D4 36 D6 3A D8 3E DA +42 DC 46 DE 1A C6 A1 33 F2 40 21 61 82 80 13 77 +F5 0F B7 07 58 D0 23 80 E7 00 3A 85 82 80 13 77 +F5 0F B7 07 58 D0 23 80 E7 00 3A 85 82 80 83 47 +05 00 37 07 58 D0 99 C7 05 05 23 00 F7 00 83 47 +05 00 FD FB A9 47 23 00 F7 00 05 45 82 80 39 71 +13 03 41 02 2E D2 9A 85 06 CE 32 D4 36 D6 3A D8 +3E DA 42 DC 46 DE 1A C6 DD 31 F2 40 21 61 82 80 +F3 25 00 B8 73 25 00 B0 F3 27 00 B8 E3 9A F5 FE +82 80 33 67 B5 00 FD 53 0D 8B 79 E7 B7 87 7F 7F +93 87 F7 F7 10 41 94 41 B3 72 F6 00 33 63 F6 00 +BE 92 B3 E2 62 00 63 97 72 0C 63 18 D6 06 50 41 +D4 41 B3 72 F6 00 33 63 F6 00 BE 92 B3 E2 62 00 +63 98 72 0A 63 1B D6 04 10 45 94 45 B3 72 F6 00 +33 63 F6 00 BE 92 B3 E2 62 00 63 91 72 0A 63 1E +D6 02 50 45 D4 45 B3 72 F6 00 33 63 F6 00 BE 92 +B3 E2 62 00 63 9A 72 08 63 11 D6 02 10 49 94 49 +B3 72 F6 00 33 63 F6 00 BE 92 B3 E2 62 00 63 93 +72 08 51 05 D1 05 E3 0F D6 F6 13 17 06 01 93 97 +06 01 63 1C F7 00 13 57 06 01 93 D7 06 01 33 05 +F7 40 93 75 F5 0F 91 E9 82 80 41 83 C1 83 33 05 +F7 40 93 75 F5 0F 91 E1 82 80 13 77 F7 0F 93 F7 +F7 0F 33 05 F7 40 82 80 03 46 05 00 83 C6 05 00 +05 05 85 05 63 13 D6 00 65 FA 33 05 D6 40 82 80 +11 05 91 05 E3 12 D6 FE 01 45 82 80 21 05 A1 05 +E3 1C D6 FC 01 45 82 80 31 05 B1 05 E3 16 D6 FC +01 45 82 80 41 05 C1 05 E3 10 D6 FC 01 45 82 80 +@EE0006B0 +37 07 04 F0 6D 71 13 07 C7 59 B7 07 04 F0 93 87 +C7 5B 03 2F 07 00 83 2E 47 00 03 2E 87 00 DA D9 +93 0F 01 0A 37 3B 04 F0 83 28 07 01 03 28 47 01 +08 4F 83 55 C7 01 03 46 E7 01 94 43 03 23 C7 00 +23 28 FB D5 D8 43 89 4F 23 24 81 10 23 22 91 10 +7E D5 84 18 93 0F 80 02 37 34 04 F0 23 26 11 10 +E2 D5 7E D7 7A D9 76 DB 72 DD 23 20 21 11 CE DF +D2 DD D6 DB DE D7 E6 D3 EA D1 EE CF 23 22 94 D4 +26 D1 1A DF C6 C1 C2 C3 83 A8 87 00 03 A8 C7 00 +23 16 B1 0C 23 07 C1 0C 8C 4B D0 4B 36 D8 3A DA +94 4F 03 D7 C7 01 83 C7 E7 01 AA C5 37 0C 04 F0 +37 05 04 F0 23 16 E1 04 23 07 F1 04 13 07 0C 63 +A9 47 13 05 45 08 23 2E F7 64 02 D3 46 DC 42 DE +AE C0 B2 C2 B6 C4 EF F0 9F DB B7 07 04 F0 83 A7 +C7 61 63 8B 07 50 37 05 04 F0 13 05 45 0B EF F0 +1F DA 37 05 04 F0 93 05 80 3E 13 05 05 11 EF F0 +1F DB EF F0 FF DC B7 07 04 F0 23 A6 A7 62 B7 07 +04 F0 93 87 C7 5D D8 43 83 AD 07 00 37 08 04 F0 +3A C2 98 47 85 44 B7 39 04 F0 3A C4 D8 47 37 3A +04 F0 37 34 04 F0 3A C6 98 4B B7 3B 04 F0 B7 3A +04 F0 3A C8 D8 4B 93 0C C8 5F 3A CA 98 4F 3A CC +03 D7 C7 01 83 C7 E7 01 23 1E E1 00 A3 0F F1 00 +13 07 10 04 23 86 E9 D4 13 07 20 04 A3 06 E4 D4 +12 47 85 47 8C 08 BA CA 22 47 08 18 23 2E FA E0 +BA CC 32 47 3E D6 EE C8 BA CE 42 47 BA D0 52 47 +BA D2 62 47 BA D4 03 57 C1 01 23 16 E1 06 03 47 +F1 01 23 07 E1 06 EF F0 3F 9D 93 37 15 00 30 10 +8D 45 09 45 23 2E FA E0 9D 47 3E D4 EF F0 3F 95 +A2 56 0D 46 93 05 0C 63 13 85 4B D5 EF F0 BF 94 +03 25 0B D5 EF F0 CF F7 03 47 D4 D4 93 07 00 04 +63 F0 E7 3C 13 0D 10 04 0D 49 6A 85 93 05 30 04 +EF F0 DF 96 B2 57 13 07 1D 00 63 07 F5 34 83 47 +D4 D4 13 7D F7 0F E3 F2 A7 FF 93 17 19 00 3E 99 +A2 58 83 C6 C9 D4 13 07 10 04 33 46 19 03 B2 87 +63 97 E6 00 03 A7 8A D4 93 07 96 00 99 8F 85 04 +13 07 90 3E E3 96 E4 F2 46 C6 32 C4 3E C2 EF F0 +3F C9 AA 85 37 05 04 F0 B7 3C 04 F0 13 05 05 14 +23 A0 BC D4 EF F0 BF C5 37 05 04 F0 13 05 05 15 +EF F0 FF C2 83 A5 8A D4 37 05 04 F0 13 05 85 18 +B7 04 04 F0 EF F0 BF C3 95 45 13 85 44 1A EF F0 +1F C3 83 25 CA E1 37 05 04 F0 13 05 05 1C EF F0 +1F C2 85 45 13 85 44 1A EF F0 7F C1 83 C5 C9 D4 +37 05 04 F0 13 05 C5 1D EF F0 7F C0 B7 09 04 F0 +93 05 10 04 13 85 89 1F EF F0 7F BF 83 45 D4 D4 +37 05 04 F0 13 05 45 21 EF F0 7F BE 93 05 20 04 +13 85 89 1F EF F0 BF BD 93 8B 4B D5 83 A5 0B 02 +37 05 04 F0 13 05 05 23 EF F0 7F BC 9D 45 13 85 +44 1A EF F0 DF BB B7 07 04 F0 93 87 07 63 83 A5 +C7 65 37 05 04 F0 13 05 C5 24 EF F0 5F BA 37 05 +04 F0 13 05 85 26 EF F0 9F B7 03 27 0B D5 37 05 +04 F0 13 05 45 29 0C 43 37 0C 04 F0 B7 0B 04 F0 +EF F0 FF B7 37 05 04 F0 13 05 05 2B EF F0 3F B5 +03 27 0B D5 13 05 0C 2E B7 0A 04 F0 4C 43 37 0A +04 F0 B7 09 04 F0 EF F0 9F B5 81 45 13 85 44 1A +EF F0 FF B4 03 27 0B D5 13 85 CB 2F 37 04 04 F0 +0C 47 EF F0 DF B3 89 45 13 85 44 1A EF F0 3F B3 +03 27 0B D5 13 85 8A 31 4C 47 EF F0 5F B2 C5 45 +13 85 44 1A EF F0 BF B1 83 25 0B D5 13 05 4A 33 +37 3B 04 F0 C1 05 EF F0 9F B0 13 85 C9 34 EF F0 +1F AE 03 27 4B D4 37 05 04 F0 13 05 05 38 0C 43 +EF F0 FF AE 37 05 04 F0 13 05 C5 39 EF F0 3F AC +03 27 4B D4 13 05 0C 2E 4C 43 EF F0 5F AD 81 45 +13 85 44 1A EF F0 BF AC 03 27 4B D4 13 85 CB 2F +0C 47 EF F0 DF AB 85 45 13 85 44 1A EF F0 3F AB +03 27 4B D4 13 85 8A 31 4C 47 EF F0 5F AA C9 45 +13 85 44 1A EF F0 BF A9 83 25 4B D4 13 05 4A 33 +C1 05 EF F0 DF A8 13 85 C9 34 EF F0 5F A6 92 47 +37 05 04 F0 13 05 C5 3D BE 85 EF F0 5F A7 95 45 +13 85 44 1A EF F0 BF A6 B2 48 22 46 37 05 04 F0 +33 09 19 41 93 17 39 00 33 89 27 41 B3 05 C9 40 +13 05 85 3F EF F0 BF A4 B5 45 13 85 44 1A EF F0 +1F A4 A2 55 37 05 04 F0 13 05 45 41 EF F0 3F A3 +9D 45 13 85 44 1A EF F0 9F A2 B2 55 37 05 04 F0 +13 05 05 43 EF F0 BF A1 85 45 13 85 44 1A EF F0 +1F A1 37 05 04 F0 0C 18 13 05 C5 44 EF F0 3F A0 +37 05 04 F0 13 05 45 46 EF F0 7F 9D 37 05 04 F0 +8C 08 13 05 85 49 EF F0 9F 9E 37 05 04 F0 13 05 +05 4B EF F0 DF 9B 29 45 EF F0 7F 99 B7 07 04 F0 +03 A7 C7 62 83 A5 0C D4 93 07 70 0C 99 8D 23 24 +B4 62 63 C9 B7 0A 37 05 04 F0 13 05 45 4E EF F0 +1F 9B 37 05 04 F0 13 05 45 4F EF F0 5F 98 37 05 +04 F0 13 05 C5 52 EF F0 9F 97 29 45 EF F0 3F 95 +83 20 C1 10 03 24 81 10 83 24 41 10 03 29 01 10 +FE 59 6E 5A DE 5A 4E 5B BE 5B 2E 5C 9E 5C 0E 5D +FE 4D 01 45 51 61 82 80 6C 10 01 45 EF F0 6F D8 +03 AE 0C 00 03 A3 4C 00 83 A8 8C 00 03 A8 CC 00 +03 A5 0C 01 83 A5 4C 01 03 A6 8C 01 83 D6 CC 01 +03 C7 EC 01 83 47 D4 D4 05 0D F2 C8 9A CA C6 CC +C2 CE AA D0 AE D2 B2 D4 23 16 D1 06 23 07 E1 06 +23 A4 9A D4 13 7D FD 0F 26 89 E3 F8 A7 C5 B5 B1 +25 49 BD B1 37 05 04 F0 13 06 80 3E 13 05 C5 54 +EF F0 FF 8F 37 05 04 F0 13 05 45 57 EF F0 3F 8F +83 25 84 62 B7 F7 76 48 93 87 07 80 B3 C7 B7 02 +13 06 40 06 37 05 04 F0 13 05 45 59 33 E6 C7 02 +B7 D7 9A 3B 93 87 07 A0 B3 C5 B7 02 EF F0 3F 8C +29 45 EF F0 DF 87 2D B7 37 05 04 F0 13 05 05 0E +EF F0 FF 88 FD B4 +@F0040000 +7E 03 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE +BE 02 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE +BE 02 00 EE BE 02 00 EE BE 02 00 EE C8 04 00 EE +70 04 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE +BE 02 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE +BE 02 00 EE BE 02 00 EE BE 02 00 EE 3A 04 00 EE +BE 02 00 EE BE 02 00 EE BE 02 00 EE 18 04 00 EE +BE 02 00 EE C4 03 00 EE BE 02 00 EE BE 02 00 EE +7E 03 00 EE 44 68 72 79 73 74 6F 6E 65 20 42 65 +6E 63 68 6D 61 72 6B 2C 20 56 65 72 73 69 6F 6E +20 32 2E 31 20 28 4C 61 6E 67 75 61 67 65 3A 20 +43 29 00 00 50 72 6F 67 72 61 6D 20 63 6F 6D 70 +69 6C 65 64 20 77 69 74 68 20 27 72 65 67 69 73 +74 65 72 27 20 61 74 74 72 69 62 75 74 65 00 00 +50 72 6F 67 72 61 6D 20 63 6F 6D 70 69 6C 65 64 +20 77 69 74 68 6F 75 74 20 27 72 65 67 69 73 74 +65 72 27 20 61 74 74 72 69 62 75 74 65 00 00 00 +45 78 65 63 75 74 69 6F 6E 20 73 74 61 72 74 73 +2C 20 25 64 20 72 75 6E 73 20 74 68 72 6F 75 67 +68 20 44 68 72 79 73 74 6F 6E 65 0A 00 00 00 00 +45 6E 64 5F 74 69 6D 65 3D 25 64 0A 00 00 00 00 +46 69 6E 61 6C 20 76 61 6C 75 65 73 20 6F 66 20 +74 68 65 20 76 61 72 69 61 62 6C 65 73 20 75 73 +65 64 20 69 6E 20 74 68 65 20 62 65 6E 63 68 6D +61 72 6B 3A 0A 00 00 00 49 6E 74 5F 47 6C 6F 62 +3A 20 20 20 20 20 20 20 20 20 20 20 20 25 64 0A +00 00 00 00 20 20 20 20 20 20 20 20 73 68 6F 75 +6C 64 20 62 65 3A 20 20 20 25 64 0A 00 00 00 00 +42 6F 6F 6C 5F 47 6C 6F 62 3A 20 20 20 20 20 20 +20 20 20 20 20 25 64 0A 00 00 00 00 43 68 5F 31 +5F 47 6C 6F 62 3A 20 20 20 20 20 20 20 20 20 20 +20 25 63 0A 00 00 00 00 20 20 20 20 20 20 20 20 +73 68 6F 75 6C 64 20 62 65 3A 20 20 20 25 63 0A +00 00 00 00 43 68 5F 32 5F 47 6C 6F 62 3A 20 20 +20 20 20 20 20 20 20 20 20 25 63 0A 00 00 00 00 +41 72 72 5F 31 5F 47 6C 6F 62 5B 38 5D 3A 20 20 +20 20 20 20 20 25 64 0A 00 00 00 00 41 72 72 5F +32 5F 47 6C 6F 62 5B 38 5D 5B 37 5D 3A 20 20 20 +20 25 64 0A 00 00 00 00 20 20 20 20 20 20 20 20 +73 68 6F 75 6C 64 20 62 65 3A 20 20 20 4E 75 6D +62 65 72 5F 4F 66 5F 52 75 6E 73 20 2B 20 31 30 +00 00 00 00 50 74 72 5F 47 6C 6F 62 2D 3E 50 74 +72 5F 43 6F 6D 70 3A 20 20 25 78 0A 00 00 00 00 +20 20 20 20 20 20 20 20 73 68 6F 75 6C 64 20 62 +65 3A 20 20 20 28 69 6D 70 6C 65 6D 65 6E 74 61 +74 69 6F 6E 2D 64 65 70 65 6E 64 65 6E 74 29 00 +20 20 44 69 73 63 72 3A 20 20 20 20 20 20 20 20 +20 20 20 20 20 25 64 0A 00 00 00 00 20 20 45 6E +75 6D 5F 43 6F 6D 70 3A 20 20 20 20 20 20 20 20 +20 25 64 0A 00 00 00 00 20 20 49 6E 74 5F 43 6F +6D 70 3A 20 20 20 20 20 20 20 20 20 20 25 64 0A +00 00 00 00 20 20 53 74 72 5F 43 6F 6D 70 3A 20 +20 20 20 20 20 20 20 20 20 25 73 00 20 20 20 20 +20 20 20 20 73 68 6F 75 6C 64 20 62 65 3A 20 20 +20 44 48 52 59 53 54 4F 4E 45 20 50 52 4F 47 52 +41 4D 2C 20 53 4F 4D 45 20 53 54 52 49 4E 47 00 +4E 65 78 74 5F 50 74 72 5F 47 6C 6F 62 2D 3E 50 +74 72 5F 43 6F 6D 70 3A 25 78 0A 00 20 20 20 20 +20 20 20 20 73 68 6F 75 6C 64 20 62 65 3A 20 20 +20 28 69 6D 70 6C 65 6D 65 6E 74 61 74 69 6F 6E +2D 64 65 70 65 6E 64 65 6E 74 29 2C 20 73 61 6D +65 20 61 73 20 61 62 6F 76 65 00 00 49 6E 74 5F +31 5F 4C 6F 63 3A 20 20 20 20 20 20 20 20 20 20 +20 25 64 0A 00 00 00 00 49 6E 74 5F 32 5F 4C 6F +63 3A 20 20 20 20 20 20 20 20 20 20 20 25 64 0A +00 00 00 00 49 6E 74 5F 33 5F 4C 6F 63 3A 20 20 +20 20 20 20 20 20 20 20 20 25 64 0A 00 00 00 00 +45 6E 75 6D 5F 4C 6F 63 3A 20 20 20 20 20 20 20 +20 20 20 20 20 25 64 0A 00 00 00 00 53 74 72 5F +31 5F 4C 6F 63 3A 20 20 20 20 20 20 20 20 20 20 +20 25 73 00 20 20 20 20 20 20 20 20 73 68 6F 75 +6C 64 20 62 65 3A 20 20 20 44 48 52 59 53 54 4F +4E 45 20 50 52 4F 47 52 41 4D 2C 20 31 27 53 54 +20 53 54 52 49 4E 47 00 53 74 72 5F 32 5F 4C 6F +63 3A 20 20 20 20 20 20 20 20 20 20 20 25 73 00 +20 20 20 20 20 20 20 20 73 68 6F 75 6C 64 20 62 +65 3A 20 20 20 44 48 52 59 53 54 4F 4E 45 20 50 +52 4F 47 52 41 4D 2C 20 32 27 4E 44 20 53 54 52 +49 4E 47 00 55 73 65 72 20 74 69 6D 65 20 25 64 +0A 00 00 00 4D 65 61 73 75 72 65 64 20 74 69 6D +65 20 74 6F 6F 20 73 6D 61 6C 6C 20 74 6F 20 6F +62 74 61 69 6E 20 6D 65 61 6E 69 6E 67 66 75 6C +20 72 65 73 75 6C 74 73 00 00 00 00 50 6C 65 61 +73 65 20 69 6E 63 72 65 61 73 65 20 6E 75 6D 62 +65 72 20 6F 66 20 72 75 6E 73 00 00 52 75 6E 20 +74 69 6D 65 20 3D 20 25 64 20 63 6C 6F 63 6B 73 +20 66 6F 72 20 25 64 20 44 68 72 79 73 74 6F 6E +65 73 0A 00 44 68 72 79 73 74 6F 6E 65 73 20 70 +65 72 20 53 65 63 6F 6E 64 20 70 65 72 20 4D 48 +7A 3A 20 00 25 64 2E 25 30 32 64 00 44 48 52 59 +53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 53 +4F 4D 45 20 53 54 52 49 4E 47 00 00 44 48 52 59 +53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 31 +27 53 54 20 53 54 52 49 4E 47 00 00 44 48 52 59 +53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 32 +27 4E 44 20 53 54 52 49 4E 47 00 00 44 48 52 59 +53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 33 +27 52 44 20 53 54 52 49 4E 47 00 +@FFFFFFF0 +00 00 00 EE FF FF 00 EE +@FFFFFFF8 +00 00 04 F0 30 3E 04 F0 diff --git a/testbench/hex/program.hex b/testbench/hex/program.hex deleted file mode 100644 index 0e2bf73..0000000 --- a/testbench/hex/program.hex +++ /dev/null @@ -1,18 +0,0 @@ -@00000000 -73 10 20 B0 73 10 20 B8 B7 00 00 EE 73 90 50 30 -B7 50 55 5F 93 80 50 55 73 90 00 7C B7 01 58 D0 -17 12 00 00 13 02 02 FE 83 02 02 00 23 80 51 00 -05 02 E3 9B 02 FE B7 01 58 D0 93 02 F0 0F 23 80 -51 00 E3 0A 00 FE 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 -01 00 01 00 01 00 01 00 01 00 01 00 01 00 diff --git a/testbench/tb_top.sv b/testbench/tb_top.sv index a6d2288..f8693ca 100644 --- a/testbench/tb_top.sv +++ b/testbench/tb_top.sv @@ -312,6 +312,7 @@ module tb_top ( input bit core_clk ); wire[63:0] WriteData; string abi_reg[32]; // ABI register names +`define DEC rvtop.swerv.dec assign mailbox_write = lmem.mailbox_write; assign WriteData = lmem.WriteData; @@ -336,7 +337,7 @@ module tb_top ( input bit core_clk ); // End Of test monitor if(mailbox_write && WriteData[7:0] == 8'hff) begin $display("TEST_PASSED"); - $display("\nFinished : minstret = %0d, mcycle = %0d", rvtop.swerv.dec.tlu.minstretl[31:0],rvtop.swerv.dec.tlu.mcyclel[31:0]); + $display("\nFinished : minstret = %0d, mcycle = %0d", `DEC.tlu.minstretl[31:0],`DEC.tlu.mcyclel[31:0]); $display("See \"exec.log\" for execution trace with register updates..\n"); $finish; end @@ -349,9 +350,9 @@ module tb_top ( input bit core_clk ); // trace monitor always @(posedge core_clk) begin - wb_valid <= rvtop.swerv.dec.dec_i0_wen_r; - wb_dest <= rvtop.swerv.dec.dec_i0_waddr_r; - wb_data <= rvtop.swerv.dec.dec_i0_wdata_r; + wb_valid <= `DEC.dec_i0_wen_r; + wb_dest <= `DEC.dec_i0_waddr_r; + wb_data <= `DEC.dec_i0_wdata_r; if (trace_rv_i_valid_ip) begin $fwrite(tp,"%b,%h,%h,%0h,%0h,3,%b,%h,%h,%b\n", trace_rv_i_valid_ip, 0, trace_rv_i_address_ip, 0, trace_rv_i_insn_ip,trace_rv_i_exception_ip,trace_rv_i_ecause_ip, @@ -365,10 +366,14 @@ module tb_top ( input bit core_clk ); dasm(trace_rv_i_insn_ip, trace_rv_i_address_ip, wb_dest & {5{wb_valid}}, wb_data) ); end - if(rvtop.swerv.dec.dec_nonblock_load_wen) - $fwrite (el, "%10d : %32s=%h ; nbL\n", cycleCnt, abi_reg[rvtop.swerv.dec.dec_nonblock_load_waddr], rvtop.swerv.dec.lsu_nonblock_load_data); - if(rvtop.swerv.dec.exu_div_wren) - $fwrite (el, "%10d : %32s=%h ; nbD\n", cycleCnt, abi_reg[rvtop.swerv.dec.div_waddr_wb], rvtop.swerv.dec.exu_div_result); + if(`DEC.dec_nonblock_load_wen) begin + $fwrite (el, "%10d : %32s=%h ; nbL\n", cycleCnt, abi_reg[`DEC.dec_nonblock_load_waddr], `DEC.lsu_nonblock_load_data); + tb_top.gpr[0][`DEC.dec_nonblock_load_waddr] = `DEC.lsu_nonblock_load_data; + end + if(`DEC.exu_div_wren) begin + $fwrite (el, "%10d : %32s=%h ; nbD\n", cycleCnt, abi_reg[`DEC.div_waddr_wb], `DEC.exu_div_result); + tb_top.gpr[0][`DEC.div_waddr_wb] = `DEC.exu_div_result; + end end @@ -952,7 +957,9 @@ addresses: 0xfffffff0 - ICCM start address to load 0xfffffff4 - ICCM end address to load */ - +`ifndef VERILATOR +init_iccm(); +`endif addr = 'hffff_fff0; saddr = {lmem.mem[addr+3],lmem.mem[addr+2],lmem.mem[addr+1],lmem.mem[addr]}; if ( (saddr < `RV_ICCM_SADR) || (saddr > `RV_ICCM_EADR)) return; diff --git a/testbench/tests/Coremark/Makefile b/testbench/tests/Coremark/Makefile deleted file mode 100644 index 2313be7..0000000 --- a/testbench/tests/Coremark/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -export TEST = cmark -#export CONF_PARAMS= -set=btb_size=512 -set=bht_size=2048 -set=iccm_size=128 -export CONF_PARAMS= -set=btb_size=512 -set=bht_size=2048 -set=iccm_enable=0 -export OFILES = crt0.o cmark.o printf.o -export BUILD_PATH = $(shell pwd)/snapshots/default -export TEST_CFLAGS = -finline-limit=400 -mbranch-cost=1 -Ofast -fno-code-hoisting -funroll-all-loops - -program.hex: - $(MAKE) -e -f $(RV_ROOT)/tools/make.common $(BUILD_PATH)/defines.h - $(MAKE) -e -f $(RV_ROOT)/tools/make.common $@ - -.DEFAULT: - $(MAKE) -e program.hex - $(MAKE) -e -f $(RV_ROOT)/tools/make.common $@ diff --git a/testbench/tests/Coremark/cmark.c b/testbench/tests/Coremark/cmark.c deleted file mode 100644 index b366c80..0000000 --- a/testbench/tests/Coremark/cmark.c +++ /dev/null @@ -1,2167 +0,0 @@ -#include "defines.h" - -#define ITERATIONS 1 - - -/* -Author : Shay Gal-On, EEMBC - -This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 -All rights reserved. - -EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the -CoreMark License that is distributed with the official EEMBC COREMARK Software release. -If you received this EEMBC CoreMark Software without the accompanying CoreMark License, -you must discontinue use and download the official release from www.coremark.org. - -Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, -make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. - -EEMBC -4354 Town Center Blvd. Suite 114-200 -El Dorado Hills, CA, 95762 -*/ - -//#include "/wd/users/jrahmeh/coremark_v1.0/riscv/coremark.h" - -/* -Author : Shay Gal-On, EEMBC - -This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 -All rights reserved. - -EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the -CoreMark License that is distributed with the official EEMBC COREMARK Software release. -If you received this EEMBC CoreMark Software without the accompanying CoreMark License, -you must discontinue use and download the official release from www.coremark.org. - -Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, -make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. - -EEMBC -4354 Town Center Blvd. Suite 114-200 -El Dorado Hills, CA, 95762 -*/ -/* Topic: Description - This file contains declarations of the various benchmark functions. -*/ - -/* Configuration: TOTAL_DATA_SIZE - Define total size for data algorithms will operate on -*/ -#ifndef TOTAL_DATA_SIZE -#define TOTAL_DATA_SIZE 2*1000 -#endif - -#define SEED_ARG 0 -#define SEED_FUNC 1 -#define SEED_VOLATILE 2 - -#define MEM_STATIC 0 -#define MEM_MALLOC 1 -#define MEM_STACK 2 - -/* File : core_portme.h */ - -/* - Author : Shay Gal-On, EEMBC - Legal : TODO! -*/ -/* Topic : Description - This file contains configuration constants required to execute on different platforms -*/ -#ifndef CORE_PORTME_H -#define CORE_PORTME_H -/************************/ -/* Data types and settings */ -/************************/ -/* Configuration : HAS_FLOAT - Define to 1 if the platform supports floating point. -*/ -#ifndef HAS_FLOAT -#define HAS_FLOAT 0 -#endif -/* Configuration : HAS_TIME_H - Define to 1 if platform has the time.h header file, - and implementation of functions thereof. -*/ -#ifndef HAS_TIME_H -#define HAS_TIME_H 0 -#endif -/* Configuration : USE_CLOCK - Define to 1 if platform has the time.h header file, - and implementation of functions thereof. -*/ -#ifndef USE_CLOCK -#define USE_CLOCK 0 -#endif -/* Configuration : HAS_STDIO - Define to 1 if the platform has stdio.h. -*/ -#ifndef HAS_STDIO -#define HAS_STDIO 0 -#endif -/* Configuration : HAS_PRINTF - Define to 1 if the platform has stdio.h and implements the printf function. -*/ -#ifndef HAS_PRINTF -#define HAS_PRINTF 1 -int whisperPrintf(const char* format, ...); -#define ee_printf whisperPrintf -#endif - -/* Configuration : CORE_TICKS - Define type of return from the timing functions. - */ -#include -typedef clock_t CORE_TICKS; - -/* Definitions : COMPILER_VERSION, COMPILER_FLAGS, MEM_LOCATION - Initialize these strings per platform -*/ -#ifndef COMPILER_VERSION - #ifdef __GNUC__ - #define COMPILER_VERSION "GCC"__VERSION__ - #else - #define COMPILER_VERSION "Please put compiler version here (e.g. gcc 4.1)" - #endif -#endif -#ifndef COMPILER_FLAGS - #define COMPILER_FLAGS "-O2" -#endif - -#ifndef MEM_LOCATION -// #define MEM_LOCATION "STACK" - #define MEM_LOCATION "STATIC" -#endif - -/* Data Types : - To avoid compiler issues, define the data types that need ot be used for 8b, 16b and 32b in . - - *Imprtant* : - ee_ptr_int needs to be the data type used to hold pointers, otherwise coremark may fail!!! -*/ -typedef signed short ee_s16; -typedef unsigned short ee_u16; -typedef signed int ee_s32; -typedef double ee_f32; -typedef unsigned char ee_u8; -typedef unsigned int ee_u32; -typedef ee_u32 ee_ptr_int; -typedef size_t ee_size_t; -/* align_mem : - This macro is used to align an offset to point to a 32b value. It is used in the Matrix algorithm to initialize the input memory blocks. -*/ -#define align_mem(x) (void *)(4 + (((ee_ptr_int)(x) - 1) & ~3)) - -/* Configuration : SEED_METHOD - Defines method to get seed values that cannot be computed at compile time. - - Valid values : - SEED_ARG - from command line. - SEED_FUNC - from a system function. - SEED_VOLATILE - from volatile variables. -*/ -#ifndef SEED_METHOD -#define SEED_METHOD SEED_VOLATILE -#endif - -/* Configuration : MEM_METHOD - Defines method to get a block of memry. - - Valid values : - MEM_MALLOC - for platforms that implement malloc and have malloc.h. - MEM_STATIC - to use a static memory array. - MEM_STACK - to allocate the data block on the stack (NYI). -*/ -#ifndef MEM_METHOD -//#define MEM_METHOD MEM_STACK -#define MEM_METHOD MEM_STATIC -#endif - -/* Configuration : MULTITHREAD - Define for parallel execution - - Valid values : - 1 - only one context (default). - N>1 - will execute N copies in parallel. - - Note : - If this flag is defined to more then 1, an implementation for launching parallel contexts must be defined. - - Two sample implementations are provided. Use or to enable them. - - It is valid to have a different implementation of and in , - to fit a particular architecture. -*/ -#ifndef MULTITHREAD -#define MULTITHREAD 1 -#define USE_PTHREAD 0 -#define USE_FORK 0 -#define USE_SOCKET 0 -#endif - -/* Configuration : MAIN_HAS_NOARGC - Needed if platform does not support getting arguments to main. - - Valid values : - 0 - argc/argv to main is supported - 1 - argc/argv to main is not supported - - Note : - This flag only matters if MULTITHREAD has been defined to a value greater then 1. -*/ -#ifndef MAIN_HAS_NOARGC -#define MAIN_HAS_NOARGC 1 -#endif - -/* Configuration : MAIN_HAS_NORETURN - Needed if platform does not support returning a value from main. - - Valid values : - 0 - main returns an int, and return value will be 0. - 1 - platform does not support returning a value from main -*/ -#ifndef MAIN_HAS_NORETURN -#define MAIN_HAS_NORETURN 1 -#endif - -/* Variable : default_num_contexts - Not used for this simple port, must cintain the value 1. -*/ -extern ee_u32 default_num_contexts; - -typedef struct CORE_PORTABLE_S { - ee_u8 portable_id; -} core_portable; - -/* target specific init/fini */ -void portable_init(core_portable *p, int *argc, char *argv[]); -void portable_fini(core_portable *p); - -#if !defined(PROFILE_RUN) && !defined(PERFORMANCE_RUN) && !defined(VALIDATION_RUN) -#if (TOTAL_DATA_SIZE==1200) -#define PROFILE_RUN 1 -#elif (TOTAL_DATA_SIZE==2000) -#define PERFORMANCE_RUN 1 -#else -#define VALIDATION_RUN 1 -#endif -#endif - -#endif /* CORE_PORTME_H */ - - -#if HAS_STDIO -#include -#endif -#if HAS_PRINTF -#ifndef ee_printf -#define ee_printf printf -#endif -#endif - -/* Actual benchmark execution in iterate */ -void *iterate(void *pres); - -/* Typedef: secs_ret - For machines that have floating point support, get number of seconds as a double. - Otherwise an unsigned int. -*/ -#if HAS_FLOAT -typedef double secs_ret; -#else -typedef ee_u32 secs_ret; -#endif - -#if MAIN_HAS_NORETURN -#define MAIN_RETURN_VAL -#define MAIN_RETURN_TYPE void -#else -#define MAIN_RETURN_VAL 0 -#define MAIN_RETURN_TYPE int -#endif - -void start_time(void); -void stop_time(void); -CORE_TICKS get_time(void); -secs_ret time_in_secs(CORE_TICKS ticks); - -/* Misc useful functions */ -ee_u16 crcu8(ee_u8 data, ee_u16 crc); -ee_u16 crc16(ee_s16 newval, ee_u16 crc); -ee_u16 crcu16(ee_u16 newval, ee_u16 crc); -ee_u16 crcu32(ee_u32 newval, ee_u16 crc); -ee_u8 check_data_types(); -void *portable_malloc(ee_size_t size); -void portable_free(void *p); -ee_s32 parseval(char *valstring); - -/* Algorithm IDS */ -#define ID_LIST (1<<0) -#define ID_MATRIX (1<<1) -#define ID_STATE (1<<2) -#define ALL_ALGORITHMS_MASK (ID_LIST|ID_MATRIX|ID_STATE) -#define NUM_ALGORITHMS 3 - -/* list data structures */ -typedef struct list_data_s { - ee_s16 data16; - ee_s16 idx; -} list_data; - -typedef struct list_head_s { - struct list_head_s *next; - struct list_data_s *info; -} list_head; - - -/*matrix benchmark related stuff */ -#define MATDAT_INT 1 -#if MATDAT_INT -typedef ee_s16 MATDAT; -typedef ee_s32 MATRES; -#else -typedef ee_f16 MATDAT; -typedef ee_f32 MATRES; -#endif - -typedef struct MAT_PARAMS_S { - int N; - MATDAT *A; - MATDAT *B; - MATRES *C; -} mat_params; - -/* state machine related stuff */ -/* List of all the possible states for the FSM */ -typedef enum CORE_STATE { - CORE_START=0, - CORE_INVALID, - CORE_S1, - CORE_S2, - CORE_INT, - CORE_FLOAT, - CORE_EXPONENT, - CORE_SCIENTIFIC, - NUM_CORE_STATES -} core_state_e ; - - -/* Helper structure to hold results */ -typedef struct RESULTS_S { - /* inputs */ - ee_s16 seed1; /* Initializing seed */ - ee_s16 seed2; /* Initializing seed */ - ee_s16 seed3; /* Initializing seed */ - void *memblock[4]; /* Pointer to safe memory location */ - ee_u32 size; /* Size of the data */ - ee_u32 iterations; /* Number of iterations to execute */ - ee_u32 execs; /* Bitmask of operations to execute */ - struct list_head_s *list; - mat_params mat; - /* outputs */ - ee_u16 crc; - ee_u16 crclist; - ee_u16 crcmatrix; - ee_u16 crcstate; - ee_s16 err; - /* ultithread specific */ - core_portable port; -} core_results; - -/* Multicore execution handling */ -#if (MULTITHREAD>1) -ee_u8 core_start_parallel(core_results *res); -ee_u8 core_stop_parallel(core_results *res); -#endif - -/* list benchmark functions */ -list_head *core_list_init(ee_u32 blksize, list_head *memblock, ee_s16 seed); -ee_u16 core_bench_list(core_results *res, ee_s16 finder_idx); - -/* state benchmark functions */ -void core_init_state(ee_u32 size, ee_s16 seed, ee_u8 *p); -ee_u16 core_bench_state(ee_u32 blksize, ee_u8 *memblock, - ee_s16 seed1, ee_s16 seed2, ee_s16 step, ee_u16 crc); - -/* matrix benchmark functions */ -ee_u32 core_init_matrix(ee_u32 blksize, void *memblk, ee_s32 seed, mat_params *p); -ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc); - - - - - -/* -Topic: Description - Benchmark using a linked list. - - Linked list is a common data structure used in many applications. - - For our purposes, this will excercise the memory units of the processor. - In particular, usage of the list pointers to find and alter data. - - We are not using Malloc since some platforms do not support this library. - - Instead, the memory block being passed in is used to create a list, - and the benchmark takes care not to add more items then can be - accomodated by the memory block. The porting layer will make sure - that we have a valid memory block. - - All operations are done in place, without using any extra memory. - - The list itself contains list pointers and pointers to data items. - Data items contain the following: - - idx - An index that captures the initial order of the list. - data - Variable data initialized based on the input parameters. The 16b are divided as follows: - o Upper 8b are backup of original data. - o Bit 7 indicates if the lower 7 bits are to be used as is or calculated. - o Bits 0-2 indicate type of operation to perform to get a 7b value. - o Bits 3-6 provide input for the operation. - -*/ - -/* local functions */ - -list_head *core_list_find(list_head *list,list_data *info); -list_head *core_list_reverse(list_head *list); -list_head *core_list_remove(list_head *item); -list_head *core_list_undo_remove(list_head *item_removed, list_head *item_modified); -list_head *core_list_insert_new(list_head *insert_point - , list_data *info, list_head **memblock, list_data **datablock - , list_head *memblock_end, list_data *datablock_end); -typedef ee_s32(*list_cmp)(list_data *a, list_data *b, core_results *res); -list_head *core_list_mergesort(list_head *list, list_cmp cmp, core_results *res); - -ee_s16 calc_func(ee_s16 *pdata, core_results *res) { - ee_s16 data=*pdata; - ee_s16 retval; - ee_u8 optype=(data>>7) & 1; /* bit 7 indicates if the function result has been cached */ - if (optype) /* if cached, use cache */ - return (data & 0x007f); - else { /* otherwise calculate and cache the result */ - ee_s16 flag=data & 0x7; /* bits 0-2 is type of function to perform */ - ee_s16 dtype=((data>>3) & 0xf); /* bits 3-6 is specific data for the operation */ - dtype |= dtype << 4; /* replicate the lower 4 bits to get an 8b value */ - switch (flag) { - case 0: - if (dtype<0x22) /* set min period for bit corruption */ - dtype=0x22; - retval=core_bench_state(res->size,res->memblock[3],res->seed1,res->seed2,dtype,res->crc); - if (res->crcstate==0) - res->crcstate=retval; - break; - case 1: - retval=core_bench_matrix(&(res->mat),dtype,res->crc); - if (res->crcmatrix==0) - res->crcmatrix=retval; - break; - default: - retval=data; - break; - } - res->crc=crcu16(retval,res->crc); - retval &= 0x007f; - *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */ - return retval; - } -} -/* Function: cmp_complex - Compare the data item in a list cell. - - Can be used by mergesort. -*/ -ee_s32 cmp_complex(list_data *a, list_data *b, core_results *res) { - ee_s16 val1=calc_func(&(a->data16),res); - ee_s16 val2=calc_func(&(b->data16),res); - return val1 - val2; -} - -/* Function: cmp_idx - Compare the idx item in a list cell, and regen the data. - - Can be used by mergesort. -*/ -ee_s32 cmp_idx(list_data *a, list_data *b, core_results *res) { - if (res==NULL) { - a->data16 = (a->data16 & 0xff00) | (0x00ff & (a->data16>>8)); - b->data16 = (b->data16 & 0xff00) | (0x00ff & (b->data16>>8)); - } - return a->idx - b->idx; -} - -void copy_info(list_data *to,list_data *from) { - to->data16=from->data16; - to->idx=from->idx; -} - -/* Benchmark for linked list: - - Try to find multiple data items. - - List sort - - Operate on data from list (crc) - - Single remove/reinsert - * At the end of this function, the list is back to original state -*/ -ee_u16 core_bench_list(core_results *res, ee_s16 finder_idx) { - ee_u16 retval=0; - ee_u16 found=0,missed=0; - list_head *list=res->list; - ee_s16 find_num=res->seed3; - list_head *this_find; - list_head *finder, *remover; - list_data info; - ee_s16 i; - - info.idx=finder_idx; - /* find values in the list, and change the list each time (reverse and cache if value found) */ - for (i=0; inext->info->data16 >> 8) & 1; - } - else { - found++; - if (this_find->info->data16 & 0x1) /* use found value */ - retval+=(this_find->info->data16 >> 9) & 1; - /* and cache next item at the head of the list (if any) */ - if (this_find->next != NULL) { - finder = this_find->next; - this_find->next = finder->next; - finder->next=list->next; - list->next=finder; - } - } - if (info.idx>=0) - info.idx++; -#if CORE_DEBUG - ee_printf("List find %d: [%d,%d,%d]\n",i,retval,missed,found); -#endif - } - retval+=found*4-missed; - /* sort the list by data content and remove one item*/ - if (finder_idx>0) - list=core_list_mergesort(list,cmp_complex,res); - remover=core_list_remove(list->next); - /* CRC data content of list from location of index N forward, and then undo remove */ - finder=core_list_find(list,&info); - if (!finder) - finder=list->next; - while (finder) { - retval=crc16(list->info->data16,retval); - finder=finder->next; - } -#if CORE_DEBUG - ee_printf("List sort 1: %04x\n",retval); -#endif - remover=core_list_undo_remove(remover,list->next); - /* sort the list by index, in effect returning the list to original state */ - list=core_list_mergesort(list,cmp_idx,NULL); - /* CRC data content of list */ - finder=list->next; - while (finder) { - retval=crc16(list->info->data16,retval); - finder=finder->next; - } -#if CORE_DEBUG - ee_printf("List sort 2: %04x\n",retval); -#endif - return retval; -} -/* Function: core_list_init - Initialize list with data. - - Parameters: - blksize - Size of memory to be initialized. - memblock - Pointer to memory block. - seed - Actual values chosen depend on the seed parameter. - The seed parameter MUST be supplied from a source that cannot be determined at compile time - - Returns: - Pointer to the head of the list. - -*/ -list_head *core_list_init(ee_u32 blksize, list_head *memblock, ee_s16 seed) { - /* calculated pointers for the list */ - ee_u32 per_item=16+sizeof(struct list_data_s); - ee_u32 size=(blksize/per_item)-2; /* to accomodate systems with 64b pointers, and make sure same code is executed, set max list elements */ - list_head *memblock_end=memblock+size; - list_data *datablock=(list_data *)(memblock_end); - list_data *datablock_end=datablock+size; - /* some useful variables */ - ee_u32 i; - list_head *finder,*list=memblock; - list_data info; - - /* create a fake items for the list head and tail */ - list->next=NULL; - list->info=datablock; - list->info->idx=0x0000; - list->info->data16=(ee_s16)0x8080; - memblock++; - datablock++; - info.idx=0x7fff; - info.data16=(ee_s16)0xffff; - core_list_insert_new(list,&info,&memblock,&datablock,memblock_end,datablock_end); - - /* then insert size items */ - for (i=0; inext; - i=1; - while (finder->next!=NULL) { - if (iinfo->idx=i++; - else { - ee_u16 pat=(ee_u16)(i++ ^ seed); /* get a pseudo random number */ - finder->info->idx=0x3fff & (((i & 0x07) << 8) | pat); /* make sure the mixed items end up after the ones in sequence */ - } - finder=finder->next; - } - list = core_list_mergesort(list,cmp_idx,NULL); -#if CORE_DEBUG - ee_printf("Initialized list:\n"); - finder=list; - while (finder) { - ee_printf("[%04x,%04x]",finder->info->idx,(ee_u16)finder->info->data16); - finder=finder->next; - } - ee_printf("\n"); -#endif - return list; -} - -/* Function: core_list_insert - Insert an item to the list - - Parameters: - insert_point - where to insert the item. - info - data for the cell. - memblock - pointer for the list header - datablock - pointer for the list data - memblock_end - end of region for list headers - datablock_end - end of region for list data - - Returns: - Pointer to new item. -*/ -list_head *core_list_insert_new(list_head *insert_point, list_data *info, list_head **memblock, list_data **datablock - , list_head *memblock_end, list_data *datablock_end) { - list_head *newitem; - - if ((*memblock+1) >= memblock_end) - return NULL; - if ((*datablock+1) >= datablock_end) - return NULL; - - newitem=*memblock; - (*memblock)++; - newitem->next=insert_point->next; - insert_point->next=newitem; - - newitem->info=*datablock; - (*datablock)++; - copy_info(newitem->info,info); - - return newitem; -} - -/* Function: core_list_remove - Remove an item from the list. - - Operation: - For a singly linked list, remove by copying the data from the next item - over to the current cell, and unlinking the next item. - - Note: - since there is always a fake item at the end of the list, no need to check for NULL. - - Returns: - Removed item. -*/ -list_head *core_list_remove(list_head *item) { - list_data *tmp; - list_head *ret=item->next; - /* swap data pointers */ - tmp=item->info; - item->info=ret->info; - ret->info=tmp; - /* and eliminate item */ - item->next=item->next->next; - ret->next=NULL; - return ret; -} - -/* Function: core_list_undo_remove - Undo a remove operation. - - Operation: - Since we want each iteration of the benchmark to be exactly the same, - we need to be able to undo a remove. - Link the removed item back into the list, and switch the info items. - - Parameters: - item_removed - Return value from the - item_modified - List item that was modified during - - Returns: - The item that was linked back to the list. - -*/ -list_head *core_list_undo_remove(list_head *item_removed, list_head *item_modified) { - list_data *tmp; - /* swap data pointers */ - tmp=item_removed->info; - item_removed->info=item_modified->info; - item_modified->info=tmp; - /* and insert item */ - item_removed->next=item_modified->next; - item_modified->next=item_removed; - return item_removed; -} - -/* Function: core_list_find - Find an item in the list - - Operation: - Find an item by idx (if not 0) or specific data value - - Parameters: - list - list head - info - idx or data to find - - Returns: - Found item, or NULL if not found. -*/ -list_head *core_list_find(list_head *list,list_data *info) { - if (info->idx>=0) { - while (list && (list->info->idx != info->idx)) - list=list->next; - return list; - } else { - while (list && ((list->info->data16 & 0xff) != info->data16)) - list=list->next; - return list; - } -} -/* Function: core_list_reverse - Reverse a list - - Operation: - Rearrange the pointers so the list is reversed. - - Parameters: - list - list head - info - idx or data to find - - Returns: - Found item, or NULL if not found. -*/ - -list_head *core_list_reverse(list_head *list) { - list_head *next=NULL, *tmp; - while (list) { - tmp=list->next; - list->next=next; - next=list; - list=tmp; - } - return next; -} -/* Function: core_list_mergesort - Sort the list in place without recursion. - - Description: - Use mergesort, as for linked list this is a realistic solution. - Also, since this is aimed at embedded, care was taken to use iterative rather then recursive algorithm. - The sort can either return the list to original order (by idx) , - or use the data item to invoke other other algorithms and change the order of the list. - - Parameters: - list - list to be sorted. - cmp - cmp function to use - - Returns: - New head of the list. - - Note: - We have a special header for the list that will always be first, - but the algorithm could theoretically modify where the list starts. - - */ -list_head *core_list_mergesort(list_head *list, list_cmp cmp, core_results *res) { - list_head *p, *q, *e, *tail; - ee_s32 insize, nmerges, psize, qsize, i; - - insize = 1; - - while (1) { - p = list; - list = NULL; - tail = NULL; - - nmerges = 0; /* count number of merges we do in this pass */ - - while (p) { - nmerges++; /* there exists a merge to be done */ - /* step `insize' places along from p */ - q = p; - psize = 0; - for (i = 0; i < insize; i++) { - psize++; - q = q->next; - if (!q) break; - } - - /* if q hasn't fallen off end, we have two lists to merge */ - qsize = insize; - - /* now we have two lists; merge them */ - while (psize > 0 || (qsize > 0 && q)) { - - /* decide whether next element of merge comes from p or q */ - if (psize == 0) { - /* p is empty; e must come from q. */ - e = q; q = q->next; qsize--; - } else if (qsize == 0 || !q) { - /* q is empty; e must come from p. */ - e = p; p = p->next; psize--; - } else if (cmp(p->info,q->info,res) <= 0) { - /* First element of p is lower (or same); e must come from p. */ - e = p; p = p->next; psize--; - } else { - /* First element of q is lower; e must come from q. */ - e = q; q = q->next; qsize--; - } - - /* add the next element to the merged list */ - if (tail) { - tail->next = e; - } else { - list = e; - } - tail = e; - } - - /* now p has stepped `insize' places along, and q has too */ - p = q; - } - - tail->next = NULL; - - /* If we have done only one merge, we're finished. */ - if (nmerges <= 1) /* allow for nmerges==0, the empty list case */ - return list; - - /* Otherwise repeat, merging lists twice the size */ - insize *= 2; - } -#if COMPILER_REQUIRES_SORT_RETURN - return list; -#endif -} -/* -Author : Shay Gal-On, EEMBC - -This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 -All rights reserved. - -EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the -CoreMark License that is distributed with the official EEMBC COREMARK Software release. -If you received this EEMBC CoreMark Software without the accompanying CoreMark License, -you must discontinue use and download the official release from www.coremark.org. - -Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, -make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. - -EEMBC -4354 Town Center Blvd. Suite 114-200 -El Dorado Hills, CA, 95762 -*/ -/* File: core_main.c - This file contains the framework to acquire a block of memory, seed initial parameters, tun t he benchmark and report the results. -*/ -//#include "coremark.h" - -/* Function: iterate - Run the benchmark for a specified number of iterations. - - Operation: - For each type of benchmarked algorithm: - a - Initialize the data block for the algorithm. - b - Execute the algorithm N times. - - Returns: - NULL. -*/ -static ee_u16 list_known_crc[] = {(ee_u16)0xd4b0,(ee_u16)0x3340,(ee_u16)0x6a79,(ee_u16)0xe714,(ee_u16)0xe3c1}; -static ee_u16 matrix_known_crc[] = {(ee_u16)0xbe52,(ee_u16)0x1199,(ee_u16)0x5608,(ee_u16)0x1fd7,(ee_u16)0x0747}; -static ee_u16 state_known_crc[] = {(ee_u16)0x5e47,(ee_u16)0x39bf,(ee_u16)0xe5a4,(ee_u16)0x8e3a,(ee_u16)0x8d84}; -void *iterate(void *pres) { - ee_u32 i; - ee_u16 crc; - core_results *res=(core_results *)pres; - ee_u32 iterations=res->iterations; - res->crc=0; - res->crclist=0; - res->crcmatrix=0; - res->crcstate=0; - - for (i=0; icrc=crcu16(crc,res->crc); - crc=core_bench_list(res,-1); - res->crc=crcu16(crc,res->crc); - if (i==0) res->crclist=res->crc; - } - return NULL; -} - -#if (SEED_METHOD==SEED_ARG) -ee_s32 get_seed_args(int i, int argc, char *argv[]); -#define get_seed(x) (ee_s16)get_seed_args(x,argc,argv) -#define get_seed_32(x) get_seed_args(x,argc,argv) -#else /* via function or volatile */ -ee_s32 get_seed_32(int i); -#define get_seed(x) (ee_s16)get_seed_32(x) -#endif - -#if (MEM_METHOD==MEM_STATIC) -ee_u8 static_memblk[TOTAL_DATA_SIZE]; -#endif -char *mem_name[3] = {"Static","Heap","Stack"}; -/* Function: main - Main entry routine for the benchmark. - This function is responsible for the following steps: - - 1 - Initialize input seeds from a source that cannot be determined at compile time. - 2 - Initialize memory block for use. - 3 - Run and time the benchmark. - 4 - Report results, testing the validity of the output if the seeds are known. - - Arguments: - 1 - first seed : Any value - 2 - second seed : Must be identical to first for iterations to be identical - 3 - third seed : Any value, should be at least an order of magnitude less then the input size, but bigger then 32. - 4 - Iterations : Special, if set to 0, iterations will be automatically determined such that the benchmark will run between 10 to 100 secs - -*/ - -#if MAIN_HAS_NOARGC -MAIN_RETURN_TYPE main(void) { - int argc=0; - char *argv[1]; -#else -MAIN_RETURN_TYPE main(int argc, char *argv[]) { -#endif - ee_u16 i,j=0,num_algorithms=0; - ee_s16 known_id=-1,total_errors=0; - ee_u16 seedcrc=0; - CORE_TICKS total_time; - core_results results[MULTITHREAD]; -#if (MEM_METHOD==MEM_STACK) - ee_u8 stack_memblock[TOTAL_DATA_SIZE*MULTITHREAD]; -#endif - /* first call any initializations needed */ - portable_init(&(results[0].port), &argc, argv); - /* First some checks to make sure benchmark will run ok */ - if (sizeof(struct list_head_s)>128) { - ee_printf("list_head structure too big for comparable data!\n"); - return MAIN_RETURN_VAL; - } - results[0].seed1=get_seed(1); - results[0].seed2=get_seed(2); - results[0].seed3=get_seed(3); - results[0].iterations=get_seed_32(4); -#if CORE_DEBUG - results[0].iterations=1; -#endif - results[0].execs=get_seed_32(5); - if (results[0].execs==0) { /* if not supplied, execute all algorithms */ - results[0].execs=ALL_ALGORITHMS_MASK; - } - /* put in some default values based on one seed only for easy testing */ - if ((results[0].seed1==0) && (results[0].seed2==0) && (results[0].seed3==0)) { /* validation run */ - results[0].seed1=0; - results[0].seed2=0; - results[0].seed3=0x66; - } - if ((results[0].seed1==1) && (results[0].seed2==0) && (results[0].seed3==0)) { /* perfromance run */ - results[0].seed1=0x3415; - results[0].seed2=0x3415; - results[0].seed3=0x66; - } -#if (MEM_METHOD==MEM_STATIC) - results[0].memblock[0]=(void *)static_memblk; - results[0].size=TOTAL_DATA_SIZE; - results[0].err=0; - #if (MULTITHREAD>1) - #error "Cannot use a static data area with multiple contexts!" - #endif -#elif (MEM_METHOD==MEM_MALLOC) - for (i=0 ; i1) - if (default_num_contexts>MULTITHREAD) { - default_num_contexts=MULTITHREAD; - } - for (i=0 ; i=0) { - for (i=0 ; i 0) - ee_printf("Iterations/Sec : %f\n",default_num_contexts*results[0].iterations/time_in_secs(total_time)); -#else - ee_printf("Total time (secs): %d\n",time_in_secs(total_time)); - if (time_in_secs(total_time) > 0) -// ee_printf("Iterations/Sec : %d\n",default_num_contexts*results[0].iterations/time_in_secs(total_time)); - ee_printf("Iterat/Sec/MHz : %d.%02d\n",1000*default_num_contexts*results[0].iterations/time_in_secs(total_time), - 100000*default_num_contexts*results[0].iterations/time_in_secs(total_time) % 100); -#endif - if (time_in_secs(total_time) < 10) { - ee_printf("ERROR! Must execute for at least 10 secs for a valid result!\n"); - total_errors++; - } - - ee_printf("Iterations : %u\n",(ee_u32)default_num_contexts*results[0].iterations); - ee_printf("Compiler version : %s\n",COMPILER_VERSION); - ee_printf("Compiler flags : %s\n",COMPILER_FLAGS); -#if (MULTITHREAD>1) - ee_printf("Parallel %s : %d\n",PARALLEL_METHOD,default_num_contexts); -#endif - ee_printf("Memory location : %s\n",MEM_LOCATION); - /* output for verification */ - ee_printf("seedcrc : 0x%04x\n",seedcrc); - if (results[0].execs & ID_LIST) - for (i=0 ; i1) - ee_printf(" / %d:%s",default_num_contexts,PARALLEL_METHOD); -#endif - ee_printf("\n"); - } -#endif - } - if (total_errors>0) - ee_printf("Errors detected\n"); - if (total_errors<0) - ee_printf("Cannot validate operation for these seed values, please compare with results on a known platform.\n"); - -#if (MEM_METHOD==MEM_MALLOC) - for (i=0 ; i>(from)) & (~(0xffffffff << (to)))) - -#if CORE_DEBUG -void printmat(MATDAT *A, ee_u32 N, char *name) { - ee_u32 i,j; - ee_printf("Matrix %s [%dx%d]:\n",name,N,N); - for (i=0; i N times, - changing the matrix values slightly by a constant amount each time. -*/ -ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc) { - ee_u32 N=p->N; - MATRES *C=p->C; - MATDAT *A=p->A; - MATDAT *B=p->B; - MATDAT val=(MATDAT)seed; - - crc=crc16(matrix_test(N,C,A,B,val),crc); - - return crc; -} - -/* Function: matrix_test - Perform matrix manipulation. - - Parameters: - N - Dimensions of the matrix. - C - memory for result matrix. - A - input matrix - B - operator matrix (not changed during operations) - - Returns: - A CRC value that captures all results calculated in the function. - In particular, crc of the value calculated on the result matrix - after each step by . - - Operation: - - 1 - Add a constant value to all elements of a matrix. - 2 - Multiply a matrix by a constant. - 3 - Multiply a matrix by a vector. - 4 - Multiply a matrix by a matrix. - 5 - Add a constant value to all elements of a matrix. - - After the last step, matrix A is back to original contents. -*/ -ee_s16 matrix_test(ee_u32 N, MATRES *C, MATDAT *A, MATDAT *B, MATDAT val) { - ee_u16 crc=0; - MATDAT clipval=matrix_big(val); - - matrix_add_const(N,A,val); /* make sure data changes */ -#if CORE_DEBUG - printmat(A,N,"matrix_add_const"); -#endif - matrix_mul_const(N,C,A,val); - crc=crc16(matrix_sum(N,C,clipval),crc); -#if CORE_DEBUG - printmatC(C,N,"matrix_mul_const"); -#endif - matrix_mul_vect(N,C,A,B); - crc=crc16(matrix_sum(N,C,clipval),crc); -#if CORE_DEBUG - printmatC(C,N,"matrix_mul_vect"); -#endif - matrix_mul_matrix(N,C,A,B); - crc=crc16(matrix_sum(N,C,clipval),crc); -#if CORE_DEBUG - printmatC(C,N,"matrix_mul_matrix"); -#endif - matrix_mul_matrix_bitextract(N,C,A,B); - crc=crc16(matrix_sum(N,C,clipval),crc); -#if CORE_DEBUG - printmatC(C,N,"matrix_mul_matrix_bitextract"); -#endif - - matrix_add_const(N,A,-val); /* return matrix to initial value */ - return crc; -} - -/* Function : matrix_init - Initialize the memory block for matrix benchmarking. - - Parameters: - blksize - Size of memory to be initialized. - memblk - Pointer to memory block. - seed - Actual values chosen depend on the seed parameter. - p - pointers to containing initialized matrixes. - - Returns: - Matrix dimensions. - - Note: - The seed parameter MUST be supplied from a source that cannot be determined at compile time -*/ -ee_u32 core_init_matrix(ee_u32 blksize, void *memblk, ee_s32 seed, mat_params *p) { - ee_u32 N=0; - MATDAT *A; - MATDAT *B; - ee_s32 order=1; - MATDAT val; - ee_u32 i=0,j=0; - if (seed==0) - seed=1; - while (jA=A; - p->B=B; - p->C=(MATRES *)align_mem(B+N*N); - p->N=N; -#if CORE_DEBUG - printmat(A,N,"A"); - printmat(B,N,"B"); -#endif - return N; -} - -/* Function: matrix_sum - Calculate a function that depends on the values of elements in the matrix. - - For each element, accumulate into a temporary variable. - - As long as this value is under the parameter clipval, - add 1 to the result if the element is bigger then the previous. - - Otherwise, reset the accumulator and add 10 to the result. -*/ -ee_s16 matrix_sum(ee_u32 N, MATRES *C, MATDAT clipval) { - MATRES tmp=0,prev=0,cur=0; - ee_s16 ret=0; - ee_u32 i,j; - for (i=0; iclipval) { - ret+=10; - tmp=0; - } else { - ret += (cur>prev) ? 1 : 0; - } - prev=cur; - } - } - return ret; -} - -/* Function: matrix_mul_const - Multiply a matrix by a constant. - This could be used as a scaler for instance. -*/ -void matrix_mul_const(ee_u32 N, MATRES *C, MATDAT *A, MATDAT val) { - ee_u32 i,j; - for (i=0; i0) { - for(i=0;i>3) & 0x3]; - next=4; - break; - case 3: /* float */ - case 4: /* float */ - buf=floatpat[(seed>>3) & 0x3]; - next=8; - break; - case 5: /* scientific */ - case 6: /* scientific */ - buf=scipat[(seed>>3) & 0x3]; - next=8; - break; - case 7: /* invalid */ - buf=errpat[(seed>>3) & 0x3]; - next=8; - break; - default: /* Never happen, just to make some compilers happy */ - break; - } - } - size++; - while (total='0') & (c<='9')) ? 1 : 0; - return retval; -} - -/* Function: core_state_transition - Actual state machine. - - The state machine will continue scanning until either: - 1 - an invalid input is detcted. - 2 - a valid number has been detected. - - The input pointer is updated to point to the end of the token, and the end state is returned (either specific format determined or invalid). -*/ - -enum CORE_STATE core_state_transition( ee_u8 **instr , ee_u32 *transition_count) { - ee_u8 *str=*instr; - ee_u8 NEXT_SYMBOL; - enum CORE_STATE state=CORE_START; - for( ; *str && state != CORE_INVALID; str++ ) { - NEXT_SYMBOL = *str; - if (NEXT_SYMBOL==',') /* end of this input */ { - str++; - break; - } - switch(state) { - case CORE_START: - if(ee_isdigit(NEXT_SYMBOL)) { - state = CORE_INT; - } - else if( NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-' ) { - state = CORE_S1; - } - else if( NEXT_SYMBOL == '.' ) { - state = CORE_FLOAT; - } - else { - state = CORE_INVALID; - transition_count[CORE_INVALID]++; - } - transition_count[CORE_START]++; - break; - case CORE_S1: - if(ee_isdigit(NEXT_SYMBOL)) { - state = CORE_INT; - transition_count[CORE_S1]++; - } - else if( NEXT_SYMBOL == '.' ) { - state = CORE_FLOAT; - transition_count[CORE_S1]++; - } - else { - state = CORE_INVALID; - transition_count[CORE_S1]++; - } - break; - case CORE_INT: - if( NEXT_SYMBOL == '.' ) { - state = CORE_FLOAT; - transition_count[CORE_INT]++; - } - else if(!ee_isdigit(NEXT_SYMBOL)) { - state = CORE_INVALID; - transition_count[CORE_INT]++; - } - break; - case CORE_FLOAT: - if( NEXT_SYMBOL == 'E' || NEXT_SYMBOL == 'e' ) { - state = CORE_S2; - transition_count[CORE_FLOAT]++; - } - else if(!ee_isdigit(NEXT_SYMBOL)) { - state = CORE_INVALID; - transition_count[CORE_FLOAT]++; - } - break; - case CORE_S2: - if( NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-' ) { - state = CORE_EXPONENT; - transition_count[CORE_S2]++; - } - else { - state = CORE_INVALID; - transition_count[CORE_S2]++; - } - break; - case CORE_EXPONENT: - if(ee_isdigit(NEXT_SYMBOL)) { - state = CORE_SCIENTIFIC; - transition_count[CORE_EXPONENT]++; - } - else { - state = CORE_INVALID; - transition_count[CORE_EXPONENT]++; - } - break; - case CORE_SCIENTIFIC: - if(!ee_isdigit(NEXT_SYMBOL)) { - state = CORE_INVALID; - transition_count[CORE_INVALID]++; - } - break; - default: - break; - } - } - *instr=str; - return state; -} -/* -Author : Shay Gal-On, EEMBC - -This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009 -All rights reserved. - -EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the -CoreMark License that is distributed with the official EEMBC COREMARK Software release. -If you received this EEMBC CoreMark Software without the accompanying CoreMark License, -you must discontinue use and download the official release from www.coremark.org. - -Also, if you are publicly displaying scores generated from the EEMBC CoreMark software, -make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file. - -EEMBC -4354 Town Center Blvd. Suite 114-200 -El Dorado Hills, CA, 95762 -*/ -//#include "coremark.h" -/* Function: get_seed - Get a values that cannot be determined at compile time. - - Since different embedded systems and compilers are used, 3 different methods are provided: - 1 - Using a volatile variable. This method is only valid if the compiler is forced to generate code that - reads the value of a volatile variable from memory at run time. - Please note, if using this method, you would need to modify core_portme.c to generate training profile. - 2 - Command line arguments. This is the preferred method if command line arguments are supported. - 3 - System function. If none of the first 2 methods is available on the platform, - a system function which is not a stub can be used. - - e.g. read the value on GPIO pins connected to switches, or invoke special simulator functions. -*/ -#if (SEED_METHOD==SEED_VOLATILE) - extern volatile ee_s32 seed1_volatile; - extern volatile ee_s32 seed2_volatile; - extern volatile ee_s32 seed3_volatile; - extern volatile ee_s32 seed4_volatile; - extern volatile ee_s32 seed5_volatile; - ee_s32 get_seed_32(int i) { - ee_s32 retval; - switch (i) { - case 1: - retval=seed1_volatile; - break; - case 2: - retval=seed2_volatile; - break; - case 3: - retval=seed3_volatile; - break; - case 4: - retval=seed4_volatile; - break; - case 5: - retval=seed5_volatile; - break; - default: - retval=0; - break; - } - return retval; - } -#elif (SEED_METHOD==SEED_ARG) -ee_s32 parseval(char *valstring) { - ee_s32 retval=0; - ee_s32 neg=1; - int hexmode=0; - if (*valstring == '-') { - neg=-1; - valstring++; - } - if ((valstring[0] == '0') && (valstring[1] == 'x')) { - hexmode=1; - valstring+=2; - } - /* first look for digits */ - if (hexmode) { - while (((*valstring >= '0') && (*valstring <= '9')) || ((*valstring >= 'a') && (*valstring <= 'f'))) { - ee_s32 digit=*valstring-'0'; - if (digit>9) - digit=10+*valstring-'a'; - retval*=16; - retval+=digit; - valstring++; - } - } else { - while ((*valstring >= '0') && (*valstring <= '9')) { - ee_s32 digit=*valstring-'0'; - retval*=10; - retval+=digit; - valstring++; - } - } - /* now add qualifiers */ - if (*valstring=='K') - retval*=1024; - if (*valstring=='M') - retval*=1024*1024; - - retval*=neg; - return retval; -} - -ee_s32 get_seed_args(int i, int argc, char *argv[]) { - if (argc>i) - return parseval(argv[i]); - return 0; -} - -#elif (SEED_METHOD==SEED_FUNC) -/* If using OS based function, you must define and implement the functions below in core_portme.h and core_portme.c ! */ -ee_s32 get_seed_32(int i) { - ee_s32 retval; - switch (i) { - case 1: - retval=portme_sys1(); - break; - case 2: - retval=portme_sys2(); - break; - case 3: - retval=portme_sys3(); - break; - case 4: - retval=portme_sys4(); - break; - case 5: - retval=portme_sys5(); - break; - default: - retval=0; - break; - } - return retval; -} -#endif - -/* Function: crc* - Service functions to calculate 16b CRC code. - -*/ -ee_u16 crcu8(ee_u8 data, ee_u16 crc ) -{ - ee_u8 i=0,x16=0,carry=0; - - for (i = 0; i < 8; i++) - { - x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1)); - data >>= 1; - - if (x16 == 1) - { - crc ^= 0x4002; - carry = 1; - } - else - carry = 0; - crc >>= 1; - if (carry) - crc |= 0x8000; - else - crc &= 0x7fff; - } - return crc; -} -ee_u16 crcu16(ee_u16 newval, ee_u16 crc) { - crc=crcu8( (ee_u8) (newval) ,crc); - crc=crcu8( (ee_u8) ((newval)>>8) ,crc); - return crc; -} -ee_u16 crcu32(ee_u32 newval, ee_u16 crc) { - crc=crc16((ee_s16) newval ,crc); - crc=crc16((ee_s16) (newval>>16) ,crc); - return crc; -} -ee_u16 crc16(ee_s16 newval, ee_u16 crc) { - return crcu16((ee_u16)newval, crc); -} - -ee_u8 check_data_types() { - ee_u8 retval=0; - if (sizeof(ee_u8) != 1) { - ee_printf("ERROR: ee_u8 is not an 8b datatype!\n"); - retval++; - } - if (sizeof(ee_u16) != 2) { - ee_printf("ERROR: ee_u16 is not a 16b datatype!\n"); - retval++; - } - if (sizeof(ee_s16) != 2) { - ee_printf("ERROR: ee_s16 is not a 16b datatype!\n"); - retval++; - } - if (sizeof(ee_s32) != 4) { - ee_printf("ERROR: ee_s32 is not a 32b datatype!\n"); - retval++; - } - if (sizeof(ee_u32) != 4) { - ee_printf("ERROR: ee_u32 is not a 32b datatype!\n"); - retval++; - } - if (sizeof(ee_ptr_int) != sizeof(int *)) { - ee_printf("ERROR: ee_ptr_int is not a datatype that holds an int pointer!\n"); - retval++; - } - if (retval>0) { - ee_printf("ERROR: Please modify the datatypes in core_portme.h!\n"); - } - return retval; -} -/* - File : core_portme.c -*/ -/* - Author : Shay Gal-On, EEMBC - Legal : TODO! -*/ -#include -#include -//#include "coremark.h" - -#if VALIDATION_RUN - volatile ee_s32 seed1_volatile=0x3415; - volatile ee_s32 seed2_volatile=0x3415; - volatile ee_s32 seed3_volatile=0x66; -#endif -#if PERFORMANCE_RUN - volatile ee_s32 seed1_volatile=0x0; - volatile ee_s32 seed2_volatile=0x0; - volatile ee_s32 seed3_volatile=0x66; -#endif -#if PROFILE_RUN - volatile ee_s32 seed1_volatile=0x8; - volatile ee_s32 seed2_volatile=0x8; - volatile ee_s32 seed3_volatile=0x8; -#endif - volatile ee_s32 seed4_volatile=ITERATIONS; - volatile ee_s32 seed5_volatile=0; -/* Porting : Timing functions - How to capture time and convert to seconds must be ported to whatever is supported by the platform. - e.g. Read value from on board RTC, read value from cpu clock cycles performance counter etc. - Sample implementation for standard time.h and windows.h definitions included. -*/ -/* Define : TIMER_RES_DIVIDER - Divider to trade off timer resolution and total time that can be measured. - - Use lower values to increase resolution, but make sure that overflow does not occur. - If there are issues with the return value overflowing, increase this value. - */ -//#define NSECS_PER_SEC CLOCKS_PER_SEC -#define NSECS_PER_SEC 1000000000 -#define CORETIMETYPE clock_t -//#define GETMYTIME(_t) (*_t=clock()) -#define GETMYTIME(_t) (*_t=0) -#define MYTIMEDIFF(fin,ini) ((fin)-(ini)) -#define TIMER_RES_DIVIDER 1 -#define SAMPLE_TIME_IMPLEMENTATION 1 -//#define EE_TICKS_PER_SEC (NSECS_PER_SEC / TIMER_RES_DIVIDER) - -#define EE_TICKS_PER_SEC 1000 - -/** Define Host specific (POSIX), or target specific global time variables. */ -static CORETIMETYPE start_time_val, stop_time_val; - -/* Function : start_time - This function will be called right before starting the timed portion of the benchmark. - - Implementation may be capturing a system timer (as implemented in the example code) - or zeroing some system parameters - e.g. setting the cpu clocks cycles to 0. -*/ -void start_time(void) { -uint32_t mcyclel; - asm volatile ("csrr %0,mcycle" : "=r" (mcyclel) ); - start_time_val = mcyclel; -} -/* Function : stop_time - This function will be called right after ending the timed portion of the benchmark. - - Implementation may be capturing a system timer (as implemented in the example code) - or other system parameters - e.g. reading the current value of cpu cycles counter. -*/ -void stop_time(void) { -uint32_t mcyclel; - asm volatile ("csrr %0,mcycle" : "=r" (mcyclel) ); - stop_time_val = mcyclel; -} -/* Function : get_time - Return an abstract "ticks" number that signifies time on the system. - - Actual value returned may be cpu cycles, milliseconds or any other value, - as long as it can be converted to seconds by . - This methodology is taken to accomodate any hardware or simulated platform. - The sample implementation returns millisecs by default, - and the resolution is controlled by -*/ -CORE_TICKS get_time(void) { - CORE_TICKS elapsed=(CORE_TICKS)(MYTIMEDIFF(stop_time_val, start_time_val)); - return elapsed; -} -/* Function : time_in_secs - Convert the value returned by get_time to seconds. - - The type is used to accomodate systems with no support for floating point. - Default implementation implemented by the EE_TICKS_PER_SEC macro above. -*/ -secs_ret time_in_secs(CORE_TICKS ticks) { - secs_ret retval=((secs_ret)ticks) / (secs_ret)EE_TICKS_PER_SEC; - return retval; -} - -ee_u32 default_num_contexts=1; - -/* Function : portable_init - Target specific initialization code - Test for some common mistakes. -*/ -void portable_init(core_portable *p, int *argc, char *argv[]) -{ - if (sizeof(ee_ptr_int) != sizeof(ee_u8 *)) { - ee_printf("ERROR! Please define ee_ptr_int to a type that holds a pointer!\n"); - } - if (sizeof(ee_u32) != 4) { - ee_printf("ERROR! Please define ee_u32 to a 32b unsigned type!\n"); - } - p->portable_id=1; -} -/* Function : portable_fini - Target specific final code -*/ -void portable_fini(core_portable *p) -{ - p->portable_id=0; -} - - -void* memset(void* s, int c, size_t n) -{ - asm("mv t0, a0"); - asm("add a2, a2, a0"); // end = s + n - asm(".memset_loop: bge a0, a2, .memset_end"); - asm("sb a1, 0(a0)"); - asm("addi a0, a0, 1"); - asm("j .memset_loop"); - asm(".memset_end:"); - asm("mv a0, t0"); - asm("jr ra"); -} diff --git a/testbench/tests/Coremark/printf.c b/testbench/tests/Coremark/printf.c deleted file mode 100644 index 5ce56a9..0000000 --- a/testbench/tests/Coremark/printf.c +++ /dev/null @@ -1,262 +0,0 @@ -#include -#include "defines.h" - -static int -whisperPutc(char c) -{ -// __whisper_console_io = c; -// __whisper_console_io = c; - *(volatile char*)(RV_SERIALIO) = c; - return c; -} - - -static int -whisperPuts(const char* s) -{ - while (*s) - whisperPutc(*s++); - return 1; -} - - -static int -whisperPrintUnsigned(unsigned value, int width, char pad) -{ - char buffer[20]; - int charCount = 0; - - do - { - char c = '0' + (value % 10); - value = value / 10; - buffer[charCount++] = c; - } - while (value); - - for (int i = charCount; i < width; ++i) - whisperPutc(pad); - - char* p = buffer + charCount - 1; - for (int i = 0; i < charCount; ++i) - whisperPutc(*p--); - - return charCount; -} - - -static int -whisperPrintDecimal(int value, int width, char pad) -{ - char buffer[20]; - int charCount = 0; - - unsigned neg = value < 0; - if (neg) - { - value = -value; - whisperPutc('-'); - width--; - } - - do - { - char c = '0' + (value % 10); - value = value / 10; - buffer[charCount++] = c; - } - while (value); - - for (int i = charCount; i < width; ++i) - whisperPutc(pad); - - char* p = buffer + charCount - 1; - for (int i = 0; i < charCount; ++i) - whisperPutc(*p--); - - if (neg) - charCount++; - - return charCount; -} - - -static int -whisperPrintInt(int value, int width, int pad, int base) -{ - if (base == 10) - return whisperPrintDecimal(value, width, pad); - - char buffer[20]; - int charCount = 0; - - unsigned uu = value; - - if (base == 8) - { - do - { - char c = '0' + (uu & 7); - buffer[charCount++] = c; - uu >>= 3; - } - while (uu); - } - else if (base == 16) - { - do - { - int digit = uu & 0xf; - char c = digit < 10 ? '0' + digit : 'a' + digit - 10; - buffer[charCount++] = c; - uu >>= 4; - } - while (uu); - } - else - return -1; - - char* p = buffer + charCount - 1; - for (unsigned i = 0; i < charCount; ++i) - whisperPutc(*p--); - - return charCount; -} - - -#if 0 -// Print with g format -static int -whisperPrintDoubleG(double value) -{ - return 0; -} - - -// Print with f format -static int -whisperPrintDoubleF(double value) -{ - return 0; -} -#endif - - -int -whisperPrintfImpl(const char* format, va_list ap) -{ - int count = 0; // Printed character count - - for (const char* fp = format; *fp; fp++) - { - char pad = ' '; - int width = 0; // Field width - - if (*fp != '%') - { - whisperPutc(*fp); - ++count; - continue; - } - - ++fp; // Skip % - - if (*fp == 0) - break; - - if (*fp == '%') - { - whisperPutc('%'); - continue; - } - - while (*fp == '0') - { - pad = '0'; - fp++; // Pad zero not yet implented. - } - - if (*fp == '-') - { - fp++; // Pad right not yet implemented. - } - - if (*fp == '*') - { - int outWidth = va_arg(ap, int); - fp++; // Width not yet implemented. - } - else if (*fp >= '0' && *fp <= '9') - { // Width not yet implemented. - while (*fp >= '0' && *fp <= '9') - width = width * 10 + (*fp++ - '0'); - } - - switch (*fp) - { - case 'd': - count += whisperPrintDecimal(va_arg(ap, int), width, pad); - break; - - case 'u': - count += whisperPrintUnsigned((unsigned) va_arg(ap, unsigned), width, pad); - break; - - case 'x': - case 'X': - count += whisperPrintInt(va_arg(ap, int), width, pad, 16); - break; - - case 'o': - count += whisperPrintInt(va_arg(ap, int), width, pad, 8); - break; - - case 'c': - whisperPutc(va_arg(ap, int)); - ++count; - break; - - case 's': - count += whisperPuts(va_arg(ap, char*)); - break; - -#if 0 - case 'g': - count += whisperPrintDoubleG(va_arg(ap, double)); - break; - - case 'f': - count += whisperPrintDoubleF(va_arg(ap, double)); -#endif - - } - } - - return count; -} - - -int -whisperPrintf(const char* format, ...) -{ - va_list ap; - - va_start(ap, format); - int code = whisperPrintfImpl(format, ap); - va_end(ap); - - return code; -} - - -int -printf(const char* format, ...) -{ - va_list ap; - - va_start(ap, format); - int code = whisperPrintfImpl(format, ap); - va_end(ap); - - return code; -} diff --git a/testbench/tests/dhry/dhry_1.c b/testbench/tests/dhry/dhry_1.c index 264410c..6ebbd9c 100644 --- a/testbench/tests/dhry/dhry_1.c +++ b/testbench/tests/dhry/dhry_1.c @@ -135,18 +135,14 @@ main () /* Warning: With 16-Bit processors and Number_Of_Runs > 32000, */ /* overflow may occur for this array element. */ - printf ("\n"); printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n"); - printf ("\n"); if (Reg) { printf ("Program compiled with 'register' attribute\n"); - printf ("\n"); } else { printf ("Program compiled without 'register' attribute\n"); - printf ("\n"); } #ifndef SWERV @@ -257,10 +253,7 @@ main () #endif - printf ("Execution ends\n"); - printf ("\n"); - printf ("Final values of the variables used in the benchmark:\n"); - printf ("\n"); + printf ("Final values of the variables used in the benchmark:\n\n"); printf ("Int_Glob: %d\n", Int_Glob); printf (" should be: %d\n", 5); printf ("Bool_Glob: %d\n", Bool_Glob); @@ -273,8 +266,7 @@ main () printf (" should be: %d\n", 7); printf ("Arr_2_Glob[8][7]: %d\n", Arr_2_Glob[8][7]); printf (" should be: Number_Of_Runs + 10\n"); - printf ("Ptr_Glob->\n"); - printf (" Ptr_Comp: %d\n", (int) Ptr_Glob->Ptr_Comp); + printf ("Ptr_Glob->Ptr_Comp: %x\n", (int) Ptr_Glob->Ptr_Comp); printf (" should be: (implementation-dependent)\n"); printf (" Discr: %d\n", Ptr_Glob->Discr); printf (" should be: %d\n", 0); @@ -282,10 +274,9 @@ main () printf (" should be: %d\n", 2); printf (" Int_Comp: %d\n", Ptr_Glob->variant.var_1.Int_Comp); printf (" should be: %d\n", 17); - printf (" Str_Comp: %s\n", Ptr_Glob->variant.var_1.Str_Comp); + printf (" Str_Comp: %s", Ptr_Glob->variant.var_1.Str_Comp); printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n"); - printf ("Next_Ptr_Glob->\n"); - printf (" Ptr_Comp: %d\n", (int) Next_Ptr_Glob->Ptr_Comp); + printf ("Next_Ptr_Glob->Ptr_Comp:%x\n", (int) Next_Ptr_Glob->Ptr_Comp); printf (" should be: (implementation-dependent), same as above\n"); printf (" Discr: %d\n", Next_Ptr_Glob->Discr); printf (" should be: %d\n", 0); @@ -293,8 +284,7 @@ main () printf (" should be: %d\n", 1); printf (" Int_Comp: %d\n", Next_Ptr_Glob->variant.var_1.Int_Comp); printf (" should be: %d\n", 18); - printf (" Str_Comp: %s\n", - Next_Ptr_Glob->variant.var_1.Str_Comp); + printf (" Str_Comp: %s", Next_Ptr_Glob->variant.var_1.Str_Comp); printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n"); printf ("Int_1_Loc: %d\n", Int_1_Loc); printf (" should be: %d\n", 5); @@ -304,9 +294,9 @@ main () printf (" should be: %d\n", 7); printf ("Enum_Loc: %d\n", Enum_Loc); printf (" should be: %d\n", 1); - printf ("Str_1_Loc: %s\n", Str_1_Loc); + printf ("Str_1_Loc: %s", Str_1_Loc); printf (" should be: DHRYSTONE PROGRAM, 1'ST STRING\n"); - printf ("Str_2_Loc: %s\n", Str_2_Loc); + printf ("Str_2_Loc: %s", Str_2_Loc); printf (" should be: DHRYSTONE PROGRAM, 2'ND STRING\n"); printf ("\n"); diff --git a/testbench/tests/dhry/dhry_2.c b/testbench/tests/dhry/dhry_2.c index ecf4de3..19ee89a 100644 --- a/testbench/tests/dhry/dhry_2.c +++ b/testbench/tests/dhry/dhry_2.c @@ -26,7 +26,7 @@ extern int Int_Glob; extern char Ch_1_Glob; - +#if 0 int strcmp(const char* s1, const char* s2) { @@ -39,7 +39,9 @@ strcmp(const char* s1, const char* s2) return 0; return *s1 > *s2? 1 : -1; } - +#else +extern int strcmp( char* s1, char* s2); +#endif Boolean Func_3 (Enumeration Enum_Par_Val); diff --git a/tools/Makefile b/tools/Makefile index 9901a7a..4db08fc 100755 --- a/tools/Makefile +++ b/tools/Makefile @@ -41,23 +41,14 @@ TBDIR = ${RV_ROOT}/testbench # Define test name TEST = hello_world - -# Define test name -ifneq (,$(wildcard $(TBDIR)/asm/$(TEST).s)) - TEST_DIR = ${TBDIR}/asm -else -ifneq (,$(wildcard $(TBDIR)/asm/$(TEST).c)) - TEST_DIR = ${TBDIR}/asm -else -ifneq (,$(wildcard $(TBDIR)/tests/$(TEST))) - TEST_DIR = $(TBDIR)/tests/$(TEST) -else - TEST_DIR = ${TBDIR}/asm -endif -endif -endif +TEST_DIR = ${TBDIR}/asm HEX_DIR = ${TBDIR}/hex +# Determine test directory +ifneq (,$(wildcard $(TBDIR)/tests/$(TEST))) + TEST_DIR = $(TBDIR)/tests/$(TEST) +endif + OFILES = $(TEST).o ifdef debug @@ -101,7 +92,7 @@ VERILATOR_MAKE_FLAGS = OPT_FAST="-Os" all: clean verilator clean: - rm -rf *.log *.s *.hex *.dis *.tbl irun* vcs* simv* snapshots swerv* \ + rm -rf *.log *.s *.hex *.dis *.tbl irun* vcs* simv* *.map snapshots swerv* \ verilator* *.exe obj* *.o ucli.key vc_hdrs.h csrc *.csv work\ dataset.asdb library.cfg vsimsa.cfg riviera-build wave.asdb @@ -189,7 +180,7 @@ program.hex: else program.hex: $(OFILES) $(LINK) @echo Building $(TEST) - $(GCC_PREFIX)-gcc -Wl,-m,elf32lriscv -Wl,--discard-none -T$(LINK) -o $(TEST).exe $(OFILES) -nostartfiles -nostdlib $(TEST_LIBS) + $(GCC_PREFIX)-gcc $(ABI) -Wl,-Map=$(TEST).map -lgcc -T$(LINK) -o $(TEST).exe $(OFILES) -nostartfiles $(TEST_LIBS) $(GCC_PREFIX)-objcopy -O verilog $(TEST).exe program.hex $(GCC_PREFIX)-objdump -S $(TEST).exe > $(TEST).dis @echo Completed building $(TEST)