Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Mainnet nodes with incoming connections unexpected shutdown with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) #4826

Closed
SmaugPool opened this issue Jan 22, 2023 · 67 comments
Labels
comp: ledger type: bug Something is not working type: regression A feature that worked before stoped working user type: external Created by an external user

Comments

@SmaugPool
Copy link

SmaugPool commented Jan 22, 2023

External
External

Area
cardano-node exception leading to shutdown

Summary
All my public nodes with incoming connections (active block producer and relays) shut down unexpectedly on 2022 January 22 at 00:09:01 UTC following the following fatal exception:

janv. 22 01:09:01 de cardano-node-1.35.4[24590]: {"app":[],"at":"2023-01-22T00:09:01.24Z","data":{"immtip":{"headerHash":"fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e6>
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: cardano-node-1.35.4: ExceptionInLinkedThread "ThreadId 165" Failure in Data.Map.balanceR
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: CallStack (from HasCallStack):
janv. 22 01:09:01 de cardano-node-1.35.4[24590]:   error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal

(time in UTC+1 above)

Some other operators confirmed this also happened to some of their nodes.

Steps to reproduce
No idea yet.

Expected behavior
No exception is expected in cardano-node.

System info (please complete the following information):

  • OS Name: Ubuntu
  • OS Version 20.04
  • Node version
cardano-node 1.35.4 - linux-x86_64 - ghc-8.10
git rev ebc7be471b30e5931b35f9bbc236d21c375b91bb
  • CLI version
cardano-cli 1.35.4 - linux-x86_64 - ghc-8.10
git rev ebc7be471b30e5931b35f9bbc236d21c375b91bb

Screenshots and attachments
Previous logs (UTC+1):

janv. 22 01:09:01 de cardano-node-1.35.4[24590]: {"app":[],"at":"2023-01-22T00:09:01.22Z","data":{"block":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667@82779850","kind":"TraceAddBlockEvent.AddBlockValidation.ValidCandidate"},"env":"1.35.4:ebc7b","host":"de","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"24590","sev":"Info","thread":"157"}
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: {"app":[],"at":"2023-01-22T00:09:01.22Z","data":{"chainLengthDelta":1,"kind":"TraceAddBlockEvent.AddedToCurrentChain","newtip":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667@82779850"},"env":"1.35.4:ebc7b","host":"de","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"24590","sev":"Notice","thread":"157"}
janv. 22 01:09:01 de cardano-node-1.35.4[24590]: Shutting down..

Additional context
All my nodes without incoming connections (just outgoing ones) were not affected.

@SmaugPool SmaugPool added the type: bug Something is not working label Jan 22, 2023
@rdlrt
Copy link

rdlrt commented Jan 22, 2023

Many SPOs are reporting the same on SPO workgroup (node versions across 1.35.3 and 1.35.4). Only nodes that were not publicly available to connect (thus, not receiving all transactions) survived

@AndrewWestberg
Copy link

7-minute gap in my logs.

{"app":[],"at":"2023-01-22T00:09:01.59Z","data":{"kind":"DiffusionErrored","path":"ExceptionInLinkedThread \"ThreadId 214\" Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n  error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal"},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.DiffusionInitializationTracer"],"pid":"1670822","sev":"Info","thread":"16"}
{"app":[],"at":"2023-01-22T00:09:01.59Z","data":{"kind":"TraceImmutableDBEvent.DBClosed"},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1670822","sev":"Info","thread":"16"}
{"app":[],"at":"2023-01-22T00:09:01.59Z","data":{"immtip":{"headerHash":"fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf","kind":"BlockPoint","slot":82736539},"kind":"TraceOpenEvent.ClosedDB","tip":{"headerHash":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667","kind":"BlockPoint","slot":82779850}},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"1670822","sev":"Info","thread":"16"}
{"app":[],"at":"2023-01-22T00:09:08.41Z","data":{"kind":"LogMessage","message":"Byron; Shelley"},"env":"1.35.4:8bf17","host":"handy","loc":null,"msg":"","ns":["cardano.node.basicInfo.protocol"],"pid":"2149443","sev":"Notice","thread":"16"}

@SmaugPool
Copy link
Author

Network synchronization and block height alignment from pooltool.io (https://pooltool.io/networkhealth):

image

image

@renesecur
Copy link

We saw the same. Last block to come in was 8300568. As it came in, the nodes crashed.

@nalyd88
Copy link

nalyd88 commented Jan 22, 2023

All our active nodes (mix of cloud and baremetal running both versions 1.35.3 and 1.35.4) went down. Only one node that had no incoming connections did not have the error.

Looking for the error message we found its from here so not a node exception.
https://hackage.haskell.org/package/containers-0.6.2.1/docs/src/Data.Map.Internal.html
image

@SmaugPool SmaugPool changed the title Lots of nodes crashed with error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal Mainnet nodes with incoming connections crashed with error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal Jan 22, 2023
@SmaugPool SmaugPool changed the title Mainnet nodes with incoming connections crashed with error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal Mainnet nodes with incoming connections crashed with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) Jan 22, 2023
@SmaugPool SmaugPool changed the title Mainnet nodes with incoming connections crashed with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) [BUG] Mainnet nodes with incoming connections crashed with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) Jan 22, 2023
@lead-pool
Copy link

lead-pool commented Jan 22, 2023

Same error too - all nodes restarted...
All running 1.35.4 - combination of Bare Metal and Cloud running across multiple geographical locations

@SmaugPool SmaugPool changed the title [BUG] Mainnet nodes with incoming connections crashed with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) [BUG] Public mainnet nodes with incoming connections crashed with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) Jan 22, 2023
@SmaugPool SmaugPool changed the title [BUG] Public mainnet nodes with incoming connections crashed with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) [BUG] Mainnet nodes with incoming connections crashed with Failure in Data.Map.balanceR (error, called at src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1-EiES0HFUZ8PBGNrpVjoYRF:Data.Map.Internal) Jan 22, 2023
@lupsya
Copy link

lupsya commented Jan 22, 2023

Can confirm the same, all nodes restarted at the same time that was reported here.
Using both versions 1.35.3 & 1.35.4. Ubuntu 20.04

@WHITECardano
Copy link

Same here

@cloudstake
Copy link

Ditto here

@leo42
Copy link

leo42 commented Jan 22, 2023

On initial inspection this seems to be the offending transaction

https://cardanoscan.io/transaction/5d21b0eb26ba772ec85c2db09311005815c89140ee7bf894fa36c0a6d71b89c1?tab=collateral

the block it was in 95050 fails to register on almost all Nodes, seems like they all die as soon as they see the block.

The Collaterals are consumed, indicating the the TX failed to execute.

I theorize that the Redeemer had some sort of runway process happen, causing all nodes that tied to process it to shut down.

@woodkm
Copy link

woodkm commented Jan 22, 2023

Just confirming saw the same thing as you all

@MUEN718
Copy link

MUEN718 commented Jan 22, 2023

Same as above. All nodes have been restarted.

@reqlez
Copy link

reqlez commented Jan 22, 2023

Yup, as most reported. This is from my FreeBSD nodes:

error came in:

{"app":[],"at":"2023-01-22T00:08:48.96Z","data":{"connectionHandler":{"command":"ShutdownPeer","context":"InboundError","kind":"Error","reason":"Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal"}

Then eventually node got shutdown:

{"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"38309"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"35330"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"50601"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"42620"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"50068"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"45558"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"ConnectionManagerCounters","state":{"duplex":0,"fullDuplex":0,"inbound":0,"outbound":0,"unidirectional":0}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ConnectionManager"],"pid":"778","sev":"Info","thread":"50672"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"DiffusionErrored","path":"ExceptionInLinkedThread \"ThreadId 46\" Failure in Data.Map.balanceR\nCallStack (from HasCallStack):\n error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal"},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.DiffusionInitializationTracer"],"pid":"778","sev":"Info","thread":"6"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"kind":"TraceImmutableDBEvent.DBClosed"},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"778","sev":"Info","thread":"6"} {"app":[],"at":"2023-01-22T00:09:01.42Z","data":{"immtip":{"headerHash":"fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf","kind":"BlockPoint","slot":82736539},"kind":"TraceOpenEvent.ClosedDB","tip":{"headerHash":"77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667","kind":"BlockPoint","slot":82779850}},"env":"1.35.4:ebc7b","host":"adarelay","loc":null,"msg":"","ns":["cardano.node.ChainDB"],"pid":"778","sev":"Info","thread":"6"}

@JaredCorduan
Copy link
Contributor

The Collaterals are consumed, indicating the the TX failed to execute.

@leo42 - what about the cardano-scan output makes you think that the collateral was consumed? collateral is only consumed if a transaction is successfully processed, if it contains at least one failing plutus script, and if the transaction is marked as expected to have a failed script.

if you happen to have the CBOR for this transaction that would speed up my investigation

@leo42
Copy link

leo42 commented Jan 22, 2023

@JaredCorduan I Unfortunately do not have the CBOR.

I scanned all the TXs in the block that seems to have caused the stall. according to Cardano-scan 3 collateral inputs where consumed and one output was created. it registered total collateral as 1.25A that seems to be the amount missing from the output. Since ADA was substracted from the collateral output I assumed that indicates a failed script execution.

@JaredCorduan
Copy link
Contributor

I scanned all the TXs in the block that seems to have caused the stall. according to Cardano-scan 3 collateral inputs where consumed and one output was created.

it's wasn't clear to me that this wasn't just the collateral inputs and collateral return listed in the tx.

@spireblockchain
Copy link

All nodes crashed per the above here as well

@snic-csp
Copy link

My Droperator relay, which didn't process the transaction didn't crash, but my main relay and BP did crash.

@solidsnakedev
Copy link

Same here:
[0c896b93:cardano.node.DiffusionInitializationTracer:Info:5] [2023-01-22 00:09:01.35 UTC] DiffusionErrored (ExceptionInLinkedThread "ThreadId 6116" Failure in Data.Map.balanceR
CallStack (from HasCallStack):
error, called at libraries/containers/containers/src/Data/Map/Internal.hs:4157:30 in containers-0.6.5.1:Data.Map.Internal)
[0c896b93:cardano.node.ChainDB:Info:5] [2023-01-22 00:09:01.38 UTC] Closed Immutable DB.
[0c896b93:cardano.node.ChainDB:Info:5] [2023-01-22 00:09:01.38 UTC] Closed db with immutable tip at fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e69305ccaf279ceaf at slot 82736539 and tip 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667 at slot 82779850

@SmaugPool
Copy link
Author

SmaugPool commented Jan 22, 2023

@JaredCorduan Here is the whole block 8300569 CBOR which I think contains the transaction discussed above:
Hash: 77e81e9305859032fea6a8e79f5936e96723a1620608d2bd0100c2421f5ef667

820685828a1a007ea8191a04ef1eca58204c3f8289307536bed7d7f3cf95f5952298d1b03bae200f89c7f37649d5be2d22582081dc0a2122bcf8af4a3580f5fc2d7382bed5142b790443106ff02a1e5359d3055820f41f8d7fe8ace8a3cf19eb19d30fe8cd92648032634e3bbbb8a272e56264aa3d825840a5034f9197a7382665a4320f7c5e0758058f78f5205b3bb11952c3b770dd468e7f96708e97a81483490b9433719f1064d5238ce86424ed8fee6e64c2ee6dfb5d585037312b5fc35286b5a3530a0adb6f5287a9e691bc3a29c98a8ff8de98fcdf7685b34b7626bb8d9bccd9cd78063ef00f6ff0ac91ad7c15c1d87e980d42804bd9e61c48edb2c55c189d8a41d66ca2981f0f19ad525820e260a0a92217e476b110327def00e06c9d93c61e52a5ce813c618b2a1acd317d8458207cacdd1b0805fb82c3deba1335b3004ccaec4aa16d779463b1b880792ed19031081902665840b05b5abcb91a26ce1f789b4868141afe7d442989005bb687de0cb3c19aebe2fe226bfa08255c8ec9ffa20ffb593bffb1d7a571cd55a80ef8b463d79aef9cd8048208005901c0479fb7daee20f2371e759f57d941da54183597fbfc10bec3b031effe0cc02ab394b7533311cc9d24b29ebc1b8aaa3e32c9f16c5c377e39922a7037278f317f0de80ebc8d3568f2804b04a0f49e84ad62f3d74a765b888f5a0cdaaeb18b876de8633b73ab17150b091ba52ba9d4dd08d7a7661c810457bdf8b3d345bcf5ddfd8b62293e66aa13ccce14a5e8592af663160fc7bd875b645e0527ac16d982b925ff425ba26855b3cb28dd374748311b39c63827b707fb81758e2c477c4139998b11d8de8ebc6a7e9e60d904eb2b6ea46fd96e63d230966e959e3194f898c523382b3720b5bba4b5e1c4b5d9ff5ee0b4f4466ee9d611a42bd144f78b982329eaf58e614bd19033b6922d59e92c9e6f7101dae8e17fe9c80b80bf814804a3927a0ff9c1359bddb06da9fa94c46325af50274fe0b374410bd645303f7a493d3ac2c2e2259c11f341bb3fcb1e005e41eeb12d7d611f0444168d840819ce4233eade4c0a3defa3452dd8177e23a4be4a9f013c96f56be4b18d961cc34fd022f7193dd9eace6f23d67fb3ccec62b1106057ce7e7e75e672c3652fedddab72eb5f507ebd0fd562f09b5a545a078fc3f305f4d8e315961456f1a1fb54f63d8bc1a459b8dbee8ba6008382582071aea0ddb398a505c12b295019015eb946bfc9e6c16cb346663571311d7de0d10a825820e9927e476f18e689dbd203add9c47d0451c12e9b2dd98fd81a1854605e725d0f0a82582046ab163394ed0bf3ae8b3ae0d7cf5781ee0e3894ef53c01c5f4af27d37027bed04018d835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e30333437015820b47b821b9bb3ad17fc017cbfb9b95491e27367986b6fa7534c793869a85c7f9d835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3137373601582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3233333301582078051658f6a4a6a0d0e2c4695d5ad175926bfe07e93c66169693755de393397a835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3236353501582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3238343601582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33373932015820af30f8e2a25d329a88af6e7a2fc2efd9a71ef0b8de3c0ef3e2d236e6e52da151835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33333539015820911325e74e109dcbc49155de12062b826c64489e7e7f8d414c488e8e8bf77746835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e3332323501582086f33483c730e69f629594ce5b62906e7c32130198a15e29b7a4f47b9205222f835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33303932015820b47b821b9bb3ad17fc017cbfb9b95491e27367986b6fa7534c793869a85c7f9d835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013fe20a1581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a14a48616c69656e33303832015820bd54a0d500e848f390d870fb4d43c78d6047f73459bd013a7a56ef18ef05c4c1825839015e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479d746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8821a0032d62ea8581c1f362a4df39f451401e44fee30f27eb39712d66aae375f539be94ed6aa4c546865496c69616431353130014c546865496c69616433313239014c546865496c69616433373130014c546865496c69616434303039014c546865496c69616434343439014e5468654f64797373657931333137014e5468654f64797373657932323336014e5468654f64797373657932363633014e5468654f64797373657933343731014e5468654f6479737365793433313901581c21b7da6aa32387769a00c1f0ce17db86f75b213281d79ff6b158c91fa14c44724a656b796c6c454d575501581c27d4e0b1da659588e68bf785ba932db5243503a22329a8d43a0d07bfa1514e4d4b526174434e4654436f6e3932383101581c2b7f24375a4652644e39d1792f848d86a1eb64a8bc17195471c7e682a14f4f6c6976657254776973743039363601581c2d5937400e98424f74d5e7e11b1e65361a61d8b9ae4202d67c669745a1524368726973746d61734361726f6c3135363301581c313e41b0f3f55637689d3980d3479920cb3bb0a5860d03cd49c17c11a156537061636550756773506f6b6572436c75623438373001581c372b988d54c5ae6468daf62a72d24837495ea92dc0a6e57f9e518101a44a48616c69656e33393836014a48616c69656e34333630014a48616c69656e34343233014a48616c69656e3531363201581c3956f6646614ee82a16b9e636d5cd3d54c09fe20389c9615f5b06c1ea1443232383201825839015e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479d746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed81a0976ddfa825839015e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479d746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed81a096cc649021a000a17b1031a04ef25af0758202ac6eec1f6b9bceb7157428dbda08b2203b502044db2a96adcd9f1ebd8ebe1a80b58205b8463333bbfbc55171a7dd82b4f00242d5bdaab849cfdc514831d60d7b0e132aa0082825820cc989c4eb81341e3127b49eafa7bfef376df30e1e38031de557a6f5f1f3c011f00825820e91385d484dbd884fc633e00cd8fae9bec6b060c517b943e30e49f60e501e1ff010182835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0014a67ca1581c43e85e3a386c533cf470632a863a8679681be6d4d901cdcbd0aa03a5a154436974697a656e4d6f636f737369436f6c6c6162015820e8d7a297b436989fd8c5b678923392becef927b557439ad1ed4fba681d1dbd3882583901f6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f23985a852c8207a9b898ec66ef06e899d9d9d8cd65351db02990343c91b71a0132c60d021a0004ab1c031a04ef25770758207de9a1ddd1c80cc8ef7e3ec2c4a69162dacb5075e1d120568a0ef3edfe8537de081a04ef1e6f0b5820bb47978eeceb1cd131a59e38d0949473773ddec8824dcacce25e1423320201a60d81825820e11b0a7608f2b7b20025e483ea6e272d64eace15c58e98b5b341000e3a7e883a040e81581cf6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f239812818258209a32459bd4ef6bbafdeb8cf3b909d0e3e2ec806e4cc6268529280b0fc1d06f5b00a600818258205e1e34c5b8cb271a119e7a887a739bffc494da6719ee9e92bd42033adb51f61f000183835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0013ed4aa1581c60b741294ee35c3de6f06a7060ff27422956f54d50339a4f445423e0a14942414c444f2331343501582022086be15c5a9536a85cdeedb634b94ba04134c4f5607ad2ff465bbe1dade6e8825839017fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc9c2a0dfbd123e1a81e4e4011cbf4b9641b5b6cacc295f0800dc15c215821a0015a306a2581c60b741294ee35c3de6f06a7060ff27422956f54d50339a4f445423e0a24942414c444f23313836014942414c444f2331393201581ce74862a09d17a9cb03174a6bd5fa305b8684475c4c36021591c606e0a2474450303134363501474450303334363401825839017fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc9c2a0dfbd123e1a81e4e4011cbf4b9641b5b6cacc295f0800dc15c2151a054c072a021a00037ae5031a04ef25b007582002a25941a12e1e11c2aae94d0ed458e9b181a990a09faa829c4c321dc856dff10b5820a7a597acf9df4d09aaf4556ab2bc7665f3fb3052217b8c94dcccca9e2ea4eb64a60082825820167078abb9cda8380efe50832365788fc2b966de4f44c9ef0fff4906ef7a426b008258201ad68e98e165e231831458c658e9dbb15f5534d3ffea1366dfdc537c2cb21fcf010182835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a00140ef6a1581c2058eda85ddd54815bf4483aeb7a294c54ecf83b89d1d642f0481a58a14b6164616e617574323134300158202fb70a4fbdc8b1a0dc1dfc44155a2d29fb0b01308261b4e4bee183dc4d4b477a8258390195786ad942c2e1fc828ee5bcf4eb7014eeb097903ce8ca562249d8a39c92279db35932b47093e87b26e80efe38e07145dc947eb47420e34a1a0393f45c021a00036461031a04ef25b10758209b14132b7cab844f4570a67c462c4076c1345ba141e0ef6a41b2c040522aa8830b5820b099eb7078ddb692ee1b2ed30f17e19ee3df0c4f4a8d19702cb757db738ee59ea50081825820ef2d642377c10578ad0fc7d76e636e28121fbf3427462b363c1d0b25736973dc0001818258390164176bffe94d117fe8016566cbad63a19d13b423d375a3b8e367a8af945bd5f92b23fe9a4baaad3f061f85c3921c2848f70501c6572b9e041a1485739e021a00060f2c031a5dd073c005a1581de1945bd5f92b23fe9a4baaad3f061f85c3921c2848f70501c6572b9e041a0438c51ea800848258200db2034bb5fe30d7c390252ac3eae0c2297abed4a0164483a531b595f3425eaf0182582045356cdb828cd897bd5d875bfd14c31d14836be5edacc51bd1c28ca4ca3590290382582083a2bbfb4e90bb778b1e2d1585585a51494c984a51ec867e3f1ef406fd7fa99a00825820948218b7457d258337b6bf2d502d031bf477f42bd2b974e4b6064975eac40d1d010d8182582083a2bbfb4e90bb778b1e2d1585585a51494c984a51ec867e3f1ef406fd7fa99a000184a2005839012ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c2011a07b9709aa2005839012ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c201821a00150bd0a1581c2f2e0404310c106e2a260e8eb5a7e43f00cff42c667489d30e179816a14d3136373636313732303030303001a200583901bfdf836deb9a938d3ded0e21bd58c8d8879326f2a0f0e8b10361ae70e084d5fe53388503b7a78297dda228cf3b8c0bc09ca2cf1c0579f05c01821a001e8480a1581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903aea1455041564941193a98a300583911e1317b152faac13426e6a83e06ff88a4d62cce3c1634ab0a5ec1330952563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c201821b000000dc7307db59a4581c0be55d262b29f564998ff81efe21bdc0022621c12f15af08d0f2ddb1a15820ebb0d0c5a7a131e77e19c55acbf453da183eab5384b1d8ff0068b0cb6c426b6101581c13aa2accf2e1561723aa26871e071fdf32c867cff7e7d50ad470d62fa1474d494e5357415001581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903aea14550415649411a022dc5cd581ce4214b7cce62ac6fbba385d164df48e157eae5863521b4b67ca71d86a15820ebb0d0c5a7a131e77e19c55acbf453da183eab5384b1d8ff0068b0cb6c426b611a00039f7e0282005820faf2c51faecb2960fdbacc97925e99a6a4f54e263d668afbba06e92effa1a576021a000ca375031a04ef22570e81581c2ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d0b58202a69ee1a423f8472b8541244dd2018a084ad6108fbfdbb13d968969198bd1d54075820b65e7e140dac503acf0a05a473d8a1c56b804d5876c6279ea4f4f22f213b00e2ab008682582007013a1698626af7553e5f32c0560eb5962fa5370a2320ba132a04ce6c9de34d00825820de8764c935314fc62f4586fa2eaecedfd16450fd7906065e475c8c396ff58a5901825820d2f5e39a6bc818b73d84b161f80463f762e47a9579ffef45115d116653e77c0a0182582078cee9bade4c49d1ae9d4c0df47cc6145150be8dff615f95c118140086f2a4af0782582078cee9bade4c49d1ae9d4c0df47cc6145150be8dff615f95c118140086f2a4af0382582078cee9bade4c49d1ae9d4c0df47cc6145150be8dff615f95c118140086f2a4af100183835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a00141fcca1581c23c38fc9e86e3bb87e016587da4f88757fc56a9dc1b37006b61af8dea14c52616973656e737535303435015820fdb8ac4699351854d66860c967be89fbba9a7e92b60edd03b374a337d51af5518258390186d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8261222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65821a00d6ebd8b824581c007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742a1435054431903e8581c0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401a145544f4b454e1911e7581c025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e6a14563625448431a000f4240581c179dd4922c947166ca8ce3321be2d9f23232c7c1f8e3dd91cca82b22b8254a4a756e6b696530303235014a4a756e6b696530313032014a4a756e6b696530313034014a4a756e6b696530313136014a4a756e6b696530313232014a4a756e6b696530313433014a4a756e6b696530313833014a4a756e6b696530323731014a4a756e6b696530333833014a4a756e6b696530363034014a4a756e6b696530363231014a4a756e6b696530363433014a4a756e6b696530383039014a4a756e6b696530383330014a4a756e6b696530383733014a4a756e6b696530393931014a4a756e6b696531313239014a4a756e6b696534333738014a4a756e6b696534333939014a4a756e6b696534343136014a4a756e6b696534343137014a4a756e6b696534343739014a4a756e6b696534353232014a4a756e6b696534353236014a4a756e6b696534353436014a4a756e6b696534353730014a4a756e6b696534363031014a4a756e6b696534363136014a4a756e6b696534373134014a4a756e6b696534373339014a4a756e6b696534383436014a4a756e6b696534393038014a4a756e6b696534393431014a4a756e6b696534393435014a4a756e6b696534393833014a4a756e6b696535303839014a4a756e6b69653531373801581c20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3ca14650524f5849451a000f4240581c23c38fc9e86e3bb87e016587da4f88757fc56a9dc1b37006b61af8dea24c52616973656e737536343636014c52616973656e73753832393801581c29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6a2434d494e1a000182ad444d494e741a000ea82c581c2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6aa1454249534f4e1a001e8480581c2bf8daf2f4d9b5c6529999376739d5058631f874f0b34b5d215ab0f5a144424e52471980fe581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a000186a0581c300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a6a14258540a581c35a3903cb18692c04d4ac51bfadf28a7a431bdc783ed4444702aef5ca44f466f787865645469636b6574303731014f466f787865645469636b6574303830014f466f787865645469636b6574313638014f466f787865645469636b657432323001581c3d41ef39b9f7cc5b10e5a963ab6b10ba429bffbac2166a5584b0bcd3a14b41646150756e6b3138333701581c41a255debdfe6c25eba00d82fb70e09bb3a12925b49ffddd95422455a14741646153776170192429581c443726318f7a3995686a79f65ed48fdb79aaf576aecaee354d8ba018a1444e49444f1832581c462d81b809c4cbc9039a536a6139393d640e3f54c563c0404ef92a5fa144574152491a004c4b40581c49fe136eb6a7f438fec3a2b1fedbc29ce2723c5248530b3b1f5fbde7a1444b49434b192fd0581c4fd0d998dc0700ca6ef89fafff05fbf523a3a25c1fc8314bf7e4d1c2a14647726f7774680a581c622a3ce680e464703220b955f1ce1bfd7fb1152450b1b62e9acba09eb8324c414441546f6f6e7a33313134014c414441546f6f6e7a33323037014c414441546f6f6e7a33323134014c414441546f6f6e7a33323236014c414441546f6f6e7a33333036014c414441546f6f6e7a33333539014c414441546f6f6e7a33343533014c414441546f6f6e7a33343636014c414441546f6f6e7a33373037014c414441546f6f6e7a33393334014c414441546f6f6e7a33393533014c414441546f6f6e7a33393635014c414441546f6f6e7a34303534014c414441546f6f6e7a34303838014c414441546f6f6e7a34313833014c414441546f6f6e7a34323032014c414441546f6f6e7a34323034014c414441546f6f6e7a34333330014c414441546f6f6e7a34353832014c414441546f6f6e7a34353931014c414441546f6f6e7a36323839014c414441546f6f6e7a36333230014c414441546f6f6e7a36333431014c414441546f6f6e7a36333638014c414441546f6f6e7a36333833014c414441546f6f6e7a36343130014c414441546f6f6e7a36343534014c414441546f6f6e7a36343839014c414441546f6f6e7a36353034014c414441546f6f6e7a36353834014c414441546f6f6e7a36353837014c414441546f6f6e7a36363238014c414441546f6f6e7a36363735014c414441546f6f6e7a36373739014c414441546f6f6e7a36383538014c414441546f6f6e7a36383834014c414441546f6f6e7a36393031014c414441546f6f6e7a36393039014c414441546f6f6e7a37303334014c414441546f6f6e7a37303337014c414441546f6f6e7a37303736014c414441546f6f6e7a37303836014c414441546f6f6e7a37313330014c414441546f6f6e7a37313333014c414441546f6f6e7a37313934014c414441546f6f6e7a37323136014c414441546f6f6e7a37323838014c414441546f6f6e7a37333336014c414441546f6f6e7a37333538014c414441546f6f6e7a3734343101581c64700329d616f20f4e83f2bc579513fca51646d47466a97f8fd1c229a14344495801581c650296faadaccf9bb9852678ce0e881c5c09f1a6da9cb7531b3c23bbb2444d656174183c4453616e640a45426f6e6573183c454d61676d610a4553746f6e650a46436f707065721446456e65726779186446477265656e73182848436f636f6e7574730a494c69676874776f6f64144a507269736d616c6561660a4b4672657368205761746572183c4b52756e6573202d205265640a4b546f786963205761737465144c52756e6573202d20426c75650a4d46756e67616c2053706f7265730a4e52756e6573202d204f72616e67650a4e52756e6573202d2059656c6c6f771828581c6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286a149524144546f6b656e73190907581c6c4be7b95bb28c88c76596cb51aa475e3c46d891f9071cbed83026faa14544454d4f4e190d95581c782c158a98aed3aa676d9c85117525dcf3acc5506a30a8d87369fbcba1454d6f6e65741a017d7840581c804f5544c1962a40546827cab750a88404dc7108c0f588b72964754fa1445659464915581c83e400c8c6540f6075d259a4fa0140ff4ddbd85f1ab14d7bda017a6ea1464d656c6f6f741b000000ac75290f00581c8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc3a1474c4f42535445521a001e8480581c8dec95dfd60b05de0c97a703e1d1baff330fb0f4cba86b92e005aa4aa14556696c76691959d8581c907d19ef832bdb11eda3ce29e656f691302a553a3902ccac8ce01646a146646f6730303701581c9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d77a14653554e4441451a0003a90f581c9cc83ea54377108dd022f18095040e8d5808a3061c4fe54f3fd64a7aa64f48616c6c6f7765656e417065363534015048616c6c6f7765656e41706533343431015048616c6c6f7765656e41706533373234015048616c6c6f7765656e41706534303534015048616c6c6f7765656e41706535363834015048616c6c6f7765656e4170653831313701581c9d86482511c8a49f21d5c83ee58a49e2926f70ac57dd73ed20404269a1457175657374197a76581c9dec676c8acc5f2791ac0c73741f92ae9d4b61c243fd9971b4cbc2a8a3581943617264616e6f50656e6775696e466163656f6666476f6c6401581943617264616e6f50656e6775696e4f6e654579656450696e6b01581a43617264616e6f50656e6775696e5061696e74436f6d6963494901581ca0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235a145484f534b591a000f4240581ca3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc5a1495745444e45534441591864581cdf432ac2d6c36c1cf3991bf5587aa9232aa66d80b7142aa9f75c6e01a1484d696c6f35383638018258390186d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8261222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f651a0034e3f6021a000ccf24031a04ef25b8075820af5c2ea9fed4879a1ba935a9a941b37013b70c86cecd9feac85a277d25fb0dfb0b5820154017affb4dc77f73f4c9b1064ac1445eed4b3c297c964466d5341ef5949a8f0d83825820d2f5e39a6bc818b73d84b161f80463f762e47a9579ffef45115d116653e77c0a018258204da5553548f770d59927f13982e7da77bd17c8f751c9c4b7b5eb29889275608f0182582007013a1698626af7553e5f32c0560eb5962fa5370a2320ba132a04ce6c9de34d010e81581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe826108258390186d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8261222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65821a0113489eb82a581c179dd4922c947166ca8ce3321be2d9f23232c7c1f8e3dd91cca82b22b84d4a4a756e6b696530353835014a4a756e6b696531313435014a4a756e6b696531313532014a4a756e6b696531343032014a4a756e6b696531343238014a4a756e6b696531343434014a4a756e6b696531343537014a4a756e6b696531343935014a4a756e6b696531343939014a4a756e6b696531363036014a4a756e6b696531363538014a4a756e6b696531373233014a4a756e6b696531373533014a4a756e6b696531373730014a4a756e6b696531373833014a4a756e6b696531373938014a4a756e6b696531383434014a4a756e6b696531383531014a4a756e6b696531383835014a4a756e6b696531393832014a4a756e6b696531393931014a4a756e6b696532313033014a4a756e6b696532313034014a4a756e6b696532313436014a4a756e6b696532313634014a4a756e6b696532313934014a4a756e6b696532313935014a4a756e6b696532323533014a4a756e6b696532323938014a4a756e6b696532333338014a4a756e6b696532343236014a4a756e6b696532343837014a4a756e6b696532353837014a4a756e6b696532353939014a4a756e6b696532373732014a4a756e6b696532373733014a4a756e6b696532373831014a4a756e6b696532383139014a4a756e6b696532383339014a4a756e6b696532383738014a4a756e6b696532383832014a4a756e6b696532383834014a4a756e6b696532383938014a4a756e6b696532393636014a4a756e6b696532393938014a4a756e6b696533303139014a4a756e6b696533303533014a4a756e6b696533313336014a4a756e6b696533313531014a4a756e6b696533323133014a4a756e6b696533323433014a4a756e6b696533353039014a4a756e6b696533353637014a4a756e6b696533353735014a4a756e6b696533353934014a4a756e6b696533363535014a4a756e6b696533363739014a4a756e6b696533363839014a4a756e6b696533383138014a4a756e6b696533383433014a4a756e6b696533393137014a4a756e6b696534303237014a4a756e6b696534313131014a4a756e6b696534323136014a4a756e6b696534323138014a4a756e6b696534323239014a4a756e6b696534333033014a4a756e6b696534363630014a4a756e6b696535313937014a4a756e6b696535323037014a4a756e6b696535323238014a4a756e6b696535323732014a4a756e6b696535333236014a4a756e6b696535333531014a4a756e6b696535343736014a4a756e6b696535383830014a4a756e6b69653538383201581c1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6a144574f4c461a1dcd6500581c1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07da14248491a000f4240581c1fc21c9c7df3deca16d699b2d54cf5aa477576adc45f7c1340138a19a1454341524453192608581c20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3ca14650524f5849451a000f4240581c23c38fc9e86e3bb87e016587da4f88757fc56a9dc1b37006b61af8dea24c52616973656e737536343636014c52616973656e73753832393801581c29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6a2434d494e1a000182ad444d494e741a000ea82c581c2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6aa1454249534f4e1a001e8480581c2bf8daf2f4d9b5c6529999376739d5058631f874f0b34b5d215ab0f5a144424e52471980fe581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a000186a0581c300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a6a14258540a581c3530c5d7ce77ea067c20bbca7688e18731c8f0c7de456a940eefa27ca14c436974697a656e313133363101581c35a3903cb18692c04d4ac51bfadf28a7a431bdc783ed4444702aef5ca44f466f787865645469636b6574303731014f466f787865645469636b6574303830014f466f787865645469636b6574313638014f466f787865645469636b657432323001581c3d41ef39b9f7cc5b10e5a963ab6b10ba429bffbac2166a5584b0bcd3a14b41646150756e6b3138333701581c41a255debdfe6c25eba00d82fb70e09bb3a12925b49ffddd95422455a14741646153776170192429581c443726318f7a3995686a79f65ed48fdb79aaf576aecaee354d8ba018a1444e49444f1832581c462d81b809c4cbc9039a536a6139393d640e3f54c563c0404ef92a5fa144574152491a004c4b40581c49fe136eb6a7f438fec3a2b1fedbc29ce2723c5248530b3b1f5fbde7a1444b49434b192fd0581c4fd0d998dc0700ca6ef89fafff05fbf523a3a25c1fc8314bf7e4d1c2a14647726f7774680a581c50f8758f5a5c9511a8d9b395e7d5df761bc7e46bcbcaf4d383bc1877a1444144414f1b0000000509b9ad80581c544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f0a14447524f5701581c622a3ce680e464703220b955f1ce1bfd7fb1152450b1b62e9acba09eb8454c414441546f6f6e7a30303939014c414441546f6f6e7a30313538014c414441546f6f6e7a30313935014c414441546f6f6e7a30323538014c414441546f6f6e7a30323832014c414441546f6f6e7a30323931014c414441546f6f6e7a30343231014c414441546f6f6e7a30343338014c414441546f6f6e7a30343836014c414441546f6f6e7a30343939014c414441546f6f6e7a30353239014c414441546f6f6e7a30353338014c414441546f6f6e7a30353637014c414441546f6f6e7a30363135014c414441546f6f6e7a30363238014c414441546f6f6e7a30363435014c414441546f6f6e7a30373831014c414441546f6f6e7a30373835014c414441546f6f6e7a30383737014c414441546f6f6e7a31303338014c414441546f6f6e7a31303633014c414441546f6f6e7a31323133014c414441546f6f6e7a31333436014c414441546f6f6e7a31333539014c414441546f6f6e7a31343530014c414441546f6f6e7a31343833014c414441546f6f6e7a31363337014c414441546f6f6e7a31363439014c414441546f6f6e7a31363539014c414441546f6f6e7a31373735014c414441546f6f6e7a31383034014c414441546f6f6e7a31383531014c414441546f6f6e7a31393736014c414441546f6f6e7a31393930014c414441546f6f6e7a32313032014c414441546f6f6e7a32313433014c414441546f6f6e7a32313531014c414441546f6f6e7a32313938014c414441546f6f6e7a32333430014c414441546f6f6e7a32333631014c414441546f6f6e7a32343933014c414441546f6f6e7a32353630014c414441546f6f6e7a32353633014c414441546f6f6e7a32353935014c414441546f6f6e7a32363538014c414441546f6f6e7a32373032014c414441546f6f6e7a32393932014c414441546f6f6e7a33303032014c414441546f6f6e7a33303939014c414441546f6f6e7a34363233014c414441546f6f6e7a34363431014c414441546f6f6e7a34373232014c414441546f6f6e7a34393331014c414441546f6f6e7a34393333014c414441546f6f6e7a34393339014c414441546f6f6e7a34393938014c414441546f6f6e7a35353032014c414441546f6f6e7a35353439014c414441546f6f6e7a35363235014c414441546f6f6e7a35363438014c414441546f6f6e7a35363639014c414441546f6f6e7a35373230014c414441546f6f6e7a35373430014c414441546f6f6e7a35383133014c414441546f6f6e7a35383335014c414441546f6f6e7a35393231014c414441546f6f6e7a36303830014c414441546f6f6e7a36303935014c414441546f6f6e7a3631303601581cac9998855c15efcc7dc5b44522d9cca6f1f0865c00350ad18b4bdf61a144474144411a22739480581caf2e27f580f7f08e93190a81f72462f153026d06450924726645891ba144445249501ab8c63f00581cafc910d7a306d20c12903979d4935ae4307241d03245743548e76783a14541534849421a3b9aca00581cb1066e840346478fbe01a7c278275c77929e5d5435d5650fcf963c7ba1534164614e617574546f5468654d6f6f6e35373401581cb1eb73a732247342724b85ca10f626b9494c69b6f5d21a2bd4052bf7a150544150316368696c6c696e673230323201581cb24a29b9c16d349df16d9b5553b119e399e46ae19d6150c1a843ef61a1466469646974731a02faf080581cb333a7235f9b9006c02152621c30c34cfd8ce7b32f7c450c9b2b341aa14c53703463334d336e3030323701581cb6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0a1581e436f726e75636f70696173205b76696120436861696e506f72742e696f5d190282581cb788fbee71a32d2efc5ee7d151f3917d99160f78fb1e41a1bbf80d8fa1494c454146544f4b454e1b00000061c9f36800581cb7c783f6304eddbdf8f0dece4715d63cb9f453be89d97c8fba155d57a1445245534908581cc68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a9a14444494253191388581cc88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260fa14444414e41190ed6581cccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9a15343617264616e6961466f756e646572426c756501581cd030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78a148436172646f67656f1901a4581cd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0a14a7370616365636f696e7303581cda8c30857834c6ae7203935b89278c532b3995245295456f993e1d24a1424c511857581cdb30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480aa144434c4150190392581cdca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfea144444f45581a0002c0ab581cf2fe9aafd2e5b3b00e2949a96d44a84d9f4d818d63945010a466a4aea14541554449541965c2581cf43a62fdc3965df486de8a0d32fe800963589c41b38946602a0dc535a144414749581a000f4240111a001336b612818258209a32459bd4ef6bbafdeb8cf3b909d0e3e2ec806e4cc6268529280b0fc1d06f5b00a60082825820ef8c3d0354099bff0e97f56e701c8d4d07581dd3e606d8976dba32e7cf1b27b6018258204eca4d15e9bf2844559fd94fdc0c2fb561575f94ef457715b28def56bff393ff010186835839119068a7a3f008803edac87af1619860f2cdcde40c26987325ace138ad81728e7ed4cf324e1323135e7e6d931f01e30792d9cdf17129cb806d821a0014a67ca1581cdac355946b4317530d9ec0cb142c63a4b624610786c2a32137d78e25a154616461706552616c65696768646542616c626f610158209071a2dcc4d3e2e1df9c486d11fec5c0a35f0015545130ac6079e23ec46c4b2d825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a003cf6eaae581c007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742a14350544319445c581c023cec350597bdf2a2b6945e62e0111d9808caf7a9353a2ab91e8beba150534f434945545932354c4d423138303701581c078eafce5cd7edafdf63900edef2c1ea759e77f30ca81d6bbdeec924a14579756d6d691a00049b26581c0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc15a14556695275531a000dec42581c13e3f9964fe386930ec178d12a43c96a7f5841270c2146fc509a9f3ea353436c61794e6174696f6e5069746368343037340154436c61794e6174696f6e506974636831393235320154436c61794e6174696f6e5069746368323738313401581c1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6a144574f4c461b00000001884006a5581c20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3ca14650524f5849451a005b8d80581c232ecdf81c3f06c2bccdac8e02530db924cb62ea1d3888faffc3d900a24643554237343301474355423130323001581c2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb63a14446495245190ada581c25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20ca147534f43494554591b0000000690a9adda581c29a8fb8318718bd756124f0c144f56d4b4579dc5edf2dd42d669ac61a44c6675726e697368357466434d014c6675726e697368496632796d014c6675726e69736858674a4872014c6675726e69736861616c795101581c2b8822f7799f325e278991a244e7715591945b1c2a3589cc76035ca9a147736372617463681a017d7840581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a0007a120581c300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a6a14258541846825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a0041e59cb2581c37b47fcaeb067582eb0b4230632633adffa7753481139b67cc8fe3cea1465045524e495318c8581c43206de9e07fbd36ce6c109b3d34637727233c58a0b38f1da00a9ccfa25050616e6461536f636965747931343734015050616e6461536f63696574793137333301581c4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58a145426c6f6f6d1a049ce510581c4cf268bd648f088ac9901bfa5a43f49610f7bdcae3a6eedc5e201fc3a144434f434f19c350581c4fd0d998dc0700ca6ef89fafff05fbf523a3a25c1fc8314bf7e4d1c2a14647726f777468190118581c544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f0a14447524f5706581c5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb2435a14661646f7369611a23c34600581c63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e5a1434b4f5a181e581c641f0571d02b45b868ac1c479fc8118c5be6744ec3d2c5e13bd888b6a1465a4f4d4249451903e8581c6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15fa14553545249501a000249f0581c6d244053668da40a9fa301ba7175f0a431656e49eb33867206277ad3a15244656d6f6e696163616c446569747930323401581c6ddd6503e0ab63538c77bd51f679b9ed84998af89901b01ce3dace88a14b5369636b4369747933333901581c73719bfda16e672605fda1e3f20824065585073499a7ce6ab55c2adfa1434742521850581c750b077ee1c771cd0ac953ae87044f2c2f50357d4881506bac25f367a24337323201443433373401581c7a7f0bddec60d2b273a7033b5df778850ebef5040f6e7324d0e6d3d7a14d4532355449434b4554424c554501581c8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc3a1474c4f42535445521a005b8d80581c8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b451a14542524f4f4d1a004c4b40581c8e1b8217ecfbac082e4d0f1a4df778614cd6d28e10412cf98a331566a147434142494e574c01825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a00428df8b1581c987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd2909037a1444d595448190ce4581ca0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235a145484f534b591a10bae61b581ca23836ef3b4d0ad3ed1c28bd30e754e208ae7ea0a23e809354d67e0da4443337353501443433373401443539343201443630323801581ca4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375ba14446495245190258581ca89568bb399d0cdc38367e47831c95186f5c79e58174e08a18232396a14a4554424643546f6b656e1a5acf5f44581caa036f84174000b81a71131007e45ee44c2d78159a55d19c514a77afa1444d4e4d4c1a11e1a300581cad1c1ed3a0bb6f83630ef052a31b71ba3287bf4bafa8370758f14d31a1445349434b1a0003d090581caf267bd857e9d78fdb5fa05e91a342907518e30b0211cdf2b9c7cd00a14f416e657461416e67656c733234333101581caf2e27f580f7f08e93190a81f72462f153026d06450924726645891ba144445249501b00000005042e5b1b581cb1eb73a732247342724b85ca10f626b9494c69b6f5d21a2bd4052bf7a150544150316368696c6c696e673230323205581cb6408f665a71750e622a3f6430f35a1a6d6cde0d0b6c41bc027c0356a14f50726f6a656374426f6f6b776f726d181c581cb6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0a1581e436f726e75636f70696173205b76696120436861696e506f72742e696f5d1a069d1ecb581cb788fbee71a32d2efc5ee7d151f3917d99160f78fb1e41a1bbf80d8fa1494c454146544f4b454e1b000001e8f1c10800581cbd30c07bed903332937dcf328e2bd6da5aec1e686c13e8c5f2c99e48a14b436c617970657a3231323301581cd01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a7a1444d595354190bb8581cd2442fa6d08c72811d4bccdb36d0cb35cb28f4db4c5793ef00aff5f1a149244652414354414c531b00000005d21dba00581cd3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c6a14450555252194204825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f821a002e3baaa8581cd4e087164acf8314f1203f0b0996f14908e2a199a296d065f14b8b09a25818636162696e343048696c6c5374726565744643333245353601581f636162696e31394c6f77657250656c6c69706172526f61644d49333147313601581cd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0a14a7370616365636f696e730a581cdac355946b4317530d9ec0cb142c63a4b624610786c2a32137d78e25a2536164617065416e67656c696e436174616c64690153616461706542726f64657269636b536d69746801581cdd5505a024a49a38528eb9a07cc1fee8e7620a2d1d25aee6d76697eaa44b6672616d65306f49323173014b6672616d6533327851676b014b6672616d65345662364246014b6672616d6534706a47367901581cde92f0fd9b5d83f813ca944f4d2c73dc6d300cda7eb078729ff984daa5443038333501443130323501443136313401443136343201443232383601581ce98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708da146414441464f581a00014244581cf43a62fdc3965df486de8a0d32fe800963589c41b38946602a0dc535a144414749581a3b9aca00581cf9300bebcc9a4d36b056ed19a3869795f5ac66da15a21694aa7268c6a147315f32755f373001825839012a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542f1a02662d3b021a00056c79031a04ef25bf0758204696d8ff35725095d80f5cc475cfe29715e6fcf264c0a4d205d778259edb11950b582060a030643c35ccbdd27ff842d0f8566b6f9fde93b5b7ecf10102c709ade7b17ba5008782582017a8d7c2f2417c7140c36a48909c556a7da011388da19603934cda7f4f016d28018258202e3af5b286654d031acecb8117d1e06c5fad2171af2196cf25800fc5eaf858ea01825820517c4c60358ec1380594b3e4f2a486bf4086a927a19c6fe1fd9e3f9f6f9f320f01825820517c4c60358ec1380594b3e4f2a486bf4086a927a19c6fe1fd9e3f9f6f9f320f02825820689f3c1748d26d1dbfbb8ba1d1fa3c423ac0bc9c941e1f3e23ddfaebb18a823d01825820bd634f85be15cb7b6ed51b731ca1c2bb5c744997b36f661b912d9989b82139d202825820de420ff3f9cd9cbc6c1a28afa5012f24bf5e3140759901f20bb2c4322280b8ac05018282584c82d818584283581cd36874ab2a8cfe6ab1863deac8272845e3d1c918bf4391f7df55c5aca101581e581cbe2051244aa98741ab85da152911843e18cd9472b0cd7acc7c515091001a170d28641a05f5e10082583901da43dd350f28970db95db3606b611afd483f9b53b5af6ba294abaca4616ed9b71d8a03190f32d8643accfaa974fc4f94686175eb643a5595821a07db26e2b829581c025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e6a14563625448431a00030d40581c1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6a144574f4c461b000000027528fee3581c1ac239901bcc3ebddea93bb4bc5f06dbb1a257ffe3afea00ced85773a14f4c656f2042616e6a6f20233036343401581c1f362a4df39f451401e44fee30f27eb39712d66aae375f539be94ed6a94c546865496c69616432333330014c546865496c69616434343936014c546865496c69616434363835014c546865496c69616434373430014e5468654f64797373657930333134014e5468654f64797373657930383436014e5468654f64797373657931373631014e5468654f64797373657932313231014e5468654f6479737365793239383701581c1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07da14248491a00895440581c2b8822f7799f325e278991a244e7715591945b1c2a3589cc76035ca9a147736372617463681a02faf080581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a05f767a0581c3c2cfd4f1ad33678039cfd0347cca8df363c710067d739624218abc0a351576f726c647357697468696e30353230320151576f726c647357697468696e30353433310151576f726c647357697468696e303739383201581c3ebee6a9c50397fbd5f1d73035ffacd874a877d14bb00cdfbeea07dda34b4d61636265746830333033014b4d61636265746830333632014b4d6163626574683037343201581c406cd2082f4ca575fdec9995202821ea101f3b9be03c19829b1cace3a14e53706c6974576f726c643033313701581c4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bda146546f6b68756e05581c477cec772adb1466b301fb8161f505aa66ed1ee8d69d3e7984256a43a155477574656e62657267204269626c6520233038393901581c5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9a1434647431832581c547ceed647f57e64dc40a29b16be4f36b0d38b5aa3cd7afb286fc094a1476262486f736b79191388581c59babeb2b2bb2f4ecfc1cef94634157209eff89d569b72d2ad17d519a14f41746f6d6963585374616c6531393901581c59eeff2acc44e2c6ce85f1e462ef78d137a023edb1e46c877763791aa24e353043617264616e6f48696c6c730151313035436c756d73794372657363656e7401581c7caf1ea0c6a09e68127de5396efefef45718018d5703604ad803dee0a14557415445521845581c8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc3a1474c4f42535445521a00989680581c89fa6dc66a24799ccaee43a3a16930bb045a8152fdf2a2642034774fa84d506c616e657450616c7a313139014e506c616e657450616c7a31303239014e506c616e657450616c7a31323734014e506c616e657450616c7a34323836014e506c616e657450616c7a37363532014e506c616e657450616c7a38303236014e506c616e657450616c7a38373330014f506c616e657450616c7a313034303501581c8cea09a81ddf9707fd2c80f544d984bd0e8f16898bba852c53bc1048a3474c41434945373001494c414349453439313501494c414349453439343801581c8f80ebfaf62a8c33ae2adf047572604c74db8bc1daba2b43f9a65635a15243617264616e6f57617272696f723132303901581c9c54bb728df9847b0358c84c942500646326a1b581a2b8c43689d220a14c5374726970706572436f696e0a581ca0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235a145484f534b591a0280de80581ca02684b9ece84a4341585d2ae813163356ba0ca950091d1935bdb905b822514855534b59484f53544c4552303032333801514855534b59484f53544c4552303034393201514855534b59484f53544c4552303130343901514855534b59484f53544c4552303138303701514855534b59484f53544c4552303230323001514855534b59484f53544c4552303232383701514855534b59484f53544c4552303236343901514855534b59484f53544c4552303333343501514855534b59484f53544c4552303334323101514855534b59484f53544c4552303430333601514855534b59484f53544c4552303434323101514855534b59484f53544c4552303530333201514855534b59484f53544c4552303534303701514855534b59484f53544c4552303633313101514855534b59484f53544c4552303638353901514855534b59484f53544c4552303832313101514855534b59484f53544c4552303835373801514855534b59484f53544c4552303837373101514855534b59484f53544c4552303838323601514855534b59484f53544c4552303838393201514855534b59484f53544c4552303938333001514855534b59484f53544c4552313034333701514855534b59484f53544c4552313036323501514855534b59484f53544c4552313038313201514855534b59484f53544c4552313131363801514855534b59484f53544c4552313232373701514855534b59484f53544c4552313334333401514855534b59484f53544c4552313339313901514855534b59484f53544c4552313732363501514855534b59484f53544c4552313738343501514855534b59484f53544c4552313831373101514855534b59484f53544c4552313832313301514855534b59484f53544c4552313834363601514855534b59484f53544c4552313935383201581ca09278c524f157eec21b6c590e57022e8acf1980035c94018817490ea14c47756e49676e69746572563201581ca4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375ba144464952451906a4581caa21582ec1ce92f2c21ac61c8b5bbcdaadad0efa59aca5d64fba22aba24e446f6e517569786f746530333132014e446f6e517569786f74653038343601581cafc910d7a306d20c12903979d4935ae4307241d03245743548e76783a14541534849421a3b9aca00581cb0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa40a144515549441818581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757aa145634e4554411864581cb788fbee71a32d2efc5ee7d151f3917d99160f78fb1e41a1bbf80d8fa1494c454146544f4b454e1ada351840581cb7c783f6304eddbdf8f0dece4715d63cb9f453be89d97c8fba155d57a144524553491832581cbdcb9099cd8b233fbaab9bda2232d11ef366d41a2af20a2a59ae4df9a44f54686552657075626c696330373635014f54686552657075626c696330393031014f54686552657075626c696332353830014f54686552657075626c69633334343501581cc5d5ba875f31502ad529c800865d9461d742713d37c32ab46ac7af1da25154726f7474657273585374616c65313735015154726f7474657273585374616c6531383001581ccea514eda3ce871c316fdb1f0931baa678d2fa5d373a109dbbcc905ea14b4e6562756c61536572756d01581cd030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78a148436172646f67656f1909d8581cd3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bba144424541471901f4581cd44cba92bdb8e40360c3979cdc2cf289cdc3aed44e4f3f2bf8aa6defa94948756d626974313433014948756d626974323333014948756d626974373131014a48756d62697434303138014a48756d62697435353235014a48756d62697435383238014a48756d62697437343232014a48756d62697439393334014a48756d6269743939373101581cd5e6bf0500378d4f0da4e8dde6becec7621cd8cbf5cbb9b87013d4cca14c53706163654275643134313501581cd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0a14a7370616365636f696e7309581cf0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9aa548636174616c696e61014c626c756562697264736e6674014d63687269737469616e70617069014e706f6c6c69746f73617a756c6573014f70616a617269746f73617a756c657301021a0004c015031a04ef72810f01a400818258206b666007edd8c6609c68770ed9fce31a27d6c2e635422af4650b2ced39578e4c01018282584c82d818584283581c70225bdbdce45b20b48edafccf1cda33d2a5fda595208a29b25c282ca101581e581c30b2b079d274132b50e2122c26d51b53ae1dc4a2eca0272bfc706a30001a4f2617521a0f5a4c5282581d610237be10f5ec0ccb6cbd226b112f0940fed44ae0466d9b53962ba8b11a1ff02004021a00029cd5031a04ef2c7fa5008182582085532ac45b26642fe26e876f5d3261756498b22396265495334f7954de42896c000181825839016875a2f25e38dd8632014ead18aca87c8602a4cb729adb1eb4aed987b27d00c64dafd3b3f6867c32c54fc81e71618dc148ed8b269df2933b1a127550f1021a00060f2c031a5dd073c005a1581de1b27d00c64dafd3b3f6867c32c54fc81e71618dc148ed8b269df2933b1a004daff58ba2008182582030b39a0b73cc7a15da844fb496aef66d5df05fea80ab4a5048d1ff72997517c25840663e8904f56fb6e708061a528ebb28d031ab5079ab34acadf9ab3b176340d001f09a94e629787f495e46546199ff9059e8911938b10d8a5750beb0ef0c47730a049fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00d59f80ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a003d0900ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a0ad91980ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a006acfc0ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a001e8480ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a056c8cc0ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00401640ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a00124f80ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a03412140ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00602160ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a001b7740ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a04e1b1e0ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a01406f40ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a005b8d80ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a1045a640ffffffffd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f24799fd8799fd8799fd8799f581cfc5531c59fdfe3728f5bbc2134169fbe7e9d6c6070f700bc5ae1d723ffd8799fd8799fd8799f581cf08b03bd8cef84901880c2cf049be3688c3b396351f1cf7adf02dd84ffffffffa140d8799f00a1401a00557300ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a00186a00ffffd8799fd8799fd8799f581c5e51adb6f987fd3caf04dbda6dc427ac02b0e6cfcc991f22411f2479ffd8799fd8799fd8799f581cd746ba2a6023099b35593d8fec0339e6185dd7c348fa3bcf5b731ed8ffffffffa140d8799f00a1401a0456d700ffffffffffa30083825820429f53250ffdee0269c611ebacb093c84a7a32f9839ae9e19b9d353be44bc98e584034018ab8d13d99e9eb6f510a14c013f6111166b05e2d8fa527902df2f9bb4c7c9a72cdb88ad92dc82839115aa8d8d02c65ac97e0a835bb09de23fd4c9de43e0c825820ad50cc2e2d22f4e1f33e03ea40af93be6f37c794ec078bee441d994f7f42344d5840208d6d1fea7d9f46f3e9d59587bc7647b21742a411b88248fd871636e5b22b6f05418d625fffa4dbaea19f4176c3213877dfcd1db813eccc9a3e5fa6f2d8f90b8258202ea811e9f1bd0fd1ce4af3df6dc1c00ca3e6c3173a78bdf0816601aacd619fa25840501ac0c7f55cd633ba323a590265b725e0fc2e1d1e0b8205d6af0ec9882d8ac73650c93be4e4ac9950ab449bb07c726810d41b679177347aa4bd9a72a753e60e049fd8799f581cf6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f23989fd8799fd8799fd8799f581cda7eee6221b9daf9d842335134f1ff6d1da9a0996b912017e725bf2bffd8799fd8799fd8799f581cc4978c13df7c4b398809ff9b5bda1b136f82509218710eec5a8d0740ffffffffa140d8799f00a1401a0073f780ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a002e6300ffffd8799fd8799fd8799f581cf6289107b3e5fcc963a43b7f10018d381967c8a5e61ceb01b76f2398ffd8799fd8799fd8799f581c5a852c8207a9b898ec66ef06e899d9d9d8cd65351db02990343c91b7ffffffffa140d8799f00a1401a086cfb80ffffffffff0581840000d87980821a000cef961a10a1c140a20081825820552dceaed883096fd940fde949a5741de6419d8efe7203c2b9ac36c37cd8fdb658401f25f2ef01401fc4a8dfc4427ac11d1f1cea5bc0cc8374aed7eb7b9c165c83d3fdc005a156b06a2931d4b379dc5d7ebe041eb3c777d97cfc2b2bbc671002860f049fd8799f581c7fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc99fd8799fd8799fd8799f581c18999a3755f3e34430acdc20e55007afed7f2f23cce0d66d5123f2b0ffd8799fd8799fd8799f581cde9c0f0d70433e27bba63696693dc9d8fdf2c6dd9e0d426657ac26c7ffffffffa140d8799f00a1401a00493e00ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a00249f00ffffd8799fd8799fd8799f581c7fb85d6a4ea64ed3c4c0c93ad2c2ad17f2e589ef65dca87725109cc9ffd8799fd8799fd8799f581cc2a0dfbd123e1a81e4e4011cbf4b9641b5b6cacc295f0800dc15c215ffffffffa140d8799f00a1401a06b93100ffffffffffa200818258203120d4ade68902de695a0841fc3d0491ff93bc385c98742f06e4bd2fbb6e4c7158406779cc4ef678907def997121bafad835849a2ff52a4cbaec36ee94e801997e375a7a5f6a0e3e487f0469a5a68388a62eb628f86d0956bb36884afc35569c160c049fd8799f581c95786ad942c2e1fc828ee5bcf4eb7014eeb097903ce8ca562249d8a39fd8799fd8799fd8799f581c6d2c8da77ff5f9fe6580657ff69ee3c68b0b0b46aa12955bee6c0ae5ffd8799fd8799fd8799f581cf6d2b89d6c9e60d7d9e19224770a6c754da6fcecb35c817904939efdffffffffa140d8799f00a1401a005f5e10ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a002625a0ffffd8799fd8799fd8799f581c95786ad942c2e1fc828ee5bcf4eb7014eeb097903ce8ca562249d8a3ffd8799fd8799fd8799f581c9c92279db35932b47093e87b26e80efe38e07145dc947eb47420e34affffffffa140d8799f00a1401a06edd590ffffffffffa100828258203ad533be71a9358417e926499199f1126110c8f7c614a88f4df7472a93d6062058407cbd0ae25dc5ca135ce21694722fa8e3f30c4eedf68e01f1c874a31318497773a05b826c9ee434ffab4d9f58febf11ab0460f28f5aa1e0fd94b85428fc2d6f078258200a829a50ac0f877c7d703392291d260158eab7a84b4004a651c269c3eb3d391e5840fb4ed0860d1aaab93c13c440aaac180a84718230b99bbc9051fb25dbd8ffe0dc2bc643f83b90e5a93952402eefbd27d01b6d4b32214638af6799c3dd8ab2d202a40081825820d2beea31ad3bbc59b0d50a84a9395e9f55dca859ac7a78da7b0c1ea946fdd3635840e0338ab5a47b98e3befa7c572e511416d783ab247754152606284e29ce8c6a6b78eca76cec33b8e9a2d9c1b537f4d38e7bc118458634e8d2d96de7ec3d82330f038259014f59014c01000032323232323232322223232325333009300e30070021323233533300b3370e9000180480109118011bae30100031225001232533300d3300e22533301300114a02a66601e66ebcc04800400c5288980118070009bac3010300c300c300c300c300c300c300c007149858dd48008b18060009baa300c300b3754601860166ea80184ccccc0288894ccc04000440084c8c94ccc038cd4ccc038c04cc030008488c008dd718098018912800919b8f0014891ce1317b152faac13426e6a83e06ff88a4d62cce3c1634ab0a5ec133090014a0266008444a00226600a446004602600a601a00626600a008601a006601e0026ea8c03cc038dd5180798071baa300f300b300e3754601e00244a0026eb0c03000c92616300a001375400660106ea8c024c020dd5000aab9d5744ae688c8c0088cc0080080048c0088cc00800800555cf2ba15573e6e1d200201591e1b591e1801000032323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232222323232533533355333573460cc0042646424446600200a0086eb4d5d09aba25002375a6ae85400454ccd5cd1832801099091118010021bad357426aae7800c54ccd5cd1832001099190911198018028021bad357426ae894008c0ccd5d0a80082e1119191a827911111a80391191111aa99a9824806108008b1119191a9a9a80103102d91191919191919191aa99a982a89119982d91299a99820a8071a80103409980200100088008008020b03c9111919191919191919191919191982a299a8050a99aa8100999ab9a3094013303a307908101330820106700b06706e0060063305433355307908101305c05a305953353502b2233500206e2071210011635014222222207a33054353501422208e0122350012322533355333500a2153335004215333500c2130054984c011261533350052130054984c0112603c04f15333500b2130044984c00d261533350042130044984c00d2603b153335003205003a04f153335003215333500b2130044984c00d261533350042130044984c00d2603b04e15333500a2130034984c009261533350032130034984c0092603a153350010700820108201070253335002215333500a21533350042133303a03b00200116161604e15333500921533350032133303903a00200116161604d04e33054330500153306f00b02733054330533306301602548008cc150cc14ccc18c02c0952002330543305333063001010002330543333084012222533500315335002135001222223305d3305c0053306c01402b3305d3305c0043306c01402a3305d3305c00300c3305d3305c0023306c0140193305c001304800d0910122153350041622153350071622153350081622133300c003001323232323232323533307d0050070272222225335330743305100248000cc1440052000161333335003235500b2222223501d222223501b22235051222223232323232323232323253353308b013308b013306e00848000cc1b802920003308b013306d00201e3308b0153353306e00a00315335330870100e07013308b013308a013309a010110703370066e0402800c060cc22804cc2680404411c0084cc22c04cc22804cc268040441c0060cc22c04cc22804cc2680404411c008cc22804cdc08050019984d008088070a99a998370041a802055008a99a99843808078380998458099845009984d0080883819b80337020106a008154020306611402661340202208e00426611602661140266134020220e003066116026611402661340202208e004661140266e04020d40102a804cc2680404403c4cc22c04cc22804cc2680404411c008cc22804cc268040441c0060cc22c04cc20c04048070cc2080404006c4c8c8c8ccccc2c80400c008cdc019b800180050013370002e002a66a0082605466e0800c00840594cd400c4cccc0a005406406005c520003370002e00866e0005cd40102a80458c27c04028d40082a404d40042a404d54cd54ccd5cd19b8900148000278044c94ccd5cd19b890014800027c044c94ccd5cd19b8900148000280044c28404ccc2ec0400c0080054ccd5cd19b8900400610041006350020ad0121001160b901350010b0015333573466e2400400c54ccd5cd19b880010031330a8010023370666e080080400444cc2a0040080104cc2a004cdc199b820040110100043370666e080040380414cd4cc1fc01c1a04cdc0998490081100399b80011010133092010220073370666e080040300354cd4cc1f40101984cdc0998480081000219b8000f00e133090010200042235500c2222223501e222223501c222350522222232323232323232323253353308b013306e00748000cc22c04cc1b4008074cc22c04cc22c04cc22804cc2680404011c008cc22804cc268040401c005ccc22c04cc20c0404406ccc2080403c0684c8c8c8c8ccccc2cc0400c008cdc019b800180060013370002e002a66a00a2605666e0800c00840594cd40104cccc0a405406406005c52000350020b301350010b60153353330690870100e01e1330ae013370002c00e02a26615c0202c66e0005401c58c27c04024cdc199b820010123370200400266604400600266e0ccdc0981219b803370400400466e08cdc119b82337049004241941e90680780200198600080199b824801120ca0f350050a70130be01001350030a60153353308001001069133702661260204600266e000440404cc24c0408c004d400428804d54cd4ccc1801f80140544ccc2d0040140340304ccc2d004010030034888d400c88ccc2e40401401000c88d54030888888d407888888d4070888d414888888c8c8c8c94cd4cc21804cc1a4009200033086013306800101833086015335330820101906b13308501330950100b0193370000202426610c026610a026612a020160320026610a026612a020160d60246610c02660fc01802c660fa01402a2a66a6660c8104020120322666661540266e00044008cdc08080008078070068999998550099b810110013370002000401e01c01a2c66603e6a00614c026a00614a02002a66a66100020020d2266e04cc24c0408c004cdc0008808099849808118009a800851009aa99a99983003f00280a899985a00802806806099985a008020060069111a8019119985c80802802001911aa8061111111a80f111111a80e1111a82911111191919191919299a998440099835802240006611002660d80020086611002a66a66108020360da266110026610e026612e0201a03666e00068050cc21c04cc25c04034014cdc08020008a99a99842008028368998440099843809984b8080680d80d19843809984b8080680299b8033702008002028266110026610e026612e0201a03603466110026610e026612e0201a00a66e04010004cc21c04cc25c040341b4050cc22004cc20004038060cc1fc03005c54cd4ccc1982100402c06c4ccccc2b004cdc000980099b8101201a01101000f1333330ac013370202603466e0004800404404003c594cd54ccd5cd19b880190011309f013370066e0ccdc119b82002019483403ccdc119b81001019483283d200209e012100116350040a601350030a60153353308001001069133702661260204600266e000440404cc24c0408c004d400428804d54cd4ccc1801f80140544ccc2d0040140340304ccc2d004010030034888d400c88ccc2e40401401000c88d54030888888d407888888d4070888d414888888c8c8c8c94cd4cc21804cc1a4011200033086013308601330680030193306800201833086015335330820100906b133086013308501330950100b009337000060246610a026612a020160100042a66a66104020100d626610c026610a026612a0201601066e00008048cc21404cc2540402c02400c4cc21804cc21404cc2540402c02400ccc21804cc21404cc2540402c020008cc21404cc2540402c1ac048cc21804cc1f8030058cc1f40280544c8c8c8ccccc2b40400800ccdc019b8101200700133700022002a66a0082604a66e0800800c40414cd400c4cccc08c03c04c048044520003370202400866e0404000858c26804010cdc199b8200200e00d3370666e08004038030cc244040840f8888c8cdc199b820010033370066e0801120d00f0013370400290650791112999ab9a3371200890000a4000264a666ae68cdc48008028a4000264a666ae68cdc4800a400029000080099b833370400466e04004014cdc019b8200148028014c014cdc10018011192999ab9a33710004900004d808a999ab9a30a10100214800054ccd5cd1851008010a40042a666ae68c28c04008520021330010023370066e0c009200448008c254048894ccd5cd19b880010021330030013370666e00cdc1802000800a4008200426660f2002006046464a666ae68c27c04d55ce80089919191919191919191919191919091999998008050048040028018011bad357426ae88008dd69aba100135744010a666ae68c2b4040084c8c8488888cc01001c018dd69aba135744a0046660f8eb9d71aba15001153335734615802004264642444446600200e00c6eb4d5d09aba25002375a6ae85400454ccd5cd18558080109909111118028031bad357426aae7801854ccd5cd18550080109919091111198010038031bad357426ae894008ccc1f1d73ae35742a0022a666ae68c2a4040084c8c8488888cc00c01c018dd69aba135744a0046660f8eb9d71aba150010a101135573c00a6aae74010cc1e1d71aba100530743574200a60e66ae84014dd51aba1001357440026ae88004d5d10009aab9e0010970137540026a002104026a00810c0260c82446660d444a66a660b066606c0d46a004104026a03c1040266606c0a06a6a0040fc0ee05e266008004002200200202a60c82446660d444a66a660b066606c0a06a0040ee6a0200ee66606c0a06a0040ee05e2660080040022002002026666660f0660c602c044660c602c04203e660c602c02003c660a8660a0044607a008660a8660a0042607c008660a8024660a8a66a60c82446660d444a66a660a66aa03a104026a6a0040ee1040226600800400220020020260d6442a66a0020fe440dea66a6660640a600490000998299981d183c840809984100833800a40042660a66607460f21020266104020ce0029000183800999b8100101d303d001333066059008010305333307f22322325333573466e1c010dc680488010a999ab9a308f0100415333573466e1d205a500313370290001980299b800044800800800400454ccd5cd19b885002481805854ccd5cd19b8950023370090302402426600866e0000d20023370066e08005201433702a00490300b099b8e0060014800120001533500400115335501a13335734611a026606860e60f6660f80c200a0c20d00022a66a0062a66aa0320022666ae68c23804cc0ccc1c81e8cc1ec18001018019c0044ccd5cd18460099819183883c9983d02f80182f833299a9983d91299a8008321109a80111299a9982b00101089834800898030019a9a99a983b03c00501083883610a99a8008b1109a80111299a8018a99a99827800a400420042c112022c666ae68cdc49982c800803240000c80ba6a0020d4a66a60b02446660bc44a66a66088a0226a0040d6266008004002200200200e2c0f8660ce02c6a00a0d460c2006a66a60a42446660b044a66a660826aa0160e06a6a6a0040d80ca0e026600800400220020020060b2442a66a0020da440ba60ba0026a0280d4660b40020246a6a0080c80be26a6a0020c20b4a66a609601c420022c2a66a660600040320ba266060002032603200e6068010464646a09c4444464646464646464660706606a00c0066607066068660a600c018660a6006018660706606e6608e6a6a66a60c60ca00401e0bc0b2660b601201090011981c1981f998188070009981c1981b9811800a40006607066068604201c60420026607066068604401c60440026606e604801c6048002660706606a60aa00a09666070a66a609024466609c44a66a60a26a6a0040c40b8266008004002200200200809e442a66a0020c6440a6a66a609024466609c44a66a60a26a0040b8266008004002200200260b000e09e442a66a0020c6440a666609a08000600860a40066a0020aca66a608824466609444a66a660666a6a6a00e0bc0ae0c46a6a0040ae0c4266008004002200200260a80062c0d06a0100ba6a6a0020b00a6a66a608400c420022c603000c606600e4464646a09e44444a66a6a00e440a8426464646464646464646464646607e660700286660aa09000800c6607e66076014660b40060246607e6607e6607c6609c6a0040c00120106607e6606e6a0040bc6a01a0d26606c6a0040be6a01a0ca6607e6607866aa60ce0d846a00244660ca00466aa60d40de46a00244660d0004666a0026e012000700466e0000520000013304000b3500922330723306400233072330640010090540540033303f3303e3304e3535335306a06c0010160650603306200f00e48008cc0fccc0f0c1700181494cd4c13c488ccc154894cd4c160d4d40081a418c4cc010008004400400400c1588854cd40041a888168c168014cd4c1a01a800c04cd40041754cd4c12c488ccc144894cd4cc0dcd4d4030194178d40081784cc010008004400400400c581bcc160004d403418cccd4080178d4d4080188178004cc11800c004cc164020d4004170cc140004020d4d40041681554cd4c11001c8400458124c06401cc0d0020448004584d55cf0011aab9d0013754004444a66a6600600400207809c46a0020b0246666666600204044a666ae68cdc38010008020a999ab9a3371200400203203044666ae68cdc400100081b01e802802001912999ab9a337120040022002200444a666ae68cdc4801000880108008881f11199ab9a3371000400207406644666ae68cdc480100081c81911199ab9a337120040020620706607c91100488100223333550023303f2233350050480010023500304222337000029001000a4000660784446006600400240026607666076e01200070246a0024444400a46a0020a246a0024407246a0024406c464a666ae68c140d55ce8008991919191981e2999ab9a305435573a00626464646464646464646464646464646464646464646424666666666600201a01801601401201000e00a00600460446ae84d5d10011980f1981dbae2001357420026ae88008cc071d71aba100135744016a666ae68c190d55ce804899191919827a999ab9a306735573a004264660a066038eb4d5d0800980d9aba1357440026aae7800817d4ccd5cd18339aab9d001132330503301c75a6ae84004c06cd5d09aba200135573c0020be6ea8d5d09aba200237546ae84004d55cf00482e1980c9981b019bad35742014660300326ae84028ccc059d70029aba100a33301575c0086ae84028cc054008d5d08051980a1192999ab9a306035573a0022646609260326ae84004c010d5d09aba200135573c0020b06ea8004d5d08051192999ab9a305f35573a002264646660b060606ae84008ccc059d70029aba10013303375c6ae84d5d10009aba200135573c0020ae6ea8004cc045d73ad37546ae84004d5d10009aba2001357440026ae88004d5d10009aba200135573c006098a666ae68c15c0044c848888c010014c02cd5d09aab9e00215333573460ac00226424444600400a60486ae84d55cf0010a999ab9a3055001132122223001005300c357426aae7800854ccd5cd182a0008990911118018029bae357426aae78008130d55ce8009baa357426ae88008dd51aba100135573c0020906ea80048c94ccd5cd182800081e8a999ab9a304f00102b04735573a6ea800488c8c94ccd5cd18290008058a999ab9a3051001130193004357426aae7800854ccd5cd18280008050241aab9d00137540024464460046eac004c10888cccd55cf8009014119198239981c98031aab9d001300535573c00260086ae8800cd5d0801020919118011bac00130402233335573e002404c46608860086ae84008c00cd5d100101f91919192999ab9a305300211222203515333573460a4004220922a666ae68c1440084c8c848888888cc004024020dd69aba135744a0046eb8d5d0a8008a999ab9a3050002132321222222233002009008375c6ae84d5d128011bae35742a0022a666ae68c13c0084c8c848888888cc018024020dd71aba135744a004603a6ae85400454ccd5cd1827001099091111111803804180e9aba135573c0062a666ae68c1340084c848888888c014020c074d5d09aab9e003045135573c0046aae74004dd50009192999ab9a304a35573a0022646606660086ae84004dd69aba1357440026aae78004108dd50009192999ab9a304935573a00226eb8d5d09aab9e0010413754002220582205444a66a00442a66a00442660240040020462a66a0024046068446a004446a006446666010008006004002446a004444446a00c44444a66a6601e01400a2a66a6601e0120082a666ae68cdc38040018a999ab9a3370e00e0042a66a00c42a66a004426a004446a004446a00a446a00444a66a666602e00c00a0040022a66a00e42a66a008426604800400206a2a66a006406a08c0680562a66a002405607805405405405444446466a00a466a0084a666ae68cdc78010008018121013919a802101392999ab9a3371e0040020060482a66a00642a66a0044266a004466a00446601200400244405444466a0084054444a666ae68cdc38030018a999ab9a3370e00a0042660220080020520520442a66a00240440664466a004466a00446601c0040024046466a004404646601c004002446a004446a00644a666ae68cdc780200109980780180081091199aa9815019180680191a80091199aa981681a980800311a80091199a800919805a40000020144660160029000000998030010009981280100a91199ab9a3370e00400202c03a44a66a00420020324466aa605205c46a002446604e004666a002466aa605a06446a0024466056004601800200244666010016004002466aa605a06446a0024466056004601600200266600600c004002444666aa605005c06466aa605205c46a002446604e0046010002666aa605005c446a00444a66a666aa6054064601a01646a002446601400400a00c200626606c00800602800266aa605205c46a002446604e0046606844a66a002260120064426a00444a66a6601800401022444660040140082600c00600800442444600200842444600600844666ae68cdc780100080800b9980e80080a11299a801012080091980e11199a8018128010009a80080f9192999ab9a303435573a00226464646466666042666016eb9d71aba100433300b75ceb8d5d08019bad357420046eb4d5d0800998051192999ab9a303a35573a0022646604660146ae84004cc035d71aba1357440026aae780040c8dd50009aba1357440026ae88004d5d10009aba200135573c0020586ea80048c94ccd5cd18199aab9d0011323301c3005357420026600c0086ae84d5d10009aab9e00102b375400246464a666ae68c0d00044c8c8c8c8c8488ccc00401801000cdd69aba1357440046eb4d5d08009aba2002375a6ae84004d55cf0010a999ab9a3033001130103004357426aae780080acd55ce8009baa0012323253335734606600226424460020066eb8d5d09aab9e00215333573460640022601e6eb8d5d09aab9e00202a35573a0026ea800488c8c94ccd5cd18190008980798021aba135573c0042a666ae68c0cc0040380a8d55ce8009baa001222325333573460626aae740044c8cc068c014d5d080098021aba1357440026aae780040a4dd5000911a8009119198131119a800a4000446a00444a666ae68cdc7801004898038008980300180298129119a800a4000446a00444a666ae68cdc7801003880089803001919a80081100211a800911a80111111111111999a805900b900b900b9199aa981101500b11a80091299a998090010020980c00180b805912999ab9a3371e6a0040346a0020342666ae68cdc39a80100b1a80080b001805003880b91180f11299a80088019109980300118020009299a800900b0019111a801111299a800909a8029111111111299aa99a999aa981001400a11a800912999ab9a3371e00401c2602c00602a0044260286a0020440244260240022c2c2006424460040066601444a66a0044200620020022018446602e44a66a00203c4426a00444a666ae68cdc78010038a99a8008111109a80111299a8018a999ab9a302d00113301400b0020262202813006003002235001222222222200a2350012201c23500122222222220092220032220012220023333300248811c0be55d262b29f564998ff81efe21bdc0022621c12f15af08d0f2ddb10048811ce4214b7cce62ac6fbba385d164df48e157eae5863521b4b67ca71d8600330014891c13aa2accf2e1561723aa26871e071fdf32c867cff7e7d50ad470d62f004881074d494e535741500048811c2f2e0404310c106e2a260e8eb5a7e43f00cff42c667489d30e179816004881054f574e455200221233001003002222221233333001006005004003002300b22112225335001135003006221333500500c300400233355300700f0050040012200130092211222533500110022213300500233355300700d005004001300822112253350010052213300f30040023355300600b00400111001220023005221225333573466e20005200013005490103505436001533500213005491035054370022153335734602c0062004266a600c01000266e0400d2002253357380022c240026004444a66a00220044426a004446600e66601000400c00200660024444a66a00220044426a00444a666ae68c0500044ccc02001c01800c4ccc02001ccc028ccc02c01c00800401800c8c8c00400488cc00cc00800800488488cc00401000c88848ccc00401000c00854cd5ce2490350543100162215335001100200715335738921001622222222007220053704904d0f910b111110021b8748000dc3a40046e1d2004370e90031b8748020dc3a40146e1d200c010482d8799fd8799fd8799f581cbfdf836deb9a938d3ded0e21bd58c8d8879326f2a0f0e8b10361ae70ffd8799fd8799fd8799f581ce084d5fe53388503b7a78297dda228cf3b8c0bc09ca2cf1c0579f05cffffffffd8799fd8799f581cbfdf836deb9a938d3ded0e21bd58c8d8879326f2a0f0e8b10361ae70ffd8799fd8799fd8799f581ce084d5fe53388503b7a78297dda228cf3b8c0bc09ca2cf1c0579f05cffffffffd87a80d8799fd8799f581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae455041564941ff193a02ff1a001e84801a001e8480ffd8799fd8799f4040ffd8799f581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae455041564941ff1b0000000159f3f9961b000000015ea819ead8799fd8799fd8799fd8799f581caafb1196434cb837fd6f21323ca37b302dff6387e8a84b3fa28faf56ffd8799fd8799fd8799f581c52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c2ffffffffd87a80ffffff0582840001d8799fd8799fd8799f581c2ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7dffd8799fd8799fd8799f581c52563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c2ffffffff00ff821a002c3c531a3374a432840003d879808219c7841a0115b9d6a300818258204f80a2bd91483b6006267cec798357942090b0d299e5549c7f39b952b5bca95b5840d2fa0a52410eec1dcc8726e42c2851c1d2efc866e4344de53ef57d44c75fdf57eb3500e061455c9f84ebe22459de568d912489ec476cd59acb72d1feef954e07049fd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8269fd8799fd8799fd8799f581ccf982e203548ccc25e31a0b486b5d4c159777e45da4cbf5831486330ffd8799fd8799fd8799f581c84a7ecc76b0404a65afdb37c019d81fc10443d60ee79d405898665f8ffffffffa140d8799f00a1401a00432380ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a002191c0ffffd8799fd8799fd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe826ffd8799fd8799fd8799f581c1222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65ffffffffa140d8799f00a1401a0629c240ffffffffd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe8269fd8799fd8799fd8799f581ccf982e203548ccc25e31a0b486b5d4c159777e45da4cbf5831486330ffd8799fd8799fd8799f581c84a7ecc76b0404a65afdb37c019d81fc10443d60ee79d405898665f8ffffffffa140d8799f00a1401a003da540ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a001ed2a0ffffd8799fd8799fd8799f581c86d13a87308e4174b016b406e9376d46d4b95cc2ce56fd7e8c6fe826ffd8799fd8799fd8799f581c1222d830fb400b9f45ec0f18125f63a629d6fd8bca118246e9e62f65ffffffffa140d8799f00a1401a05a8ab60ffffffffff0581840000d8799fff821a0035a81a1a427d2108a20081825820217bd0570f80e6ed2f600f9b6506f3611e6fc25c147981b9fbc06b7239a8ce845840cbbaa70b99de30dad8004dc97decfdbb71c235340b25ab65d2f9e9c60d9abf9dc42ad733fac0e50fa18f103a21837e61a0e1a0a4793dc7c250ef0480a5693e0d049fd8799f581c2a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b6999fd8799fd8799fd8799f581ca089de553abbcc7b1ff01c4f5176eb59ace78def5781c4e94e4f748fffd8799fd8799fd8799f581c39f8aaa3881a830edd32eb8ad45e369316d04f970cb913ae87be39cfffffffffa140d8799f00a1401a26be3680ffffd8799fd8799fd8799f581c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a72ffd8799fd8799fd8799f581c1e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005fffffffffa140d8799f00a1401a0f7f4900ffffd8799fd8799fd8799f581c2a9d22c7185c8e66231cdf43658bf12352f157ab165e2061d744b699ffd8799fd8799fd8799f581c649d12f139c58ad4a6ac39963256479d43d7c4b46e6ffab40837542fffffffffa140d8799f00a1401b00000002d09ec280ffffffffffa10081825820d0e79bf11ba2790edb0be38e861faf90a6d04de311c3e08946ae0c83fc8d7b995840dd8f3db68201bc95a8a121aef1084cd9040c919a604504ee39a2a4e8f5bb04d84de23507e94cc7cbb3cf3232cc16c283eeb48c746b9eb68f2502b849da44ea06a100818258206687a36f0a4b8abf2671f8affb7febeb8940e9ee83548d2a2924dbc74679c466584087fdd447fc0b7f65b3d68843dcf98e570550ec15b899b11d72c556cee300bb800d642439221dc795a3323f6f84079cff8967ec5ae36bfc4c919fb05fb611270ba1008282582004e3e59d9d28c5bfe7280e519f711717b3e55670b3de27b282b609da6d879aa458403aac7bb2963af0aaebf4f991f86ee54e499860f0eeb32e5456cae10ea5c8172a35975360dc5901b7742d9a8ac7b2379d538fd2518886cb1824fd60ea1ae34e00825820f15eafdcd699aecec9fff1f22c266d185a5ba8e2b38bafede8a098bdb4d3ca12584061a086fd4257328678bc2950e246d1239bde3d330e2209409cc5db67412c140dea450e6fb33dfa7b19959c8414e57af572f79bcc8afc1a96e885107fb6fdd800a700b869181e613518327840643837393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632341833784037393966643837393966643837393966643837393966353831636663353533316335396664666533373238663562626332313334313639666265376539643663183478403630373066373030626335616531643732336666643837393966643837393966643837393966353831636630386230336264386365663834393031383830633218357840636630343962653336383863336233393633353166316366376164663032646438346666666666666666613134306438373939663030613134303161303134301836784036663430666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303562386438306666666664383739396664383739396664383739396635383163356535316164623666393837666433636166303464626461366463343237183a784061633032623065366366636339393166323234313166323437396666643837393966643837393966643837393966353831636437343662613261363032333039183b784039623335353933643866656330333339653631383564643763333438666133626366356237333165643866666666666666666131343064383739396630306131183c784034303161313034356136343066666666666666662c64383739396635383163356535316164623666393837666433636166303464626461366463343237616330183d784032623065366366636339393166323234313166323437393966643837393966643837393966643837393966353831636663353533316335396664666533373238183e784066356262633231333431363966626537653964366336303730663730306263356165316437323366666438373939666438373939666438373939663538316366183f7840303862303362643863656638343930313838306332636630343962653336383863336233393633353166316366376164663032646438346666666666666666611840784031343064383739396630306131343031613030366163666330666666666438373939666438373939666438373939663538316337306536306633623565613731184178403533653061636337613830336534343031643434623865643162616531633762616161643161363261373266666438373939666438373939666438373939663518427840383163316537386161653763393063633336643632346637623362623664383662353236393664633834653439306633343365626138393030356666666666661843784066666661313430643837393966303061313430316130303165383438306666666664383739396664383739396664383739396635383163356535316164623666184478403938376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739666664383739396664383739396664383718457840393966353831636437343662613261363032333039396233353539336438666563303333396536313835646437633334386661336263663562373331656438661846784066666666666666613134306438373939663030613134303161303536633863633066666666666666662c64383739396635383163356535316164623666393837184778406664336361663034646264613664633432376163303262306536636663633939316632323431316632343739396664383739396664383739396664383739396618487840353831636663353533316335396664666533373238663562626332313334313639666265376539643663363037306637303062633561653164373233666664381849784037393966643837393966643837393966353831636630386230336264386365663834393031383830633263663034396265333638386333623339363335316631184a784063663761646630326464383466666666666666666131343064383739396630306131343031613030643539663830666666666438373939666438373939666438184b784037393966353831633730653630663362356561373135336530616363376138303365343430316434346238656431626165316337626161616431613632613732184c784066666438373939666438373939666438373939663538316331653738616165376339306363333664363234663762336262366438366235323639366463383465184d784034393066333433656261383930303566666666666666666661313430643837393966303061313430316130303364303930306666666664383739396664383739184e784039666438373939663538316335653531616462366639383766643363616630346462646136646334323761633032623065366366636339393166323234313166184f7840323437396666643837393966643837393966643837393966353831636437343662613261363032333039396233353539336438666563303333396536313835641850784064376333343866613362636635623733316564386666666666666666613134306438373939663030613134303161306164393139383066666666666666662c64185178403837393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632343718527840393966643837393966643837393966643837393966353831636663353533316335396664666533373238663562626332313334313639666265376539643663361853784030373066373030626335616531643732336666643837393966643837393966643837393966353831636630386230336264386365663834393031383830633263185478406630343962653336383863336233393633353166316366376164663032646438346666666666666666613134306438373939663030613134303161303036616318557840666330666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462381856784065643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363234185778406637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031613018587840303165383438306666666664383739396664383739396664383739396635383163356535316164623666393837666433636166303464626461366463343237611859784063303262306536636663633939316632323431316632343739666664383739396664383739396664383739396635383163643734366261326136303233303939185a784062333535393364386665633033333965363138356464376333343866613362636635623733316564386666666666666666613134306438373939663030613134185b7840303161303536633863633066666666666666662c6438373939663538316335653531616462366639383766643363616630346462646136646334323761633032185c784062306536636663633939316632323431316632343739396664383739396664383739396664383739396635383163666335353331633539666466653337323866185d784035626263323133343136396662653765396436633630373066373030626335616531643732336666643837393966643837393966643837393966353831636630185e784038623033626438636566383439303138383063326366303439626533363838633362333936333531663163663761646630326464383466666666666666666131185f7840343064383739396630306131343031613030366163666330666666666438373939666438373939666438373939663538316337306536306633623565613731351860784033653061636337613830336534343031643434623865643162616531633762616161643161363261373266666438373939666438373939666438373939663538186178403163316537386161653763393063633336643632346637623362623664383662353236393664633834653439306633343365626138393030356666666666666618627840666661313430643837393966303061313430316130303165383438306666666664383739396664383739396664383739396635383163356535316164623666391863784038376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739666664383739396664383739396664383739186478403966353831636437343662613261363032333039396233353539336438666563303333396536313835646437633334386661336263663562373331656438666618657840666666666666613134306438373939663030613134303161303536633863633066666666666666662c64383739396635383163356535316164623666393837661866784064336361663034646264613664633432376163303262306536636663633939316632323431316632343739396664383739396664383739396664383739396635186778403831636663353533316335396664666533373238663562626332313334313639666265376539643663363037306637303062633561653164373233666664383718687840393966643837393966643837393966353831636630386230336264386365663834393031383830633263663034396265333638386333623339363335316631631869784066376164663032646438346666666666666666613134306438373939663030613134303161303036303231363066666666643837393966643837393966643837186a784039396635383163373065363066336235656137313533653061636337613830336534343031643434623865643162616531633762616161643161363261373266186b784066643837393966643837393966643837393966353831633165373861616537633930636333366436323466376233626236643836623532363936646338346534186c784039306633343365626138393030356666666666666666666131343064383739396630306131343031613030316237373430666666666438373939666438373939186d784066643837393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632186e784034373966666438373939666438373939666438373939663538316364373436626132613630323330393962333535393364386665633033333965363138356464186f7840376333343866613362636635623733316564386666666666666666613134306438373939663030613134303161303465316231653066666666666666662c64381870784037393966353831633565353161646236663938376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739187178403966643837393966643837393966643837393966353831636663353533316335396664666533373238663562626332313334313639666265376539643663363018727840373066373030626335616531643732336666643837393966643837393966643837393966353831636630386230336264386365663834393031383830633263661873784030343962653336383863336233393633353166316366376164663032646438346666666666666666613134306438373939663030613134303161303034303136187478403430666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462386518757840643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363234661876784037623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031613030187778403132346638306666666664383739396664383739396664383739396635383163356535316164623666393837666433636166303464626461366463343237616318787840303262306536636663633939316632323431316632343739666664383739396664383739396664383739396635383163643734366261326136303233303939621879784033353539336438666563303333396536313835646437633334386661336263663562373331656438666666666666666661313430643837393966303061313430187a78403161303334313231343066666666666666662c643837393966353831633565353161646236663938376664336361663034646264613664633432376163303262187b784030653663666363393931663232343131663234373939666438373939666438373939666438373939663538316366633535333163353966646665333732386635187c784062626332313334313639666265376539643663363037306637303062633561653164373233666664383739396664383739396664383739396635383163663038187d784062303362643863656638343930313838306332636630343962653336383863336233393633353166316366376164663032646438346666666666666666613134187e784030643837393966303061313430316130303661636663306666666664383739396664383739396664383739396635383163373065363066336235656137313533187f7840653061636337613830336534343031643434623865643162616531633762616161643161363261373266666438373939666438373939666438373939663538311880784063316537386161653763393063633336643632346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666188178406661313430643837393966303061313430316130303165383438306666666664383739396664383739396664383739396635383163356535316164623666393818827840376664336361663034646264613664633432376163303262306536636663633939316632323431316632343739666664383739396664383739396664383739391883784066353831636437343662613261363032333039396233353539336438666563303333396536313835646437633334386661336263663562373331656438666666188478406666666666613134306438373939663030613134303161303536633863633066666666666666662c64383739396635383163356535316164623666393837666418857840336361663034646264613664633432376163303262306536636663633939316632323431316632343739396664383739396664383739396664383739396635381886784031636663353533316335396664666533373238663562626332313334313639666265376539643663363037306637303062633561653164373233666664383739188778403966643837393966643837393966353831636630386230336264386365663834393031383830633263663034396265333638386333623339363335316631636618887840376164663032646438346666666666666666613134306438373939663030613134303161303134303666343066666666643837393966643837393966643837391889784039663538316337306536306633623565613731353365306163633761383033653434303164343462386564316261653163376261616164316136326137326666188a784064383739396664383739396664383739396635383163316537386161653763393063633336643632346637623362623664383662353236393664633834653439188b784030663334336562613839303035666666666666666666613134306438373939663030613134303161303035623864383066666666643837393966643837393966188c784064383739396635383163356535316164623666393837666433636166303464626461366463343237616330326230653663666363393931663232343131663234188d784037396666643837393966643837393966643837393966353831636437343662613261363032333039396233353539336438666563303333396536313835646437188e78406333343866613362636635623733316564386666666666666666613134306438373939663030613134303161313034356136343066666666666666662c643837188f784039396635383163356535316164623666393837666433636166303464626461366463343237616330326230653663666363393931663232343131663234373939189078406664383739396664383739396664383739396635383163666335353331633539666466653337323866356262633231333431363966626537653964366336303718917840306637303062633561653164373233666664383739396664383739396664383739396635383163663038623033626438636566383439303138383063326366301892784034396265333638386333623339363335316631636637616466303264643834666666666666666661313430643837393966303061313430316130303535373330189378403066666666643837393966643837393966643837393966353831633730653630663362356561373135336530616363376138303365343430316434346238656418947840316261653163376261616164316136326137326666643837393966643837393966643837393966353831633165373861616537633930636333366436323466371895784062336262366438366235323639366463383465343930663334336562613839303035666666666666666666613134306438373939663030613134303161303031189678403836613030666666666438373939666438373939666438373939663538316335653531616462366639383766643363616630346462646136646334323761633018977840326230653663666363393931663232343131663234373966666438373939666438373939666438373939663538316364373436626132613630323330393962331898784035353933643866656330333339653631383564643763333438666133626366356237333165643866666666666666666131343064383739396630306131343031189971613034353664373030666666666666666601ac007840643837393966353831636636323839313037623365356663633936336134336237663130303138643338313936376338613565363163656230316237366632330178403938396664383739396664383739396664383739396635383163646137656565363232316239646166396438343233333531333466316666366431646139613002784039393662393132303137653732356266326266666438373939666438373939666438373939663538316363343937386331336466376334623339383830396666037840396235626461316231333666383235303932313837313065656335613864303734306666666666666666613134306438373939663030613134303161303034630478403462343066666666643837393966643837393966643837393966353831633730653630663362356561373135336530616363376138303365343430316434346205784038656431626165316337626161616431613632613732666664383739396664383739396664383739396635383163316537386161653763393063633336643632067840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031610778403030316538343830666666666438373939666438373939666438373939663538316366363238393130376233653566636339363361343362376631303031386408784033383139363763386135653631636562303162373666323339386666643837393966643837393966643837393966353831633561383532633832303761396238097840393865633636656630366538393964396439643863643635333531646230323939303334336339316237666666666666666661313430643837393966303061310a743430316130353862313134306666666666666666181e613402ac181e613518327840643837393966353831633766623835643661346561363465643363346330633933616432633261643137663265353839656636356463613837373235313039631833784063393966643837393966643837393966643837393966353831633138393939613337353566336533343433306163646332306535353030376166656437663266183478403233636365306436366435313233663262306666643837393966643837393966643837393966353831636465396330663064373034333365323762626136333618357840393636393364633964386664663263366464396530643432363635376163323663376666666666666666613134306438373939663030613134303161303034391836784033653030666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303234396630306666666664383739396664383739396664383739396635383163376662383564366134656136346564336334633063393361643263326164183a784031376632653538396566363564636138373732353130396363396666643837393966643837393966643837393966353831636332613064666264313233653161183b784038316534653430313163626634623936343162356236636163633239356630383030646331356332313566666666666666666131343064383739396630306131183c7534303161303662393331303066666666666666662c03ac181e613518327840643837393966353831633935373836616439343263326531666338323865653562636634656237303134656562303937393033636538636135363232343964381833784061333966643837393966643837393966643837393966353831633664326338646137376666356639666536353830363537666636396565336336386230623062183478403436616131323935356265653663306165356666643837393966643837393966643837393966353831636636643262383964366339653630643764396531393218357840323437373061366337353464613666636563623335633831373930343933396566646666666666666666613134306438373939663030613134303161303035661836784035653130666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303236323561306666666664383739396664383739396664383739396635383163393537383661643934326332653166633832386565356263663465623730183a784031346565623039373930336365386361353632323439643861336666643837393966643837393966643837393966353831633963393232373964623335393332183b784062343730393365383762323665383065666533386530373134356463393437656234373432306533346166666666666666666131343064383739396630306131183c7534303161303665646435393066666666666666662c05d90103a100a11902a2a1636d7367826f4c616d696e61722052656c6179657278403965336637363533316634643966353966336364653138353631653765393734643739373930323833343366663464366439343461333330666538626531623806ac181e613518327840643837393966353831633836643133613837333038653431373462303136623430366539333736643436643462393563633263653536666437653863366665381833784032363966643837393966643837393966643837393966353831636366393832653230333534386363633235653331613062343836623564346331353937373765183478403435646134636266353833313438363333306666643837393966643837393966643837393966353831633834613765636337366230343034613635616664623318357840376330313964383166633130343433643630656537396434303538393836363566386666666666666666613134306438373939663030613134303161303033641836784061353430666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030303165643261306666666664383739396664383739396664383739396635383163383664313361383733303865343137346230313662343036653933373664183a784034366434623935636332636535366664376538633666653832366666643837393966643837393966643837393966353831633132323264383330666234303062183b784039663435656330663138313235663633613632396436666438626361313138323436653965363266363566666666666666666131343064383739396630306131183c7534303161303561386162363066666666666666662c07ac181e613518327840643837393966353831633261396432326337313835633865363632333163646634333635386266313233353266313537616231363565323036316437343462361833784039393966643837393966643837393966643837393966353831636130383964653535336162626363376231666630316334663531373665623539616365373864183478406566353738316334653934653466373438666666643837393966643837393966643837393966353831633339663861616133383831613833306564643332656218357840386164343565333639333136643034663937306362393133616538376265333963666666666666666666613134306438373939663030613134303161323662651836784033363830666666666438373939666438373939666438373939663538316337306536306633623565613731353365306163633761383033653434303164343462183778403865643162616531633762616161643161363261373266666438373939666438373939666438373939663538316331653738616165376339306363333664363218387840346637623362623664383662353236393664633834653439306633343365626138393030356666666666666666666131343064383739396630306131343031611839784030663766343930306666666664383739396664383739396664383739396635383163326139643232633731383563386536363233316364663433363538626631183a784032333532663135376162313635653230363164373434623639396666643837393966643837393966643837393966353831633634396431326631333963353861183b784064346136616333393936333235363437396434336437633462343665366666616234303833373534326666666666666666666131343064383739396630306131183c781d343031623030303030303032643039656332383066666666666666662c80

@intertree
Copy link

intertree commented Jan 22, 2023

Can also confirm all 8 Mainnet Nodes I have under management restarted. Mix of Cloud and Baremetal, multiple Geographical locations.

v1.35.4

@ashisherc
Copy link

On initial inspection this seems to be the offending transaction

https://cardanoscan.io/transaction/5d21b0eb26ba772ec85c2db09311005815c89140ee7bf894fa36c0a6d71b89c1?tab=collateral

the block it was in 95050 fails to register on almost all Nodes, seems like they all die as soon as they see the block.

The Collaterals are consumed, indicating the the TX failed to execute.

I theorize that the Redeemer had some sort of runway process happen, causing all nodes that tied to process it to shut down.

the collateral is not consumed for this tx, in case of failed tx; cardanoscan will display FAILED tag. cc @JaredCorduan

@Quantumplation
Copy link

Quantumplation commented Jan 22, 2023

Do we have reason to believe that it was the block above, beyond just being the last block received before the crash? It seems more likely to me that if there was a block causing the crash, it would be the one received immediately after that persisted block, and the crashing would prevent it from being adopted. Once nodes restarted, they would likely select a different tip and continue producing nodes from there.

In particular, SMAUG's original error message seems to indicate that the headerHash of the tip at the time was fae2d44113d1fb8b99171cc64983ff5dfb92f1d360f2460e6 which doesn't match any of the blocks centered around the crash.

Also, if it was a specific block in the chain, I'd imagine it would continue to cause issues after the restart. The fact that the network recovered implies that the block that causes the issue is no longer part of the chain.

@JaredCorduan
Copy link
Contributor

I agree completely @Quantumplation, we came to this same conclusion. what's weird is how such a block or transaction would propagate and cause so many failures all within the same second.

@simonmichael
Copy link

simonmichael commented Jan 27, 2023

Upstream bug report issue: haskell/containers#913

@treeowl
Copy link

treeowl commented Jan 27, 2023

You used containers internals all over the place and you're complaining upstream that you got an error message? You should be grateful you didn't just silently get wrong answers. Unless proven otherwise, upstream says "You broke it and you get to keep both pieces." Upstream suggests you improve coverage in your property tests for the functions you wrote. Consider using the sort of machinery containers uses to produce sets with a wide variety of tree shapes—I don't think the Arbitrary instance you get from QuickCheck goes to the trouble, because it's assuming you're not monkeying with internals.

@simonmichael
Copy link

I'm not the cardano team and not complaining. :) Just interested in improving Haskell libs and trying to ask useful questions.

@treeowl
Copy link

treeowl commented Jan 27, 2023

@simonmichael Glad to hear. It's most certainly possible that this is caused by a containers bug, but I was a bit upset to see what seemed to be the assumption that it is under the circumstances.

@sakakibaraakio
Copy link

Is the new node version 1.35.5 meant to fix this bug?

@Straightpool
Copy link

Is the new node version 1.35.5 meant to fix this bug?

Yes, go update your node to 1.35.5.

@daehan-koreapool
Copy link

Could anyone please share which Github merge request fixed this issue?
I'd like to understand how it's been fixed so that I can explain it to our Korean community members.

@rdlrt
Copy link

rdlrt commented Jan 27, 2023

I'd like to understand how it's been fixed so that I can explain it to our Korean community members.

Please wait for the blog post that will be released in ~6-8 weeks with details

@IntersectMBO IntersectMBO deleted a comment from daehan-koreapool Jan 27, 2023
@treeowl
Copy link

treeowl commented Jan 28, 2023

@daehan-koreapool

Could anyone please share which Github merge request fixed this issue? I'd like to understand how it's been fixed so that I can explain it to our Korean community members.

Yes, as you (?) pointed out in a now-deleted comment, the fix is in this PR.

The code was for a function called canonicalInsert, whatever that means. It's mostly copied from the standard insert code, but around line 91, it said

      case compare kx ky of
        LT -> balanceL ky y (go f kx x l) r
        GT -> balanceR ky y l (go f kx x r)
        EQ -> if new == zeroC then link2 l r else Bin sy kx new l r

The trouble is in the new == zeroC = True case. Here the element that used to be in the set is deleted. That's problematic because balanceL and balanceR are each designed to balance in one direction (for insert, assuming the only possible balance change was an element inserted in the subtree in question), but this function can either insert or delete. containers used to have an internal balance function that would be appropriate here, but it was removed because it's no longer used there. The Cardano folks could rescue it from the git history to use if desired.

@ilap
Copy link

ilap commented Jan 28, 2023

@simonmichael Glad to hear. It's most certainly possible that this is caused by a containers bug, but I was a bit upset to see what seemed to be the assumption that it is under the circumstances.

The cause of the issue was known for some days and fixed, though any ppl from anywhere who have git account and have wrong assumption can raise a non valid issue in any repo.

But reacting like you did (assuming that the mentioned Cardano folks blame you), imo is not really distinguishing you from those who have strong opinion without validation. It's just my 2 cents. In the future do some fact checks first, before you make any firm statements.

@erikd
Copy link
Contributor

erikd commented Jan 28, 2023

@simonmichael This was due to the Cardano devs using a function in containers incorrectly (for performance reasons).

Until a larger portion of the network is using the fixed version (currently its at 21% according to Pooltool) we would like to keep public knowledge of this issue as vague as possible. Once the network is safe we will be as transparent as possible about what happened.

@nompelis
Copy link

Until a larger portion of the network is using the fixed version (currently its at 21% according to Pooltool) we would like to keep public knowledge of this issue as vague as possible. Once the network is safe we will be as transparent as possible about what happened.

Why? This is a double-edge sword to attempt to conceal problems, and it will damage the image of the community and the platform. If it is a potential "attack vector", you keep developers "up at night" to fix it, but obfuscating facts will always come back and byte you.

I do not want this to become a controversial topic, and also to fill people's emails with garbage. Just raising a point on trnsparency and principles. Peace out.

@Quantumplation
Copy link

I don't think this is an attempt to "conceal" problems; it's IOG exercising their responsible disclosure policy. The plan is to release a detailed post-mortem, but doing so before a significant number of SPOs have upgraded is just adding unnecessary risk that someone malicious will be able to reproduce it.

IOG actually went above and beyond to include members of the community in this effort for the first time, for which they should be applauded. Waiting a few weeks to release a post-mortem is standard security practice, and is going to make very little difference for any benign parties who could benefit from a deep understanding of the attack, but makes a huge difference for any potential malicious actors out there.

@woodkm
Copy link

woodkm commented Jan 28, 2023

Agreed with Pi.

Just wanted to add my own thought (though it has been covered already). The process by which IOG is following is standard practice in Security. It is a. If you reveal too much too soon, you are making it easier for bad actors to gain the information needed to use to their advantage, prior to the resolution being widely implemented.

Transparency does not mean haphazardly prematurely releasing information that would be a benefit to bad actors, prior to the risk being mitigated to a manageable/reasonable degree.

  1. Identify bug/issue/problem.
  2. Create and release fix (short term, long term, or both). Depending on the nature, difficulty, and more.
  3. Allow the entities involved an appropriate amount of time to implement the resolution, usually based on a percentage coverage and/or high impact system coverage. That sorts of metrics.
  4. Release Post Mortem - This can contain why and what happened, how to prevent it immediately, how to prevent long term, any other changes to prevent similar future issues, things like that.

Additionally, if curious, here are the general stage flows of an Incident Response (from my experience in Ransomware Forensic Cases). They vary, in general these are the steps.
Preventative (standalone phase)
Detection and Analysis
Containment
Eradication
Recovery
Post-Mortem

@dorin100 dorin100 added type: regression A feature that worked before stoped working user type: external Created by an external user comp: ledger labels Jan 29, 2023
@github-actions
Copy link

github-actions bot commented Mar 1, 2023

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 120 days.

@erikd
Copy link
Contributor

erikd commented Apr 4, 2023

This issue has been fixed but will remain open until the problem, its cause and its solution has been documented and made public.

@IntersectMBO IntersectMBO deleted a comment from github-actions bot Apr 4, 2023
@erikd erikd removed the Stale label Apr 4, 2023
@treeowl
Copy link

treeowl commented Apr 4, 2023

I've opened nick8325/quickcheck#354 to help address the root cause.

@JaredCorduan
Copy link
Contributor

My sincere thanks goes to everyone who helped resolve this issue. @lehins and @TimSheard were true heroes in resolving it fast. @Quantumplation and @AndrewWestberg were also heroes, it's always a real joy to work with y'all.

The issue was resolved by IntersectMBO/cardano-ledger#3343.

@kevinhammond published a brief incident report: https://input-output-hk.github.io/cardano-updates/2023-04-17-ledger

@Quantumplation published a well written and expository postmortem: https://www.314pool.com/post/cardano-post-mortem-1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: ledger type: bug Something is not working type: regression A feature that worked before stoped working user type: external Created by an external user
Projects
None yet
Development

No branches or pull requests