diff options
author | bnewbold <bnewbold@robocracy.org> | 2012-11-22 00:21:11 +0100 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2012-11-22 00:21:11 +0100 |
commit | f0fdd4b91cd4dded9e029a7a3a8b6a158d721a30 (patch) | |
tree | bca519a7ad0bf91a8ede0f04088753e1de1862e4 | |
parent | c179ad73391f5ce441156dc852104b9b18a296c5 (diff) | |
download | zufallig_gerat-master.tar.gz zufallig_gerat-master.zip |
-rw-r--r-- | test_20121121/entropy_hex.cpp | 63 | ||||
-rw-r--r-- | test_20121121/helpers.py | 30 | ||||
-rwxr-xr-x | test_20121121/hex2binary.py | 31 | ||||
-rw-r--r-- | test_20121121/notes.txt | 107 | ||||
-rw-r--r-- | test_20121121/partial_1k_lines.hex | 1000 | ||||
-rwxr-xr-x | test_20121121/vonneumann.py | 38 |
6 files changed, 1269 insertions, 0 deletions
diff --git a/test_20121121/entropy_hex.cpp b/test_20121121/entropy_hex.cpp new file mode 100644 index 0000000..7fc627c --- /dev/null +++ b/test_20121121/entropy_hex.cpp @@ -0,0 +1,63 @@ +// Sample main.cpp file. Blinks the built-in LED, sends a message out +// USART2, and turns on PWM on pin 2. + +#include "wirish.h" + +int inByte; // Byte read from Serial1 + +void printHex(char val); + +void setup() { + // Initialize Serial1 + //Serial1.begin(9600); + //pinMode(37, INPUT_FLOATING); + pinMode(37, INPUT_PULLDOWN); + //pinMode(37, INPUT_PULLUP); + pinMode(BOARD_LED_PIN, OUTPUT); +} + +void loop() { + + togglePin(BOARD_LED_PIN); + + for (int i=0; i < 78/2; i++) { + inByte = 0; + for (int j=0; j < 8; j++) { + delay(1); + inByte |= digitalRead(37) << j; + } + printHex(inByte); + } + SerialUSB.println(); +} + +void printHex(char val) { + char u = (val & 0xF0) >> 4; + char l = (val & 0x0F); + if(u <= 9) { + SerialUSB.write('0'+u); + } else { + SerialUSB.write('A'+u-10); + } + if(l <= 9) { + SerialUSB.write('0'+l); + } else { + SerialUSB.write('A'+l-10); + } +} + +// Force init to be called *first*, i.e. before static object allocation. +// Otherwise, statically allocated objects that need libmaple may fail. +__attribute__((constructor)) void premain() { + init(); +} + +int main(void) { + setup(); + + while (true) { + loop(); + } + + return 0; +} diff --git a/test_20121121/helpers.py b/test_20121121/helpers.py new file mode 100644 index 0000000..abe991a --- /dev/null +++ b/test_20121121/helpers.py @@ -0,0 +1,30 @@ + +def stats(s): + high = s.count('#') + low = s.count('.') + print "total: %d" % (high + low) + print "percent: %f" % (100.0 * (high / (high + low * 1.0))) + +# total: 3499 +# percent: 46.156045 + +def hex_stats(s): + d = dict() + for k in "0123456789ABCDEF": + d[k] = s.count(k)*1.0 + bitmap = dict() + for k in d.keys(): + bitmap[k] = bin(int("0x"+k, 16))[2:].count('1') + chars = sum(d.values()) + bits = chars*4 + zeros = 0 + ones = 0 + print "chars: %d" % chars + for k in "0123456789ABCDEF": + v = d[k] + print "\t%s: %d\t%f\t%f" % (k, v, v/chars, v/chars*16) + ones += bitmap[k] * v + zeros += (4 - bitmap[k]) * v + print "bits: %d" % bits + print "\tzeros: %d\t%f" % (zeros, zeros/bits) + print "\tones: %d\t%f" % (ones, ones/bits) diff --git a/test_20121121/hex2binary.py b/test_20121121/hex2binary.py new file mode 100755 index 0000000..a4002da --- /dev/null +++ b/test_20121121/hex2binary.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python + +import sys + +def main(fin, fout): + last = None + + for c in fin.read(): + if c not in "0123456789ABCDEF": + continue + if last == None: + last = c + continue + fout.write(chr(int("0x" + last + c, 16))) + last = None + + +if __name__=="__main__": + if len(sys.argv) == 1: + fin = sys.stdin + fout = sys.stdout + elif len(sys.argv) == 3: + fin = open(sys.argv[1], 'r') + fout = open(sys.argv[2], 'w') + print "working..." + else: + print "ERROR: wrong number of arguments (in_file + out_file OR none)" + + main(fin, fout) + fin.close() + fout.close() diff --git a/test_20121121/notes.txt b/test_20121121/notes.txt new file mode 100644 index 0000000..33d6413 --- /dev/null +++ b/test_20121121/notes.txt @@ -0,0 +1,107 @@ + +running with a scope probe on the same line going to the maple. + +paired transistor has it's free leg tied to the middle leg. + +noise looks like usual on scope, about 0-2v, very rounded, characteristic time +of a pulse around 500ns total. + +used entropy_hex.cpp, then ran: + + cat /dev/ttyACM0 | pv > some_bits.hex + +got 200-300B/s + +============================================================================== +chars: 2262 + 0: 152 0.067197 1.075155 + 1: 141 0.062334 0.997347 + 2: 165 0.072944 1.167109 + 3: 145 0.064103 1.025641 + 4: 159 0.070292 1.124668 + 5: 141 0.062334 0.997347 + 6: 158 0.069850 1.117595 + 7: 100 0.044209 0.707339 + 8: 152 0.067197 1.075155 + 9: 139 0.061450 0.983201 + A: 147 0.064987 1.039788 + B: 133 0.058798 0.940760 + C: 146 0.064545 1.032714 + D: 123 0.054377 0.870027 + E: 155 0.068523 1.096375 + F: 106 0.046861 0.749779 +bits: 9048 + zeros: 4722 0.521883 + ones: 4326 0.478117 + +============================================================================== +$ cat partial.bin | rngtest +rngtest 2-unofficial-mt.14 +Copyright (c) 2004 by Henrique de Moraes Holschuh +This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +rngtest: starting FIPS tests... +rngtest: entropy source exhausted! +rngtest: bits received from input: 8333528 +rngtest: FIPS 140-2 successes: 121 +rngtest: FIPS 140-2 failures: 295 +rngtest: FIPS 140-2(2001-10-10) Monobit: 226 +rngtest: FIPS 140-2(2001-10-10) Poker: 254 +rngtest: FIPS 140-2(2001-10-10) Runs: 93 +rngtest: FIPS 140-2(2001-10-10) Long run: 1 +rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 +rngtest: input channel speed: (min=1.330; avg=7.733; max=18.626)Gibits/s +rngtest: FIPS tests speed: (min=36.261; avg=83.809; max=104.799)Mibits/s +rngtest: Program run time: 97333 microseconds +bnewbold@ziggy:~/code/entropy/test_20121121$ cat partial. +partial.bin partial.hex partial.white.bin + + +============================================================================== +$ cat partial.bin | ent +Entropy = 7.991205 bits per byte. + +Optimum compression would reduce the size +of this 1041691 byte file by 0 percent. + +Chi square distribution for 1041691 samples is 12677.89, and randomly +would exceed this value 0.01 percent of the times. + +Arithmetic mean value of data bytes is 129.3382 (127.5 = random). +Monte Carlo value for Pi is 3.092728163 (error 1.56 percent). +Serial correlation coefficient is 0.005857 (totally uncorrelated = 0.0). + + +============================================================================== +$ cat partial.white.bin | rngtest +rngtest 2-unofficial-mt.14 +Copyright (c) 2004 by Henrique de Moraes Holschuh +This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +rngtest: starting FIPS tests... +rngtest: entropy source exhausted! +rngtest: bits received from input: 2071600 +rngtest: FIPS 140-2 successes: 75 +rngtest: FIPS 140-2 failures: 28 +rngtest: FIPS 140-2(2001-10-10) Monobit: 28 +rngtest: FIPS 140-2(2001-10-10) Poker: 4 +rngtest: FIPS 140-2(2001-10-10) Runs: 1 +rngtest: FIPS 140-2(2001-10-10) Long run: 0 +rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 +rngtest: input channel speed: (min=1.164; avg=5.958; max=18.626)Gibits/s +rngtest: FIPS tests speed: (min=34.933; avg=64.741; max=104.799)Mibits/s +rngtest: Program run time: 31552 microseconds + +============================================================================== +$ cat partial.white.bin | ent +Entropy = 7.996434 bits per byte. + +Optimum compression would reduce the size +of this 258950 byte file by 0 percent. + +Chi square distribution for 258950 samples is 1285.33, and randomly +would exceed this value 0.01 percent of the times. + +Arithmetic mean value of data bytes is 130.3190 (127.5 = random). +Monte Carlo value for Pi is 3.074841281 (error 2.12 percent). +Serial correlation coefficient is 0.002130 (totally uncorrelated = 0.0). diff --git a/test_20121121/partial_1k_lines.hex b/test_20121121/partial_1k_lines.hex new file mode 100644 index 0000000..34afe95 --- /dev/null +++ b/test_20121121/partial_1k_lines.hex @@ -0,0 +1,1000 @@ +090488708F4B19B181030CC68AFE428DBECD0E8
+86A5FD1A1BA61D5670FC4B142DF5804151DF92180662055EA11E795251A2211403B7832CA51410
+825A0962A8B09F4464B00EA890B332EE9C2A538AC852182C61B5D2EEDD168E7D58FBE57BEF48C2
+101683B01830A4D4F06B93A7CE6A6659342336DEB202AA70B9E4CDE316F0A966A3CC998A33E8E8
+4BC065635B5100211998C047A4DD5F79204EE643E166124E208B1D8A8C542558FCA40AB850D0FE
+F8A40CAA1628DE551CB70E3133CF0AE66F119885F032B78446E2D8F5E9EC725D829528E1EEBBB2
+19218264B0C1A00F59C6A992667F925C6DAA4E14CCCB42FC53EA132711C01ABE42623E84A66CCD
+E83A6CB26F7BE5EB064C9251FD6E30066C1F07D42A7BBCE6603351945DC136994011308328A22E
+8BD4D132617C6C1BA4951EB2FAD258A60E29DB2D59DA0B12922A83E1DF305CFF4CE334C7000036
+5721E240041D92BD656B16BC129AE6B0BBB938922CAF81F57E1D389A55BC93AE3343BAA6B5F62A
+61DD993EDF6FB26C160499B6E2A11B3A435056A5C03E5CE50E2E431727E19CB32775419F5DE6E8
+2A83924C1C21554CF7B767DFDAC589DB3474371909AE6F1C9074AC0D5200916CD4BA7F05EC9F1D
+825AFB4D480EB0AD9E1276A3152DFEB6AB8E8438CBC30AEA284A00A79443CCB3A0680088E2C292
+0B662EA12789DE89B372F62860A3CC48B9C4740907E560852E3AB4D62BB200840245BACFA7C75D
+3398BD54ED137B05AF3F64471A53BE4D8AE8E1615568C2974D447411E642FBBCD94A967380491E
+8B26D69B02FD82F85E56F48E4B52223A84A8B8857C186FC63FE5F690E2F18E87C57964742AC26C
+C06EBC487DAE0F3CEC8C4AA45D2ED6D0B3ADC5E4F6329464A778E56C6F606C0E43A630DB9C3B50
+8D028C8E987AD665CCCC4D237F8ECD07F5E96E1A6D60BCE73661547C4609AD7A96E19DE8CCD861
+7498A8BC340EEF2A5C1BD244FD1809DCA4CDF130608351B23B381C96AE0F1332B7C188A2982AA5
+13CEF19ECEEBC364BB2D4BEA72DA6EAD20E19F22098BAA1A3E65834ED541CA21B53AC777E4448B
+EB2C5ECBF5B3FBDCF9E409914002568BBF60BC284A1484069FA6F80E2ADEEC5304D0B350462304
+29DD7A7DD9EFAA3859FCEC99FE56657299EC4D0C9DD4F598B066EA0C65A00778905E2E9B1A2239
+EC8DE49AFDEADA1629E66091B8B3A8349F9BA835C3F4525CA3F42AAE6F743F350C4C5327BF464B
+5133D8D1F78E9D1142214167EF8A08C2070520AA98049BC6A1D84006B939F32192BB991626887A
+7E868B24354563AA39F63B8A2FB6ACFCF8774F6F74CBB5363F029988BB0A13BEDC881647E07030
+6F482CD758443DCA3ECB649263D9C7D0ABC0EE25BC74A4448AE44379529C55CA1485D1D4E7B04F
+3D4CD91B1D449F9410850279E8AB9E4B52D9D28A13E5BEFD0CF16486147994D230B53A37738D58
+546B8539DD8130B6D4DA025C1E0C119A116D2060521F79BC29994E0652C4085DC73E2826F95E26
+F3F28601C433374C62343824C8CF2077CBE131897C98EE3A525A6E9A02DF833DE2629B33258E03
+3EA06D09EEFE6CFA350688CF2E1DEC5BD5D5C3453A09927858A226678519157314179D2F1825F5
+5DFBF5875FBEDF04CADC6B5FC1BF947684475F919E27A5945E665E01E83333C59C6585E7251FDB
+B0B50A3A44A54F537CE8CDA1653B1312C2EDE657C0786C0A2317878F5FBEE79C8B7148626E849B
+0CA306E51C5E62FC226BE81C92C19B2FADF3829931D08660F204A667272C413272671B009C6A92
+F837DEEFD845C4FA9AD97CCEB9C65CF3C7BE28CEE5BC8F980E3E49BAF30210E256773AE81EC955
+0AF7B83CD09FE0D2DF89F6035378A1D81CE3C76366008F098636012E81985D0CF0F6550013B86D
+57429C9D143E2C1F0E09311F001452E0C13EC92859047947F8DCA834B7070C2B514D50570862AE
+C5821338A1C356CB067A7223911893CA9ED600AEC900FCB7AC5017C92101E82A2EE942445D0D79
+FDDA902159C089606384F68E3B0391E8D1B455539393747E77DC763918206F484320D4CB46525B
+06706F8B8014830274F685D8A726A2F094370B7974E8B3B7C28ECE5E76955E850C352D7C213D92
+2C54045EF507B4D18C2F0A40A8C467BC13D3233F41382D0899C55992A3B66352DF2FC47A6851DB
+8AD0D246CC23A631F66A5E835E0C703370898A3172FCC483584AC43194D017C08546BE09CD348A
+B26451C4E8E7B2A24542A3515F9FCA465A28F53C8E1C80E63A9A5618296EF232B68C34123FF38E
+0EC61180E26F6A09D7D9591499E73ACF6CCF1E1FC876CCBC2AB78FDBF6A81FB3F70A02C6BAC774
+FEAB268116CF3C62507D68A4B5A9670B0B2634A1F68A06281B7E395C6C91F618314AEC13C61620
+9F962D37D91C9EAA063E1200277D5BB269D14F6D50F0D0CA32C43CC1FC9F3CD00B96D4447EAEDC
+C82CB0B8325EF496B772622C863ACD97268FC07A513314BD8F83617CA36910D79300E52CCE48FC
+0A15D4B84AF026E4FE2C0A4A849E347269363979971078B51C62A2688103DA9B132F1895C608D3
+B2C68497E62547B44022B2804092068C2B8C7EE8D9AAC15FA4208C923E8E516E34AEC4BB38BB0C
+0DD087636CF2B8F3C82B1ADBA3595B718F8A3713DF562409ECA275C129CD4B75FA40045AF2D50B
+9082FC9E4D4BF2C1ED86D434CCE4C3214D96FA3C26086FD89EF2112CA693668775907A60839607
+A181F15FF01AB4B266F3A31C5165F50220FC15EC16EDC9E7F00F39EA091DF892A354CB86523F7C
+F4963DBA229DA720B31214049A20E4C849732519560AD66317F8BB02EA9B3BF8A182EE1F6A4260
+7EA95AA313EE26313A76798C7C40B1A82BC4AA9CD28D9A3C577FE49D3AEFCC18D5C2464CAD9CD7
+5550DCDAA6C608148679D0800C54E62B120C39011A97F0CCC32E612AAA135920288A4F27888C4C
+77643D9E81D9E00C88B3B24B4D5FD97B21EF1BEEEE17564A56372A071848A025908D479A5E48CE
+896E5F1C6B64D0FFD077A12334E5CDC2176E34D03A74E8BA9C15EAC2332509D3A3DBA5C9301A0A
+3F6137E06C9B5409228340D958100CE0E7836FC92C7136DA30E6A27D12840322CC20DD5C3D9BA6
+1127160C0B678580546E498233434AB91EEACC22B779921A0151013FEF0C7695B77D994450814C
+79EA94F6AD0D87ADBA8789E63C96A7F0DB5A44195C0510394A700FB75E3065D7825BCE0CC4ADC4
+B51A808D99C0EE64A0D572A84D005E7D4113DAA012BE1F81B90F029876F076E35B78B593630326
+2C209F6EA70394EC4A0C6CB7A47CC441872977CAE05F81C12219196B7C5A3B995279BE4A37389C
+E1E0DCB90EECD69EED6FD6CA464F1098FE7A0AA81B057F951C84B80D92220460D19C973956C052
+C2C88E16509EAEB4081F5D1772ABF8713DED751C57500BE24CDCB154A60C777593A7F1971CA73A
+D32FDC587F908D4458694E01AAF38E1107CB0026FC187488CFAC45107A50ACB0B1E92108025EFD
+937ED9B02C9B989612CEEDBC416336C20135F9383D80319ACD56BC4CCE014A18063491EB72CCF2
+114B5840485A467A7144CF50615493657EC6B90A1C87CCC8CC445CA99766A1A633AF886B0A846C
+C476882F23C01AC473C880536930E9AA2CB10C7B644EC6EE3E0BE5642E473DA729C44014D530E3
+4118CC8198F394D1D8662F6C3794D72093ADD51A261ECEDCE9F2B1C074F932C90BFE3F6C8BD296
+F942B1B893E2D0D4C1FE6EF6294B941A7C0A68EA428D2DE4894FF0CC0B6328E28BBC891D708E34
+7ECD88C197BAB2FA8C62A70EBDE5FE0591A9932994CD7D1A60946B704798DCE2036B1707B55627
+F48839482873D645C4940AC02E598254871A241C7EDCACB8C5B41AD5FE54FB2F583E5270712430
+EE975A6A3CC78EACAD0B37AC89606541ECB8FD2E6CA291066EEEE0C02093B596EF0A576AEE5A32
+970C79C6028C26F3EF7AFA4BB7644AF2C0EAA0BCBCA28630925130249FB238CA6FF70CF783A5D4
+A232339AC2FBA991D18B9B80DF4148FBA4049B2B76824DE358720615474D48B9513C765E9AD096
+6211196A09160B22D290931A41D6BB726AEB1616655E160A727251E48E80C699D75438C89994E1
+9814DFF472519C56194D07379B11C713B6C7F3C930975B39695414490D8E338421BAC3A9FCF1DA
+EF4665751A00A6691CFBB2CC23A7478F8CB11F292CEEE72E5CC3DD5ED4270F7776CC2B8B4211AF
+91E0AA7D314A28C6F97160BA7AA884AA226BD3C191AEB0B13AA0C63CBFFC217F8C887F46CF5827
+704D8054870855B0B66020BCD5897A4223A3A493863FB64C435E0650345C3FF33573624ACAB38F
+AB75A119B186BC47527CCCFABF883FB8BA19350CBA209B36B28B76300683F9AF2403A8D70FA65C
+5BE55E5F47984E4E148610068F863EDF917019AF8496B3CC64D7E192153431D0F23A76299E669E
+D24A8C273E5DEE40C3B1AF1A44868A42E2172EFCE0643CED2B771752C7928E4DDDD0D9F282780B
+11F15D54066852245E7229E4145DE7B028A5FC07E9A12F8BFD903A223F44E703C1C18EAC76F953
+1E28B42DBD2336A5D5FCA74703BF1F9611D59B9925C1D4A3EAA07E961941911F5E68348429A86D
+C50EF30CF861642A6D976ABF0B9790543C4E5EEA0C81F84743BBC87822160D7F223E5A011CA3C9
+FA1AB189EE48681FB35C7FBC69733370D44C5E54F6D921960219B6AD3ED11C0E1D7C19CCCD842A
+10CBEAF191118042355679D88B394668632244388B4E421E57C8D95BCC91206F252151F80BBDC1
+49CEF9045C7E8B960FEC3039B43C331CC9DABE645EC450F8F41201B09903F7DA66DACB34BB9990
+6FE08DFDDA9A15E406DD097FB144A067CACEA259A913079180450D17D3B500BEA365160764845E
+F67CE33DA1018246D8C16A2D4F641C57535F1C44635E754D3CF12493FE0B68F914332D006D4F3E
+6306E3D8FF09A446C2242E4033AA2C1DC8D9DF9E192A112B340DCBEEE7418BC94C8866061FF86C
+89C432441118DE32066E46A9E84CAB82D7005858A77FA8988B2AF1B1A0383F4AC287E8F542005C
+0B9A3A636830ADE843AE2469875666E73E6CAC1FB37311BB0E9C34B168A0137319DBFB60325F23
+DCFF37B1300B4CEEDDD42B22C481DD4200BD81457438D0E9A31A371C6EDDE4DEB42D4302FFD1A0
+3262D05CCED6B4D0D62B7B78C6F5B17E572E83B1942392EE02FDEFBBEAB9269A4772B22E773C66
+37F8843BBEDF1ABF47F2321DDE3BE172786BB1694B40A6716516E93C0B0EC72A319C5EC3A64398
+FCAF829EB4D3AE6A8F25BC122A74EB9A5EFC47134E85F421E479CED4B49E26812B76AF98FD3DA4
+2B004E5A0DE4943061E15AEBB3ED15B78264C0AE53E8369422CE5B1FF7702535F112C6A21CEA9D
+6E4A26B0A50A6900AC55167AEB235C8E0E0E7844B6C5586BC9C14C47E7660B0632577EB83B0B11
+3396585651B18BD56A5C7EA162A7276C1CA772B8190AE84929B7DCF0D83B2C0A5B830E5AE1A4F4
+AAE6ADBBC6B4F1C623E872A924C964AC9EC4FF0FA26D5D706A0566F3BD4C44D0BB268E5DCD340D
+1010C1B49A7E1410AE4177DD59F97FCBD54016180C77F0288A797FDE641352431E2A70507226C1
+8856EA337DDDE2424A38483FB094A7A8AF15B3FEE8358C945E2865175D477E8C9C7B14966B664C
+A44D307DF0A3AECC138371A7BDF69EEBD3A1502A6D982CFA0A6604668862A60F740C19ECA7BD06
+26223FADD2461E2B202CF9D93292ABAF6CF86085859302E3C01A271996DB3BC011C477045CCC60
+2D4DB9CAE11140164D148CF0FD90E4608C9958B0F2CEF017FCC477494EC656E2027E6EB6006E1A
+290973548EB41E938A6C0E87E65B51BA7E1AA90040F2F828AF33299CE7A0EA9E418984BB888624
+7DBA477F6E906EEBA5CC54D9A98746F8BAEF055A160BB3CD5EE09BE3A7702E72A8B25F93792F9A
+F9A648BF05ED1E12DABCE0CD48020D3A81ACD001A53FF86D8E306DFE935F6579EC269E44DF09F3
+45C6F3C981ADE1E22B7CA4172D78B947A6944EBDC903075E173C9D9586307E659C6C8515105730
+EAE44A1833B2F4D79B6F0A2C6A6F3EF36F08222F138B6465C3A34635351A546B7FC2698F62890D
+E8F36B68F48A1256E301A3D61A425D8BFD312C7C29E8A3345BFF08F1AE66C0842715766E64B6C6
+176F27C69546CCE96D7CC87534926053828CE0EFD3C1D27308595CE04251F2D574448E9398FE61
+62B5485F53380A23CE0E1A6AC86FBD2FA93655C67D3381B9622E90083BAAFCECEC10CECEF84A1A
+09E4E1103968F99C295BBC2B509F62EEF2A93025C6887C7293357034E6D064B9A22A604F5D3C17
+3B16EE47070C045C8A2E9446A515B86EC807393B2024C4C821990EE562DB8D42896C7A9612C5F0
+D41889B881552243390F886083B505B8CE507093ECA65448150B178D32EC462B50084F96AE1E92
+6E3CAF7720E1C4764D945FE5CE6F921AD37E3F32D482545ADCB23633DCB6635ECCF36C52FC4687
+CEED107CD0F894AA14C24BDD616359D41A74F3C1B055B7A4F68452EA899970E19943ECF0353014
+79790CD0B55049F708CDA86A705C90D6C017608CF61159E75CB00BECB8220B92949C1E98306495
+F7197F386401219A0C9938281CA78860A287C9133EEFB5EC2649080E6326C872334245EF83CA41
+B27F0DEFE084EC64AAB4862A315A2080B50EF3A38DDC0A295FFFA8E1B4F344489EDC6C5CA60B30
+80C7DD8AEFBBFAC1F49286CBF610CB73D64DA221BD62D14CD1ADAE3BA044FE6C7D76FAB42440BF
+3518BDA25EC65F2790F3980B1366929AA2A99CDFF0A360E7D8032D6CFAE0D1019098602BA6F50C
+24713710D2C82D031542C623C26800A4CD3449E82849949A735D791EAD002B66838CBD15C08E61
+7F0ACD2D284AA1F26F9F9CC21103DA277291ACF4B01CF6E6FBBB4352BE1A813F4B63E916EC7F2E
+AF3A366FDEA454DD936E326E30D4F09040620714B364C3382A2505A1B6145A9DE87A878EB2161B
+E351176FA3B0B21AC0393F38DE3100CF4211C7CB5D07208D1DC43AE73F25829B33E047677B7471
+41966A7E9D0B491AAEC316E311886B654110637786D7B4223278BA6928AB4D05632631B66F4FD6
+814A183A18C805403AA344CAFD0B48082E4CC560E2521D8DDAC0B98881520718C267D630F7C6D9
+52EAAC7EB40B0706857E63E0B0F98D47A33A4627EC4C3F9C67F6C20F4A79640355B7E891381167
+4AA5B5F268E39F8D2F8CBB85ECF22730BA1200BD5EC966010740553C819133FF201F134C9878F7
+D443FCA6B8F6561A1AB2305A454C5321408A080BC0E49871C74A67123651C98843EBEE3E935225
+54375A06799827CC89C6C6283E498B2A9C316570B6356DCB8CEDB9005DCA057199A43430641B6B
+C6954BB177E97A2BFD1015D09E4B08C5C0520B4D5D4E7A8294953875A4928B164193B42C0DEA19
+ACE8AF8C8A61AC9F580D7CE2DE28310F1EA5050B54FC8A0503F1E921AA8BC3E15D6F074F9D8C94
+6423C43DAA983A13C3E2DB13A7298672463669F850E2BE5F250FC6A7AE927AAC5E49F57CB87DEC
+4694A2539928032D64A0E5D5186212011EC185F1AE915BE896EE87F7C003EB64711067C1AF738A
+E5540552FA26DF1FF3DE4BB787D602B5570BA8A7DDAB2C2CA322BA68A0680C9D03B5F31DE13969
+0090663B0C9554A12A4294211E0EBE9A90060C522294629FC071584FDAACB752D3102DE42528A6
+F1CEA5A4E1EF42646B2226EDBD15BE65E28B7DF80ECC50F0569F22546FEA8A7B2DDF233974E8AF
+3D51264D9E32135773EA20B6164A01D0EF72066B5F3784B60DE666DF6EC1F27C3F4C52B8CE583C
+C6138A885DA41D7095A24B4CACBF8DB8E54BB059CDC2D52305703FB0F49CA5913294C47527EC40
+0741901BB98EF8F42A3263B1A783336A6E7B7585DCA41B277FB7C06F807766B71D03DC1860D365
+D65D0BCF7ADD484B34DC5BDE49D7CE6B4E966B6EF50628770DDB98980A0A364D8CD939468A954D
+45B8F9BCAC00DE36E437278B3F06ED1D8E57D51898C447A8E8FE9BADA0C08E027403CF02D21DCD
+613C97523EA4C3FE17689A84B66BA2882DFB97F63F6ED0D89F118FFB2AE2CA2F77CE4AD7197974
+453C03109E62B0EDC1C2C278AAE2992A967EE7B92248123EC6C6473C0ED1A820996625DC475C27
+43A6703E5BCF00C4864E66F4E2401964661A0C0CBDD0EB2C28262766C276F8200D9F8CBA8AC510
+6C95701C549442B37A3A5AF623895C9017612D0F147E0382344E7DDF2E675F8A5EB141AD9BC044
+2FA2392FD42F1CA3ADE2543395E8F70CB164AFEC0721B89C62B5E533D4A290BBBDB115A489ADC8
+C2159F0602376DA5CC6BB82E235A4F90E915BEA3C06D3A2B2AE02C89182261ABB84BA3270FB8C6
+0FA43011A4A603E44C80D6EEAF14677117E22640810B974E00154C5C6B7EC7C4596F9035060DAA
+441ADC511241C2AEFC44A1FD19B896A6C2BCF6D4A00D99A2B67D5B614928C5E8FC91153A7A5515
+8C1156E6D4D7CCEDD2569BA62773B0A756465A541418C5337035DA896E4DD18AFFAB006CCA236F
+D378ECFEA9A8CB945DD0E682977A2152F8782B9C3060709A0EA3A55A2B9CFD8A6A20E4280C1103
+6BD6514C608054D484B4549A606DE0C35718E070B2CC3CD78B6F103D90E11C6F4840E4B052D027
+2D5EABB50FC481F4C0902BDA8C473ACB817EEC6C337DA61EC866E3427ADAE78B91A04B20EC3FFD
+78D870DF5D5B4F6ED277E3A20A8E25E0D5E1530D75E2437A5D620222A2B2CD3058DA4C35196E86
+3A61E0414CBD0CA440898ADE1FC541E725248FEB7476FAA4069153F5C756561E9ED10730B0CFDE
+ED9E72E25A7CE2E6AD07B02E581C101B5206CEAC27672856F4FA76DCED8D5BE67A3FD7945CDD4D
+D27BDEF39592D1C6C4104B40309A44471F9ECAD0AF02A8CCEFA27CBC268F6DD28ACBC0765C4B68
+D672C15712FA871549CE466230A40223563A964FBD8C277E5B7E8965BA72D6A2FB5297F5F43175
+92AB1A582C625EF28351385B9B062D77224B0A83D800B541115050432E942A5730F2E568666843
+4315CAFC684C700BB790BE64A1DECF31325B860AFD427696D30C445CBF71AC170E201031C5C920
+3C658524796D177CB7FE23725F62BE0D35C10C0F668EC83E1B1D1967B07A09C4337136BD186CEC
+3F5F5234B2B33A977C310F3666C8F1B346E2BC548A4A041508510958AE722A427FAC85BFA2CE29
+D096C4A2C3576DB4F4422926D198DF55D53408C07004664876BAB7BE6C803A12B0DF2C268E0A88
+6FA868D22705FFC7B1A837DA35D29163173D88C97371C030ADA0B289EAD214916B2944F2771678
+CD0C1947C68842D081E54AE4E9660F3072BF0D28A89ABF4DB0B20F0D59CA6A7A2EF1EFDF6BF8C7
+D211E4038E126720A208DA04822FCE868395C0A06E376644300CCB8CC94B59C12032BC4248BB2B
+5942708DFE50EF108D133A88C30B4EBC72CEC05988BD20BC0EE864AD74E786E69CFB798500F362
+5F6783BFB1E07024361DAF1295E062708AA96DFB190C2316140452EF71404BF286D01A10BEBA0A
+5F7C8504D5D5242A21642D2CF3663B981E76CDB4189ECA4AE2ABBDFC664DA7547E7EF0725EFF11
+357E891EEF4C3C26172B2DE1197565AA4B25343FD711E560D882EAA7F943693FE0521A414884D3
+E5A2F81A92F68C22974CCF92CF22068F6646294C8BCF00A27ED177CF46F8BAD061F709ED428ADA
+35546644E576D280FA616C7185F4C646018EA3E183D08D184D160E28CF9403B229E56D0410040E
+4B84562CAA283B30C83BA436E833CF767B2B2B95E828B63702A0109ACE4EB83922BA2DECA525E2
+45753AA30904181A2A4D0A4AA0B5507F3D15524AFAB508CE518388F40216B12688861C3466C28E
+6A8542E563A7BE142E8CF89F0530C8ED9302655A9E00864C26E2A3A9B2971E10032A504E50C514
+9C606F76EC97F26553280187236D0929CCEFA6A4C05619A2B1923F0A2800D997624D3ACDCA261B
+433844D934CD3D565C4F1840B69838DD3B5C751C7CED26F2B602F6B94187227B955717E3E45300
+048B8C627048C40F23D68A4EE025CECEB7D72E4028BA4C6C505F70533C96F53A8C8DF18DB4ED59
+BF36723F8049E4D2FDF2FBD65733CEBFB7C97F43E9E02315B040C44E6423045A98C2DFEC8E98C7
+1987580CBCB67423582ECC148D8400FFC9399D6C9A47E175992858536E327A5F7A49F0D0F0D7D4
+1090C20941A788015630198C8C89BFB0E36FDC92254653CE36CFF2A5F8D43185A9895F52913F90
+AC54FE7045E5635013BF8710629A610C2BD827C9C9856C70C50370C406EBFE99EA415A970961AD
+928EC2FBD9DE3D4FB7AB7EAE7F389F140A1BE076B2DD4E626BC177765225E444A2CD8252F04C71
+9C11496889BDEBEBEA86A19F11A0CA13F2CC4A0A92C091BB609794FC2734D470576D5C0C60F03C
+6AE10794580E75E591797F9C0E7C9C5013C583466CDE497A0C9DE7386CE132ED0997EBF26FDCFA
+F8125000B9F98AB1677D03B02660DA891AE91C4EE88659EF2270C90935EBF734D04247AE5DBC51
+2E950DC0F222143E3EDE5190C8C46B12210D0CA2608E5291AEE88A6459B577EA79C2AB7FD9A060
+410F980E80C6793D8924CAF453C6B2A7810BEACBDC765E733EF7A6DA6649C58E16809B609E09AF
+1DF136B479BDDDF8335364A654270B72CB4B8B7274AF262704746AD483465FEF5680F8C24A8FCC
+BDA16269DFB4C9299B0E24F9064EE471FDC83E8E39CCE31E239B1AC6B0EF317FD42107D8F0D66C
+EDB45AD8D57C64C54642B39452C389A028948B9E14648272FE43FCE3F41016D2EE59FC8823767B
+9D5CBE48D40403B3590DC23A41E734271AE6E2741FB969C2EBA015624DA69AE825018E886386A4
+891C528CA6F1B6A313E6A0E55E3FF528DA7A19D0CC649B395C895457266BFEBB80F2C877A89C75
+D26231B23EDD54322659CB0CE8457F8FE3E5F461180FC9C14EBBE2D194A045F6D13868BC47DF72
+F32F6B71B538521A7951E58F9C43E447DF99E0FC082138F15D86309A1C37485E4C2BBF104F2D75
+B00E5F06302A336ED86E0736E0CE1A59200FB0CFED024EE182060C76A87052763AAD5005B68CA3
+BD50D3492185C430A5CF46AEC6FCDDB0B29D15B594C7188F5E87A686F442D7E57B475E94149D80
+768E8C4164A0C6DB430A0C91EB7B5DE998664CB2F6515A22621368B11A88D818EC155ADC2F51CF
+0029E558815F0E02835883D8B83892D62C9EFC1E7C39285779ACA7936C8CA9AA2F85B24B58BCDE
+6D74D116606B19A286AB7C710FA9431772596DB611BB07780A1FC4508E5E916073F5FFC4AD0BBA
+B1902F6AB1E403E6D7FD1DAA6BF9819D189FEA0A5E27F80985784D91C263C5FC2C8C2184CA5D35
+941A1DE9C0045F802DB310303C8DC456013393905FDA03040001FE4EA0F9D555D88661762E41FC
+F23876B99776FA98AE68036FFFB9CB95893395B7C73768C798ACEEF5111027674C39D0F99D630C
+8B163BC848444DCE522691FA7824C7D2882DD79D9B27FF91E184678A967A2A750738A4E7E88EE0
+05B7A68DF9ABD8B8C9F20C4AECEF7E930F03B9CC984823981C7FB3970E983CAC16C74A967D8287
+F6B5325F447E072DE3032CFFFFD2D2AE6151B4C84E10900794FA9418D23EF29DD8D007A774BCC5
+4584CC83F6C2556BDE96230980201EB6F065C27DB062B70915052882865C0541AF451D8ECF90D2
+56605D069819361DFB0D50D22431E1AC570C4891D6B5049E2D8082769AAEA3983C5D30AB8498E0
+A2CD65338EF0F410C816C82E6482C6C14A624CD3022AF51BE363881EA444D70E1A7FA7657E27BE
+1E76D03E04540470BB46280E5A94720DB150457CE459B2441AA1849457DB01121712027D8918A6
+D04ABC660E149C4D75F2A1CFE71501021FC4B9F84ACD2166D15D3744C41BBFBA039623969A089A
+07935695250F5FB8183C93203722CB6E74C33E6D4BD4FCDDA73CA0E24A1F9B86F6DCAC93537CF8
+3E6E3E998A02EA8A0A85949E83B3736F1D6B2056CCA16CF0CE6CF2D8D689C9FBA9F52F0F5C214B
+4C243684731F883C54E5D4EB4E0692CE449E65607412DC07410A7A95B1B85F80300D15E5D03F5C
+E6AC5FA48155DCE7ED44A755135100B98B36C85CBD1E02FABECB00A68FCDB33287884E6CA35600
+85238A7119247260094D7AB3FAF71F2EB51B24BA2013646E4C2B3201CCC19267AA40F1B18CCF11
+90CDC7D8E41C7856A916EE318F370006CB033A7718BEED193A1FFD6373FEA376E2959E8057766D
+5758E1CA3D73B6CC10B8320C04E4650447B2B9B87A69DE4FD427180ACB744284F2E4E1AEF69207
+E60C01E7A0E51FD294540EC931314BBB6CD3DD42E637F8B8F61208B6BD26BE80E202EEACD96837
+EEEC7B893D2867AE344ACC6C0AB3077840C3A5A8A386A9FEA1D84E4BF8A01FB03DC2E1B780690C
+832BFEE085866E30698D6318803A71344B43942F6CC0EE40BAEF0D9A8203A48255E0C2A857D67D
+3B8ACC418EB7A887B88CB4F66B2FCE519307550B11ED40F183121C9A4842D8102F70349A585584
+B38C5198ECD31692BF5825F9BC52B316A5CA8FCAC0B2531E6887AD26629CD91F570927B15E922A
+2CD6D0AEB768FBB479C2262F405066050488C3F336AABC3D8B36454E6A72303B49AF435CCE7884
+15E3CE9F6ED5BBCAB55D83648511101687C538B85433AD7E68808928300F94E6EBF708065DCE0F
+4E140946AAE29F9625BEE27FCEF75E665AD3DE9A173E8980E88BADCAF7DD7249F2897BD3061915
+1372BC469B1FF877DF9903066B0C739F0444B41E5066345640935F261211443A8644B71CB774C9
+FC91867B4E24E17087BE950C3F02205F1C35269C2F2C02150FB34B7370295DEC80CD7476CC1194
+4791EA30258A44CA8C33F81A73DB02C8A196A672BD98766608C61D958A58E69D70716199799041
+6D4C7398724C3142E994E37122EFE256448B964D6CA0C4D2A8888EF241C7530C431B28519C561D
+D01CFCCB9EE0EDECC24514689F1556E836B427DA8DBE36C9B8934607EE61CC002DF287E138BD8C
+644B0D2BF01C6B55181914CBF73DD60486F0648141D929C6B4758FCDABA466A42E18F33E5AD77E
+BF1510C3A04EC7932F6E87DC78E4EBDDEF9332D0215423A770BF025CF267532EE9586FA420B48F
+56726AE87D4B4C0446F37C07768D1AB7FFE0BF6FC0D4B315BCBA69BC4FA18760ECE8CDC623C127
+8D4CC4A7F837310BBA4F4D3A866ABAA0DD70C0872B859CC7FD338D24A230434EA81274AB3E1D2B
+2ACA0E3522E2467EF04959153B23D2900A72E6A2DCEDC7BC331AC10FE088DCCA0127CA3F5A4EF9
+10C6C4F382A312FA41059EBB2253FA76E3A68AFD7B4C67CE55CBCDC241683B64C6A449421486DC
+872C3B9823B041E790907DA8271D9CCE763A8A70D0539DFCB7C00E5119122E4619E7D432B0C69D
+AF73C676968EE0D4E104F6CE796B7344C6597888018C7149AC12896A4E216BF21E02D74745D858
+D104317A27A842378C6E4571C41C0F091D6E8BD9F40C7566971FFC30892AD259B3E40D10B4A3C8
+8C0E1DC4227FDC764F8F2244DD6BD7DC037843AF722E025211073750704D61E3D72AA6C5C7169E
+D6760CE16D1D7A4AADC2E2C05F92CD77032D6B9D28A792B3A27DABBD477B451F89626B7FE7D571
+1EC5A63131BA7E9341926B58C7BC21DF263DA83196E90C16478F079663F5C6B88492866FAEEF58
+38A3DD239CF67509AC87818EFC6B64BA02C710BC191F9CDCE9B4154B4306C6572608C3AE4BE313
+40011C834B373EBA70A6546D5AA09CC6DAAAD58C4C89ADECA866946C458A213C8C880D86A1256F
+17D620AE36BEC0546F44EA4AAE058F2F98FB84F8D6C9E4B699823780E00052BAFB1F3CB9E382F8
+A33B48E228CAA30B9044AAF26D052CE36860B1F7E4B310201B4F66F6157B7A04CE5A9E357C721A
+D5D5A354CC94FCCC2C6A8838466CE79128893BA3B5406DE00F1BAA6393A2323C0CEC80EB4D19E2
+59B0CE10C2DE731356E0495DF256C6089C072E1FD2A255E1673014E58658C3BD886F06C2CE0175
+7136B98BE9BC772242B8656C2364B31A6D36A11C698516E30CFD1F32CC1F198785987470E9CCAF
+047DC2B48EA41527CA0D23C6B6D52AD2130073760C6E15CA3BC6CC71254BBDB02D4C76D5D4A069
+239393625C3528714D8AFB75698DF6DC857E8F71C0F140EDFA22E3E51B4E0384823D92E9EF6B43
+956225065EB8EA56333DBF1166E6CE1DB598AE7A52BAC6CF94178801595082C0F810E92CF8F042
+252D120ACCDBA7968A7E2A5F55A86DC247D9FB388E8DEBC4051B1C2787B7B3CA284D04A9856D46
+74C856DCC6210D72867D320C0B4CA389126F9228C28C250FBB87DE7580361AB90BA43A975AED88
+A74641B2B53340FCA0F3250D72A3632EC0F657E6F864C33C346BC24A1409E686CB88CF446A9130
+67FC79B02B908DBAB132BDAADA9D1AEB60C2B01B31AA9B5431D4D636F22526DE7654876897F93A
+3D5C2F7A08247BAB845458F0301C1A49974D14E0DE23A4133656750550F76928622070C327A892
+F4973C0D2B555CB4113F5CFBCA47C92354EB9BDED08358D788D2BC79927BBD01EA1A05C77BCEB5
+4D1C6627AED192CE139BA4D5A8DC48DD5445054862B4C2AB3293895459B0D81A72CBA0B8CC8C70
+0CD5EB6C423DFA1F73FDA48487DE812202E811919F23464E1327BA9404D44CC5E8717056D152F0
+B2808198BD4C0BEB086388B11FAE00ABA087574D247CD9FC8B2EA3793DA6046391DB4920DC2C2A
+BD765B7C64D94254130C2710584235CF36644C40C543496099C2C36A15368F1CECC9D8517E3403
+8E6848D2916A269B7CC54C3BFBD682A98897671890DD635E28235191309117F104367C3B8C1A4C
+AB9ACD7E0A9FF440E6B22E115E42E90E144C0254A0C48ADF26C38B4C33406FDBA04C8B1A41C679
+C11E8650F52331952DF2C650A2E169826C9170B0ECDDDDF580C6DFEEA9BC37276A755688DA4235
+173E546F41C7BE94C80429524EC74E0308B8EB4CB67676F543D272305F5C636589DC691FB81EA5
+219156DFD0979DDF2C6CEDD49A2BB899B173ED65B24F5215CF041223605BA6DEAF02DBD8978810
+EB6AB076034C8A1A8F5CB98A28E15C21C7DC79C12D8BD067BEBDC4CB3FCAE5BC153DC4F8DC772C
+103268341A75D844C73028271C0B78B55ADB2BABE8B786383422E0063B0310DEE561767980D125
+6D7892AA6644F95BF6939D659E64B9003D94A1F15A5DC0020A6497B688BBA0D28858B04702B3E7
+B8C290A38C53575718FF3F428C14985B8E848CAFED1EACF5720EDD7A08A6F97072E7A999185079
+7223B026C43917CECF64F254A080AEFD1A8FB49442C486E06609CC980C4EE6D83A9265CBCD2001
+0EB0625D8CA72068D0C297DE8C12F6AD56D620085190038D84AAE139130A976104C8681E744132
+9FD38B10F985D09253BF24956337AF7E4F2AC704F2F68137697DDBDECC28E27268956B9048490A
+210F8E28E96546471D0834EA4395A48C852F93294BC25B4409B3D12C737EAB338D4C6F90C768F0
+937813311F9C8B4E6A81DB558BAC699FEB0404780360539231C0F355435246018940717241025A
+E4C2CA74D6157649023CBCCD1CDBBE061CA7210663D30AC0F7F7DB625E1D9F5065F46F79664A55
+EEA29908A8F547849B25A53B95B0BD5403A1E9AA23640B3185EB72CF2EC79D652A7ADE3DE6C141
+154E6F736419F85CB96D6EA304537825E7DC71EE8701D61571C830B8E60491BCC2F9AD2277839C
+860DD2D0DA9C8EF542D23DC875B8030E18C4C72012E9173224FAC546C0BC13AD948F1B344C3A1A
+40002FD6B8001087621683945F6F11A152D221102AF0B1C746A2CA32A577CBABFB8E405A75829B
+CC880111262E24175E19D8C5A202B0821DE93D1493E9289C6C064D16A924E1D45CAE2A4E7F3837
+003319F416F124A6D5544A01A05E562D169F8BB097811A25674C91D21CC3DD3239CDFA71A16029
+5B2F6B215E488F00CCE338068703A07AD4F0CCAEF2126109E4AEE82C79EAD8F31265212AA79309
+493540168362F4A7557075C104AFC0090C5ADD34605547D00E69D33DC64000C482F430641F049A
+E353157EA240D8325297566317B88EAAC51C964FF5E5FD9C83F8B9114ED7A776C0CE9766157A2D
+7ACCF39F0B40D1BDDA270AC643D419F6A1A94D30751296825100F23C991783B29BEB6E4C811278
+5916BA40128D2F5BD7A21D5482560CE0F34E5AD21954171CCC9202A317EA8B76DFF1E6C869C92A
+8A33A12CF4BEFF9BCB9EC1C0F086F6072A662F313F64F2123853A689FA007ED07592E966B73C2C
+8BEE95291E45B4CC838572C189ADE8CE33DA4C7556E6481C9142C330F85AA34AC7FC656AB1C666
+531CB531BF4C76B8EA1FF20C6C9A2E478CCF8AB5E07AB20153618AA48B730405F8B4BA3B7AB502
+DF0B35D260274F80BF667F68CCDB26E7406FF30184FF6DD2D846F46E906EDD084E15A1C0002378
+217C575FCFCD756CEB7B5138977A954932031B57EEE6756A1D5D56DFD57BDD65C8E7CDE47762BE
+A5D7160DED96EC8DB0B80C7E97217C8A5654CF53E442219A07985DE77AA5593CBF7EE331408FFE
+0AA193B9E46FCDE1C4210C37E49E10C40A1064881848607EB01BE30A86A18F104C4347E18765D6
+DB7ED5E845A08404A6B2C094AB0D16A49A651C6379472A0EA70A44B040A0DA1F439004A266817C
+7207BD3E1123702436A9DE374743E6B88F9403ADC84EA27CC2A02B873976CF108A928D010C03C6
+DE8170500F2B9AEEF17A7E8D62AFF63C1F6BFF8918D24A34F44EA257BE019F68A5903CAF09A158
+0B1A7A2AA2CEDB4866B058A6FB583A90EDE9ED359A6F1EF7E5291FEAF7A86782084BAA666F3C36
+0DABDAA04E3FE770D2F398C187909369DADB41437765453A7B6ADB5F9226B2463548696DF91A0D
+5ADB9F26CF1A64AE90679AC9F7B903120D9A1CC9950DC0767C9974651067E2F7581C7F819298AE
+60343BE6362B5D0C6410D5869DB5AF42B75DB7C7725A4E8C48B37BA44C47D34248E739CFDB2468
+7F7A7529C6EDF0070A9303AB08E31EA205438BE685A82F6927017E2655BA6AA4365CE32338718D
+EF1D3425CAD3C96D75EEE92A681D63AD37E3DD8BEA7738FC1BEE29874E210DB2AE2A7B8261AE32
+77B397E7BF1A4CACAEDD8A459C20A808EEFF7BEAE8E17092E02476BCEA44158E5BE9987CA86FA6
+E4C7202889AE940798D27EC81CC27284B1FFFE762E589452248999A8FA9FE8C1F1A0B8D645AB2C
+9A033624B67B944B851BAEE1D0B37797BEFEA858786C1B3DC53B30662327D394F5EBDBC46181A8
+40E90E8911AE50085F1A8988C034D47A208822ACC9EADEBB92FC6107DD42CCFEEEE89DF386A2A1
+FD33EC96B1980E5B90C09AF4D80895E6A103BF1265974C3D280ECC21C2C12C0175A2BDF85E4629
+DDC46003D646660608DD3E2F42884DE6376A136256F621877AF087E8381F33018BCFDF410C3544
+B673783B8E869A83EFBD62809F63C00051AC589E80A1B65130026EA3E473774E00F7655E91D89C
+A463B5BE8913F1215674DE313EAF1B8AF912E6F51C52A8D73D4EC77E4C914CEBF3D1B488C614A5
+F2669879CB88D1703CE344473C4F26E20B82EA7E5E6D45CC5BFA1833E31AB15F915682A097605C
+0C959A35AD14D823A83FF2F99059110847F2F307166476F05336F601D383B621806E7509ADBE2F
+66B5B52646E2D53208D6F6AE8D164A5114EBD885E160FE54C6F81D000C5A7ACAD49A63464EA28F
+84241C140C982677451ED9A0C225B5866B20C6283C57935D512BEF169053A1E36C52E8D287D8F8
+23056C5C3E1A00ECFAFFAE66EBE06E244AEA4926094AEC1A88668DEAB85952FABA3085B6822CAB
+10D3E41B4CC2DC8B0DA8862920D7EF90CA088A1A7B06AACE4828CE0023DCBC9A26D75302E6FDC0
+CF3CB051046427EFC586AA4CDCE102F97AA2E124F5D650F6E14E74E8413307426305E18506F8E9
+0ADF9FF5B2272E32A1A2C91C5DA1904F29988CCB4FCE70D6CD3AC015AAB89E449D7E054E3A5A00
+B9238518853EEC5BEA7EA8DC5D78339DC6372E8AA115F48216B2E6C77BB92DF4914C5C0E6BADD0
+B269932284006E707EB8E783D4C222B221D15C0DC6605F1AD97A89FA6B05F953CDF760F2058711
+D261ACFF106AA5E99D50199F721405E6868F5D3FFD6CE8C2E3A0513841CFCE89CD19398CB2EC66
+8B527D0CCCE4193DF4A00BEC47261EEBFFE24439C61BA9E6EA1DE6453C3496FB293ECA2F6AA1B2
+C07891BC1EF89433E1DECBEAB6DBC2ACB756AA241F10EC62F24BC736D4574814DDE4E0B315C894
+50CECC1CB0AEECA2A7C11B47C1B3624AE7703EA4F56CE517193B380EF6BB99DD337E9D3583558C
+E4AEF99452DA1AF51ABC940DACCDACE7FEE550D4E480D55A9620B8A97A6DE560459B085C761A8D
+12809C4A3CA95FA4BD84D6142815C72122EC08D82C7EECE1B0A0EBFAAC061F690FA390784C9AE9
+9D5EECBCBFBBE68E3B2E2BB69BCE934D144FBB17699C204A0F685352CFB9A700A154D47078A13F
+211668798FB0489A210ECE96CE6F404C2EB07410D40D460B696A7D8D4F00422908FBDA2D4C8725
+9937147B341FD043056C85683AFD039370BE0D7585F4898CB53C80AE2FCA70C9275897CB791DFE
+86610C0E14F95F41C3BE12BB4D63AABD66DFB8BA542EF4841CE6441AF13404FA5C0E5156219D82
+236C8588BE2A3534008BD23B0C9F4CA2D63F4BEBCC464C0C59FE6C068498691B9EAD762FED5908
+3F68530C8D217256BCCEC9D4706E1B03A02D18B9E9294C4A044CCD4A9F46B5D1C25A0C12780D96
+3B6B3DAEF296D6A159FDCEBF4BBC2C84A54CE06AC86CFAD8029058289BA5938AD233C24BEC395D
+B4447D7CD616F0233199CF6BA3A4C373A6445760C6052F8120529E7E0D22B1504FF562082CA9CB
+9E9482126940CA35DF8E89FFF9226D2369824BCE02B72D2C461B3CDF13C9CD527EE73A26D414CE
+E91CCC5A6711A9AE4047A427784AAE1780D5B6F665CC22025A73169F6A231CA4D16C84CF11BC8B
+57F86F8767EDDA11E996C70317793CC34B749812023D44E4706E4403EE180602E2B5D4E2A7D883
+28A087C8B0F2F9C1B088082C759DFC45C503AEB273973E775E101B2F5EAC093E12C078C4B4A1EC
+6AC44581A6A134B938B0D58930F103B416B1B6B45070BE5368179C066BF080BAA9679E93709937
+D79526A5D0BFBAE833C7A0B7580A641342BB943410ADC4500C8D655C2A3E8D4594B9A83CCC44A0
+208BA07B2A391CDAC32DF244C507DE76EB626BD24C8BB8DF130564B03ECE415E003670CBF07194
+3B347297D0C2D6A484D25FA18CE6BF6A5389EE583B6D3B24906E98BF4D2106CC98FC35ABE35D36
+8CA3FA36316737AA6B9401BB9FB292ADFFA2D11E64D8D8A886AA3D476666A800938E57512D3C90
+798B6906D8CC4696E39DE3A0029B237F2A2D57839B78CBC4E6424F7CF5936753A8F91FD89DF701
+822245E4E64150D06879825A0BD92050A5A55F4EEAEEC7FEA8940DE4FED791B9F699DE5E2BBE77
+4EC63E04F23EBA408AC4305F5CC74AD59FB23E2C882D932C5B40F293EF0E9F423AE7CF61545A82
+6392FD1F28B14C561B36424024454F2A1542FE50702ADB19E8D2109BD624ACC839E5C449632C77
+091DC300A2FA7D288CC6391EA7515D53485B2940346E14C27F9C602E096BDD0CF1FBA13692C81D
+FEC555D6FDD42A267D7D158B828985C3A43CBE54C6A4D84286207108E46B004BF26577176C923C
+BA0D33DD047F62DA8E0D60874A5F8D56D1AB4C089A83E31474725D72C643CA9449CE50A13704B6
+5644980B1A103A20D65B8BB5FE7F3767C70863691A585EE0F6603FC6B8C0DB2302BBF874A695E4
+651AFEC9C088CF029B02B2CCDBADC5FC3F60C2D430727B765E0AA717A2357A0A752EF4CE819458
+B73B514DB7F0B3DB8861276E0EFA3D81FEE2F1AA56BAF698446ADCA9C7D31B24AF87A929B3086E
+34CC24F85CB652F6053D0AF61992A1230EC6B151679CFAEFAC6EA113CBE8D667755C007BC454AA
+CC40BD1B429AF198EE30349EE7216CAA6612C2F012DFFDFC3FC33E42EA8B3179647F6F1654D59F
+DF5D6412A164DD31D1ED4CA334446289AC73F40F52620C4ADE2A24701A425EB2205786B4086025
+9D99D66DC2914257BB928B57C709C7EF44BD5472439C86879C8A4FDCE512DA676CA2C1D09231F7
+148A64D74E810047494DE69982879BED9DCD8514EE2A8788AA4E24210A00D6292034128C4B25C7
+31CECBECB888A279F85DA606E35A2C18C56316B3C7227077CB24C99FAFEFAA440A2AF7C9177AC4
+42AFE2BC275EC6508799148CFDDCFA10BB185E397E45F6515B1E529B885936CBF7550C4CD80807
+B51F45C3CCE01A0B8DA0BC94F7EA485E6BE70C9C4CA0E03C42319460A30682824F964CE1A45370
+A3DC5DDDDA5012D91B8A73F17252CD1DBD35A9B600C9EE30B28073CB2796E2E8AB8A45B5CC9313
+49A93A40D97E928DEB12287696E0B2D91CA5C8C78E0F385C3377EA4DD8AEF4906AE0CF3E648318
+185D0624959170E8CE5B84BA5E445A4A8D6E37B74BAB8405EA8DB73FB2B28EBE3A9AE97D381C4D
+F53B6152E095C8732FD6B3240DB00CE3376BC764FA3884D7FDFC199675CBBB29E381E150AC2666
+0BA9C33F5ACAE8687F7AA1FE7F93D31E2D97A8719726B3ADA6122B5BEE2555ABD73C525C72B550
+BA8124F43834D0FD6EDA293B206328A743834138406EE98F771BECBB7634A281093079E9F10651
+6628EBE4E537BBE4FB0A9477F18510CB1D12FE4599C75B7E24DFBC90C466604D680C5327219154
+E362BE946F654A631A35AB2E46E5F5DE2D90C20414390B92B5A9FD65D496723519FD6F47E71FF6
+6D322DBF4B461E241EA0FFF7E2AAFC4F88AA4D1F84139AB1A81A45055E76BC19E40F00EEF30E46
+9768AA54BE95FA9739030AE914323CFC2B02CE1CED5E1B8E8DC8089E225DEADE7CE460C852FCEA
+B55A7B67774BF8F81F44401646DA4F362B43EE5260E0DDFF3B760BCF1F069D71A12EE6BF49D8CE
+9C47A7219180080DECAFE6E896FDF9C25AC769EC82FFFA92865B449D0A0767A86BF8716F0246E8
+82D430F7BD7472DA8215BA3FAA8023FB1124649B1AB2C2588FC0299747DE818AB0C626AFF46E8C
+46E23D4A08BDECBD0A1232312BB1C76C2F1124B269B912323257FA40430D4B2E2FEA6FEBED1BE3
+B7CAA3C8D4F5531E2B4CBE3FF6D2AA17B4E4FF5C6E4F46C8DE445BD966C8DDACF700F7F0F116B9
+79EEEFE64A8A18FE988CD1E6EACAD8E24277C9FE60EAAB026DACA78E49BCBA2D1641EA8E442F0D
+4ADD00806B8601F8B5DCE3833CCC8E512186843D1BCD05667A48E4AC0AD6C6983ACED6335B806E
+CFA1449ABB24750632D251D4408DE94E428D5452CE859F495EB50F73AE6B07992922FE1E402A59
+C052B53E9C3BEEEEC4FB46C2138CAEFE830C7B44986E3FC1EABD0DB912270685A96812BBD46B14
+E4353CAC215DD806C7C07694EF238AE62E7354413333E9666F1AF1328232FE429C14EBC419AB19
+2C2489A58E0E4FCE06A0611059B924289AE2C6531F023DB6E3CE39A982F72C5A63CCD5B978BE7E
+26A4C540149A134AAAA738DAF6248DF07075F0566D16806260CF59EA4698C6324411138E5D59AE
+F807F95CDE32A53204DCE26784148CA805EA03FDC39734929CFEB3D44EB2CAE89A6C07EA4C7085
+EBA2C9D08D70793BB2FAEE04998F0262C87D48FC2CACE52C843E338FB852A61F2EB3F4CF01C9B8
+4550787DB0B1720405BCE0DE262E61E6EA08D422CCE54738E8CBAEDC70F75041DA1AA68E326CE4
+EC2674584393CD5D1E853733A0B9CBA68D92FAE206686C1103EDFA69F7DAA6D01CF0080A487293
+BC26DF82F17D9D177C66C0A8F0A244FF43DA9D18D036478234CEAE2D12190B68334F1B99A7712C
+C8EA2F940F4BC842448B708E00201F91378DA65ADF4A5DFD240008FA450AC1726684A52B573E79
+7BF486151A960876802172ED7113F6FAE36899B48CB86EB41A9567DACA16ED81D3AB1E33FB14EE
+402481462CE64754DB16700906A6FEEA3167CAA35596C4DE8AB0524234156A324D1814C4EC05DC
+FE71B9CDBBCC60777510D7EAEA78BF029D2E08D8230FD0F8429441F7216B6FFECE00769F74B4C0
+D613B73B0FDFF23C4A1D68FFFF2C8AEA6B91239BD280EEAC30376135046CB514B6DFE7F7E1A28F
+FBBE723BD14BB4501DE922A017C68DE222CFA2480F170A24DB71668CF8BAA4AC50C0905198B916
+AD41AF1E87B4827930C1C2D677FE02030E171DDD0E92C498FDBB2BF8883A9B3870E44C71A28DD6
+62EE5F09BCAD3A1AD524D2A8C5657613BECCCF6F86D45640818CBADA9A0B158F5492EC9B023144
+9270418383B6E53C98E25A7CEF58360107C95A3529A5363A03969E9E5E0A8535FCC14DB56C1F33
+3C082E381B8237C1E56A04878799958E1604E54BBF206FBB848F2C6EF906BAC490665E9692A4D7
+2F435D78B068683154C9A0E520F89C0E6A873D5559BC724C503CF61348B68BC72F99B30D673C3B
+206476F0255042967FF6CDFA9C8C0A8DA57A512B68FC94D58181B23200E017EA87A1278D11968F
+BC05DDEA9015661C33BBE6B2A56458DBA7A4E1971615121C55D1DCE6B680FB82E9C4761FFBE307
+3FD19D7A2D001555E1FEB51B5D875075DEE405C01F09E49C85CE51216560717977FE4DAC3D0AC6
+5554D0E81AC7920E4870F1D76701D4FD87B562FD302D68571EDD4CD4B6D43D93C390AD82E1622A
+0127CD03B8526904B1486DD65A908030DD4E4022B429D903015C74F83039363E030A02BD32217A
+2202CD7AD53660715D4560CD012200924DCC13461969289A098AE3756C1A86573DF643C4A51C55
+0A0E68B388640E33173626E825C6FAA1A58C148062887C63061BB019D5656BD032C8E5400A0479
+1FB23F5C5CFCC2579BC41181F8E0E27E0EFBDF86800CFA4A3B55ABAC55C4ED1F891FEFB21489EA
+01B01710B91DCA134ADA17462EF70EC6E3FB40162671C0DDE639D35D894C0CB3A869CAB3E54A34
+7F137DDEA39721AB1071F2438FEB44334B24DA0D50A6EC1191E7FDDF3024AAFD57E5DAD351BC66
+CDBE931433CD2241B5924CCC0FF04F619B760EC4D067E1342340B1067CD65950CB73449EFBE240
+3D0D9CF2DDDBC65C769B1CABFB7BA36B619429016597C74573043CB06FA050B56A2B9232CF6066
+A8C9F904D038C2E4787422B487DA1BE418E6866081BD49D0B9C03485E88559B5D90791F270268E
+993B18BD709C36F6CDFB600246879368677E5C3E67FC7AB2EAC7837EDA5B7C4825CA64EC4CFD27
+4607A30463FC0690226DB327A48BDB45300CD45B085510FE76FB59818850CCD974F7C7563E4B18
+2BD10A9B5C9E24EE35FA355D83C62E1A2D0BAB21BCE23F5539D3E582D62F32F2C3B983A7930012
+FC740A91534F32F6BFED960E16BF3D5B3BE4B4620890452741824FA5DFA8A73F12916F559A8438
+9E9A1E3F3E7B58BC3E9CF8005809060940FFE6062F6B81895B2AB796487E90836F94E54A3679B0
+E61A2D4616902AD22B3C47AAC99A37177F4350F38C107A126F84DBD020B4A56E40ED726F7D040E
+23C26CD2CD26ACB9F4A6D39CB030DB3F882CBBEF9279C9A679449E1EF605E1C9A9AE9F16A7201C
+761E59386075B4CDCD40D17E923ED36A7C2FCD1432BEED1B1680640F453C4BBD52FFF0837958ED
+0ABC3384211AA1808E20EEAEE895C0D69F8FD31AA7A97442FBAA6A0085D39C6CC4081EDE1249D2
+466EC74A93872BC9C31033C43B698116507FE066E80C10ADDA78570CC0160FFADA3995D339A984
+D5AC565C1B1EBA677CF3D01B666D8876723FEE4D20C70236C31EF68F0C321418886A7590BA5F0F
+8606E1528211E65A0E42A3D2B809469796471F553031FC0CC4EE0198C73246F425FD75E19D6499
+0488774E7B49768A1326C7319008B70A1294E5DA12A4DBC4AD5B23D34CDE1FD6FF863CF43C9949
+11B87A893D7D377C2783E1E055E13026CDADDDFC77698E7F0D05B656FE386C44BDF9C99CD4C6BC
+4A8403EDDC68D3F91E6FA228A852EFA4E3748E4E5EDDD8A7D62974919A2911C7F0256E1E880805
+F803C2E9F6213207584E96AAD12314C9EE7AE0922036B3CC861034D233A43E1DDCA8F347062739
+FC3501E3D6B016C20CD280E2F410D4EE4DB76168314A87BF4DDD602E818D3AE87CE5030872DA1E
+D6EE58F2D9A1347A63CECD8795C5013F17DF0FFC4EB8624261059063056E6DD72C8D036973EFE0
+4B8A27DE1886AA9A475D026491A0905A23C978360922864E44D463832A5A3210E43680CF1AD6C5
+74738054AF37943B527FCDEBD9C2BC0286D740D05092C4A47AC6BF1EAA2155C245415B02616524
+8DA4D90865B84924E095A5DC43020B26FEE8BFB0ECCED6B620F4056E2D564B9BADEE1929CCAA02
+21C5B793A78A6DBD227DDFB70144B446310DB9E12991BCE53CF9DA20EC8A5F5EB205E0F62E7F32
+245F6153B1068C32957172F93D8C5D85D24D22049AB20D8AC917CF6D97403295DB6A9BD39A240D
+4A39A31FB4C1D6626700FCC70611EA6F9EDD8A2E64CC4D96150AACA29F800C145786C2D2C9BC40
+A46556123AE24DC150A2F447F6E6945CD7A86DF474F91E4985F148845D06844E2C41F840DE765A
+40269955CA4F722B57548A202578B1E879B03DDBB444A90A4F2116B032B47565650835E67E0643
+F5281A1FA58C008500FCA3BE901200B8A4275A7595AC9B89E276DBE48F4CE53B370DBC4D50540A
+DEDE7EF2067B4619306AD6998E8F96A4137E8582F90A4947CCB942EEB23DFC9B6F629C8EB78576
+5BDE091EBBD11063B476C66CCB91D074569400CD7555783B3A6F62777A8DE99C684F19F47BD0DF
+4D8C827F197A509E4DD08F5FCAB41FCCC2A72876A1C422009520901B46FC8F178326242C72B659
+C23DBE086F97F28A43AAA1343183911EEC5DA2BCE7000DB6278D8765833C9D90F84C95EEF39C00
+CA9023AC0C77A619CBF8358EF771CC3DDA4586EE0E85F836A4885128CD4AA876202B76B1A7FC26
+15A22083555AD398FE9D2943EEEBDE3FD44A116A0F752E5602D4FC467C44FCD073BFF642B48400
+1FD40A02D52A550A885ACE39A0373A5F091EF070360278C25AA2C2363B827707CC53942C181F74
+FC487799790571EBB2C88CBBAF459A868A163DB8CC5800F606BE336E31D692A4943BCAA350A24D
+6B484D6BBA3B9015EE9B9A8BC85CEC71C0AB81C0F85C58EB3BB49452010F96BEBE2507EE5656C8
+68618DB22142511A92AC6C1DC40025843572576D8AF20F52724FA8683BD0E7C13868595C340C64
+0CFAAA060E8D45BE97503C9B31220A858F90D53AE54E9E8C2612B41AC0DA7CD343F4F1CCCA744E
+85438D1884DA613CE045B26C860CA6E5A71F42221506BF311B1B65A8B6D64CAEB2C51D21AFD45B
+09E96FF4D21948F9DEB39CE8ADB73BA74AF8AA1BE70743F3FA916FDD3183D09E00418EAA948EC6
+5AD3C513748E420C081958AF681983252EA991BE0F3531DEA909001083F02D2D2AFE9389FC1B60
+02177951BE063EAA00E2736D52E37695B1AB4F2863E7B2AC9924B87235BD981B40298514AD74ED
+498E2B3D8C9689DE4ADC5136A7320A1BA73FECA36E783CE8BB10C87CFE80028BAF675EC50D3610
+CF82AD85AEE1AF3C5401BC6E4838BBB66E5B3CAE0E9DAC4214397916BBDD68ACA4775499AF4482
+1B0E615C4714BD3BA14FEE88891D6272F487F3A9C1FBF06E3A161611B1EAB1D451A8F9D473912C
+40A4ECCC0D41A4192962D8A5E75C8821033AAE58B4B062E6DA9445C301191299A0200D8477131C
+4AFAD0D0CE0BDB4293C8227CD81F41090E2C6FEE09B9185D15FC1B620991EF6CA0E0C2C9F62C8C
+993408E89C3293CCAA6C9A546D2587078856E071AEF266C5DD1CBB64792534727C05370133EA86
+A406648D767637490E33CACECAFC4DDC0696BE4D308BB7697E62FDAA869B999B681E5C16416D1C
+312661A2EC2C27C3C46DBD87DDADC57D06D5D58BC366F66078B16250F2A9643E1C4ADAAA8BF938
+ECA1429A2B12EA2331DCF7D30206BB73DA1FB78026E6B6C7AD1E8F82A1D02081B2007DB065F5C4
+9C3325397EC5AABF89E14E560902AB45FEEC7797E1F5B6590EE62BFDCBF93B4A8CD58272BA010C
+BD3248874D681B40ED328132E300C1C34640C31DC84CDA195C2A3FD38E1FB91CC19E503CDA4073
+3C7A6DF72392C4D3ABC268982AEE8C3083BF0A68F00C0C872E9E337672433E638ECADC091C6F5F
+0DFE8E228610EC5A128FBDAC19A308B916F36AABE0A2D6C68DC58E76B66E4990EA32AA7CB2809F
+CC9AAB54BD2C448E1B7708E354A756670F816784062BAAE1528CD08565576312B4919B74236694
+0EA4D6DDD2535C5A17ABB88FA5DC4D954EC8F6C5846A5C2930377EBD92A8E62942345177A68EDA
+DAC19A7E6A89E8FE1F188C7BDD57C5138DBA729BB8E25B153AC2F97E602AE2056BF27268620E68
+5EB6F49C80F082DB079ADEBA79A84BC10D45125DEC60E1CE780B0273AEDF876D43332FF7123702
+614598B5EFBEDB56B0E8193710E4F1DF47E274F727245CBE6A7D4CDA5051EA371D350BB22C213E
+1EA0A26AF6A6AFB4B6769127DD2D98BF5F7B1D7EA057C83E954DC8CD983CCCC9E66E6F49329880
+524A10ECB5AC4F157E222C2660A3E00A29075CF1CC8434410776D7B1917A922B10EFC632BA6498
+B4B9133E3AE23D6E11538BE2E7729E295845092CCA52398B40F6608E6E93BCD7B3F8BA176011F1
+818C1D464C5997FDFA9DDBE7FCBF1630CD529190EE0A09CB7619D6AA623D9291A54446B683C667
+7B7FB411F764DEE88152BDBB1FC17E08FF1A7228C056D8D26475C094C7573BD008B88B92BDC778
+59E22790C289989B026A1BD6E02E0F4AE86E80CCC6C57866EA707BA53B3A2DE7C09322D66DB361
+2A742CAE66784B30AE3836C1EB16E2CE464D87C83401F56489ED22052F514C0072F1A5668C7724
+96DD2713040ACE02EF36D6CA11709AB9E4E1334ABDD35625CF060E8E8D5581E4968FAFD9DC81E7
+1F1A9C413A2F18B0C138B4BCB97A9B20E44886400EBD7B18701DA77256F87999DB199C1A573C6F
+09F0F531E35C4A077D5C97F6957262DB9688C9D6BCBD6B98914A503BE328F2272BDC2C9684E752
+BADF46D67438035ABA38AAE0B34678BFC7BA34EDA95EA485CB31AAAB9CE79F9C8013930CA1EE55
+7F83AC38430875CDEC8F223A763F8440000EB8B2B10EB5C44AADD1913FEC7DB6336A33A9607D66
+5112C655B828C4EB06EA3CC4870A0D098226C99DD5E18035647A7B42F07571266533433013B27B
+8B5D670BF5B813C8AE011FA2001092207FDC7A22594CC6E72E19C945645CC45FA7AB900442D48A
+BD3689B6545047898C9B043F6B18257C1590A0E59CF76B76EF8BC6BAC5BDA0E37BD78B8A92835A
+18778D0BFCC0DCDE0A24A2B1A5BF11D4F2066D02367050149C237A8B9B855BFC26531613CFE745
+812816227C00FFFF30AB1947265AA83D07889BAA6EE7FBAE9CD212E51CB97F1600A0A48E04A6D9
+AC69D4AD6D98FECF1AA007678392C736E3E6AC7EEBA75922F046388C2FB132B00490171064B2B6
+B208DE7DD0B0CA577FFC05745546458ABE2829907296B936E5E208843C3330C9DDD81154415188
+9C7E62AE935F15A950C346B3B2EE8A4E7B3FD0526EA2309281A8B7AB161D175557AC076A404EB1
+31CF6CD54E0FE8421AA85890856E080AD7B89742228A1C0E1A8E013C6DC0B96037D7041A16D334
+7DC98B10ABAE1B2C217621AB04E260CC0CED648928969EC7851E36DAE8C84A13808FA7D0D13CAE
+E6E82A113090849198D663F58085EA612EF3EE8F9B46BA96B5447E89D60C1CA61F2B5388283C2E
+5F385DD52510538D4CA9405A212E9543F1405C9E180D9BEA37A451F2813E87925C5652612A7ECC
+7373DAC3328A972C2482229E24A979D00A6EEAAD242245CA58831736BBD98E030B2C6CD82CEEFE
+2CF1D83E0E387931733478740C4443058FB07A6930D2A35B0C6EA52786E8AEB6C676579CE415C3
+302037F2574E95421E7B0AE7733BC849374AE6898D92A883A91A8E122897143539F10A495B3702
+D64BC763CCD43107ED8906BEAF0C8E3A84FC8405003BB0B2353B54B222A697BB32CA2ED7BD0416
+0E083780360E9575362DB1475B1FA72291700227DF28CF82F472D8BA807855FAE8422A7589A56B
+DF9958B43F6413EE0544E8397BD250E53C666B1F0A9E7454FD1675700E6B9096121165E7E125B9
+F92B549A281462818BEC4CEE4E4C4BAFF3DA3423C68841442F9FD44C1613FED10B8544471C60FC
+F514D92871AA2D7332A8BEBA765E3956EE20CF8C1C1224512A4FDC8910BE6C3A52D7FC2133A29F
+6CD2C84CDD249CF4BCB3AF0C2D611D069F7EA47BD8FE2D7797AE4E8E5BA108B6F813742720FE41
+EBE43174362D93CCDEFE546E5A3C58E0928CA914545E52C595F4A18C1A4CFE06641D9AC66C34A5
+6360B6DD42E836673B6A6EB2BE9C8FE3EFFB290998A80448567B7FE21F936AEB2B0932CE31A520
+BA65998A774485C8D051AB96E5057B0B8F1820607C044EA64771AB56243A17347BFF12DA516D43
+1C000B2EBCE3889E63CE908ACDEC70501226CE318BC68EAEB1B6DACE4ACBD5961488F8729FA827
+8ACF94233CD55052F06C75E6FFA7AA7B4D47D387CF9A0AE64D50408C254D29CBAD238D34840C5A
+5DA9D6E24A156CB8BF5A96D25A92B09046D31131A90F10D53F601EF55CBBF06E4F43B41B744D95
+F0252E97FD303CE3DA9E075C8A21C62F371EB0E63BBCF25B186A3AF60F24F213ED165C40BEB48D
+8895E55C5A86B53CE5D0A49210FE7514793A24BB78F069CA70710C1CDE4E12382DF90CF36AAAD5
+63A32E83F2576413E14D9283897C9284A4C534D5F44C5F5EBAD2EC8481CDB512DC9A0A9EC93B36
+03D5D772189B85256D9F2B6894D264A047F0BB26B868232FB2D445F020BCF9BF3FF6CF9A10B310
+0C5BE01DED2525D4A1937EF2F71B29B3365D9178C1CF347C9C91CA808DDEF491744988EB94AD52
+2807DAE007B3C3591278A4576CB0A18C1B9DD11D4D7972E23DA0F258C614FA3001E5B5C09012AB
+F6C7023BADF8B0369466B76BA0BCDA6FA79E375FF207274EAA5892FAA8BF629C62FE1BDFE67304
+2573A1E67414560713E0AE96B1B62E11948AD0B8115EE0B88C626619D8056B20E4D684D804947D
+075AD718DB9218C04CF45D91938323F50B1A7D2F083852D1C120C6DA6651E6B7CB739DA6B2EC4C
+13699646B02493C0FE11E4789B000C06D2C20A09A811EB30607137DAFA44C825C0394A7480E879
+0BFF4C5DB99EE72CD9A80954BEA2DC16D2BF218A2AA9CCD88DE5C8205E7160CEE528A12146F0E6
+2FB8814E841C45011110DC2CB383C301DB30BD9552E570CACE9ECE4138485382338CD3BAA7CCAA
+CE4C779E3636AE297C92D98F9396B0D6F25A22AB126265032431A8F4D9A70320525768C482C425
+FA1C23A88B7790384207548F34C933535B0C0FB06C1816626E8DB6C50EE3BEC52E826CFC1FD950
+CCDC996A3FE6FE044AA8339268B94411C8375AB15794739AA2BBC2309EDF06F67C441ABCC2CAB0
+332F38777619742F0994660C36181701E9C59DB552F731D019B574AE7C36129FB215C61FCD0498
+C3B2A00EDF901B85302D7B836A8386C94EA6821A34881AFCEED8934D82447DA0B3F02BEBBEEE1B
+7F62BC10AC62D36D65F3B2538B7F54987BA4EA0710DCBA1D167E33721764B4A09BBE6190F33B1E
+27CE28ADA0625B601B169F480C7F57008A0EF115192649E0ED2041002101B0ABDF9954A90C0498
+F07DBD043286CA0BD30D220F0FDD3C7371705724C0915DD4B04202FDF3392369C5B9D7D8152CCA
+0D108493A314D522D8BCC889ABB68A4DFD335150A75B4F80164113E06E6CC6F83314070393D0D2
+CDCEBC305D14F70274E685FEB7C4329D6D7C96049089A6B400660C44468BAC81F051F76057A87A
+6262EC3CCD22C0E4A3003303BB718333453EF8AA03B85AB328F74CF64CD041BA378898F1B13564
+89268FF02CE8D88498119C4F00C6695744D61F8DC0805C403F6602621EF1250100CC8FD29D7169
+16E9D892D836C49A80DAC291C28C1F53386754EB538FB01266773AF0560DD2DA62A542B517E422
+D9309241F1CCB80A9D16518847FBDD1C68769CAA1CDD4AA6B6EE2975621D9A862778771B5CCE29
+1B74FB429FCAC3AA77CA27442B2C4BD65690DC57C39A17B21254C6F5596CA2567E712D95D59513
+AA25CAF8BAF4769845AA0410E4CA0F14127247B3169DDCF2918DBC1130563CDACE5980BCDBD47E
+ABA65E0E04ACD22496FC0983B837D4D5870CB12E9CF493DB0646733F0568A2E182818492A7FDDF
+498A801728E9AC2AEC1B4FB9D9A3EA1868CE7E867F6CAED262A8ECFEEAC6C5123520D8F435DD31
+3B57E0FDA7DA490793BE878D80FB8BA5B5C1071C71CB9C96069197AA5C20677021C4A969CA1C4A
+0F91F97459C805D407E3998632392233962ACAF63671A85C44BA862778E55D028F13B89F8F2D4C
+C7422E3250D6D88C2E481596E28B07E94B812E6C5668B43A7C439E484070C800DA2F2DCB10447E
+A400A6E09AFC8CE7198B56EC669A39D84B2080B6D14FD6F0FF4BF41426E19B287B5E44774862C0
+6871B0F212F422A6342F5534990EFA3ED322D69D20624AB3F50415E1F434EEF1680595A4048A30
+B766A6546C98D5CCBCC8BC7596473B550E88C721BE9445F6DCB4672F8D4A4F915CD2BDC5BEDCD8
+02CEF4E5E1CC882CC09E487A2791EFE258389CC8529FBC1AC382F4DC87DA09D5E408C141B9FCB6
+8F785A67409CE2DC16B6C20C9A686081AA5C8B5D0BEAE3AE371569237693DE18D3BE93BB66BB2E
+0D89F482F1D261436CE60647F20F359D9CEA5F11D2C822BA4C838A49487C418175C9FED247C9B5
+6F00BF78D7218D188F59FE2683D70F36010930C2FBFE899D624602AC00AC784FBAC4B4B80626B2
+4A4CE904D47F47F01D1A670415F457618C330F2700AC1CDD8DCD4E5557B87704CF1FC95EF7CE8B
+0CFC8047822E73C9E86624D8282C5021B53284BA2D2EB9671328B3A6CA74E7A548FA059C701F80
+CA77863D88D20430D024CEA02FD5972F7B05E20F7B5868708EE04FD7D06D5D5DF3780292CFD80E
+3ACC86C49910A250ADB781AB43CFFB408C4C4F1DEDAADEE3323ED3D323C1D80007D657F2F4FD33
+8E1B4037185C5249096463A6D5A2340510210A5BD980081ABEE1FBB660908E9BA82CAEB5F5F68B
+933BAA3B30DA1706B4D04B56B4C705064D47820907D49F4FAD94083FC53F33F2317E839DB8EDC0
+CB1A55F69D3E0FC7EAF5FD25EE4ABB554F355A0A6AA1DEF3E34A924536CE9C51F10EB671AED320
+84A0C679AECD576A5E667114C1529196B36704D1A32A7E1AAC9879786E4615737E2BB56F741E0B
+ABFC0880E906ED65E2A2CD27CEC76B58DC920974365C5B3237C627BD06987792A392800B8B8522
+A3AAFCE09A000D3BDB5B80D04D0FEFB72EA8E0985B1E40664FE1A01C144B368E8BC79DBBDC102B
+C7F500281A213227571BA97CB6C556DC6697E68B7D3307E88F26949A9210805924583ABA7931EB
+1C7A644AE2192404C03833D1EFD1AF8AC7B4CAB2D8265E144B5CC28959A2E2F81BCD827F8851D0
+1B852F7786D864C8B71DC1B4B5A70F9F39CC2809EC2C868887DA10D9A3AD863102FEE081E8D162
+8F99581ED73693241F9A28D030CA0B89018551E3B9D4977B4F3C36750D0440C273DB18B2966436
+B8666B9F3CF20883E64E9D6311B11BD356674FA5C8CA3B2350673143204DE11B070AD69C0DCA6D
+73DD0DB864D037BE7AEB5A105C03A015BD7666641C6EAEEAD8E8B203DCAFB76230CA7658A47214
+AC8C81A5002E6C00BCA64EAC4D01334479D82E993FB6B23AA0EC2CA997EBAFDB274F6D3459FEC1
+56A1AD5C1679A7574D8E5ED64A9AB7C44683B2D6004406E65D58F047EB52073AB7170E1B2CB8E2
+DD2EF8CFADD0E29F53CD59BB99C89A5615F6AE34DBB5800430B18CC385E34D2ECD77CD25DC4FD7
+EFAD6662692F5489AFECEAD3393FE0CD7C82080DFC804BE3D1D88B34622FEF847B102180FA0348
+5102E8B42201D34F26325498E3F2DE28DDDB997E1063EEAD3A27065A93DA4C818938B42807940F
+56EC4E5C932450BB6E84192D34B29AB7BF1C4BE389B9C1061F1723B07D5B975E5136B6E6499426
+8F165C91C66409E79814AB01AC3666211D36417FF85ED614C3EA7B47383419EAE6999E6C10A30D
+EB65F266CEE4BEBA045FF48101CF07532881993C3ED84A60F240E4E48A26C1126B2B295620B005
+A2A5CECBF454F5BB4E23AAEDA58271A62F2BADF68920065116464E2565A64103FB5A640309CC00
+93CD2A53B92196484B2C6E354A8F57AAD2954639EA895233A4CB56342DD9090B8136F79E102AAF
+AB992C0F9B72788724447BDBA606970972B12CB86346AFA7BAC8377E0707414CC38857E297B49C
+820FB33072009964B63DC7F2F9AA4504AB371CEFC62E8904CEF2B30B284E58D81B96222CCE4AF7
+E2638DCA56F222798232CE38D8C76E2BF8AA2F3266BC64DD2A971ECEB852EA8274684816838F0D
+BE365FC6C1B6E49EECBCA29052FBA21EA1B0901C9E02CA8ED4932E3D2672BE0A2752731AA1D1CE
+0C1AF529AE76646734E22617974E9E92A52322085EE338E7707E7016A04DA28620F107A242D628
+AC0DE258AAC14403A323DC22325972DA986BDAFD379F6138446DAFFA13079B987C4F3AC4EA62E3
+256F4DFA0ABFB7874C88B7948A2BD492389D12CA8A6C50901696E9EC815FA596EF7E785AF4F4F5
+2E41B9A59CF81ABB98200AF6D2462E6FD45F003B409DC0D919F7158C305706C6EAC242102DD94D
+E4315404EF4EB80554D982432ECDE777896BDD552812E90D82D706C797A402B1EC3BDD6A4B4F8F
+19E7543424F426D082961CEF5F8D3BD59C5F185EF89C05A71B874A8F7DAC671E2AE2977F053036
+2A059A33575DD90D857896B1EA03F075B6EB03178ECDB84290E31F60CD056660497B2EE02ED602
+337A93AD1F2271DDE6B38AEAE7928BEEE67FD57A3B559FA7311727E6D6F9ACFFACA80248433E21
+F649EC719B9F22E09F72583AD80581A32024B956449C0C3AE917A381538FF5165EDCFDF66F27F3
+7BC90AED40B77B8E7819BAC61ABE02414A0EFCE8C1EC0BE4E0E4F645AFC87929CB46F49D0FDC3F
+61EE604D387E0352EA600C68D813A1CDDA654BEF9C52ACFE76DC1CD48A472A842D95F08545F108
+25C46CA5809126576C27E72060B0FA29BD1514CA7CE467123FA8B6466E73D04A8D613FD0755661
+22C19E3E7A33905D32DC3DEC622C1FD92F25AEA959F0C63F6E4F6CA1BAF7EFCEBB4A9F084712E2
+D00D7117490A0362B82A60CC5C6B21E7DAF2CAC64D21B25419F4A998A3AA685EFAEFDF07290C54
+AF6F8E8A96B819A4864E94AC64440BFE96CBFCE323EBB4AE5A75E9D270BCFD73157C1306A1546B
+B248476A4D8A85733009D6AB1915210F399F1106ABC2B280DE82AE52708EBA444CA610E4050302
+BC227F2DB050980F3BFC8822FFAF413BD28DF4D454EC9781DC0E9A8AA91B8B6178E0D131B8772F
+EB8D4EC32458928F0D36166A16A489A76B982F851B3A2EC528F086EB17C14E6D58BC567BBDA07E
+38F9E1093C7D5F22C03EDA07B83B3C4DE9544E46BF18A0C7FA0C02900891A444D5A0771ACC1EF6
+A162A7A1EEAB312B98AF643F0FAB9EBB7B353C37C98BF70734867B02371899FEF1A116ED2A1D1E
+0BB660E45506D27648D7DA7B3BAE3178067C58CF4DA242DB13900BA3343A47F9425451DD24564A
+391ADC0E6CA67A1E2DC446620BBE621EB60CEED0F24D4CDAEA2157FF94FDA54D1F568CB4F4FEC2
+50E2900014A0E5F256E61AE594EECC87D8B8420704B7921416133713377C5A72FA895D0BD6348E
+BAD6FDE86E8686B8B0B77627512A58DB7F1A4624EA91C13F156C2BB6968A7D311B2E4E5B9D3B0A
+8D5B27AEAE62D0DA4BF951EF7EB517BED557167DDD5522B5850213A371F37DCEE7F010A88A367C
+0E1315E17A1A6CC5C792715F24E6B60120AF70785C5F60BC8DEE12E99EE4926F6CC8757F46938B
+158FBE605C77C4D2525AEEE7680CFC8B67D2B5AFA8E49056BAA8F92410FE738528767BDCC22DA5
+0AD30C304222F3C7FDA41FA7C300A6372B63B955ACD22B760034AB27B161532F385E7ED3D9D0BD
+D32E9241603C27B2E6F75004F2AFA11BA9DBC7C77DF95292BFD77A8951C280331F0D5904108EE2
+C1A5841446C9C35C7EB78C162DEC0CA7A0CD638B8024D65E07E908E82025BBE7DD519CB9337E62
+7596646F51DFBA6A410D1F48E25DC68616CBEC0CB7B751149B36D0FA2E804054F2F14C858434AE
+0A126E71A2299A8BA9E3AAE99E8A99009670A7CF5C57D3D176E0F8B8B3696BE9B40B349FF40993
+6157BE381F92C0785C3D5C42005203848957FA517A1310F3924FF2243B4504783D17B5E17DBCC7
+F5C444F5F0E06C1D270688A7522ABE4524D9B5C0E4F1C1DA14F6168F99F2CD428E0A97747010F9
+9DDF4CECC9F707DE0CBACAD99E2CEA1BAB54E2B013165A8ABF9449183473FD613CBA66679ABE0C
+F8440227BAB79586663E03D9B5B110F6B5D78CCE210E20A63B488552B15D39BD081520C40E0A48
+21566C5EA0626AC39DF00676130C8A839B8F94029C2C0806864464CB6C6A66D6A7739FF42990EE
+83567C3305C6E6DA65D230DC9D0F444AC242690571E0628C12A177846D39490C16D9E8ABBCDC81
+72819AEFA6DA72E182A2868212CA15CB6F727A8668A80DC06D21B596BB1280DCF184C226A9AE03
+3F83B1185ABD6FC4CD039077EF21D301D2343C1F30B0B640B0B2C75DE526F3A00624A3462E04A3
+7FC1AA2A023000402D9FA018E5DF63D25E016008EA88B3802E4BECFC7636A3E975875F1ECDD7F0
+69E42F6012AC0C668B05730B727852C32A21F27D2BA0DFFE8EAB07B79BD62E67F14C22BD8F1636
+FA5A4E4522073385E30814CD2639055DB0B4F8C885C4529C40A15C03A382F8039EE2F21DD3E3EA
+36825E1B5803A48A367A0017AB035A524B78D3A029009EC4739C70CBC6ED1958898553A4A416AC
+6B99F2D5D1EE65D2AF0C7455E96CEF37A760DF704ED272AC8F42A52417F3E391FBDF552720326B
+1FA3F85D5CD5C62C222D32C42B16E601A1A776086EF81C0ACDD16ABC3A1583418602BB8E2F2224
+36D486EE2F1CA3C4EAEE8422AC1A50C14531FD7E54EEAF952A93EFF35E8A27AA86098751AEB148
+0328FD4F69B9B9D9266FA216D9C20CBC0454F773605A946A404D081C12193D3D139F076CBE3817
+4FF4B876FA8D4BAAC3B55A287B36B309AC6B4FA0A495081151594E327BD7CCF69F93C3CAA090BE
+B8960B8A71D016C8428089FBC8B1F9F44D3E5889A9C4DC1DE4189450B948982E4BD6B012C824AC
+2C723FCCA3ECC5E29BF08F065B34C16E7D7B4031A1EC10B96E0F7A82172ECC0BC546DA74C45CC4
+2F2A4BF12EA3F13BBC0A26E3342362B3BA0FF419C9C4CACBC3B2EC5B7CBF42274AA94A11AA1008
+812421566AD32935764C7C0E72C0C96EC8FEC6947C93DA360EE22368EAD6D6973A9E3D790BB7E7
+C0EB5E508CA71E93A0CF69A5EA00973A775CF2BFE33BCF4AAFBA23EAD3E4693478AFBE289D9057
+89946728A53DC6809F5655FFC24C6C0F23DAA43D1CF43CF4F2DC6086D1219599162CDA956CF827
+56FE2C35ADD4630CBC147239960BC67EF704BBBC6BFD8A76F44BB69E36987A70D144B12CB524F4
+23B1BB9D5BE596CF3220E55622DD018D0733DA04A940094D75F7BDC1E42E0E59215534C1226F0E
+EBE9CF9AFA1E3AEFAE7A352F70C871C0A99044252228AD180C92F5A108B118D9C343D44A673A14
+4A0B2BDC1A0E2487720A5C88BAAF1468709F70B604DAC13105555B00E6A4D8F7B8FB4899DD1C79
+FC22653EEF0CD5684111BA6BDE28DDF882F1C4541C46C281328ED6901250C73E07AA4EE4DC9CCA
+F408AE5FAE5E70D11B5846D6D60E6863B1377ED79DC88A6A54336D01439338909248629395E168
+E96420613842C859D0A84986628B205005CA887696A2FBD66A8757EA8225123289ACD5DDF998CE
+45E563F4B9B9F7F97DD29D870CF3799DF4F65DDC4E55AA70D65FD9571AAF38E98D664C5E142608
+95DC9D12A8B6A0D71C82995907043D7A44A6FA1ACF7E41B2E6C9807AF9EB61C6FE4C86E30C79AC
+CC4AA7393D6CE256F68E5B27C9E1F997CC9DD6EC0829933CDAD59906440FBA14B5BDA7E1764D24
+039CA66AB030DBD6C4E2B2AAD63296305D20DC347CCABEA4218C7FCAA69F859D22600680236584
+D4AFA40FE5A7709703CB12F4565FB6474218BA512B2AFE6C72FDF16488314A63B27A05896130C8
+D82A39DCA04A108C7DD6C11D16AFAD2B639A72DBF46CD6DA923C00F66D9F10BA0A172037FDF310
+0DC2CF0CD92723AFA1B207347C0BDB11AECD668CA525B3C4ADCD8C805AC246A74012610EEA9308
+BB9866989C22E8199376EADE0C37A3B04E218732510A605107A8199A2F929EB2424817CC2FE90B
+C1C4646A70763CCE0DE41655CE2E250255FFF10A6197E1C7C0D89380D6D909C0C268643230C013
+97B8C2B713EB65D54B4163B970A879751EA6FF037CC2BE743DD5D5E974F5966423C27C5CE481E1
+8492EE1037640E82D8D30012FB8C1EDFF962DEA0701E29145E25ACB262C0702A7DAB89EE6F570D
+F5F646FE4002B7DC2CB423656A4D1D6C382B7FC68C5B42F0A7B29CF071F8EF6DF5698A948073BA
+1F89E0107406A03C785A0B216E6EFD4303F87A148C3528883D58A8166E30E1394DA647F22B2778
+B6E90F1DD95B32921D1E64A496703C0ED9EDF457073AF5FA51AA08EB81845E486FB7C026CD20F5
+3813831A4EF8BEF9BE921F26A714E18C384FBFE28EE6490A9887E7BE3C0AEF5F51599DCA34BB40
+C2858EE00D95149E6C570194241E41D5CF3C67975AE55DA15E210E70F45C03E9F43D2CCFEC60BD
+10C5C61F82EC87E0AE049B15023EE85851FB66B04ACBE547305F6AC46F0C71AD34892342279D41
+3003FC7291BD8066E4988F62F9EDEBDE25BDC4346017C38AB47A5097BEA4F44D2602DAB3154F57
+03F84D51B0F17BA99E913676191FF49E92AC81CD2AD4C0E834D8CCAD6B2D2154A86F68D619832D
+2DC427F08A4960322A8E628504C0688BFFFAD20D9B897D02BED7E933D230056F193BC7A9AC0ED0
+D02E995137061698480842E8484FEC233C7BC5E936CCB68EA9AEFEF8103252A5F05B908443767E
+CDA967CC025673A8ABE1BCC7B7C9D8C9882E394E3CBE50A8785DEC124976F1115C3CAFCB3E8DC8
+F523CBD9DB98B52A94ACAC8FDFE0186B839F66FFBE6653620ADFAA5196004DF68B7A0358219A5A
+F33A422E119C4AA34B7ECAE5DE6B8CDE4D1EDECDBE0A99DABA464E631B13B4D8833AE7E22789DE
+B343AD9005A0A8F30484DE023D88F56EEE88C8ADB3B86228A0741D7777A6CB09282BED116E30A6
+B736E22C4C495E063512F4F612E96982278EFEA19454371FE4DBC0EDC0C203B105ED4A5F358AFA
+69D315BA9AD28DB92B67DBC2B6F355F22612F8A76DE468357A4F899E472C660306AF6710683357
+1F3E1EB1FBA625A484B7136F195C26A29EF40454809E10173EB54FC656147C95F33DC6AF75751E
+90E922C468441CEF41E3F7B010835C13C0AC29624EACA127B796CA99C7FE93466360D8F1ED2C42
+47F110E32F194E090EC6AABB0DB2FB626E29ACA64195A4D4C271AAC8C65F50E3BE19DB876D4010
+8BDF1C52DEF902E6AF9C5B2CDDB5A8C7FF6CCEC2B5EB1F985E8C9B14833551E9C835E545C44FDA
+F4B65D05171ADA85B7EC0111D34732F16959D6512EE2255F990319A372843DC9B4B695F0F6EE9C
+C0E3284E847AA700A9EB3C24B9264A6E1B5D0C99215006ABAA9F10BD2842893A2291E2E748F87A
+59B79973FAAA4030F133EA96609A05873FA10516E87EBC9C9AC0BB8BD83B2081A852887A181F13
+DF0364CEE0A04E0639344C2FA8585F95E0AB2B8C57261C02520E31AA42FF8AA3E67367237A1D68
+B5B9BAE65221763F4BF03173630990BB1123DBACAE10F48A961E8AB2019800AFA87250845994EB
+A1ABDAB8CECD9234E23FEA439D3384B531CC7E122A587ED83494EF8951CE2D2589020FC9A40400
+080231A0113FCAEA1F2E2FE7230A4AA4A4E5ECA071ADBAF0B6D94CD00BE6134E73167C8F920475
+8D10588D5CD005AC2C1765301B8C558149A946F1EB88C8159E68A7370385B46CDA8BCF01B4588B
+87589EA969960902B02B137E74375850AC41BCEC0564788025B0F7D5493F23B236B084509D8007
+41865459AE7DBACA82FE37DA1C6E416F4785565C63EE20FB7440AE21159647471D562CC4669319
+8AB3B5F2A803AE3205836F22676443D28CA121A05D758871A3FA4826571980AFF94CCDB1A86A5A
+634522BC06FE98C6249FCFD1C18F21134DAC749BB972B43A158362954B2343356A897DBB662CDB
+C30A21B78DC454080250ED0F01842EDA78C7801805B011A403720FA275F209CA256706C4B0F56E
+38D2852069462458425C7CEF268A6E8736E43A123CA0E06492D0F6DCB6DAE7E1133C10BA014EA2
+43E1C2AED9F21A832D8848A65B2755234DF5C21098BA84E746E02A64BE07C9EBED50066464EC6F
+359DF3451E883543322D87F87DD9607D06D06D8BE2AE21BE847349A92B751FC30887B1F69C87E5
+FABC8C86A9D122D55C153EA4098E2F7D60C023E0042B5E58B15DD3A1A6092A836A9FECD9729E01
+243090B373BCA148F502CBCD6B01C7741C83FA2A355E2696245F690CF092B3C51F7A32BC5DE76B
+F1648110A0F222DCE004E263E2CB56DD5C6756C876816E8F1443892283A68859880AD37C0AEF12
+DB189038B4A8AD929A26D94586A05759937954C1E45C8DD1359F8956D4B0652375506A5B2578AE
+15143CB274F4852EA96A3E08004206FD18CF1BAE84A02B5BB20084BE094E809802BF11E91B0FBC
+3EAA785C4D6750EC040CD2062F4B23E3B177673A3C78E3ABC670B98BF1E8F00B0E11A7F394A80E
+A26450D77FECED931796BDF450470711A1D3C478174646E0835943E963B0B11F48A8A3BF0972A5
+11CD991427CECEA776DD004CD2EB97BB3A7D706D50D07A2063DC51CA5E15874B596CD2CF5EBBC6
+42E0CD38FFDF85C666D43B6E7B8BB96C81502B8A6624008A6EBC5931A211F65B08BD6EEED86ECA
+9CC837904ACA8B0F9AB7BF02DA99F22E07C53ED5C92CF4BF33047D4766A5F834CC84677564EA7B
+A9D6A848D5064E2E4EF6E56321A0BF414A295EA726915A81BD9CF498A69A060E05C34263C8DF18
+167C1A9BB34253404456ADD272A5CBAD4D57FC36AF7B12939DE1920DDCE6CA5636EA427625654B
+F84C9DC64F10941612418E43B1BE59D9A887D6858B94C0F9BAE63838E15A630ED32F5AC8696EA2
+F3F56BCB154AACFE32232204CA770C32164BBC4EA8D38A7384384128832425B353B6809FDF8D33
+958DFC2330E821055EFEBE3C51623A683719268C2EFA324039CD261AE4BAC6764603384D63D3E9
+0CEF788B70A74690ECD8F486A442D173E6C352C2497436A73EA4ECC63F0ADC57FA66B7BE44AE65
+8732CD320EC865314AC57AAAC250F415ED4B2870EB67947C7551A15F3CC72BCAA363C27505A78B
+2BC436D44FD286878CC2C141581766CC1BC5ED6AA80071B2FDD2CBA5EBB0A66C6D1DB80A8D3024
+A872C90BB1B3F2A2241BC51C803ED62011D73CD82855FD6F1BE9251EDEB5FAEEB602CFF4250408
+70AAAE0E4484A3D437EA0364F206932C0C113386B333A3ACFBC367F8B83DA3E902A456A240F4B9
+97022E4A4F2F3E7A317C995E1A83C1611376F18C50F5CB15C30466354D706B55B30E3DBDB9168F
+3F6C00B54D964E2AC5B733FFD61C200565357481BE81D018294055BF1A53811658CB4E87174C30
+B02E0C75F4A6640C5A29A833D6A33FDC678BC652AFD37F7A251A30DCA9BFA6B922247A4C50805E
+2EE8F62D5ECF8426CA244357F96A6236A5B94FB12C5041BDB9FA94FC5D122E83B9DAECDA5A0598
+596BD9BD5B6C72CCAFF19146967AFD884D5846F08C95104CA5AADB4718668EC9C91848C6029B78
+3BB52DC0C46EED3C10CF333CF54261E54517F80D327BC87B280C6B691ECE8B9F99B501A543D971
+24B3B1281C09E8ACC4689F30CA7099410013D5648DC170500DC9F696D122F9342401DF9C54C9C0
+EB4D2C246BB4532428E3AE53F3AD1656628095362734CB7B43770C21660779B7D4EC75C2DD1545
+3A010C8C00349AC7311E10967CF49ADE9816B77C89E78C44B3D82DC9040DC6B919676918D736D2
+1072C7607DCE88416250A382F3DAB4514BAF38C130C9F4DCBE8ECD1DB16F737D208640C600D6C6
+D480C2ECC40E595E114808FC8789183F45A89143C84587195A2EAFAE00930909106976081808E2
+C3CD2EAC64A003DEB860C3E12E8C052D3034EA16E7044D07100BC0D739D6112FA822D3D2C6B486
+A6BE5418E7D6B657ADDEB216FD049F9F0C33ED0F7CB81FAD10D67C84D580F02886196C8BDBD322
+EDCE4872C1E66E1B456B9BA62E84DD23457CCDD21386747049E6ADB2E6A86DC02C546655E8C608
+ADD0EE4491A982241E6440FA3B02999038360D54DF7CA4C4841032D9627B876A6F6FAC183301D4
+DAAD66EC4CBFEFDFA112C3EC098A9C40806BDE73BF48A02EBC50F49BF2046B8A9F449432D2884B
+D5EA7C4895961132E2B4A6C20498D9351EFA2C0A0544723202B1B25DFD94AB9935835C0BE08EC2
+12030C02005B682A1D5208094AE36BD2A08D8280A56757330527033C1B8808C22C346D660BFC66
+33B15D2481DA5C1092316694808946C072C7898141AEFDFA5C4A1209ADE70D0B805B8B52E6A84B
+47EB71F4BC1324CC95A59EED870C95BFDD0E9166518B96771612F4CE8EE4C73B6BE38A9F4CB956
+F081242A40F0A1D1336757AB423CB31404ECA9F8C64F0E32C32A8519E8897BBB88E79A8E88513B
+817B555A983E0C8484B8E23701694228EB6639BCCAAC130CCFC622FC21054E415147E7A9013FDD
+D9CD14358429E2083BED8371408C41A3A049433B5E08DBEF368FF832357C12D1D1FDE6F91A56CA
+18DC8F1654A666D227B090367D7A3866116D15DC84B11AC762214412853BD70D50B79B6D680254
+9A20273371BFC68C2BDAA76E7B33344D2DAC6A316F686E0C1AA32D40D4AACA334E8B2A9891C826
+419A796CD69CD905A0A435221C479A339624FC8F7A116EC92A31DC3D80051E1414790AC67FD0B2
+EFE8CB0EA39996475E6165F45818AF6753DB3D4CAC6A2C9589D1B596AA240421918FBA600D34B8
+8411B3D2408C2C20E2F1BFF7F1A533CD2204F96898C8D0A19897834BB5B72FEA10AAD2C66CA305
+4E96D503A688468452E04359C4EC3FC7B171623484CE5148804C36D04BAD0F0875D16734CC55D8
+C9A8CC9E02C9E4EEE32788C17F980632524A624152608C87A23AC94E91D1DDBFC5235C968232EA
+9F5868D9D96546E4C6D113B3879C6160F8221C3888363EA45840322F9FB7555065C8B685A5EEE2
+4574E82C82EFCA9996E63C063FCCA1DC927C995C90A27290367A4F70505384F18908DAFAF3601B
+B20F91A17320C93D1120ED7689DE1B8A4FE688D6AC12D988ABCB0C86E352B1DB206AE4A63C9947
+4843E3C03E93868343B6915BA7EC23C079D501B4CA6080145CE02105B50AF04CBA1F7EC82600EC
+93BF7006461A7655D4A90C7D3119FFCEC4EEA1E81AF06042AC3A8609822D6E90569C8A04A49004
+29000E1E8038AFA0A8B674F8366AE558EF4DDC136BF01D9A82D7110EC8B1BF1E801D35A8CD785C
+5D169FDEBC3691B8624C5FDD6B33B54F22D8DD1E5570DBF0246D469364800E8627DF46CEF41597
+3BC6044632576C68EEC1F874019263D46E53C1D5100F60C50DB58AED81E7852C23C824A499AC40
+A60875CC05B4D21F3614C8EF41C84F4B8756FC75AA53DCDA5F256C6FAFCE20CDB46EA8F8243EE2
+BD936CC8D32A5CDD6ABECB5C62842C13E6EA10B1C6BB49AE052F05281FBAEA4D0D4ECB8E673C42
+8A9E0D663F67F5D149DABD1A2199C329FBC885D1C6D5047F117285FC44333B374B5579B545494C
+18147262A8F600793357B8A756D17CD05EF94344844621B9818751302F25D5CB2ADD6877343EC0
+DE239589B2236837A0F7FD513EFD381B15C6208C71025039DCB8D3C7408B136226B904A912250F
+ACEFC4ACA4C90B643E42043469B2ED451449B4CB035BB91A2C779EB55E50379693759FB0B65BD6
+72AA5C2C8292DA14B0A31C31FD7F666D91FCF984BB74267D99C619E6AA93BE0C587F99A03CF1FC
+571A647120A89F220324D0811B2A8B2A3A36D4E4B6F5D459EB2AD85FACC0C9A3DE0CB0DE9804F9
+D170A0AFCDD2575A02126482C62CAE9772EC2CC382DE7086D7AA6D44BCC89133B3559E1209E03D
+9B8BA984AE8ECB92112FF0CEB626072EA926471C69B64ED601EC5047F1B40D0681724A65163D6B
+526319849AD24E9FA1FDBE7A514F30EDBE5A56924598FCE834CDE71953A2239049170C0E291CBB
+AFF11D400EEECCB5A8D10728B8508ACBA9A28AE9B3A1FCC4AC202BC0A42B36AD7666CA378EC636
+C8C9A0ECBA041D53A7A6A63B214765DEB00598D460081FB8C3E55635A1079EA6466216815F1629
+EAD2E448C8E99FFE82E72CCA18B331EF4336FB93BF190C8E103CCA5A2C3CA95EB7C53D703A0C36
+44E7DA05562428600D29A398FF6E4282B6D065C645018ABBF04BA3392BDF0F7E94BAB64544382F
+24445AA72DB078628BF0E79450F76F786573E295D1BD89BC9C57CD21035D6F9B44192EC1B048C8
+2E6F3AD6863580FB59F1DA5108C7826AE25ED4966657D66AB913B0200C63964F379EFC400B4AF7
+3B749208220F1D236AE4D91AA916E34C56845588F025AC2BCA8F0EA7139DA45B5E63E89C6BF0C0
+BF66035E9052843EF3E7FF241146650798D93BDA71D609369447CB5710B46D04D2B11739424A68
+230C1B96D0065A4F928421D610728411142D6161F40FA7FF16508C6797B0F76741861F26E43BB1
+E9A47213266BE520320258C6C98FD3F973774C806327AD006B0E840B5F47C6E287A788840E3826
+9FD340001109895DDE995F8AA91086D984CE774509A2A9E2B460D89346FEA55BBA73BD0A8A326E
+81960A8F1F6818B9D8E5860A79524F8BC6FF5F4D709BB5454112AD4C46B745EF8925AA18257EE0
+9CFDC590705B292A0374663931321FE0A8483D95E1B050092B11AE0DCA5A074A5003689CAA9209
+A5620F37B642180D7A9E7FF54DF9C188E384C915C2742F7C5E8F8EAF3E42F3090690C2975040C9
+805D8AF4E7FE0B3A309B5317E9265E2CC0A3F38C66EE99DC63A4544A91259A0322400A9D23B784
+2CB5166E0B862D99C68AFA0C570E5C5B45EA1E2616E4B36CA006D8D5B34F3D05EC28465F637681
+F1CD8DC1D729A28F3AA10E61D736665B8D1F9B84E7C09259F32EEE4C2687B130B18654FB8C3DFD
+92F440A7A3569406341ED96C03A50CAAC70A46DB98ACE41048154DC3B98B2583BA2E524CB5D05C
+C595A951B457FD0434E642712592C6CE80BEBE0E6089B8D001F667A54918A6CA1439A6B3A6AD7B
+9ACBC48EA69B307431ADE9259A73BFFC954B4E1A32EE42A561454AFF46D0BEB8A90A5FFF57018F
+E17407395B48155A134B08976D85D73780D23EB0ED2506AD530B18B322ABBA6F631BEE806FFA64
+BF53253F6B16C425AE111B7699A30BDF4D94C390B195E0FB7C2C8F51F5E005B54308D5A9C7EF66
+17C07102980E66B838FBA482E84E9CD7143E701F8A0851CBFEEB0EB20AEBE6DFA2FA22745063BA
+DAA68B84C4F18A7ED743A20AB9DCDCE267134DF47026F31603D9C877A175F5ABC1A05811CAD2D7
+D24CC37402D0C1AC1332C531B64AA30C9682E3B1850E2CD2752673ED7F4F23BFE7C41B85E3FE5C
+EC027C9D6862820C4DF989A23A6B77DA5B210EC78BCAE73AD93BC11C413CEFB5F2B3CFD0330643
+7DFDEA1EC2C3200A842C470793113263351764FAC2C6A96A18125CAC006F0849A1733FC746465A
+12071656CC08405F12FA6320E84CD3FA0C877C12CE5EC2F2B0D783BBC8D37B7380C54D38ECBACB
+29F0BB2C348356530010073030E76AA22B513076003320A80C84337A07206D819B91A21FE69857
+8B98D45453283CF78B5277401433E76B48989B8936C0A8853F0236AF499F7A748830C04DEB892F
+4B96112CD724F4833FE20D460E540815AA366D574F87B4F0000B9FB0AEB2D768A97C4BC1240C3F
+AA6ED163DE70ECFF14850BD3013367B7F92D4F24FC0D4E9AD6105CC0820730A25E25837247F535
+C42886DC0975E20714A19C765910F793AA0BACA2102422B93AD6DCF3B70CA87B34E5331994AC70
+1374160F0503C46B9A7E3673DE407B9812C7E4E9C324F42E82B81C52149215E094E5E4FC293AA6
+ED8538C1DB65B067FD71B2EB07F5E598720D4767681C3AC654FE5667A1883D915DA4E573947553
+3DFE31E9608A5031302C62A362259A94284154232A70703525EC4E66B694C4F68A933D91ACDA56
+1FFC9078C397902CA288560B65C52F83CF71A3F4448F6649446A310C503526C438DD2A6FD070F6
+0672C093BE40409AC8AEAC1A8C7B41AE6456E9F64440651CF3607CC8E0C09C09731DE6FEF80518
+9A84354AA2EC3CFBC99A58993A0DF6D75EDC15CA3310229D0B87473B01E9E5AAE59B277A37C0E9
+075DA6B7624421333E92A8498D7DF24D93FC929B1BB18F5828BE46798B463426C6B7A071D22BA2
+26282BFAA24CCB124A29B77E165C0CF83654A4D65864ECAF6380F47C4FE2450839B21EA4607115
+A315E761E7AEEC6753A545E7ED37751FE6CBFDD7713F7A8055D964A01012C3CA7580775C0292F8
+4189F173DD5552960C66033946121AAB90909714C48234EA472987000641064E15B063843F8C0C
+1A8D95420C326042371D62EAD5DD9AF316C4AFA326D91106CD599E96AFEE0909E51C4040A22C54
+75D0C4905D9AD4E4F6535EEEF3DB21351933A74131B5B76B2A7270AFF77EA4CE6F29B94E353890
+FE6D56EEA9244490C72BEDA4DCDB5115E9943652520CD4C67E1C7467FC82160DE551C59D6A628F
+63D79BE43E53F1310F1237507AE48B4606A4A900EC2ACC8E8F76274389F9066D2AFC639CEA9F40
+63770287E9C17CD098E967B47753FB6474887B7A84A0E4764FF11CB44992AB264CC432CB1D1954
+209824F1950E5817062D59890AA134E12CDE0E6961A09CD85E250F175A85801065E0A962A4F8B8
+61E640C516FE5A5638257816A3E3C87235967E3470056E7807284DA49CB6069F5BF0AF42C30F9F
+2C24999286FB0446F97E0A496E07513A48D3C36222E0D409A05C7F5023CB3AF6C957BA72F4FA60
+486450F54A254BC70511401733B888C7132D14B00DDD6CD35CD1CE984998A89A4301079B622C90
+B974D07AEFB44947224D9780A0230A57AEF8379BFC4FA222723A210EC342BBD12A62567752F84C
+9AABE8662641265B53970422042840D9F0FE1606C6AC812D9B707780DFFBC0660C8B087BCE04A1
+130F4F46D0342A3A3FB17CB4FB5FB011909C978FCC27248A722AB438193A3221A2F0E7747CA746
+8E6AAB4AE6BA7996487C2116D797A8EC1AF5C045FCAC1EC55CD48C847F6AE030A3B4CAEC652C4A
+7C773E9E7D2638877084E428860E8B80A8807F62762A97A873E090EED7503561D64459E89A20A2
+B42A817C5C62DF569BC053A666A497E8B149C2904EB6C862146E4E2D4014F4B62174577A7807BA
+6523000430EBB62B24D7AA6AF73D6F8176F35FF88CA46619A2E99B504ECE2A7DE9CCA35EA1A9E8
+FBAA769FA8C2005CAF3E8FC17F2D50C94C7A5020A1D0490415831E8CF29547A362B263750019AA
+6BA2C6BA260D90365C40EFB19D9B5F0315096183715ACFD4DE0D268DCCC7AF5B3D86ADB68B129A
+21731AE0E166883CD2EEE2046A8475A7C17A3BAA2C8C08F6B3A36DAC4E893AD6CC5F565AF7AE2C
+7664CD2E97BC14A1B5CB2EC6A0A0F411D337D03991915396D7A21822C7A6BACDF2ACCEC0294C41
+359E149A9883D2EA17782C1F5AA7488A362CC24544C28AC618B46CB73AF1E4031A3E556DA5C230
+4750E64E10CE226919CE8E55413782D906678D3C4F89852A2CF678FA3CCCC242B2D043C77C6E24
+8D02106BDA403D3EDE0DA70E7F3BD84B55C914E460C7D9D56384144479453A74A38B74CFB2BFF5
+8FA8D67E0BFDE8D6A2ACCFB01452641CB3B40989424EAA90DCE889C74087D601818D2066DAF1C4
+876DCB8468DAFDB7AB3649095B64310E2807CFFB29756950ED34A07752324A72C7B591EB32A8BE
+276EC5113F4C872C984DF6F16E2453E64A9F2E226D512412044C918D75994713B20C8200F60AE9
+392CA6C447D86140B2EEAF1B57D5F2EB96071F1662CA268E5FC2453515E6C1C8A63ACD36188ED3
+C351C6DC0332227C424E7E834B75BE3A184293A4BCA691266B101040E748348841F48653F4A9C7
+BC89237AAA30460760F026855E02C37EE74A2A9401C00F21ACA34AFDC2B78BAF6C65421BA39ABF
+BD088FC005983B9F9C84B1321C6E1FA3A084E454824AA119D031D1D5654A095A39646D7340A586
+DABCF9EF90977A69AD321031DC0A468495EE12A8BA0B4089B36E43948180FC9FD60A4310E5E1C0
+EC25EAF19044DC4A524E74664CCB813F19ABDA4CD2DAB663369AB45B8B8355D5B6E12A797EDA40
+D893D351E56532AEFDF2C90EECCEFD025E231912803094C60721E13D7CEC850831F58C048BFB5F
+60C0B5821EA68F91AB6B7F8A203B89A8643B1CB1A793BE52B4A062477D6558C26094144C980A29
+F3F478B051413C26233DBB244C23CB2472B77EAC8CEE1E96F2EECE4159248F84530B01C1B71F35
+4A3B4DA89C5581007EE1676C7FD356F4A6F8786622157691EDFAD49C8ECF0642AE00797279E975
+A41E6BE286D72312E56094549ECC91F232C8ED244FA424C2510F8306B7A00C0BC99EAEFA102D66
+256DBE7044FB3C4F8C6F73DEB1135EB5AF68C040E17A2FEA511664C67CD7A3714CEAA283B3EA1D
+D3B42B40EE56B60235B834D8D0835DAC470AA241B2A984B16D8C62B3C7F28F5B87854D1D32B093
+5C757D325829F2DF18F913308B0620E0AA8D040CD7575F786CC454E642334765219EDC8C622ED0
+61EE74A214A018D833A4C3EADAA7E7D1AAF3CE247E83BA76BDF265B4412F8B3F315435D5BCA329
+4A87280EBD6884EF1AD9A775D21099D95B3691F0C8AA0358987EA2F95548DC21724E6FD20A640F
+B90E4F64A013A75ED3634B4133F3646EA701D394D561B7D3BE5C61D947499BF592BF644BC93C37
+581260BDF847D626ED0FB5E02BF6C2A2F902F9721E456C68F06896836F40B30169B568F458D478
+E5E926947017F292441138CA9C17592AD31290C20045AACE2344D48F78A24605AF46A318DA7901
+A2B72E305DF581CC080748C6E9B037149770987A51DB8465DB216CA15F809741337EB2EF0DDCF0
+6C1A1711389088EEBD0439BF0FEBE713073AE19E04E9172F470415C0A1D081B69D31EE0AEC9EA2
+81B86A9AB0F66A3F9FF49E17469E2B2DC64210CDB41C2B05AFAB9B7D9CC1CD446C32C96D956466
+754B48327030DD0F16B945A1EF6040AB6DD7911CD5DA4605AD626644D19BE95CEF8E3370502826
+BF0619C6DD90909242265C449DB2D392E4827D9C90441F03D4922A73C93AC3AC53A9BB36CEADAB
+07A6EE2770E0D05E9FA6D4227282BD899C89EE4A9034C102C3D0D258C2F7319F7CF986A07F220E
+2B1C5764560C49F40A713B7CEAC93AB03CEE4CF491E38CFE779C024A378FB19E2608722FAA7297
+2528C14640ED8F7BAFBF7066712BA3F9A6E225AC4C22E2F46FBEE8DE87A8C8E2C4DF6C33564886
+5EAC69B66261EF516DC7AAA569C072590A7040A19914C42590224252445A4620C8FD17CD02001A
+24C4BC4411CE42363081A6E05906CE768476D8A4F68A0C40063C98925CB69BE39975A9F83328D8
+2A744C647E2F20665014A294A26CE77484942A9DE906269F408338CA1A522898E13BEE7A2E54FE
+326CC17368DC2C69D065F4A346F9E0D42F3AB3A33D49ADDAABD10EA67F669D211BD11CB3FF8864
+55E0E2DFFFE1DF64D5059C932F2C442D985298615C525C1AA2E8A9E7C1305EBF5C905845459B22
+19F41EAE36E6F746FEDD68C30D517E3535691B9C3DF8E9159D263AB178B560FD6CD19836442262
+E837FCAC99FB5D07E3BA0E51B565D6B8C8339C34B28BC9861E8DA699CC65E2BA9BE2E722390460
+E08E3D9E0C0928A00022129B37875802F231251A4E135881542E1254417E37B311CE3B88AE7386
+3B23CA3315F3AF291E6A61AD59338FC09ACB675F88FAB2A781639D7F1913E5044B05524755E44A
+632467D61FE7DF95AF255E5416061C238B206411FC936974E617C34B34A2B57A62DDD4C59C4CBE
+038816E00F86976C89935D4F218904018DE902D78C50E594A218746DC7F9CC4236162C39093048
+30AC2FAF94050579F60FEBBF7E11BFEE4444A4D57C2C31BA469FF2444239307F9333EA9D3FB216
+6B3465F42E872FC03F90E8401EF407EEB71FE97645F0AA24481B629DC35927B8DC321215E5013B
+D403A2B6E9E158AAB24C4493F0952D67D837D2A3A516E23F32B93FC58445BE54A406E29F9E44FA
+D438C74857269E14DBED6366DFD1E4EA828B90526481D2C01EAD7DAD7AAF51C8DC6CE21E4259C1
+EBAA7B635C1D01C1AC48E2EF78252A8AEE2743DCD9C034C016634A36017873CDD3F22ACA0F97C1
+3F88816424D6CCE5971870277F28CD321BC3D3D7FDC486589C1042479DD7AC0040B9A1A822C59F
+662936D00ED39098B2CC569841E8F63E9E7ADC4A408AF6B07C215C302A32285FAC83B54D2A3450
+C3649742D263BBE11B8D7158C30258001635686ECA4E532DEC7F3561437B0B2EE6EEC74F10F6A1
+A174F8DC57FD0C566E82FC04C7307227A7480D63A58799911F0E3BCD04C423860CCB472250EC78
+CD74B416327BCE1FF6CFE396CBD21752794EAE63246B80B0E68F6726704ABEBD25047577CC80B8
+444AE7F1C8C2641C8473875A86CA0D2228EBB442026921DEC7EEFA3F07F721017C4CC21227DDF5
+3EBE39815B2F387F1681CA631528D66C8FAF1EF953DD800600F1C3EA8527D891BE4D17ACE11B1F
+ED19C2EC8E7B0C1152913106697A19D935F84EAA0575704DD34A199FA6C6514E64109E4C2D1148
+83A387459AC0248C7E990028AC72D0C159A36E754E8DBD0552BCF3646A62411534CF807C5BB8F4
+5E78244824293A578DFF710C4B854856E38C68B9019FD382EAB7258BDE4F360AFC8717C7F916AA
+0797285D100B06F81ADF8B8FA78ACD88D2151EADD5846C98020AF6E4E05E4F5A83252D044134BA
+B7245C200F24AC0E64DA8BF13C26763501233BFED5E70F13F18D6F22FC1355BB03AB0D810C2AB7
+2262300F97C4544C6B4421036AEE854EF620ACFCB45E16DE1607826A00B3933F0E510E8461C54E
+90C1578D291C806DCAD1AA113969B8E1253718A3355688046718F7C751798777CAED2A257212BB
+55FF879454725677B80317D6516F017F056FA5500C83D3B347F77F63BA110D3784AF91362CAD7A
+9A6681E6EA2C4466824B974142FA62DD7A50E3BCE3C7F01A232E4177B3592312B7F437493649D8
+EA8EA34EB9CFE3098DB4151C1072BF52266EB94D739ED9C2B526F4C0B0DA37E2E700E581E574E7
+779695E8F5A11A265F1BAF995DDF47AEE95E0C03804489159899E3C4459263795C66A6CA36806E
+B3C8247EB16A33BCA015BE4A8AA65D361E111C659D40278A967C0E2B77011C799E8CAA944E3264
+A71F5E59F16F703DF5B34C8C97BD61AA02178CC5201ADA1376E1ED2F7895390484ED05488AF005
+8D11348F183ED95173EA90455935F45AF5C19F7912E80A840FE08E85273FB82033FEA8EB78138F
+00866D4462B7A102405B31386660476DA489446255DF185CCC79A5F1C30536DDEC2094CD9328A4
+EEE38F7CC8D856CECD4F7E3811950306C1FD303A56E562A88E6C7AFC3F26172D6D5D6F46A24AE3
+E4209A4DF4C191A4709E13B03A4D1CD7D4A5BD6AEF4DB10A1635AF1763874DF818775844949448
+5DDEEC39F816BCF8BE135BE22677B943E27143487669A4B4040AA5FACE2C60FBAE12C4C5C455A3
+34140846A8BC1B58F24972B1F79B22972FAF06CAECEB15BCD240929A4784D7406F854D76B408C7
+BA8898C9193DA2D75A549E238B549D4BC527BF76CC935908F2E97C1A714CC242941D4AF69C4422
+81A58A56300C850E601445AAE2CCF98B63946C1596CC0A0762D91C4178EAC32D3F4D5A3D833818
+4756A62D2D0886BAF81B6CFABA37F7D75B78A31070852ACA92B5B217582A12D19B4E279E64AC59
+5BAF24DD7A3C3B00349F27A5D28BF862CCC66F99D864063591EE818CCE18149694001C006B34A4
+E47655340D0E430D9EDAE5708AD344E4708FCAB8A1CB06FC8C247CEB413491BBE1F03126A081E3
+F16EBC102E76C2B4DACF8994D635F53A14CA326994B6623F324B5EACC868411B5AD24600AD2A4C
+9393966E35047899648738A6959268B877195D1A0AC540D6393ADD72EA35716A49B19E9CC82F8E
+40F358A1649C7A9C949A11D8E80BC6F2C5F5AB970C7C6B2D06E2A4BB8509000EDD2DC57E6806FE
+9AAA580E2DFB0C9BFE567DB1E75B778E69FC73E4EA1610F2DABC53F4B937BA616367A0CE294403
+DADE9F402EC92C1CD039C818343960A66F2F1A46053198F657032482777731030D063B82C2DA3E
+5318F2D07F2E17988948F29B768209D1257A52FAF35C0B563CC038BDD61556252F2F40A6665EA0
+E7C4068C9059D82A1DC089815D13D38B3924405F882F206DC4B6DA74C02802D59F4541987BE59C
+170C58701F2B6E12B213D6481230A945A53323340280543A2C1669B65A32FFE69AA958D1C16260
+788C31FF0F2433E0018AFE93D89830BC0343335D9014967F7FB3A03642E67FA7C938D475CECC9E
+FF473A9B040A8E6686C2163AA08B0DA71D237EE5D56678A5ADC22844A56E94067EC1A4102A045A
+E5439277FA756F558A65C1CCDAB44E9C4FC4164A4C44665CC4BBD7085EB95BA5870087B882E506
+4C3AAA1A1C2EC6045D7BBF507A125C1813AC7460A2EC9B4999D62EA647FB0CC5CBD51B5EC269E8
+9C9420DDA52CA3EA0A8F133028CB84985527820277EC4C0A77B9C17E9AEEBF251BC1774FF47CE8
+43580804529F60EE862DB21115C5C61BC5B2CE5E6C76F65FA60A4C7AFA0384190F3B98E73E94DD
+6214BC09D4C394A3E6DC4DE1330547316790540F4E0BC931547E02467EF90A2BDA65C892588C81
+2CD97BFEB9B8E0B92C0B062B2424DDDA62780A57B665AF2B008686838BB55110A8FA5EBE12188A
+DFF0EA544CD0846E7FD4F25E1CE0EF036A7DA9B469A07B460BBD70FDF52DE30999328A8716FAEB
+4E2482D218BFF064EFB422FE13DF05971CE5AFDE0CC20D7C811A15F3A7F611EA5D052C1506483C
+58D37E6B0F74606196C3A3D4FDF77E2B828209A8A03FCA26A92CED2E3D30B60B9493EDF5DD4427
+1D179DAE608D0B64B73C03B3BA0C61A05EAB0E41A6DB5217E0D142656AF331BA6C8FCB62FEE987
+6915950AC80D0AAD22E30113554DE6177D7B960960F14E31D8AD469A457D4807388D12A418323C
+C02AC5EBA30C2BEE48F0C54ABDD37B92B533F4290A8548A2FE82814697644C8AC1E3D65A4BA9B9
+12BBDB810E1C1453002A00B64C22DD50F47A1F719AAD44EEA1589012CA0D1504A2AC5B51B85A69
+69E20EA4C42392283FD5A49E3839AB851298D4C03D63CE80A4E46413B2996EE031119DA51E488B
+D3F7E18D5626EB2796302A60472AC77D4080986F3613CCDC3A3FA90505779166F152CC4AE91C46
+D17449F4C07C5CE6230922D53CF8A721DAE666A5D98A0E38058EF66FB1AD4698CC985C2D2F46EC
+BB69445656AAC5430619223120F1B472F565F420FE55129E22CE67A444544F819069C85578D847
+CDB254101B1048402238913DEF02E08698125B925CC6DF6658120B83CFCF3E18B620C281B29070
+2238BE4D0E064AAA64C233FC2A2BA26B0512AB2596AF7F80658E4500D8D2774C2901A35560CA12
+9C4E7E280A8F64899AC6254F16A792CFA94A6D14D1D566E854086EBE8848BB5BD118DD08AAA654
+3242AE5042CDE07998B8FEB345AC84C42EBE67420D9D54F2BBBA90421942A780972551DC5636B0
+9A0E0BC6A8584C7804215C36ED637DE3F6F22126C9800E931E99B1B8555F603622FFBB15EEA73B
+A30CE69827320A8A8052B7A650549ABB726B22C8B8C52249440CD67A0FA4CAB46A4E5550589919
+093D3C5AFD4053556F66DCA3E4773311458E0819D10518F35D4ABD4B9A00FFC69ED396FF0EA057
+8E8D90CCCE2E843B570AF1901F006BE027C12170A418AF8091766ADBD27611B0D0568D3F797CE8
+5AA62A674D88D0AC19449E14B30EAA06831A9DA4457B2264AF82C4302373955435F062916AA248
+234158039D82A45398566860F7880267D3AA08F7AE47B0FE70A0A06D66876165964D9523AEE7F1
+AC4C32A40A799248F6380A0ED85A58A95CA4C618C2B40B568BA9BC56CC99096401B2D838693264
+B0E2372CB282287EF941EF0E9E7BEC952E9690A21369B90E729613F0EAF987E020968657E0738F
+D7C9908BACDF134A23C9273518530EE358C7391009706502A50C8DA04D6B459FA5E599CD5136E4
+5934B8E196C240265B6235CD2F50ED9D2E9C967AFC3218287DEC6A68BBEA05C7B50ED230973CA8
+07889035046EE8D019645D5AA096763DA3F71D51D77F4B88F7618C45F60AAAA9FB4270AC8A0570
+BBB971EFAEC9EF887653B82DDFC7478A1F177E4E62EC17A246E8FD530D969E670C2236168B5EF2
+2234392691E4E0DF08E7CA949E3AA42F9D4196A423257E489D161BEA8038C8BCEA4675D78E58CA
+B9C3AC5EF034B15A06A124291EA119D653128E30CCEC7C4107EC4A6B84797B52723311CDD77F82
+E50094D220283E20A3C0D992514C10A512B58B01F30D4FE8907CB2CFD8DF567367604F6ECF1800
+3337D0908FB106D95E9F3BF23C9E64031704C04136C8CF939E2AAD0603A8289D70A510E6917274
+D78510CC99428C248F2D51565F6781CA3927D404D42DB0987C6F7D734DCAA8710B75A979048B60
+F31B222C68603ED36C0379B5C789865524513C7E37463238E493AA46FA7834CFE7D678837F6CF6
+2272FD86D6F9A869BF1D16599AC99051BED3F214051A52F8D1CF0253554A00AA17B6F529DE8422
+B1BBC68AEF662632523A0C3926A7656B1C11078E108ED0A89CD74291D715E239269EEA9E111A51
+7266EFE406B0B550043A23B2FF09CD90124BD84C7818962817A1477E7AEC4CCB2BCDED28DA39E1
+3EC04F40BE2FBCA02F3375C87690031C8377422688178273B75ED324E8F975144406481AAEC781
+D573C8C66DCEE84991A88808948D965234F5D5486C25DFF0C667AB1B9665978056BA334A381C8F
+268DBECF87FAAD758C70B0597324BBAA0CA01C17F0156B1DB3AB0D63E9B0DC399D361E14CEF540
+DA43A431C26CDE4F8331476AF44D0B6930E31CE374EB902F3B5F07606D061DC41962A3FC7FCD08
+E434011B60C803627E0CBC906A66C5858F2A48A615641C9E85BC06E341129B68045396FA0EC4AA
+86CE670C44481688C14A2A68AF5BBAD7242A0A12F61F6F468080984E3AC241F13D73E3BFC862CB
+4474FF8BDCCE70CA6C54E3B29DC80F4010ABCACD60B6F404B34C82D43ACAAEC02D92E23C84B54C
+DB34B82D05CB33D2CA1208EDF43F260374C59AEE8C1E7C4C0A37779F2E2AC31B3822AC2968F842
+4ED4546A6497BACC99B4689C1382222BAA9C4CEA04B82C99305EEFE7353EDD672F6FBA65F746CE
+1398A455A893CAFC11467CF912B5194A64AF8405393C2392F3FC8F9CA7949ED60913BB227C78B3
+E7845E0B586089F6C95BFCF2C7F97316D2EC25FD205C683F3EF5630741203000C0F6CD8288150C
+9A06A4E81CE323899E2418BE8C5BE322005A58737066D5D8E766ED2A9F4AD63B4593160A12560A
+67657141541ECE0B22C5F52D96220A9B169507A89A6DF048380B725B77D2460CCBAAB482E7D5E5
+0D0081292A920A4E05D3342A42F9BED109E0D83898559879AD842147B6682A28C7BBA7082F5650
+809C7468DED3E482EA9E64A4041E68714F0F6A4F718E0D7256FFFEE0DA81C0F536C93D0445D5F5
+1E0C968D12F952180C9EB020CC92BA06F0B5D63B68EF848114EECA34753F02D9249DD9F51C2446
+EE94869420B013998AF5DA262BAA28E417477C8D52917E886061891F8FE78BE25A2F18AAEC699B
+7B951BC4856CAB01382E61B621451C554A2E5A2523A4761F86C0536833DCEF1986E9E45074C489
+44F89070DDBAACA2C5AE84469316E611ADCDE49E180A402AF4CD676BFB9E37536721B8520A5FA1
+843704729CB0CF9B56E4A17009E4F51103308A8EA0001AF225E0373CEF3A674C2F6614E79D9413
+E6187F710C865AE6FA08B62C53C3581D96630F8CCB0E7017B28F11B4969BE76FEE85233C895C6D
+3710B2376BF119433E9F7AFE5E9161D7C89B0BF43C0788FECCB6A6960124CE16910DE29B00C51E
+5F2F05DDC585B675AE68AE50600C0021361C01C232D94C13C115DE5BD9068871C8ED3953EE9228
+0D363D41E8E4B55DE4E4F6EFA16E1F7FB79876563830041BF37F67CAC2274687B6D896AD168E54
+0F0996F1CF3CF52FD60477E9ACEA6EADBC7C608890C4D245039F5946242B6E0E47CEF763BE9FA2
+C796E534208F06CC907C1E070D0382F6402874388A7DCEE0883D6C87EED49D89FDDD921C2BBE80
+B5D3EFFE79D3D09171EEA617014C85F44633CF03512F231DD270BFD023DADC27374C220EC27BED
+0DD24D808B7E725A0A2B108A1E7440AAF8949AD59E521F6B0E217E92F324FF3246830E6C61D4E3
+0E9ECF64DCB0DC3DFE2AD993E3AEFCEA412A94014E4E6C4E2A43A530800E5915B504EBF524878D
+B89E67A7751644B1EA85F3CAFCAB4D1AB6204A10CD6C75686F949787B65AFE3F8832ECC9A6F3C2
+1C3FB34C727206302A000BC95ED01546915110230EACAC2D66EBCB8C37531DB1005F4F2BAA3920
+979808C5B13129506880ADE4D9792578778A99FFFDE9606E9F6F0D039D8E85DD61FEEE5AF0C2A9
+6C82D8C059D5936A1376CFCB8AD5C16264FA8C87B4B19C3176A0EF948B36BD8AC362A7881FDE87
+32F09A3E430E45088FE588A8118666D5FD7E2183D0E8227EC1924D766C9F53F64E1095875587E2
+07AE57BA177C04C87D5C61868C54F006B864103E5BFC04696043D37635DE726BAAC3B617E5A39D
+020613266C5905A1CD00568320150A234DECBECD01E32BB8FD9B6B2D4AF1070038759613E1D820
+E2A70F0AAC969908A324B0B7CEAC2722B4722BF65CB46C22F7211B76FC3004239404B8224C7B7E
+FDCCC4A334584DC1F96308F92F6E8946947AA350B7FF9AF0B06796399364D5810BB026BE59B2D5
diff --git a/test_20121121/vonneumann.py b/test_20121121/vonneumann.py new file mode 100755 index 0000000..3e71e9d --- /dev/null +++ b/test_20121121/vonneumann.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python + +import sys + +def pairs(fin): + for c in fin.read(): + bits = bin(ord(c))[2:].zfill(8) + while len(bits) >= 2: + yield bits[0:2] + bits = bits[2:] + +def main(fin, fout): + + bits = "" + + for p in pairs(fin): + if p == "11" or p == "00": + continue + bits += p[0] + if len(bits) == 8: + fout.write(chr(int(bits, 2))) + bits = "" + + +if __name__=="__main__": + if len(sys.argv) == 1: + fin = sys.stdin + fout = sys.stdout + elif len(sys.argv) == 3: + fin = open(sys.argv[1], 'r') + fout = open(sys.argv[2], 'w') + print "working..." + else: + print "ERROR: wrong number of arguments (in_file + out_file OR none)" + + main(fin, fout) + fin.close() + fout.close() |