From 863ba446d733a75fbfacfd2dbb3cefcb4fed1423 Mon Sep 17 00:00:00 2001 From: c1570 Date: Wed, 8 Feb 2023 01:35:48 +0100 Subject: [PATCH] dual mcu demo --- README.md | 10 + demo/dual-mcu.ts | 120 +++ demo/dual-mcu/CMakeLists.txt | 42 + demo/dual-mcu/dual-mcu-0.hex | 1293 +++++++++++++++++++++++++++ demo/dual-mcu/dual-mcu-1.hex | 1247 ++++++++++++++++++++++++++ demo/dual-mcu/dual-mcu.c | 37 + demo/dual-mcu/dual-mcu.pio | 26 + demo/dual-mcu/pico_sdk_import.cmake | 64 ++ package.json | 1 + 9 files changed, 2840 insertions(+) create mode 100644 demo/dual-mcu.ts create mode 100644 demo/dual-mcu/CMakeLists.txt create mode 100644 demo/dual-mcu/dual-mcu-0.hex create mode 100644 demo/dual-mcu/dual-mcu-1.hex create mode 100644 demo/dual-mcu/dual-mcu.c create mode 100644 demo/dual-mcu/dual-mcu.pio create mode 100644 demo/dual-mcu/pico_sdk_import.cmake diff --git a/README.md b/README.md index 8e3c9f7..a0eac3b 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,16 @@ Other ways of creating LittleFS images can be found [here](https://github.com/wo Currently, the filesystem is not writeable, as the SSI peripheral required for flash writing is not implemented yet. If you're interested in hacking, see the discussion in https://github.com/wokwi/rp2040js/issues/88 for a workaround. +### Dual RP2040 demo +``` +npm install +npm run start:dual-mcu +``` + +This fires up two instances of rp2040js including some glue code that connects the GPIOs 2-10 in an open collector/pull up bus fashion. +It will write a VCD trace of bus signals to the file `dual-mcu-bus-trace.vcd` including a virtual signal indicating conflicts on the bus. +The demo programs on the two RP2040s pull a single line low each (MCU0: D0 then D1 then ... then D7, MCU1 in the opposite direction). + ## Learn more - [Live-coding stream playlist](https://www.youtube.com/playlist?list=PLLomdjsHtJTxT-vdJHwa3z62dFXZnzYBm) diff --git a/demo/dual-mcu.ts b/demo/dual-mcu.ts new file mode 100644 index 0000000..5ce74f8 --- /dev/null +++ b/demo/dual-mcu.ts @@ -0,0 +1,120 @@ +import * as fs from "fs"; +import { RP2040 } from "../src"; +import { GPIOPinState } from "../src/gpio-pin"; +import { bootromB1 } from "./bootrom"; +import { loadHex } from "./intelhex"; + +const hex1 = fs.readFileSync("demo/dual-mcu/dual-mcu-0.hex", "utf-8"); +const hex2 = fs.readFileSync("demo/dual-mcu/dual-mcu-1.hex", "utf-8"); +const mcu1 = new RP2040(); +const mcu2 = new RP2040(); +mcu1.loadBootrom(bootromB1); +mcu2.loadBootrom(bootromB1); +loadHex(hex1, mcu1.flash, 0x10000000); +loadHex(hex2, mcu2.flash, 0x10000000); + +mcu1.uart[0].onByte = (value) => { + process.stdout.write(new Uint8Array([value])); +}; + +mcu2.uart[0].onByte = (value) => { + process.stdout.write(new Uint8Array([value])); +}; + +// GPIOPinState: { Low, High, Input, InputPullUp, InputPullDown } + +let pin_state: number[][] = [ + [0, 0, 0, 0, 0, 0, 0], // result value + [3, 3, 3, 3, 3, 3, 3], // input from mcu1 (pullup initially) + [3, 3, 3, 3, 3, 3, 3], // input from mcu2 (pullup initially) +]; +let pin_gpio: number[] = [2, 3, 4, 5, 6, 7, 8, 9]; +let pin_label: string[] = ["d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"]; +let vcd_file = fs.createWriteStream("dual-mcu-bus-trace.vcd", {}); +let last_conflict_cycle: number = -1; + +// This listener connects the two MCUs and writes a VCD signal trace file. +// This code assumes pullups enabled (open collector/pullup bus). +function pinListener(mcu_id: number, pin: number) { + return (state: GPIOPinState, oldState: GPIOPinState) => { + pin_state[mcu_id + 1][pin] = state; + let v: number = + pin_state[0 + 1][pin] === 0 || pin_state[1 + 1][pin] === 0 ? 0 : 1; + mcu1.gpio[pin_gpio[pin]].setInputValue(v == 1 ? true : false); + mcu2.gpio[pin_gpio[pin]].setInputValue(v == 1 ? true : false); + + // write signal to VCD file + let pin_vcd_id = String.fromCharCode(pin + 34); + if (pin_state[0][pin] !== v) { + pin_state[0][pin] = v; + vcd_file.write(`#${mcu1.core.cycles} ${v}${pin_vcd_id}\n`); + } + + // write conflict flag to VCD file + let conflict: boolean = + (pin_state[0 + 1][pin] === 0 && pin_state[1 + 1][pin] === 1) || + (pin_state[0 + 1][pin] === 1 && pin_state[1 + 1][pin] === 0); + if (conflict) + console.log( + `Conflict on pin ${pin_label[pin]} at cycle ${mcu1.core.cycles} (${ + pin_state[0 + 1][pin] + }/${pin_state[1 + 1][pin]})` + ); + let have_new_conflict = conflict && last_conflict_cycle === -1; + let conflict_recently_resolved = !conflict && last_conflict_cycle !== -1; + if ( + conflict_recently_resolved && + mcu1.core.cycles === last_conflict_cycle + ) { + // one mcu set conflict and other resolved in same cycle: + // delay until next signal change so that the conflict signal is visible in VCD + return; + } + let write_conflict_flag: boolean = + have_new_conflict || conflict_recently_resolved; + if (write_conflict_flag) { + vcd_file.write(`#${mcu1.core.cycles} ${conflict ? 1 : 0}!\n`); + } + last_conflict_cycle = conflict ? mcu1.core.cycles : -1; + }; +} + +for (let i = 0; i < pin_label.length; i++) { + mcu1.gpio[pin_gpio[i]].addListener(pinListener(0, i)); + mcu2.gpio[pin_gpio[i]].addListener(pinListener(1, i)); +} + +mcu1.core.PC = 0x10000000; +mcu2.core.PC = 0x10000000; + +// write VCD file header +vcd_file.write("$timescale 1ns $end\n"); +vcd_file.write("$scope module logic $end\n"); +vcd_file.write(`$var wire 1 ! bus_conflict $end\n`); +for (let pin = 0; pin < pin_label.length; pin++) { + let pin_vcd_id = String.fromCharCode(pin + 34); + vcd_file.write(`$var wire 1 ${pin_vcd_id} ${pin_label[pin]} $end\n`); +} +vcd_file.write("$upscope $end\n"); +vcd_file.write("$enddefinitions $end\n"); + +function run_mcus() { + let cycles_mcu2_behind = 0; + for (let i = 0; i < 100000; i++) { + if (mcu1.core.cycles % (1 << 25) === 0) + console.log(`clock: ${mcu1.core.cycles / 125000000} secs`); + // run mcu1 for one step, take note of how many cycles that took, + // then step mcu2 until it caught up. + let cycles = mcu1.core.cycles; + mcu1.step(); + cycles_mcu2_behind += mcu1.core.cycles - cycles; + while (cycles_mcu2_behind > 0) { + cycles = mcu2.core.cycles; + mcu2.step(); + cycles_mcu2_behind -= mcu2.core.cycles - cycles; + } + } + setTimeout(() => run_mcus(), 0); +} + +run_mcus(); diff --git a/demo/dual-mcu/CMakeLists.txt b/demo/dual-mcu/CMakeLists.txt new file mode 100644 index 0000000..b5cb3ca --- /dev/null +++ b/demo/dual-mcu/CMakeLists.txt @@ -0,0 +1,42 @@ +cmake_minimum_required(VERSION 3.12) +include(pico_sdk_import.cmake) + +project(dual-mcu C CXX ASM) +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) + +pico_sdk_init() + +add_executable(dual-mcu-0 + dual-mcu.c +) + +add_executable(dual-mcu-1 + dual-mcu.c +) + +target_compile_options(dual-mcu-0 PRIVATE -Wall -DMCU0) +target_compile_options(dual-mcu-1 PRIVATE -Wall -DMCU1) + +target_link_libraries(dual-mcu-0 + hardware_pio + pico_stdlib + pico_util +) + +target_link_libraries(dual-mcu-1 + hardware_pio + pico_stdlib + pico_util +) + +pico_enable_stdio_usb(dual-mcu-0 0) +pico_enable_stdio_uart(dual-mcu-0 1) +pico_enable_stdio_usb(dual-mcu-1 0) +pico_enable_stdio_uart(dual-mcu-1 1) + +pico_generate_pio_header(dual-mcu-0 ${CMAKE_CURRENT_LIST_DIR}/dual-mcu.pio) +pico_generate_pio_header(dual-mcu-1 ${CMAKE_CURRENT_LIST_DIR}/dual-mcu.pio) + +pico_add_extra_outputs(dual-mcu-0) +pico_add_extra_outputs(dual-mcu-1) diff --git a/demo/dual-mcu/dual-mcu-0.hex b/demo/dual-mcu/dual-mcu-0.hex new file mode 100644 index 0000000..6e4a011 --- /dev/null +++ b/demo/dual-mcu/dual-mcu-0.hex @@ -0,0 +1,1293 @@ +:020000041000EA +:1000000000B5324B212058609868022188439860DF +:10001000D860186158612E4B002199600221596106 +:100020000121F02299502B49196001219960352056 +:1000300000F044F80222904214D00621196600F024 +:1000400034F8196E01211966002018661A6600F04E +:100050002CF8196E196E196E052000F02FF8012189 +:100060000842F9D1002199601B49196000215960AB +:100070001A491B48016001219960EB211966A021F2 +:10008000196600F012F800219960164914480160C1 +:100090000121996001BC002800D000471248134993 +:1000A000086003C880F30888084703B5996A0420EC +:1000B0000142FBD001200142F8D103BD02B5186610 +:1000C0001866FFF7F2FF186E186E02BD00000240BE +:1000D000000000180000070000035F00212200005C +:1000E000F4000018222000A00001001008ED00E03C +:1000F00000000000000000000000000074B24E7A12 +:1001000000200420F7010010C3010010C5010010F9 +:10011000C1010010C1010010C1010010C101001097 +:10012000C1010010C1010010C1010010C701001081 +:10013000C1010010C1010010C9010010CB01001065 +:10014000CD010010CD010010CD010010CD01001037 +:10015000CD010010CD010010CD010010CD01001027 +:10016000CD010010CD010010CD010010CD01001017 +:10017000CD010010CD010010CD010010CD01001007 +:10018000CD010010CD010010CD010010CD010010F7 +:10019000CD010010CD010010CD010010CD010010E7 +:1001A000CD010010CD010010CD010010CD010010D7 +:1001B000CD010010CD010010CD010010CD010010C7 +:1001C00000BE00BE00BE00BE00BE00BE00F051F882 +:1001D000103800BEF2EB8871E0020010040300103A +:1001E0003402001090A31AE700202449086006C8D2 +:1001F00081F30888104722480068002835D10DA4F3 +:100200000ECC002902D000F012F8F9E71D491E4A71 +:10021000002000E001C19142FCD11C4988471C49E3 +:1002200088471C49884700BEFDE701C901C29A42C0 +:10023000FBD3704704030010C000002018490020C1 +:100240005C4B001020490020504E00208C500010C4 +:1002500000000420000004208C5000100010042036 +:10026000001004200000000070470B4800F018F850 +:100270000047EFF30580C0B27047000008ED00E0D2 +:10028000000000D0504E00202C520020C119002048 +:100290005D010020B51A0020575600000000000044 +:1002A00001B40248844601BC604700BF7535002098 +:1002B00006005250ABB360531C4D00200600525054 +:1002C000861C03022C4D0020060052505422A29D91 +:1002D000384D002005005250DE65F4688C50001047 +:1002E000D4020010C8020010BC020010E04C002034 +:1002F000B0020010EC4C0020F84C0020484D0020CB +:04030000544D002038 +:10030400F8B5C0460448054B10B5834203D0044BEE +:10031400002B00D0984710BD504E0020504E0020B6 +:100324000000000006480749091A8910CB0F591824 +:1003340010B5491003D0044B002B00D0984710BDD2 +:10034400504E0020504E00200000000010B5074C15 +:100354002378002B09D1FFF7D5FF054B002B02D0E2 +:10036400044800E000BF0123237010BD504F00205B +:100374000000000018490020054B10B5002B03D0E5 +:100384000449054800E000BFFFF7CCFF10BDC0469C +:1003940000000000544F002018490020F0B5DE464C +:1003A400574645464E46E0B58BB004F027FB012185 +:1003B4003E4800F085F83E4982463C4800F09EF8ED +:1003C400002380220593F82352025B0202920393D6 +:1003D400C02305001B03102202A906A8049304F0FD +:1003E400C9F82B1DEA011B03134306A9102202A816 +:1003F400079304F0BFF82F4B0224059380231B03BB +:1004040004932000062100F011FA200000220121AB +:10041400013400F023FA0A2CF3D10023234C514673 +:10042400009302220833200000F0CCF82A00514641 +:1004340002AB200000F00AF953461F4A01259446F6 +:10044400FA225B005344DB00634452041A605146B1 +:100454002B008B4022682E00134323605346103335 +:100464009E40083B9D408B009A46144B00279B46B8 +:100474000121FF23B9404B40984663681E42FCD1DA +:100484000A4A5244116163681D42FCD1136A0A206E +:100494009946002100F030FE4B4642460021584662 +:1004A40004F0A0FA072301371F40E1E700002050C1 +:1004B400D849002002008100C8002050EC490020E7 +:1004C4000B4B10B59C46604444424441094AA40085 +:1004D40082B00092E31C2200074800F037F98442FE +:1004E40002DC001B02B010BD01204042FAE7C04606 +:1004F4000000D0AF304A002024500020F8B5DE467A +:10050400454657464E46E0B505000F0000F0E6F8B4 +:10051400294B8046E9184B425941284B3E799C4669 +:100524008B009B4663465A46985801230524B340E2 +:1005340020223C57013B921B002C2FDB944237DCDA +:10054400A340184234D19946002E18D07B783A78CB +:100554001B021A43BB781B041343FA7812061A438E +:100564009246002351465A008F5A7A0B00D1E7195C +:100574001A1912329200013357519E42F2D84B4657 +:100584005A46184363469850404600F0B3F820009A +:100594003CBC90469946A246AB46F8BD002A07DB10 +:1005A40019009140140089460142CDD0013AF7D296 +:1005B400034801F0A1FBC0460000D0AF6C4F0020FF +:1005C4001C4A0020F0B557464E464546DE468B464B +:1005D4004900E0B50D0082465D44ED0055442F000E +:1005E40009AC2678DC37741EA64189463968744202 +:1005F4008C4615491F26884626404644052B0ED9AD +:10060400A020B8461F274005D8354146540104436D +:100614000532053B0C603A402E60052BF5D859464F +:100624004944C900514452019B0613430A0008007F +:10063400DC3213606346D830066013603CBC9046DD +:100644009946A246AB46F0BD80E00000F0B5012516 +:100654008D400468AC434D0004606C18E400041938 +:100664002600C836002B2AD01F68DC3437605F6848 +:1006740077609F68DB68B76023606D18ED002C001D +:100684008023D03404195B012343802424061C6096 +:100694001C60114B0C1D8B40836001231F00A7407D +:1006A4003C0008318B4006683443046004682343EB +:1006B40003601F2340191A40D8300260F0BD802720 +:1006C4007F023760F8277F027760C027DC343F035E +:1006D400B7602360D1E7C04601010101EFF3108048 +:1006E40072B6034A1368002BFCD0BFF35F8F7047C8 +:1006F4002C0100D0BFF35F8F0022024B1A6080F3FD +:10070400108870472C0100D0F8B5EFF3108772B64B +:100714000D4E3368002BFCD0BFF35F8F0725CB0849 +:10072400C01801230D40AB401D000478254007D1BB +:1007340023430370BFF35F8F356087F31088F8BDE0 +:10074400100001F0D9FAC0462C0100D0F8B5CE460D +:1007540047468C4680B5EFF3108872B6214D2C685D +:10076400002CFCD0BFF35F8F9A422CD807210125BF +:1007740011408D40D4080419267835421FD0072132 +:100784008946063909E04D460F001540AF40D408AC +:10079400041926783D00374211D001329342F2D237 +:1007A40001204042BFF35F8F00220E4B1A6088F392 +:1007B400108800280FDB0CBC90469946F8BD3543E1 +:1007C40025701000EEE7BFF35F8F00232B6088F3E2 +:1007D4001088012040426346002BECD0089801F0B9 +:1007E4008BFAC0462C0100D0024B18688007C00F5A +:1007F4007047C04600C006400021044B044ABFF3C2 +:100804005F8F02C39342FAD17047C046000100D003 +:10081400800100D0044A1078431CDBB2172B00D9A6 +:10082400102313707047C046884D0020094A830086 +:1008340094464022634410B51C68C0006240C02442 +:1008440014408022520113431C60034B9C466044B5 +:10085400416010BD04C00140004001400A4B8000CB +:100864009C4604236044002901D00C230821002A5B +:1008740000D10B00026853400C221A4080235B0114 +:10088400184302607047C04604C0014001238340FE +:10089400002904D0034A1360034A13607047034AD3 +:1008A4001360FBE780E200E000E100E080E100E0AB +:1008B400024B10309B688000C058704700ED00E088 +:1008C40070B50D00EFF3108672B60F4A1368002B53 +:1008D400FCD0BFF35F8F0D4B10309B6884001B5915 +:1008E4000B4A934203D09D4201D001F01DFA074BFD +:1008F4009B681D51BFF35F8FBFF35F8F0022024BD4 +:100904001A6086F3108870BD240100D000ED00E069 +:10091400CD010010F0B54546DE4657464E46E0B5DB +:100924000D0083B0EFF3108A72B65A4A1368002B95 +:10093400FCD0BFF35F8F1022914681444A46564B48 +:1009440096009B689C59554B98469C4205D0AC42F6 +:1009540016D0534FE31B2F2B14D94F4B9B689C513C +:10096400BFF35F8FBFF35F8F00224A4B1A608AF395 +:10097400108803B03CBC90469946A246AB46F0BDF5 +:100984001C00EAE7012383409B465A46454B1B68FB +:100994001A4000925A46444B1A60BFF35F8F04F02A +:1009A400D3F80190002803D0814501D001F0BCF9AF +:1009B4000123220006219A43936851569D420AD18D +:1009C40052E04B005B1806219B00FB1898685956AF +:1009D400A8420FD01A000029F3DA009B002B05D09F +:1009E4005A46324B1A602F4B1A60B6E75A462E4BC2 +:1009F4001A60B2E7002921DB4A00501880003D1834 +:100A04008046A8689860E879D871062028569871BD +:100A1400002826DBAD88F81A6D052D1545444019CC +:100A2400E0250005400D2D02284398805218204BE4 +:100A34009200BF181A781970BA71CEE7019900298B +:100A440018D1002A23D0FF3191711A499180184995 +:100A54000A789A71184ADB1B5B415A43120D0A70DB +:100A6400BBE7BD200002E0E713000029C4DA019AC5 +:100A7400002A0CD0114A1249D21A083A5002400DE9 +:100A8400014399800F4952080A43DA80A5E7444696 +:100A9400DDE7C046240100D000ED00E0CD010010E8 +:100AA4008C4D002000E100E080E100E080E200E005 +:100AB4002650002000BDFFFFAAAA0000C64D00205A +:100AC40000F0FFFF00F8FFFFF8B50125040005431F +:100AD40004F03AF8EFF3108672B6214A1368002B3B +:100AE400FCD0BFF35F8F1F4B1F4A2100C91A494135 +:100AF4004A43120D1D4980008F6852B23F58AF42DD +:100B04001CD00621595691421CD0122159569142AB +:100B140022D01E215956914220D02A215956032011 +:100B2400914210D0124B19781A70A171BFF35F8FE4 +:100B340000220B4B1A6086F31088F8BD8B680D49B0 +:100B44001950EFE700204100091889005B18FF21C4 +:100B5400997109499980E5E70120F4E70220F2E759 +:100B6400240100D08C4D0020AAAA000000ED00E072 +:100B740026500020CD01001000BDFFFF054B064AA2 +:100B84001360064A136053609360D360136153612A +:100B9400936170478080808000E400E004E400E01A +:100BA400024B9C4661448900016070474000003458 +:100BB40083680B4810B584466144624409011201FC +:100BC4009A18591854684B6801209C4201D802D0E5 +:100BD4000020C0B210BD12680B689A42F9D8F7E73A +:100BE400FFFFFF0F0A4B1968EFF3108072B60A6813 +:100BF400002AFCD0BFF35F8F1B68BFF35F8F002216 +:100C04001A6080F3108840BF002000217047C0465E +:100C14000C500020F8B5454657464E46DE46E0B532 +:100C240014000DAA12781D000CAB92461B780268C2 +:100C340081469046002B13D1977B002F4AD0404623 +:100C44007E001268F619033E921951783B008173B5 +:100C5400002900D1C173002191705170117003E01B +:100C64001F005E00F618033E2E4A94464A469268D8 +:100C7400634494461B010A9A63449A600B9A1C606D +:100C84005D60DA60434600221B689B199A705A70B3 +:100C94001A7043465B7B9B46002B2BD043463A009D +:100CA400986859465B6898475B4642465B005B44DC +:100CB400033B1268002814D0D31896195A46B27010 +:100CC4001A78002A00D072701F705A4643465A732D +:100CD400BB4511D038003CBC90469946A246AB4671 +:100CE400F8BDD31896199F703278002A00D05A7034 +:100CF4005B46337043465F734B462200187D2B00DE +:100D040000F034FB041E07D05346002B04D14B469D +:100D14003900186800F0A8FE0E9B002BDAD01C7076 +:100D2400D8E7C046FFFFFF0FF0B5DE4657464E46F4 +:100D340045460023E0B58DB00A936D4B8200D4582C +:100D440000239B460B9000F0AFFA6268EFF3108526 +:100D540072B61368002BFCD0BFF35F8F23689C46E8 +:100D64005B7B9946002B00D16BE0A268614B9046F7 +:100D74004B441B01984443461E685F6832003B00A5 +:100D8400121A8B41002B65DD3B0032000B9800F0FA +:100D9400EDFA0023002208920993002300279A46C3 +:100DA4006368BFF35F8F5A461A6085F31088534611 +:100DB400002B08D10028C6D10DB03CBC9046994602 +:100DC400A246AB46F0BD0A9B390018024B461843B5 +:100DD400D047626806900791EFF3108872B65646C2 +:100DE40045461368002BFCD0B246A846BFF35F8F7C +:100DF4000699079A131E49DB194302D02369002B75 +:100E04005FD12368DA7B002A07D051008A18196859 +:100E14008C4649466244033A51704A46DA73E268A2 +:100E24004B469446013B63441A7801321A705B4680 +:100E340023616368BFF35F8F5A461A6088F3108892 +:100E440081E70023002208920993002300279A4691 +:100E54000020A5E7002B01D1002A95D1002160468E +:100E640000F024FD43461A685B68089209934346E0 +:100E74009B689A464346DF68E3684B44013B1B7812 +:100E84000A931B0203432361002089E72369002B93 +:100E9400B7D0089D099E6D1A96412A003300089D1B +:100EA400099E9E4218D81BD05946049101210391F2 +:100EB400494602915146019700912000FFF7AAFE8E +:100EC400B5E700F0F1F9069A079B12184B419942D5 +:100ED40002D8E9D19042E7D901225242D317E3E77D +:100EE40008999142E0D901225242D317DCE7C04667 +:100EF400F84F0020FFFFFF0F10B5124C6368002B62 +:100F040004D00A211048FFF74BFE10BD23000F4AFE +:100F14001021206800F0ECFA032000F0B9F9032056 +:100F240000F098FA0A49032000F0DAF9FFF772FC9E +:100F3400084B9C46032360442375074B8000606084 +:100F4400DC60DEE7D44D00200C5000207109002045 +:100F5400E90A002040000034F84F0020F0B557465D +:100F64004546DE464E46E0B585B00092019310AB8F +:100F74001B7800270393002380469A4643465A6809 +:100F8400EFF3108972B61368002BFCD0BFF35F8FA8 +:100F940043461D68AC7B002C4FD0660036192B6885 +:100FA400033E9B195A78AA73002A00D1EA73424679 +:100FB4009F705F701F7092684E4B94460099019A1F +:100FC400E3181B01634419605A600E9A9A600F9AE1 +:100FD400DA602B689B199F705F701F706B7B9B4658 +:100FE400002B42D022001900A8686B6898475B4622 +:100FF4005B005B44033B2A6800282DD0D318961964 +:101004005A46B2701A78002A00D072701C705B467F +:101014006B735C452AD04346DB681B19013B187887 +:1010240043465B68BFF35F8F1F6089F310885346A4 +:10103400002B2AD10002204307E05B68BFF35F8FD7 +:101044001C6089F310880120404205B03CBC9046E6 +:101054009946A246AB46F0BDD31896199C703278D7 +:10106400002A00D05A705B4633706C734346187D77 +:10107400009A019B00F07AF982460028CBD04346BF +:101084002100186800F0F0FCC5E7039B002B2FD06B +:101094000E9B0F990020984703000B4328D00400AF +:1010A4000D1E0DDA0098019902000B00121BAB41D2 +:1010B400994213D818D000920193039B9A465DE796 +:1010C40000F0F2F824184D4123002C000093019401 +:1010D400A94203D8F1D1009B9842EED901235B4287 +:1010E400DC1700930194E8E700999142E3D9F5E70E +:1010F4000020AAE7FFFFFF0FF0B5C64600B584B095 +:1011040004000D0000F0D0F824184D41A9421DD868 +:101114001AD006267642F71736196F41AF4251D9D5 +:101124000026002700F0C0F832003B00121A8B4161 +:10113400002B19DC002B42D02000290000F0C0F85D +:1011440004B004BC9046F0BDA042E2D90726764222 +:10115400F71700F0A9F832003B00121A8B41012462 +:101164006442E517002BE5DD002302930193184B3D +:101174003200009317483B00FFF7F0FE0028DBDB4A +:101184000023BC4698461449144A4B6A9C4504D82B +:10119400886AB042D0D29C45CED11068EFF3108358 +:1011A40072B60768002FFCD0BFF35F8F1068BFF3DF +:1011B4005F8F4746076083F3108820BFE5E7002A66 +:1011C400BAD0D1E7AF42ADD1A642A9D8AAE7C0466A +:1011D400A5090020D44D0020004005400C500020FB +:1011E400F0B5C64600B5EFF305833F22134018005F +:1011F4001038EFF3108772B61F4D2A68002AFCD00E +:10120400BFF35F8F012211008140884644461B4989 +:101214004C631B4C2678A4463400C440224015D0AD +:101224004C6A1849820051588C4217D3164BD25835 +:1012340043469E4363461E70BFF35F8F00232B60BB +:1012440087F31088002A06D0904704E0BFF35F8F2D +:101254002A6087F3108804BC9046F0BD0B4A9B00BB +:10126400944663441A681A60BFF35F8F00232B60AF +:1012740087F31088EFE7C046280100D000400540FE +:101284002750002010500020744F0020D03F05400C +:1012940010B50100024A0348FFF736FA10BDC046F4 +:1012A400544A002025500020044A516A00E01900E5 +:1012B400906A536A9942FAD17047C046004005408B +:1012C400064A536A9942FCD807D1044B02E05A6A91 +:1012D400914202D19A6A8242F9D370470040054094 +:1012E40070B504000D00EFF3108672B61A4A136845 +:1012F400002BFCD0BFF35F8F002D1BD02000FFF725 +:10130400D7FA164988420AD02000FFF7D9FA0121FA +:101314002000FFF7BBFA0123A340114A1360114BCD +:10132400A400E550BFF35F8F00220B4B1A6086F3D5 +:10133400108870BD0B4BA200D5500122A2400A496F +:1013440020000B7893430B700449FFF7E3FA002164 +:101354002000FFF79BFAE5E7280100D0A10F002049 +:1013640038600540744F002027500020F0B5D64661 +:101374004F464646324CC0B5656A00E00D00A66A89 +:10138400616AA942FAD1AB4209D806D001242000EF +:101394001CBC90469946A246F0BDB242F6D9EFF382 +:1013A400108972B6274C21680029FCD0BFF35F8FE7 +:1013B4000126254986408C460978244D0F00374381 +:1013C4008846F9B28A46614654460C701C49041D8D +:1013D400A4004E636250840063510D6A00243542B8 +:1013E4001AD04D6A00E025008F6A4C6AAC42FAD1EB +:1013F400AB4219D801D1BA4216D8C2451DD0104B00 +:10140400134A1E625E631F2318401E3B8340136011 +:101414006346424601241A70BFF35F8F0022094BD2 +:101424001A6089F31088B2E70024BFF35F8F0022AB +:10143400044B1A6089F31088A9E70124ECE7C0463D +:1014440000400540280100D0275000201050002003 +:1014540080E200E010B5EFF3108472B60A490B681D +:10146400002BFCD0BFF35F8F01238340074A084859 +:10147400136202789A430270BFF35F8F00230B60FC +:1014840084F3108810BDC046280100D000400540F8 +:101494002750002070B506000D00140000291ED04E +:1014A400002A1ED073688068984763006A001B197D +:1014B4005219033B033A3168002808D0CB188A1824 +:1014C4009D70117800290ED11470280008E08A1844 +:1014D400CB1894701978002900D051701D70200029 +:1014E40070BD0800FCE7597028001470F8E7C04686 +:1014F400F0B5DE4657464E464546E0B583600023C8 +:1015040089B04260026806914373C9B20133059100 +:1015140001738373C1730492012900D8A4E00A0003 +:101524004B1ED9B2931E0791072B00D8AEE00025BD +:10153400CB080393049B564C591C564B56489B4668 +:10154400564B9A46564B9C46564B0293524663461C +:101554005F465E4662401A40504B2740FB185A4093 +:101564000640534601966646434033404B4E0A704C +:10157400B046019E0135B146C84446467340160440 +:10158400360ECE701602120E4A721A04120E0B7325 +:10159400CA731A021B0E4B75029B360E5C406346DF +:1015A4001C40404B120E9846029B474458406346E9 +:1015B40018404B4643445840039BEDB28E718A74E5 +:1015C4007C401831AB42C1D1079907230A009A43E2 +:1015D400531CDBB2914247D0049C5A00A446D21853 +:1015E400591C6244059DC9B2033A51708D423BD9DE +:1015F4004A005218981C6244C0B2033A50708542A3 +:1016040032D942001218D91C6244C9B2033A51704B +:101614008D4229D94A005218181D6244C0B2033AB7 +:101624005070854220D942001218591D6244C9B233 +:10163400033A51708D4217D94A005218981D6244DA +:10164400C0B2033A507085420ED942001218D91D17 +:101654006244C9B2033A51708D4205D94A00521806 +:101664006244033A08335370FF23069A1340590027 +:10167400C918049B9C460023614403394B7009B08C +:101684003CBC90469946A246AB46F0BD0123A3E775 +:10169400010203047F7F7F7F050607080101010122 +:1016A400808080800808080870B50400002907D0ED +:1016B4004B0000685B18033BC3185A78002A01D119 +:1016C400080070BD5500AD18033D4019002546784B +:1016D40045705D702000FFF7DDFE3100050020003D +:1016E400FFF7E2FF290002002000FFF7D3FE01000C +:1016F400E6E7C046F0B54E464546DE465746E0B5F9 +:101704000E0074000168A41985B0033C01920A1903 +:101714000500107800284CD043001B18033BCB185D +:101724005F78BC46002F16D1019C002C3ED0EC7B88 +:10173400002C04D063001B19CB18033B5E70EE73BE +:1017440000282FD10023537005B03CBC9046994625 +:10175400A246AB46F0BD7A006244033A89184A783F +:10176400934600224A7090465A7001003A002800BD +:10177400FFF790FE5B468146002B07D05B0029688B +:101784005B44033BCB185A78002A16D15A46494683 +:101794002800FFF77FFE2968019B0A19002BC6D198 +:1017A4000028CFD043001B18033BCB1800219970AD +:1017B400C8E7019B002BBAD1C4E750008018033856 +:1017C400091848788246404648705870594628009F +:1017D400FFF760FE53468346002B07D05B00296861 +:1017E4005344033BCB185A78002A06D15946524633 +:1017F4002800FFF74FFE8346C8E7500080180338DF +:10180400091840464F78487058705146280002978E +:10181400FFF740FE8246002F08D0BC467B002968B3 +:101824006344033BCB185A78002A06D15146029AE6 +:101834002800FFF72FFE8246D8E7500080180338AF +:10184400091840464F784870587002992800039749 +:10185400FFF720FE8046002F08D0BC467B00296895 +:101864006344033BCB185A78002A06D1039A4146B5 +:101874002800FFF70FFE0290D8E7032050430338F7 +:10188400091800204F784870587003992800FFF712 +:1018940001FE390002902800FFF706FF02990200BA +:1018A4002800FFF7F7FD0390E0E7C046F0B54E4689 +:1018B4004546DE465746E0B5467B050074000068A1 +:1018C400A419033C85B002190191117800294ED066 +:1018D4004B005B18033BC3185F78BC46002F18D13C +:1018E400019C002C40D0EC7B002C04D063001B191D +:1018F400C318033B5E70EE73002931D1002330001E +:101904005370697305B03CBC90469946A246AB46F9 +:10191400F0BD7A006244033A80184278934600226C +:10192400427090465A7028003A00FFF7B3FD5B46B8 +:101934008146002B07D05B0029685B44033BCB182E +:101944005A78002A17D15A4649462800FFF7A2FDC3 +:10195400019B010028680219002BC4D10029CDD0B5 +:101964004B005B18033BC31800209870C6E7019B2B +:10197400002BB8D1C2E75000801803380918487802 +:10198400824640464870587059462800FFF782FD49 +:1019940053468346002B07D05B0029685344033B1E +:1019A400CB185A78002A06D1594652462800FFF728 +:1019B40071FD8346C7E75000801803380918404674 +:1019C4004F7848705870514628000297FFF762FD1F +:1019D4008246002F08D0BC467B0029686344033B41 +:1019E400CB185A78002A06D15146029A2800FFF7EC +:1019F40051FD8246D8E75000801803380918404644 +:101A04004F7848705870029928000397FFF742FDF9 +:101A14008046002F08D0BC467B0029686344033B02 +:101A2400CB185A78002A06D1039A41462800FFF7BA +:101A340031FD0290D8E703205043033809180020F1 +:101A44004F784870587003992800FFF723FD390038 +:101A540002902800FFF728FE029902002800FFF7F1 +:101A640019FD0390E0E7C04670B5040000292CD0AE +:101A7400437B8B422ED00568480040180338281851 +:101A84008278002A21D053009B18033BEB181A7864 +:101A94008A4202D11BE0002A08D053009B18033B62 +:101AA400EB185A788A42F6D142785A700023012200 +:101AB400837043702000FFF71DFE617B020020004D +:101AC400FFF7E8FC6073012000E0002070BD42785D +:101AD4001A70EBE701221900FFF70CFE6073012076 +:101AE400F4E7C04610B50400FEF794FE01002000A0 +:101AF400FFF756F8FF232371BFF35F8F10BDC04675 +:101B040010B50400FEF786FE01002000FFF748F838 +:101B1400FF23A380BFF35F8F10BDC046F8B5040058 +:101B240006200D0000F066FA002845D02B4B2C4906 +:101B3400E3185A4253418022D20394465B42134035 +:101B4400284A63441360284A136018008A68904343 +:101B5400FBD1224B8021E3185A425341234A5B00B4 +:101B640049000620995200F045FA2900C00001F00E +:101B740077FEC30921D14027012226008025626215 +:101B8400A36200232C36AD0135432B60062000F000 +:101B940031FA3900800001F063FE6023E26A5340A9 +:101BA4006E221A4080235B0133431A60104B236377 +:101BB40010232B600D3BA364F8BD0E4A934203D956 +:101BC40000230D4F0D4AD8E77F2210400130400812 +:101BD4009F011A003F180300CFE7C0460080FCBFF6 +:101BE40000C0004000E0004000F000402850002009 +:101BF40001030000FEFF0000C0FF3F00FFFF0000E4 +:101C04002D4B2E4A70B51A602D4A2E4B2E491A6060 +:101C140010008B689843FBD12C4C2D4B9C4209D26D +:101C2400013B1D1BAD080135AD002D1908CC9847AB +:101C3400AC42FBD100F07EF8264A224B1A60224ABD +:101C44009368DB018033FBD14022234B234D24488E +:101C54009A675A671A67DA66A84205D30EE0FFF757 +:101C64004FFF2000AC4209D2040003680834002B63 +:101C7400F5D1FFF737FF2000AC42F5D3194C1A4DCC +:101C8400A168C022280002F075FCA560FEF7B4FD2F +:101C9400FEF774FFFFF730F9144C154B9C4209D240 +:101CA400013B1D1BAD080135AD002D1908CC98472B +:101CB400A542FBD170BDC04600E00040BFCDFBFE95 +:101CC400FE7F3C0000F0004000C000403C4E00207D +:101CD4004C4E0020FFFFFF0100F001403C4E00206D +:101CE400344E002000ED00E0000000204C4E0020A7 +:101CF400504E002000BEFDE70FB400B5084883B085 +:101D040002F0EEFD049B002B07D005A918000191F9 +:101D140001F030FD034802F0E3FD00BEFDE7C046DC +:101D2400844A0020184A002010B50148FFF7E4FF58 +:101D3400784A002030B50C2083B000F0B5F9FEF7E6 +:101D440053FD00280ED0944B944A1A605A609A604E +:101D5400DA601A615A619A61DA611A62904A5A62C7 +:101D640003B030BD8F4CA06700F0A6F901228E4B62 +:101D74001A60636C012BFCD103228C4B1A60894AD4 +:101D8400936B012BFCD101330093894A0433012165 +:101D9400884800F035F90523874A009301218748D4 +:101DA40000F02EF9864B5A68FF2A02D8802252008E +:101DB4005A608022784C7D4B21691201804D1A6053 +:101DC400002905D0606901F04BFD01300138FDD1D7 +:101DD400E0217B4B02201A681140802252012A43E1 +:101DE40011601968484003210140116004219A6878 +:101DF4001142FCD08022802192012A430901116002 +:101E0400802252005A606F4B23616F4B5968FF293F +:101E140000D85A6003226C48634B01211A60020007 +:101E240093681942FCD0E02513681D4080235B01B0 +:101E340003431D6012684A400321114019600221C6 +:101E4400614A93681942FCD0802380219B0103439B +:101E54000901196080215D4B4900516063615C4B4D +:101E64005A68FF2A00D8596080225A4BE16912014E +:101E7400574D1A60002905D0606901F0F1FC01306A +:101E84000138FDD1E02252490B681A4080235B01DE +:101E94002B431A60802380229B012B4312011A607A +:101EA40080223E4B52004A60E3614B4B5968FF2944 +:101EB40000D85A608022494B216A1201464D1A60AB +:101EC400002905D0606901F0CBFC01300138FDD157 +:101ED400E02241490B681A4080235B012B431A60BE +:101EE400802380229B012B4312011A6080235B0014 +:101EF4004B602A4B3A4A23623A4B5968914201D8C3 +:101F040001325A608022384B616A1201354D1A60E1 +:101F1400002905D0606901F0A3FC01300138FDD12E +:101F2400E02230490B681A4080235B012B431A607E +:101F3400802380229B012B4312011A608023DB0241 +:101F44004B60174B6362294B5A68FF2A02D88022E0 +:101F540052005A608022264BA1691201234D1A6057 +:101F6400002905D0606901F07BFC01300138FDD106 +:101F7400E0221E490B681A4080235B012B431A6040 +:101F8400802380229B012B4312011A6080235B0073 +:101F94004B600E4BA361E3E6844F0020006CDC022F +:101FA4001BB70000008000403CB0004030B000404F +:101FB400002F685900800240008C864700C0024010 +:101FC40030800040001BB7003C800040405973073C +:101FD4005480004054B000406080004060B0004035 +:101FE400FFFF03006C8000406CB00040488000405C +:101FF40048B00040014B8000C0587047844F002017 +:10200400F8B504000C201E0017000D0001F028FC98 +:102014004201121A9101891AC9000918890138006C +:1020240001F01EFC069B226836041B033343002A7E +:1020340021DB194A194EA21851424A418021490113 +:102044008C4652420A40164962440A6015490A60A5 +:102054001700B1688F43FBD1C021221D89011143B0 +:1020640021222560A0600A602268002AFCDAE3606D +:1020740008230B60F8BD3F2221680A40AA42D8D148 +:10208400A2681205120D8242D3D1EE21E268C90280 +:102094000A409A42CDD1EDE70040FDBF00C00040A8 +:1020A40000E0004000F000408023024A9B0003430C +:1020B400D362704700800540AA23064A1B011360BF +:1020C4002F230549D360054B19605368002BFCDAB4 +:1020D4007047C0460040024000B0FA000060024071 +:1020E4007047C046F8B557464E464546DE46E0B50D +:1020F40099460A9B07009A460D9B884693460B9E79 +:1021040015009B070FD10C9B9E420CD29D1B0E0009 +:102114005D44541C4B4631002020B8472200A542A0 +:10212400F7D1B0460B9E002E28D04446AD19534635 +:10213400AA1B013E985D21004B46B847002EF6D1FC +:1021440023002C0098460D9B9B0710D55B46E51A8F +:102154000C9BAB420BD946462200984601344B46B1 +:10216400310020200135B8472200A845F6D82000C8 +:102174003CBC90469946A246AB46F8BD2C00E2E72B +:10218400F0B54F464646D646C0B584B098460EAB29 +:102194001B7894469946129B0D9C109F119E9A079A +:1021A40024D401221A409246002E62D1BC420CD2A1 +:1021B4001F2C00D9B8E00C9A551E302201E0202CC7 +:1021C40003D001342A55A742F9D85246002A0DD02B +:1021D400A6420BD9202C5AD00C9A551E302201E06D +:1021E400202C54D001342A55B442F9D1DA0632D520 +:1021F4005A0555D4002C4FD10F9A102A00D18CE0E7 +:10220400022A00D17EE030220C9C22704A4601242E +:10221400002A25D02D220C9D2A55013403930C9BB2 +:1022240002960093019443466246FFF75BFF04B0B5 +:102234001CBC90469946A246F0BD202CEED00C9AC8 +:102244001519013478222A70202CE7D030250C9AF5 +:10225400121915700134202CE0D04A46002AD9D135 +:102264005A0728D41A07D9D520220C9D2A5501349F +:10227400D4E7002A24D04A46002A28D10C321A4234 +:1022840025D1BC42A4D21F2C95D9202E1DD920249F +:10229400DA06C3D55A0503D4A7421AD0B44218D0DB +:1022A4000F9A102A1FD0022ACED1202CB6D00C9A15 +:1022B400121901342EE02B220C9D2A550134ADE76E +:1022C400BC4293D21F2C00D875E720248EE7013E30 +:1022D400D7E7621E002A10D00F9D102D2DD0022D9D +:1022E40015D01400B2E79A06A7D5202C96D058250D +:1022F4000C9A121915700134A6E70F9C102C15D0F6 +:10230400022CEED162220C9C227001249EE70C9DCB +:10231400AA4652446225157096E79A06E7D47822B5 +:102324000C9C2270012491E720244EE79A06F6D5EE +:1023340058220C9C2270012488E7023C9D06D6D4C6 +:102344000C9D2D1914007DE710B5002800D110BD97 +:1023540002F074FAFBE7C04610B5002803D04A68BF +:102364000B681100984710BDF0B5454657464E46D8 +:10237400DE46E0B59BB0249D259C824688460992A2 +:1023840099462A0023002800210001F032FD00288C +:1023940000D0CBE00122D94B52422800210001F0A9 +:1023A40023FD002800D0C1E00122D54B5242280071 +:1023B400210001F00BFD002800D0B7E0002200232B +:1023C4002800210001F002FD002800D0EDE1AB4619 +:1023D40008948023289ADB001A40119201D1062325 +:1023E40026935B460C9380235946289A1B011A4076 +:1023F400089B10920B4300D0AFE0002A00D0BFE14D +:1024040004260D930E930C9300230A93279BB34247 +:1024140001D99B1B0A930227289B1F4005D07342B6 +:1024240073410A9A5B421A400A920C9B002B07D014 +:10243400584608990D9A0E9B01F067FC8346089153 +:10244400002200232800210001F0C0FC002805D050 +:10245400802000068446089961440891289AA94B73 +:10246400414613405A4604930A9B50460393269BC5 +:102474000293089B009201934B46099A00F0A2F93B +:10248400002E63D0289B02009C061F23E4179C4364 +:102494006534431C089320004B464146D0470C9BAF +:1024A4000024DA179D18DB0F9B46731E55400C93CE +:1024B40002E00500202C11D00AAA94461F230134FF +:1024C40063440A2128001E1901F0CAF93031317021 +:1024D40028000A2101F0C4F9092DEAD8052306933E +:1024E4000C9B01940593002304930A3303935B46E6 +:1024F400029312AB0093089A4B4641465046FFF7AD +:102504003FFE002F22D0099BC41A279BA3421DD94A +:10251400020057461E00551C4B46414620200134FC +:10252400B8472A00A642F6D828000FE0289B2A00C4 +:102534000493279B41460393269B50460293230012 +:10254400009201934B46099A00F03CF91BB03CBC45 +:1025540090469946A246AB46F0BD6B4A089B94460A +:102564005800400D604401F057FC684A684B01F084 +:10257400EAFB684A684B01F0BFFB089B674A1B03F0 +:102584001B0B1A4306000F000C981100644B002229 +:1025940001F0A9FB634A644B01F0D5FB02000B0078 +:1025A4003000390001F0A8FB01F04EFC0C9001F062 +:1025B40033FC5E4A5E4B06000F0001F0C4FB0022B0 +:1025C4005C4B01F099FB01F03FFC5B4A5B4B0D90C7 +:1025D4003900300001F0B7FB06000D980F0001F040 +:1025E4001BFC574A574B01F0AEFB02000B003000B6 +:1025F400390001F078FB02000B000A900B9101F006 +:10260400A2FB06000F000A980B9902000B0001F0D0 +:1026140073FB00220E900F914B4B3000390001F0F8 +:1026240074FB0022494B01F067FB02000B003000F1 +:10263400390001F06AFB0022454B01F05DFB02000A +:102644000B003000390001F060FB0A9A0B9B0F006D +:1026540080210600C905002001F045FB02000B00A3 +:102664003000390001F048FB3A4F02000B000E988D +:102674000F9901F04AFB0022284B01F03DFBBC46B8 +:102684000D9A624416000022330501F05CFB07003A +:102694000D900E000E9102000B005846089901F0AF +:1026A40095FB00285ED13B003200C6260C996331AD +:1026B4008E42B641109976420436002900D1A3E631 +:1026C400134361D0089F244A244B5846390001F033 +:1026D40083FB002807D00022214B5846390001F023 +:1026E40075FB002850D1269B002B00D18CE6119B52 +:1026F4005A1E9341269AD31A269385E6FFFFEF7F4D +:10270400FFFFEFFFFFF7FFFF01FCFFFFFB799F5087 +:102714001344D33FB3C8608B288AC63F0000F03F00 +:102724000000F83F61436F63A787D23F71A3790923 +:102734004F930A400000E03F1655B5BBB16B024011 +:10274400EF39FAFE422EE63F00002C400000244000 +:1027540000001840FF0300002D431CEBE2361A3F33 +:1027640080842E410C9B0022013B0C930D98144B4A +:102774000E9901F0CAFA03000D900A000E9194E735 +:1027840000230D930E930C93269B19000C9B9942E6 +:1027940013DDCB1A013B26938023289ADB001A43CE +:1027A4000023289200260C932EE680231B069C46C9 +:1027B400A4446346AB4608930BE600232693EBE759 +:1027C40000002440F0B5DE4657464E464546E0B587 +:1027D40097B08046894692469B46209A219B1000DA +:1027E400190001F006FB002800D01FE2209821996F +:1027F4000122CC4B524201F0E9FA002800D03EE11C +:10280400209821990122C84B524201F0EDFA002888 +:1028140000D0E7E0209821990022C44B01F0E4FAAB +:10282400002800D0C7E0209821990022C04B01F075 +:10283400CDFA002800D0BEE0209821990022002380 +:1028440001F0C4FA002800D0E1E0002380240D93B5 +:10285400249BE4001C4000D0E9E000220626B54B8E +:10286400069207930EAB08932098219901F0ECFA95 +:1028740007000C9001F0D0FA02000B002098219977 +:1028840001F031FA069A079B01F05DFA0A900B9168 +:1028940001F0FEFA0500099001F0BAFA02000B00FB +:1028A4000A980B9901F01FFA0022A34B0A900B918E +:1028B40001F09AFA002800D148E12B0001331800F6 +:1028C400099301F0A5FA069A079B01F085FA0028FE +:1028D40004D03B0001330C9300230993002E00D055 +:1028E400D5E00C9D280001F097FA02000B00209817 +:1028F400219901F0F8F900228F4B06000F0001F036 +:1029040065FA002808D100228B4B3000390001F011 +:102914006BFA002800D17EE1202C00D1FAE00C9F54 +:102924000A21380000F074FF089E30313155380018 +:102934000A21651C00F06CFF002800D180E1202DE5 +:1029440000D1E7E00A2100F063FF3031715538000F +:10295400642100F05DFF0234051E14D0202C00D148 +:10296400D8E008AA944617232800634401340A21B6 +:102974001E1900F04DFF3031317028000A2100F09B +:1029840047FF051EEAD10323249A1340012B00D1EB +:10299400ECE0202C00D1C2E00D9B002B00D111E112 +:1029A4002D23089A651C1355249B01950393239B9F +:1029B4000293089B20E0249B52460493239B4946A0 +:1029C4000393229B40460293209B219C00930194F5 +:1029D4005B46FFF7C9FC17B03CBC90469946A2463B +:1029E400AB46F0BD249B5B070ED40322534B2499C2 +:1029F4000192039123990291009352465B46494602 +:102A04004046FFF76FFBE6E74D4B0422EFE7209AC1 +:102A1400219B0020002101F066F9012380240D93FD +:102A2400249BE400209021911C4000D115E7229BB7 +:102A3400092B00D808E1190030230EAA4E1E089273 +:102A44001370092E00D1F9E0537008AA0C009446C3 +:102A54008E1E1721093C02236144302205E0013314 +:102A6400CA54013E202B00D1A3E09C42F7D1354B40 +:102A7400F2009B181A685B6806920793F4E6249B9D +:102A84000393239B0293042301932F4BB4E7202C3D +:102A940040D0099D731E0A212800069300F0E0FE31 +:102AA400089B3031195528000A2100F0D9FE671C13 +:102AB4000995092D00D892E0202F2BD0B11E069144 +:102AC4000A2100F0CDFE089B3031D95509986421C4 +:102AD40000F0C6FE099AA51C0700632A00D87FE00F +:102AE4003419013C14E0631B08AA06939446172387 +:102AF400013563440A2138005E1900F0B1FE30311B +:102B0400317038000A2100F0ABFE092F68D90700A4 +:102B1400202DE8D10323249A1340012B25D020250E +:102B240042E7C046FFFFEFFFFFFFEF7F65CDCD41DA +:102B340065CDCDC180842E410000E03F744C00205F +:102B4400784C0020904C0020844C002000220A98ED +:102B54000B99494B01F03AF9002800D0BEE62B1E30 +:102B640060D1099B01330993B8E62024239B002BF1 +:102B740000D10EE70D9B002B03D1249A0C33134292 +:102B840002D0239B013B2393239BA34200D800E75D +:102B940008AA9446172330226344202CBFD02399DB +:102BA40001341A558C4200D1F3E6202CF7D12025AC +:102BB400FAE6324BF2009B185C681B680693079494 +:102BC400202451E6249B5B0720D4249B25001B076B +:102BD40000D4E9E62023089A01351355E4E63D00C4 +:102BE400202D97D008A98C461723069863444219D0 +:102BF4003021002826D001355955202D30D0AA4245 +:102C0400F9D12E230899541C8B5485E62B23089A5A +:102C1400651C1355C8E60123AC462B409C4463460F +:102C24000C9379E6DB0700D458E69AE7249B0393D8 +:102C3400239B029303230193114BDDE6012416E742 +:102C44002C00A0E62A00DCE7DA001E000B4B9B18E0 +:102C54005C681B68069307940EAB0024089303E694 +:102C64000323249A1340012B00D09DE6239B002BC1 +:102C740000D199E620247DE70000E03F904C00203D +:102C8400804C0020F0B54546DE4657464E46E0B53A +:102C9400A1B01D002A9B90460B93BD4ABD4B0A90E0 +:102CA4008B461A60002900D10DE2002328789A4649 +:102CB400002861D0B84B56469946C24609E0741CB8 +:102CC400320053460A9E5946B04726002878002809 +:102CD40050D001352528F2D1042328789846023BA8 +:102CE4009C460300203B691CDBB200240A00102B25 +:102CF4000ED84F469B00FB589F4601230D001C43F2 +:102D04002878691C0300203BDBB20A00102BF0D9A1 +:102D14000300303B092B41D900272A286AD000231D +:102D24000C932E2851D00300683BDBB2122B5FD8E2 +:102D34009A499B00CB589F4663460D001C43DFE72E +:102D440043460D001C43DBE710230D001C43D7E76B +:102D540008230D001C43D3E780235B0068781C43E1 +:102D6400551C0300253BDBB2532BA8D88C4A9B008F +:102D7400D3589F46D046B2465246D04501D8434622 +:102D84005A1E4346594600200A9CA047504621B08B +:102D94003CBC90469946A246AB46F0BD00270300D2 +:102DA40001E00D000131B800C0194000C0180B78D3 +:102DB40030381A00303A0700092AF2D918000023E3 +:102DC400AA1C0C930D002E28ADD180236878DB005B +:102DD4001C430300303B092B00D877E12A2800D19B +:102DE400ABE10300683BDBB215000132122B9FD923 +:102DF4001500B6E70B9B80CB002F00DA5BE1687807 +:102E0400AA1C0B930D008AE768786C2800D14DE268 +:102E140080235B001C43551CA3E780239B00687838 +:102E24001C43551C9DE76878682800D139E280234B +:102E3400551C1C4395E70B9B04CB98460C9B0B92AB +:102E44001078002B00D0A2E1002801D100F071FC21 +:102E540002235B425A1C0B9B944619000D92614459 +:102E640001E08B4206D001331A78002AF9D10B9A7B +:102E74009B1A0D938023DB0023400E9305D00D9BFA +:102E840019000C9B994200D90D93022323400F9300 +:102E940000D140E2002800D126E20E9B002B00D195 +:102EA400E6E141460C9B0C9129009C190B9B5D4665 +:102EB4009B1B3200B8460B938B460AE0534629000D +:102EC4000A9F561CB8470B9B985D002800D104E26A +:102ED40032009442F2D10C9B474698465B4626004A +:102EE400AB461D000F9B002B00D0FDE143460B9326 +:102EF400ECE60B9B04CB0B93002A00D128E12123A1 +:102F04001C43A44610A988461F240F2144440023CF +:102F1400884603E0202B00D124E10A0041461140F9 +:102F2400CFB238003730092900D807380133E054CC +:102F340011090F2AEED815E10B9B04330C93731C73 +:102F44000D939846A30700D406E20B9B3200187831 +:102F5400594653460A9CA047BE19012F00D8A7E240 +:102F64002B0042465546B0469A465E460A9F541C7C +:102F74002B0031002020B84722004445F7D15346A6 +:102F8400B346AA4626001D000C9B0B939EE6C04642 +:102F9400452A0020F44F0020944A0020D84A0020FB +:102FA400244B0020782800D152E2582800D183E134 +:102FB4006F2800D1F3E0622800D156E310232200E9 +:102FC4009A438023DB000D922340692800D0BCE3A0 +:102FD4000A220E92002B00D146E201230D9A9A4355 +:102FE4000D9280240D9BA40023409C46692800D1A7 +:102FF400E7E0642800D1E4E06346002B00D094E2CB +:1030040080230D9A5B001A400B9B904604330F9368 +:10301400002A00D02CE30D9B5B0600D544E20D9BF7 +:103024001B0600D488E30B9B1B881800031E00D0EA +:103034004DE20D9A1033110099430D91520500D4BD +:1030440045E2002398460D9B059706930C9B049339 +:103054000E9B0393002302934346019318AB009302 +:103064003200534659460A98FFF78AF80F9B060028 +:103074000B932BE6462800D18EE007220B9B049489 +:103084000733934319000C9A039702920CC90A98C8 +:10309400009201930B91320053465946FFF792FB7D +:1030A400060013E6741C320053460A9E5946252036 +:1030B400B04726000AE60222687814437F42AA1C1D +:1030C4000B930D002BE6D34B0A93EEE5002301008E +:1030D40000E02A009800C01840004018517803000E +:1030E40008003038551C303B0928F2D90C930800ED +:1030F400023218E6202302009A43472A04D180238F +:103104001B011C4302239843452801D120231C435F +:1031140007220B9B04940733934319000C9A0397DB +:1031240002920CC90A98009201930B913200534603 +:103134005946FFF719F90600C8E50B9BA87802CB9E +:10314400CA43D21711400C91EA1C0B930235EAE5ED +:10315400102321009943113319438C460023610540 +:1031640000D4CFE662460692082205920C9A049295 +:103174001022039200220292019318AB00933200B2 +:10318400534659460A98FEF7FBFF06009EE50028C1 +:1031940000D1CDE2013B5DE620231C436DE708230B +:1031A4000E9322000D948023DB001340642800D08A +:1031B400CEE2002B00D010E780241300A4002340AB +:1031C4009C466346002B00D0E5E080230D9A5B000B +:1031D4001A400B9B904604330F93002A00D0C6E19B +:1031E4000D9B5B0600D547E10D9B1B0600D499E2BD +:1031F4000B9B00229B5ED9175A184A401000DA0F25 +:103204001492002B09D1802310220D99DB000B406E +:1032140091430D91002B00D050E10D9A6123920649 +:1032240000D5412310AA1F249446DBB264440A3B10 +:10323400159716960B9346460700A84625000E9C44 +:103244000AE03033DBB20136AB55A74200D231E19C +:10325400202E00D12EE107002100380000F000FBF1 +:10326400CBB20929EDD90B9A94466344DBB2EAE761 +:103274000B9B32009E1B33005E46AB4655469A4676 +:103284000B970A9F2B003100541CB8475346185D16 +:1032940022000028F6D1AA460B9F5D46B3462600BD +:1032A40020E6C023A8781C4303355AE5C0239B00BD +:1032B400A8781C43033554E50C2322009A431433A5 +:1032C4001A430D92630500D5D3E080239B001C4074 +:1032D400F13BFF3BA4460E938EE60C9B4746984673 +:1032E4005B46AB461D00FDE50D9B32009F4200D8B6 +:1032F400FCE5BE19F61A2B005D469B460A9F541C3A +:10330400534629002020B8472200B442F7D15B4637 +:10331400AB461D00EAE50D9A531C974200D812E211 +:10332400BB199B1A0D971F0032005E46AB460A9DDF +:10333400541C534631002020A8472200BC42F7D138 +:103344005D46B34626000D9F7B1C0D930B9B18789E +:10335400002800D0A1E5C9E5012F00D8F0E1731ED3 +:103364003200A846DF190A9E5D460D9C00E0013438 +:10337400534629002020B0472200BC42F7D1260042 +:10338400AB46454601360B9B3A00187859465346DE +:103394000A9CA047F8E507220B9B073393430132AD +:1033A40094469C4462460B921A685B689C46DB1701 +:1033B4001293139312981399030053401093644685 +:1033C4000B0063401193109B119C1B1A8C411093AA +:1033D40011946346DB0F149363461A4350D00D9A3D +:1033E4006123920600D541230022DBB2904610AA45 +:1033F4000A3B1F2494460F935B46644417932300AF +:1034040015971696AB46109E119F44460E9D9846FE +:1034140010E0C046A11E00203032D2B2434601342F +:103424001A550023BB4200D167E1202C00D167E18B +:1034340006000F002A0000233000390000F052FA81 +:10344400D2B2092AE8D90F9B9C466244D2B2E5E77E +:1034540080231022DB0023400E920C2294430D940F +:10346400002B00D1BDE5B8E580239B001C40A44699 +:10347400A7E610230E93B0E50B9B1B781A00BDE65C +:103484000D9A1023110099430D915205A7D50023DD +:1034940098460D9B059706930C9B04930E9B0393F0 +:1034A400149B0293434667E60B9B1B781800BDE50B +:1034B4000D9E69E54546159FB046169E0D9B0597E2 +:1034C40006930C9B04930E9B0393149BC3E50D9AE4 +:1034D4006123920600D5412310AA1F249446DBB22F +:1034E40064440A3B149715960B9346460700A84676 +:1034F40025000E9C08E03033DBB20136AB55A74201 +:103504000ED3202E0CD007002100380000F0A8F9BB +:10351400CBB20929EFD90B9A94466344DBB2ECE7AA +:103524004546149FB046159E8DE507220B9B073335 +:103534009343013294469C4462460B921A6859683C +:103544001300100009910B435CD10D9A1033110044 +:1035540099430D91520555D5002398460D9B059727 +:1035640006930C9B04930E9B0393002399E70B9BF8 +:103574001B68D9175A184A401000DA0F1692002B0C +:1035840008D1802310220D99DB000B4091430D914B +:10359400002B2CD10D9A6123920600D5412310AA49 +:1035A40090461F24DBB244440A3B14971596A84660 +:1035B4000B932500070066460E9C08E03033DBB20F +:1035C4000136AB55A7420ED3202E0CD007002100A4 +:1035D400380000F045F9CBB20929EFD90B9A94468B +:1035E4006344DBB2ECE74546B446149F159E0D9B3D +:1035F400059706930C9B04930E9B0393169B0293CF +:1036040063462AE50D9A6123920600D541230022E0 +:10361400DBB2904610AA0A3B1F2494460F935B46E4 +:10362400644414971596AB4646461693A0460E9DE1 +:10363400099F04000BE03032D2B2434601369A555A +:103644000023BB4265D0202E65D004000F002A0061 +:1036540000232000390000F045F9D2B2092AEAD942 +:103664000F9B9C466244D2B2E7E702230E9398E58F +:103674000B9B1B68181E08D1802310220D99DB00B8 +:103684000B4091430D91002B2CD10D9A612392068E +:1036940000D5412310AA90461F24DBB244440A3BC0 +:1036A40014971596A8460B932500070066460E9CB2 +:1036B40008E03033DBB20136AB55A7420ED3202EDF +:1036C4000CD007002100380000F0CAF8CBB2092959 +:1036D400EFD90B9A94466344DBB2ECE74546B44613 +:1036E400149F159E0D9B059706930C9B04930E9BAC +:1036F4000393002302936346AFE4B54200D894E6F3 +:10370400179B109611975D46159F169EA0469B46E3 +:10371400BFE6A54297D9169BB0465D46149F159EF9 +:103724009B461BE70B9B1B68D9175A184A4065E553 +:1037340000230D93FFF79EFB0B9B1B68180075E499 +:1037440037000D9E1FE60D9302E60A230E932AE529 +:10375400140082E600B585B0039101210290009324 +:10376400034813004A4202A9FFF78CFA05B000BDD2 +:103774001921002010B5094A84B01468002C09D01E +:10378400012200910300524203A90548A0470120E9 +:1037940004B010BD01F0A4F80020F9E7F44F0020B4 +:1037A4000921002001480421014B1847004E002044 +:1037B40095350020142310B50100188804331B88A4 +:1037C400984710BD162310B50100188802331B88D2 +:1037D400984710BDF0B5C64600B5002916D014238D +:1037E4000400012598461827890046184346216895 +:1037F40018883B88984701C4431E984140420540BD +:10380400A642F3D1280004BC9046F0BD0125F9E797 +:10381400124A936F9B0815D29066D166002905D091 +:10382400FFE7FFE7FFE7516F106F704704B5802192 +:103834000906C2175140002800D0C84301F04AF9D4 +:10384400002104BDF0B5146E556E576F166FFFF767 +:10385400E3FF1466556657671667F0BD000000D095 +:10386400114A936F9B0813D210665166002905D044 +:10387400FFE7FFE7FFE7516F106F704704B50028BB +:1038840001D00020C04301F025F9002104BDC04649 +:10389400F0B5146E556E576F166FFFF7E5FF14669B +:1038A400556657671667F0BD000000D094464E4A2F +:1038B400926F9208624601D230E0C046F0B54A4E9B +:1038C400B56F6D08FCD3346E756E776F366F00F08C +:1038D40025F89446444A1466556657671667624647 +:1038E400F0BDC0469446404A926F9208624601D2A7 +:1038F40058E0C046F0B53C4EB56F6D08FCD3346E4D +:10390400756E776F366F00F04DF89446364A14663C +:103914005566576716676246F0BDC046002B24DB28 +:1039240011D000293EDA00B5C943404200D101312B +:1039340000F038F8C943404200D10131DB43524220 +:1039440000D1013300BD002AEBD1002801D10029A8 +:1039540005D00020C90FC90701D1C043410800B5F3 +:1039640001F0B8F80022002300BD00B500290ADBED +:10397400DB43524200D1013300F014F8C943404202 +:1039840000D1013100BDC943404200D10131DB43C4 +:10399400524200D1013300F005F8DB43524200D11A +:1039A400013300BD002923D1002B18D1002A0CD0EB +:1039B400BC460D4F38667A6600210023FFE7FFE717 +:1039C400FFE77A6F386F67467047002801D00748D1 +:1039D400010000B501F07EF80022002300BD0200C2 +:1039E4000B00002000217047000000D0FFFFFFFF04 +:1039F400002B00D0BFE0130C28D1002AE7D080B4FC +:103A0400114F39667A66FFE7FFE730B4040C7B6F29 +:103A1400396F1B0423433B667A66FFE7FFE7FFE742 +:103A2400C04684B27B6F3D6F1B0423433B667A66BA +:103A3400FFE7FFE7C04600232C042D0C7A6F386F94 +:103A440000196941B0BC7047000000D0F0B594463D +:103A54000025140E01D112020835140F01D11201F0 +:103A64000435940F01D192000235D40F01D15200D4 +:103A74000135D40B0134254F7C66254C3C660E0C75 +:103A840093B2FFE7FFE7FFE73C6F6643360C77032B +:103A9400BE467343DF0B5B04C01AB941130C734376 +:103AA400DB18C91ACE086643360CB64493B2734386 +:103AB4001F0F1B01C01AB941130C73431F0B1B05C5 +:103AC400C01AB941860D8F023E436643360C092D58 +:103AD40024DB520A7243801A7703460A6643360C83 +:103AE40016235B1BDE40DF40BF1964466643821B1E +:103AF4007046043506330100D940A840C01900D3EC +:103B04000131A24206D20023F0BD0000000000D023 +:103B1400FFFFFFFF121B0130F3D3F1E709277F1BDF +:103B2400FE406446A2B27243801A00D20139220CCC +:103B34007243130C1204821A99410B007046043527 +:103B440013370100F940A840801900D30131002B3C +:103B540002D1A2420AD2F0BD013000D30131121BBE +:103B6400FAD2013BF8D1A24200D2F0BD013000D319 +:103B74000131121BF7E7F0B51C0C00D080E00CB447 +:103B840000251C0A04D11B02160E33431202083509 +:103B94001C0B04D11B01160F3343120104359C0B7B +:103BA40004D19B00960F334392000235DC0B02D103 +:103BB40092185B4101351C00971864410134464F4B +:103BC4007C66464C3C660E0CFFE7FFE7FFE7C04609 +:103BD4003C6F6643360C7703BE4697B27743C01BEF +:103BE40000D20139C01B00D201399FB27743C91BEF +:103BF400C91B170C77437E04FF0B801BB941CE0809 +:103C04006643360C0C2D33DBB644120B1F053A43C6 +:103C14001B0B97B27743C01B00D201399FB2774385 +:103C2400C91B170C77433E043F0C801BB941860D1A +:103C34008F023E43664329277F1BFE400C3D774697 +:103C4400AF40BF1930BCA2B2ABB272437343801A07 +:103C54009941220C7243130C1204801A99410200F8 +:103C64000B000137001BA941F9D2781E0021F0BDD9 +:103C74000C277F1BFE4077467F0BAF40FF19E0E720 +:103C840000245D1C07D0144F7D663966FFE7FFE70B +:103C9400FFE7FFE73C6F95B29EB265436643401B66 +:103CA400B141150C1E0C6543664336042F0C3E438C +:103CB4002D04401BB141994204D202000B002000A4 +:103CC4000021F0BD01D19042F7D3801A994101340B +:103CD4009942F2D3F6E70000000000D0FFFFFFFF97 +:103CE40048404140484018B41B4B5B68FC46019374 +:103CF40008BD04DF573D002018B4174B1B68FC4671 +:103D0400019308BD00DF613D00209446134A926F81 +:103D1400920809D2624618B40F4BDB68FC46019343 +:103D240008BD0CDF194000200C4AF0B5146E556E26 +:103D3400576F166F6246FFF7EEFF084A1466556622 +:103D440057671667F0BD18B4034B9B68FC46019394 +:103D540008BD08DFBD3E00202C500020000000D02C +:103D6400FFB550404240504059404B40594000E05C +:103D7400FFB5154F4C00640D03D0BC4204D10C03B5 +:103D840014D80020090D09055C00640D03D0BC4261 +:103D940004D11C030AD800221B0D1B0501264B402D +:103DA40009D44B4003D58B4200D18242FFBD9942D6 +:103DB400FCD19042FFBD0B43DB1803431343F5D002 +:103DC400C9434918FFBD0000FF07000000B5FFF715 +:103DD400CFFF804100BDC04600B5FFF7C1FF01D948 +:103DE400002000BD012000BD00B5FFF7B9FF8041F0 +:103DF40000BD012040054A00121804D85A001218C8 +:103E040001D800207047012070470020704700004F +:103E14000021002805D17047C1174840401AFAD044 +:103E2400C90713B5064B1B6898470CBC441CA24039 +:103E34001005120B0349091B09051943114310BD51 +:103E4400085000201F04000010B54C00620D8023B0 +:103E5400D218DB00D21A5B057E2A10DD9E3A13DAF3 +:103E6400CC170903490819435242D1406400013474 +:103E74001532202A05DAD0400843604310BD0020E3 +:103E840010BD0846604310BDC80FC018013810BDEE +:103E940018B4044B5B6AFC46019308BD24DFC94196 +:103EA400002000002C500020132370B51D78012D34 +:103EB40015D010DD2648FFF785FC264C0100802232 +:103EC400200000F057FB022D06D02348FFF772FCB8 +:103ED400224B186070BD1F4C214AA264F5E71D4CAB +:103EE4001F4AA3085B421D402FD02B0022602020D4 +:103EF400A9006118451B0A604A608A60CA600A61A9 +:103F04004A618A61CA610A624A628A62CA620A634F +:103F14004A638A63CA630A644A648A64CA640A652F +:103F24004A658A65CA650A664A668A66CA660A670F +:103F34004A676D08102D03D18A67CA67A264C4E773 +:103F44001E339B00E250A264BFE70023CFE7C046C4 +:103F5400534400002C5000204C3300000850002033 +:103F6400253D002007B5604601880A0A0230DF2A91 +:103F7400FAD1C9B2820804D30288408800041043ED +:103F840000E00068014A5050039007BD2C50002007 +:103F94000FB403BC0CBCF0B50124E407634000E09B +:103FA400F0B50C0DCF0F661E3605891B640503D3CF +:103FB400C943404200D30131640D03D0661CF60AA4 +:103FC40007D0E41B00207F00791C89078912803CFC +:103FD40024031D0DDF0F6E1E36059B1B6D0503D3D9 +:103FE400DB43524200D301336D0D03D06E1CF60A3D +:103FF40007D0ED1B00227F007B1C9B079B12803D9A +:104004002D032F1B661B58D4A446202E46DA2037D6 +:104014001400BC401D00BD40F24033412A438018C7 +:104024005941CB0F05D0C943C043002264425041DB +:10403400514162464D0D28D10D0D07D100281FD0E6 +:10404400241940414941013A0D0DF9D0640006D3C9 +:10405400013000D30131002C01D140084000013A65 +:104064000BD4941CE40A04D112051144DB0719444F +:10407400F0BDD907204B194300E0D9070020F0BD5B +:104084000029DDD1002CDBD1F0BD0132C607400888 +:10409400CD0728434908002EE1D0D9E73C2E29DA80 +:1040A400203E40371400BC4000D00124F2401443A9 +:1040B4001A00BB401C43D317ACE7AC46202F08DAE8 +:1040C40020360400B4400D00B540F840394128437F +:1040D400A5E73C2F0CDA203F40360400B44000D062 +:1040E4000124F84004430800B1400C43C117EAE737 +:1040F40010001900002494E70000F07FF0B50C0DC7 +:10410400661E3605891BE60A6405640D02D0651C2B +:10411400ED0A04D0002001210905803C2403A446B3 +:104124001C0D671E3F05DB1BE70A6405640D02D006 +:10413400651CED0A04D0002201231B05803C2403E6 +:104144007740644497B484B296B27443070C7E43B8 +:10415400150C6F4380B26843361802D30120000463 +:104164003F183004350C00197D41844688B29AB258 +:1041740050430C0C62431F0C7C438EB27E43921955 +:1041840002D301263604A4191604170C3618674105 +:1041940001BC81B29AB25143040C62431B0C5C43D0 +:1041A40080B25843121802D30120000424181004CA +:1041B400130C401863412D185E410020474106BC92 +:1041C40088B293B258430C0C6343120C544389B223 +:1041D40051435B1802D301210904641819041A0C11 +:1041E400091862416D1856410020474118BCF90274 +:1041F400720D1143F0026A0D1043ED020A0D03D152 +:104204006D1940414941013B124E9B1B7600B3425C +:104214000ED26D0007D30130002671416646354346 +:1042240001D1400840001B05C918E4072144F0BD32 +:104234000BDA013306D1013004D101314F0D01D025 +:104244004908F2E7E1070020F0BD013631050020FE +:10425400EBE70000FF030000F0B51C0D671E3F05EF +:10426400DB1BE70A6405640D02D0661CF60A04D061 +:10427400002201231B05803C2403D0252D060026A3 +:10428400F6432E661E096E66CE0FF619B446490033 +:104294004F0D02D07E1CF60A03D000200021403FBF +:1042A4003F033E1BB600B444013F7F05C91B4908C8 +:1042B4002E6F013676089C02950D25437543ED1348 +:1042C4007543AD1301356D10F603761B0CB4CC02A7 +:1042D400450D2C43A2B2B3B25A43270C7B43350C91 +:1042E4006F43A4B26C431B1902D3012424043F1965 +:1042F4001C041D0CA4187D4124196D41009A91B22F +:10430400ACB26143170C7C432B0C5F4392B25A430B +:10431400A41802D301221204BF182204230C521839 +:104324007B41019C6C431B19520ED9010A43440181 +:10433400A01A81B2B2B2514303145A43360C7343E8 +:1043440087B27743D617D21900277E4136049B19CA +:104354001704160C7F185E417316ED18F30100263E +:1043640080337541A90F06D16400690AE8055B0A28 +:10437400184309D22FE00422944480337541A90ADA +:10438400A8059B0A184326D3404149412404009AB6 +:10439400019B0D005543641B4343E41A95B286B256 +:1043A4007543170C7E43030C5F4392B25A43B6180D +:1043B40002D301221204BF183204330C52197B4178 +:1043C40052429C41002C02D4002201305141400849 +:1043D400CA071043490802B06246D7079210084B37 +:1043E400D218084B9A4203D212058918C919F0BD94 +:1043F4000020002A01DC3900F0BD01331905F5E77E +:10440400FD030000FE070000002200B5203200F08A +:1044140004F8080000BD000000220B150AD410B5F2 +:10442400944600F031F81414013400DA0021CB175B +:10443400144C20470020002170476244343A0CD4C5 +:104444000C2A07DA04009140904052422032D440B2 +:10445400214310BDD843D94310BD203207D40C46A4 +:104464009440524220321141D040204310BD0800F4 +:10447400C917203203D452422032104110BD180013 +:10448400190010BDFB4100200A0DCC0F531E1B0563 +:10449400C91A520503D3C943404200D30131520D16 +:1044A40003D0531CDB0A07D0121B00206400611CDC +:1044B40089078912803A1203014BD21A704700000F +:1044C400FF030000132310B51C781348FFF77AF993 +:1044D400012C0BD004DD01008022104800F04AF8C2 +:1044E4000F48FFF767F90F4B186010BD0B4C010024 +:1044F4005422200000F03EF80B4B6365A365E3658E +:1045040023666366A366E36623676367A367E3675B +:104514002362E361E4E7C046534600002C510020C7 +:104524004C33000008500020ED42002007B56046DF +:1045340001880A0A0230DF2AFAD1C9B2820804D3F8 +:10454400028840880004104300E00068014A50508B +:10455400039007BD2C51002001480421014B18474A +:10456400104E002095350020014B1B6818470000B1 +:10457400104E0020014B5B6818470000104E0020CD +:10458400030010B508001B681100984710BDC04611 +:10459400F8B54746CE4680B5437C80460C001500EE +:1045A400002B43D0002A34DD0A78037C00200A2A39 +:1045B40033D0012D1ED0204B0121671E994602E005 +:1045C4003100B54216D0635C7A5C4E1C0A2BF7D1DD +:1045D4000D2AF5D043461B68884204DA091A2018CC +:1045E400984743461B6802214846984730003100EB +:1045F400B542E8D1854204DD4346291A1B682018D8 +:1046040098476419013C23780D3B5A425341424672 +:1046140013740CBC90469946F8BD002BC9D143468F +:10462400054802211B6898470120C2E7036811006E +:1046340020009847EDE7C046444D0020F8B54E46AB +:10464400DE4657464546344BE0B51C688146002C8F +:104654004ED0324B9A46324B9B4602E0E468002C23 +:1046640046D02368002BF9D052461268002A01D0A4 +:10467400A242F3D14F46627C40CF002A48D0002E9C +:10468400ECDD49460979227C00200A2939D0012E23 +:104694001ED04B4601215D1C03E0013541464645D1 +:1046A40016D04B1C98462B79EA780A2BF5D10D2AA3 +:1046B400F3D02368814203DD091A38189847236828 +:1046C4000221584698470135404641464645E8D1BF +:1046D400864203DD311A236838189847BF19013F11 +:1046E4003B780D3B5A4253412374E468002CB8D103 +:1046F4004A46002313603CBC90469946A246AB460A +:10470400F8BD002AC3D10648083998470120BEE7FE +:10471400310038009847A1E7EC4F0020F04F00200B +:10472400444D00200B6870B505000C00802B04D0AC +:104734005A1C2260E418257170BD0800FFF77EFF43 +:104744002368F5E7F0B5DE4657464E464546E0B5E4 +:104754001E00D0231B0683B01C68334B01AF804678 +:104764000D001800390091469B4600F01DFA824660 +:10477400002808D1019B64B29C4204D0584600F042 +:10478400EFF901239A466B1C03D1404600F0A4F9CB +:104794000500002E28D1254E254B1C68002C16D070 +:1047A4004B46002B22D1234F02E0E468002C0ED0AC +:1047B4002368002BF9D03B68002B01D0A342F4D12D +:1047C40020002A004146B047E468002CF0D153464B +:1047D400002B25D1681E8541E8B203B03CBC90464D +:1047E4009946A246AB46F0BD134ED5E7114B994608 +:1047F40002E0E468002CEAD02368002BF9D04B4691 +:104804001B68002B01D0A342F3D12A0041462000AB +:10481400B0470A230122390020003B70B047E8E783 +:10482400584600F0E5F9D5E7344E00205143002006 +:10483400EC4F0020F04F002041430020F0B54746E4 +:10484400CE4680B583B06B46DF1CD02338701B0680 +:104854001C68204B060001A91800984600F0A4F932 +:10486400051E22D01C4B1C68002C2AD01B4B9946D9 +:1048740002E0E468002C10D02368002BF9D04B46EA +:104884001B68002B01D0A342F3D120000122390080 +:10489400FFF77EFEE468002CEED1002D11D130002C +:1048A40003B00CBC90469946F0BD019B64B29C4297 +:1048B4000BD0404600F054F9074B01251C68002C2E +:1048C400D4D1404600F094F9E9E7034B1C68002C6E +:1048D400CCD1E4E7344E0020EC4F0020F04F002010 +:1048E40070B5040000F0F8F800230100050001226F +:1048F4002000FFF727FF084B1C68002C06D06368D4 +:10490400002B05D09847E468002CF8D1280070BD2E +:10491400E468002CF3D1F9E7EC4F00200A4A13684D +:10492400002B05D10CE01A00DB680C32002B07D0F9 +:104934009842F8D1002902D1C3681360C16070475E +:104944000029FCD01060FAE7EC4F0020F0B5C64611 +:10495400D02300B5204EA2B01B06070088463000C5 +:1049640001A91C6800F020F9051E07D1019B64B25F +:104974009C4203D0300000F0F3F80135842200217A +:1049840001A8FFF7F1FD43463A0001A91348FEF7D9 +:10499400E1FE019B0700002B02D001A8FFF74EFEA9 +:1049A4000F4B1C68002C06D06368002B0AD0984774 +:1049B400E468002CF8D1002D09D1380022B004BCE1 +:1049C4009046F0BDE468002CEED1002DF5D0300007 +:1049D40000F00EF9F1E7C046344E0020E544002013 +:1049E400EC4F00200FB400B583B004A901C90191B4 +:1049F400FFF7ACFF03B008BC04B0184710B500F0D3 +:104A040045F810BDF0B5002915DD0E4B0D271A68C9 +:104A14000D4B4118D3185C4263410C4C5B001E5F84 +:104A240020240578AE4207D093691C42FCD10130A2 +:104A340015608842F5D1F0BD93691C42FCD1176022 +:104A4400F2E7C046205000200080FCBF2850002020 +:104A540030B5002914DD0C4B1A689369DB060FD4BA +:104A6400002510240138013593691C42FCD11368D8 +:104A74004355A94202D093691C42F4D0280030BDAA +:104A840003256D42FAE7C04620500020E12110B50D +:104A94000B4B0C481B780C4B49021B780B4B1860D2 +:104AA400FDF73CF802210020FBF7C0FE02210120A3 +:104AB400FBF7BCFE01210648FFF730FF10BDC046DE +:104AC400FC020010004003400003001020500020AE +:104AD400204E00207047C04610B5830727D00378C6 +:104AE400002B26D00300032102E01A78002A1CD0F0 +:104AF40001330B42F9D119680F4A104C8A188A43C2 +:104B040022420FD1043319680B4A8A188A4322427D +:104B140008D104331968084A8A188A432242F1D01A +:104B240000E001331A78002AFBD1181A10BD0300E3 +:104B3400E1E70020FAE7C046FFFEFEFE80808080A9 +:104B4400F8B5C0460000000001B40248844601BC28 +:084B5400604700BF730200106E +:104B5C00D02330B500251B065D57002406E0036802 +:104B6C00BFF35F8F1C6081F3108820BF0268EFF3E6 +:104B7C00108172B61368002BFCD0BFF35F8F0379E2 +:104B8C007F2BECD905710368BFF35F8F00221A608D +:104B9C0081F3108830BDC046030010B50068EFF3F8 +:104BAC00108472B60268002AFCD0BFF35F8F042217 +:104BBC009A56002A0BDB00290FD000200A601B68D4 +:104BCC00BFF35F8F00221A6084F3108810BDD022CF +:104BDC001206126801201A71F1E70020EFE7C046B7 +:104BEC000268EFF3108172B61368002BFCD0BFF390 +:104BFC005F8FFF2303710368BFF35F8F00221A607E +:104C0C0081F3108840BF7047E049002005FF000089 +:104C1C00A08003A088650840209F00006D63752567 +:104C2C0064202D2076616C7565207075743A202592 +:104C3C0030326C78202D2076616C75652072656140 +:104C4C00643A202530326C780A0000004E6F2070D8 +:104C5C00726F6772616D2073706163650000000094 +:104C6C004E6F2050494F207374617465206D6163E1 +:104C7C0068696E65732061726520617661696C612B +:104C8C00626C6500486172647761726520616C6169 +:104C9C00726D20256420616C726561647920636C8F +:104CAC0061696D6564000000486172642061737312 +:104CBC00657274000A2A2A2A2050414E4943202A40 +:104CCC002A2A0A00102B0020D02A0020D02A0020EB +:104CDC00082B0020D02A0020D02A0020D02A002027 +:104CEC00D02A0020D02A0020D02A0020D02A002050 +:104CFC00002B0020D02A0020F82A0020D02A0020E7 +:104D0C00D02A0020BA2A0020E62B0020B02B00204D +:104D1C00DA2B0020B02B0020C82B0020B02B002059 +:104D2C00B02B0020B02B0020B02B0020B02B00208B +:104D3C00B02B0020B02B0020182B0020B02B002013 +:104D4C00B02B0020B02B0020B02B0020B02B00206B +:104D5C00182B0020642E00207E2A00207E2A0020A2 +:104D6C007E2A00207E2A00207E2A00207E2A002017 +:104D7C007E2A00207E2A00207E2A00207E2A002007 +:104D8C007E2A00207E2A00207E2A00207E2A0020F7 +:104D9C007E2A00207E2A00207E2A00207E2A0020E7 +:104DAC007E2A00207E2A00207E2A00207E2A0020D7 +:104DBC007E2A00207E2A00207E2A00207E2A0020C7 +:104DCC007E2A00207E2A00207E2A00207E2A0020B7 +:104DDC007E2A0020B42E0020342E0020B42E002079 +:104DEC007E2A00207E2A00207E2A00207E2A002097 +:104DFC007E2A00207E2A00207E2A00207E2A002087 +:104E0C007E2A00207E2A00207E2A00207E2A002076 +:104E1C007E2A00207E2A00207E2A00207E2A002066 +:104E2C00642D00207E2A00207E2A00207E2A00206D +:104E3C007E2A00207E2A00207E2A00207E2A002046 +:104E4C007E2A00207E2A0020642D0020F82C0020D1 +:104E5C00642D0020B42E0020342E0020B42E00200F +:104E6C007E2A0020642D00207E2A00207E2A00202D +:104E7C007E2A00207E2A00207E2A0020642D00201D +:104E8C00B22C00207E2A00207E2A0020F62B002047 +:104E9C007E2A0020642D00207E2A00207E2A0020FD +:104EAC00642D0020666E6900666E692B00000000A0 +:104EBC006E616E00666E692D00000000000000003F +:104ECC00000000000000F03F000000000000244043 +:104EDC0000000000000059400000000000408F401E +:104EEC00000000000088C34000000000006AF84089 +:104EFC000000000080842E4100000000D0126341AD +:104F0C000000000084D797410000000065CDCD4122 +:104F1C0006005250BBFF3CB6244D002006005250F8 +:104F2C00E182887F0C4D002006005250D3F0754270 +:104F3C00044D002052656C6561736500626F6F747F +:104F4C00325F77323571303830000000312E342E1C +:104F5C00300000007069636F000000006475616CC4 +:104F6C002D6D63752D3000004A616E203330203278 +:104F7C00303233000D0A00000600525053B4F4A135 +:104F8C00744D0020080052509200000055415254BC +:104F9C0020737464696E000055415254207374641C +:104FAC006F7574005541525420737464696E202FD0 +:104FBC00207374646F757400100000000000000012 +:104FCC0000000100000000000000000000000200D2 +:104FDC0000000000000000000000030000000000C2 +:104FEC00000000000000FF000000000000B5486851 +:104FFC0001318E460047704609380149884700BD8B +:10500C0089080020EC4D002000000000504E0020CC +:10501C00AC4F00200000000000000000BC4F00203E +:10502C000000000000000000100000000000000064 +:10503C00503300004C330000543300005233000056 +:10504C004D5300004D430000533400004334000026 +:10505C00C54700200000000011480020000000009F +:10506C0000010000000000000000000019430020B7 +:10507C0065350020693C0020854200203901002064 +:04000005100001E9FD +:00000001FF diff --git a/demo/dual-mcu/dual-mcu-1.hex b/demo/dual-mcu/dual-mcu-1.hex new file mode 100644 index 0000000..be76e03 --- /dev/null +++ b/demo/dual-mcu/dual-mcu-1.hex @@ -0,0 +1,1247 @@ +:020000041000EA +:1000000000B5324B212058609868022188439860DF +:10001000D860186158612E4B002199600221596106 +:100020000121F02299502B49196001219960352056 +:1000300000F044F80222904214D00621196600F024 +:1000400034F8196E01211966002018661A6600F04E +:100050002CF8196E196E196E052000F02FF8012189 +:100060000842F9D1002199601B49196000215960AB +:100070001A491B48016001219960EB211966A021F2 +:10008000196600F012F800219960164914480160C1 +:100090000121996001BC002800D000471248134993 +:1000A000086003C880F30888084703B5996A0420EC +:1000B0000142FBD001200142F8D103BD02B5186610 +:1000C0001866FFF7F2FF186E186E02BD00000240BE +:1000D000000000180000070000035F00212200005C +:1000E000F4000018222000A00001001008ED00E03C +:1000F00000000000000000000000000074B24E7A12 +:1001000000200420F7010010C3010010C5010010F9 +:10011000C1010010C1010010C1010010C101001097 +:10012000C1010010C1010010C1010010C701001081 +:10013000C1010010C1010010C9010010CB01001065 +:10014000CD010010CD010010CD010010CD01001037 +:10015000CD010010CD010010CD010010CD01001027 +:10016000CD010010CD010010CD010010CD01001017 +:10017000CD010010CD010010CD010010CD01001007 +:10018000CD010010CD010010CD010010CD010010F7 +:10019000CD010010CD010010CD010010CD010010E7 +:1001A000CD010010CD010010CD010010CD010010D7 +:1001B000CD010010CD010010CD010010CD010010C7 +:1001C00000BE00BE00BE00BE00BE00BE00F051F882 +:1001D000103800BEF2EB8871E0020010040300103A +:1001E0003402001090A31AE700202449086006C8D2 +:1001F00081F30888104722480068002835D10DA4F3 +:100200000ECC002902D000F012F8F9E71D491E4A71 +:10021000002000E001C19142FCD11C4988471C49E3 +:1002200088471C49884700BEFDE701C901C29A42C0 +:10023000FBD3704704030010C0000020404600209C +:100240008448001040460020704B0020B44D001040 +:100250000000042000000420B44D00100010042011 +:10026000001004200000000070470B4800F018F850 +:100270000047EFF30580C0B27047000008ED00E0D2 +:10028000000000D0704B00204C4F0020E9160020E9 +:100290005D010020DD17002057560000000000001F +:1002A00001B40248844601BC604700BF9D32002073 +:1002B00006005250ABB360533C4A00200600525037 +:1002C000861C03024C4A0020060052505422A29D74 +:1002D000584A002005005250DE65F468B44D001005 +:1002E000D4020010C8020010BC020010004A002016 +:1002F000B00200100C4A0020184A0020684A002072 +:04030000744A00201B +:10030400F8B5C0460448054B10B5834203D0044BEE +:10031400002B00D0984710BD704B0020704B00207C +:100324000000000006480749091A8910CB0F591824 +:1003340010B5491003D0044B002B00D0984710BDD2 +:10034400704B0020704B00200000000010B5074CDB +:100354002378002B09D1FFF7D5FF054B002B02D0E2 +:10036400044800E000BF0123237010BD704C00203E +:100374000000000040460020054B10B5002B03D0C0 +:100384000449054800E000BFFFF7CCFF10BDC0469C +:1003940000000000744C002040460020F0B5DE460A +:1003A400454657464E46E0B58BB004F0BBF90121F3 +:1003B4003D4800F083F83D4980463B4800F09CF8F6 +:1003C400002380220593F82352025B0202920393D6 +:1003D400C02305001B03102202A906A8049303F0FE +:1003E4005DFF2B1DEA011B03134306A9102202A87B +:1003F400079303F053FF2E4B0224059380231B0322 +:1004040004932000062100F00FFA200000220121AD +:10041400013400F021FA0A2CF3D10023224C414686 +:10042400009302220833200000F0CAF82A00414653 +:1004340002AB200000F008F943461E4A0125944609 +:10044400FA225B004344DB00634452041A604146D1 +:100454002B008B4022682E00134323604346103345 +:100464009E40083B9D408B009846134B00279B46BB +:1004740008239A46073B994653464846DB1B984057 +:10048400FF22424063681E42FCD10749414408618F +:1004940063681D42FCD10B6A5846012104F036F909 +:1004A400072301371F40E7E700002050F8460020EB +:1004B40002008100C80020500C4700200B4B10B5EF +:1004C4009C46604444424441094AA40082B00092DC +:1004D400E31C2200074800F037F9844202DC001BC9 +:1004E40002B010BD01204042FAE7C0460000D0AF80 +:1004F40050470020444D0020F8B5DE464546574697 +:100504004E46E0B505000F0000F0E6F8294B8046A2 +:10051400E9184B425941284B3E799C468B009B4637 +:1005240063465A46985801230524B34020223C5779 +:10053400013B921B002C2FDB944237DCA340184272 +:1005440034D19946002E18D07B783A781B021A438E +:10055400BB781B041343FA7812061A43924600230D +:1005640051465A008F5A7A0B00D1E7191A191232E0 +:100574009200013357519E42F2D84B465A461843D3 +:1005840063469850404600F0B3F820003CBC9046C7 +:100594009946A246AB46F8BD002A07DB19009140F4 +:1005A400140089460142CDD0013AF7D2034801F044 +:1005B40037FAC0460000D0AF8C4C00203C470020E6 +:1005C400F0B557464E464546DE468B464900E0B5F3 +:1005D4000D0082465D44ED0055442F0009AC267899 +:1005E400DC37741EA6418946396874428C46154925 +:1005F4001F26884626404644052B0ED9A020B8461F +:100604001F274005D8354146540104430532053BB4 +:100614000C603A402E60052BF5D859464944C90070 +:10062400514452019B0613430A000800DC32136054 +:100634006346D830066013603CBC90469946A24697 +:10064400AB46F0BD80E00000F0B501258D400468A4 +:10065400AC434D0004606C18E40004192600C8364D +:10066400002B2AD01F68DC3437605F6877609F688E +:10067400DB68B76023606D18ED002C008023D03454 +:1006840004195B012343802424061C601C60114B65 +:100694000C1D8B40836001231F00A7403C000831E0 +:1006A4008B400668344304600468234303601F23BB +:1006B40040191A40D8300260F0BD80277F023760AD +:1006C400F8277F027760C027DC343F03B7602360DC +:1006D400D1E7C04601010101EFF3108072B6034A6D +:1006E4001368002BFCD0BFF35F8F70472C0100D040 +:1006F400BFF35F8F0022024B1A6080F310887047AB +:100704002C0100D0F8B5EFF3108772B60D4E3368A4 +:10071400002BFCD0BFF35F8F0725CB08C018012343 +:100724000D40AB401D000478254007D123430370DE +:10073400BFF35F8F356087F31088F8BD100001F0B8 +:100744006FF9C0462C0100D0F8B5CE4647468C461A +:1007540080B5EFF3108872B6214D2C68002CFCD0C4 +:10076400BFF35F8F9A422CD80721012511408D4099 +:10077400D4080419267835421FD007218946063942 +:1007840009E04D460F001540AF40D40804192678FF +:100794003D00374211D001329342F2D2012040424F +:1007A400BFF35F8F00220E4B1A6088F31088002875 +:1007B4000FDB0CBC90469946F8BD354325701000FC +:1007C400EEE7BFF35F8F00232B6088F310880120CE +:1007D40040426346002BECD0089801F021F9C04652 +:1007E4002C0100D0024B18688007C00F7047C04628 +:1007F40000C006400021044B044ABFF35F8F02C3CC +:100804009342FAD17047C046000100D0800100D065 +:10081400044A1078431CDBB2172B00D91023137041 +:100824007047C046A84A0020094A830094464022E3 +:10083400634410B51C68C0006240C0241440802288 +:10084400520113431C60034B9C466044416010BD3D +:1008540004C00140004001400A4B80009C46042330 +:100864006044002901D00C230821002A00D10B0088 +:10087400026853400C221A4080235B011843026033 +:100884007047C04604C0014001238340002904D0BE +:10089400034A1360034A13607047034A1360FBE77B +:1008A40080E200E000E100E080E100E0024B103073 +:1008B4009B688000C058704700ED00E070B50D00E3 +:1008C400EFF3108672B60F4A1368002BFCD0BFF307 +:1008D4005F8F0D4B10309B6884001B590B4A934269 +:1008E40003D09D4201D001F0B3F8074B9B681D5122 +:1008F400BFF35F8FBFF35F8F0022024B1A6086F352 +:10090400108870BD240100D000ED00E0CD0100107E +:10091400F0B54546DE4657464E46E0B50D0083B079 +:10092400EFF3108A72B65A4A1368002BFCD0BFF357 +:100934005F8F1022914681444A46564B96009B682D +:100944009C59554B98469C4205D0AC4216D0534F07 +:10095400E31B2F2B14D94F4B9B689C51BFF35F8F24 +:10096400BFF35F8F00224A4B1A608AF3108803B0EA +:100974003CBC90469946A246AB46F0BD1C00EAE753 +:10098400012383409B465A46454B1B681A400092FC +:100994005A46444B1A60BFF35F8F03F069FF01901E +:1009A400002803D0814501D001F052F80123220030 +:1009B40006219A43936851569D420AD152E04B0056 +:1009C4005B1806219B00FB1898685956A8420FD063 +:1009D4001A000029F3DA009B002B05D05A46324B4B +:1009E4001A602F4B1A60B6E75A462E4B1A60B2E7CC +:1009F400002921DB4A00501880003D188046A86871 +:100A04009860E879D871062028569871002826DB6A +:100A1400AD88F81A6D052D1545444019E0250005EB +:100A2400400D2D02284398805218204B9200BF1885 +:100A34001A781970BA71CEE70199002918D1002AE1 +:100A440023D0FF3191711A49918018490A789A711B +:100A5400184ADB1B5B415A43120D0A70BBE7BD20E9 +:100A64000002E0E713000029C4DA019A002A0CD03E +:100A7400114A1249D21A083A5002400D0143998092 +:100A84000F4952080A43DA80A5E74446DDE7C04629 +:100A9400240100D000ED00E0CD010010AC4A00209C +:100AA40000E100E080E100E080E200E0464D00204B +:100AB40000BDFFFFAAAA0000E64A002000F0FFFFE5 +:100AC40000F8FFFFF8B501250400054303F0D0FE4C +:100AD400EFF3108672B6214A1368002BFCD0BFF3E3 +:100AE4005F8F1F4B1F4A2100C91A49414A43120D07 +:100AF4001D4980008F6852B23F58AF421CD0062176 +:100B0400595691421CD012215956914222D01E218D +:100B14005956914220D02A2159560320914210D08F +:100B2400124B19781A70A171BFF35F8F00220B4B1F +:100B34001A6086F31088F8BD8B680D491950EFE7E9 +:100B440000204100091889005B18FF2199710949A7 +:100B54009980E5E70120F4E70220F2E7240100D0C0 +:100B6400AC4A0020AAAA000000ED00E0464D002097 +:100B7400CD01001000BDFFFF054B064A1360064A75 +:100B8400136053609360D360136153619361704742 +:100B94008080808000E400E004E400E0024B9C4696 +:100BA40061448900016070474000003483680B4849 +:100BB40010B5844661446244090112019A18591817 +:100BC40054684B6801209C4201D802D00020C0B276 +:100BD40010BD12680B689A42F9D8F7E7FFFFFF0FC0 +:100BE400F8B5454657464E46DE46E0B514000DAA14 +:100BF40012781D000CAB92461B7802688146904621 +:100C0400002B13D1977B002F4AD040467E001268F8 +:100C1400F619033E921951783B008173002900D1E3 +:100C2400C173002191705170117003E01F005E00C8 +:100C3400F618033E2E4A94464A4692686344944604 +:100C44001B010A9A63449A600B9A1C605D60DA6027 +:100C5400434600221B689B199A705A701A704346C7 +:100C64005B7B9B46002B2BD043463A009868594641 +:100C74005B6898475B4642465B005B44033B1268F3 +:100C8400002814D0D31896195A46B2701A78002A3C +:100C940000D072701F705A4643465A73BB4511D038 +:100CA40038003CBC90469946A246AB46F8BDD318E2 +:100CB40096199F703278002A00D05A705B463370C0 +:100CC40043465F734B462200187D2B0000F0E2F987 +:100CD400041E07D05346002B04D14B463900186834 +:100CE40000F056FD0E9B002BDAD01C70D8E7C046EE +:100CF400FFFFFF0FF0B5DE4657464E46454600233C +:100D0400E0B58DB00A936D4B8200D45800239B4606 +:100D14000B9000F06DF96268EFF3108572B61368FA +:100D2400002BFCD0BFF35F8F23689C465B7B994606 +:100D3400002B00D16BE0A268614B90464B441B0131 +:100D4400984443461E685F6832003B00121A8B4188 +:100D5400002B65DD3B0032000B9800F09BF900236B +:100D6400002208920993002300279A466368BFF380 +:100D74005F8F5A461A6085F310885346002B08D1BA +:100D84000028C6D10DB03CBC90469946A246AB465D +:100D9400F0BD0A9B390018024B461843D0476268DD +:100DA40006900791EFF3108872B6564645461368CD +:100DB400002BFCD0B246A846BFF35F8F0699079A72 +:100DC400131E49DB194302D02369002B5FD123682A +:100DD400DA7B002A07D051008A1819688C464946E4 +:100DE4006244033A51704A46DA73E2684B469446C9 +:100DF400013B63441A7801321A705B4623616368CD +:100E0400BFF35F8F5A461A6088F3108881E7002386 +:100E1400002208920993002300279A460020A5E7A0 +:100E2400002B01D1002A95D10021604600F0D2FBAD +:100E340043461A685B680892099343469B689A463E +:100E44004346DF68E3684B44013B1B780A931B026B +:100E540003432361002089E72369002BB7D0089D51 +:100E6400099E6D1A96412A003300089D099E9E42F0 +:100E740018D81BD059460491012103914946029187 +:100E84005146019700912000FFF7AAFEB5E700F054 +:100E9400AFF8069A079B12184B41994202D8E9D140 +:100EA4009042E7D901225242D317E3E708999142CD +:100EB400E0D901225242D317DCE7C046184D002086 +:100EC400FFFFFF0F10B5124C6368002B04D00A21FA +:100ED4001048FFF763FE10BD23000F4A102120685D +:100EE40000F09AF9032000F077F8032000F046F9A7 +:100EF4000A49032000F088F8FFF78AFC084B9C4657 +:100F0400032360442375074B80006060DC60DEE7E8 +:100F1400F44A00202C4D00206D090020B50A002061 +:100F240040000034184D0020F0B5C64600B5EFF37C +:100F340005833F22134018001038EFF3108772B670 +:100F44001F4D2A68002AFCD0BFF35F8F01221100D5 +:100F54008140884644461B494C631B4C2678A44672 +:100F64003400C440224015D04C6A184982005158BC +:100F74008C4217D3164BD25843469E4363461E7089 +:100F8400BFF35F8F00232B6087F31088002A06D0FD +:100F9400904704E0BFF35F8F2A6087F3108804BC96 +:100FA4009046F0BD0B4A9B00944663441A681A604D +:100FB400BFF35F8F00232B6087F31088EFE7C046F1 +:100FC400280100D000400540474D0020304D00204E +:100FD400944C0020D03F054010B50100024A03485C +:100FE400FFF790FB10BDC04674470020454D00201C +:100FF400044A516A00E01900906A536A9942FAD18E +:101004007047C0460040054070B504000D00EFF382 +:10101400108672B61A4A1368002BFCD0BFF35F8F98 +:10102400002D1BD02000FFF741FC164988420AD04E +:101034002000FFF743FC01212000FFF725FC0123DA +:10104400A340114A1360114BA400E550BFF35F8F16 +:1010540000220B4B1A6086F3108870BD0B4BA20064 +:10106400D5500122A2400A4920000B7893430B700B +:101074000449FFF74DFC00212000FFF705FCE5E7DC +:10108400280100D0E90C002038600540944C002071 +:10109400474D0020F0B5D6464F464646324CC0B5C3 +:1010A400656A00E00D00A66A616AA942FAD1AB4202 +:1010B40009D806D0012420001CBC90469946A246BB +:1010C400F0BDB242F6D9EFF3108972B6274C21680D +:1010D4000029FCD0BFF35F8F0126254986408C464A +:1010E4000978244D0F0037438846F9B28A46614691 +:1010F40054460C701C49041DA4004E6362508400C5 +:1011040063510D6A002435421AD04D6A00E025006F +:101114008F6A4C6AAC42FAD1AB4219D801D1BA42B7 +:1011240016D8C2451DD0104B134A1E625E631F239E +:1011340018401E3B834013606346424601241A70E4 +:10114400BFF35F8F0022094B1A6089F31088B2E75E +:101154000024BFF35F8F0022044B1A6089F31088C8 +:10116400A9E70124ECE7C04600400540280100D06F +:10117400474D0020304D002080E200E010B5EFF331 +:10118400108472B60A490B68002BFCD0BFF35F8F42 +:1011940001238340074A0848136202789A43027085 +:1011A400BFF35F8F00230B6084F3108810BDC0462B +:1011B400280100D000400540474D002070B50600CE +:1011C4000D00140000291ED0002A1ED07368806808 +:1011D400984763006A001B195219033B033A3168AC +:1011E400002808D0CB188A189D70117800290ED1D8 +:1011F4001470280008E08A18CB1894701978002914 +:1012040000D051701D70200070BD0800FCE75970BB +:1012140028001470F8E7C046F0B5DE4657464E463F +:101224004546E0B58360002389B0426002680691B8 +:101234004373C9B20133059101738373C17304927B +:10124400012900D8A4E00A004B1ED9B2931E0791CD +:10125400072B00D8AEE00025CB080393049B564C23 +:10126400591C564B56489B46564B9A46564B9C46E1 +:10127400564B0293524663465F465E4662401A40AE +:10128400504B2740FB185A40064053460196664689 +:10129400434033404B4E0A70B046019E0135B1467F +:1012A400C844464673401604360ECE701602120E1B +:1012B4004A721A04120E0B73CA731A021B0E4B7570 +:1012C400029B360E5C4063461C40404B120E98460F +:1012D400029B47445840634618404B464344584099 +:1012E400039BEDB28E718A747C401831AB42C1D13C +:1012F400079907230A009A43531CDBB2914247D053 +:10130400049C5A00A446D218591C6244059DC9B2D3 +:10131400033A51708D423BD94A005218981C6244DA +:10132400C0B2033A5070854232D942001218D91C17 +:101334006244C9B2033A51708D4229D94A00521805 +:10134400181D6244C0B2033A5070854220D942004D +:101354001218591D6244C9B2033A51708D4217D90B +:101364004A005218981D6244C0B2033A5070854234 +:101374000ED942001218D91D6244C9B2033A517001 +:101384008D4205D94A0052186244033A0833537017 +:10139400FF23069A13405900C918049B9C46002356 +:1013A400614403394B7009B03CBC90469946A2464F +:1013B400AB46F0BD0123A3E7010203047F7F7F7FD7 +:1013C40005060708010101018080808008080808DB +:1013D40070B50400002907D04B0000685B18033B7C +:1013E400C3185A78002A01D1080070BD5500AD1801 +:1013F400033D40190025467845705D702000FFF7D5 +:10140400DDFE310005002000FFF7E2FF29000200A5 +:101414002000FFF7D3FE0100E6E7C046F0B54E46D4 +:101424004546DE465746E0B50E0074000168A4192F +:1014340085B0033C01920A190500107800284CD0AD +:1014440043001B18033BCB185F78BC46002F16D112 +:10145400019C002C3ED0EC7B002C04D063001B19B3 +:10146400CB18033B5E70EE7300282FD1002353701A +:1014740005B03CBC90469946A246AB46F0BD7A0006 +:101484006244033A89184A78934600224A70904687 +:101494005A7001003A002800FFF790FE5B4681462F +:1014A400002B07D05B0029685B44033BCB185A78B8 +:1014B400002A16D15A4649462800FFF77FFE2968BC +:1014C400019B0A19002BC6D10028CFD043001B185A +:1014D400033BCB1800219970C8E7019B002BBAD1BC +:1014E400C4E75000801803380918487882464046FB +:1014F4004870587059462800FFF760FE53468346EB +:10150400002B07D05B0029685344033BCB185A785F +:10151400002A06D1594652462800FFF74FFE83465B +:10152400C8E7500080180338091840464F784870BF +:101534005870514628000297FFF740FE8246002F5C +:1015440008D0BC467B0029686344033BCB185A7817 +:10155400002A06D15146029A2800FFF72FFE824640 +:10156400D8E7500080180338091840464F7848706F +:101574005870029928000397FFF720FE8046002F39 +:1015840008D0BC467B0029686344033BCB185A78D7 +:10159400002A06D1039A41462800FFF70FFE029065 +:1015A400D8E7032050430338091800204F784870C7 +:1015B400587003992800FFF701FE390002902800B3 +:1015C400FFF706FF029902002800FFF7F7FD0390DA +:1015D400E0E7C046F0B54E464546DE465746E0B520 +:1015E400467B050074000068A419033C85B0021909 +:1015F4000191117800294ED04B005B18033BC318AE +:101604005F78BC46002F18D1019C002C40D0EC7BA5 +:10161400002C04D063001B19C318033B5E70EE73E7 +:10162400002931D1002330005370697305B03CBCEC +:1016340090469946A246AB46F0BD7A006244033A0E +:101644008018427893460022427090465A702800CF +:101654003A00FFF7B3FD5B468146002B07D05B00E1 +:1016640029685B44033BCB185A78002A17D15A46A1 +:1016740049462800FFF7A2FD019B010028680219D2 +:10168400002BC4D10029CDD04B005B18033BC318F9 +:1016940000209870C6E7019B002BB8D1C2E7500028 +:1016A40080180338091848788246404648705870B4 +:1016B40059462800FFF782FD53468346002B07D086 +:1016C4005B0029685344033BCB185A78002A06D19F +:1016D400594652462800FFF771FD8346C7E750007C +:1016E40080180338091840464F784870587051469E +:1016F40028000297FFF762FD8246002F08D0BC46FF +:101704007B0029686344033BCB185A78002A06D12E +:101714005146029A2800FFF751FD8246D8E750004F +:1017240080180338091840464F7848705870029959 +:1017340028000397FFF742FD8046002F08D0BC46DF +:101744007B0029686344033BCB185A78002A06D1EE +:10175400039A41462800FFF731FD0290D8E70320A1 +:1017640050430338091800204F7848705870039983 +:101774002800FFF723FD390002902800FFF728FE18 +:10178400029902002800FFF719FD0390E0E7C04624 +:1017940070B5040000292CD0437B8B422ED0056801 +:1017A40048004018033828188278002A21D05300B2 +:1017B4009B18033BEB181A788A4202D11BE0002ADB +:1017C40008D053009B18033BEB185A788A42F6D191 +:1017D40042785A7000230122837043702000FFF77F +:1017E4001DFE617B02002000FFF7E8FC607301200E +:1017F40000E0002070BD42781A70EBE70122190066 +:10180400FFF70CFE60730120F4E7C04610B5040036 +:10181400FEF7FEFF01002000FFF7C0F9FF2323714C +:10182400BFF35F8F10BDC04610B50400FEF7F0FF94 +:1018340001002000FFF7B2F9FF23A380BFF35F8FFD +:1018440010BDC046F8B5040006200D0000F066FA8D +:10185400002845D02B4B2C49E3185A42534180228F +:10186400D20394465B421340284A63441360284AD7 +:10187400136018008A689043FBD1224B8021E3183F +:101884005A425341234A5B0049000620995200F012 +:1018940045FA2900C00001F077FEC30921D1402791 +:1018A4000122260080256262A36200232C36AD014A +:1018B40035432B60062000F031FA3900800001F036 +:1018C40063FE6023E26A53406E221A4080235B0168 +:1018D40033431A60104B236310232B600D3BA36426 +:1018E400F8BD0E4A934203D900230D4F0D4AD8E7A1 +:1018F4007F221040013040089F011A003F18030066 +:10190400CFE7C0460080FCBF00C0004000E00040BC +:1019140000F00040484D002001030000FEFF0000DD +:10192400C0FF3F00FFFF00002D4B2E4A70B51A6028 +:101934002D4A2E4B2E491A6010008B689843FBD118 +:101944002C4C2D4B9C4209D2013B1D1BAD0801358B +:10195400AD002D1908CC9847AC42FBD100F07EF8BD +:10196400264A224B1A60224A9368DB018033FBD15A +:101974004022234B234D24489A675A671A67DA6634 +:10198400A84205D30EE0FFF74FFF2000AC4209D276 +:10199400040003680834002BF5D1FFF737FF20005B +:1019A400AC42F5D3194C1A4DA168C022280002F0AC +:1019B40075FCA560FEF71EFFFFF7DEF8FFF782FA5D +:1019C400144C154B9C4209D2013B1D1BAD0801353B +:1019D400AD002D1908CC9847A542FBD170BDC04677 +:1019E40000E00040BFCDFBFEFE7F3C0000F0004065 +:1019F40000C000405C4B00206C4B0020FFFFFF0147 +:101A040000F001405C4B0020544B002000ED00E04E +:101A1400000000206C4B0020704B002000BEFDE74E +:101A24000FB400B5084883B002F0EEFD049B002B10 +:101A340007D005A91800019101F030FD034802F018 +:101A4400E3FD00BEFDE7C046A44700203847002060 +:101A540010B50148FFF7E4FF9847002030B50C208B +:101A640083B000F0B5F9FEF7BDFE00280ED0944B0C +:101A7400944A1A605A609A60DA601A615A619A61EB +:101A8400DA611A62904A5A6203B030BD8F4CA06783 +:101A940000F0A6F901228E4B1A60636C012BFCD175 +:101AA40003228C4B1A60894A936B012BFCD10133BE +:101AB4000093894A04330121884800F035F905234D +:101AC400874A00930121874800F02EF9864B5A6813 +:101AD400FF2A02D8802252005A608022784C7D4B23 +:101AE40021691201804D1A60002905D0606901F056 +:101AF4004BFD01300138FDD1E0217B4B02201A68F7 +:101B04001140802252012A43116019684840032180 +:101B14000140116004219A681142FCD08022802186 +:101B240092012A4309011160802252005A606F4BCE +:101B340023616F4B5968FF2900D85A6003226C480F +:101B4400634B01211A60020093681942FCD0E0251E +:101B540013681D4080235B0103431D6012684A40E3 +:101B64000321114019600221614A93681942FCD093 +:101B7400802380219B0103430901196080215D4B6F +:101B84004900516063615C4B5A68FF2A00D8596070 +:101B940080225A4BE1691201574D1A60002905D081 +:101BA400606901F0F1FC01300138FDD1E0225249B5 +:101BB4000B681A4080235B012B431A608023802228 +:101BC4009B012B4312011A6080223E4B52004A6053 +:101BD400E3614B4B5968FF2900D85A608022494B76 +:101BE400216A1201464D1A60002905D0606901F08E +:101BF400CBFC01300138FDD1E02241490B681A4089 +:101C040080235B012B431A60802380229B012B439A +:101C140012011A6080235B004B602A4B3A4A23620C +:101C24003A4B5968914201D801325A608022384BAC +:101C3400616A1201354D1A60002905D0606901F00E +:101C4400A3FC01300138FDD1E02230490B681A4071 +:101C540080235B012B431A60802380229B012B434A +:101C640012011A608023DB024B60174B6362294B1D +:101C74005A68FF2A02D8802252005A608022264BDA +:101C8400A1691201234D1A60002905D0606901F091 +:101C94007BFC01300138FDD1E0221E490B681A405B +:101CA40080235B012B431A60802380229B012B43FA +:101CB40012011A6080235B004B600E4BA361E3E6C4 +:101CC400A44C0020006CDC021BB700000080004024 +:101CD4003CB0004030B00040002F68590080024002 +:101CE400008C864700C0024030800040001BB700D3 +:101CF4003C800040405973075480004054B0004079 +:101D04006080004060B00040FFFF03006C80004032 +:101D14006CB000404880004048B00040014B800057 +:101D2400C0587047A44C0020F8B504000C201E00D5 +:101D340017000D0001F028FC4201121A9101891AC2 +:101D4400C90009188901380001F01EFC069B2268AD +:101D540036041B033343002A21DB194A194EA21807 +:101D640051424A41802149018C4652420A40164957 +:101D740062440A6015490A601700B1688F43FBD1B9 +:101D8400C021221D8901114321222560A0600A601F +:101D94002268002AFCDAE36008230B60F8BD3F22C6 +:101DA40021680A40AA42D8D1A2681205120D8242C3 +:101DB400D3D1EE21E268C9020A409A42CDD1EDE7BF +:101DC4000040FDBF00C0004000E0004000F00040C3 +:101DD4008023024A9B000343D3627047008005407E +:101DE400AA23064A1B0113602F230549D360054B20 +:101DF40019605368002BFCDA7047C046004002406B +:101E040000B0FA00006002407047C046F8B557467B +:101E14004E464546DE46E0B599460A9B07009A467B +:101E24000D9B884693460B9E15009B070FD10C9B78 +:101E34009E420CD29D1B0E005D44541C4B46310047 +:101E44002020B8472200A542F7D1B0460B9E002EB1 +:101E540028D04446AD195346AA1B013E985D210083 +:101E64004B46B847002EF6D123002C0098460D9B14 +:101E74009B0710D55B46E51A0C9BAB420BD9464633 +:101E84002200984601344B46310020200135B847E2 +:101E94002200A845F6D820003CBC90469946A246AC +:101EA400AB46F8BD2C00E2E7F0B54F464646D646B1 +:101EB400C0B584B098460EAB1B7894469946129BE5 +:101EC4000D9C109F119E9A0724D401221A40924619 +:101ED400002E62D1BC420CD21F2C00D9B8E00C9A5F +:101EE400551E302201E0202C03D001342A55A7428C +:101EF400F9D85246002A0DD0A6420BD9202C5AD02C +:101F04000C9A551E302201E0202C54D001342A555D +:101F1400B442F9D1DA0632D55A0555D4002C4FD142 +:101F24000F9A102A00D18CE0022A00D17EE03022E0 +:101F34000C9C22704A460124002A25D02D220C9D97 +:101F44002A55013403930C9B029600930194434653 +:101F54006246FFF75BFF04B01CBC90469946A2465C +:101F6400F0BD202CEED00C9A1519013478222A7079 +:101F7400202CE7D030250C9A121915700134202C2E +:101F8400E0D04A46002AD9D15A0728D41A07D9D50D +:101F940020220C9D2A550134D4E7002A24D04A4635 +:101FA400002A28D10C321A4225D1BC42A4D21F2CBB +:101FB40095D9202E1DD92024DA06C3D55A0503D479 +:101FC400A7421AD0B44218D00F9A102A1FD0022A5E +:101FD400CED1202CB6D00C9A121901342EE02B222B +:101FE4000C9D2A550134ADE7BC4293D21F2C00D876 +:101FF40075E720248EE7013ED7E7621E002A10D041 +:102004000F9D102D2DD0022D15D01400B2E79A0685 +:10201400A7D5202C96D058250C9A12191570013486 +:10202400A6E70F9C102C15D0022CEED162220C9C3A +:10203400227001249EE70C9DAA4652446225157025 +:1020440096E79A06E7D478220C9C2270012491E743 +:1020540020244EE79A06F6D558220C9C22700124BF +:1020640088E7023C9D06D6D40C9D2D1914007DE70B +:1020740010B5002800D110BD02F074FAFBE7C04689 +:1020840010B5002803D04A680B681100984710BDAA +:10209400F0B5454657464E46DE46E0B59BB0249D16 +:1020A400259C82468846099299462A0023002800E6 +:1020B400210001F032FD002800D0CBE00122D94BF1 +:1020C40052422800210001F023FD002800D0C1E085 +:1020D4000122D54B52422800210001F00BFD0028BB +:1020E40000D0B7E0002200232800210001F002FD07 +:1020F400002800D0EDE1AB4608948023289ADB0049 +:102104001A40119201D1062326935B460C93802337 +:102114005946289A1B011A40089B10920B4300D081 +:10212400AFE0002A00D0BFE104260D930E930C9378 +:1021340000230A93279BB34201D99B1B0A930227CE +:10214400289B1F4005D0734273410A9A5B421A4090 +:102154000A920C9B002B07D0584608990D9A0E9BA7 +:1021640001F067FC83460891002200232800210027 +:1021740001F0C0FC002805D08020000684460899A0 +:1021840061440891289AA94B414613405A46049346 +:102194000A9B50460393269B0293089B009201934B +:1021A4004B46099A00F0A2F9002E63D0289B020046 +:1021B4009C061F23E4179C436534431C08932000AA +:1021C4004B464146D0470C9B0024DA179D18DB0F81 +:1021D4009B46731E55400C9302E00500202C11D041 +:1021E4000AAA94461F23013463440A2128001E19B5 +:1021F40001F0CAF93031317028000A2101F0C4F924 +:10220400092DEAD8052306930C9B0194059300231A +:1022140004930A3303935B46029312AB0093089A28 +:102224004B4641465046FFF73FFE002F22D0099B04 +:10223400C41A279BA3421DD9020057461E00551CF1 +:102244004B46414620200134B8472A00A642F6D81E +:1022540028000FE0289B2A000493279B4146039300 +:10226400269B504602932300009201934B46099A01 +:1022740000F03CF91BB03CBC90469946A246AB46E4 +:10228400F0BD6B4A089B94465800400D604401F031 +:1022940057FC684A684B01F0EAFB684A684B01F056 +:1022A400BFFB089B674A1B031B0B1A4306000F0066 +:1022B4000C981100644B002201F0A9FB634A644BA3 +:1022C40001F0D5FB02000B003000390001F0A8FB3F +:1022D40001F04EFC0C9001F033FC5E4A5E4B0600AC +:1022E4000F0001F0C4FB00225C4B01F099FB01F0EC +:1022F4003FFC5B4A5B4B0D903900300001F0B7FBAB +:1023040006000D980F0001F01BFC574A574B01F0D3 +:10231400AEFB02000B003000390001F078FB020034 +:102324000B000A900B9101F0A2FB06000F000A9823 +:102334000B9902000B0001F073FB00220E900F9129 +:102344004B4B3000390001F074FB0022494B01F083 +:1023540067FB02000B003000390001F06AFB002229 +:10236400454B01F05DFB02000B003000390001F029 +:1023740060FB0A9A0B9B0F0080210600C905002010 +:1023840001F045FB02000B003000390001F048FB6E +:102394003A4F02000B000E980F9901F04AFB0022FD +:1023A400284B01F03DFBBC460D9A62441600002206 +:1023B400330501F05CFB07000D900E000E91020046 +:1023C4000B005846089901F095FB00285ED13B00AC +:1023D4003200C6260C9963318E42B641109976427A +:1023E4000436002900D1A3E6134361D0089F244A90 +:1023F400244B5846390001F083FB002807D0002203 +:10240400214B5846390001F075FB002850D1269B1A +:10241400002B00D18CE6119B5A1E9341269AD31AA5 +:10242400269385E6FFFFEF7FFFFFEFFFFFF7FFFF38 +:1024340001FCFFFFFB799F501344D33FB3C8608B6B +:10244400288AC63F0000F03F0000F83F61436F63F5 +:10245400A787D23F71A379094F930A400000E03F58 +:102464001655B5BBB16B0240EF39FAFE422EE63F7A +:1024740000002C400000244000001840FF0300002E +:102484002D431CEBE2361A3F80842E410C9B002224 +:10249400013B0C930D98144B0E9901F0CAFA0300FA +:1024A4000D900A000E9194E700230D930E930C9364 +:1024B400269B19000C9B994213DDCB1A013B2693F2 +:1024C4008023289ADB001A430023289200260C93C9 +:1024D4002EE680231B069C46A4446346AB46089321 +:1024E4000BE600232693EBE700002440F0B5DE461C +:1024F40057464E464546E0B597B0804689469246D3 +:102504009B46209A219B1000190001F006FB00282D +:1025140000D01FE2209821990122CC4B524201F0B5 +:10252400E9FA002800D03EE1209821990122C84B05 +:10253400524201F0EDFA002800D0E7E020982199FA +:102544000022C44B01F0E4FA002800D0C7E0209830 +:1025540021990022C04B01F0CDFA002800D0BEE042 +:10256400209821990022002301F0C4FA002800D009 +:10257400E1E0002380240D93249BE4001C4000D060 +:10258400E9E000220626B54B069207930EAB0893AA +:102594002098219901F0ECFA07000C9001F0D0FA90 +:1025A40002000B002098219901F031FA069A079B4A +:1025B40001F05DFA0A900B9101F0FEFA0500099012 +:1025C40001F0BAFA02000B000A980B9901F01FFA05 +:1025D4000022A34B0A900B9101F09AFA002800D133 +:1025E40048E12B0001331800099301F0A5FA069A7B +:1025F400079B01F085FA002804D03B0001330C93BB +:1026040000230993002E00D0D5E00C9D280001F092 +:1026140097FA02000B002098219901F0F8F90022A2 +:102624008F4B06000F0001F065FA002808D1002244 +:102634008B4B3000390001F06BFA002800D17EE1A9 +:10264400202C00D1FAE00C9F0A21380000F074FF1E +:10265400089E3031315538000A21651C00F06CFFAA +:10266400002800D180E1202D00D1E7E00A2100F00C +:1026740063FF303171553800642100F05DFF02348E +:10268400051E14D0202C00D1D8E008AA94461723A4 +:102694002800634401340A211E1900F04DFF303133 +:1026A400317028000A2100F047FF051EEAD10323F8 +:1026B400249A1340012B00D1ECE0202C00D1C2E07D +:1026C4000D9B002B00D111E12D23089A651C135595 +:1026D400249B01950393239B0293089B20E0249B56 +:1026E40052460493239B49460393229B40460293FC +:1026F400209B219C009301945B46FFF7C9FC17B013 +:102704003CBC90469946A246AB46F0BD249B5B0771 +:102714000ED40322534B24990192039123990291DD +:10272400009352465B4649464046FFF76FFBE6E797 +:102734004D4B0422EFE7209A219B0020002101F059 +:1027440066F9012380240D93249BE40020902191B9 +:102754001C4000D115E7229B092B00D808E1190081 +:1027640030230EAA4E1E08921370092E00D1F9E0F0 +:10277400537008AA0C0094468E1E1721093C0223AC +:102784006144302205E00133CA54013E202B00D1BC +:10279400A3E09C42F7D1354BF2009B181A685B68A2 +:1027A40006920793F4E6249B0393239B029304234A +:1027B40001932F4BB4E7202C40D0099D731E0A21AE +:1027C4002800069300F0E0FE089B303119552800DC +:1027D4000A2100F0D9FE671C0995092D00D892E062 +:1027E400202F2BD0B11E06910A2100F0CDFE089BAC +:1027F4003031D9550998642100F0C6FE099AA51C08 +:102804000700632A00D87FE03419013C14E0631BFD +:1028140008AA069394461723013563440A21380015 +:102824005E1900F0B1FE3031317038000A2100F039 +:10283400ABFE092F68D90700202DE8D10323249A81 +:102844001340012B25D0202542E7C046FFFFEFFFB0 +:10285400FFFFEF7F65CDCD4165CDCDC180842E4195 +:102864000000E03F9449002098490020B04900202E +:10287400A449002000220A980B99494B01F03AF927 +:10288400002800D0BEE62B1E60D1099B01330993BA +:10289400B8E62024239B002B00D10EE70D9B002BD0 +:1028A40003D1249A0C33134202D0239B013B23937C +:1028B400239BA34200D800E708AA9446172330229A +:1028C4006344202CBFD0239901341A558C4200D183 +:1028D400F3E6202CF7D12025FAE6324BF2009B18C0 +:1028E4005C681B6806930794202451E6249B5B07CD +:1028F40020D4249B25001B0700D4E9E62023089A52 +:1029040001351355E4E63D00202D97D008A98C46E7 +:1029140017230698634442193021002826D0013534 +:102924005955202D30D0AA42F9D12E230899541C90 +:102934008B5485E62B23089A651C1355C8E601239E +:10294400AC462B409C4463460C9379E6DB0700D4E9 +:1029540058E69AE7249B0393239B02930323019352 +:10296400114BDDE6012416E72C00A0E62A00DCE783 +:10297400DA001E000B4B9B185C681B6806930794D7 +:102984000EAB0024089303E60323249A1340012B7F +:1029940000D09DE6239B002B00D199E620247DE7FF +:1029A4000000E03FB0490020A0490020F0B54546B2 +:1029B400DE4657464E46E0B5A1B01D002A9B904620 +:1029C4000B93BD4ABD4B0A908B461A60002900D177 +:1029D4000DE2002328789A46002861D0B84B564669 +:1029E4009946C24609E0741C320053460A9E594671 +:1029F400B04726002878002850D001352528F2D188 +:102A0400042328789846023B9C460300203B691C1B +:102A1400DBB200240A00102B0ED84F469B00FB5853 +:102A24009F4601230D001C432878691C0300203BAA +:102A3400DBB20A00102BF0D90300303B092B41D93B +:102A440000272A286AD000230C932E2851D0030093 +:102A5400683BDBB2122B5FD89A499B00CB589F4648 +:102A640063460D001C43DFE743460D001C43DBE7D0 +:102A740010230D001C43D7E708230D001C43D3E7A4 +:102A840080235B0068781C43551C0300253BDBB2A4 +:102A9400532BA8D88C4A9B00D3589F46D046B246A5 +:102AA4005246D04501D843465A1E43465946002053 +:102AB4000A9CA047504621B03CBC90469946A24689 +:102AC400AB46F0BD0027030001E00D000131B80062 +:102AD400C0194000C0180B7830381A00303A07008B +:102AE400092AF2D918000023AA1C0C930D002E28E1 +:102AF400ADD180236878DB001C430300303B092BF5 +:102B040000D877E12A2800D1ABE10300683BDBB2AF +:102B140015000132122B9FD91500B6E70B9B80CB11 +:102B2400002F00DA5BE16878AA1C0B930D008AE79A +:102B340068786C2800D14DE280235B001C43551C4F +:102B4400A3E780239B0068781C43551C9DE76878A5 +:102B5400682800D139E28023551C1C4395E70B9B60 +:102B640004CB98460C9B0B921078002B00D0A2E16A +:102B7400002801D100F071FC02235B425A1C0B9B1C +:102B8400944619000D92614401E08B4206D0013352 +:102B94001A78002AF9D10B9A9B1A0D938023DB0033 +:102BA40023400E9305D00D9B19000C9B994200D92C +:102BB4000D93022323400F9300D140E2002800D15B +:102BC40026E20E9B002B00D1E6E141460C9B0C91C2 +:102BD40029009C190B9B5D469B1B3200B8460B9346 +:102BE4008B460AE0534629000A9F561CB8470B9BA4 +:102BF400985D002800D104E232009442F2D10C9B8B +:102C0400474698465B462600AB461D000F9B002BAB +:102C140000D0FDE143460B93ECE60B9B04CB0B93F6 +:102C2400002A00D128E121231C43A44610A9884688 +:102C34001F240F2144440023884603E0202B00D1A5 +:102C440024E10A0041461140CFB238003730092947 +:102C540000D807380133E05411090F2AEED815E1E2 +:102C64000B9B04330C93731C0D939846A30700D459 +:102C740006E20B9B32001878594653460A9CA0473B +:102C8400BE19012F00D8A7E22B0042465546B04694 +:102C94009A465E460A9F541C2B0031002020B847F8 +:102CA40022004445F7D15346B346AA4626001D00E8 +:102CB4000C9B0B939EE6C0466D270020144D00200C +:102CC400B4470020F847002044480020782800D169 +:102CD40052E2582800D183E16F2800D1F3E0622842 +:102CE40000D156E3102322009A438023DB000D9287 +:102CF4002340692800D0BCE30A220E92002B00D1A5 +:102D040046E201230D9A9A430D9280240D9BA40060 +:102D140023409C46692800D1E7E0642800D1E4E020 +:102D24006346002B00D094E280230D9A5B001A4086 +:102D34000B9B904604330F93002A00D02CE30D9B89 +:102D44005B0600D544E20D9B1B0600D488E30B9B75 +:102D54001B881800031E00D04DE20D9A1033110099 +:102D640099430D91520500D445E2002398460D9BEA +:102D7400059706930C9B04930E9B039300230293E5 +:102D84004346019318AB00933200534659460A98C0 +:102D9400FFF78AF80F9B06000B932BE6462800D119 +:102DA4008EE007220B9B04940733934319000C9A7B +:102DB400039702920CC90A98009201930B91320076 +:102DC40053465946FFF792FB060013E6741C320083 +:102DD40053460A9E59462520B04726000AE6022299 +:102DE400687814437F42AA1C0B930D002BE6D34B47 +:102DF4000A93EEE50023010000E02A009800C018C1 +:102E0400400040185178030008003038551C303B0E +:102E14000928F2D90C930800023218E62023020094 +:102E24009A43472A04D180231B011C43022398435D +:102E3400452801D120231C4307220B9B049407330C +:102E4400934319000C9A039702920CC90A980092B2 +:102E540001930B91320053465946FFF719F90600C6 +:102E6400C8E50B9BA87802CBCA43D21711400C913A +:102E7400EA1C0B930235EAE5102321009943113330 +:102E840019438C460023610500D4CFE662460692BE +:102E9400082205920C9A04921022039200220292B4 +:102EA400019318AB00933200534659460A98FEF733 +:102EB400FBFF06009EE5002800D1CDE2013B5DE664 +:102EC40020231C436DE708230E9322000D948023D6 +:102ED400DB001340642800D0CEE2002B00D010E7C2 +:102EE40080241300A40023409C466346002B00D09A +:102EF400E5E080230D9A5B001A400B9B9046043357 +:102F04000F93002A00D0C6E10D9B5B0600D547E174 +:102F14000D9B1B0600D499E20B9B00229B5ED917E4 +:102F24005A184A401000DA0F1492002B09D180235A +:102F340010220D99DB000B4091430D91002B00D022 +:102F440050E10D9A6123920600D5412310AA1F2453 +:102F54009446DBB264440A3B159716960B93464697 +:102F64000700A84625000E9C0AE03033DBB2013688 +:102F7400AB55A74200D231E1202E00D12EE107004B +:102F84002100380000F000FBCBB20929EDD90B9ADF +:102F940094466344DBB2EAE70B9B32009E1B33008A +:102FA4005E46AB4655469A460B970A9F2B00310066 +:102FB400541CB8475346185D22000028F6D1AA468F +:102FC4000B9F5D46B346260020E6C023A8781C4329 +:102FD40003355AE5C0239B00A8781C43033554E508 +:102FE4000C2322009A4314331A430D92630500D52F +:102FF400D3E080239B001C40F13BFF3BA4460E938F +:103004008EE60C9B474698465B46AB461D00FDE5A5 +:103014000D9B32009F4200D8FCE5BE19F61A2B0026 +:103024005D469B460A9F541C534629002020B847FE +:103034002200B442F7D15B46AB461D00EAE50D9A87 +:10304400531C974200D812E2BB199B1A0D971F001C +:1030540032005E46AB460A9D541C53463100202084 +:10306400A8472200BC42F7D15D46B34626000D9F17 +:103074007B1C0D930B9B1878002800D0A1E5C9E5B3 +:10308400012F00D8F0E1731E3200A846DF190A9E12 +:103094005D460D9C00E00134534629002020B047D2 +:1030A4002200BC42F7D12600AB46454601360B9BB5 +:1030B4003A001878594653460A9CA047F8E5072277 +:1030C4000B9B07339343013294469C4462460B9214 +:1030D4001A685B689C46DB17129313931298139932 +:1030E40003005340109364460B0063401193109BFC +:1030F400119C1B1A8C41109311946346DB0F14939B +:1031040063461A4350D00D9A6123920600D5412399 +:103114000022DBB2904610AA0A3B1F2494460F9368 +:103124005B4664441793230015971696AB46109E8E +:10313400119F44460E9D984610E0C046C91B0020CE +:103144003032D2B2434601341A550023BB4200D177 +:1031540067E1202C00D167E106000F002A0000235C +:103164003000390000F052FAD2B2092AE8D90F9B94 +:103174009C466244D2B2E5E780231022DB00234060 +:103184000E920C2294430D94002B00D1BDE5B8E5BA +:1031940080239B001C40A446A7E610230E93B0E5B1 +:1031A4000B9B1B781A00BDE60D9A1023110099435E +:1031B4000D915205A7D5002398460D9B05970693BC +:1031C4000C9B04930E9B0393149B0293434667E664 +:1031D4000B9B1B781800BDE50D9E69E54546159FC0 +:1031E400B046169E0D9B059706930C9B04930E9B6D +:1031F4000393149BC3E50D9A6123920600D54123E2 +:1032040010AA1F249446DBB264440A3B1497159613 +:103214000B9346460700A84625000E9C08E0303371 +:10322400DBB20136AB55A7420ED3202E0CD00700DB +:103234002100380000F0A8F9CBB20929EFD90B9A84 +:1032440094466344DBB2ECE74546149FB046159EB2 +:103254008DE507220B9B07339343013294469C442C +:1032640062460B921A6859681300100009910B43C7 +:103274005CD10D9A1033110099430D91520555D527 +:10328400002398460D9B059706930C9B04930E9B75 +:103294000393002399E70B9B1B68D9175A184A40DC +:1032A4001000DA0F1692002B08D1802310220D99FA +:1032B400DB000B4091430D91002B2CD10D9A61231F +:1032C400920600D5412310AA90461F24DBB2444441 +:1032D4000A3B14971596A8460B93250007006646EB +:1032E4000E9C08E03033DBB20136AB55A7420ED357 +:1032F400202E0CD007002100380000F045F9CBB295 +:103304000929EFD90B9A94466344DBB2ECE74546AE +:10331400B446149F159E0D9B059706930C9B04932E +:103324000E9B0393169B029363462AE50D9A612331 +:10333400920600D541230022DBB2904610AA0A3B34 +:103344001F2494460F935B46644414971596AB462A +:1033540046461693A0460E9D099F04000BE03032AA +:10336400D2B2434601369A550023BB4265D0202E83 +:1033740065D004000F002A0000232000390000F06B +:1033840045F9D2B2092AEAD90F9B9C466244D2B2CB +:10339400E7E702230E9398E50B9B1B68181E08D1E0 +:1033A400802310220D99DB000B4091430D91002BDB +:1033B4002CD10D9A6123920600D5412310AA904680 +:1033C4001F24DBB244440A3B14971596A8460B937A +:1033D4002500070066460E9C08E03033DBB2013658 +:1033E400AB55A7420ED3202E0CD007002100380085 +:1033F40000F0CAF8CBB20929EFD90B9A944663447A +:10340400DBB2ECE74546B446149F159E0D9B059729 +:1034140006930C9B04930E9B039300230293634631 +:10342400AFE4B54200D894E6179B109611975D4619 +:10343400159F169EA0469B46BFE6A54297D9169BAC +:10344400B0465D46149F159E9B461BE70B9B1B686D +:10345400D9175A184A4065E500230D93FFF79EFBE0 +:103464000B9B1B68180075E437000D9E1FE60D9337 +:1034740002E60A230E932AE5140082E600B585B01D +:103484000391012102900093034813004A4202A9C8 +:10349400FFF78CFA05B000BD411E002010B5094AA3 +:1034A40084B01468002C09D0012200910300524218 +:1034B40003A90548A047012004B010BD01F0A4F8F9 +:1034C4000020F9E7144D0020311E0020014804219A +:1034D400014B1847204B0020BD320020142310B5A7 +:1034E4000100188804331B88984710BD162310B5B3 +:1034F4000100188802331B88984710BDF0B5C646F2 +:1035040000B5002916D01423040001259846182775 +:10351400890046184346216818883B88984701C4A7 +:10352400431E984140420540A642F3D1280004BC02 +:103534009046F0BD0125F9E7124A936F9B0815D216 +:103544009066D166002905D0FFE7FFE7FFE7516FDA +:10355400106F704704B580210906C2175140002836 +:1035640000D0C84301F04AF9002104BDF0B5146E3F +:10357400556E576F166FFFF7E3FF1466556657676E +:103584001667F0BD000000D0114A936F9B0813D258 +:1035940010665166002905D0FFE7FFE7FFE7516F8A +:1035A400106F704704B5002801D00020C04301F01B +:1035B40025F9002104BDC046F0B5146E556E576F51 +:1035C400166FFFF7E5FF1466556657671667F0BD7B +:1035D400000000D094464E4A926F9208624601D28F +:1035E40030E0C046F0B54A4EB56F6D08FCD3346E7A +:1035F400756E776F366F00F025F89446444A14666A +:103604005566576716676246F0BDC0469446404A01 +:10361400926F9208624601D258E0C046F0B53C4E23 +:10362400B56F6D08FCD3346E756E776F366F00F02E +:103634004DF89446364A14665566576716676246CF +:10364400F0BDC046002B24DB11D000293EDA00B5C2 +:10365400C943404200D1013100F038F8C943404227 +:1036640000D10131DB43524200D1013300BD002AB5 +:10367400EBD1002801D1002905D00020C90FC907CA +:1036840001D1C043410800B501F0B8F8002200237D +:1036940000BD00B500290ADBDB43524200D10133EF +:1036A40000F014F8C943404200D1013100BDC943C0 +:1036B400404200D10131DB43524200D1013300F0DA +:1036C40005F8DB43524200D1013300BD002923D168 +:1036D400002B18D1002A0CD0BC460D4F38667A66F0 +:1036E40000210023FFE7FFE7FFE77A6F386F6746A3 +:1036F4007047002801D00748010000B501F07EF8AA +:103704000022002300BD02000B00002000217047AE +:10371400000000D0FFFFFFFF002B00D0BFE0130C20 +:1037240028D1002AE7D080B4114F39667A66FFE7C2 +:10373400FFE730B4040C7B6F396F1B0423433B66F3 +:103744007A66FFE7FFE7FFE7C04684B27B6F3D6F11 +:103754001B0423433B667A66FFE7FFE7C04600236A +:103764002C042D0C7A6F386F00196941B0BC704776 +:10377400000000D0F0B594460025140E01D11202C9 +:103784000835140F01D112010435940F01D19200B0 +:103794000235D40F01D152000135D40B0134254F29 +:1037A4007C66254C3C660E0C93B2FFE7FFE7FFE70F +:1037B4003C6F6643360C7703BE467343DF0B5B04F2 +:1037C400C01AB941130C7343DB18C91ACE086643F7 +:1037D400360CB64493B273431F0F1B01C01AB94190 +:1037E400130C73431F0B1B05C01AB941860D8F02BE +:1037F4003E436643360C092D24DB520A7243801A79 +:103804007703460A6643360C16235B1BDE40DF4013 +:10381400BF1964466643821B7046043506330100B3 +:10382400D940A840C01900D30131A24206D20023D6 +:10383400F0BD0000000000D0FFFFFFFF121B0130AD +:10384400F3D3F1E709277F1BFE406446A2B272431B +:10385400801A00D20139220C7243130C1204821A0A +:1038640099410B007046043513370100F940A84014 +:10387400801900D30131002B02D1A2420AD2F0BD3B +:10388400013000D30131121BFAD2013BF8D1A2421C +:1038940000D2F0BD013000D30131121BF7E7F0B5BF +:1038A4001C0C00D080E00CB400251C0A04D11B02BF +:1038B400160E3343120208351C0B04D11B01160FDC +:1038C4003343120104359C0B04D19B00960F334300 +:1038D40092000235DC0B02D192185B4101351C00C9 +:1038E400971864410134464F7C66464C3C660E0C86 +:1038F400FFE7FFE7FFE7C0463C6F6643360C7703FC +:10390400BE4697B27743C01B00D20139C01B00D218 +:1039140001399FB27743C91BC91B170C77437E0437 +:10392400FF0B801BB941CE086643360C0C2D33DBEC +:10393400B644120B1F053A431B0B97B27743C01BC7 +:1039440000D201399FB27743C91B170C77433E0459 +:103954003F0C801BB941860D8F023E4366432927E5 +:103964007F1BFE400C3D7746AF40BF1930BCA2B26E +:10397400ABB272437343801A9941220C7243130C05 +:103984001204801A994102000B000137001BA9415F +:10399400F9D2781E0021F0BD0C277F1BFE4077462C +:1039A4007F0BAF40FF19E0E700245D1C07D0144FE4 +:1039B4007D663966FFE7FFE7FFE7FFE73C6F95B2F7 +:1039C4009EB265436643401BB141150C1E0C654312 +:1039D400664336042F0C3E432D04401BB1419942EB +:1039E40004D202000B0020000021F0BD01D190425E +:1039F400F7D3801A994101349942F2D3F6E70000D3 +:103A0400000000D0FFFFFFFF48404140484018B489 +:103A14001B4B5B68FC46019308BD04DF7F3A002022 +:103A240018B4174B1B68FC46019308BD00DF893AA4 +:103A340000209446134A926F920809D2624618B441 +:103A44000F4BDB68FC46019308BD0CDF413D0020B1 +:103A54000C4AF0B5146E556E576F166F6246FFF739 +:103A6400EEFF084A1466556657671667F0BD18B42A +:103A7400034B9B68FC46019308BD08DFE53B00202F +:103A84004C4D0020000000D0FFB550404240504053 +:103A940059404B40594000E0FFB5154F4C00640DB0 +:103AA40003D0BC4204D10C0314D80020090D09052D +:103AB4005C00640D03D0BC4204D11C030AD800226C +:103AC4001B0D1B0501264B4009D44B4003D58B42EB +:103AD40000D18242FFBD9942FCD19042FFBD0B430D +:103AE400DB1803431343F5D0C9434918FFBD000055 +:103AF400FF07000000B5FFF7CFFF804100BDC046BF +:103B040000B5FFF7C1FF01D9002000BD012000BDB1 +:103B140000B5FFF7B9FF804100BD012040054A0010 +:103B2400121804D85A00121801D800207047012036 +:103B340070470020704700000021002805D170471D +:103B4400C1174840401AFAD0C90713B5064B1B6881 +:103B540098470CBC441CA2401005120B0349091BD6 +:103B640009051943114310BD284D00201F0400000E +:103B740010B54C00620D8023D218DB00D21A5B050D +:103B84007E2A10DD9E3A13DACC170903490819433B +:103B94005242D140640001341532202A05DAD04063 +:103BA4000843604310BD002010BD0846604310BDAB +:103BB400C80FC018013810BD18B4044B5B6AFC462A +:103BC400019308BD24DFF13E002000004C4D00208D +:103BD400132370B51D78012D15D010DD2648FFF78D +:103BE40085FC264C01008022200000F057FB022DAA +:103BF40006D02348FFF772FC224B186070BD1F4C9F +:103C0400214AA264F5E71D4C1F4AA3085B421D40EC +:103C14002FD02B0022602020A9006118451B0A60C8 +:103C24004A608A60CA600A614A618A61CA610A623A +:103C34004A628A62CA620A634A638A63CA630A641A +:103C44004A648A64CA640A654A658A65CA650A66FA +:103C54004A668A66CA660A674A676D08102D03D1E8 +:103C64008A67CA67A264C4E71E339B00E250A26459 +:103C7400BFE70023CFE7C046534400004C4D00206B +:103C84004C330000284D00204D3A002007B5604613 +:103C940001880A0A0230DF2AFAD1C9B2820804D3A1 +:103CA400028840880004104300E00068014A505034 +:103CB400039007BD4C4D00200FB403BC0CBCF0B501 +:103CC4000124E407634000E0F0B50C0DCF0F661E3D +:103CD4003605891B640503D3C943404200D301312F +:103CE400640D03D0661CF60A07D0E41B00207F0095 +:103CF400791C89078912803C24031D0DDF0F6E1E79 +:103D040036059B1B6D0503D3DB43524200D30133BD +:103D14006D0D03D06E1CF60A07D0ED1B00227F0048 +:103D24007B1C9B079B12803D2D032F1B661B58D4C5 +:103D3400A446202E46DA20371400BC401D00BD40A6 +:103D4400F24033412A4380185941CB0F05D0C9436F +:103D5400C043002264425041514162464D0D28D176 +:103D64000D0D07D100281FD0241940414941013AC3 +:103D74000D0DF9D0640006D3013000D30131002CBD +:103D840001D140084000013A0BD4941CE40A04D148 +:103D940012051144DB071944F0BDD907204B194320 +:103DA40000E0D9070020F0BD0029DDD1002CDBD1D3 +:103DB400F0BD0132C6074008CD0728434908002E4C +:103DC400E1D0D9E73C2E29DA203E40371400BC402C +:103DD40000D00124F24014431A00BB401C43D31703 +:103DE400ACE7AC46202F08DA20360400B4400D00BE +:103DF400B540F84039412843A5E73C2F0CDA203F71 +:103E040040360400B44000D00124F84004430800C4 +:103E1400B1400C43C117EAE710001900002494E7ED +:103E24000000F07FF0B50C0D661E3605891BE60A0E +:103E34006405640D02D0651CED0A04D00020012144 +:103E44000905803C2403A4461C0D671E3F05DB1BAB +:103E5400E70A6405640D02D0651CED0A04D0002253 +:103E640001231B05803C24037740644497B484B247 +:103E740096B27443070C7E43150C6F4380B26843BB +:103E8400361802D3012000043F183004350C001901 +:103E94007D41844688B29AB250430C0C62431F0C95 +:103EA4007C438EB27E43921902D301263604A419B0 +:103EB4001604170C3618674101BC81B29AB25143FB +:103EC400040C62431B0C5C4380B25843121802D3A7 +:103ED4000120000424181004130C401863412D1809 +:103EE4005E410020474106BC88B293B258430C0C93 +:103EF4006343120C544389B251435B1802D301212A +:103F04000904641819041A0C091862416D18564101 +:103F14000020474118BCF902720D1143F0026A0DEA +:103F24001043ED020A0D03D16D1940414941013B93 +:103F3400124E9B1B7600B3420ED26D0007D30130A4 +:103F4400002671416646354301D1400840001B05F7 +:103F5400C918E4072144F0BD0BDA013306D101305E +:103F640004D101314F0D01D04908F2E7E1070020E7 +:103F7400F0BD013631050020EBE70000FF0300002F +:103F8400F0B51C0D671E3F05DB1BE70A6405640DD5 +:103F940002D0661CF60A04D0002201231B05803CD3 +:103FA4002403D0252D060026F6432E661E096E66D0 +:103FB400CE0FF619B44649004F0D02D07E1CF60A06 +:103FC40003D000200021403F3F033E1BB600B44411 +:103FD400013F7F05C91B49082E6F013676089C02F4 +:103FE400950D25437543ED137543AD1301356D10E0 +:103FF400F603761B0CB4CC02450D2C43A2B2B3B22B +:104004005A43270C7B43350C6F43A4B26C431B19F2 +:1040140002D3012424043F191C041D0CA4187D415F +:1040240024196D41009A91B2ACB26143170C7C43E0 +:104034002B0C5F4392B25A43A41802D301221204F8 +:10404400BF182204230C52187B41019C6C431B199A +:10405400520ED9010A434401A01A81B2B2B25143AB +:1040640003145A43360C734387B27743D617D219D5 +:1040740000277E4136049B191704160C7F185E41F5 +:104084007316ED18F301002680337541A90F06D18C +:104094006400690AE8055B0A184309D22FE0042288 +:1040A400944480337541A90AA8059B0A184326D372 +:1040B400404149412404009A019B0D005543641B6F +:1040C4004343E41A95B286B27543170C7E43030C3E +:1040D4005F4392B25A43B61802D301221204BF18A6 +:1040E4003204330C52197B4152429C41002C02D4BD +:1040F4000022013051414008CA071043490802B068 +:104104006246D7079210084BD218084B9A4203D242 +:1041140012058918C919F0BD0020002A01DC3900F4 +:10412400F0BD01331905F5E7FD030000FE070000AB +:10413400002200B5203200F004F8080000BD0000A1 +:1041440000220B150AD410B5944600F031F814146B +:10415400013400DA0021CB17144C20470020002141 +:1041640070476244343A0CD40C2A07DA04009140B4 +:10417400904052422032D440214310BDD843D94309 +:1041840010BD203207D40C469440524220321141D3 +:10419400D040204310BD0800C917203203D4524236 +:1041A4002032104110BD1800190010BD233F00201B +:1041B4000A0DCC0F531E1B05C91A520503D3C9435C +:1041C400404200D30131520D03D0531CDB0A07D007 +:1041D400121B00206400611C89078912803A1203B3 +:1041E400014BD21A70470000FF030000132310B5DF +:1041F4001C781348FFF77AF9012C0BD004DD010079 +:104204008022104800F04AF80F48FFF767F90F4B77 +:10421400186010BD0B4C01005422200000F03EF841 +:104224000B4B6365A365E36523666366A366E36678 +:1042340023676367A367E3672362E361E4E7C04638 +:10424400534600004C4E00204C330000284D002003 +:104254001540002007B5604601880A0A0230DF2AAB +:10426400FAD1C9B2820804D30288408800041043FA +:1042740000E00068014A5050039007BD4C4E0020F6 +:1042840001480421014B1847304B0020BD32002067 +:10429400014B1B6818470000304B0020014B5B6842 +:1042A40018470000304B0020030010B508001B68BD +:1042B4001100984710BDC046F8B54746CE4680B5B4 +:1042C400437C80460C001500002B43D0002A34DDCB +:1042D4000A78037C00200A2A33D0012D1ED0204BFB +:1042E4000121671E994602E03100B54216D0635C95 +:1042F4007A5C4E1C0A2BF7D10D2AF5D043461B6875 +:10430400884204DA091A2018984743461B68022198 +:104314004846984730003100B542E8D1854204DD73 +:104324004346291A1B68201898476419013C2378CE +:104334000D3B5A425341424613740CBC9046994675 +:10434400F8BD002BC9D14346054802211B68984794 +:104354000120C2E70368110020009847EDE7C0463A +:10436400644A0020F8B54E46DE4657464546344B6F +:10437400E0B51C688146002C4ED0324B9A46324B35 +:104384009B4602E0E468002C46D02368002BF9D059 +:1043940052461268002A01D0A242F3D14F46627CF1 +:1043A40040CF002A48D0002EECDD49460979227C12 +:1043B40000200A2939D0012E1ED04B4601215D1C54 +:1043C40003E001354146464516D04B1C98462B79EF +:1043D400EA780A2BF5D10D2AF3D02368814203DD54 +:1043E400091A381898472368022158469847013516 +:1043F400404641464645E8D1864203DD311A2368EA +:1044040038189847BF19013F3B780D3B5A42534136 +:104414002374E468002CB8D14A46002313603CBCE2 +:1044240090469946A246AB46F8BD002AC3D1064839 +:10443400083998470120BEE7310038009847A1E7C2 +:104444000C4D0020104D0020644A00200B6870B50C +:1044540005000C00802B04D05A1C2260E41825713E +:1044640070BD0800FFF77EFF2368F5E7F0B5DE4670 +:1044740057464E464546E0B51E00D0231B0683B082 +:104484001C68334B01AF80460D001800390091467B +:104494009B4600F019FA8246002808D1019B64B2B9 +:1044A4009C4204D0584600F0EBF901239A466B1C59 +:1044B40003D1404600F0A4F90500002E28D1254E72 +:1044C400254B1C68002C16D04B46002B22D1234FC1 +:1044D40002E0E468002C0ED02368002BF9D03B687E +:1044E400002B01D0A342F4D120002A004146B0475A +:1044F400E468002CF0D15346002B25D1681E854179 +:10450400E8B203B03CBC90469946A246AB46F0BD27 +:10451400134ED5E7114B994602E0E468002CEAD02B +:104524002368002BF9D04B461B68002B01D0A34213 +:10453400F3D12A0041462000B0470A230122390062 +:1045440020003B70B047E8E7584600F0E1F9D5E7B2 +:10455400544B0020794000200C4D0020104D0020C9 +:1045640069400020F0B54746CE4680B583B06B461F +:10457400DF1CD02338701B061C68204B060001A9E1 +:104584001800984600F0A0F9051E22D01C4B1C68A8 +:10459400002C2AD01B4B994602E0E468002C10D072 +:1045A4002368002BF9D04B461B68002B01D0A34293 +:1045B400F3D1200001223900FFF77EFEE468002CCD +:1045C400EED1002D11D1300003B00CBC90469946B9 +:1045D400F0BD019B64B29C420BD0404600F050F900 +:1045E400074B01251C68002CD4D1404600F090F9FB +:1045F400E9E7034B1C68002CCCD1E4E7544B0020C2 +:104604000C4D0020104D002070B5040000F0F8F8A7 +:1046140000230100050001222000FFF727FF084BBB +:104624001C68002C06D06368002B05D09847E4680A +:10463400002CF8D1280070BDE468002CF3D1F9E710 +:104644000C4D00200A4A1368002B05D10CE01A0017 +:10465400DB680C32002B07D09842F8D1002902D134 +:10466400C3681360C16070470029FCD01060FAE78A +:104674000C4D0020F0B5C646D02300B5204EA2B0A4 +:104684001B0607008846300001A91C6800F01CF9CD +:10469400051E07D1019B64B29C4203D0300000F098 +:1046A400EFF801358422002101A8FFF7F1FD43460C +:1046B4003A0001A91348FEF7E1FE019B0700002B15 +:1046C40002D001A8FFF74EFE0F4B1C68002C06D049 +:1046D4006368002B0AD09847E468002CF8D1002DB9 +:1046E40009D1380022B004BC9046F0BDE468002C27 +:1046F400EED1002DF5D0300000F00AF9F1E7C04604 +:10470400544B00200D4200200C4D00200FB400B586 +:1047140083B004A901C90191FFF7ACFF03B008BC41 +:1047240004B0184710B500F045F810BDF0B50029E5 +:1047340015DD0E4B0D271A680D4B4118D3185C423A +:1047440063410C4C5B001E5F20240578AE4207D009 +:1047540093691C42FCD1013015608842F5D1F0BD4B +:1047640093691C42FCD11760F2E7C046404D00201B +:104774000080FCBF484D002030B5002914DD0C4BEF +:104784001A689369DB060FD400251024013801351B +:1047940093691C42FCD113684355A94202D0936922 +:1047A4001C42F4D0280030BD03256D42FAE7C04610 +:1047B400404D0020E12110B50B4B0C481B780C4BED +:1047C40049021B780B4B1860FDF73CF802210020CE +:1047D400FCF72AF802210120FCF726F801210648FB +:1047E400FFF730FF10BDC046FC020010004003403C +:1047F40000030010404D0020404B00207047C0468D +:1048040010B5830727D00378002B26D0030003219B +:1048140002E01A78002A1CD001330B42F9D119683E +:104824000F4A104C8A188A4322420FD10433196864 +:104834000B4A8A188A43224208D104331968084A69 +:104844008A188A432242F1D000E001331A78002A00 +:10485400FBD1181A10BD0300E1E70020FAE7C046B7 +:10486400FFFEFEFE80808080F8B5C0460000000098 +:1048740001B40248844601BC604700BF73020010C3 +:10488400D02330B500251B065D57002406E00368DD +:10489400BFF35F8F1C6081F3108820BF0268EFF3C1 +:1048A400108172B61368002BFCD0BFF35F8F0379BD +:1048B4007F2BECD905710368BFF35F8F00221A6068 +:1048C40081F3108830BDC046030010B50068EFF3D3 +:1048D400108472B60268002AFCD0BFF35F8F0422F2 +:1048E4009A56002A0BDB00290FD000200A601B68AF +:1048F400BFF35F8F00221A6084F3108810BDD022AA +:104904001206126801201A71F1E70020EFE7C04691 +:104914000268EFF3108172B61368002BFCD0BFF36A +:104924005F8FFF2303710368BFF35F8F00221A6058 +:1049340081F3108840BF70470047002005FF000046 +:10494400A08003A088650840209F00006D63752542 +:1049540064202D2076616C7565207075743A20256D +:1049640030326C78202D2076616C7565207265611B +:10497400643A202530326C780A0000004E6F2070B3 +:10498400726F6772616D207370616365000000006F +:104994004E6F2050494F207374617465206D6163BC +:1049A40068696E65732061726520617661696C6106 +:1049B400626C6500486172647761726520616C6144 +:1049C400726D20256420616C726561647920636C6A +:1049D40061696D65640000004861726420617373ED +:1049E400657274000A2A2A2A2050414E4943202A1B +:1049F4002A2A0A0038280020F8270020F827002057 +:104A040030280020F8270020F8270020F82700206D +:104A1400F8270020F8270020F8270020F827002096 +:104A240028280020F827002020280020F82700202C +:104A3400F8270020E22700200E290020D828002093 +:104A440002290020D8280020F0280020D82800209F +:104A5400D8280020D8280020D8280020D8280020D2 +:104A6400D8280020D828002040280020D82800205A +:104A7400D8280020D8280020D8280020D8280020B2 +:104A8400402800208C2B0020A6270020A6270020E9 +:104A9400A6270020A6270020A6270020A62700205E +:104AA400A6270020A6270020A6270020A62700204E +:104AB400A6270020A6270020A6270020A62700203E +:104AC400A6270020A6270020A6270020A62700202E +:104AD400A6270020A6270020A6270020A62700201E +:104AE400A6270020A6270020A6270020A62700200E +:104AF400A6270020A6270020A6270020A6270020FE +:104B0400A6270020DC2B00205C2B0020DC2B0020BF +:104B1400A6270020A6270020A6270020A6270020DD +:104B2400A6270020A6270020A6270020A6270020CD +:104B3400A6270020A6270020A6270020A6270020BD +:104B4400A6270020A6270020A6270020A6270020AD +:104B54008C2A0020A6270020A6270020A6270020B4 +:104B6400A6270020A6270020A6270020A62700208D +:104B7400A6270020A62700208C2A0020202A002017 +:104B84008C2A0020DC2B00205C2B0020DC2B002056 +:104B9400A62700208C2A0020A6270020A627002074 +:104BA400A6270020A6270020A62700208C2A002064 +:104BB400DA290020A6270020A62700201E2900208D +:104BC400A62700208C2A0020A6270020A627002044 +:104BD4008C2A0020666E6900666E692B0000000056 +:104BE4006E616E00666E692D00000000000000001A +:104BF400000000000000F03F00000000000024401E +:104C040000000000000059400000000000408F40F8 +:104C1400000000000088C34000000000006AF84063 +:104C24000000000080842E4100000000D012634187 +:104C34000000000084D797410000000065CDCD41FD +:104C440006005250BBFF3CB6444A002006005250B6 +:104C5400E182887F2C4A002006005250D3F075422E +:104C6400244A002052656C6561736500626F6F743D +:104C7400325F77323571303830000000312E342EF7 +:104C8400300000007069636F000000006475616C9F +:104C94002D6D63752D3100004A616E203330203252 +:104CA400303233000D0A00000600525053B4F4A110 +:104CB400944A00200800525092000000554152547A +:104CC40020737464696E00005541525420737464F7 +:104CD4006F7574005541525420737464696E202FAB +:104CE400207374646F7574001000000000000000ED +:104CF40000000100000000000000000000000200AD +:104D0400000000000000000000000300000000009C +:104D1400000000000000FF000000000000B548682B +:104D240001318E460047704609380149884700BD65 +:104D3400850800200C4B002000000000704B002070 +:104D4400CC4C00200000000000000000DC4C0020DF +:104D5400000000000000000010000000000000003F +:104D6400503300004C330000543300005233000031 +:104D74004D5300004D430000533400004334000001 +:104D8400ED44002000000000394500200000000030 +:104D9400000100000000000000000000414000206D +:104DA4008D32002091390020AD3F002039010020D0 +:04000005100001E9FD +:00000001FF diff --git a/demo/dual-mcu/dual-mcu.c b/demo/dual-mcu/dual-mcu.c new file mode 100644 index 0000000..493cedc --- /dev/null +++ b/demo/dual-mcu/dual-mcu.c @@ -0,0 +1,37 @@ +#include +#include "pico/stdlib.h" +#include "hardware/structs/rosc.h" +#include "dual-mcu.pio.h" + +int main() { + stdio_init_all(); + + uint bus_start_pin = 2; // start at GPIO2, leave GPIO0/1 to UART + PIO pio = pio0; + uint sm = pio_claim_unused_sm(pio, true); + uint offset = pio_add_program(pio, &dualmcu_program); + dualmcu_program_init(pio, sm, offset, bus_start_pin, 500); // run PIO at 125MHz/500=0.25MHz + +#ifdef MCU0 + uint mcu = 0; +#else + uint mcu = 1; +#endif + uint8_t bus_cycle = 0; + while (true) { + // The PIO program keeps pins at low and changes pindirs instead: + // pindir 1 (output) thus pulls the pin to low, + // pindir 0 (input) will make the pullup pull the signal to high + // (unless the other MCU drives that pin low). + uint32_t bus_val = (1 << ((mcu == 0) ? bus_cycle : (8 - bus_cycle))) ^ 0xff; + uint32_t out_dirs = bus_val ^ 0xff; + pio_sm_put_blocking(pio, sm, out_dirs); + uint32_t read_val = pio_sm_get_blocking(pio, sm); + + if(mcu == 0) { + sleep_us(10); // just make sure the emulator does not print messages on top of each other + } + printf("mcu%d - value put: %02lx - value read: %02lx\n", mcu, bus_val, read_val); + bus_cycle = (bus_cycle + 1) % 8; + } +} diff --git a/demo/dual-mcu/dual-mcu.pio b/demo/dual-mcu/dual-mcu.pio new file mode 100644 index 0000000..f0bdb82 --- /dev/null +++ b/demo/dual-mcu/dual-mcu.pio @@ -0,0 +1,26 @@ +.program dualmcu + + pull block + mov pins, null + out pindirs, 8 [5] + in pins, 8 + push [31] + +% c-sdk { +static inline void dualmcu_program_init(PIO pio, uint sm, uint offset, uint bus_pin_start, float div) { + const uint bus_pin_count = 8; + pio_sm_config c = dualmcu_program_get_default_config(offset); + sm_config_set_out_pins(&c, bus_pin_start, bus_pin_count); + sm_config_set_in_pins(&c, bus_pin_start); + sm_config_set_in_shift(&c, false /* true: shift ISR right */, false, 0); + sm_config_set_out_shift(&c, true /* true: shift OSR right */, false, 0); + for(uint i=0; i/external/pico_sdk_import.cmake + +# This can be dropped into an external project to help locate this SDK +# It should be include()ed prior to project() + +# todo document + +if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH)) + set(PICO_SDK_PATH $ENV{PICO_SDK_PATH}) + message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')") +endif () + +if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT)) + set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT}) + message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')") +endif () + +if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH)) + set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH}) + message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')") +endif () + +set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the PICO SDK") +set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of PICO SDK from git if not otherwise locatable") +set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK") + +if (NOT PICO_SDK_PATH) + if (PICO_SDK_FETCH_FROM_GIT) + include(FetchContent) + set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) + if (PICO_SDK_FETCH_FROM_GIT_PATH) + get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") + endif () + FetchContent_Declare( + pico_sdk + GIT_REPOSITORY git@asic-git.pitowers.org:projectmu/pico_sdk.git + GIT_TAG master + ) + if (NOT pico_sdk) + message("Downloading PICO SDK") + FetchContent_Populate(pico_sdk) + set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR}) + endif () + set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) + else () + message(FATAL_ERROR + "PICO SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git." + ) + endif () +endif () + +get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") +if (NOT EXISTS ${PICO_SDK_PATH}) + message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found") +endif () + +set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake) +if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE}) + message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the PICO SDK") +endif () + +set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the PICO SDK" FORCE) + +include(${PICO_SDK_INIT_CMAKE_FILE}) diff --git a/package.json b/package.json index 8e06cd8..7be36fb 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "start": "ts-node demo/emulator-run.ts", "start:micropython": "ts-node demo/micropython-run.ts", "start:gdbdiff": "ts-node debug/gdbdiff.ts", + "start:dual-mcu": "ts-node demo/dual-mcu.ts", "test": "jest" }, "devDependencies": {