From d9d14cf53a305472414dfb2829e7ce83006c87ae Mon Sep 17 00:00:00 2001 From: benesjan Date: Mon, 15 Jan 2024 16:44:11 +0000 Subject: [PATCH 01/23] WIP --- l1-contracts/src/core/Rollup.sol | 62 ++--- l1-contracts/src/core/interfaces/IRollup.sol | 9 +- l1-contracts/src/core/libraries/Errors.sol | 2 +- .../src/core/libraries/decoders/Decoder.sol | 83 ++----- .../core/libraries/decoders/HeaderDecoder.sol | 121 ++++------ l1-contracts/test/DecoderHelper.sol | 15 +- l1-contracts/test/Rollup.t.sol | 215 +++++++++--------- l1-contracts/test/decoders/Base.sol | 10 +- l1-contracts/test/decoders/Decoder.t.sol | 40 ++-- l1-contracts/test/fixtures/empty_block_0.json | 12 +- l1-contracts/test/fixtures/empty_block_1.json | 12 +- l1-contracts/test/fixtures/mixed_block_0.json | 14 +- l1-contracts/test/fixtures/mixed_block_1.json | 14 +- .../archiver/src/archiver/archiver.test.ts | 8 +- .../archiver/src/archiver/eth_log_handlers.ts | 14 +- yarn-project/circuit-types/src/l2_block.ts | 72 +++--- .../circuits.js/src/structs/header.ts | 14 +- .../src/integration_l1_publisher.test.ts | 205 +++++++++-------- .../src/publisher/l1-publisher.test.ts | 10 +- .../src/publisher/l1-publisher.ts | 35 +-- .../src/publisher/viem-tx-sender.ts | 9 +- yarn-project/sequencer-client/src/receiver.ts | 2 +- .../src/sequencer/sequencer.test.ts | 16 +- .../src/sequencer/sequencer.ts | 2 +- 24 files changed, 482 insertions(+), 514 deletions(-) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index 82db79ada62..1d140822f09 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -30,7 +30,7 @@ contract Rollup is IRollup { uint256 public immutable VERSION; AvailabilityOracle public immutable AVAILABILITY_ORACLE; - bytes32 public rollupStateHash; + bytes32 public archive; // Root of the archive tree uint256 public lastBlockTs; // Tracks the last time time was warped on L2 ("warp" is the testing cheatcode). // See https://github.com/AztecProtocol/aztec-packages/issues/1614 @@ -44,23 +44,29 @@ contract Rollup is IRollup { } /** - * @notice Process an incoming L2Block and progress the state - * @param _proof - The proof of correct execution - * @param _l2Block - The L2Block data, formatted as outlined in `Decoder.sol` + * @notice Process an incoming L2 block and progress the state + * @param _header - The L2 block header. + * @param _archive - A snapshot (root and next available leaf index) of the archive tree after the L2 block is applied + * @param _body - The L2 block body. + * @param _proof - The proof of correct execution. */ - function process(bytes memory _proof, bytes calldata _l2Block) external override(IRollup) { - _constrainGlobals(_l2Block); + function process( + bytes calldata _header, + bytes calldata _archive, + bytes calldata _body, // Note: this will be replaced with _txsHash once the separation is finished. + bytes memory _proof + ) external override(IRollup) { + // TODO: @benejsan Should we represent this values from header as a nice struct? + HeaderDecoder.Header memory header = HeaderDecoder.decode(_header); - // Decode the header - (uint256 l2BlockNumber, bytes32 oldStateHash, bytes32 newStateHash) = - HeaderDecoder.decode(_l2Block[:HeaderDecoder.BLOCK_HEADER_SIZE]); + _validateHeader(header); // Check if the data is available using availability oracle (change availability oracle if you want a different DA layer) bytes32 txsHash; { // @todo @LHerskind Hack such that the node is unchanged for now. // should be removed when we have a proper block publication. - txsHash = AVAILABILITY_ORACLE.publish(_l2Block[HeaderDecoder.BLOCK_HEADER_SIZE:]); + txsHash = AVAILABILITY_ORACLE.publish(_body); } if (!AVAILABILITY_ORACLE.isAvailable(txsHash)) { @@ -70,10 +76,7 @@ contract Rollup is IRollup { // Decode the cross-chain messages (bytes32 inHash,, bytes32[] memory l1ToL2Msgs, bytes32[] memory l2ToL1Msgs) = - MessagesDecoder.decode(_l2Block[HeaderDecoder.BLOCK_HEADER_SIZE:]); - - bytes32 publicInputHash = - _computePublicInputHash(_l2Block[:HeaderDecoder.BLOCK_HEADER_SIZE], txsHash, inHash); + MessagesDecoder.decode(_body); // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. // TODO(#3936): Temporarily disabling this because L2Block encoding has not yet been updated. @@ -82,13 +85,14 @@ contract Rollup is IRollup { // } bytes32[] memory publicInputs = new bytes32[](1); - publicInputs[0] = publicInputHash; + publicInputs[0] = _computePublicInputHash(_header, txsHash, inHash); if (!VERIFIER.verify(_proof, publicInputs)) { revert Errors.Rollup__InvalidProof(); } - rollupStateHash = newStateHash; + // TODO: @benejsan Manually extracting the root here is ugly. TODO: Re-think how to represent archive snap. + archive = bytes32(_header[:0x20]); lastBlockTs = block.timestamp; // @todo (issue #605) handle fee collector @@ -98,24 +102,19 @@ contract Rollup is IRollup { IOutbox outbox = REGISTRY.getOutbox(); outbox.sendL1Messages(l2ToL1Msgs); - emit L2BlockProcessed(l2BlockNumber); + emit L2BlockProcessed(header.blockNumber); } - function _constrainGlobals(bytes calldata _header) internal view { - uint256 chainId = uint256(bytes32(_header[:0x20])); - uint256 version = uint256(bytes32(_header[0x20:0x40])); - uint256 ts = uint256(bytes32(_header[0x60:0x80])); - // block number already constrained by start state hash - - if (block.chainid != chainId) { - revert Errors.Rollup__InvalidChainId(chainId, block.chainid); + function _validateHeader(HeaderDecoder.Header memory header) internal view { + if (block.chainid != header.chainId) { + revert Errors.Rollup__InvalidChainId(header.chainId, block.chainid); } - if (version != VERSION) { - revert Errors.Rollup__InvalidVersion(version, VERSION); + if (header.version != VERSION) { + revert Errors.Rollup__InvalidVersion(header.version, VERSION); } - if (ts > block.timestamp) { + if (header.timestamp > block.timestamp) { revert Errors.Rollup__TimestampInFuture(); } @@ -123,9 +122,14 @@ contract Rollup is IRollup { // This will make multiple l2 blocks in the same l1 block impractical. // e.g., the first block will update timestamp which will make the second fail. // Could possibly allow multiple blocks if in same l1 block - if (ts < lastBlockTs) { + if (header.timestamp < lastBlockTs) { revert Errors.Rollup__TimestampTooOld(); } + + // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. + if (archive != bytes32(0) && archive != header.lastArchive) { + revert Errors.Rollup__InvalidArchive(archive, header.lastArchive); + } } function _computePublicInputHash(bytes calldata _header, bytes32 _txsHash, bytes32 _inHash) diff --git a/l1-contracts/src/core/interfaces/IRollup.sol b/l1-contracts/src/core/interfaces/IRollup.sol index ab2fca20e18..264625275ff 100644 --- a/l1-contracts/src/core/interfaces/IRollup.sol +++ b/l1-contracts/src/core/interfaces/IRollup.sol @@ -3,7 +3,12 @@ pragma solidity >=0.8.18; interface IRollup { - event L2BlockProcessed(uint256 indexed blockNum); + event L2BlockProcessed(uint256 indexed blockNumber); - function process(bytes memory _proof, bytes calldata _l2Block) external; + function process( + bytes calldata _header, + bytes calldata _archive, + bytes calldata _body, + bytes memory _proof + ) external; } diff --git a/l1-contracts/src/core/libraries/Errors.sol b/l1-contracts/src/core/libraries/Errors.sol index e8d6785f183..39ec6a692bc 100644 --- a/l1-contracts/src/core/libraries/Errors.sol +++ b/l1-contracts/src/core/libraries/Errors.sol @@ -48,7 +48,7 @@ library Errors { ); // 0x5e789f34 // Rollup - error Rollup__InvalidStateHash(bytes32 expected, bytes32 actual); // 0xa3cfaab3 + error Rollup__InvalidArchive(bytes32 expected, bytes32 actual); // 0xb682a40e error Rollup__InvalidProof(); // 0xa5b2ba17 error Rollup__InvalidChainId(uint256 expected, uint256 actual); // 0x37b5bc12 error Rollup__InvalidVersion(uint256 expected, uint256 actual); // 0x9ef30794 diff --git a/l1-contracts/src/core/libraries/decoders/Decoder.sol b/l1-contracts/src/core/libraries/decoders/Decoder.sol index 9a9863f5b1a..178e91acda2 100644 --- a/l1-contracts/src/core/libraries/decoders/Decoder.sol +++ b/l1-contracts/src/core/libraries/decoders/Decoder.sol @@ -107,40 +107,6 @@ library Decoder { uint256 private constant BLOCK_HEADER_OFFSET = START_TREES_BLOCK_HEADER_OFFSET + 2 * TREES_BLOCK_HEADER_SIZE; - /** - * @notice Decodes the inputs and computes values to check state against - * @param _l2Block - The L2 block calldata. - * @return l2BlockNumber - The L2 block number. - * @return startStateHash - The state hash expected prior the execution. - * @return endStateHash - The state hash expected after the execution. - * @return publicInputHash - The hash of the public inputs - * @return l2ToL1Msgs - The L2 to L1 messages - * @return l1ToL2Msgs - The L1 to L2 messages - */ - function decode(bytes calldata _l2Block) - internal - pure - returns ( - uint256 l2BlockNumber, - bytes32 startStateHash, - bytes32 endStateHash, - bytes32 publicInputHash, - bytes32[] memory l2ToL1Msgs, - bytes32[] memory l1ToL2Msgs - ) - { - l2BlockNumber = getL2BlockNumber(_l2Block); - // Note, for startStateHash to match the storage, the l2 block number must be new - 1. - // Only jumping 1 block at a time. - startStateHash = computeStateHash(l2BlockNumber - 1, START_TREES_BLOCK_HEADER_OFFSET, _l2Block); - endStateHash = computeStateHash(l2BlockNumber, END_TREES_BLOCK_HEADER_OFFSET, _l2Block); - - bytes32 diffRoot; - bytes32 l1ToL2MsgsHash; - (diffRoot, l1ToL2MsgsHash, l2ToL1Msgs, l1ToL2Msgs) = computeConsumables(_l2Block); - publicInputHash = computePublicInputHash(_l2Block, diffRoot, l1ToL2MsgsHash); - } - /** * @notice Computes the public input hash * @dev Uses sha256 to field @@ -189,13 +155,13 @@ library Decoder { /** * @notice Computes consumables for the block - * @param _l2Block - The L2 block calldata. + * @param _body - The L2 block body. * @return diffRoot - The root of the diff tree (new commitments, nullifiers etc) * @return l1ToL2MsgsHash - The hash of the L1 to L2 messages * @return l2ToL1Msgs - The L2 to L1 messages of the block * @return l1ToL2Msgs - The L1 to L2 messages of the block */ - function computeConsumables(bytes calldata _l2Block) + function computeConsumables(bytes calldata _body) internal pure returns (bytes32, bytes32, bytes32[] memory, bytes32[] memory) @@ -204,52 +170,53 @@ library Decoder { ConsumablesVars memory vars; { - uint256 offset = BLOCK_HEADER_OFFSET; + uint256 offset = 0; // Commitments - uint256 count = read4(_l2Block, offset); + uint256 count = read4(_body, offset); vars.baseLeaves = new bytes32[](count / Constants.MAX_NEW_COMMITMENTS_PER_TX); - offsets.commitment = BLOCK_HEADER_OFFSET + 0x4; - offset += 0x4 + count * 0x20; + offset += 0x4; + offsets.commitment = offset; + offset += count * 0x20; offsets.nullifier = offset + 0x4; // + 0x4 to offset by next read4 // Nullifiers - count = read4(_l2Block, offset); + count = read4(_body, offset); offset += 0x4 + count * 0x20; offsets.publicData = offset + 0x4; // + 0x4 to offset by next read4 // Public data writes - count = read4(_l2Block, offset); + count = read4(_body, offset); offset += 0x4 + count * 0x40; offsets.l2ToL1Msgs = offset + 0x4; // + 0x4 to offset by next read4 // L2 to L1 messages - count = read4(_l2Block, offset); + count = read4(_body, offset); vars.l2ToL1Msgs = new bytes32[](count); assembly { // load the l2 to l1 msgs (done here as offset will be altered in loop) let l2ToL1Msgs := mload(add(vars, 0x20)) calldatacopy( - add(l2ToL1Msgs, 0x20), add(_l2Block.offset, mload(add(offsets, 0x60))), mul(count, 0x20) + add(l2ToL1Msgs, 0x20), add(_body.offset, mload(add(offsets, 0x60))), mul(count, 0x20) ) } offset += 0x4 + count * 0x20; offsets.contracts = offset + 0x4; // + 0x4 to offset by next read4 // Contracts - count = read4(_l2Block, offset); + count = read4(_body, offset); offsets.contractData = offsets.contracts + count * 0x20; offset += 0x4 + count * 0x54; offsets.l1ToL2Msgs = offset + 0x4; // + 0x4 to offset by next read4 // L1 to L2 messages - count = read4(_l2Block, offset); + count = read4(_body, offset); vars.l1Tol2MsgsCount = count; offset += 0x4 + count * 0x20; offsets.encryptedLogs = offset + 0x4; // + 0x4 to offset by next read4 // Used as length in bytes down here - uint256 length = read4(_l2Block, offset); + uint256 length = read4(_body, offset); offsets.unencryptedLogs = offsets.encryptedLogs + 0x4 + length; } @@ -278,26 +245,24 @@ library Decoder { * Note: will advance offsets by the number of bytes processed. */ (vars.encryptedLogsHash, offsets.encryptedLogs) = - computeKernelLogsHash(offsets.encryptedLogs, _l2Block); + computeKernelLogsHash(offsets.encryptedLogs, _body); (vars.unencryptedLogsHash, offsets.unencryptedLogs) = - computeKernelLogsHash(offsets.unencryptedLogs, _l2Block); + computeKernelLogsHash(offsets.unencryptedLogs, _body); // Insertions are split into multiple `bytes.concat` to work around stack too deep. vars.baseLeaf = bytes.concat( bytes.concat( - slice(_l2Block, offsets.commitment, Constants.COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP), - slice(_l2Block, offsets.nullifier, Constants.NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP), - slice( - _l2Block, offsets.publicData, Constants.PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP - ), - slice(_l2Block, offsets.l2ToL1Msgs, Constants.L2_TO_L1_MSGS_NUM_BYTES_PER_BASE_ROLLUP), - slice(_l2Block, offsets.contracts, Constants.CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP) + slice(_body, offsets.commitment, Constants.COMMITMENTS_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.nullifier, Constants.NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.publicData, Constants.PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.l2ToL1Msgs, Constants.L2_TO_L1_MSGS_NUM_BYTES_PER_BASE_ROLLUP), + slice(_body, offsets.contracts, Constants.CONTRACTS_NUM_BYTES_PER_BASE_ROLLUP) ), bytes.concat( - slice(_l2Block, offsets.contractData, 0x20), // newContractDataKernel.aztecAddress + slice(_body, offsets.contractData, 0x20), // newContractDataKernel.aztecAddress bytes12(0), - slice(_l2Block, offsets.contractData + 0x20, 0x14) // newContractDataKernel.ethAddress + slice(_body, offsets.contractData + 0x20, 0x14) // newContractDataKernel.ethAddress ), bytes.concat(vars.encryptedLogsHash, vars.unencryptedLogsHash) ); @@ -324,7 +289,7 @@ library Decoder { assembly { calldatacopy( add(l1ToL2Msgs, 0x20), - add(_l2Block.offset, mload(add(offsets, 0xc0))), + add(_body.offset, mload(add(offsets, 0xc0))), l1ToL2MsgsHashPreimageSize ) } diff --git a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol b/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol index f2e7778e1f6..2234afa339e 100644 --- a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol +++ b/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol @@ -20,88 +20,59 @@ import {Hash} from "../Hash.sol"; * * | byte start | num bytes | name * | --- | --- | --- - * | 0x0000 | 0x20 | chain-id - * | 0x0020 | 0x20 | version - * | 0x0040 | 0x20 | L2 block number - * | 0x0060 | 0x20 | L2 timestamp - * | 0x0080 | 0x20 | startNoteHashTreeSnapshot.root - * | 0x00a0 | 0x04 | startNoteHashTreeSnapshot.nextAvailableLeafIndex - * | 0x00a4 | 0x20 | startNullifierTreeSnapshot.root - * | 0x00c4 | 0x04 | startNullifierTreeSnapshot.nextAvailableLeafIndex - * | 0x00c8 | 0x20 | startContractTreeSnapshot.root - * | 0x00e8 | 0x04 | startContractTreeSnapshot.nextAvailableLeafIndex - * | 0x00ec | 0x20 | startPublicDataTreeSnapshot.root - * | 0x010c | 0x04 | startPublicDataTreeSnapshot.nextAvailableLeafIndex - * | 0x0110 | 0x20 | startL1ToL2MessageTreeSnapshot.root - * | 0x0130 | 0x04 | startL1ToL2MessageTreeSnapshot.nextAvailableLeafIndex - * | 0x0134 | 0x20 | startArchiveSnapshot.root - * | 0x0154 | 0x04 | startArchiveSnapshot.nextAvailableLeafIndex - * | 0x0158 | 0x20 | endNoteHashTreeSnapshot.root - * | 0x0178 | 0x04 | endNoteHashTreeSnapshot.nextAvailableLeafIndex - * | 0x017c | 0x20 | endNullifierTreeSnapshot.root - * | 0x019c | 0x04 | endNullifierTreeSnapshot.nextAvailableLeafIndex - * | 0x01a0 | 0x20 | endContractTreeSnapshot.root - * | 0x01c0 | 0x04 | endContractTreeSnapshot.nextAvailableLeafIndex - * | 0x01c4 | 0x20 | endPublicDataTreeSnapshot.root - * | 0x01e4 | 0x04 | endPublicDataTreeSnapshot.nextAvailableLeafIndex - * | 0x01e8 | 0x20 | endL1ToL2MessageTreeSnapshot.root - * | 0x0208 | 0x04 | endL1ToL2MessageTreeSnapshot.nextAvailableLeafIndex - * | 0x020c | 0x20 | endArchiveSnapshot.root - * | 0x022c | 0x04 | endArchiveSnapshot.nextAvailableLeafIndex + * | | | Header { + * | | | GlobalVariables { + * | 0x0000 | 0x20 | chainId + * | 0x0020 | 0x20 | version + * | 0x0040 | 0x20 | blockNumber + * | 0x0060 | 0x20 | timestamp + * | | | } + * | | | StateReference { + * | 0x0080 | 0x20 | l1ToL2MessageTree.root + * | 0x00a0 | 0x04 | l1ToL2MessageTree.nextAvailableLeafIndex + * | | | PartialStateReference { + * | 0x00a4 | 0x20 | noteHashTree.root + * | 0x00c4 | 0x04 | noteHashTree.nextAvailableLeafIndex + * | 0x00c8 | 0x20 | nullifierTree.root + * | 0x00e8 | 0x04 | nullifierTree.nextAvailableLeafIndex + * | 0x00ec | 0x20 | contractTree.root + * | 0x010c | 0x04 | contractTree.nextAvailableLeafIndex + * | 0x0110 | 0x20 | publicDataTree.root + * | 0x0130 | 0x04 | publicDataTree.nextAvailableLeafIndex + * | | | } + * | | | } + * | 0x0134 | 0x20 | lastArchive.root + * | 0x0154 | 0x04 | lastArchive.nextAvailableLeafIndex + * | 0x0158 | 0x20 | bodyHash + * | | | } * | --- | --- | --- */ library HeaderDecoder { - // DECODING OFFSET CONSTANTS - // Where the start of trees metadata begins in the block - uint256 private constant START_TREES_BLOCK_HEADER_OFFSET = 0x80; - - // The size of the block header elements - uint256 private constant TREES_BLOCK_HEADER_SIZE = 0xd8; - - // Where the end of trees metadata begins in the block - uint256 private constant END_TREES_BLOCK_HEADER_OFFSET = - START_TREES_BLOCK_HEADER_OFFSET + TREES_BLOCK_HEADER_SIZE; - - // Where the metadata ends and the block data begins. - uint256 internal constant BLOCK_HEADER_SIZE = - START_TREES_BLOCK_HEADER_OFFSET + 2 * TREES_BLOCK_HEADER_SIZE; + // TODO: This is only partial + struct Header { + uint256 chainId; + uint256 version; + uint256 blockNumber; + uint256 timestamp; + bytes32 lastArchive; + } /** * @notice Decodes the header - * @param _header - The L2 block calldata. - * @return l2BlockNumber - The L2 block number - * @return startStateHash - The start state hash - * @return endStateHash - The end state hash + * @param _header - The header calldata. */ - function decode(bytes calldata _header) - internal - pure - returns (uint256 l2BlockNumber, bytes32 startStateHash, bytes32 endStateHash) - { - l2BlockNumber = uint256(bytes32(_header[0x40:0x60])); - // Note, for startStateHash to match the storage, the l2 block number must be new - 1. - // Only jumping 1 block at a time. - startStateHash = computeStateHash(l2BlockNumber - 1, START_TREES_BLOCK_HEADER_OFFSET, _header); - endStateHash = computeStateHash(l2BlockNumber, END_TREES_BLOCK_HEADER_OFFSET, _header); - } + function decode(bytes calldata _header) internal pure returns (Header memory) { + Header memory header; - /** - * @notice Computes a state hash - * @param _l2BlockNumber - The L2 block number - * @param _offset - The offset into the data, 0x80 for start, 0x019c for end - * @param _header - The L2 block calldata. - * @return The state hash - * @dev The state hash is sha256 hash of block's header elements. For each block the header elements are - * the block number, snapshots of all the trees and the root of the public data tree. This function - * copies all of these to memory and then hashes them. - */ - function computeStateHash(uint256 _l2BlockNumber, uint256 _offset, bytes calldata _header) - internal - pure - returns (bytes32) - { - return sha256( - bytes.concat(bytes32(_l2BlockNumber), _header[_offset:_offset + TREES_BLOCK_HEADER_SIZE]) - ); + header.chainId = uint256(bytes32(_header[:0x20])); + header.version = uint256(bytes32(_header[0x20:0x40])); + header.blockNumber = uint256(bytes32(_header[0x40:0x60])); + header.timestamp = uint256(bytes32(_header[0x60:0x80])); + + // The rest is needed only by verifier and hence not decoded here. + + header.lastArchive = bytes32(_header[0x134:0x154]); + + return header; } } diff --git a/l1-contracts/test/DecoderHelper.sol b/l1-contracts/test/DecoderHelper.sol index aa1e9d326fa..cb2da5ae603 100644 --- a/l1-contracts/test/DecoderHelper.sol +++ b/l1-contracts/test/DecoderHelper.sol @@ -6,21 +6,12 @@ import {Decoder} from "../src/core/libraries/decoders/Decoder.sol"; import {Rollup} from "../src/core/Rollup.sol"; contract DecoderHelper { - function decode(bytes calldata _l2Block) + function computeConsumables(bytes calldata _body) external pure - returns (uint256, bytes32, bytes32, bytes32, bytes32[] memory, bytes32[] memory) + returns (bytes32, bytes32, bytes32[] memory, bytes32[] memory) { - return Decoder.decode(_l2Block); - } - - function computeDiffRootAndMessagesHash(bytes calldata _l2Block) - external - pure - returns (bytes32, bytes32) - { - (bytes32 diffRoot, bytes32 l1ToL2MessagesHash,,) = Decoder.computeConsumables(_l2Block); - return (diffRoot, l1ToL2MessagesHash); + return Decoder.computeConsumables(_body); } function computeKernelLogsHash(bytes calldata _kernelLogs) diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 97c05292291..953963f7af4 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -39,122 +39,125 @@ contract RollupTest is DecoderBase { registry.upgrade(address(rollup), address(inbox), address(outbox)); } - function testMixedBlock() public { - _testBlock("mixed_block_0"); - } + // function testMixedBlock() public { + // _testBlock("mixed_block_0"); + // } - function testConsecutiveMixedBlocks() public { - _testBlock("mixed_block_0"); - _testBlock("mixed_block_1"); - } + // function testConsecutiveMixedBlocks() public { + // _testBlock("mixed_block_0"); + // _testBlock("mixed_block_1"); + // } - function testEmptyBlock() public { - _testBlock("empty_block_0"); - } + // function testEmptyBlock() public { + // _testBlock("empty_block_0"); + // } - function testConsecutiveEmptyBlocks() public { - _testBlock("empty_block_0"); - _testBlock("empty_block_1"); - } + // function testConsecutiveEmptyBlocks() public { + // _testBlock("empty_block_0"); + // _testBlock("empty_block_1"); + // } function testRevertInvalidChainId() public { - bytes memory block_ = load("empty_block_0").block.body; + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes memory archive = data.archive; + bytes memory body = data.body; assembly { - mstore(add(block_, 0x20), 0x420) + mstore(add(header, 0x20), 0x420) } vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidChainId.selector, 0x420, 31337)); - rollup.process(bytes(""), block_); - } - - function testRevertInvalidVersion() public { - bytes memory block_ = load("empty_block_0").block.body; - - assembly { - mstore(add(block_, 0x40), 0x420) - } - - vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidVersion.selector, 0x420, 1)); - rollup.process(bytes(""), block_); - } - - function testRevertTimestampInFuture() public { - bytes memory block_ = load("empty_block_0").block.body; - - uint256 ts = block.timestamp + 1; - assembly { - mstore(add(block_, 0x80), ts) - } - - vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampInFuture.selector)); - rollup.process(bytes(""), block_); + rollup.process(header, archive, body, bytes("")); } - function testRevertTimestampTooOld() public { - bytes memory block_ = load("empty_block_0").block.body; - - // Overwrite in the rollup contract - vm.store(address(rollup), bytes32(uint256(1)), bytes32(uint256(block.timestamp))); - - vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampTooOld.selector)); - rollup.process(bytes(""), block_); - } - - function _testBlock(string memory name) public { - DecoderBase.Full memory full = load(name); - // We jump to the time of the block. - vm.warp(full.block.timestamp); - - _populateInbox(full.populate.sender, full.populate.recipient, full.populate.l1ToL2Content); - - for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { - if (full.messages.l1ToL2Messages[i] == bytes32(0)) { - continue; - } - assertTrue(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not in inbox"); - } - - vm.record(); - rollup.process(bytes(""), full.block.body); - - (, bytes32[] memory inboxWrites) = vm.accesses(address(inbox)); - (, bytes32[] memory outboxWrites) = vm.accesses(address(outbox)); - - { - uint256 count = 0; - for (uint256 i = 0; i < full.messages.l2ToL1Messages.length; i++) { - if (full.messages.l2ToL1Messages[i] == bytes32(0)) { - continue; - } - assertTrue(outbox.contains(full.messages.l2ToL1Messages[i]), "msg not in outbox"); - count++; - } - assertEq(outboxWrites.length, count, "Invalid outbox writes"); - } - - { - uint256 count = 0; - for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { - if (full.messages.l1ToL2Messages[i] == bytes32(0)) { - continue; - } - assertFalse(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not consumed"); - count++; - } - assertEq(inboxWrites.length, count, "Invalid inbox writes"); - } - - assertEq(rollup.rollupStateHash(), full.block.endStateHash, "Invalid rollup state hash"); - } - - function _populateInbox(address _sender, bytes32 _recipient, bytes32[] memory _contents) internal { - uint32 deadline = type(uint32).max; - for (uint256 i = 0; i < _contents.length; i++) { - vm.prank(_sender); - inbox.sendL2Message( - DataStructures.L2Actor({actor: _recipient, version: 1}), deadline, _contents[i], bytes32(0) - ); - } - } + // function testRevertInvalidVersion() public { + // bytes memory block_ = load("empty_block_0").block.body; + + // assembly { + // mstore(add(block_, 0x40), 0x420) + // } + + // vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidVersion.selector, 0x420, 1)); + // rollup.process(bytes(""), block_); + // } + + // function testRevertTimestampInFuture() public { + // bytes memory block_ = load("empty_block_0").block.body; + + // uint256 ts = block.timestamp + 1; + // assembly { + // mstore(add(block_, 0x80), ts) + // } + + // vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampInFuture.selector)); + // rollup.process(bytes(""), block_); + // } + + // function testRevertTimestampTooOld() public { + // bytes memory block_ = load("empty_block_0").block.body; + + // // Overwrite in the rollup contract + // vm.store(address(rollup), bytes32(uint256(1)), bytes32(uint256(block.timestamp))); + + // vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampTooOld.selector)); + // rollup.process(bytes(""), block_); + // } + + // function _testBlock(string memory name) public { + // DecoderBase.Full memory full = load(name); + // // We jump to the time of the block. + // vm.warp(full.block.timestamp); + + // _populateInbox(full.populate.sender, full.populate.recipient, full.populate.l1ToL2Content); + + // for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { + // if (full.messages.l1ToL2Messages[i] == bytes32(0)) { + // continue; + // } + // assertTrue(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not in inbox"); + // } + + // vm.record(); + // rollup.process(bytes(""), full.block.body); + + // (, bytes32[] memory inboxWrites) = vm.accesses(address(inbox)); + // (, bytes32[] memory outboxWrites) = vm.accesses(address(outbox)); + + // { + // uint256 count = 0; + // for (uint256 i = 0; i < full.messages.l2ToL1Messages.length; i++) { + // if (full.messages.l2ToL1Messages[i] == bytes32(0)) { + // continue; + // } + // assertTrue(outbox.contains(full.messages.l2ToL1Messages[i]), "msg not in outbox"); + // count++; + // } + // assertEq(outboxWrites.length, count, "Invalid outbox writes"); + // } + + // { + // uint256 count = 0; + // for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { + // if (full.messages.l1ToL2Messages[i] == bytes32(0)) { + // continue; + // } + // assertFalse(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not consumed"); + // count++; + // } + // assertEq(inboxWrites.length, count, "Invalid inbox writes"); + // } + + // assertEq(rollup.rollupStateHash(), full.block.endStateHash, "Invalid rollup state hash"); + // } + + // function _populateInbox(address _sender, bytes32 _recipient, bytes32[] memory _contents) internal { + // uint32 deadline = type(uint32).max; + // for (uint256 i = 0; i < _contents.length; i++) { + // vm.prank(_sender); + // inbox.sendL2Message( + // DataStructures.L2Actor({actor: _recipient, version: 1}), deadline, _contents[i], bytes32(0) + // ); + // } + // } } diff --git a/l1-contracts/test/decoders/Base.sol b/l1-contracts/test/decoders/Base.sol index ee95efe7a46..19cbb6ae2ab 100644 --- a/l1-contracts/test/decoders/Base.sol +++ b/l1-contracts/test/decoders/Base.sol @@ -6,6 +6,7 @@ import {Test} from "forge-std/Test.sol"; contract DecoderBase is Test { // When I had data and messages as one combined struct it failed, but I can have this top-layer and it works :shrug: + // Note: Members of the struct (and substructs) have to be in ALPHABETICAL order! struct Full { Data block; Messages messages; @@ -24,14 +25,17 @@ contract DecoderBase is Test { } struct Data { + // TODO(benejsan): Use HeaderDecoder.Header here? + bytes archive; uint256 blockNumber; bytes body; bytes32 calldataHash; - bytes32 endStateHash; + uint256 chainId; + bytes header; bytes32 l1ToL2MessagesHash; - bytes32 publicInputsHash; - bytes32 startStateHash; + bytes32 lastArchive; uint256 timestamp; + uint256 version; } function load(string memory name) public view returns (Full memory) { diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index c846f12a29a..9caa8cac72e 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -17,18 +17,14 @@ import {AvailabilityOracle} from "../../src/core/availability_oracle/Availabilit contract HeaderDecoderHelper { // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) - public - pure - returns (uint256 l2BlockNumber, bytes32 startStateHash, bytes32 endStateHash) - { + function decode(bytes calldata _header) public pure returns (HeaderDecoder.Header memory) { return HeaderDecoder.decode(_header); } } contract MessagesDecoderHelper { // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) + function decode(bytes calldata _body) public pure returns ( @@ -38,14 +34,14 @@ contract MessagesDecoderHelper { bytes32[] memory l2ToL1Msgs ) { - return MessagesDecoder.decode(_header[HeaderDecoder.BLOCK_HEADER_SIZE:]); + return MessagesDecoder.decode(_body); } } contract TxsDecoderHelper { // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) public pure returns (bytes32 txsHash) { - return TxsDecoder.decode(_header[HeaderDecoder.BLOCK_HEADER_SIZE:]); + function decode(bytes calldata _body) public pure returns (bytes32 txsHash) { + return TxsDecoder.decode(_body); } } @@ -80,27 +76,21 @@ contract DecoderTest is DecoderBase { // Using the FULL decoder. ( - uint256 l2BlockNumber, - bytes32 startStateHash, - bytes32 endStateHash, - bytes32 publicInputsHash, + bytes32 diffRoot, + bytes32 l1ToL2MessagesHash, bytes32[] memory l2ToL1Msgs, bytes32[] memory l1ToL2Msgs - ) = helper.decode(data.block.body); - (bytes32 diffRoot, bytes32 l1ToL2MessagesHash) = - helper.computeDiffRootAndMessagesHash(data.block.body); + ) = helper.computeConsumables(data.block.body); // Header { - (uint256 headerL2BlockNumber, bytes32 headerStartStateHash, bytes32 headerEndStateHash) = - headerHelper.decode(data.block.body); - - assertEq(l2BlockNumber, data.block.blockNumber, "Invalid block number"); - assertEq(headerL2BlockNumber, data.block.blockNumber, "Invalid block number"); - assertEq(startStateHash, data.block.startStateHash, "Invalid start state hash"); - assertEq(headerStartStateHash, data.block.startStateHash, "Invalid start state hash"); - assertEq(endStateHash, data.block.endStateHash, "Invalid end state hash"); - assertEq(headerEndStateHash, data.block.endStateHash, "Invalid end state hash"); + HeaderDecoder.Header memory header = headerHelper.decode(data.block.header); + + assertEq(header.blockNumber, data.block.blockNumber, "Invalid block number"); + assertEq(header.chainId, data.block.chainId, "Invalid chain Id"); + assertEq(header.lastArchive, data.block.lastArchive, "Invalid last archive"); + assertEq(header.timestamp, data.block.timestamp, "Invalid timestamp"); + assertEq(header.version, data.block.version, "Invalid version"); } // Messages diff --git a/l1-contracts/test/fixtures/empty_block_0.json b/l1-contracts/test/fixtures/empty_block_0.json index 71278c67c1e..e8312470550 100644 --- a/l1-contracts/test/fixtures/empty_block_0.json +++ b/l1-contracts/test/fixtures/empty_block_0.json @@ -35,13 +35,15 @@ ] }, "block": { + "archive": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee1100000002", "blockNumber": 1, - "startStateHash": "0xc738d05d59876de0510b4270011e7f52341083568b9bafef2324af4d12eca533", - "endStateHash": "0x87bffdad8ab435bf2382a7a6cf54d95dbda6e43ff1d3810cc3d1a6a65aa85dd8", - "publicInputsHash": "0x2becbeeb3170f323bf0e30641b4b4da3dbf439caf5639a2eef139173a6693f8c", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "chainId": 31337, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000015b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000201864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa020000000116642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000101a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee1100000002000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", - "timestamp": 0 + "lastArchive": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", + "timestamp": 0, + "version": 1 } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index d09682cffc1..aeabd316808 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -35,13 +35,15 @@ ] }, "block": { + "archive": "0x062c84d465ee9d45786f9027505262f29ec82349c3af173660688223d234946a00000003", "blockNumber": 2, - "startStateHash": "0x87bffdad8ab435bf2382a7a6cf54d95dbda6e43ff1d3810cc3d1a6a65aa85dd8", - "endStateHash": "0xe6d5706f6089a53a07f19afc1f32f6491201c964430640256a526ce9155d4766", - "publicInputsHash": "0x12f4fc1761991304cfc810bfa9d4a2928b1a536c5ba2f0f6f943f16ed8163312", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "chainId": 31337, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000659eb26916642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000101a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee110000000216642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000201edec46da82748ab9159023272fe1c3d4a5533cd7f2bfb4aea950670ac42c7c900000003000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", - "timestamp": 1704899177 + "lastArchive": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11", + "timestamp": 0, + "version": 1 } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_0.json b/l1-contracts/test/fixtures/mixed_block_0.json index 50ff83dd3ac..f69ea9d7baa 100644 --- a/l1-contracts/test/fixtures/mixed_block_0.json +++ b/l1-contracts/test/fixtures/mixed_block_0.json @@ -52,13 +52,15 @@ ] }, "block": { + "archive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002", "blockNumber": 1, - "startStateHash": "0xc738d05d59876de0510b4270011e7f52341083568b9bafef2324af4d12eca533", - "endStateHash": "0xed09b43d862f8628640ddc03012c80962c0bab9bf63c4962b7b1ef80e80db89e", - "publicInputsHash": "0x0dc5c55cd235083803f33a86381f9c1552213c0cb89d33d8fd35d9f1b617788f", - "calldataHash": "0x094b6884a31f1505b1f60a4f96a44b60b24647d3edcf532b4a30c242eb75a894", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc000000909bbef5503d1570cbdfeef1232fcd239004bd51330c71084102df1b0139c96454a34fe9cc92f16c9b5d2533dab3abee1e6f76a18273bcfdf80b7a7cda429b708969d07be79d1941457464b82af9c8c2651e9b600a5131089f6843b80ac97d1043a69c02bced13318fb24cc05e475cc7a82caf0e1c9b7fd29692d53e3ac240524950cf9634ec8f79c3e8de8fb000d496890000009083b969edfbbb257128896182c090f34ff1055a32d42f9ccfc0b3dd3ce4cdf884a0e66f914bc63aaf4f5d07475e0eb18967ed28a4fa4a722844d748ad9cb87e0cd6f26836c85f99a81db636784da29be60e0514c60657d5eaee7bfd26d21f8912e54dc5a436919d32f94f92f8551875582ff1014c6212aafcbeb0aeb8fe378cd8fbe4cc0b72a00c2fa42818020315e30b0000009088900d1181bf09eb9401d224b2666f7361ed29ebfd46ca3c46b4ea3d24ede87559597ee2eaa8782b5d45b972da0c7f15d7d3684c0c52536a64ccb66ba3c1c9a4c2041bb0ab9cbd265801c5903bf9f1ce182b8827e39f1961318f284f9c82ec2d9d375ceb912d3862f6e99f7a5f4d4b751961378e0dab4241c89840533380328f47c47e47ff8cf9a44b7ef7fd84424a61000001bc00000090026c3b43889bbc795a4f21a026fa2868b016bd91e2b52e2ed7da7960ce6bf2f12e6330640580504824bdf0174c4b84c88602a8bb449639b0dfdbff4fa7d8cc80e507ad8a275cef132ecbadd5a21661d207bf4cc07ed6ac045f2bb927142b6c23faee0aae6fb05626267b51f90bcf26b523c1f3b9fa11973a138717d5b5fcd754477eccdc0951c614675265aa0d2c00a00000009060a961cbc3407502d66a39ccf0ac0b5de0d2ec509f149a509553909a67de20e04c15e05c11abdb2683b84c468fae0c55fce1de1efc63edc254961c5184530472e7170c20d2f7f8627617283e0e38f5ed0d5cf245fbfc1de41ddd83006014f575cadbcfbfc4958047cb85f884272bed122ec46b08ae5ed4cc14b6bd8703df3ce13f7f82aac100a669c48d98af079f2bc6000000903ea20ca150a8cdd46bd1040b3026003863c133391fb9c2348f37741f6676eb981ba34dc9042b14fa269710bbfaa8e44ec2db9cd0f1ed0bf69b2101e2aa28318545218f548f7833d01326256a65e17cb00980e953ebbbdf0051b0cfd19d868e55cc8bd7e47c1d8e6900edb0fff15970f92031a47fa806aac3ec4b3ba2c16be45c980c04074ade5d1bdb73c81f8a465997000001bc000000905c499acf9ced813869c64d1bda076a5261846bf036ff6bc4cb5d2af4808ec7a7855fc966434bb84463ca86c7bedb9fed6b49a66c4b602721cc4cf5b0a17792c464e29824e4c353797a83ced97b517f341deffef75774a08b0a8c1d8e7e1b4aa4a26ad2a29fbf4eacc6c2d4bdea808baf0aebccaf141757398a4e5e91bfc0f14d4c38c182268895016e7b37c5c1f70d2e00000090d39b69c05f9bdfa76069cfd63d6ffe7fda52eb5281d8b87cc9c280dc1ac000228f3f4d71635405974464ed3ba854f19784e389155e5d1baa82f9c1208bf7b69d929a83e4e57bb0b383bf69292a8f767f2415587a9ce719e53d2c2189ced32e37067444a5e02a974b8c8868d7c67d2935045232888ca2221335e743cd6d34d50d6f17f87a11c6e3951990b8f1d9cf35ff00000090d0964ef786dead8ac8401283e615cdbff52f05984e773974a640b5aa68136a422d7f0b3d63783abdac8c4a7e8ed7ed12671bc2fcf9fe967681beaf6adc1ae8cdf7834e5fe9dc08c69c7f58b397356ef516919ae029c967364df751e3a7cab589adaf0272dd34a34cc46596185cad7ca918bb1a1686b961a71c888e2424a0f8ed0afd288a4169c9fe4f43a22059a4cf86000001bc00000090ac72f9cf1974c51361ad65c0e1ff26bef2b533d413a2e332f9d400a922902cf0602b0f558dd959c3619a0a609884be90d255ced6a9089cd057cbea97a32ddc499107029318f5c65573eff88479c7f45b18129b888d55d65213bf1ae85307a7bb3bb580828b14911983b28f5092ed6d8f0c9f598a840626a6f8f6f55572600924f2d567b2d49c87eeb18e0ef6ce68c5f2000000900e442dddde36ce021e8ca2e3a8d730f9bc755ee0ed429103089ce923b09ce93a5dda7df1cd490dde95d6a9e89c9f37d52691c426fea8dd4ec33bd274b82c14cca7767b61c56da8e2f3e079e1e132cd0520c854a446d6a47d6031ed9492413c99109423b0038da0bf1617efac1a799f441f00ea166c99b9bbcbb415ff75e4984f8bf27fd5ce539d687a08d98e9246a26900000090149fea1dc7a7898a5172e3fac5c8bd87cbe9de239b2dbfe3315693a25466c5da49171a93c50da9721aa1da1f34775da347c4630502b894ee39c485ac28fcac715722a321c96e3521e4d0395cf38c096020d8aa15be6d2f4f68d61ecc4ce68154e645963864a7b73ce863bcaa5a3a1a38076fc4eda1d81ab7b8af1740f29513f9b3e90f390b3737e2aca29a09e0194402000001bc0000009082a519da67f66077a2d4a226bfab1f2df6c5d0331f6bee3639f9824a2273cc343c18bf79eb245debdba79b7881b8725775df0e0a5d0c5c76fa47a5892eb855e5a6ac49aa1574762a21c1e847dabc8ddd0adbfd1b9d4447595e98123afa44363ed253e217965aa3e1797330bf5d62cc461322eed52fd8ca980a81518ed15ecc85b28b67f116da4ad8188b171328d8b31d00000090dc3426f589048e2e2c1e57a7269e1a4628290af1209cb03e4fccdc9f7d02651126417d28fa16303e782779e14e7900e2739e93d0a3110925bb86a14bb24424b7cf09d78635791a79d3b83e2b5a70fa9015e9c7c8ff1328a78f71139f0f6a3519fa98dd49837207fc8e68ca16b6e91d592e23a0c2876062cba48d0c081be962c8c7bd404c15767f2f06c513c5eb15fbcb000000903a27be9bfe0cf52c0ad565798650313d1e4afb29e6ca4a8aee320efe5f667f41cc7fe43c33ef0e027a87dfaa8dba4a8277cd27641a0fac32f5fbdb8a5a8793269e212207f87ff35731f72098ad4001070e6463880de4e1530627736c292bf27fcb2272220055f3c283c90fe8f97db20d062791df527bd2abf5786c0dc171fa17748504ec4913b0be17a387ab5c1affeb000001bc00000090aa672c329510483f5b9454864206a869d1259056243caa9375e64a20072d06435a12c7cb2a74a5cf4a26453c6ad0dd52841a460ff50030396fbb5716ba859c28579b8fc1bdd5f2fa1bcb223da7275b6b1acee98e258cce6a4541ed6d280f23639b8ed4234989897d6f3e909c3df2d8bf2681b7c0ef1c129c79012cfa70de3f668dc7cdcc49d1d656ed6a4c8c24c01c8d00000090b19771862f0ea8fc9317d9abe4add7c7087bc230d08ea82d3522f0979aadf22dc674d48673f8c153533b46a075d77a72c6897366191b55c6e0166bbda7b3d42db71758530794e3f487c736c7341d2410230e6427d7826d47f8d955ea78659d852e782393fcc3ab242f3d24c6409908b71578693b0c11c03f8d961510887042808f985f6dc934952421dcdfabe35cd98a000000900747f0abdd4f91886927baa5f27738eb3b93b62ca9b741310c3bcd61453c11269186c3ae8414e827b96b8bcae919dcd04604a1eabd806ec897739e32c732cad404cda5e7de5ab971260f54f0b38e755b1f92b649664d281194bcf208f61a9751605bf50a44657354d09133761c8cca1402bdfd7aadb82b2e6b3471597432870d821a0748a0d616ca6b3b7184b0451730000001bc000000907f384297611556d8a055147c4c8b5efe91e681d72fd1cb8880c69bb17aebedaed24d58441dc48e4f04134fb2ca5e388fc96424c3a992375fdfb9e82784767fe5c97efff389cd3e6c43002d324422e2310d2c83601b82b80d4c93b20943149665234b30263b8bd36a59ba0aa1a3085d3616ad990ac5a3407db72091eced72e554814d24861f7546a1a70a2cf8a28de5ca00000090e55a4d0ce24b4659fa6ffced6d7e9c959feab4ce85b796037d30081a7e82b1088cd7490af1c9915479c0ddd708dbf104f91151e3ccaffe311e54a7b3190d925bd7f0ee30b4f3e293ba5f2d00a21f2c1c0cf328d063090615894d977ac7eba5306ff203652041049dcdc1a331870d281414837f7c2bf7cca89a9d9f2991d9da9c6329473c2d34aec79c1584c5fa6bce3e00000090e1d5cc49a8e4b99e93cd98a94de5affc4f051c2dec07aec7228a95a8b5a01cce6f1ada2450667634d48b60c2c636346b7000249a270d40e894f2f7254c156d1956e48d263fc2f9c5470bd079971fd2c5108b280fe66f674a45a48b19b147f62dc7761cffd758079a9216bbe0ad43a4c508a61d27a8d9eb43160b8bcc44f2e5fe62f3a3b219c18cecaea6747e47c37feb000001bc0000009072f8ae1bbdf59ab65c93cc05d7a355e5316642ff8db28c9e0ba07d4316be9a8dc3a7efe96f98fc5bbbf2e5c18e9486c298c742d659aaf45a5d240f9b70f6f8bc14579bd34779c5f6a43e1d33d2bfaca929cc633a5d1c38513436906ff38fd87a3ad45223260cc18abcb9b1a750837e0f0a5ca4436cf6fa8ec8c3d43d56a2efc7b586f7eb3ee56c9ed8c7a59104d9e5820000009020ad37c54953810dc0898acd7c2c98f995e94294bfe3e7616037797c72c0cec5f56b7c7a2e8f0b257cdfb63e9329466a58076b7207f4ee5589c4d7312bd7efccbb5f2c40c22dae8376b8b851d76a1ca61878a7925284cf76fae653a18918bfa22c235cdf5e7c80abb178be43fbd96cf715fc8a6bcbbc58e283159aa13abb3dd5c60960ff37f7e762d9e11ac1393de26f00000090212c7a82ba9a7e1c81a051465ee493d5a51b25f894f6ba300b0654a3ebb3be22f33ab5e60f57defd957c5e1aa0d699c344ced5a946386ceb30be42711abad082a730da18fc189122ea633494eb9b3afc2105e6a56372319f65638e30496f50b867c650085e21a4ab907a320a38bab5951dadc260f6998e69da9a9e3e4216bea0cdcddb554fce18070b264116c82f861800000e00000001bc00000090a451e3d670f70431e3422f55fcec6bb352bfb5ad75e56a2f25ee8593509f7a31c5c17def61bf6fdacd02afd35757c861540855acdf07e48ebabdeca89cc9e2d5f10c590396cf9991c75a28b54b74df2c0b1f55c75274147ec85bd2e0940b20dad498d59d8f5a43e94382ef90e6e0eb4a1c7361ca729f8cb2c9acabfb0b8e08967bf3b3b3f6ebe7048d5cab3b0adc6b7100000090177e8bfa86e98ef6470bc450cb68e38a972eb47b25cd7b266460f4a483eb53a0ce1365351c738ea4d27f90f0df0f15d973d4b6489b072748b43bbc5d64fbbe5cda3ea0543f7190596d0dbf6cc333ec1b0f735e08a769c7ff3e37a0e3b6dd909f30f68e84bbb5f6396f604ff1ec76e8ac1070a6c6d0aafe2c34aec6b14845a2380343b6d8e9e7a0e3c76ac45f7c96b8cc0000009028e81d7fc9248efc832f4d37543d8ec7693fc143e0044ab9571d6ee4cd4100fc44bf307979fb2f12bc228ada6d114690e4c056ff0f2a24c7597f1a7387e2cbaa4325aa9c2589f89c55bf127b530ccc2c28cf3311a2b24d3f44a57cd305f7027b35e81855b074fe90dbd164c6f94238020638c3d2648d89f41d71e64f7b4ac29e311b0f77e319c707456418e605fae298000001bc00000090c6927472687ee6df3087053f3305857ef778999110c167a61b770523441355eb2e252173acea10ef091928865d740d12f9198252364bcd53567a140c25d488a81f8e466ddfd7f6bdfa0386f05200ebeb2f0e971fddb99078a99bd1faafd8d264e2a6c0c581a6146c8f6bd7cbb12147df21a113320d27267a572ff5e8c77ef3ff2b25b5ac87f36e2ac64bc929a8eeeedd0000009023350e97edd2d322022b65061a38b3ffe9d6f05c1652aed846804ee2fe5c2660ceaf5554177ddbc05f663f0b6d61cd4bcb72dfcd71ac5a8b34d61dc787774cd2daa1e99aee0cf585b61347a8d012336202a1cefb29f30a7b8cfbeffdef3bada09da5ff1b82f3e4559a24c5d62a46fddf1aa147f8fcbb7c3b4d966ceaf292191c0f2e32d6799146445a91b6f7c0e575fd00000090032c447b00b809ae3fc5bee0bb531cc777d478de35b5fd3297e8517cc9a670543ad73e8308c8ffd0ac57ed584b9609d1ac62cd51a734a17b23be0d6efa1a9c523693d877d32e682aa33ae792d51b088a17a033baccd89d0389bccc1253dc79587c465257bc5d737d0f75a3c12f9c672e167d0ff5ad8a09c899fed467bc1f3cf27b31c813cfb779ebf6ae4225b859717e000001bc0000009012305d42791664ecffbed511cba09e66929cb8318a84a519e268b64b61c60156375cd7c834d1e791c1f480c1339696574d6a21edcb7ffa14496b11f2a81adaeed3ee10978ec0c7a0be6370b64c75badc01191363046006c7fc0402c46056d3126df76bda003840bff72712c370130c1b0e5977c8b4b7190037407578ec695e163d4610040d2374e7c2fe91eab3846b54000000901abacc4508cf118dfcfee0568f9dc1fec255e90bde1c28cd6d805f6501a926b9489c512f7fcf75f71f5f96507f33770e4b57dad98e633dfd39dba33c8e2b2f2ac08e9db545af729ed767bb3805a142b21e72956d0d024d893340764af7662ae3d8e43281e30012bfc6777d492a83a89c0b3883dd192d1b8d4915ae9b96542d40c5f35cb7ce71157173fc6adf895a77640000009042e7406e6ea91c7e1f133001cfb88b9ce7479470a7086204c3273420a7e98446cf78ce3236111bde349bd7cf618df3c2ded1e057a412a0cf50dc860d21cae7c4c015195142fb11a9fcb08a4bb88e55e31255aeaab9e2c682699842aeb658552570b38c5dabac8f40964ba29cab2baa610e0d73b6fa11cf8985c932c29381fcc53abb9dae5c567e38aba8a1cfe364d4f1000001bc0000009069c81b2c2afa628b63d46f84e4aaad27acbcb75e0f94bc3a158a3a99c5c2937a92188378028c5f78579e6e24f73b4ae6b4918e2e2df3073b6ea86428c74d819297a41a7e4b0b38c3ad1dfb9255e72c4c01d398b728b20f4d31d2d6aa827c71ce02ce8538a2c6b80d6141c2e36b7665621c9136e0fb53df24796213ff20daf576ec8c2f6873e2fe5c5d32b0bfd873ca9d000000901077cefdd807c8637e951c51da982b6c021c3ab45e7540a9b53b94ca4eea56be9be233025d3e53b810294b200f928d866fff80496672ed68ec82b8f4edc30cfdcbc17d94919269ba4dbd880579876d07177a500d0c469c3abae3bc6f55da917e134910439c390252b756e4b12bca09762552d8c36aaeb215772f6399094f96e12d29bd906964cba09bd63e4d9df9ae5f00000090561b0c52813548509e57d59da60ba6a85d4405fc729a02302883b217cff32424be6041b1cd7ce90957a439e00b1d0039c4e30b5b238bbdb648d4828f6e147a5b007e90cfcaa52b1366e86fce4d10612314e85b32355a6298b952f903b2cf1f4a18ae2ce87c88fdf78a91819437d720a61f269dfdd741ea4e9d75bc40dda13e98afe97cd29aea805182a80457f70b4cf7000001bc00000090f6cd07cf1343c7216a411a544a3d7e71b5a56a40b3af9c1c523eee1045381b8cf25a148ad85e54e88f06844f3c074cc48cf64462908ea37d8cb86b1230851f9b476cdeb096f9b827a5505c482cb1d0e41b4a3c4bbc0ec2581db895437cbceae412a9871b442b28a42f99376e1472aecf11a99476ffcc5e10ad580e244352469043b70e4fcb8a162c5afead4c7b5fd7c000000090a74604d334ebbf486774b8c412a9dea44cebe52cc3285ef48ff437941e81d3f57388df7f35989178462381054b5931d69e0611864e28f1f7fdf2dc2f901bd2a6628f39aaf348f6e9d2478ef089461c8f2abf949e71045e87a2dc683afeaed430de2fe26b3de371059995f2c4010353e2074f6e95837f62cf760b1b103add9967b48aa0e868d0d76b276c706c5c7e1a2a00000090222f83ccd9bfc62814299abf79b67d29701739da7e0a683ef6595ad40862cbee275ee3a3ff9713ad38ccd2f2a7f93f73cb79e6bf5e6fdf439853c8aa0fcfd2b84f7935e985c8091a7555e67ed5f071961b715ca32e375c6d42c74ea0425df8aecd7d270fa90ca05913f57f4a0ad57f0329e9c743117724e634eb72aedbd0ebdd5a1492ad753fe7292af5bf562ec0ceeb000001bc0000009034d7dd691b8df86c3b6237c8db2439aec031c14c200b36bfec393a0982e71e7cac02bc73c224edf50d45b87efe3e477f9e3794b38f5ab4af670b50b20bf0d1ba2637419e94307c7738a17429b67d2f5e134bd0e62a37738eedc16979e988836e022d8fdcef1682c2f5668a187cdc02ea08d3dc0119ac898c636d7dd0bd59133ec47d305cee722a64eddb51b261fe324f00000090729301907fb4c676099f12753ab192f8a2d4cf23feb033de3c63b902ab60290100943dec4bacc6e738a7d2961d57b6f86e4027809a8df750c5df3c58c56099a70f25cd67a696c40ede567fc4b6b1c86c0a427d5332618a91a3c84d8cd2777cd3ccc480528f129de0ce6c754a4772dea30daada4c54a9e120c0cf870529b9fbbf88bc578ad2a2ee5caf0fc9b5a2fc81c7000000908e852e4e17f0c747978a8d80e60d0f5b10b9b5e4ad4f2f68108a5dde3c057c33c8e4110e6a983e4be23bd8bf60be36bb1adfaacc0208300f2b1e8ebb26fabd6fd5c7d368c58ee37709d1c0ecb545ddb618c45281c088819892055647fcc5790b4f8306fc61767d60fac43447aaf64f7603b620d9c2e2da36cdf09ed8198d1704039720d582efdc898bd9cdb4aa7c97d4000001bc000000901d149ca8d7c4ca3132bbd16d86a6b19816552d86bbb81084e235b5b8d24a57085ec3f7f7c0651c85719c82ff3ba64141e90f9bfd5ba6735ba0f2909aae2c618181a7b58956e81856e9801968641a4f1f049c47877ae2a718f4087823f0eadc4a94f765359cf1b3bd0c366bc5ef5bf1c71bcdfcc34172dafbb3e48b29fecf0b20e819354c9e64d4ad05c80cb4435e34100000009017548e46161cd7491fd3bee49819e723cd63b308f95695ee72af5744602207df07004d6cbd459059ca40033d7e7edf8ec76f5e1ca77054d733ca0c35b49ae7a44d7c05a521e7082ed11efd9b896ea1571f16734c08d0eb0449618965dd7ed0f770a674ae3a69d39dbdb6961bc4b3958b2b97405691c885331e22c78acccb81ad9b2e3051ef6a2dda2df8b7bf2e4ebdca000000909da6a35fef6c5ac1c73fd091e4a3604bafd94e15a4a15f2e456763156827acf8b9d166ac80d10693e5caa9c0836f97ba8151360c378a7ee1489cc366a47206562d30c80bc5ee660b959019072c9487442897d7e5b15c55a9007810718831c9b5fc9a59d0c007944adf5d08b05c28b4d50556628306422e08738a7e8b8a9e69b3442b5a5ea4ed0cc5d28b52fb5491619d000001bc00000090f30f0949344c720025364d7ee45222c6e35930daa2e89839c6381042f03657631a9a512de74114b70133e5e3b25fadcfb72840828dcd9f6248d2e805e7538f19c1c7738bb86a6e9780afe23cd62281842d706cd4144b70e686942f9ce841f335c829ef3fb1ffed1170e5eb9d1a2f298317a18350ce5ba07cfc7c3899607d35cf565197b3d287ba7e363c87198202fc560000009016e71b683492bffb376aa6bd7da0c7f8a56c50bb5ba08b21e14bc0cc3f5fd873beab4f0372f72d5d67a9fcca173161c0a4f8b6868473d3e7fb39536b257bd6eab83304b9017895d2de1a80e9a4ac08bf21e7507f287b28090030174908ef3629b64573bf5b7cb0d9d0ef0076b5af4383162cfebdaac872df93accd26c673c48df2bd250acc5d4c069e65a6698a33718900000090f23400722b327791582c289ba5f5caaf670682c5632ea03c3cc140db78dfcce02a90087eb0c52fbf719dfa0040ca5d20ad6683b3263a8f9f84d62d4614768b10ea9128ec1ca07f3badaea2f1a5398e1521a264f0b98ac3cfd9cbb022a16567746344fedaccb362dbf67824398c6efc5018c6e4089e1bd826c520a35027a393d4fb738d10ddce71682201a9774210549300000e00000001bc000000902b06d61724cc7c58acb63fa0517df805cd6f3974429cd068b7160155896c657b3c8bc38401dba21c77ca868009842969c4100c09ef00103b0e2c1b5822c8e494465f977a28f57d5e2b01049323c8e56c0ec1fdc1b7b0b88de4109cf5706a027e95586cc35abe3892257b6bd89c167ebe284bd0060e98ac74330c84abc8c36a24d4c4b2a0c659a0d16327c527df7feb3c00000090efa03261f4d73815d5bc450e8a56be71fbe9a06e5d0d851b75b299e1464771277f47b55ad332847bd6559f9ff5333f677fb8dceb2a7c09019e588dadf69b5fc6f821c897953b3424dbfe5507d42563d406884f2e4579eb9a3619d9a0a5d2605b3272726193aa79a88a1e1e09070c97880e70d3667985b7d125c4f8de5786ca1bb2aa90b2a802e525874bf9d165e2d90200000090c70dfe768cb36b117e8f41f62a4983fa67e2c7d12dcb41ca11d073365bd4f7e063bea59b96360b5a24c7c0d3a44be0afc1ecb558d3b84c63b0e1df996926e11ea186861231e4bb548771da92f6d0e22e1e708aadbca6057d8d76887bb8570c9dffe5a3ab46649f4d7f1073620ef14ede1e783eea0513c3deae136cd05f3577acdeade3011d2f08c3e05d93da2c635995000001bc0000009066b714af7f7583c4b719c6c3eaa75ad7fa5a7189612ed4b4f42b5b9d77f9deaa90945c7dde67cf659363c1abfe681088309dc7fdc4696a6de95407cd266aea044237044609ac705bd0d13197db795b391541f0acad80f90184152e8d6d848c46c6cf9e598542c35f0de0d585cf7aed2c28d31dab5b484b7240c914c6a8524f34e7853263278480f8ff529b6ced9685d6000000903dd7d0ed314579056da5128ded3c01dbd4fc2c01eea6f09a2554f114b7f084ceb0e404a678387e503db2b5a64b4ab30e6a73012f7eae1722ba5b9c8d920152777af28eda3eccaef5317e01f16c977eff15a72827b49edb61dff9033b345aefb8433aebba97e74c768bba02aa83bd95d71d010b06b598ef0838f55fbe6e0af573f06aa91d5b0b239a48ee022705f4a97e00000090741cdd3c214c75f878eb00a51e6272c524fca0e4723fca8045bb7217484ef4395ebd5f1bb8db9dda81e55c2bc67a0aeb1d7ef101a36bf1745533266ccd1083fee39b4f666591e3fb4f16ca02f479844c2ce4d10d5dfe6a4cf2fb031a723b20177c77f087eb0f2e7d4e63fc3d678cf02028f0c61cd7d67aae3408af3b5d5f5fadbc9ec9761e729435aebcb423e30bb642000001bc000000901a45cd9e6bee7482572e4da3efd399e9b6dd5d8d1934a7920411e8fc5908971da05153bdac3a0275fa63558f859c26fb4f9246daa8fc9db275a1ecdc1216e5c40da225674bc9547e14eb9ea779a7eb9b152fb1a22797f9b63521bf6a53c24a3225fa7229274172bb9ca21e00329bafda127289ec3b7af2abd65465babcc51889f34baf0a4cbc88dabb122b48bd0800510000009002708628fef3ca89be4f7e561f630d73491a222ed1a58c1e61b290ff4af55b7ee0fd4daf8320623715acbabb1cf144e74bc0c04d25897e220242f7d5f48048cca75dceef03ca8d2b016e80268cd3181117bbea40a2edfabd1a3d1918127751f4f372d4a55e0445941449a46557a604690be1ced93ea3b87d3555885908fdf9176aca6494d9ee44a655c0323340e946a00000009043857df80f3a4b4f866b7768123c2f5403eed2b00b2ff41eeeaa30454093c35da5483ed03dc6fd2589dc9b4b005be5def48382bd3d089b96e46449f62ce81fa2b8114bc96d09b061cfdff531d1cf27eb0a05609a23b362a58d6caed303347eed9197a093332a1a2d4bbf0e63de69482c11fa09d1257b0ecbfa391c9edb87a68528d554093f6f86d384bec1d206e371bc000001bc00000090d41aec12620f384e28928e6b2d3cf255253f98a1b9cd437fdbb82f9c11120a9c2d6ae22f0a39ced93d8bf104313ec625f547e4b82dd82aa4e5e9fbef921a4bd1347c2e49677b3e7d511d7750e37cd95e10c72f7846246c16ced15cc9f900a485877985758ca4cdc1002c7079a20c96da0c2f0e501a589e86a55a980bea7669f6eb7bb00e3ea2ada0b68d2f7a5f2af993000000902e23d97be99f37413bf94991c0dbfb298ed1df46d0fe2334970823237e17d3ecf4f069d8bdd850aa1d9df1321fefe49c6b5b11a7e5c7e145d2df74ea82da36fa85ced28b2ae0ab2c14435533a968e5a40353ad3eaf3ce13e27cc5b52549c7c08e7e7d15546391834faa6f3a599cf16441c9f89e4f1e7ef2cfde33faecc088f1b2b93092edae2668320614f5d7440efb300000090c956f8998773b509029e1520ec78cebac4d0f1a7c4bb77821a1d0a7fda691e5d81f3bb9dd18a4df95089f58ed9c93cad76f6d0b982309e5b9ef4a79ca562b5a99b743cc1124966ca0ed178478c7e09c8069ac00176881a6fd0b3fb4e01b92ecadb75ed1016c129ff1992b170ab22ba67071a288fbcba253d2894359cc7a84b02283f2a75d407b3c5f1906c72d551dccc000001bc0000009093c6f8e36ac145b1bab3a118608d174423b033ab9528da88df7cdf4ec871959d48ba859ce88ed56a75aaa7a58391c30e870cf0fd05f5a7822ce8ec092052ffad2565ceb74ad04f0d95949f3ad9dddff324871e7445e731710dd3ed2b9441e3229c703527fa835439f593bae6ce60d4cf051aada51eece5fd59db3530a713cea9194bd4c66595557c07e7614b251a0734000000905ff56bc4b4b6264a2209b09cdd93560a91b77d10543e36aeda5bc349023fa5fa7019797b7508e0e017e76f478996a758fa6c86280eea7accece8cdb6a10d3d1e2ec06182ce50cec166c62af29f778ba214d4ebbc541f2e16b22923b48b7d04a54f82199eff6b48c90daed59d873028de230ff33567fc8f890dbf27d826e66a91ddae34e62d737deeac896bcdff5ffdc200000090610d770d4efcb5970aa049f66d860f20b9b8ed09b8e6d9c0fd2b040f38fd57187b7f5ff0a701fc027b5cc20971ccfe925eed17f7d095b4a9d2b91374681a06c727a4f168887f5b830c9d3d9cb17b9e042040cc23e9c92f88038152c892b2b26ba3e9ad8fceab82b36aca0f2b7908de3820cd256a7d49e7b69815f0973a0374af5278c7b6b5d56e0ba0d99950baa81fe2000001bc0000009081197b805e85b3478257dc7a24c3c137cf58ddb396571d7d0759ea5f1df68399920055fcf39bd24c9542e4a5c870b1cc78ab9f4d382b481b893df9960ed8626a1a94dde880ecbd73f108e57cd63bd1be30201c546a6a10d659c78d647f60a1b5318447d4698e0ea585c6f605eabb345417245147b488839eac50b327474473dcaaa709861e9ae35b41a163326822c3330000009023c38da81b376c71b7ea255da4800cb468292f2a1fb778a99b3a83f02cd888caa71cddd8ec9cfe020123fd83f16d718e4af1746a065b236d4a1008150ea7a5e50fd6d2456d280c28670241a63b2b725620573408916e69b8d21209008337b6d3169de9c10a3aeb80229969609cc5ebd0074770e88b19552e472f9bf2ca37291a20411572104debdeabf5525f6c2064cc000000909d29034aee73fce7a151b594a09a0f086f693e43ac569ee795abc3c4938c644479ef9baf4b1cc6f90ea747eff861e5966e65836f63dd9909dacc8f4eb59a29109c4af6168b9b47ab11d9b3432b261fbc14d697b84f698a8a327527521bff5ca3e49103d48a0555ae96adadf35ca2927f1801484605908c8e775d3d8042e6c95b9c898a26a2d8cda29d007bcd0f461e3f000001bc00000090a5c4c80f0fb40efd4b90340ab32f87479a2a8ac6b0649725dfd4e12236405621912820dbeb159623b68d6480077740b198264535a3298e9a3ba6f51a11a4106c290ba36cbf03bf591f8f99c16e3875de16e2cd973d35a3294074dd98f7186ce7fd40bfa08b4e16c7272e87b773c01eed2d8b25c82986e9fa133c134420056e7e90b49ffd21a0996b35d2c4b482c79e7000000090709561921a7a129affb05ff81c2a96b0a6f0c4f4d54c54c5d37028e343b4ba9115bc9131ffa6816bb982218f5233cca591f80052fbfc4f8bcd3c84dd6edce2fbca363cfb2b6485acfbec4af2c32b3e2810ef246c861fdfa1e7b7bb7fa85b6103bb93b8a23860ad77b5483e2e91d027cd033e145924a5ac3b643cc0080817907c6d3d40df0689f2b0fab9dd76455022f8000000905dad2c324fb712b4365a3618f9dd959a6af4cb2051ceb3d2e49d5b560b1ffa501c61908a50305e0ccafeecb216a8c636983d9f5f2bd259a27ab8116be1b1721728bd5ba8311d657bebbb3e87952ac30705b8f415d42c48614f4ac5c9ce274689649deaa3f682bc339a4a42f2f43cf97322436331062c51f2be86586244ba3867aef4fdc00644ef3c2c09bd8bdee63ee1000001bc00000090e172f139502801841ac31483f29202815ab912c3eec81ff9e77bac39756f6687128bc472b747469775d6b8af33e164d92d9a9cf50eb4bf7223dce2a4946f232b094fd04e02b45793416827484b39eba40e03b4ac1cbcef5e23ce19993eb513dccda494c44973ff0aae10a70510c60c081899cccf67e9f5935b3503fe53b380e91a757aea53036076370ed9aadcd3869600000090d903a04d6e00edf953bacd3cb1ed209664094665817f2a5d7b79517d0e26d3ab385fb9c337ed688e4ab46a87ff8f7298ed530b590aed3a6cddeeec550f7ece1a97010604a219225772ec1c28ec2748d402bd7dc7feb73ac952f3e27c9249339d9906c47405b7c7cfdfec16808329cea228bb9f9be95f80f7b1cb9bdefb6e1fb50a103f14cab643e1848945c2dd85d1e700000090019613e996afb9de3b063788d2796ce162a6f423eecfb01cb10a7940d1939de00c357c8cea3bc71aa77a211948c65835e7e214b771bb91dc8c8cd42993b238932b318bb688e77489f7ba99b84560d78f2723c88b91fd2081eafb9549bb7a6a1de4ccca2c3e130a470538e3eedb7931a925494efa63bd03b6a2045170595416f163b8d68eea6c8bb33e1891a4c975fac000000e00000001bc0000009018254c0d76ccbb466a83370520861b1ec37ca8d9749ce0834aada0e0e434d412fe67057cc37522a274e371547d1b1e0046b9d47273a82bcf05c477161888137b67b816318e8fdb945fc408c0ca9c19ab20bb39b17fa2e81985f7f238040ddf093da1b1974dd3419233277c5b9eab13121b1a7edf24018d8220c66813d1a52cd1018f2cc6dae11da8094f811f2b70068400000090a9a8ee0acbf9369f1408225981c8d84499ae07ef2a68030e753190e47d0bd640d27f24fb6f0ca5b1800aabef1f4cdb34ea03746cd8d666a52db8758689b910ba9d2bcef15cef29a0cf99b00b4a9e0df9032495272880c51e18eee2c6f37f9027b4e4017e1153f3d50c8533d1eba2ed34129771d5c27757f299800adaa106d82eb4ca56804edebc88d986c665e48f8fb800000090f32559fa5b72d287b8a1cf04b1cd66e5c70d6b0dcc93612b0614efb1f2b19e218ab98cc25c06075a766af955e5bceaba28954c2f7e3a4b39fd405684090108e089673151545903c680c54d421639dd29201112e70a41a90befb542f4488e9fba3611f2fbb83f0fbbe683bbd2ad11bf3f0cafedf94ab87c216d0ea6f37d953e050858b340060fc120167e0111f201d1e3000001bc000000908c287f342b2402f561febf83d58c64a2651b063f07a7f862fbab9138dc9a3250ad02ce4716c5c93ba32be293c8037da2a7dec052aecd0f167454066c749db15aa23c177c8e4a2c2316476687f50065c122cf881f1e44e5f2e7ab9a5a6f6fe02ea0303fa7e893b46e14e4e5502e6a26640a6f5a651265fce7774cde833fd7b0e529f00557da5aea9bdde5dcdd2a74df6e00000090e48fe6d7d4e0768c28e9712efbe05f27e7579edf1265b1d4c71d41839731c4952bff84bb4aaaab9750926105fd85777f9a0fcd2a75e9091a1b1509f4c57f4aefdd3143d7dd571f59ab1dfcd45460cac81a15f99d9f319a2ddf67a65146b5e02ecb7d49b17d3876ad37acc99b48753d1f1b7bc6b588d3e29d188b52b7ca79555bc7e1530f7c7c8bcbeb387f73085398a5000000903d4610bec22444d2578f584a13cbe8db93826b7324c1091b93babccc0674895cde28c8f5505495db9c15b647d9a297cfa072f9911af8f84ff27787a9187452b57a328655a05d9d2f409df359a2fd83c002858caf2b31a29604c74263e24f69d53c79c5c4f765bb3aab75f93c2855745213f8e9aa7156e6c069a4863d8e10830a2bb104a7b2be7ab69f576a8071d27b8f000001bc00000090f5f453102f6cd97673090be1b8a95db766c55e021f7d10b63a3ff604694df1a752c6c6ad997baa7b18b00ad4904e6ca3cc44067b35df8cdcf17cb41bf7fb0805e481a244571e814b3f84ce392307b4870da7a9c01b0dabf4621213983955c61d2c925fdd20a7f5ffebb4d3b638e415620eac8f88aa7bb6acf5e930d074e4c02d708baa3dcbce03cfc0b575628fcbf39e000000908ebe6a4e2b7a7a23cf833e51ba1b9cbdac2a7a7eb68eec6c0efb6e76c2fb248baadf1bcb8fdd36c61c490273b82d8072b95b87621db49a91abf9fb0e625d07ef80f6361f6731206943ca65ab8633a9a5123240d463c34dc493821dc4c96be86a1de9234a0bf0479f08956f80108b82a820ff694205224a61abe86316f8c8dacce12817bfa0284a224561ad399605b2d5000000908e1b76f7e65bdd0d931f1105d7a31fe430f35143f001e8d36e185818b47f2bb2cfdd0443826b387c43546441dfd8da92759f65eaa6c7c38ff4e159ceb0a676a7aba566675b8bc5fc9aa29693281e8b1d1bdc00adb670be34f1be7729140f26c73852a8f33f7dee2c54132e95f328cd3f136ffc85b35831d9414788acf3cfb42e20518b22ca945aea170522be01ba32e3000001bc000000903b26e03c072cca2064078d6150e583e684cc388292c2dd6896dc09b9a34d4c1d3c9205533a438ed4410b7dd48ecbcc49d21e290609e444970fe1fbebe25372ce548ddc5a3d3e7e49051b28c43691349218e412f9a9eea352f6c775cea1cecc83cd512e0ef90c7ad196209589e5d43b562e6fd424aaf2fab76f1ec6d4a3ee66387f2b61d317143b074d59cc3f5acd4730000000902ca9a7d60ef32445aebd381529f483d3423a3857c9b34b7330a1aaf2148d472202e39a7d2527a4ac2167f7d4e6226b72d601b7b46416fb67a87ee22a9c2a6b70b40e9cd379118d848d0e274e0d76f69b1bd49ceec06bbbc00ae045d6022c58f955862b38f5806d1446030ca3c9f8236c2919485f61af750f5064d92a6fd799f9c4c134344eef935474a7c9beeb07309e0000009073fb4cfbe2c4ddfbd8354b6e1b77131f25231debda99a499e1ecbddfd5ec274b9056a3b48a2b86a8b5152ae6eec55ca847076d023fb9d50927f7df6da9e7d2b8e48bd943e36984d1d44ad5888305d2960351deda02610840ede3eb633a1b3c8142aa9c15972dfc5d2251d8784608b6cd0d4805e283a6f323245921303039a91aae51c54877875b60a9c90a5a6d3d4091000001bc00000090f8a0373901dabe3c21987373e45465bb70beb28d2e198c96634b8c5b3c3318b5c41475c99475e45f99af928add960b77163fc4600e616e69a79eff6af9b00c0bd6e8118ec97f6259688c07ef8c8a7c4f19034fce968e58e21dc88804fc4406b70f5a8fcf5e5897de417d5612eaae4c710ea3020e80e66fcb959d6cc4dca458a6711041ecb08aa3a182942216dd3025c70000009095dae8d18eb1192600785a7b3cb2fdb15a0a69625ab5bb5a6399493534027108ab3a2fd6342e644b44af07b1e5949035d7408fb496b0dd9c5486f47070b187032a72888e83d176ec28bf77e3c09e4517164057c9e3543a4ed1f2442cdac6a9ed6b5d893dd0846e9103f97d9c64fe24a50ea138ac118dd35ae1e14445fc22ea521b8ee289eca6a5b33bc99d132f06dc4a00000090fc15f17a0d6869387f862c9aa0f5253e48fc111b06620a90827b2024fdf814a16ef921124d8103153dfc54a0e0be1167eb195c89956507eb7ae6b4641755e0658f864d79f01765b0260071bcce7ecf062d55ff6af3668375705caa5c1ea5d34416f64039c600894e6cd0f05368ac9ef22006d00cd56bd9eecfdce819ca4cf2a379e1de3c9d7963ff49d4fc627737d59e000001bc000000909be00b8a90104a6d388c22e341811df3216e0a82329012cefa3dad70289d1de4d2ed42e4e1a934a611ed7334a562df4e211df9e4bfb5ebb1506be091e61b9c95e31610398687b0c1bebf82295fe7d38d10b41e2df5137d418f0555c60e7cfae9578f403b3fee849d10a2b6d0d5ee86fb03dcc90b2d370aea15c3c7a6e517db1b8e4f550632a2b4741cfb325a5ae38c2100000090c7b5d6c10924bca9a2be72f585d6faaed3761d1547899ca25c17251f9990d425ba4b6a628de91d8f9d032000ff06ec3c29bab819ea88e7dcd3b0802e5099aaa1054808096f88fab55d2775a8b7120c3920856bc5c188f7197f13bfe1c454c244d838e7dde7cdf9b25be042f7efb63d2b25bf3efe0d8b7a725e6214623a362d44c49762916262bff5e8e48733a944690b0000009073d9dd2f7ceafca4f3e69369d990b717aef7e457f41314b0cf2550de4ef8f5060e524d48878eb292eeb6f1afafe06b8dd6d083d8889a13535ff077afc5b313dbbe124061547edff2c8c9e0756673c1e2063f942e617562ad0f16b9a8d8cc2b4181896d1dd99035c6d7a3c774fc3a9228086f9e3542b8ce17f13253976d114f478f3fc7f1116916ff98f598c0546c367c000001bc00000090f96f7198d858ef2c5157a258d7aeecb62a86967083e60ea8a8dd3b04031bc170338bda35b2611e6801c2b83b79b9306352f1932eb93db6a03c50de6e324b8063b60ea58a4f71734b8e9c8888a519137719225008ebba9effee254aeea7f8b2a374dc2e6bd71c281ab8ce4928177d7e322cb5b0abfed9ec8cc714423b4dcb31c14afd299fdab163b823f71d7b6f1393c700000090c31d6c8aa79191c9a6cce51de95ca224de65ac6096e3a2e0de95fda026cecdf292a0b01a9823908444ce61cf8b430bc2e74a64b9ce759d957b74e51889a59a261fd7208a1cca560b6ddded30c9f60a150b28a0f90e98f0623d5c8ea221c25bcded1009b626aa5c0bfa0fc79ac72e09910610d192054a82624fc139fcf3141e6fb5caf6c17fd68bea5970ae29cfe986d000000090623da42b945ac8e154df72b0e3c3499a3982747bd6d137e87bc68251c54fbee14e73e3f65fc968c6527ef5f174a4cd295c47f2c74e579a8e9b6970fc67afe1ad0a0e504270fabacb15fc4f007255dfda0c98d86592fa4aa519f7ba2b90bd365c9ff06da362dc35472ffe3edcf873f83906a91fec9e1075aa2ff75cea0333f79b91c1121bea7524a7a49d9fb200dc8c86000001bc000000906fb797f0079fcdfc255dc5f1754010fdf5e6d0d407104e5c855c6404c80c34377497400a3706833f4f5a18cfc888dfb1638a0d32d4c801ee659febecd354efae01b2a82f8b32133a14f4df8ad68466de300e85ae51d0de43eaf80fb77a6ad2dacdfa9aeb7073967180441489f4fc5a0215f41613ceca59abb80d711e5163f01f59b94fc72bafde138171786d6ed6d6ff00000090de494d257aef9354e6b3a3845d76b3f045a4aa77ce8f1545223e3c99531ef4be0bc365f4d8d18da0b9189953ae96791af42b963a23044e16fd46564630f066f15c59a0ef16649a9b145285365e6bf89f3060cdb8db0e69f5bd35272394cd51997ebaefc043e078c20d66b3cb641137462039ae20fb14c07a5cf8ecae73e240b01c6bf71d75512f4c32a641ea41e4d0e9000000908cf751b31521b0ccfbd9835f4a2c117ee79bbabe6a2030796d95618a622922c7550a53913481ae1b1b88b777800bc81e7f1442d8cedcf2eba27c75405e60631de14881c3ac9eb324d36b828e211c2457092992799432d06e2f9366e23a6e491d21e91aa874d14c6be9a4259700c53c29259c009f5dee352fa76338d6b0bc972ad4fa9f8d70f2c0f15946d76bfc513f8b000033a000000ce40000012800000090db0e0239cd3aca4bb13607973aff76221897a39cfa8cd67fd76e0e9fd40bb17335a153ddff6b9962eec48bad3b40b81edbe25c60413c57b687e5bd87a635d3cf4dff99f6b6846634a9577c3151bed8192ecd128183ad92bb7cc175257ae1b136d2e4050b97836ef52431817c899c236d121e2b4537d3665d0b2b8887cf8994291b6e57cfb8767c66e41d481044cc048c000000908cc447c48d281aab51648c89eefbfcca50bbef3844a40021d45b069af00f923a846b84541eaf7a36a74e808ab25b520ed7992d87d09c6ad038971fa37ec0c00e43c945c7e241353efe8f9373b66cbbff14f24ef5a48c9499c4945456064151435ca5e0142ed49a35d97325bacdbfe8530aa096ca06e7c4ed25d3a300509948395fba2372db244d241f693ef89d445c230000012800000090c931e46a34d8ce376dfb6fa440845c38f5e56a0bcf5ce275aaf3a97141ba1d401c25097db75b6308088441ad96cdc47dd90036232a4b6df78a7abf9dac39b36117f3a11e1e4ef73da216a3cc488b67e21b0cee2d0e7e333141f8458ebd57097b887ee33d26f4809daf113e1f5d3762c32c0d8a24f34e9cf7f57f6f097f5a24fb25961c8951594546dd3496ed1322b2e500000090ba1d5783ae88e278c74c45f54d973a0426d26a974ecf2a411a73433e67f1def16cdc6e8dbe72d954cdfe2ed8b89e6b64789eb657ff0e4170f40d1fac114675cf8083acb59c3dc9c3ba2291ea14396bfd29048239adc2a92cb2e511be45f2a4a96314e8e5f9c4d297f5a84662ca3e18310e1b7f7f6702eae05cb9926b47b51b67b84fd06248b52256d29c0fe7f14c532b0000012800000090e064a2ca2c276d2fdff1ac724bbd5fa99d3a89c37f1614bc19525c4ee7b70e4a96d9673e901fbc8f9bdc05e2f48d7f8430ebb1de0f2962e2495bebb73d3c5bbb9f449b80a4e9850c542e3cb1f909dbe208d01c071382206283f5c9cd19e9cf1da20007860acd557b75ff9217f3b4221e2792123d7c1ed7b369b7a8ceb4d707c27ee96be2c99c1c6e65d323e005f5e08c00000090bacc846661ed453698d44392c6cf8668ee64500e0ccccdaf16f7479a9c04b8be3a5e75fb53406459b00bbd71d23fa9cf5528c811595b865ea2ac2c0c7bf3ed13c18944edf69ba89a08c56755ea88bb011296c4784da66486e01a2e66726681a8aee0858631a4111df846b94bd531a4961af33b19cd5969f696564c8a7a90c23cf6b6e3dc2baf626d07736d0e9a99e2ca000001280000009007085fb34973a27dbf89914a04f8eefbfecd1fea873dee470b1437c672d79c531f192874293043bef9017a1904bd775484f4d9b9c3908b1edc8d87b18221f6bb46b9170150456972d2bcbc2ab721aea22f8a7c0954d71578e8503ec0c87f90e0e9d0c93fd6366886df7ccc6bee88829700948cba8ecb9b504ccf403751351e78118dbd3f98c8d5aaed211a37203dd354000000905bae15e7f0913f0da17e293b101b9e252523f00d98ea1066f8347c62cf75b60448e26040189916c7aeda51e3a41a156ae5346a6d662103875c2be90d164580cf1d93199d0eaa426add63a20518addb2024600d2c8f03bdb0887a59a823f8529c11837bf1dd0ae48c69d78fb87f9e54a2174420c660314e26fd6e4d82e6639ce9c2cca6e4312da7934fd116561b4a7d570000012800000090f5f772ba9fec64e2938bb61a8e4a8c05d7124f67bb89e598f118788a6ca23d4088e927733d13070001853f2d22e33d82f054fd51cf956fc731101d8c0bef58e85c644b832a3bf6fdc60d2ff4e0e66f2d20a5cf4dcd2da06a638d0aa331f339ab188bc1e0b47c2457bb3badf31094c49b18b5a83f30b762f666e6da83eb25d0f11dc82b7ab1159ef9336b5ab6239d195900000090b9b25433f656012aa8e0c76e9fc055507cdf6bfe9158a11197c085a74a961083681d13e75e6f3b8deafa7c1e0cb2feeb0e8385b6166d7fccf1e91026d61b13f5424b2888badcd0ef01a316e456f9f2511eee85e21758ccce1f28c17ea8a8cf3e8ec21eda7762ab94d9ada4490a69278706350ecb297ddfb0a34f3bcd228be3ee3f0f4fd77a0980001cda5549343d3e3a000001280000009010f45b204ca6778949ed8cb059d25bc4fec6f22bb6708e5b5775a6bc3318048c94e3281dbfc32b947251aec12ab039ca0bcc71bf2f8af8f2440ec0464b64257b876d71ae08fa026006ce4bf0ca30cce70439b4fc302bef0d6dc0b16505e61f8cdd845905de5a394ba75bb5b8e00b3be70a7f47414958d12309d57caeeca5fdea8a0a6dfe012ae3ca7463788f9ebfede30000009093d9e4af78824e416fd082f1c38381198118bfd62d1510f702760be12d4a541b5c40fab0f0792e7c6d0459977f91d7972a27df083484e8673d54d3c9482646173786476f949ae9553d77089d223875120bdd2a15127c23acc23c4825a8ce97e746a3cf5ae7de014f6c33c23ef46ee2ea110ddf95dd47b38f10bbd872517f41cc501bb017580d02366581da31e4c8467c00000128000000905278a3b877dd076261004efe000bf56f2c25fcf680165e56060c0d50ead25c837bebea08da1af822b8b55f4fcc7369d560824e23cc29fbcf18516af0203b32d97df5eea776b3dca2c972a3b36252d33900c6db2f2fb24ff74a8ba96b4d365bcff0f39ee7db79228a0d56a4c1f9fbac122e7fbbc0ac0aa5bf6b96f0b3f8b61f079ae96b6ed4e5451a397523bc38d455ce00000090fc731ea1feb5719a1957621c658c36d136738cee00b31266038661c6e845ba06487469c85f90f3dbaea068013f1cbcb0e2d8f27dfdf5b03b31a8b1c025e7a96f335d3df3a182011e7d70195883a5b3ed022df2012f6be317a86f5b68271e47b2a28cac88c2607c4a8a0a6f89ceff73b50a873eac08cca2d117220098e39607d4626e99160081078d59b6e87df2bbb5d50000012800000090b90fca94a354bec5f029899df0e3eeae745b0f7c3b81750204a2fa20738deae2e9ce83b3883ddb7cf77cb67b14d7335b2501cffa2ba88862386c24cbe380c02456b6614df1fc3073cbee52d1f5933dca191cf08d1d09611b0ab6b64cb718363fddd3c3f74d5f02abb70856f8f8a6d5c615c984213d252584d71ea78becac1f9cbbb701de79f106a0dcbe98f51c9fd853000000903825f89951963c02522c5e559dabea7e622c7abb970f51ef3cba2ec98984d08cca32862d33bd95f4f90a86ed1e68533f54b287a0ec1a320afea3c2d6cae6b129323bf25c008a8c847789e5a50a54cfdc12141b06e3051714ba05e7f8001fd02c2829230b7827a43cdbe0f6eab847f42626b47eef5f9532a97ff9eec1afc9bd65945d052b1608c3f423e1d3d7106511dc000001280000009088313b533cf2e9ded7e742d02d68477905421f0b1fe3bf9b0aa8c146ba17aea6b9ebfab46046f91aa6f251308f7a5ae24afac85650629bb0fd6e6ff310d0903d9b3485f8f3699d6e8768d3c8e9dbf9ac0c3088ad2cca27bbb8b715fdcb577173c726a598464c18e29c680a33839df0e0249798be5fd701e644ec9dd0b497ee800d5ff22b585f1b0003c89d4d639f1e9700000090d469383937ad5cec2958fa45fbb73232e6a33797d712ce99fc33616422f3e7767aaba9df8425553f646b88dd79a3cd90c2c0917ec8c79e1fbe299142dccc7ba1002c088f983b749716b533dcd2ed05361263d51717411a0ccb2e5bde7ed28aa6a570218ac63108d101725a2ef75c466107dbd404cd1033e29dd08e913170e57a813c93383660169b77ab6218d8b7301f0000012800000090dd2331dc5b145d5accfd5953002837ea2900c25d72b0544d2c20ac362b7e25701792cabae84dbdbae11455ffa76b861a11553bd0d42e2047ba0515370f3f559673ad9bdda1a01889c63b047b26935fe817a8687099a6fe9ac41d62f14c8443b9ff5a34bcc1d0dee62427b7b5e35bc30204beac7044caa779595be13bc7c1f0a611312f09ae17bcefcd7cb3a347409f03000000900ce4bc21ecd512d21f678848179e49238b270a25621cf84bf9a1e7811c17af4ca5930d98448f6d4c7d24f25541767aeb21a021b7b50da48f91b18914976612e0623ff08d327b73407fc5bf81500e5a430b30ef9f682c9d324b350ccc37599e03b9c429b6f3aefbfe305b487251c3d7a22c8df0495ea55053bd8ec3a4b009a64a66acf34ef5732e1d20abfdd7ea3e681700000128000000908064feac2cda1ec43b8d0d4a8da77ca08bf9b29bd0db5599c232a2cbc48fc7d7db31a46bc0348cc3877b505af71fd21a8f3c3a191b866ff1d4f172dc23058506b1c915fa73f7dd910ad67a1cc1d9bdee205dfaa161d749bcb84ad9e2e34b159a1a5eac4854d5f628741aeb4206de14da24ead0f17c5f1df3cb37c670d44ab6f7a5ef17bfcdc57ef78f27b0583be0e1bc00000090a50023d2869cd231ce8245a0fd36c7d4ef593aed0a3439043a0d760b410855b844d461853b2b5d03292574e98add9404ab525b669ef626b2b476b9d5aa358d7ac3980734e4daacce1a74cdd909d4f97b1dd8473f3e0f792ada5ac2e04d2ca75ec71aa65c458e6a4466bae8af7ef9e9f62351d140f3edb0c82c1182ac2ae2c33de9177bd048c9fe885036270256efd16500000ce400000128000000905aae60d2a4236edc717c7b085ed3c9e4772d4c755ce6d193ff7166671ae1084a7d3c94a21d3046e77e0611fa9464ce56a8a940342b3faa648a2b27789e9f6149b8a454eb42576f0c51b1850bfe99a5702f9c78bf2951ee936628d76a732ebfdd5a955997d8817f6bccebe078de8933b82a45f4a9b9794ffe40d4198f9ada914848744bb98548412e75b05f21f89d858700000090b55d98355d463f90ac2a3061e19e64a9b27580bc59ce71ac090b40c74611d5c0aee840bbd42fdde9b2ad9b3efc82c2486ddd6daff949830d2ed19f37b13c8e01247f820c3b8ebd2b654eb9da4104bb731709e79fee5dfe8ad72e295f5f7d43e80d87b909c7e54a4a7fbacc195c86b45c083447248154d2da66c1cf61d33b85858aa7b5e3f7a1722e47e9886212f2ef790000012800000090e210e1e82695e55a5e0fce823843b9e31f8914537c3da879b009b81d65c89747db34e8eda613543c1b2d7be16cb5d201a307c688757c0126c2e1dfc2eaf7d623569bc1644592bd20a9fb4cbda5965f452807b575906f5623441066c01c85570843d730e5c252c6487da90e19dbc6ecb60cbfec574b8530155c21cf265eade7484fd5af59b85810a6a5e035c8cedc67f70000009029d7b9f9c3aa84051c2b9f4576d7f0c50b63cf592b16ac8257f78b8f151d515bd38b586f6a1a2b42e596407ed17f912d7981413e72d68f3014b5fcd616a9424818b24059924217459f0d82715ef881850a705775a461c4ebcb74cf1b0cd3f59c44e7bc1d359ec9de7aa8259be3b6e613216ea170e50163a74763d144418e79482b177aa43f6d6445d100fcfea924d1690000012800000090134f4630b5a437598a1589b3a42d3bcf8d1ec5e91e706f4a0a084aaac4b778c0e6edd08a681a2bb2bc78bb08cc768c3ca6f84f58bd015c1b7d2e189009487d95cea5e9c28cd666ddde3df9f227f1202e024ead676d9ed8ebdf8920ced653fec013a9ddba35c8eb023b21ee9f597f079a07dea3b3388209287de4d99afd20ef3fc44c061cd01126d767de3157c7c3e55c00000090e1979b68d2ff9311525c6160c31933241b99b3de6220ea6512d15e32a4064fb80c540dc37be2a93755bb54b2092269c014847453a95fc56b81b4876234a6bed58fb59565e1d8e0acb9c5ed8ee24ed0f110ca41e8a4708479d5f4061c01b0d44ca44a92fdc78338b6b7ab90ef9d901d311417688355823ccdd0e746c6614909c50cb06340e13f6bbad2735f6f3de8c5c40000012800000090d3c113bbd9fae618e84aa32fa1d24478d357345564c7981a08d9fe2f717540bb262f3e76cb4fe1aad1ec5b936ebb040f1fa54f0f7f845f55884ea875dbca554a5c14cdacd1a99377e267297638fcb2f71209bf29c9d421aa997e355910e41647850ad8b1c6e6825949ae62ed02cfedb20c76a75db9a71131a30cc1bc6966f3687219cd928f5b4cc5d62908372b24ec0000000090ea948dc5080f9b002ff306e72c1ea1c0e38786a269ce29ebd8d76e279dcc3917d368187b91a55370d9882af19867ba6eef7f1dc5aaf725e1da7e481e942f7c211e1f33780847468fa26e17165aea3fee2bb95191550bbeae875832ab85706cade6edd63c1a73f432cbaeefd22ec36f350de8d3ce29793db50f826d300b25a94cf8c882f82cd688c8a49a4c281ed20c7d0000012800000090a0cc9f70b295255f0c15a6478b4f5495cf790ccb0c31f1794565291065d6b75e9975a3bc8a591b0f622331d3c004884524d11f530a17da5cffd7f88db93533622e002ef97c440f9a51981351ca7dbdbe18b6147a37e0efe2e4f38adf3e7a6fa5b93f92f4c15abd03ae72c7bef55089ed049b8f1ecb4c55d9edf0cef0aad6ff1d7980978af2dc0f320541b1149cb3cb7700000090b6e855a08ef4a6e660ac01f0c2df88bc7b4b0c574ea24448f3b616ac6a2b60c2e0a69bcf144660e4efcae681cd0cced828fbaf75aa2b45a7ca9a0cab9da11a86b214818cdb43bfe3d502572937cc49f20ce5bcb0d796dc43ec448e1d30723203bf7560b3eae7cb7f7c4b2d0e5ad03d2000b47d9ab757b3978e44b5e54c440848420266924dec99e19a70d62467ef799f000001280000009078cd8b67fbad66d9c523254b33490f413b710a9630452d1955a6326aa20fbfd476b67b3cd0856af83a99daa86ab351f8a5aa0ccd5a310942ad42f0fc82e65782cb231f6e0d7e6d241bf039889121df6018f562426a63eb57c1c8c065b06243d1a51687bcf11d3768e3854c45fae53c0019957a6cd82aa1853b30c7829ab18c1e3404273c04106065eac90bbd9d8dd52700000090ac7d9560cd2997c58a72cca3e57e5b58ee035b8201924564af27dba153a612a4a90346ba45d6d7f7a16e2e8ef714774836a339df161ab634df1de9f57589ffeaaed27a9815f8c471aeb6a9d5d7ef97cd04ba26962b48fa55c2da994acd880cef9310a1c484495d673fa5ed68a1f70ccb0810618f6974ba1d11b8777dd52b6b79b177fafeeeff66101e4b5739dadddb96000001280000009085fc1f709f024f16e2d7d3042adc8776cf373bfe27da97ece4913961a7592760b142f0eded8936205fbdfef0c72ef20323256ddee9a0070011b3711572013c1b77c5cdafe7f4e1768d41e09f2a9d0378181e13e0edfe41567102c2b2bd319593f945ad77649bc8542b14ffab2e97c2880643ef014c7b1775d644f5112a1ffec178cc587b0f140e681cdb985a90e00d6c00000090b8042a08acff363ea21e701892655c0fd07105d58852414b31ef9b7d3ddb1b1eed34ffa1b518188c982f31673683b8c8ebd86644dd8bd53d70b6e23f578ecf4e816b5d6f2eff705a44e7c823b7d91cfa21514ebc97088053383e4803efd65ac68bcf5c98c600739e99bd1f5cbd760df72ff53921711cea027ebc898c44e3d93c28ae13ea86386a1ed4ae4fb8b695aa8700000128000000905a3defdf9bbafdeb6ea5ac10e5c97eee4e02be61ec2591d2ddc24b25a99e4945a7aa964612b9e9b713d189edecbc4484b09cb07be1e0fee25592628650a433cf220251e5f598126b191523b19123de521156ef89617c6f1a449ac555e20cab52f06be5711a516c1a5a8ee384f92a47f112b3542ebe8329ef59a82f7f2f126cc4129532b9676e1e62c35aa0e0875f804800000090761f5911d233f088e8564950e9e00a44abf7ee38d9f3a319c86c716f5f5d5e8e4d31d5770fc5e0581ed7eb77c6fc1852d68694d58531e196d7b0df4c1f5f4c03adba60c157500269c33ac6bfbfa8194119f28d8c72f8dcb71863909ba0476349f9cf7c0fcad7ba2a6eb4c8f1bfa57e582a105c35f2d102cc8c3c55cce547cd42581e798b91a919cfe9b060230e63e7a80000012800000090b47f48d7705d943b40047448cb3f34d5dcae0eddbe6facee63a47be6c553d05993b56c4e190b743209b90cc5d1c6b6438d730f6574d89e475bddc2dea033a0f062de77a0779580dbfed8bb88b72bb958114617638fd612f2daeabadd88ce4ac45b93356033223da21007ea847311e97912c3859e3265e4e80652fcc3c69ad540fcfeec721e6f15975362d36b8e425b7000000090a489c9297e07c64ed809ee4caeced45d38c4caef8ac73174a7eab0de37c954774d93d7cada09f49ecac49c91a7bbfc034d1cbb54f6ad920cd6ea128c2d898f5cc7b60b118aee403fd95fc85584fd3f340960aa46ea13254856235eb2bd06d476dcc1432d968ac2355d7a0e46d16f88c52434cc45564977715251ed0edae97b138fa61957d6f2105e76c656dde7b50c280000012800000090472ca1259de4fb70db665adc48d2e078ffa2203e1615a6bd7ef908d496e840610792831911c1211211698481def763aa6d22697fa3ede60fc950841d5fe18c9ee44a832aca695542ebad3f39aeac621e0a7e00e17d06b8c68e0c3f939143027ad7da02a474d231135d67de0085001dca06a2a58465d9735cc047cb34ac4c6a4f6005da575b1f0539cc480425112f6cb00000009022607e80da038c96cb12be40f3cfc1e8742ccddf1cced4f6deed2b10804800f91e5d99897a3eba8b83760c96fa2bcd4daff94c77fb1cd48fd9150114f26a8eed01194c4c5e9b178681f6c9152ccc403a26fcdeb5f514942ef1c6ab3b3be28c0ddead0c6c2ff820a21902125dc1248c661733ea0a24b2257a70c7b0320d73f6c17b8d33df70dd22a9aaebefa6b9971e42000001280000009033177290bfb9728379232076cb2130bd23481e3c6c2f08c3bc50235c2b369e3f25858aa4f602b51a7734080ed6eee6c50ea4bc061bc87e4fe6d4d7fe398e128c3aba41f21bc996d8497012104284453819ae441c80349ef7e4b7335ea7c294aeed601c894ad9e50ee78ce3d59c2c983e1b54bd4b33fb8ecc9fd59bedbb005356a55b804e18694a22a8da183e1563384d000000906b3e57cd71dc0ce4d4f88f4508091b9d2458621d55a3ba0661a0c2abbb9638de58fcc70ed4c56868f18c1332a7f408dddc6a9889ece174233ebf2ea193ec45ebc7c87cdb13dc74321d5f015c1e33665f0995eff8e6725e4f9dbc181d83f5502a351e0daed3ddc2da62f6f8118792142e1034570e83eb17ed07f62a5657d8b140cab7d05527b81d105e309547d13100fe00000ce4000001280000009070059eb6777a0a4c9489bf1328d8693f6bc671499c26738d4361cbe6cd6d4cf83e9a2d46101364b6f9aea23db7d239a4d7fd3f2fdee6d51e47674b1e8694df45bfa875d456abdef873a617a021ca5f672e72d13d77c5d3416b52f6c7a7d98af0c4edb3c98571eac6aec13345778d7cf82b8bd5d7dcd5e233c9f50b6dd74c11a61379692ae24a660216b63846f703bf27000000901337a611c32cb281c769bf831e7dc6f31fb0e00fe3c314dd6f83901553ae815afbfa9b84305129f07a18f215f2466d2ecbca04fc0be9fc348e4e81d35266ed36a294017f46b390a2441c6a7d5e99c670180d4f412a5869bcf79dd3053df13a65655cd9c30054b2bebfb5e3c73178a31122fa53b303af23f227b0d673e66331ddbf0745fab27a0735c48576826aceddb7000001280000009082e220089bf79a64526f276171858ec484facd2687dc10b5a22a044aa9651400801faf4329eac02ab3a7d4ec52724b5062cee499099305ecff4217e8a7c7ef34afec9a7f9f105da62ca480d5972ffff20378a38b1a99225210bc0c7ee61f794c217d8e0dad16c878cbc911eb8dd84630161c32c8030598801cc2f65afa09711e39b7db08ee1cb3e85d967639a6c653d60000009034157362c597e0c6683b5e76d55a677ae433f219c637b64727df586d5274abae43ebab09f44369d0175e8c806a3513ff6c82b244dbaea1d06a70d1e77d76252c375fa96fe5eebc641bd8532901ecae400887599fb0ccd1bd1a1a132d814c1d66c343ce45ba8099207242482cadb1ef3828c517f7ce3c462b8ae370c0f3bc164c415e943d5d477e366c3d50575505cb440000012800000090e0428b0df541308669c6ba35a21e14a48ed1ff30306d051c51a535aeb8acc68744cc4c171305c261ab0b97d23561ea59b1f7c2c12e50efcf7af249b66d1615a886011f90b4c7fa18ff9ac22b0109c83d1e6a0988f2d8c3b14cc3499e566b021c8078920323e7f5a06698495c92bc33fd11de21eeeee4ff80c41300d0875383816deaf1deef2d6d087dd906001df4d57c000000908dba7c9aa1d8ba05409d9782faedd5d1e96ccf1fa6ca9e641543446277ce17cee21dab6f09e1fec2fea2b5bdc8d03c0d5ef9dda9fa71db46f0437c84ddfb585c2a3efe8eb85fe362d6c96bcfc3f9795b0edb530752ec4053f8f3abffd524189327b991c3d2d6aefa5eb377c860c61c4501f18f9359d1a66ecca46dda13d3974305960ce02879c4d3fc26f1dba12e219d000001280000009077785c15f3dd860664e14772df897a1f26b9ca56ebe93b1743f3de1e35871c1adda23ecefe65b3e818ab0a9f3882e8225120263a42cbb59f8c7e8ed7e842e0518e0a4b354aab971450571f0459f4b1392bb427ca2f4c67154489baaf5008e065366311a7509a088377914c276959022d09a631e1a11a32b036c980b3a561602b1fb5cc022dc7fe926097e0373cb00b5100000090854432b9ae5baf9115de2e11dc54b27df7ecc439cab60c916a224cc699e70efd6b5de9b83cbb039e8e69c1590ffa51b3f205b4d63b9bf23e342f0a10064c6489475ada155827ddee86a49b7ed05710751b5967bb71b42384b999696c36be4c88103f74d79ff224e983b54cff21b958191ce961dce230f55fea696fac045249c58ab1164f4ac1836e62d696d8bdb2b0c20000012800000090d5b9d95cfb1cc0ccae74db754e2d00ae1185adb6095e045fedfd5d0f7f4d834f0fe0272e5f40f0a7f6e4037a77030c48f2c60ab734cf16c414c57dfca04ce054c9ae266b651e94f5518db6f2a42fc8ad004ca27ae86f48fd02156fc4aaac8026c9a12dd3c5788f4f7b31a6113b393a23010f60c7b0c1b14de4ea4e59b1ba16c0ff2ba90fcf2565fec41d8531242860f5000000907e1bcfa07b4942bec0d1cf12e2dc61002bbd4737a6a50b0358dc595447dfaf149e7f170d60c59133fd0f8a182a59e6463aa122be90967c671b625d54053b64f6cacda485ff61802fdf4ef013fb67171d1d63c59168db4c0d9baae90770a9c22ad66c677c38972d36844bdee6466cffb9186fb3f1c740eccdd557eda68a9deaf9069c18d3acd624b822672acb9892f1430000012800000090fac793ba4caed97a8d82abf14e9e11a49b1e78f757b6e55e3b5e2a9e50bc9061d98f5b2253a5a4f8b92d616f740b5f872cf311fb88a80398bc5711aa954af87524a84aab7f347eead5bc848f43f312ce101ec8df500ad3069fa10e285fa2388be33d5550b1b6db1962cf380c76adf09d0fe8975676e0e6ba0a14b5230459dc638cd65744dbff41ee31c99cd9d46836dd00000090112d73f7f23f328d1fb1bcb7acc74a73c3a46e611933055d90565a62f35d1c0b493739b2822340fb83967381d0e5b957b8538fd68dc7edfba1b3d12d176442f39bd3bf3a20bca734d495cbe10a19b6f22b71531209c05a2c9ff13638bad3b1513d7af44e6b1f082d7adcc76fcf16806115dcc08349fcd766f2f58a1d3e4cbb017b459fa67405dc9754514f4a3b6c00220000012800000090f6fcf98d3d4bff56e76f2dd03978515ec7b5bb267c7554a42f72e0a749f5370ebe74ee4ed9989438732ad0009d1343b5e5ff3fdeed5e0fd201ef859279ea2e9b2dbae42fcfffd88e0a546cfdd929bd92033c83d8b643dc23d1c4544c6d58caa4b1cfc8d2d00c220a15bc58939fdedc3a009e8c87c008a1694af9424e7dab7797868fe5789b66704489e5d4a18a2d181100000090695bad5a47559a016257457bc888cde434bd84b2468b6aef251a7a1d6c44dcc5155b60d5cdec7b105ebb3756ebfa6bcd213ee5ceb9ef6076b40495a5d8ca7710dda5458ca15615c69c5ff83ed6f3e69f26ce0a4bdcdb8a314f628d1d3036b4a781cc6bf605db34be7d149d5a6d3ee01320cea72c94c070bcc07748dfcff26f27197c8ebaf6a3a25ec3cc44767056145900000128000000909791a7a2bd581aad09db136c2de92ad28d70a395222c9302fd37cf1972075f2cd8814cde5eeef57b44225134bb0ffa1162fef33c82430ee6e59ee65170468a2b41c1f71dc18d2424ee74fadcc9512fd52342efa0f8faa81d9cd0208c6e31446694c641a1e4a7958b72e7f2754dcd8c1105a5d4aca5d4011fadf17451c556421a8f21dbce3916431e1750db3e0240692b000000904096029b3a23b8cd1f916eadfef524e07c325326d3a1b35823eafd3c974121af734b33c68fd8791a27c986f55f1fbc3442332a0de4507885e4651ed98944c075d64d967169f89de50e86761b14cfc9fa273cb39aaf7ffcb57c9866488cd1bfa2aa372bbb62608405afd86146ca439b532bb6fc90b711d1213fae5adfab07348e94780b884ec62ed73dca50fd117c44c300000128000000904f8810b5e5bc5745ba60bce08a977703c870c32e7f8bd48a2d32234fbf4ac4945dba64a2d99f66992e2c4927e6a5bf80e14009dd49b3f56196781ca17e0b20fd839e496ace40296453229cb7c184f8f9103b62ac3ff9c93966f28b3aa0be95f6c93eb276d006535b539c39ba7d4c86a903d6937595ee240a70514d3c9212bbd021a8e0b440417b419c935ac944af17b200000090fc643b9f521e954d3725dbaa85c6a69ef9be0c03fecb82949f151582ed6cf886b4c7c90df7e1fb3de9640de6c03715000385ded6b15c69da80be33f946a92ad1105f870818122955847220e1595fa24f1ecfba04c2fab4e8ccf656ca4298998a6bf60be5fe9132c4a65caaf8252dae0a1b80a15c1c0c7a19bd2e67d846b5a305e7c891794b5e3975e9fc496c440c7f0b00000128000000907853b4750db13e7355720133ea8fb1c4dc286e94ef83c9db3c90252cbdf9775b1b9011581f06b8f90e0c31fdd18e203def67f8c724151aa8d77a68121a3de1167dde8414109d206a718f9cac5aac111d2fb0c0ad12b68722117ec2f0985caa409027c99b03bfcb4a21d300cfb7b8a6cc135c2ba9ec230f3c07911402213c75fd79ae45b964b9da0e54330229ec3f1b610000009093c682aa32f37e44143e9ecf74668b190fd1f304c9672e7222430c9b24ef0956a07de80e427e107f82a1d9ab40e0ad9cc90e03d1c29e3be86a747ab2f46c2a0727deda8e2f790dde8fee319306d1e9072048a52e7b442736231812d7bcf8b7a7e7d61c25a739d67d891c3487c25b53120a30564a3fb580a392e93f314ecc5c2d8e2455c285b122c99c9d711c4bc53f820000012800000090337d85447f97c9534735096c30cc024d2fcf62321e2472b8c95a7d306bb61b051497d169eb1143188b2644833c4380eb8974840ba1654f4ede972f7dbad37bc6f63bfb37f07fec1539015205146d8c7d2b1d05f703212e265a2063cf67edd8923305032d6b8837f042a1aed310f040b8157fd787e3b6a03d24de17d71f7e8313f0977049877745b827b4ea4603c55aa900000090daa9806f904330e20f5dd80a7cc850d83f72d78642bb31e85d23f4dab25cdce8166b5a546bea45a001607eec70e5fb37a8cf938c0f3a7662609a73c41adf7851c13289fc1013e4b792a1f1ffee8929d32449c434f98699fa409f7487eab797aff9a6473420713f3a6ae3f113aa93dbb21b0123a4b3a952eef2719092dc98632bf0e9b818dbb967e4a0c908a3f7250bc900000ce400000128000000905234a8d543d1e361b194e6742cc7de8cf2145aa222fd945d6da3281093a3d25124550411cc4df1eb9b8c3e5b05a041ad363f267136be11e1ae385c93e151249b194ba5e429e1ea766fd195560bad788a2bb6e49a940be6902dc1142171c79afa324341eecd70f18d27d39ed67362c3dd09c39c99d9fe7fee7659ce45c8fddf78f2eadaaa99118cbfb56aa650177e3767000000909e756e9965b95e69f03b298d46b05587bfa9e86a274a6839bde6007740dfd2f818190854b27da547fa448c623c5b99d3343d3114487592bf8c8a9c5d66b207996c96700e8ffc3b6cff57d869cfcd6a0f13642d5c3cdbe7587c0275dc93991c7a7c4afcb0c7b50b2e1200689e89304d232e392139c109230c4c3b9a735fda104e9d66cc091095b7053ee945c500e1e07500000128000000903654219f5e0f8f81f6e951ebb6855e33be53fba8d7fcdfaa07fef166b27fc05657f78ec2deb64c96720ecbec79712e685977270c5c0bc8ea70f09d55689ad2e9352596540aa0849eea513bf24c725ec52bbf60f0435018ef4c8a74552580d7653faea40aef3261efd2893c6ebe021db8043805d9820c8b2b81bccae0115ef2a28fda161e251047c9798f0eb31654168e00000090a734b780768ae0f3793d9d40e42a48bf58422a66d846fc317749192a76f3094fecd275dfe4c715491af1dbd4e35827782e15c5ad65b13f82188bb7965890c26eebfcbfbe7cb274bda87c5ff6e96b57371f91d66850f67062410a9ab4e664e1a3e18c7450f089ed7e44604b8e1ce3ec880fb45f3acd558a0cdd87a4d706dc8ddbd8f005de8970ab7169b69299cd5d12b500000128000000903ff6ee6d06191ac7bd0edf29ef976b4ea52062ef9994ac251d77e97ae4634a8a5b69299586d1046df63765eb2d6beb933e85399c5e853e00ed4be13510079fc92f6e12a4ca24e13b35f67c506e25b9ad26e7494ba2efba64d4b8544fead9d48ed6c16dfadd0edd347f4e729a19f2f38a0360609308a7500dd33f04fdf70d542a0520d3ca051c7314225463c236ebfa0f00000090c952726c8c1da23334c720d4f56874020f86b579e4b771e4f3f061277209e97e64b1a0f37f322d9d3cc24c0166d6d91a141f7aa3b50a1bbeb3cd4d6105746fe2a80fdcd6679282bdca9a5aff41fa379e05387d21cc7355f6052f7c8d330874086dba0f7454f37c6cb56113b8f24245e629e2430599401c7cf3c1bb08fc7e4960c782c705189b87446f975a8009ea78500000012800000090508d942fb8878faae7d8ee45d71a2c61b184be5f64ceb7e859bd8ffa76011b8e2b4e8886f43e26c13663a1413a13962bb7a6a502f5d3d136a2594f7927f16eee50aabfdf9f9799d3807b69e7dd011b7d29894af7eb86b113d98fc9f610d2431e4165342f0cde9e211dc1ea0de30766d92013a812d1a963286d5ac93465ab4531cbc24d519d766bc4d59208bdd35ff0d200000090016c27c704cadb72dd8dc36995bf09bd6468ecac31c2081971d7b261d29b5fb6492e56e1511894e82f14686c9b82103864ca792289e68d5c69a30b846847e671a33e9699e59fe443a9e8ecda6c521cc4067569144209bfcbf034641522844ac799d81fa7a119d56ed0c16b73cdd6cc5c20d3a2b9a2b844106db32bfe27ae79ac410ec3a7879a7c8b983a919605d98a2500000128000000903fff0cebed4d849de3c75c8801b700db60709711b6dfcbad0341bbaa743227cac68db27c686f0132e7c071f71d344f273b24a5169bb0cb3212a3f739128219adaa187570236f7c3ed1ebbb3bf38e7a39141ecda406a8847e2d03d44c67efe6c379f02d7b9b43dd3ab6cc02a419b90f020ecbd1ef59146549b5f52833cbd51f955a399bcac234ff6f566ca809b1591b38000000900ae3d2cf6c75c461f50ed4e17b6ef2219345d3d2dd74d29132ff958c099b8707a8a3517691c57c1c77859d8f141e32add4518b88e37b0485d6bab6174d154663e7379c174b97417163a5f72510177d11089b45e57eb2d9cc3e5c06229a48c16fdafee6017ac8a004c30d24f945d33c8c01efea48ea24ce59553fd29c894b14d124076d89c09f493ec7513b685577b0180000012800000090af144e980af90716a79afcc5fb5f450edcbc220990f32771084a33d8cb1dda7a2b35b46a9be6d0a678d604a0cd08705a336d3b2ad3e35bbd6dee37dbddfce631a4192084b280f666fb140366e9d454f022732a440ebaa20930db3743d686b4694d8ccf460f45658bc939b90352e7059a2d238586ac9611fe7655bbc71123a38f43198a706942fbea5d076972aa79752e00000090c5b9a9b215cdf948b32d39dace1cd8fe899dc54c0bff8293566da6c01c0f0b9bcf30e5e83a127a268a01b201793c2714dcac11a1e8ab24ffad3b1d1cb6af64f7df91476d0d0737b1eaddb2f303f8878508daa74d3741a091a718a0d4a85558ca6a7af9fb3c67e93a563b09b844c7d79c0cb308ac119cfac2d0e08fcf9c09a2f54f5a14e72b39dd9dd319d918e84af308000001280000009067e18873971a8bc7576f3b30987dad7e97d7b1db9d8b7e9c3b962b5f4049394b7b9cce6bd9d8082972429825dfa87ccac8f9dd3e86f62de38c2adce5b0e230a9e6fa0042c493751378f60c56de36bd2a0975835574e15f929ce0852a05c59d71d191b8c2716ec2717e4e44c7d5e323b3249240f5483702f9ac30b10833dc0e26081514aa666f18387e31aa5a38ec997100000090fcc2fabd12293d459a2429ae4ae73ff08a3fc89d54a29d3271af9c6da40c1bc509e9b96f57f715a63384e6d491aecaddf2dbcc576cec513a34a18aa4e75c5a37d8b9e3991802f8b43fe3b9107d7536650eeca460189ba703c44d65b119b0801cda27d66853fc11e7bd7407caf41b3ad815d52daa2ba57f6e7f12b139e3b1561c38b0fb514f84b0d75d0528c0397285f300000128000000908e9bff6422f45b6c4700890739c7b0b90247859429e5abfd0019f363fe6600e0a98ac81f665701db4cd62e7c29eaab75a689820489a4d6f7b3beaea545faa73930f9c9c1df036e4f771ef80b73b3bd441772518e62924233bb1eb83ea5587b2c35a4577802b80d70cce4a2e6bcbe74f121c7b3f85ec8ff5154f41e2883b80f75266ed994286d87c1cacb02bacc039b4700000090b20de16b35ed341b9beffe6aca469acab6c5c0183770d7943cb6aee66b60e565ce3e6facd8b812646e906f5f6bd2102a03d1047d776e20552192237e67fc64ac398176a4e7ae344dfadb65411da0de712a809fe21cde6f7633eb0789cbbba552a4fce337117a86edeb7e8d9908f3c3de125f65e0b44058a07047d0c0394fe55e73a3281cd0701a154da244b19a14214d00000128000000902dd7abf8c1d174e6d2afec69c0c99f5014b7646b69f6b7231eff4e15e54ed0ad8a0f44e86fcd23d0ac6b01fb717b18e6f5ed3bbca715b8a8694aac3ade0d07322116d0468d282f3afafd11c4ba799e3b0759a4aaece0bacdc6b7555075cc63eb1ffc4024d0c11d9a3fe7afc1b4dc0d960814d1d4d3e1c964b27f49b47d0d544ac4290145032565d19d468b73799b46dc000000902866bfd99a1b49dda67fb0df455172f796afe06edd85fb579ae969a564aba24c30b6988330cf66286f39ef29aeb98135ca290a96f72ebc15388b461fd0c0f8290f6a454fd96f81f59900d57b760b3ace13e38c76f99894dda14fd51cb0a4b63f17eddf29615984cc5df18bca6c02272525da84032b9a7b1d80bcf239215ce9aa1a08cbb3909bede3769c5746d43718d800000128000000908c49f2cca9d032a7946c55894a8455367055eb64cf548eedbd1610f276908cbaa4b16c2d0ed0c719b6aa3efe3e1777b2bdabaa45ae4fae1f504ded8eea3bc98fdcda46ecf1144795ff44e3da537cc15f13d9aefea9599266ec93845a9ca4245b5db17d78a0007d3e4770ba8582b02efa1a120ee0c87cc1a156b588578a60edd45d10c9f0b78e7ff49421362c37b9859c000000901df61024caaf3863ffa29eef26999a416bb4f7134d599f6cc6e2279cd48a8491c4a7cdea3691b724cdc1e52ac9458f5410e1057e00496b1a291fe84fbedb962d9fe3c4dc52748dac6a350701a3c22535277a50e70913aeb536d7711ca17804a0e94b0f3ceb605df9bfb5e472a0564dc505393a6eaa381c254557e90cbae44b9cff285ea6b8b9c42a1f4956db300f81b50000012800000090a33a3aa9af0b3cabed4f4712e8e4d3170aae4ccfefcbcc3d731501940b38cdd47e44137a4e82d4881caca6fa754062cddfd85757eb3780cc03167a768e66bb9e2f43b208c09dc0b6dc204f184ccf2ef02e4195a620b5c2b0f01fe23a720feb0dd0b8a86d8b0c9135d0d72b962eab749317c11702670d34c43b5b499fe09b0fabd191eb46afa05350f7b957c27a60290200000090447ce39fe1c9d367600a0dab94d2b3a082a1ebb8ab25e7f42bd0d54c870ebc6163e7e5ec50e8ae07b8ebd34efc687c4131411590e83f1782ba094724aa127b3826a24d67fb8b6898c03f8c717105d3972df34cbda6a037a8f6d2ce61d05792d9f722668a762e58c2fe90edabbcbb67080cbbcd8c84934071761d49f7b7cdb6ddcfee56798b1aea270950d8af64d7173d", + "calldataHash": "0xfd94f65b1ec0868c3600edda1df01e4d78eebeedd7a33d4af88147e78bb5b43f", + "chainId": 31337, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000001fd94f65b1ec0868c3600edda1df01e4d78eebeedd7a33d4af88147e78bb5b43f", "l1ToL2MessagesHash": "0xb213c9c543fce2a66720d26a913fe0d018f72a47ccfe698baafcf4cced343cfd", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000201864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000001a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000010d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000600a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000101f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090885bb3dc3c13f4414222efad9b9e5e6b380905a8824d722dbceaeae44dc9d8f03a7be52298709b7534e26a43afc7358bfcd2bd4fbfc4bda7e26710ab1adaac6ba47592ec789cebf41a2a12564c39819917de5950bb458c1f2a5029ba060e2d5d7d84910480c7f4a07c46b54ed36598d30818e99871e918f8c1c422c04d3cc0c6034ff9f034e9052f51c041dde393a1fa00000090ab3f3be064898fa1b6f88b2ff00e4928b3c5074286fb4a5233cbea038470b013e00d97e2c5e8187839db90699ea2e69acb15662fdd32653d66d1437c02754e56bfa7ef5169f00b77081d637d027dc86f1878e32c0f534c68a6985e5154b69be52d4f03a2b62fd36899df06f76bd7520724dc30c460bbe024a21939761482bb6c41ed47aebb56f42ce7d95bf792ce12a500000090860b182ed78831afcc1c928be192425f7ec533406dd66e925bd2b588cb89b642a4f15df2f79a177ce5a4aafcfba4bb8fb07f032f632ad17cc725e21c1bac538ee73ff2d5e77efe715e12af88d5453b690d75b692974c3327b985925ac3abeb6c12445c6c4d1ec51b7127cdfc90c95b5b23e5cb8afa1a351a612293ba6272fef9f8e3f82f138b961b0f76d7a7c916e4c7000001bc000000908122eecb03c180f9e3ef677d4b29a99dc26c88054d0734600668041ecec1868207a66b01b1941de1354cd8223c1f4ea3536db5305c02ec0e2a0e2858c2f4dede7e33ef9681d52276497da6e65343f0a1075a16514a1d323e1071ceb7439ff2ab6276cb29fd051c0eeb6dd7111e0e87230f46712569040b814d9be577d854fd02f917aff118f5ad14a25d05c7cee039e8000000907f9bde742f35c0ea8e81b656ce7d988a9d1ae00195cda79aaef816dd37548f9f2eaa13d46c5ddf3124ca0fb34fc8bff0b45e9894f8ac16ed038ce9d5722d6566d24f9f57f486ef0829c9b741bd1c96ea1c3f5c3f5a87b843d9787218ad4baa5af887e172a82b016d8506f6c953dc96581ac245bb267cd88bd8bc7e3ef9df7ccbeacb18bc1b30534368589e4f570a657d000000905c12faefd7a7cf65d6475e18ee99a942c6567d3473919de144ac498665fee34772f883fad49d250c33d1ff20fb1085c86137de6471bca35e6a5f3f7dcf8b6975e2605312d9fbf714a1cc9a58650c208016fe29c4c8ee1a0c371dfd02264cbe8642ca0ad671b2479af0f5e0a749d8b33c0da2f7e7fdc61947f39c7876fca728ab5fcf1761bc28272190b3defb9a9844f4000001bc0000009032d67ec8b6e9dc8ed89a3a411adfde6239b51667715c9c72cd1495db5b7b746380cd63f2f9188450f9fd686eb793b2de5af97357e09da777a8ca0c84995c44d2ea03208445c25361cdac650588c6d005191231bba3b350c452e6d76081873b450b2cc63e013bdebb1da5a9c18989f12e15fea068d56e97030101e058be618f286cf66719580c5295c1dcf3de827aafe100000090c4c9ab378f4957c8ad3b68e592e857830ac4c1145a8923918ead849873221ef658e0378e93fb196ead3eb080d1972fe4305ccf439751f57220004c8d3aa8ad6b686249f4687f5631902fda016643994226c6c0a2844bb06ef567624f1d06661a640a856e863a38e568b21cd4af6be791029fb2443d6e6c7d660ddc85c0e8de0b2b5f0a148ff426f1115974672f73164000000090c0ac0d3eadc05c94a097a0a76b9a68fc58d6ab8e66ccd223ed628f6950310bb2f369f2f178b3444802ced1a56fa7f57cafbbca09c7ce687cb7ed3f5a95601f6d7608c9be2f6df2469cffe14cf1b13f830bf1a1b9646c29be495fbf6f801ed8be5fc9d45cec5fc743a027899ff6b362f303db01d279fd5ba05817a92d8129d004d6edaf359c08bf964cb1e5d2fc99e5a0000001bc000000909105457ccaa2ba3b2254ee3ec3f19923a82bac08498ed2016ca2e9c0bca04979fb7577cd7c152ada33b82a8e40bebe45e497e2861502176e32c51cd5b1bf0ca91851cf7b3724cfb9a99417c1a4d2d90d1f3d35bb9eb3912108d1867043c38b4d5aede3570128855f56cb6d0348bcb8f52a8eff8224deb07c301555237486c0f37ddfa0ac08b0a5fda00f5cfdaad0cc0e00000090520db5e2d7b662e04f3988c5a428035b057f059f3cddb49439eefd9447458a99c733dff4b5a1702a9d392586195b02a24c5f24628d078f7c01bd4f422614bbb0c973a991475ce0ec2e678361237fa0251b16333fa4c3aaa531f98d1960466449964e3f5ba7ec75bcf322e87a35a2230a0ae9882a05db7731b4c6ed6da99efdf06c0815623698d8b71ade16a55ffc067200000090918abd315fde38beba7259c86af4ce352f12f1444481b6c86c23d5e2cfc4d98c90b6d8fcf7c30a5fac7dadc86a5ba8a47dcd1f3b16484812924f79a9e00a9633efa90b62f21bed0f8f3776cf69d0607b0fdbc918a51316145718e4c48dbc323e187982d83abbbc1fed4fbe2762e72dd91cb8f0c539b4ddd4f9a4a8ff6cf732127a0970de63718120523fede4ebab7f14000001bc00000090e5c846c8a6bceba584c29c0fcba48265a2cc20f6d982541b13654a15c1dc00c8ab9c8f9c52fb6ace413a95b1979eedca8d2d2385a622dfeaff8402ba4413ea16b78733f4e43a82bc95a56ad1f72702a72e025499b65d4b2e326cfdde34b3092c9e1c3bac6d610d361ce7dfed8f50d5222f161e3a59f5747a8183cb9719f9ffde5ea72eb1c5bd561c4f78f3c05614854f00000090e31a6868b9f9f24b79786034d06810d25c594ce48750e39ad996631cc6c8b4fa9f230fcdf32e1ad67e9acb892334f24cfb07267de8cea562a28788554cdddfdb323b4700800390c25434473988c7a1520c2bfeb394e512109f0d694c4b7f2d6e2abccbe414cab48a25e8de986b9eec3f07b0575584b0b455ede60d373f90f0cd6a2cfc08ad9be1056d358c821a436d0700000090f9b974c64844d04929e7f9c06b1a701ea02486bfb297c7a56f7728ef7df3a0bc21b6dabf6eca6273b68469cf0d06948166bff4c6c580bdda0d72b5a9aaee819d6c2d92a2aa8cc0cbcecdeb57df7c91740f87cea4888233cd5563a7ddad4f1e414ec745429f1ade6b2568319bb65f7ea123f67e4f1ac6379f7c9efc978e0c06556f16cc5ab6b3255f5a116d86e68f92b5000001bc000000907953bb52ffe6538fcd1c69c4bfc577b4217d27e17a1ba9d420df7a5bbcb32c825690e1b3af4f9b76566aebfaaa83c6cd22c1d27dbc979a94aa3e402148dd57399b57425f74b32fca7bf2b7ef88da460d0bfaf4dcc899aca398cfe7385d4d569da438023a5ed8a0b6c6c98b32acc95a300a9747a52cd664c6527005f2410fbf86e48135fb602da0f0e0d7857bea44051900000090a3b31666d69aac0ea75b4f14b3c9396fd413990d05b380e0ac360465035f4cf07e35324f15b51e964c04a49427d35ac6fd5db99837d7dcd05b3d1546571c15cc7e8f668ea2f445d003286827e3844ea2087b51181bec332e626019a95fe5b1e370875fc41a322c1cc340c8cfdffb068e302518cb4e24106e35373f67b04b8b2404468aa5a1a3899110061c89883d29fe00000090d1999c3f19d70a38351b00a5d70f267d7fd0e3e4ee253580e5e481cf1807d4cbca753bee71bc94bb0374278a884538302276e452e26f67ebaa2d1b223592faa44c2b85ed845d988edbaeb3dc64f2fd471c1ab57b02972ba4bff3448a513807cd17e1deb756ebd47960c340e18c2215121682c2c08a2f58c205f3dd24be3227e8e5a6385ece8905943a219f2cf2a84a6c000001bc0000009091d5467314eaf5b1accdb366a18b157b487db5445ef026a27a7c039767fe5777ec102cdd027e1856edb816f3d712b9135ae6acd56b7f80ccd23352dc17e48eb1be8e25532e56e281cf7afd9f0175edce0e51f5cdf9df26a39ed40a26306ff94f1ad73ceeecea7ea03e98b9ed0b69d4b61b6295d8849a071c13cbdd25f83e2ab9a3c1692eb19437cf4dae483f4bdfbcee000000902c6729e585ad2a150e094714412881dfeccd6d60a55adcc29b9fdfa1016ef0ab2820fd8f9231f77bcb1733becaaed726ee87c5a4b702c8b93257fb27c935be82c9dfed1b8f08d61ab4ec2e6a164ae4ba1c4b49da7b7297615009824dcbf37340527cf19158255916c7ae72edb381b76d19c20e326c044d932f963b5e49d123362ba3a165da27bf7b7efa26f10a90c25a000000908669621dc7cd48e795774a7d44493d63f672bec71988a8b652a0119101122345d4f5278a4d2c4f85309f677e9fe64375497073e4979f8b5d630ed62e8c88e06400f943d692bef2f370fd2bdc257ce2a125c6249e515cdceaab38f0b785ba054425a8a0ee15bd18cb0e1b8d91642d258b1ccbdefe5ba29c900abdc7cf8488b350aebf7296923e2e7f2fddab87acf35497000001bc0000009013e5e112b7fe339b2a5f07cad03c54af89a78e678aee76caee1996cb56cde14977c629c05ce5c914c5679145b0ab2461ce54394347072f363bb7066d448cdf6d70787f37f9d8a1ebb125d5198dd36ecb12ca14e6abe05439984c3953c86ed574bc0c8cade296aea9515ccaaf373734aa1b0474cd87dd3dd712a2371d9523ccce1d15b8702687ab97d0f9ee6f6b380ad400000090bbb31ce264b3254aa8551f77c4e15dc2356ef9e10ffb578b55a3bfcd3d946c16114859069db76a87e5ab25a7b8306fd41279dfa485ef9c1db1d5c8004d63c3f34581224a32fa05e8ef6e70c30a1a19182bd811c146c561484318b36158684b49bc0a8f633a41df89168feb871b6ecb4a2b2104c7f6e0e9046a1429a4c4ed010bf7f6661084f4f8413e60902b7091f88600000090a91313ba29284c043712351d55c47df69177271395548514ca22cfa79ded9689580b0c17c68ea59fd91245265cf933fe81786a0ced256d7062e182cb7822942ba1ba5c2c4e59c8eebe1818026b64ddd90a3dcde82e56d891fca6eaf4ba2d4aade3e96a26996f873f968bc78452f88e0411fb57ec23bc04c829c6e516d8989b853cf3072d9b16c0673e6bfbfaf2d0ce6700000e00000001bc0000009077ecbc7fd165d9ade6abc8ec7aef76b307b4f0223202b5466cc8aca4f4fe90fb52b3d6ec1aa36ce127e2e721c5164107d36be2975e0d3971c94455e550a329c776fdbbfc9a4c9fc3f66c073df1cab5140c0ef7dd2d4e3340d7f197e560996c17112346c052cc156c207e34386dd47c5307a76ed514cad3a7f59744c81c9d4a12fca48fddd3fcb143337dfdd7ec351038000000900fa810dd90147de9aed3bd9a035708540c69924bc682bd1b6c745ca73b15a173727a74b8a2de40894906a813b64960245376a7fa37c70f709f0552450ef76a5129d87870b369dd56847c590f502c2d210e9385ff9ff7e691a2abd5b6c0d96a9c709a3cc6bcfbbae261361777da8651420149af77f0630d9d328073fdae21ed6114a4eac5c741c26c6e0818f1ecaad2d60000009046ba7f5a13e47d1bdfc6d3dfd1d0b5529f4672d6fce5bb7384d19ab2a7e15965ff3a34c081da31d850786656c7af8b8a966a005c0412b141e855058472063a65e1899ab0db0d61a6b34395504e28c7b2146662c3df31eaec3f04cb6114cd8dfdafaf17f3dc1d382cf2dea579a814b57e1009058a127493317697cc37cf718f5e0b56f99aa09d5b3b8f26a02fc5dcd8ba000001bc00000090c5f9eec88ce8e5c36979798b376de2b28f9d1f2607d9010e5145af8a3ac2b0e0889e5c178be25060b061b1d583b471784a0461f9213e242dcd470a18200afc52b435d47b8a567a76a6b655924b5c2d8d209fb502a2435d3cd3e140629a2cba64126ecdf5236da4b089fa4ac315c9daa01d6453eb8857cfa2114cd3da25cc8134fb99b4c06a640bf6c4c808852b82629500000090db6ba5dfa5e3424815ffbfac8ef48fd05131be802899cec2852251c113b5eec328de64a9e640b3a243ab6202d27a5854e269a69fafa7a4d7fa960db62ae810c139a60091fccbb29dfebc4def6a50f2051e051255d552589a7b09899cbca9d89f6cdfacdda4f03ca9f5b4aad25bf947e52a717cbb1e27c6de6fa93a38cb53c6c0e287fd92386eed743b29ec85a557fa2300000090e0ab72826bfdb018ff4d03de311e647e1edf6469965bc5d2ffcd54e7167ac350a57457540af8de0dada31bc4b3ca199c9bf4686dd797c67ed21b34946ad241c5db1a87a1906abd877e7965b206b371bd0f772722bcd358dc890cb0a4707a1d5ff6590dddd773f3099b84d10f5158e2fe05e583c964cea3986aad35c7bb2799f0623ccc3666686764b9cbd53dd3f0c43f000001bc00000090f37fea372a0e4d26e6ce992dea6506f6cb992331e094da50cf92d329cad0b8e40fff1c0694bea939816aeb8fdff615d8fb41bafbb4662078337b7398a607d09c7fa8448ec27c7581855dcc12790c3487271cfb0703aed8612673183ef7d52bf2c449bdd023a9a743b7d25115cc403f181190481c74b41df64e1711b0d058f12ce16b634e23cd6b298e87810d2a1c399c00000090eaede529f772b2ba0f4c57c39e6bbf5c9e12a6258a38c8086d5de7dedbbff8306c7479719a5fe90506d0853a6f9bf5c12c45fdf1c62f7d5cebab84e9eb3eeee1acc6597e29e2619b96a7ccea4a9dfd0516bf834c8113f8f1251070908929a65e83266cf023f765a0cca29aae566444c71810d6d67cbefe9670eae9d7b6a1e57bb6a1fe6749e21806a4ea8bfca35180790000009024ca72f55751c3a2f1fa6b5ba8f2828de2b402c8c2aaa76f8df3fdb3678ade0d07b0788a3f9909f47d4e463a327b476a43acb8d58ab355c4690648fad19878ad62a77fefa8a731af94fd8f819253aaef2fdc29ea25c6d4027f1407247ee783138d98285577d29f0828092ce8a3ac13ed04afffed27a7d7f250f700a5e772b993dd262b911a9c92877ec640d9f5ac6d10000001bc00000090bf464ad4c3858c0122511935318812b1dc1db80b5cc1c41a7ece66dd0ad5dfab7ece2a9a6d3a514d7ee39a02ddc66cdbbcc1eba73167068723fd267fed815f38b52fce696ab3f6c2d63c3b45513043ca09f41a2a9a9479a22e62c45379405216747a71b6ec183f4a671cacc8f667ba09026d61f7318ac5b2253cf5d96b658d7bc3b65f67636aa573eb43c640ba3f0b6000000090fc3bb64b89c9cfb06dbe7e87bef9c2ed71c2610fe2cdef0aabb138cd39f373fa94f8e881c2c3e4365af09072249a0609fe24f34a3e8673c734414fc70fc617806704d7c6f169a61c4d7fd9ac7cab94cf1c8a9d504d17dacc3d3e1b766e29a2d03c8a5fa3c3e7e2b27062710f4407da3e0093123ff99e90c7ab2f266674ecac51df1d170c62327fe9de0b9c81d0095a2200000090e67f3ec573e658b392cd2af096090399240c98c2466f8e43ea5b8bf53ba1e940fd98a86bbb52540fa1a9475378f8027ac77d6ba02c736f758af04da2b72ca496628260263774bab8c3a81e23005a2397154774b7846b16ee66d0747096517db61c7d4d1f175573402e14c4394a87b1f52b0fcfde42d9382df89a7425f41484cde25adb6e0b1eb35edecdca08f00fb9d2000001bc00000090b92ab763c1a69450d42ca10e52b125b9d8bf3512fa879d1c5c9a119892600534bddbd15de8fa6edced3fa0769b21c711de0813398cd3bd5ffd439b24f9db1a24e03441895911fc88c04ec2712b4d2f3c1bf2209e64d6e55b9587360872f1226bac301ae33122e23d6d59fe0120e6ecaf01b2e7887f9a7a1fa4623ef0f907ecf15b1e0b581d06d90d2a306c831d58d43c00000090101b4e9c41460d1748945f6074788e6f58db9a4df2ccddaf42c6f84f25432c2da25049fb00d18a9d5b51240855aa45157630078f02a5994b984a016edf39c7b241b8adede8c713ef1eab761ea4a2bac521fc229f1e999d246e8ef60db122c4a43541fcc0de8a956dec6320195efec3371730352fcdabac0f9372be84d1fb7e831e2b501aeb45979d1fe19bcfcae3b9bf000000900d157efa8bd9a51be9d467c060ab5746781db4a3b2e061380eab0d4cf66010d4cf2a401519c37a570508d5741ef30989846c9c53f66600971bbd070ca178ae00a55f3408db0059da1a2ba3fbbe619f7519156ea4a7d89b9e516e59a14f5f56af35c7f073610680b3a6779b708a7e18b425ce215d686bdb0d748dc2d7a5548cf817a16503766b44c712f4ddf321efebda000001bc00000090432f1ded3d44abdbe01ed2e89bafbe1c84ce83fd12888412eff36d79004f12d8c5aa5cf6998f9602930de2099096ec24b72003891060293e56ffffc61033792d6d4b556e0bad2e6624cf37ef92e4ca4f05773137660f3d57533cae96467a188770972d3471eccf940669dbf863942beb0810848d08161aa59b931ce25fc1df928083ae06435d59017038ec2374f54964000000901ec087f95def019a6d27fead9b8c62367f0a42f0f824302b6936b4550f3d653f374696ead3bb36a59f5526dd24cdbf8bf1dfb08e8b89bf89242f1ae76a79bd1422dc52ada85bbf65708c140678e3f7222d7b7f8657d5e96d2cbb68fdd06d45c0dfb2829b8ff69a5da3ad31f00dd3a71e0b16dd7146a35747ca925ce14ddad8160d540aa2803897cc722441d3503b602e000000901c3c14c105ff0677c2b7bf1860de56d70f741ca09b49f0a839963f236d958d7ebabdce53d6da91b119fc0da0f8a7d3918a9fdd4eae1ee313fda1566c0c3c966387952db18ed31c0f77186e9b0c67e6ba1422c74690427f65d8f9fd25f55be251beb77b6fecb3f61c9f7b2e3579a0a1ab091f4551d92a140245fcf2dc16111c828b2736d8324e00f64efb617d64277fa8000001bc00000090348b7cadb6aa9f85cd97001f740bb85feca57ee53572b9a56a9d9a1e4e769db7ccdef3debf02e57ae0786d27402dd9a5278ff5752c85b405a846a990636563c637b5236dac5ee0e272df43c5a5acd4911e9f04d01ffdc8819a526b0b359884a573186bf6c969de2c6d9a11d74e49d2782765e69acda1b5b090aa61c13bb6dca062d9fc1a09eb879a3b58ccae8c612f210000009021a8dd1b296aab46dbd0d7336ac88e50a8274dd5a227635b585d31a0733ffe2057c07c200b964c1bca0a63c793094621216447b62462186ea3534500d23d7b8fcbe56fdcb5a8e22486ceb3e62b9e68952846eec38b0971ec951954f28452f406bf260528914f82a7b05ba8737c46331611597218df81e21e78428fc58da592f9dbec3fde5615a8b66223b76ed24b78d30000009004a7b293f9b9a54735caa22d4e730822f32a72ac3114072e275dd2aa3e10e71c8d89fc3d41c10b7558d78d793332586cba01ab7c771759ba407af43201460f11fd189b726113f86bb9c4908556e7968d2ddad4cc3a1234106629acc17c9f1fbb47920d12b6260e26f59332ad056c925f23cb2eecd2773358dd743d732f11a094bf601aac5fe92730befd8d4b017fe1eb000001bc0000009050ca80f334bbc31242863e214c23ab508ba9f4b2f4c6c318ce7f7cd303e34aceaa8e543831819cb1575987598d38b426834612ea5d161657539e1ad5ace79ad7acc9622166d5a67941eb206c025b0f272f9967d93c2e40396574d8603c73304bf7433d34536dfbb635f08df960e394f8131d2b030dea5b231f632513433ec71743c5e0c9a837197924c84cf3e0042f6e000000903e6b7ccb8fb9aee6edaecd83fd6a465f54a9f561199d250c36097a23c74c46c22bac99e6ab6d80fda580c6d9c4a42199882b3a4819b2907f18cd651afc0131e780861448ae81e90c4f92d6c0957395fa0586e104bdcc8fde67272abbf2fbb93a14609d947bcf55f89cc334fe91c6aa6d2589c6d4ec464c2287021fc6b7b8ff630688c8a2d0373c2587ed1b2e3909883000000090d2c093b2f85d296e8671bbc3f6f5391f045b26835609469fd6a83a589bfa2687d79d63e602d211d6a8124d55b55bee99099153428b6d511ff66b37f3b3ee2d15ef9a80cd706fada648a7d1d937c36bbd2879b1913d2d6db30feaf51a63bf177c92a795a848069bbc68daf69319b60a540b37419303e5c8d3cf7975b903de8af1ab3dd703d8346e7ac301fa14c3e68f3b00000e00000001bc000000907ff933d189f81ea3642beee9b48974e68e9e69542a09eebc48b9a4be59fc6fc87a75474afe61162e15b85c0b3a03a564070ea4503cdc512fe86696d40224b5edf6b8b3de24737d5e7b35cf5fe8f0c96c0c6c3ae41877e8c0e1eef6f00d3475ed9ce518b73c3e91279bfb7e57b8c995442551cda3d4ab1e89d4f3c6ada8086ac7904cc2150c135f39b897c5a82b70339f0000009007928174e367b1a7cde51eaee56a0dbd0e65af2e74364e419a7d2b371a3eca01e83b6b2f7ca72fa58de8ed0c1c726cdce8311e9c4866cfe27e6ee7edea2284c1c0ddae1cd9f7a3f353d8b8167cfc9d2c2af85275570b040992db2aa3300b2b3071bd479cb815f3e0d6993506f853971d12f2a9ea933931b1664ee07d80c28a624ac667e95102856051f6579f45009fcd000000905fa9a3caafbedb2619e3affc97847a4a080591b04e2cb361f7f2e55a7f1295940ee6f7b6dc1132f7bfc4805c3abb05766bcc9c8f35db538338fd68e4a3020dc785d4337e2f8370731f293e97863207be11243ae71cae03139efa9e54d811dc21403bf9b52f0887fd95b30e615b85fb21007c03a84c093f0517d973a119e1619e7caec744579ba37f16602079745f4753000001bc00000090987a25b73f65f2ffb8491c4601ca2ca3304de1fac189aec1aa22e53f06c4b325d17e1cad996a33a0ddbb512a5e9529ae65a2d7a94c349113bb530728d589f37a1734f9895db9edbb4e507af3f6faa6c02247fa80098f678f699fe4a4b43ec18dc67a90fa3f974a9558a24665d7a8d8af1b719b78a52593fa1f42a60722695eed537deacf71f4e4f2613d391b473a24e7000000902486518492ca3d9af84919350632ae15ea3acc2e403b1d03598d2c41c7f3f49c7c1b4cd39a6f4b5bb2650348bfa507067094fa53ab6ee3cfe966cfdb7f8286e3a2c4c54bc0ed379c2509da262eecf1e42e60c8e6b78f6f6ff676cd1bcbc4779f4ba311444db1ff73328425081350f8c9265e22695d968daf3961d4460e192cf7e0dfd4ecb35987f26f15ddf384e9786f00000090a035e12deee24a5e08a2495866543f5d3e69aa4dbe1833e5f03d4e31325cc98f2203c077dcce09b9c4bf4c773e537169c0b6c98ca9f72d0f4cf9bd31f474acbf85aff1adbd726e06cb8ecf50764cb02921496a96f309573f72da144935092109f981ab64fe93baf54e26c3a965f3ab8c1251dd4be4dec9fadc08bce3cba9fb05f437e2149251cf69e5ba957333249a42000001bc000000906e96280f3810327378590f7e808274f9e3500a837aca9675d825305bce9b99f1a554c9a06ca60c373d827a468865a127d26eb16286e67959d066c892e4dc7fc367ee7298efe9b66990dc8ceb62f4c126214606c6e4eb48a3c1b4b60461f04382b583553c15c31a82814d751d3d84762418e51f1276e63e174eecebd3356a6a24c22ab536f8dc0c0c119d384c8547f17500000090158506ef9a1b0e59c798120e3fd2aaf1fb0fa649c222d9dafb90126823897979902670747dcf04fc6c23a46c76893f2c27426daeb5cd749f2588738192f84ad5ba20336682d83b768c95e17a5556f2c106b0b8a13199d07892072b6ff24437e74578252bb37121b9051e0ea551efc0b51d1d6b26dfba5600d91aeaffeed73fa2e9ee594fd2cb7047aa4d2d03779152c200000090be71589c5a47bb2106bb583414f6c299d5334de49e1cda93e4cf7aba43b086e1452202f154f198ed55b740b8c6c147ff20da82092899ef2f5aac0b1903808a72c437b275b272080f6a56d0bad9bad3b007edcc2c7789331b9dea6d42cc66ccfab47957c65a53147222b1a679f97856fd224bf31878d31d399b7f807405ff21bad369183fd43539a96dedf0bb039b1637000001bc000000905feaefb78dad13f506904a0a8ddfcde668ce2b96c854e90217fbbe08c52b40a69000d08df2be4d438d0abfa5dea2f92e248549f578c32513cf9a5585c931b70693f201544a2ece54ad15fcba157c16bc02ef6b9bc6d71d434b8e392ae8daa464716b56d0054910d56d8befe80cf6ec4f03b982348f197a68fde937b72bcfaeb6feb679647050fac1c457f1a21525114e000000902f105a0598720611323092571c024ec366dc188231287d98cfc8733689b76c2e0b9ac5b0d9a1f06b14a04b6521db798faebb482ac475fd05515900cb706dd52fccf94e48e6f4c047ca1fa4b1a76ca2450554cf084201b58d05396ebb16d2a727b488cf4ddf54adda4fc2d77bd8e8ce1e1f4189dc56924b2474a9f07b677ae53bee5132e03507a3915493d103818d8cc6000000903f23b02b0b2c344563356dedab9a1822bbaa38472671f66aa32eb96ebc7acc0d9bbac392717301706db1ae2cee765b7a4c6b4bd4f483f2e793c04a91c032a490959f1055389b6e0de568be6749a355432d80e888df790c9758ad4d31944b5283c51f6c9674c637af6a1d668000c91add058df99de856af3dc222de6a7235c1558c904e6ab43eabfacdb5e899ef3083d4000001bc0000009042d66efc1999d9cc3a74958ebeeb00616575c07339a9b85ee9ac70807e2c26f57affd7c8b975b17746a53f38b7291fc0e70ea60b87030aecf9fbc56f69d7e16709a7b0573f241fc0a381b1289d19e9eb08befc4bd29a5c80abc3789ab4965198acf9cd2d316eec45341c852626d39826245909e10a630a5409db99b1b723784a9384c71439590afe2962438264d5bdbc00000090795f8aae2dee0f7bfd1745eb31ae1eb4a51e707ac4e9d94140982969b9d87f3fd708577d7e1432841eed2000242ba67b5e1be6f8c749fd30785982548a8f7a3b96d50175a0f621d0427f4949673736d2012cfcee5067706942f7731994c88fa108a100bf9bea62afc32dfbb40740de802823d98f4fa9d665bf042fa79949618d06c6dc2151f0b6d240ad112107086743000000909f6e5df2028a34951931c049d19597ea2889d835811dd4dcc2886c68679358252fb69433796aa7c29c2948faf8fad1a2d41000f21888005ad4455d7ffe096f9b6d547f99e7c98a2f48f708045ec341342c0f7be6683b92f84480220acaa5bbd233e38ae3e6c4dbfa3d68f0b3dc534c4d1b3d4dce8e9e49caf5d32332043761859db4de6554bd05994282f209e1547c35000001bc000000903f5fc4779ae15b6e4e71bc5fd54a3bd1cc02c0a6bc36fe912017d61af548dcab6856747cd9a95cca8c74f7ddeafacefd7fad8bd40175718b52e50bdffe03c9ade10eeff3951530318127a035b5c254861352a0d60bf8eef77a140c80e2bfd6d52c2c4fd3aca155b8d7b7c9c2c94a494313d812fb44147d114900388a0f453f393a7acf67f8b2147a11cae5e3a76cb22900000090e6a39320687fbb56c5535f28e5191e44fc59eca93af556579b80b8afb40b074d0d6106ac199fc63738eb9e96c88ccb4e6767b5fd38a84f2beed8ffdd55dc4f57aba138771993667a37c2077c47718fd605e755dec6336bf599c1b293fdc517946add0f7b491b95e50ddb417a111d70a800f32c920dd2bdfd9b49a93b1bfa839af68068cdd7e79c823125afc0771b45ce00000090124fdcd9c9ecd351686468b9553806189382da42ddd3b9f9a5c60e57a3a61eee8238e5fe72fdf1b2cf5dadadda519f9b718e4e8630b7556969ee4561365d02287252117d9dac2a534de6890b0b8986d517d8483a2cd815ad35952532d2cd0b96518b05a90464cdd86481533d4396a4ed1780df72d871c6c60006be9f461ff8e072eb88e21826eb57d95c35adf012b193000001bc000000903dc8b81c61e31e46df07e46f78f0692c46810fa584ce4a5b052ece068582a9e2d6b79a38a053988a91b3683f9b95759c253a403a0197f168453aa3bd6111b92b7b74bb832db54df1970a7c85bcdd0c0611e0427135ab6ad2f65dcb52ed33a8e4c4cda1466ad7e36b34cf7e6dcaad12352c8180d68bcaab93c2ac042ecb2090cdbfe09c14cdc35276498e109ac3fee1950000009057607ed1d961be7596f94585f1caf398aec447c13efe341f9efb5541667966a01ea7ae8f68b7c331deb863dbd5377e88afb701d53f27587d33a9d550bfa8a89bbf64491a6c75920e702fd40e1cdd7c62295212b7fabc6777d6398f10c2e26e84d9fce24d790e063b3c45ab10569f13ed1a50075f5eadabe86b9a20519a718d04c70444b1444577f9c66d611af2fe6900000000902fd59afae3531c091f0b1af527123c72a9a5866d71a539f4ec63a92c17f90c29e8e216cc6613ef7b2511a49b0ee30e5fe0e49c3e4cdd715aa1c61648edc0ea63879820bd31c8160b287c9bc45eb199fa0ee1405065bededcade7d7483faf26758d8ce230ecaeaf050106dc489fb3444921ddb4cb2ae5a99c67c5f47ee3146af7507cce360b312931ad00d5c9853c808e000001bc00000090339261e4bc115373cdd81aa97f634f5d7c6946f2e0c66173e0e92cef5271058be9398da5720a2990533dc29310644a1c9286e040cb2aba0c0bfbd9a9aa0dcdbaf3d4f983c1c117493a668dd0f8587d1529b6bf45ac12dfd898adba5c8a707187983bce68f26569352a64ca11fdc7c00a2f5704b437401fb50c93bb239f54c45a1a01020d6822ecdc52a2ae9b1ef0f19500000090c62ca5026fb3f06579914b1bd762c2f7d970dd4a0e1ca53a932bdaa2ada4669dbbe834f155ce915d5b5f9a95c4ff86dd38cf63d4655cb325a96652ce3239ae46d076d8a1e42ad65e1605868fab37c9e9271c4e1c60f1dc489ac1a6760a4d65ceb788d28ec9f9608f6b6b51b669ed7d7d05a68f00bc45edc3bbaafe8040eb003240d829a7ab5abd5c08b704a133c3da1300000090f6aabd420544a76d49845959ab8a7446907c856d36eca872fd03825af49ae1fd624980afbe6cbe8545c9b19f2fc902187053e898ef583863e23b8d75b28d53a589cdd8cbe0485d06ea5764af82c0b50b096d432d56165bdeeed573899ba5e2e54c531ab438fa3e04fab4dfe9c5f33b49029c1a800a3478d456a50d1a65ef205f067a50e14df920267a09da86d6b5a60f00000e00000001bc0000009081b533c19f9ea09698de206e7060910bc57dc8d813ba6c05697fb8e678a5400cc945c5730ddf55b66eb9b2af5d19ca0d2bc1b2cebd24f6d343be3df5124118f8cfd30ba83fe191b2a71580c520d9bcab07a662c630a3c38b094a24dff8edd325b941ffcfbbf5ab3b2a6fffb34e80a2c111e78d60dc5da2f56c5bd8aba5ff575fb54cf015b6c68249abeb3fe6f382054f000000902d9d872378e35007659a028b9932bfa562d5cc9497a290efac692f461e15ca15082e89da8fa4e61a5ed05cb04a05b634a29b8f400eb0141fdd527417db9abccf04983ac0cc3eaf54d54188c99b1acd002bd34173e0955a2070b01c4855c7d09487343c19814ff57d8f6db903b0455d8a1c30b0c4d89d0c25842c00b83c768ceef639a36dacb8e813496d8d74a7aac97a00000090b3645acab7284cbb76e855d65ce1a6409a976ef7eef84076ff3e9c81e082b68f6e30a2442cc432288ed3a8ccf1dd9c95063bbeb9de5bd2c4e0c9ce5a0c048b9df6149cd4b6183894c68189e2830cd82006351d570efb7f797b2d0a0b6f6121d6e4010499c0e923f04e469fb7036bc7152325297a743f2a24c0f38abf0e07675f39c3dff1e49558476ad776765336afdc000001bc000000904cfff83681a7a5873f438da49c480a564760923da235a88b18ec0f61dcd4dc60990b054436b66db9ed6368151c5da1a23c65f0f7f411896bb68946aed5c2abb6dbcdb199ec828dae21c34d70beae85101e4835377c3c25b12533a5b27bbf38a35047101ce00ab135f116f1927224c50712f959fef1a6c88c8d55cbe7a55008ed10747260e702f52b9a548305d4b8329000000090cc1c0fa87ad4d63cf26652627c40b5c54fed5804db179624bc6acd1ed64062e99e50275acf40f5f14f636bef91f5bd06d1b53c74f041e2858a1e6be62e32f872c9feae8657d19f0a5f0d61e28a7cf10a293d2f3d7669c1f6b9239f3e13660638daff0b8e8a1e3b31c1f36b55e4ff00741a54f7c156ad4e5308db482411f67e3e5493c930f2b9a41cbb857fa021421217000000903ee0b537aabcabffb5be55ea148e36d54845c4c184afc6b82a6be6514ea76c6bea77eec81579c5546880400b75134aa330ac5a6fcef933c3998b1ce6255e0dcac2a1d350d36a93c172c13185e0d387860b5de897da7483b22fc9dd4f2cc55eac643f08234737c20c67b2c58d3e208dc226cdb0fbdd90d3d00ce2373d450e7bd9b0296a2cbdd5c1dbf022b999f57ff094000001bc00000090524ca07fe30c8c4b5ca4f5c30b19b26f5d48a18abb3018c3972f1399d26a4920ae9cc13175fcb5585f9a3de7fc5b93111f91a81b7341480c5405af4fc19b186865383120286d32b59824eb6858671f3717a9ca67468b73035512e400896ba5c3da2836243fffdcf1abe906989708889223149110c40f0190231349a29ea1fd5cd90d21b968fbe0175d12ca2e91c7e31d00000090d2b61f4dc7005d290c3bb0e2e29320d8d4f78f35bbdb039a82e736fdf0ba077ec6b61aa79cb4f5da870ab4b09e9877ebfd034099cd674a85b9e3530911105e7993ef21bf6a8c589c710272200885e0c524a40802bcc072e6d43ddcb05f118b4b499104df714e2bb3f8568b16b54712102b65243a7aee8e410875ae13bd78e8746955261742dea8e086b419a16ea822670000009088c521d8b967b463a34b682d0d95113ed739324461bb8a24393bf3d1e34805e1bfbca641c585882c7e7b46905eb52b4588d6550ba0317f180495ef1e48e5e1e2f5c85dc42e88c076803d156a1f98819321e8d52a0b6be6a861494767c0489b704db84ec4d00a3d01466828a1e757ec200a5a0ebb0da0a9f13d4e2c519f1bcb03d1384274c82cae2e4e6e0accfe245edd000001bc00000090ad5652c5b40a2e0ade1c6726b6ac76cc768b00d45a9cc1ab4554afdb607301d0bc099db8723da2dc52734bc4927cd7b335233d27178a21b613dd59435fc801dc77958bfa25910b8063aa34448505d19d19933ca47318945bfa4d6c4f41369a30fe64be98673d558e567b90441c7a147f0c95e731667b7e1d7998ed3d953f22b291bc356abdcd73e7b9039b88b2d74a67000000904780b45ccf61c3de2220cf58ecbec5dcdb5a3a443fa0b7b37d702fd1b8aa8e48ea26ecd5dadd864592c64004cbaf9a2805f25689492d19ad823534a86c178ec191422bf60140fc122ca3d93463c5d6af06e98f63ddc257026763032f400e637b71dcbbe005dcefc29ac33162d028af0c2acc579b0a8c35caf3e249642006a1d68758eb5ea7a6d90fbcda5550d71e6bbe000000902489b951c1a9b520c4b7e5011fa47eb550ffdce7065ea6c13347fd4183fcb7931bb8edcf70fd8e8de3c587072c020cd93bfeecb8fd54cb0a0f8c4e1041bc3bbbda63d0497ff92c489b047e4f01e670cb277dc0c721f2831d00c27d75f5a2ddcedacd04286ef7519275a2042e992edbbb28ea02edb47f972e806a903d52a11fd79d9cc29f0887b9bdb1f4523283db6d55000001bc00000090f4ff9b70f9dee895ca55478330399090da2c9bc277ad4dd105de8ee9609028d4c74239fcbb7e86a35c06e6fe42470da1d53effa1e4c0d7f39710fa119494f6e649d49e2979bc3be19d615c9a953ef4b127a887fc9dab54f3f36cc232325652765cd7e18621b50ad412400adafceb328326fc36c3196efe68e522b61972990c5e8b95eba426282fabe0af94af7c06275900000090bd9fc82eeeace4532ee7da395f58e3deaddfe3deb5e72b092fab45e7626ec3ba338b93e1583061cb06db482585b5469394466f1144af00b45ada25286e855befdd67d455ff4e335492b0b2a5ff6cd8d3259245cc0377625dd5e2e72f504204885816b9c84726056eed1cf72c70634a202937b608a634aeeb05bd136bd9ac24122d8dd3d100b88a1c1d1604350423413400000090f80b9f9afdf659211cab55dcc889930e2305e6f90089afd3d6ec0b7c579f5943fa68c8be02ad5ed2f6a464e6e83f86176337ba8dc214d0b78720901d7695f77f2c1dc82d3829f4e8a89af6fe6a0678c320bcd0b21480178e196081f5f6e3ac2fcb59b26dcf0f4ddbf97cdf9e037e235f1806db8666164caecd51adc6bb7909dd8a1b9e1b3dbfe80f92160f877d185505000001bc00000090ec8da01e88882da9805de3c48de5120f670f68cd634ce5a94ba8ff7706d5457e624c85363657d934a4c129aca182ad9d0ae52f3afc8b9621a2665ba1c1265280d185e9abf182086840e1a405ff3055a70e5df2685d17ec0a168af1f16c90a492a241cb7bfc1276c0856d43e8c38c8c4714928b2ea1beb7cba5f50e67f098fc79dae0eca3a309d824110502b53c146cdc0000009054191925f54c1cb204dd477d4af343a48dbe94262b52f10385866c5328ebae400f18c388b729cff56611ac089091d8206ce3661090832cb66f2af785d014509eba20318d49530be6b830681adbc5b79d0900bf101900f0fabbb597f5da57b818749748314bde8e747fcfd31d70b582d20cc942e31e78b4c565ea5acb9f955133d3a62b5bd24c8d04d635a5aef01bc1180000009000db8c48c3d6c782f324829aac6a809e6445a3b95bfb78f00b8731a237f3e3df79a97bca9dcd93920695b9d2f79860fe42103c2309e090123f15fd626817f554bb3cd4490fe27a01518ab3f9952c5f53296beb7bfe849c319322d0973c865c0fdaf4da5313676d1579c89cbc9e2c4efd1ff5feda6ea27765bca2f756b2bcf325d803056c0b1f569d1a8345f0efa03ef8000001bc00000090e05f7f135fbdf5012d8bed12d4603035f483381bd7ea8d59fb56601b2780e82a98163fe27a804647bf6155bc4e52ea317683b996c31b3c9541abfc935232f9966c9e87c45e75143235c7a8ac69c4366c0f9af16f9efed127442d0e36b5ec1f6eadc2052a1a99fbab79b5fa6e48082c5d091a5f81b7d8541c46bbffaa596c23f3f4daedb33fee367b30f20c027bf7973900000090c75f59b067f17eab4f3b2707b7cb0e3b5434055cd2e7c69d062a45e6bf538b130276f40c54b86bddf16009062c6abde9e796be6311d599df6ce74e37c0c4c75018064532454c43f4f2fe44e41a827a67022434c5dee8b33f66dfea2b57602e7efd47dd73ac2b620ac8059e04c953ba111c014ae2bf8bbc25c954c938819506a534e2989b46d54a12e3bddb3132851a8400000090a276c465f3f517c61b4445494fcaefcd37520602b8e96adffd9275f4343eaab23d88ab0f2ad91b55617c695f327f92bb0296abfafa615958f373447432dc6bee8e383575a942b13de82d1efcebd16d792cb6bdf6050605ebbb7bfea70ad7c64325fc23bd75431fa8dc1b15df3ddff11a09559a9501f97227e77662fd0bb22bfe0d11bf44c6b28324f2b2eb6c267c4604000001bc000000907131a50ebca59ba304aca4fa044f4ba68ad8b80735a8fae6d5f1c922132b5a5c3730c328430149c093ed9f0b7c5969039e1adaa5a52d4e846a745b98f06697c36d51670c9001f50f6c32bfd2960ce0612df65bec6fc910bca5289826210a89b272f598ce3c9ed0530bb5194886ac810d1a6a432785d9f1395750126d0757b29b97461ba3b6bc46285e6504c98541b3660000009014f5e80a2555343a6b38f0606cfc887234564ee752c0abc4f508033fd1665cf10579390a34274c3bdad1fae0a5311f90b99da9ab14507d5f7a1d59cc41a5e5a0d0eb2601c7be1985ef8cdc6d3f2a31732c35d8bba3dd0d7ad16c80ff5b4e8bdb65e274878db40dca8649bd2bf0fe228f17ccc37ec3fc4d6a7ea8121a5861fb14edc4b308adb596dd2aff387da9c650cb00000090c6ff4b5e2431741d17f592fa5d1840cd9700e6bb8696c740c45f34f9aa293f5df8ce4d4c9b8c14975bc056fe4f57cead64cec71b6b8b0ee3b62e9a0f8cc6ec476923eb9e584eee25453ce8f10978f35b064f182025a119f88c46bb469ec385227db0300147333e6de994629fa7de26b8105f0ebeb088f2f6a5bb203d203aa527d42d0224ec9b2d46d0a8b35abd1ffaa7000033a000000ce40000012800000090c71d679925070d32c995da2681eef595e6f53e550027843489d1b0440309a69d14b229674c481b0b9e84abc2c60ec7b837c0342204eeb41512539e059c3449f38cb6e9c86aee38a28b1473573d1dcac622672420ed9e15917b10cdc7b17d38622f211054006f989079d0b0043705e3d727ca9f0d428f68a0a107c2e1915460749edc84eb3b31ee811e34adff1cbfd6ac00000090038efdbdedc31f2aedd171630eef8cd0d244c3be6dd41d4b3ecf61c86175e645fc74affb1467beb8ea69638bc1341da593f9a0bd7e53fee9354992e16d0e6587455b9487e0ae646c06d1944638c0e15c18f9bbf1b441c4d366f954032812d7ed91c672194567076732f8f9d81f8fa182190612331690e5c0545a0cd27a5c8f042642deeb56e37297fa3ccc1fea7f928100000128000000903d7982ec14d1c8358d52c6f6b8bcbafe013830e191a5ab39656154a777d45fd91aa4ae6cfd91707e5933d89518faee66155aeb4ed726bb55dcf3b40b644d53a973088ab3cfe476844a015627a5b09a5a0fbde609dad6b5538f58f50fc75c43208236a3c4ce506254f2b01fda3b15252b2fb6c6247902f0cdd40c0e034e2d36ad9c6d22589a8ad4d5a6ac22f291722cab000000900fc5444a190c9c87ae83bcb9ec3baf6dc141530d84976ab1f4451b4e0453e377e546dfff5d61057b6e57a813160a607f8c1d19aa876143fa103c69cc146c57ab896540a59e7e5978a5d33d8459ffe32c1fdc4b9a9ceeb1252b595ce973b876db1d490f2def2cd7990743e8ccec7e85651d3d222d8aaac525d63967d4a006b7992200b19161f3dc590a910f1474e70ad10000012800000090ab379b57322f587efa10dedb047bd354a431c60b74c36ed74561f0b5819690f528005216797f9cc7246b77a8aee294beb4b083bda3b83fc096590e068f04561fb3fb1f38fa25cafe933f0b3aaff547b21680fd97f4baac392cc59d1a27e71e1b22a44ec231428680618f68d8268be4fb1792c61754e1d2f021698e203c6628a4c638022fc53bcf0bda5fc667a85e624a0000009045a2fa32a7e00ccaa3cdc333d013a35d34e770390db631493aa0f21aa4512e7c123673d469cca0a4ee651b5e84998299fefbb3ecb360e7fa9d3146f7b2d52591f3b11621f39714f4398f75fc7e5b52a62375dd3b9b947ba60426803764fce43970ca4be6217ce5f4ed7389f4e48b72bc0b5516972a0e4771ec103a10d2bbd3152766b278b20d9af01e4353121f30ffc800000128000000908c5686279bb6fe6cc423939eff72183ff10ad85e28ce99f28a722711b9c0b504af55d4afd50ac935ba78793d4f70d061ffe1ada2ea223e630abe7491f547a1914e66a1ee06df7082d4c172abb8c882b21810a5d7124638ee6dc2caf8fc7222c82573e56d34d6687fb2186ed80ebdc4831ea7d86fde094f306539288c8be66b300442b49a59aab66ff5b736ec9a9a4f8c00000090498b2268c9ed61ce6bd4e8c4ef65df0a888902e8b6ca111f9e8d6688c86024d5502332d39f4bbea07e64a308a0378aee61e9bc2cfdf2ab3230e2189d1b835de9d5b150cc914393ac43b7dc7ff56745912a53d2cb6c88c3fcbf6707a485a1852935e80dec3cf0dea9f4eeb75e697f298907fc5f8636796e3d94bdf4b52fe9fc5f07b0f0a17d3f82beae12d6a2222f0e56000001280000009072a82eb0812ef2f320ba109534879244dffc7bd02fe1b78eda49a3a48ecfe03a93bdd580cc2efaa04ce8ba355d1581e8b9afe08409fbef91728a1053b5ee2236ff583ba3ee585b16fa574f9ebe6fcae7179f61f5b79931f1639ed43861f5b4a33a7c41cf2fa55c520f9358f45db7f90f1eb61866514ec833f9b0768acc8af7edecdd4f93992d70da975dff2754b7f19200000090d82046d30f688030a2860b4bc7be5a704d44673d9d6c508532d6d098cb140202a91e9880fbab548f0f87bf0f4b4df23b3a501a86e9fe6e82b896c2def96bd43d23335176e45904c77e0d78d5a8c6d97626c7f06e116d0ff1aab88106d53425ab3ff85999370c19d3dc5c0406864c74f40d102770a0d8d7b737850730d27da5f989cb23b8031e3582d418d36e1b3ab2720000012800000090450f3832122e3af03e91a318865a2b335dd34236459211475a6828a770663785a1e4eaf456f7bfea679561f461f464515d5975363b7ac762cb5b18684a58d4da94b43db18d70cdc0c50253b54463d271244af59856bd7a149fb51e1e5a6e4ce1a5c3a091acaf2f09cf8f406b37854275133242eb3c7f690cc85ca3eb51a84227cf11fd3fbc1b39f668a262f7135d6ed5000000903028f27724261e2750dce0089a8d5d86cc9168b0b1ab852261d6c09844a4a011d06f761c4d85a6c418bd71c2830d10d2510b73bcf31fc5a8002721444fe3d60e9fcb9e6da66a9d079fa57027769ed47f1cc46f59e1b9b3cfda12fa6176db2e1aba945452c4f0c47bdd1070db102802fc2f5d302852c0966d518085c89a4bcdb4f1f487b377875f6161b488b3b128f1650000012800000090c3ced23e895c7656573b5df10d3646ebca00ca93e876938a0f8e1fefd50db2d78313c4cc2fa49cd92335279ab6c501fe301d108dc6c157b8d96f0e1b6ce376dbe7de4406cf1e89631e22fd33a3b7ab1b0fab3434ba1b41db25d020027e28de7e4b00e3f31b58cf00249d56e3561ce9f024ecfe4b4f7029947569976a107c45c96402b762db2edd691bdd2e0f86c4a8930000009015474eec2eba6d58caed4ca78cf4e443e3b503deab75fe074740e9be70d68af21e1aeb2e66850a131b41a942463b1c7dd55206d0b806e91b9fc981da435b9388cc2191cd952d2db93cbadd98866ae79504c935649b6cffd6da114c067aa75c240b93b2bcb23381c62c60b2868b2a13ec1d1f2611d49506039c360a0055cb51a8aaf39449ca6ddc7d63f68aa9d92195770000012800000090865d87f1e469f41b5c31ed1e616c2a0674645917dffd61e065f9fc5e73e13a7f456c2f646b9be714de0e030f604da073b9505ce841e671c1d17ed04d46e5565015a2c3ec2729af33490721c850e3cb950bd68d278d322cac9c489770957d94705252b455022e22890eb6a7056f39d1f82eef60354bfe05cf68306fab8d59ff6cf0ab2c080401864e1a0aebbd7aaee0fd00000090d61da29674c311d4f823a6b2b097b703c0d3bc76b832b2f5d3592c6a71e7316df5085d7826fc108febc8763e004b639374380b4e15a6d483ffcf9655d16c1a4a0dbc48e45573c394ad50b97e77e8bec90ab5d3423a539e719906398fc33bcf6ca0d937297c69bd563a41cdce943732312e6f97104340fafaa6a85fae36a5ae80b81190f3798d8e9bf8bc71491863ecd40000012800000090ffb7ff7af5bc41ea36f85244d1a700a2828ed17f8159cef205d7f605c2a2b563dfdec4b8daaf2d4bfcbcccbdf7a216e61df86acf665e8dc075ee708962cd60c69bb463316ab697783734348c4ad00c5f16a8ac58d2715034eba5af99c4b67fa7781ee27405331dd58c90428352b595dc1c46a6e1f277c2f39668ca628701dc3835c3858df17edff389ea3aa65dd30dd4000000909fb2bade83a464bb1c67b00819d59e2a5b9d41d92bc7ff8fa82c695bee6d5d4339e15ba0c655ec17d28f08a7ea91300bcb4b2cbf78a7ce01464f64a440fa89b7ec80003aafbef4f5992c207448a33cdf09b5ff6a9c69c500b013d12d117bbbd23752a082e5460bd74fe7f4ed1004dc0300bc502c819b127979675a3cb875ffcaece9468836d01abb957059ddf8aa56bc0000012800000090722de9d67d167ffe6df805fba007296a18eca2e2de7a407a7b4cfd4d92713d2ea6dc700dd8f7094c8ba5241d56b5cdecbe6c32a89d1bc666e65f96a4d37144af333928895f8b055dffef4a51bfadd2042c71790d7d76a869015ddda3a4b2027e784690dcf3a0ff6ff60d4f97283a926f03a65cb73f6516dcee170e66adbc7d3274fd50f853e499e5fc1bfa44ada90b6700000090404bdb971cfd878a67852e6664e6f53ce6f6deffdef0607050892ae0b59e7d08ac7603364f47d0dfe2ffda9dd73fadce4c9246cf68d001ed163e08940f979f5c1bf412b6d9795386da60a95185cb20ff2355150975b1a25646c74c1303ebb7775ba620d70e09aaae7f97cb7b6da8f0991853f44135f3cdb67dbf75e349ea2cbf06407f804848090fc832d7c1d7e7c7f6000001280000009007b0677b6d2eabed2ec0e09f127d60d715c2ab741c384278c1f2bbd598ccf8d22e246e8852131aa94de590c0cfabee6629db631f44b5509ada661ac07987092591d59afd84b45f97e1084d87ff6145fe08881d6b651207b9c6a106aa102f66f08cf864b77f17a7b0dec92b6d116734400027074be9638080c8df12cb3aa2aed032065d0f183bbe14b94d5c4729ca347c00000090efa094e21b696a986eac21a4d86999f263b506bb4ecd2cb7a4b82a061bec6bf631f52ff6f33bd20ff552761f1333977b4b2dabfa0bc42dcd78921f087c0fe6781761b338a30ae624899c60fd69da6fa402c085e1d3de548a08c26702ca97de22d430597df903ec8c9205b3822ae395bd14eb9911c0d701ecb994b25bcd98ff9947acc66470c48b15e884aaee4632d86f00000ce4000001280000009063f77aa908b88e3af656373781fb1f7d004b3b2d44cc7b9d19af6db5389f0bfda548770c4adea33ddf8eef774b8cde6b8a7a9a041a86ed15408e108dd5bcd92e1aa2663e4a4d2d7a1aebc0f19aac1f9a0db16679dc2f2cbd378fa2918cd9a36e74bd7b341102326ae62301cdca306131194cfff96dfcb1d53e2c71cb117044cbc09bee6385fa06de2887359a23ec732d000000905623e40fdeb53b03b938ad694b8f785f108a308c20bbb3d829d8a5a7a2a51eddd2be4cb6ac50ebe5f4af9018ed5b8ae00de2a29564bf8fff18603bb289014e39ffccab4126d8b7443c2a764f33c3f9b708fb490f14c065b1dc4f24ca9725ab9a091180de66ce9f65979a81f97523b57f1956b60c989c44138d57b8ec8d3ae12a3a15f5cf0d81607f176da730c27281d10000012800000090ff9f267fe556e160594fc2a5a815c041f2c47c5d827303f7035f9abe7bb8bbbf3d234753a43861321deeb26e1bec2ba4b2f5595c8d3635ad231309784b97616a9324195c31201c6481c2104acc39af8a0a476143a197281d042a696299d4f714360c6c20076e83f441ce7ea6afa9447c15d5cbf43c54a9ff1b3d516e2cd3cfe9de5ce1998bbebfee61cff88c41cb5d5600000090948b7f4dbaf6f2831f75658a6c820c80c0847bd526d9f436dfcafa1afd370280773ba8294542e731c93069ebe5cbf1d6195f7e213c517ba069cfa7d59324f40f745efcb95cdaf858a91b244b0f1f4b84081fc967b62e7142a9d195a9559b2ab599a3099a7e125eef3eba3315a67ce5300f6c54300868c4d7190ea9130d9361696d0bd0dba43d0834e4864e3b7d57f5650000012800000090297bb554da0bdda1d83e89ac27a54b48ee1790c00219cfaa0167c77a34af87fb3fc8fc0d80d89117fe62230de3a72833ee8938d5a0eff8048662b5e45f1e57470a35614563ab65e2857414b634a07a2021a42ba345d06f798efc219b2824d07b8978892adda8b49806b449ad7c3fdbd61131bf968ba49e7e8f1eee5a7dd64f59bb2bf6cc5fbd7817024bc4709c5c159b00000090b7bbf78d1f57fd321952af5f09fc41efae936cddaa198b5f1f71e21d78cb5bd1b563471a0271bed0af52ec5060153bc033920c8c88bcf699fc6e62a5424fbc67ecdbb54f36cefcefb7ef75066f2e71481a9844cb22b4441895f7424e69327fec159373879d5c6b195b7ea352194e555011775c3ed96693bfcf1ad3eacfeef7e5ebc5a57365737bf930fd0a447aebd0bc0000012800000090c24593fe8b57a02d3470403d06b5bb619d6f0d14dc9a4c873ffe1bdd4dc1ca608e3bd4dcfb515ca69ec8e1ba6d0650eea0ad9b8ab7835c0a606ed9afecdb08cc7d1b5fb6dae4d4984bd749708e164ff429a02a143d35f99212f5ea89d1442bce93fe3d0573c30d8a62a078bae1c407621006c8b133c5b40f4451bcfcdf8192575ee5fe38f278b537d7bf5c13d3c28b99000000905a6a50f82ffa27feca446c6cb59193af6377415e82265c4d28f1f3e7215c8ae85d7330a25d7fdeb577846ba17585ad7f1b14980ff7f6762f545903842a61f6c95d1d34eb16933e8a832cc506b82f8c4404f300adfca46f0f5e08fbd0b99e18b908f19a63fb6d6f98e9fdac26aee27e7c2b0ab15de3aa62fdd415c7231a54279ef5d7cf9e405e6d1ec090f98b59a666520000012800000090793a9cd754e8f7f460b4bf5d8dde22a6993914b7cd1389eb80c927cafc5e6272d5c90b1e3170e7569de4849d183fca9007cf8b178839597f8e48d13d0e1106a56e2e69bab949edea1153a6ec3970db0c0acd29b06582e4b2e1ed2de1cf4c32752a105dddfd0095c5214b684041be5add01499cad24b94ca1ec7d78ef349051cb33307f475281d1598a86a30070a9a64200000090e14f958c3020249654374a1f3111adb7173e844f84161f5b7274baf685e12d52901f415ad5c37a1350d05f58b131375afa7e9ed6d57e4ff2dd1945069cf85e1061d4f601a8fe9541f07da351f5d212750e70edd753036e02e2a1278791523aab1f7a7237bc0e4fd798751bf940b2e02805bbb1737c9af7ebc1d5cc99e012ee2cf15e67b3c89884a832ed38ecc4822bb700000128000000902e7d5e82048343981a2bb3cd56f7377ba5bab3d4918205007497e5a2d35f849b16a2572485f42dc4380cb5e1d3eff4e1e30e02a93faab6cd338138ab142f976ec3d8f477c264ca58466d109bbc3856120e954bf2ea346ab0ba5d0c8a9abf7224204ddca8ec5cfeab4ebecb06ef6e8d8909a7d2a9ac183d3c0ea5668d011e9f443ba88e160c90b7e795e015c87105dbf500000090503c75ac6e1f0725f302316b715daaf080b3014d4b19d4113a0377e1190f27e3a589fbc8084de9b03e5e6dbc565441b42484451d8630d628861f6d0fd0c53f9f10e393335ec07594d7910181c90ed6810044f9ae40fb83e41486a2bc6d588f26bd6af302cd368a227dd511bf412544302d2cef03fa3d06b920e9532a50faeef82b6fc3f6fc8321d6375c5f8e44d41fad0000012800000090485f789e23a539a0a2f374697ddd900acfb0f301c991c436bb294e707fb652674006d89052d59d1b9b0ab424f3916cab852056037212d7c7c4f5039f98ddc5aee5926e103cd9df9eb5c061f9603a3300061b67f709c3088e16037fdf0c1174646910e2b6aae3f820494dcdce1cd881662ff7ebca23a35290a2c8dca50bad64c50cda5bdb531dec39e95a3892f835d2e9000000903927209a4951422c3bf52a29ff18d371151bf6be55fc40234ff661b46474cd7153c150d8f96de3f2e04347f2a25ff734c1c60b8d256db004f802700e822a4c4ca19bf6190807e29ff4a895706575462607aa4353a32d228d0ee50c8bb9db027eb833502cbd3207c66a67baeeb39a1b1028ad263f50ddc533cec2c9c85f606e62ea031f055efc15ac484eca930de220160000012800000090eb5c73405aedadbe78ca133680e036939f63af7bac31b94e87461e1b6a86a47d1f0ce79f09884a23a47773476f46640363ee2ace60205d246f415847a03ffec4ebe4665d8e5129f99b77b507e16ca7992673b99d6c89ae4f9565ce47c31835f3cd823f7479a417c24cef96cf99a4165e2d2a52862400ed61e097e5eecd4878cf0eb5b45b82c3d99743a298cabef51b1c000000908a8daf200a00bb31c60fa406ff9e058563793780b33cec32ca6f5d9d2f88581961c0119617997f0db7537cecb603f4e70064043c9d9da6e7b9c46c69d654a1f3d5988dd903e369e688cea1a7f4b7d09f1f46d73bfc23ffbf13d7833502a10a196f54a77016466ebbc504e64b597a139414c0550fba5a4641fce3b83d527d2d86334fa8418b68afbe5ffc6a343505dae300000128000000905d63fcd881456911188f19939a8495e6c78549700faf7a3a6458fd88ef6ce5f77ff22c2dac5f556d52a2fbd36f8a94ed113fc3f8c8a66f868988bef2a00a562a0ccb64cf4a96b27de14a504973e5420c12894e1bd5b9a7b77453596039cc67506a884fe44b2b011d431d878bd32942171a24cc4bf57cbe41fe9327e0aed0d218e032787cfd245b0b403b35dc95c4df9800000090e375ca363df3929003d884321e970109cd9ad391b7c7c74a0aa32767d7602acd5ff235211adb7ecfcda2914559315265c90291243cecd396561ca7f2635863606b657c1a2238f93ebed0f6f8de081a940e6f2007508f12def94d326e615486e0ec209ebd78ed64bcd8c51f7e423b8e7f230ff1b81954c47b70495a1d74736ac12626e688a6d67e61a6f27e51eb6d38990000012800000090de88fd7e12d05566e5cfed1d05fc6013f02dc112aa74f0ac306304cf559236489cfc6dca53776dbdafc185ea395015f0aa8d1ef5f24487fb8f99edae72a72c4e5590e672f502cbdff996beba83dc56dc162bfa0e0a57c32ddc36195a081f9d42f11b1a0e0b09b34fd443b9040a1ee65424d9272ebf6544a7fe9a75b7efc79407cf28467c7b8256e199d2643492addfb800000090a3f440389d4a74107a9501da64a3b5dcf875d9ac8c82aaeb2768d34d3326cbcba65a96a1a3a6af19c99df344149ade6782d3eaff679f3b24bf91305d10827323f7dea256ce10f5ca79147f99e893f30027f7c9ef1f0358a18d10a2d87e98e79ec7061793ae4ca61634fc15903e7a00a509919be972938ad2aa5413b0855a701b4ff6187311d7a0ac8ed66e85f23833b10000012800000090ce588cdd25056e3b2f9201cb7dbe48ec9ab60b8469d2352a35049c31ea77f9af1069f9d9f215942159ab154a8b74e1c17009059b1b8674c341499ebedc27c90d9ae8d01c7d819695da6a58a61a540f8d1e9c57d341ecc20a7cef02f268e9b6746e645823195d47650e56d88f7656efac1c7031fd2e234ac838a8309d5e70a5b2b17a4f68342c597b58a9d64270a218d70000009054c41b052ead3566e398a11e68a8139f830c5701989c97ee2a698b7796fbbffe81ee971c2bcf7033a743f01cb192d281fa215ab5658b61d5585b6670ecc2ca2472ac1a4117afec0877f5d2cefa31f4931fd46db2a037b341e68e55fb8518361e0c238727d5ed761fee9cf09f307f351803a8dc48166f821c06900fbd405731a012e470772444571a005ddb019d0c05a300000ce400000128000000909897a994ba05f0486e038bb585e5571d9e127a6030d4435ccd58f38b0f50d3e5988bbf20f018e12fef961eebc20c8debb6b2099faaba17214128d774be4377705679bdeaf86b3680b88e255d862dd73f0f704e8010d711ee89301d25592d1d4c2aba8716264154c634cf9c850f6efeb204e9c44e005d3ff9244430333bc9c1a6ed21bff816948b334a72b6a924bc965e00000090a49c50055c86e10536b64b3f7e8471e2aec4000c158b54abf089f0223b5d8d999b3983b8e6d30863dddbdf41319d572c6d2f8c6908a2ee7f7d38c97541832e5c8f6434a3b9fbc69a5a16641a33c6d74e1a48c49fd577e345b7297c15a35e53def3cb55b8b93711d09b0eb97a80a065231c80c5b0adfc02cadf986d512f2b44775d696bf1d81db65ef12bb4b0333f9bf3000001280000009053deb49fbf158b5be94cd2a438f3413b0a1fdb10485fed3388745781d94194dfc38464f57970c5f6e52cdfaecaa60fefc35164bffeb909e7d9ea6dd31034fbaad36110d8f820f7dd1d9208aae6fb125d1fc927e159624750a037f41fd49a9d1d693c87debfc2dab1d2d4e94fa8b2c34828e0298fe92306aecfd0f2b5e250837fc8d4b0bb949493b75e138112504cc47900000090f3d83ed8705a04d934c3fefd11bf674a0cd0bb9a9756633791b1b666adb87e0f969c7d9ca9c53562217d047161c226ca8f1518badd719cc009133e9033789fc38db6b6e4aa362ff305a4ce3448e0e9bc24a2fc3189ffb1a0e60dfb6141c8092992b1e06c77fe8a411a061a8daa4b52a714d7e20b02ea6575319f99998a5f7d9c1b40259beaf99f9966c2f34d1be439180000012800000090c327096b3eec0a067bfc1c20a47502c9cfd269e3d9730b7f36a804d0164fec3c9cce56c6210d4143cc6768a58e1f0719dbd09744838559fbf7e716bd092753953bfc3a6b2738c515f7e7e027d031ff432606ba6ca0d2ef38eab336924eb792cf927e016f16c0cf891eafd612d5d9cfec135e5d68f88e994382cc6f400160cf1697d689899f45bb7e3a87bc95cd7eea690000009088e9e7deb8aa55e2981ee9adb7a44612bd7169d2def6d060b6ea1f0ad48caf91c75107333919ddacb0cd71577da15cbc882e21fe80118cdfa627a65dea7c382acec3556d07bad8628940fcf895dda6022dc658e582265c71baeeb0dce7a6ae003ab314f713e0c44823c005986ee0099a15fc512a02471af9e83fa7c7e95815d157abdfe8f8eadb591b3e1adbaa5307ce000001280000009081417056f6e040507a63bae32c2dcf546187aaedd0bf2dbeb1dbd5fe0a0706cc95eb5b753a80a899404daf16923bcda2d0676cf61e4771c1808681a1d8c032c455378c4800cc646bab5d8599a3c7a9841f496aa79516daabcaebb6f15c6e7dd2854bf294c5034dd2c063fa7914c99c3b277aabfdecca615167482f218045e805035b976c285c62c691eca4c8df9ea582000000904a525e70aed1a1aac3e69072a4c3b2671e6a938d455a9f58b3c558a73f50f7f2c5d6649db92acf5cadf941ace8cef6580b2ce3cef9f6fc2d3a8f7b3248eeb04ef8046479be8d8dc63e4e7f9ee35716991ed2d0e0ad40877b764d41395e225445da6e5397a05a5006f8c00ee3b153b58f12fd204c83aa3b83c0ba9b46e6d59ae28c41bedd59abb1bc926bc363cf79caee00000128000000909b037a37d4409a5181e52506747ec1bbb9036c881fd020d3bee2dcd612e68dc1fb0b298bd8aa7ed2cd5f882e9d3246c91fcf55db2070d09c33a6f1219a40e33c47dd91199468f261db47a9f64f210e2e06d88b209f6c3217730704780783505bb79e9c39ec94f3d1f7f0e6257054388f2745903be8aacc22b3e814b50890294a9d8a40b9dc0a3418c85dd2d80a8c6b7d00000090b580b02d3849d33e10ae774074f374461d60f1d6b339bd2d39db0d7c442c22a1af2737d0647c31ff6df4d49bcded921073dc9d229c35d6c87075284f97c3abadbb9d15b0f343ed024b8ce85e5aea6df21279cfaa7c940419e5cc233e0040a0b3a269c4484b31a71e693edb983ce8dcec256eb90fe2c4463bb3f3d450ec32ee3a59aa1b244b57425b9f5eeddb8290174100000128000000905a3a2128768d8d5f73d71a428196735890ea6eb04c881789d5332891a38abf48f243d01cfbc7cce5b149e1bdfba4818df5dbd0a38d7ce2c619408614dd6490e23876793d119818e657d3474b63359d6902db8605bb2346f2164170e8c6eb5372dbff0ff7533c242b23dec54006c5876226debfad08fad871275239cd84679a8e7732b869d3dd1d36b79ea163ff8569970000009091956926e8bf3bc6f6d231b113ebe86e0f5562bb20b83e4b7115b2905dce8444dc55b3fed9831313d578ebae075b7e76b9afc49b48e7d35c24f49b1077f1677d418f5e8de6722a552b556258da524cb00c703e3643fcdee02b1990a394d85da8627bdbd960200d2cff52bb2ee72dd4b41cec456f6190c76b0dc9987e8b578427effe223c07f71bfab7deaeae68ab37700000012800000090c96bafdbc9d729e2a3e41dfba1cf190807289c45bb1351ea9be682c35f72071651c61bed1d08e23d32718dbb7369f8502bf6a0939495b8805c2efa14d0e3c22db5668b1f3cdaccc3a288f5b33f24e74d2fd682578d0014e91b937555feeb8a84dab486a59a7431d628cbbb3d4102cedc009c2a51d9dc73993b322c6faecfefdba0c99bc43ccae92131249cfa5db070f400000090f316558939886b8972c81a331c9bb56e931929716b985bca2d2c01d2535f036f5bf00b8f7bc3b5ff62cf36fb7750792f51e7ff80cd9bdd74f07fafc07170fa1e76721d7d0c34b16edcca6f3c7dcac4691b2853151dff440a70e39c00b55f88a2b4578252fded76768a9b2dc103fad5b60e0e2ee332dfa6341526b959031511e6fe87c9d8b7e94cd864deaced0fe917780000012800000090f15673a8ac2b26b1ea8b0872dcdafaba0bd0cece2f72d76b8d2e2f2d0dcc0e0b72281c339f4d72c00f8c9f54a06697b1fca113961620727494fb50a9ba1fe014b4a86b3d687aededaa520bee1ccc9ddf211af150ce36dd15a72c7cfe44537630b149ab91f630ec838aaaa2f5766ad3e403b61b0af41c0264ebacdad6aa3ccaededfd921115a83086fc1adf24fb22c23100000090aab4fd8ad58bdf17957383860b25110bf237f1ee8426c453335747d9d80345dbeff22faeb160b1fff089aa148e2d364a657bcb86035413cc1b3a13295e35485daed937be9735af02727035f72fa717fe1cdac398541a9d556eebb38ec9676efa8bb4cdb18e20bd28b084644478ae97302d849ef7f47e11e150c6d4d45133cc46538d6cdfc3d10d73ae346307e93869920000012800000090243b45e22c08e2c67bd02ec3094e45372e43425ade05ec2cca9fc280b837dad7bbadae7ea3127d19186329f66cacb183fb8156d2d6ca130b42a2970dcf9cad7fe65523b3cd2ff108fe81b2e58387871911a747eed7afd7b4d2cc3d67a74b8bf970c2d0c1b78b459ca497d55e33b29abc059db6d287a067050c9a7592b893b7eee3312e672f2f29bd7dd906a61b8920000000009097886a623b7bb1f1cce68039b4a899e0e0b0a0451c35bd6be205c972155c12143311d4aebf3e2a9a0455e8bb3e9eb53a7b18784fe540d258730b17b3fc55714196288d0111ddd0910d87914462bad49815aae603595888bc000c5a21e6a11776bf1232a245888594db842a61b0dedb990978746a72f2cac732ce8d6a52c081ff771009067732eae2a3644d3ab44bdcea000001280000009044e0a4bd5e3a78f5f2161dac9d19b79236837160ff98b2d82407bac4bdd0475a85ca56d08edd50aa7cf146f006fec82aee7ae6cf8ad80d974adf6cc333c47d2809f515d3a6268f1f3f9fafff478a154913a9a5fba94787d68b1c90e2c689bfb89d7d76ddf3ba9503182cbdb6f4d9b0a7098f7cde67c54afbb616efb7e6aa62b98a6930bd3ba85e1ecfb0fe1405f569d00000009014db97e6099157f09d0e85ce50765b5fb344cb1fa282d46914157a587c697e8fcd0ff9eb71dd3fa8bca97f12951dfa0554b63907ffb6cada8cc3ba7de76268393cb4ac52e89fabeae2c0ac62ba535ee205e80d247286af16803ee652f2d659c86c649a85ed0b8db322d2071deabb5427224c195b68bd42d81001434d2a52461340201df50ed4184d2649f5b44aba5d4e000001280000009006f42b65816f716aaca8a064f3753982938baeec88e190b69727f4a37a9325812010d0df94d9e91487b8dc65273b0ce2017718658a0bde0257a800679bcf758a218c01f2a2111f1e061ca3eb8a953df02355b3ce1b3c92cbdd0b6393e2bb334d5ac66fc15dc53f6f6384a044fb84db771b93b2ad429ad5d2b133bb7cac88be6d4e2b65f0e9ae70af2d9b9e0b1d21d664000000903ad57810e82927f9e1ae20f1b7e95c26e0fe8d108fff5c352ad1cbd547d0413201075470ddcd2afc08920fa6db662db4f04b02596143a5178ff5981151727f649f1aae93f0b02e784a439abcf9be449c2035212828ef61bd5653efbb6ba88043e78d5a8c96e803936c3be5b0b8d757f31343db61141bc8d15023515cb7fe0450d77b5d5b9b962dac04b5d65123dff05700000ce40000012800000090769b7a95fe04e1f2143155e7ea60be905fc932a1f934e193004ffaf8801a57992349425de4379f9d18c7e4611287a96d34277310223e56b4f5b188130006345a8ef172ac777f7857eeb24ca7fa6a84d022c743e6da0e603bdc94b18f32273263955a733bf98a46e01bb6e56edb06ee0e2bf6e111610d01d28cd2d96ced7929852b871af1629bd70d6abb21db8a93a4ad00000090629d3e61e02ad7e72fd42528a18eb029f33e80a4d464d8963a8b27472ea6386b7ea7ad8122c4d478981fa75becf8211cec6e49543a0c6fc9c4a4728e0ebe656f4005b3b40ea8d9c38eae95198950197c012fce04008591db2be1e00b64183a0efd705dd568e0b1978b3e6f92d0cf54991f8a2fde3dfd508015ac7cc3161a98d9b09a333975f28f39dd86db5ca72e90d60000012800000090b7e11ba7480b5c973fcf207721a59e92e1fa71f0573ec486a3d1728d0782a2a7251fedca509f9506cc84313f5c3f3e4a6d0cb3eee0769a1e766285d6e386e7b90bbdb1b482504cb062bd33b4a46e44521cf3a4099423d1a193cb662f11f28d68381fc162c71a39878f32203c78ae3ae71e85253f1fcb46175e58adb856361a7893f17ce700af632d01f766f002322fff00000090a194629bee6e5297af2d4e81b9552497d96e41c40202bca01dec4fffcfcca19011eb3187e5d273022b4493dda188db20c92aaa7c3f040fbb5077f18cad5276253829979488d68d8b256f8e9dd5f13bc22d07de22053a539c84aef451ebeb66ff41091c59fe6ebc335591db149937d9852e3f5a07bd276a8f3364755c6fe88a6950d723e60b528ce8e3609353044c9037000001280000009041d5f38618d22c35005a4ccbb2e563c85e2b448d2201c688c561242e1f3180b20a70b6368ca6a04a6d6b7bc8af5bb27565922d1bb84f357ca84cd569732b487b050858315370c32fc772389ccd70bb0c1e59361c961d1fec593ffe37e528337819ab977161fff87867b7d817861efd23190240e0e5eb8f20390da04b933208db4cdf59dc6c95c96faf995afe69d6d4af000000901311278c2a29bf0a5ea49620300d70c2e70dc5e35cc2b197f1c0af322847f06c37ee9eda077ab4418bc7fe13e323e9d8863ab80fc84ec15a542c3de17964ad98e593640170a695ab01500422866148481db5414b9e9dc74808543d57b11b0d6c9ef18bd36a20ea3a3a4c295e5e6c61b80b0650c0294647be70a5ddc723d11990aabba34c7473de537f4b13815297c75d0000012800000090350eee08562667e68db2618c4f7e8909c769d2acef55084de48ab1aad2a9be0994930636de38bf302c1bf742744b9e4811e4c6b76dde69bc221458319dc3a82728ff2fc811552ab46879a1b42916f83704621abdb5d3f3725eb701a93b29a2bf46e494ea7ed050f5af474860dcc2f67c045afd17b39e0ed02fdecb7ee41beb93ad62ee812e1fefa53457508f92bcf86c000000908635c62dd4cb48672eba900690c4a2b4d9170059c626ac043447137abf472e308cdc51946b0c4800b800d2bbf8fa5ccd6b88e05d2d3e75fbfe528aa720cce1cf5f2fa3a08ed75ffa1b338760bfeaa1220e2491a9002eaa4a5adba74dc3d51e30030fc38a517d48f059e5cad099a71add28a655df3752f94c35102cf84371fb8c289d70c9e3c79d0923d96eef8fbe01c3000001280000009078944926723027a07938b0560fd9dd6a01161edb84a2b35deca972e341c0c2f99debdad57a4e9fd343dd01fa43b4e5270c4057f02674a7e2379c3676e866aa5d63e5cd6ac2eb45772fcb32c440adcf59266a24a74d703fe60f9f520e0e5544fb0a665ec5533a44c92ea9dabbbb20b977029c51e0fd9a744dc2e2e9e980f310ca042b2078a2e4b78f011e506c52a0968900000090b17e1c111f7d425285fdcfad0ec746cf7bc2f06ce732e74c2ea73c214c689685a34b7bed644015beed00a66d0996fb24c837b6cfbf39402a71fcb3f147b54a83902d349e2341c137af6e652a8be73df32e13ddfb927e204afa375e1411ed811734a59c4e3c84a38e8e266a71ed211d5c0e40ab4aab3821e42d8345fc11d7a24ea7417927b534bb8586e0727ce058089300000128000000906482e87c2faa9855ec501242a3f85a69c86db4f79e1629a57789ecfb57b731a1862630807e5dafeb40bb7114802f1d3ee7804a68e63ed05f968ff91f0ddf76a7c05d7bb28fd92abc18c0f2827187a01d2807cb0c5c8b000fe8ba06baa2dd2565ea295d90fc0f39f7e8d153c99063c034132e663cbea67d110d96f50cf195f8c0b121c21c2ec73f50e6c733031650767a00000090ff3c3a3650a88f58d5041d2a476ccbf9edc9260a2896e4e26a61780b40eab5afc563ffb21838d361fb21731a88d1a437ef9e99cc0a6746cda0766c7bf7846aa417741ef05e712fdda23c2a3a3f10fae108dd3267d80f270b10132d4566237fdc1cd4121258ed8f0098b4c628f5b26d410b7ccadb3d2b5d214201ce41ff79ab0f9c3743001cd55bb53e84d346d90f720e000001280000009089e091d396ab28517ccbdf40a45d02abc83c6a771310ee94385f14dabd50b3239fae674a98402d00ddd41a3139552a81fc6db334d02c87330d9c1f5747d1a5e6c5e566ac2093622d4afd551a96e740f80f30bc649c2e6f25db9cab1c4f53c2688ac6dba4e6d24219fc3fb3e96f22d79d017c16f68e4e15c1e9cc75ded884ae4b870bcca55904c7e4c85b902c48297f9500000090f6cf1a1091f1ff9ed45b86d475d81b47df21fee05708873bc11201c9ab6f8852cbcc8c0e7b0cdc53f1c832a1b277842b66282e57cd677c5b3816d4715de88701865f8b9c6a394a9345b2dde9b3707c141d9e14005c89c8004d3eaf70941aca0fa20d4b861312a665b20dd2ed53b9f6c80daab476d00c8716f32b5138bbaee3755b74b0c265877d7e88caa5bc99f5df0b0000012800000090ed3eafc128b6aa44fa604f4c074b08709a87cbe8b121b18be9179e2c735c4cc57486fc2e38848f45487ea318c5a6f369df389b4f8802023e322cc08ecda80cbdc0d6735416e8c74dd2629b1c9dac44ce23352337284d4430c8c3a91429a707af9f8d7ed80b918f1847577b1ecd2f3805235d4886c33d39070b6e0f0b12236e5548314530034782f86b3faadbd643ac370000009059b5f5ce278d3b179affcfe95c7f2247579ab3a96493c390dbb40ea7746dd9d885e0fe32a951a0c2bbfd4830cba8ffb67a04a5cbdbb75a3e03df77e4fd7b2b3eacbe7ee38b576e87d960ed5d8ac2ae622cb5cff0da9a10b7e48397ed99fd8e11141db00b06c76e83b1e45f7b241c723303e1bfd9cc8d8c3e38b01f622ed29efad16e0e724e8cdca0572fc8c7509eb4ad0000012800000090f84960cad0165e05bbee5df21c974fef634f14c4851dfa847a5f07a1d7a869f68d5d896cc9f261d26973221592607936aac41c0591ec20849c1e33f0e9a5c6426c0b209b9b48a3ad45a7dad87fec894219eedf5aa36c7db0758868993e97f3fb900f6bfbbdf36fd9d8afe47ae5a3283e29674628ac8544036ddebb628629df03ae05ff788fd408f44ca9254d4ff78ecc00000090a4ab332943d66fe625be47b9845e537b967ccac017c41abcbc0c2628c75bc84a02177296f90ac31f71836242d2abace7e5f0609be89c02ee8bae4a0c5f3088dcdf8269d76eed51e15455f4c5fefc79ae084bac2d2d9551190f81d7958298e64527f1c454c972799003856a063adf38c42875f2e864532a0c1a0662671e47b84292b8c17448d6358dff58e4a39c4ad545000001280000009010dd1a56fb7e2caffbf7da1d2494d96497c10f8b83061d2a7fdbf4929f575e94458d285d297462b31a0d327fe7544144851c002001eff096e7e763bb7371b8135a1c25d5b844a932fa712ce861ce4d0d151412c87e1e385a4b6ceb7dda77a2b8210360ccf0ce6aec734cfcf7792c14e917f003e0fbefe22da2fdd4c4370a50eddc7c051aa1781d32d09180285e81e33500000090d04b03752849abd068a041553be26194646cbb651bbd7eaa8ac61b863e7eb17236a5024ce2922fdc74712bdd9b0eaacf534c3e958837b80778eaf05f1a09e8af6464e7a1aa1f6735b3830081509f907b03c563539582713973caec33e047a5e087499f60585d49c66f39a728e1a1d54511ddaff3b2962b9ca053bf76c84aa9ac3e852be5c528c620868f97b770ea1c6800000128000000903eac051126fe83094f9102987843fc611dc961623b49d42fb86f7d5d4ffd58501bd3caabca512eea7ccdf1326f5a40c86fec627a39802b0188d786ee26a6ab57e6b494758fde93f864f6b9925324975f021d5bcd23235fa00ec18a95d73e5daa37c028a904dc89018e8570707e9a605c097e9694b140056d2eabcfa2f21267daf3accba1fc1ec324fb3515dc8ab018ce0000009084627b52fda3356fbee716000047cef7b28b792170486623a6495af3b4c733c60f3e16b16cefe06f53dc03cb98cbc63dac6f25cb0ec9f1ba23cfe5750308e69f103d06c04f9b08998b9e008153714bcd0dae73a7d52e55a2505854865ac685d0ede14c4eb30d56afafc26892c2c903251a7eb4ee19387c1d4790cbfc7ae2a2129d0e336dddd2d51b9438117e2cd31263", - "timestamp": 0 + "lastArchive": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", + "timestamp": 0, + "version": 1 } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_1.json b/l1-contracts/test/fixtures/mixed_block_1.json index b10b890b79e..1f985c86049 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -52,13 +52,15 @@ ] }, "block": { + "archive": "0x1e375c61ba0422a0da2ede46373a553ba043852169a597c40abdbdeeae01907e00000003", "blockNumber": 2, - "startStateHash": "0xed09b43d862f8628640ddc03012c80962c0bab9bf63c4962b7b1ef80e80db89e", - "endStateHash": "0xb80cdea4fe6984e4a45d7eed793c19a7768836819a566efe201df2a848638aac", - "publicInputsHash": "0x045809133f2783cff5fd025fcb350a78fae4854d441a47c7ca05c1e8355db2e4", - "calldataHash": "0xc73a69c8db8a87e0e6b99c6841d4ff717f5d35bc40a70f3130c917a9fde92d40", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000901f6b4cd3a6304da1e5081428953bbf95f8caeddbcad311da1a0636fc766d592b07120f151ed9e955659e1ebee6fb1a17d235cde8f02c3333d7257faf23ac07dd0191d83d771a5284fba516bfbf5a849f3017a502842b83874bb9ed8d986fc80c88467dd05382ea2e5076854a9e2ee34c1acd331b70044f2fa88e59c79552474bccd4c6b322c704a00d5b1d701d04ef1d00000090d6ac1dfd6fe88842e153cf1555e6262e9f7ce377f0bcfbd745bd543dfa526a450b430f60b485c14ae43da63d1c0d7f8352f10c4de856aeed7a64ed8bb35d52b223110e7f22a0b74faa2389f0d87a9c27254d43bab000d08cb828fb116d8e6a5608d119fd911af50dffe679c1e4e912f9083154f3e6a568d14541d68a98c5bd312ab7511e221043772f9a0ee72f983cde000000907daecc13576e25082c2c58958af7f44c68ae85afca62d2911f7355e832a1888567bd856d56a926e028e4ef145ca51074244652dca7b5549777a7aa157a8ec177047a9975c9e59d357b5a2a073b1f1c511c35edcac0bda6c9f6e337c180c54bf0e4d74d9612ae1401a9243180b30e19dd27fecc2e33fe9326d0c2a206db8db75984f619cbb608f9d035e18380a65188a7000001bc00000090f7cd623670fe8345ace8b09c6efad610804bbba0a985baf31e0a3517d1a1385dedc808dde80f95062e092f56f301ed60c00a405302f82c9a0f2262afa338b63a56d109a5c813db1bb8ec9bbc5b9deb212a198b201e781faede95585c21cca50e27ae60e74e03523b6833b3355f601d0d1a5e361cff7617088f544f2265778508a4e6e8ff5757e10bcbce6b55b247d50100000090a4e89c66360f9ebd32e6537f1f5de63eacd2bebe8feb2ded60f8f238c8fa366abbd00e08225547febd62e204bf52ae79507bbf2cca5d6006d1334e1db7e8c89a6f4fec1508e2c4d98aff5434b2e8014b09756c0440020ae3bf82af3afa6928a5875e214743a157827453a13b47bbaff004c2a5c0d950a5ba73f67b25e49190ec1e00533ef4216119b4cc8b6af70fd0630000009030c26e37485c44c90677e93806c5cc97f6a796cf1712d9325277d6730e4408a5e82948d27f9bdff3f25787cbe941f85c86050078f590200b6b0631f21413bb1ef7fe16b1d62d5ba1f1b48a05ce3fa4e5213e7e4f39745d86704767106bf7615df580ba01d59c2d8f24e1ef03d0681a7d187252e271b3150dc7fc291a54bf2f347858dd638d46c7bef49c3126204037e4000001bc00000090fd26b1107dc3623d6a8aaf5fef54d0fb291a6e7d8bb16a6e6e702f2674b7f21792c294e7f43c8f42be7b30f8367c2a5a0cd1761e5d13fff62e6da5a2353ea6d42b0002d47a15b8cfdcaa1dc958e3b48a22bc3d346e6822ae9875960737c5a064a85cdb4220f3e3786658f70aa9484c860c780593131e5211fb698302756c13bf193bb84188e5507b533cbcf96fa3391e000000900a1712a5bd5ec877c416c674ca29a690dfedf3482649e8fb00400177216bc1533dac566371e4489046a1d1f591c3abca98916aa51afa81caa85069ff66d6fe00580ad4e3b11bf2d4679d3e7c4b0e720f1a3030c146d844030d1b263e74a503396a3505248603467ebc7efef59c5e78a2161a24357e209831f1175498cbcd648434e4e4f01f4024f6ce4a61894f1d7bfc00000090d5b5bc1daa383033e4445a603210cfc075d1d283eb9ec9d6485e1dc8cdaf8c4998678485374e8b2d3a6dfaa35c498641ee32bfc9d527fe13fb82807d4abca238aac4ea23e7d2db4b20c804bdc224a55518aa9e5a447bf1ace058f39beabd0584f80778aae59fb7ff9d7d14dfdbd9645429d78a4d5046d7f74ee0d84e162f3b8372c63ced687a0b69e0918046a695eb60000001bc00000090db1361459999167bd5c9c11ace3e20429a863a97bae60fe9c712bfbe37129aa612ac141d0c9f4242d91454686720c86f00feaf4a8f5b22fdbee824f51099ad987b932461b7d83fa125c8778247d1577e0d9f606e3429059224e1dd3e1efeb8eaf22bcde6a35259e9e8958afb508d942e1f7bb605a073122a03c35a7277f4c9d8a8c04458d751cb975cb649f634979ceb000000909db56599d14c1894b36e049310fe48d6eda527bd47cf184dfc1344abac8298ce442fa10cfbd1818816b40683ada8b26b96df7f8d7a6387ad0b3a0d26a432f1595c444d5527614ee52ce81c186c29e28f183a9834311a4e53e98f498bcfda8f89ce9e23229bce82dc47f53d3414178676290c138312739539cc5265e70db2356ab8b8ca30f7eac974ae025544436fe3eb00000090b97a7526997795d908d4d793e5d08e92857892a94c103d790cc12765baca1234e6289e7d3e688953d6b79dbafac8d501ac3eb1daf0218c36ce2496a07a18f82a5dfa4bbb7dcd4e7f6d2a55c736bb2bb52ab6b9a77b91fbbd8cfd5ff92235ba06b521beb8881051644e0766e74f8038e9106c8ebcf533106a0e5c17d6e5c3ca29649a55adf8ce78c119feb5a20b6c253a000001bc000000906f166acc87984fdadad9421885a9008d2ad839849d9737ca950770a2953cca51a3578c0966d0935679e745e5c047a2cc3bb24db8c86ba23614f16f3704c25b1ef8d15e684a9f288d940b270cf4ff901506b93d0de9ef3bccec20eb996f747ba51f030ffdb693866373033cd1e58e5797099035c3db1b0bcea4fa1afac2657589718a37d12f65b5127ef15b04ef1901650000009045e0533ad6f080d707fab0fd994377efd1c79f6a9a8f29ac7b6f4865c9203f0535eaf53eec86aaeb179cdb286301d43e70283ce534d25c959bfb457b7487f2d96a19d1ed691f01e2f603eea8b0036fcc00b5a6b03bac423c7adb13256ba444e2822361698c1e68e3443b8c2f8b430e1a066441d0332a5249af5e19ec986e9910b4b545e89a373ad1f3647357004ab23d000000906f512aa5449fddd0663929b6c69ab4522ca3df6a91af6278084073487f84662408e3df716ff3a131f5570013615af2ca45bb9a14522646119fbc333c79048b5b077537e3f954abdb472b68b4fa18aa3f056c461e7ae24029b824a16a7508520a7e2a074916f44da968fa618240b499832f2bdc063d6d616d183e6de6a5dfa3d709af9380110f25f21007fe7338bd39ba000001bc00000090840f13247306bcad457026bd58acf54089710926d7c90000b5ec5e20eeaf7b9868fe6dfc9c1e8fd3156ea7578a402510f5dea52e9b693dd2f4f514ef2c9ef3af542b0703cfee0279806f04952d388ca202f15d83b569f1fa9b652737bb8b00d8eb793fb3bfa590ed08924fdbf938f86d1802e242126cce901e6cf918e42f1aff7a76a9acccaf2b368c6174cd7567e1c70000009009ed60ac272274117aa92e29cdc7a07fa392a66f6184fbcde0a053c02c3cc30a5fad8a48feda44636794070fdb5884b96123a071f84fcc12edfab90b5afaadbd84d1041301e5013fdfdedc3abac679680b2a00e6415d74be2f1b5791c68f39adb477420be4b7ae49578e3b14fd10bf871a19227547e15e8fba2c22c4ee7dbc0b98b5f21b6dc8e0c7d76a564b4632ecd100000090ef95a411a1aa536f4e79be780761466f823672f015ebad41f1cf5b1d780d7d65e31aa1f721ed2253032ee24cf424b8977b1a7581c4dc2282a20ad6ff39c86eeb774e2dbc0a4d8f9bd079a03a2d3ab5d90bcb6ec9c9b02965c6cffc233df256170d61f53990f634b6bbe353a6620b63ae02555645234b67e2cd731ab32542da32afc997dddde0c56bf40c223f86982c6d000001bc00000090ace691a81d0a395620eb6387df139048e396369693d8d902d65a3e895074c279360aca36f26a03504390ac7f386c9fc735686ea422c7367c0b58abfc1d954903e6c05a02e08972199e29d1606cff4b6700360b85d209a3f2ec157b48cf71235a9d018885d41026a66d9de00303f3a9a21df2facb29947e29e4e9febe28cff1cfa05a71ecf7f71ec0faefdecc253f4b140000009090e74abd5f16b601d94b892b1db386e3ed0cc964b8d4a40007a2a84d6cd752661a93838c5145a7e8a48c335e06f355408c61bedf61df12cbe17f2ba78257593e7a90c967cf1ebb0a3f6e72a5649c43980e2191cec30cf242865fccfe6baf59bd31791733691509290108c1b1b43d3bad1a47c5bf2f3a01a8a88fdaf95a8b58c7cf0b588b33bc596b066f564d7db0b17a0000009037aa5e129b115923fc9c5fdda6075d0d8ba87cf553800225c50dca40f4cac441b2d1ea70052c7ac119f3ac9cfc8cbb71909484444d25949e72675dfac75b5b2e8d0220ae71be5029db71ed954c9454c81f686aa5073a246c38e206ec28c23d08b17af98c617f7872b8792c8d20a7431f05f9907e94a59892b538f8990a5b56d25a5b39e62082708b6454833cf939ba8a000001bc00000090e963879f029469dc12a0bea7f6700f3491f18e9421735d7d883662c9d6dbbdb17ca856044a403b09ceb6bdf081c411a70b4e5f78ea2c36853f23174754ba740b4d132418f91202cc585160011b218ff013cb361f4dc7847a8a86df60f205bc69f928ab9c54065e9e0fa95b526f3ab91a23c5ee8557c3cf92bde37781b70589702a2c45707536d42a4a301aed6154f00000000090ee01f0f4b6098d40594dc4556065ea50e4c4ec9d06be848b061a4b73d3c1f606fb6b9a4704215a4bb8c76dfe47dfca4ed9aeab9c3d4536810bb9794d49e9c63806ff82dc6c2651ec152e362303bb35d807ee895286fe8ecd915621f30abc5fadfaacb9e0fdd0f8f7a699d68f4d5ea94d184c0c5fcda60ad000e111ce009552a02d89f495e226e9cdf1a39b2f86ddc82c000000904bbb24b22e181fa7fefc54818e8fff66fd78e3d3b8e94d66dd6bc6526e58d65edc43c172d4ebab33f1b278760adedb1e8e9745c019756bf8a0918a2f27a7b2e8ea5f6a3c995904f1992f5cfca65e344c1bd9f9755423441406937c8f79261b07060b63d646b1261453cebc4869329b091571bc84b1f80043547fac0c98806580b81e77bed0207dee283d4521d2ab59aa00000e00000001bc0000009031d9cb2c72491cb29f86abb1fbcce64dc97bb0300ac7c63367e6e9e2cdccc7d39ca3866f7961057a2d81d22810bb01ac2e0d5f56ad10b166dc53c56ebf987946e6c1ad5d175a8b5bb96ff7026deeaed607cd506dbced56251d06bbdb8d0b7fe763e8fd0875cf4fca5ccd021f4619f03202645d230d0afff256799fddb4fd275f550638ac5ceefb7f687bd4ce0164df70000000905b403e07a5a800d03bc92fb129e2e559b34bb4fbab04ee40673461dfae7eebc49be9e408e023f15462ff74ab56b3b5134b2146e2504a97c8c3e049aa80a9ba5712c14df12c25b75fb2489ec83d996a5604c3dd2c5c094c84787e6798019d0b49c6606717649b95c34a6ce153d7b6c4491af811437b121a89698f14740cc4311ba44cccc2a1523c8df02d898694fe8c200000009006b1f9afc8e1dedece6025cd1de1620062afdc9d912bba5bfff4354bfa19a5366f515d29601effaacfe23851198c674db88b5f4d146583fc70dd9b048013631ce6eea24be64ba58ee64fcafd0369ccf905dd58d0a32466bd831f12e06fa6dfc9a91566ac76ab6457f80b7470eaf9bb710246f28fb68fbee8357ca09eed5fb100cafb1d26165bc7f9558a802df5ec4122000001bc000000909fc876b803b02925f0732643f7a358b0558e8dd5066a693885f17c2523611b8063ac1e271c5d2bb53ae59aa11cce68b89a120f1714353e91bab03cb4010cc0fc85569fc09e49cd04eec3b1d20a7d1a9f2c4cbe34ebe86b6226ed6989f3de93b96f36f791e40172181000a5a6d9865d4009461c947dcba41ef8cfe4f78e7110e04e22f6242c973ea01949288bea37dc26000000900df4613a42c263ded0658c6b6fa9be7402da423dea5be2c8b3a2094e1d789bbb7864190477619d789b99f8a1dfe26d35b3c037c1ffcfc0b27b8e332533c5036e3b69bd836bdf948b28c8e276370c78b614abca5f5f2e8ffbda87d26ce31f0fb658a2d672bcf471ca407f79f94806b7cb038d91069ffc3b15a2d5d248e62e65f6d5271038eada3476fcda2878088f8b6d000000905b424d547d3fc1dfc16fdab1606ca74309b1b2ee0167042c75f3f8498786b77d9697fd28d0d3349f34a687d2df06b8e82770d282165b787ed36f5cdf4810db9535903a38d74aefcc482e1895cdc9b00a087c1072772bf24958e0e20419455c63ceb8ed868280104081c0ebf4b21f0f0a221e6d3fc4b2dd837cdc415d8cd0f35f6bffeafb6eb23a1688cdc25bc0ff203b000001bc00000090479c1cc4e8be6753145fed961e32dcbeb9b212dcb11efe6543a7a3c0bf56bb1ce8f5ab2a7fb67425ede7acf387f8883b20b2bc57405a5b7aaa23350b95603fcc084937e4173a81b84531ebe7ae1d33aa113125636fb28b2a8eefcb69f56fc0321c9acd7fa90e75d56dda0cd28812d54202a2871f8199e3c6c60c78e64751cc76a48ce3d2cf12d76c92ac6d4d2ae00049000000903d3744e1ede8e424a7c77d0b8dcecfe4986894dc8c3342637b77644828a9099d96c9834876bbe21b7704255b05db76a3f356d4b616e43cbf01b503c0def70ba213d5e950c86cd2aa76ef28bc4c9b65a02eb7c742883707d12a32d84a74bb116d5bc049b4179f42bde828d45f652b3f22019cb8d2201690af85f3827285ce33ba4cffa6a1582dd015f688cb007fd0bad300000090eef7e1aa5507df7ba6bb181a018134294268ebc192479967e5430d14768d16e2bacf081b66aec472b2dea0319a4a96a99a4c0b7ced96c6d5a4920449625404e971932d7f358e99a857369899cec481802a2d93b92768ce483adf47ea9f440825bc859542f53328346e38d67e93562dac0f16752b182a8553db195268e9f1f20306fae5cf2c3d34b162de97960fd3f037000001bc000000905b4738181849da9f92782732c9b31140ae1c09d0ee2332ffa8f855d64902a1182a812fb2370ff55e3a55c1eb5d0128c1b3180a2d2270714b05234dbfc3558e1340a6654d7112cfb2de8680a74643b507129f20cfdf99439e0266c59a1899831bacf8dbc976f00999fc0a468e653d2eb407a2d2140334cb9057406ca965b0556e946ff728aa63a6d9a39f80739a1a5046000000904114623211ba07a8df73883e4f90178aca2723740fb13291611aab18014a9beacce5a780d44fcc7877c2932304381ca68d16cedb0739182ce5e1a95d5aaad67adb72ca9041c5ba87884cd72d6b50d3f0079b727685b736b8cc4787f2404f62c76a1679174510ea3816a3dbc1c691b18e170617dd87cd67b6a7c7ccb3f18cbadf5481ce593580022cc6a72ee7e68cc665000000902f99e44318b735212e5f21f819b3e5b39eadf3f8bebd7c91a900da456bd217f124494d76714c94e6faa1fbae6f1586251d0dd1df1ca99d71006eae08a690a5e37c5cfc8a42702c896a5c6f2334e0837e1b87643f9446a6b59978ff8d71ee309b37d1cfb7a4cbc5aa6af9c53329bd40e1162153937fd2d4058b6a70d50e6b1e2160f875961fb91511232f85827e9c2858000001bc00000090bf46c0a256c4c246e6472143433ead3351a6d7a1dcd47c178c6892e02d273b3ada94157f4c99d14f9d0f586ce6e8ccd241d37dbeef1fc4abd9ae379da6d26f0e6207dca1c02bde7d81b5fb5be927004d1712ce474f07d6776fa6bd66a399c01d59da58ec6e93f56f78a5e90a2c2d078f00a36482c38e6adb1f2bedf37c703d3f2ce4643a59c3363f579583c10a1cec7b00000090275dd76f8e27728328276be5695ed40c306d39d7572909094525f4bb06ca70194d4fbc027f711545c8b0f8e133192ded895ada0e5d726868226b10fba187fd6c076f5d6eedc29359d74309e9c0487df50e51ed694b48c274cc891719a71c5573327498dff8c9c6b9020abaf61660849d18408a2b2484caf68f367174dd21ed66f4a2ae454570028b0a5de05653d60d85000000908e56f34a349e329df1f93ee0719913fe6791839f7427d793fbebe054c4bbab06106783a88b1c89a4fc50b827409c516858cc2686702106ae8e47fe77ca5bfd14b92872b815c5f84f18f6d1feffa0bbfe0dc0c6f78540878525d91c93ff0a2df4f1a25cad48d19041f735f300e3b6a7cc107386d10c3dbc7048131b236c1b37e81284a2a5adba7d114bfeef06ec46c2c9000001bc00000090cefd83ddad49d59a439a6d28a6beb5ea299975ddc8d22e690a813b726f6a24dae6c60c25416ac9a2233a99f83cd0f22cb300df2f49e9282262139a8585f28ef43b4c72a3829cb34f8924035b940a7c312443172799b336dd6a48f39be802cc188f64aceeb3a0317ffc80884632b2de430fb2c0a23f5a105126dc4c3af84c113a45b721c29bb31d18ca9bc3c348c659ce000000904f52486994d0f24a651bc5793f84c151f849d88c1982dad8cbfa351cdd733288e278b992ccbf5058cebb5d1a98aa273c635d4d65f853b9cbfbd044cd4b51ed301fcfc73883230b169897005a8a8205812171766883f96ecf0823cd230605bc1f9f0eafd0a3f59b204fbc441a1eab53e22ce48a3f495c46fbf325549ce895355d2e96a72e42af4bbfc42c239a1aec58aa000000902eb4603bd0953270327d783571f197eb0e017bb6815ef09f4760c3b9ca707ce529a321fcfe073e97ef998c94831500c16c5a0e87a8cc5339a2164c62ad69f9083399fef1ccbc712f5829fa1ba07c00c621cedfc2ad11220ac572fa2dad52999149936c3ed24e41efc72a6a6592e1be7326cc0e3b56efe912db790342a4427c0c2a44ee9d23316f6dd6462487c9df7dcb000001bc00000090e1297510dc0ff3f87b93afde09c5408c0bfda67bc47bba76e528f22ee936b7b8d259b90ef66d2ad9f808c456dbaa35b6e701c7c6895cf48ba46f8e533e890783886f0190aff6a1988745fec1fed42d650699239628ec35d6d269c55a9379ac1bb3907687f1a3826f3b29abb65cafecc3230caf6e9cdb60b1313c2f89bd529aa7f41a5a587033968e76322d1f6cd24f5a00000090e11ceb27c5ca106c80e456740877009c259516462a9f0f76bfb559beed1e9efef5aaba3fcb01d97306ad79b6d020b02d441cfd275177b80d31f0bc9baa8674f56b798f0b4315308c7e7972364510babd12794c32a74e4083a421ed3826de6042115f30a434ee8dcb6058de122c043b391f52c0ef5130871343b6f56b5d961a5dedba8b10a5d679cd3edc3b836ac0bdc80000009081c06356cc159e98eba4e90d17cfadfa454bdfadccf2efcf53b59ed62b813d011c66020d0c386f9dee1fd6a8a454459834141dd21b2a78d7c488a5d1fd1ce51ee5e9e4bfd7627b26ddb0d21af9c84bb118763f94891ee365313dd05fca8beada870fd7346d65c60b6e527a2308c7fdb52b6652017cb1b1919b56b5fe29144df679ace08f9d285b1d9ff1ecde8fafccd4000001bc0000009015d27d0c635886cc3039bb4fd72fd4dfa1cf7781985c2af996a42410b1ca0bbd75d128c09a7b8e33bc032e28c1f55cad3a7e8a1839352d976f20ca470648f0c0e683a07cf2be736d475b5e5ba7c9b4df1251e9e3aa9504dfa7edf788149647440b143f4d80746af81b2f4a57bfb4fa4700d0164f5d26cdb38dd14feb7207800c5e2d8329b4ba109f2dc2a4f7762897d0000000900e102a9aed3daa65dc7af1f45c733c96ea0fae31d90af3be7c47915f511553ec01896463867a2d5e5749f34d98e12f87a709325fe0287cc3f4020ae8ccdac2618e9b0bc97744add9761cc7785417788d114a9f8c33e53794201c3f994c437cf692ab9c60aa954bdb6491dd6c39c690c523afe3496015b3defcffbec09134eaa46a7a57b4e8a7b070b7a68726013586b800000090758ce78d418d80b1228ffac5638b27e159d3954b0b7b2f57e4baaefddb74e1837010d0bc405a3cfb7bfba3a411fe133f93269fb355e77bcffb0bedd555cc072dee92e10bdbe83534732cd5cb97c0c70907ecff01a0ab82b6f8b02577a121e60ecf16926375ca9994647cd5f42852dece1d3325c0db27a5917ee01823c48a9aac9e3d2d503309d217982d3b3cf1f34a7d00000e00000001bc00000090fa3f28ee26dbf08028371698a9bbca808d0d94a4cf4a1a5e23c2c4cfac0ef079f7f4f601908ae708aa4ca6a923a2c0fc241d1faca4fec6ca6e603590ead884916978d1bc6d77949f94977f43d1b23c8e1823fead71e716ee56c7d51b442ab2c6566fb9d923180f6c1c43f0d3f17ea35d2a10c3c223eed3ed8f3796aaaf3cbe5c2f3dca16fc34515b317150db822b6245000000901a18fcd8c3cebec8777d0449538a79fcfd5d1ffebeb0375eff9761797eb651b8f818d49a84b020f66c5a0d497ecda7dab70d2416ae6f76277bc74b3d079d11cd50bd1eeff737974427cd713d29a24ed1204c182db29dec045faddca5b3db38d8ddf620021687ae4f536643a0ad4356e720fbcd793ed82a7682ec0da0ffd0d5ae9e7a2beba71d3971c71ac23a204b48ee00000090990d70a46ac7f10ee8857bab7174aaafc5c4981986852608eb76e30d58d95b302b9d4e8f8df806d058486c2f81b59f9a4e33c3cc3ba25d0ffa5897c8f94c92459a2c75c9076a62da5970ef45b85516302f5bd8ff6373a6bab73bc2e1ce109a02aee57ad3b2a5e6759c05eab61c7d9303192466a8a8cecbc0801f630fee7ac7634dd84580b82fa5868fa149b046445c76000001bc00000090f8e625c27f0ea5ac912319952e8e6ae26f11d25e1c7b99e333d5546f1de7e0fc7ab396053876c616dd76c9b8ababb85d8632d8ee3987d68736153ef3a577e45dbfbd2032928e223aebc121117b689a9e263bd881d9a5e10547e1e3a032a60a2cff5f355f9ed6af3f100f0de91aba3dda297e3009ce0877fb0b754d39fb151365c6e3b2c2098c66f9a4384868b89b9dfa0000009087f5519ccc47d5bc478c41e85bc6e24e473c250e321603fbd5ee8aef9ec8a9d017de4e8e349dcef90bf92181544af461182afcf28f0b4fb10842efa18fc8059216655b6506993b1683b98685177dac2a09c215e3052c50c49050ee1945d5df3c42214b583907769477ae9e483825ecac14e732793de0a60f31102ebaf49f87664caf312bbf28bc04e9dce92ae57cc1a90000009031b18c2190fa9a51d9eefaaf41672f62d19b9b4b6944f178aa2158e0c1673f8c80187dda2af3e7e99a3266f4515bf6c6a9c1f8302d57c8fae8f611ce9e9b3abad926967ccc094b88cc3c6af059fcf16b0f55ecb3de539f39f1b10619e15405e6cb4c7feb2c80ead0b587ff34950c23292ed11bd9ae971871b6481a89dc9d1dba96a20aaa5a8da09120cab9c94bce6244000001bc00000090c158e9bdc1ba2452a1ec1177053b123da9ecd86103ac4d434e0565e173f94836181a7825aca153dc752c8bcc8295eb36ccea8ce1132e142eda9025f9773f5663b7d7ec2e68763df4e7d53f0bcd33002c189985041858887f58b181f385e7d3eae68dc4a6a322b05a0fdf671dfc41746014024e67a3193ac02c92ddbb54436068287c93c8dee3e61fed7fa770b025c30700000090c5192684a6db357dff5a0e9470f4cf5bb66b9f977deebe5bd1e52274cda82e5b008b28bec84df65bd15bc222a741b68aa0544b54cb90191b4bba109c54cfb4b8fce2197c8c3ed802aa57a14f1ba60cb80f21a2fdd12b6addbe24c00ba82fc1173515e43f5f6d71ece010b71db49ea40e113732815c44a09dae9c5c50776aa06a6e750ac6f2365f71267952b62c4dcdfd00000090106c0f7b8dc966747ee6543cadf1f5ae0fa5748f8f06c5335ec2b6ce33376501f656058255a8c6bf6a6e02e6a536b4f734b530e1c03bcd6a7b962f152aa4912babce1b6434bb2af7aee90932fca8680921e2ce90c79480df4802eb6e56c4c98dbe36476810fa232b44c665d0eac1c3c22100bfede9a0c26892dde711c162584c6d3877c7d11ec70c224b245b95f632b1000001bc00000090bdbf0894be5c0cd62c71d6b03b7194c5473f8d90323fd803129f83c1d071ee8734e9185089786aa4007af434e676a94805734cb93833bfa49cb2b47fd5b0c875d43b3c40bf96cbc777c27206f2aecc7d169b7ae5fb1f708295e3838a7931ea1f73f397e60f717a005c1b979a6ac0870c2527678d8f8f2a03929220098627aa39240746bb427b1557edd7286c7c98456e00000090227bbdadcf3ac6b8802319ed81c22cc6503b7c80b0a16f5b294b4f4a8dc087a3dd96d7a062ff531ef22fac632fc7bca35b069c892c8c2f174627375902b0bef7e7970a20774156af4bb76ec172f983ca066642a1e3a13428c426b506397ce967362ed6a5f93e7ec6a9a1e8d38621a24f0b62386eb9af3b97014279fc5ddd2a6df2c96befcbecf71c0fed0db0c8a7e21b00000090533310db684e52586da51b45fd1c3d78dd1358db9cc33d65a6362283a20e642fdbfd69a44c30dea5e3ac9f1afe5a90d53cdb6993bb0803435a2c8067c780e9e4b396fda4931fbfc85856fd196e68fff80245711e56890457c6c87133912ac99dc4dc95b127bd3a9d86ae78c2cac800312b241644dcd9d4bead2b59ac1face8edee6f3c59df01d600ebc336384f223fdf000001bc00000090b54513047e50017c9241d437a2f0bda50781f75e28c6b692bf0a94546dc0568513c1ef923c0790ec2464b0cc275da0447418cae16b8c9d6217597836501a2f516721046201886e445c6a2d231a1fa1792ac86b552847cce5d7bfaea7d1e05f8cbaa28dd1f2da5b78ffd7acabc0e589292069594044af1b687765a650c56248016f3f3733f9f21cd41adafbef3f03a489000000908be7b9fccfe04df0a89196704f4a12daff44ed90f8e8fc2d1c7083ca1bdcf65128422163314520ec057357096a5da93431ab954d691e819cd53c1e9eb74dc203f8e36f61a799779b0d998da8b652f13407beba8cc1a4825cba1ce3208aea5d821bbe4b4a6973e4402ac344ee7bf3c07a12bea44af3636cd54f2dfd9ca26cdc59621ab68aa163fb45af57378358ffd201000000900357a9cd16d8e002a43552ba4d8471434c4aa068340f52b42ab6c5eda58d1f89ad55cbbfe818368a3b08c34b45a5de3b03cefa71a690941b58ee3a3d27df6d16a5610dfebf88f18bebcc37c1f82919fd219d489d5567919b9e08b3a0f7631537e57bd823dd7dc78e41e8bcd8e3fa9816287e457ad5613a143dcfff22a2b5462ed34171188ff4997026539db3aeb8d588000001bc00000090db600c3ad6b91ca1e3f944798cc98e901dc633fe171a9090e1c484ec1ff1b69e31c35c6ec469e8bcb454192eb7a0a807023ed37f5cd6e732b098703244352103a3d85a40fc1ef6d15813e58fae2a1b3b23d7de03c127ef3d06adb6f5ceea929f5d69af1f5829cc31370c78c33a9e02f600ef33303f59847647d34f709c60ee1f1977fc8ff4f4ac995b8ca860a17ba6ca000000909f6f1433c3b65de557941780e5215c5edc0832e5e87e42ce0f7b2691f3dc75bb8dce777166ba0be1a3c04426105d1bd70d825baca848635ad9e185c99f4db5b05caaaf21f1b81eccff1dc11dab97b1522e49b951802b9ba64045f978fb600584981caa11fec00729908c606d6decaa7c09cc67f684670ad144f3263f663d38ce5623998a79bcab47d0fc18c19c3267d4000000909053b8bf2ef300479e59c500e2fe3d15217148d7b1d478777e57bb9e801a390045f558c4a5c50c5a86483efb8fa7379e4b67def8f72b080bb9f8c8c065dd19d733df8e1096e2fd69463f649c46d2f9d12b59d54d5ab2eeb038e3bb3cf9fd7e29a24c97b28c61cf19ef18992fa7c7de7302cee5587729b1e161fdccaa6116165e6e12675735b94739d070764526d62339000001bc0000009029a774baa556000734c5f96a24860488de9c9da645fbeb3142bdb7043a27d737158552949367a409e25d25af7ae98e6d55b5961270b6fba8b2a4d8f12552dcd45413a599df25ce8c6f405f68df4693bf04776bc1ab6f6b5d1d13169dcfd8447f219c83a7520bfcbcf558886c01445e6f2e5c128e3e814968971e6dc731fcc6df11259d0ca90fe3ac166220cce337db1e00000090f0494a817614d81320d746af1226690018596744506887414fe8548b96f8ab884f43c62b0dfb06af155b7b32f0400dadbb88def62837ae863c4636ccba3887b1c7530f4f0deee946c4fabdbd9c2e2d231a0da4ce3842b21f4df27728f679e9f0a4d5495c77a00924f8b19168981c5eda14ba51299c420bb249f59694520e9b2dd06fd7f2dfeb0faa2198b9dcda8514b9000000905e1733de43b9179b8ea4757bf3653dcc9a2a2fb20aef62a0dd49fcabe643c8f85f22a501c2ecac2c3aa13789da1a36359baebe40d403210475999fe43690106adc7ca8a6885fbe2273ab4526ca2ddba706ea4aded1f096bf9706e1dd00a20cac5006f8e6c299bb992400f085820d8395158ecbe51a9d7e5e6981f965f1bb1f59a89bbfe862241679f25a7603e6f7230a000001bc00000090819a74ac553985a35905d1cb9ba8099e68e842172303f8bb7f0587d73c28a75372964fba94393a605274f9fb3188886e569b2c0a9a73ddea156fe8c9490e5a68a767c8a86ba12fc8e1a86f92abb23d6315606fe0f49aa8373a8e6415f4936e498e2c22d25d494a0d5c08703fe5bfc71b1ea4dd0c1b5c08256f55fe5ec90212296b5c24df3f1e26b2a775eebd85a0aa8c0000009003fe00a821320dd9356c28c8b5474d972f9772af7c67e94e3c59316e4d24da1ead36e678857d3d5137f3d55a895f3b05bb6f34518d66d6feb16e824546cd26a302deb82c2272e86020c013a8ebd10d450d9cf49dfe8c0062d3b34adb03c293cf556cfa248bf9ae96b1de8cf91da30c1f09c504f94c704c68a4af43f6246ef4bd5596edea60d752bf4a48f3336c450af5000000900117724c41400a47d8639bb23920dd553583be5fd0b96f998970dcd099bb29299cb7d2d73351e8ec1a09f0394fdfb5e4bce293acc57da34b60cde2268c7974f27aeb0bea7c188c2c0893c76534cf9df227aede91f361028c6bc1c5351a690a6af312e656d2e54dfd6d62eab62ec97aa91ffba09319d0ebbb0917f53ef886b3203edba3d7f019662752c30427b7ae6fb000000e00000001bc0000009081f9d24e067d5f4fb0389c89104ecf20cc9d7258b071eb48bf54926873300226dc52b9a6cd11afbcf55552e4a896a6638954902e34eb3cd7a2cd8fe6a96bd531d70b14b09f1ea2bd689f1e1c85c56be40b1f8e01374ab4957194827d965acdb314c4ba0bb14c3af3b673069b150790392cf75cf827fa0520c3df6ace7ce8df4da720046da295e215274eaecf17c5c2f4000000904e34c0c0a048737e921b9305e266821997e3fb89186cce3f0e024d58669668d70b004fc0e20d2e5d4cd899d2b5b314b168b048ab92b69bc156c43841f64603f8763ee93a611991b330f901f7ea9b0f890f04da20798ae1a93f25446ad3735db5e4d52d4f3044a94c2f3f5fbedc5347201ee773475c892abdc851e3c5eceef76e37be94c9691208e7f5ee3d36cdddc9c9000000902ae0558330a148406d5db59415bf48296cd6b217d5e3285a13c9286843b08e574d33348624f2f93a18375dce8702663e7c4e890b9bc97c9867f2deecedc7ca3325a06b74fdc884f87dfb3e3ab74e512900fc39caf34efb1eabb1477454b1fb06bc40d21711d11dc09f9428a4162f4e11276b2b4c8558ba79d43767fdd2e16af5e36f747a682c712d6cac49821ee705f4000001bc00000090448e4fbbca04c080fd40b2c41a430f899a7abc3fa008bfa82eba2443a692092e3bcb9aaa4159b73b523a15ec82345c2d969571a661fe83b82a4eb0015b4a3e2fe7431e22f04198bf3718edb766f5361c29546889d4af3bcefa141b554971814bee598b241d144a2b4e91944fbdb53ca028703155e902d6978782824f224c66e81c0e527c8e1332039704cf2a00a2e82000000090ebb7246897d4d805f34699a79bf1e3c955744a36291fa62e6446222ccd414a6980eb18ddeeb44dea2b7f958fe4a28379ebb798ce84e0eaea8dcf9f01cc8d483127bae998b807b15976e9e025dadfa87f14d9487ff53463284a3522a583d702876d47831a966b04d2d2e8525c2d277f0f25dfce36790f7b55082c8a6d54bbd1526b96338a8ab1f87dd9b219955504b008000000908e25c976c0fd05bfd5d040caaee417179052a99570de2fd9922733c3f6b3e67381f7caf58c151ede5724f9121d0a47ce588f7fe96da9cf73536d260fdef5e5c591b6b5f2e709663360fbc81e86b40af0188bab1dcb168d81e17c4f1ab2621205b42a8b6a217eda6b6f95ecd35e6a14351679f76dae2ada5144a7bf09549debdedbc7dc4707145e80ebd653be9635d160000001bc0000009077a01ce9c4eb63b611b1d55c3aff4c29afcf7e116fac605366cda3540a07a5c8b573cb672b9101882c4039d78292259ae21b059f5a34b346cf0f7f06a260c5399e9d35429fefca4faaeed76de3fd772529087560d9c0991dcfa5b17d5f5974c442db1458785cb81438e00faf2be10c9d1031f516950bd08377f6333d4d129a651adba61791a90558b9de3245a7623f6900000090e41b0d67a8a72ab35d020402437bb0c47a613fae7484982232e6e0d6abad8deb6f4aacd4e8e0ef4d175277302ccd2ca04768888aebff71f204c255a4ebe79fd53a57a888e8f39263d26911569c55385b2d8c15b09235af94534c6ab94ab7e4de4bf2c8726dd5f297fef840add43477ed1d2243f79878c9587b0ee87f3ba735940076a3ca50f67a06a3aaa80b46396aec000000909d53427bd98a95226bf0e9607ed5a95f36b20642ec62dd5eca2a9821607c5bbfcd7b1d4e4d8310ae11705100f6da726486750a33c46787a380c9c35d6e30ab7183d74e22a7520c33966097144f35b9cf2ac247384b1fedad7461f6c6ddcecdbbd751ae339b62b26023cf1feda3f18687009336bd7b8a88f2d15087905e74e343731886989bfa0395bd85babcb8fa91a0000001bc00000090aa63094cea15318762db90e9d688dd063b9297a75c73a2d337d6ac07adc273e478385a50d1435fc4322d3e76d142c32ea4808f7a5a4a3796f1a6c8a125bd4b442c2becb597404e7ad6dbfeef08090659175f2ff9b31d1a37ba054c66058d7c75061c0c586e38ef1f0fcf71c80a80a55228308471dacd995a143316745c64097240ba819a8d2afe55a1e1c428832deb0f00000090d98251d93e4c3486b2f7e19781305d3c0fb245e2688a5a25d81d1f13db27b70ed42d088c421037fa51b454b6e4191681883ca777a5a84320b6af6d0cb1d18f85c831fbb3429cecdc172e0efd2672494f2cd3661e1ec4d81f7f1293fa3f49db06fc2b895063dc6701da81f5994685cc1725f23cedd64d5f340b82be1869bddac469dbbecd81becf607e6ed8c6e498dd7f00000090488e99f9edbcccd359da894eb5792483c316a4cbf8900364f6b0a08cc7fa55487f361c305d499ac45c4078a9ca186f267dde3583255ac1e0d166bb0408bf6c065e52642de9754edbc6b928cefb75039f05fcc2ea0159e6de81eed69c24b3381455114ead46694c9f84aa29e9930d64a0054037ebb39ccac551311b31081b31de38ef7d013af6cf96d2840dbf24c9b595000001bc000000908eb9765b98c24da9be1561c0a1209feff93c311fd604a585b0a72e584143a357cb3342dde8168302934982e534d22203373bca09580424726c035e5d5825a2137a6e82867450c5c9926611d02bd8f3352a2901542d8c6f8659b85174875e339ec8ca64f841e9235c5baa415888f6bf4c3009efb25b5b05c3d6bb854dda6094c1eb28dc6193e8d0a4401f36b575d8b69e000000901dc83e01313bfcdc0e5be49cea7add8a1034c075c51c4b0dc92cf0e767ee455424baba50cd69dc47a6d625bab4703a5d5c7cc2769a2721a2874c4565d154076a030403b7a5aadf093eac12400f12180328fa5d67847c44c61237f0f78b6f27ddd8c7b19841a175603a21395b932e449d06572b93b8398a7e8e7b67b1bf1856aaf11301eb2d349e19dee76320c72f435000000090d4dceb2e6ebc13131a19ed5f476104be4774a241f8024135c5ace4b10bd42f15c9ee6cfd66413943f1f2d20fa52bd78cb94d103d64cb6d1e93183f9678d42588012008b33c674d86dd79ce36022fa01f2f9820ffb0592157e82bdf182f762d7f633504f09215ed389c2261d951e7ad0d0037d503b10331edf0d3c0471f14f902faa9024c2053494766b64c4b7c917cde000001bc0000009094105ffa42e309f83696ce2673d89562048d19e551f9db802ee48939d4ccf36bdae97953a0a20bf67ead92dc1f9f32c4e3f61263d930a4ca01dbf8b94e212d51fef6e092d8de3f321075bc5ebd0b5f840eb061818f0cca9ac9c851927f1ffc9b545106e9d53d0e04171c88c93272db0e1a3df6d983a41d45762c800520d06193e909b86bae3a2bb70729ff3d458c2a400000009038e075004ffb6f2496351b6451b65d8d7b82d697d6759f33594642699492b215b0d60239a93d51406024b21fb926c4fe14fe84ac03f15e7a2eab9704fd0ac0505a329a74542874efb89ae53d1b61720129e7500739dc3fe9374dfdbe7673755a584a7c795be355708950ff6b2d8836b81a3efa4651a2b033d10a55006522831e7fc435135eabae91d3e11261953130fe0000009026cec1714b91a7fb5c2bd087678bb207bffbd171579f97c814ac65cf59252332f579ee5f81ec4dc3ed1899c1be8ef3d0c2f906c5cbe4e1da343dd2b9c890d5da0186261bc297ffaafc2507632f13f06e1bf8b774733568578c112501af6aed6e339e929370c365b97be53f717b4dcec21425828d56210e5d970ba52b2e2ca977257ca8d30d2cd8e32c34468827885d4c000001bc00000090c4a7602cc0b6d69cb013e41ccb86f1a189b685286a77a55312e6dcd3b270b6bee33e1b24c45abbcbab47523c545cb09d6f8e774362d88c1ab811a65fdabc6aa7e940bfd8465d0d765a51d84c806ae72a0f6b7a3adccae3d9c4027bf03651eaa081467e299ed8ba6b8f344b4ce573e5001294ff2e75f881a34e3258bff1a5102a4aa75b6b03b561bd32ff5445bc9750a700000090c103324393122c19b6416757a19e2893e6f82149811ad368ce94d082f5d88b8f1e5cdc377fd4452db9fe446a1ba14475fdcfda16799e1281e94de4a3b0f3f4a1ae16e8c8505a4f0ef4d03be726f2a74f2fdca85cae804f799dc7fc0267cd4cde87421ec535fdc42085f26983411a1f13104977f0a079a9bc0e01e9af5bcd0ca6ae79d1fb9f89b81e3a6e1b956ecf22ef000000909b66cc9b4ffb30456e09bad3657c6bfe571c291cedfec5dcb81084d2469155f963db8da2bcec625817108ccca6bcf455183ae4dad4bebe9f8bee1b508765e0b5dd31add5cb46e4fdb0070237faa48377254404f83656d1eb9917e8f36752baa0fb52200037fab4f35e528cf43734457b0d0023857a049081630b780e40d39f09536c2375d5eef6145c3fb50cdbf04ce1000001bc00000090613b06be592035c4124a3f05202ad0b82278e689ac5edfd239784592fa44b194cae93d16cfb28412042ea773d6bbeb55d1d502995488af2abb71a2979e9e0e3f384b55521de96a7d73f6e1f6c0aa1aa219bb5d9eb44e5501c77cd7b56e60be843ebedbd3e1eb4a7410a2ded36c7504cd21f35bf912bb4abbff9560e1a594a108bcf9c78f5a7c100fd9931b7bcc234d000000009013f898b19796142cb961f5d919d7783b6708f0519155e6f0fd028c2d4279a3eb20042a74a9a31485d5791d0bbbb8a34fc0e62a810fb72730f3504348533064e269facb8a7691863cc0060e8f05cb957829bdaac034880ce239f1da07ecb4b5fd3299d62ede8edad305d24d03291e54240fcfc9dbe3e853b390cf7394cdc52dd65db932b67164f4c438749078d96afc8d000000900c580b138aa0b469826f6411795d43fc63a263d27be7d4a95e94b6d0934271c86eb268bf09c8b6ea8d842aacb049b0f3f00718f9e9c36417f935072e6bb203ee943fdf4bba457dba5041a543ae82d7c32d4026102241ba6152d6190e869dccaa53b3f6dae3da6882892682aae5f31dfa2fb0e7172e5d4c9d542558d2258582ffb7e14f62211e5313520034749e1d4c60000033a000000ce400000128000000908e48891884cfec7657d80b910b97ef001c94f5bfc4d43fd9c164307a1a0a4bc8b6eadeca4bf6848d23b995f97c37148ed896b525b9aca066a476e74a7fd0f4d4ab607cadd621c7b83318aebc3eeddf3b0128cc37bcfdeac4043b510bbb09e1079a8dcbaf7af89eb1f552247626a814551d203e2b7f0b4badcb23f346168a5176789fcf68aa3fd2264ccade9132b85ea8000000905197029fc01e49fbbdc28725dd7e8588682d3bd6a45805c38d16f66f8e3e5050d8c08ff0076937e6eccd5ea431455cedbf5ebcc7d7d8f8ca9c9979683cdb092e632f721997b6ac7d4e646cf1ecb402b6206b19646eb390680f50beeccd34d81e30b71606c50e84ab8920bc6bd45e3c18257b5f4d786b30d948278fa811d49b83b3ccc9c53e6af2385387ad92d7c51f170000012800000090ea0a2aeb516176ca7e424f492fe8189eb71ad295387bd9aa01633b7228fd99857e6964108cacf9e14a44e9735f567e26b9379b53671d2a59ecfa808eba62ec39ab0dc49d5c10a732bbf298328b45881d15413e60170c56d682fa72a2f23376843e06cb0a33b846e36a88d03d855950a328017d4aea0be3427bafe74d912ded34a0cf8a50c809617fa6873e9b68c904e500000090e5af0c929842c7a60302108077210b10ed4dda5793532878982ae667d6616c07c9d3fd68a77720813c789b234dab39bbcddbbd9e3b736d225daca3908995c5ed12d043bb34d6c32fd73ebd7002d20f85277c3599379da9e30694349e164c3c6b059565df083fcd34cad2042d9890d10b1984922841197d2761bf618923957122018e83141b18a1f49ffc9c71ce6664e2000001280000009063b6f5e869249fa2e48f4d604fe0d8dd752af9709d1f7ffef9915abf574da164a8848580c07692017de0b74def9fdf88f05ce4e2f167eb6461f9656e0b88e1d202b425afc28912b07d2ab1916224d28c19818da33d71cc60bf8cbb0dce413ec868808e6aab3fe510cae51e12c1a0c2440d5c548e5dd5a36f365e742ce502379b6ce162fb23cc6ce9afd84bfbf74ed69800000090c7de50330028d827eee59ee6f1430e446852aef2ca126b736a422dd409087624dff6771a2cadfc5dd1214198e5944c3bbed081d8875b6c00aee9fd0cefe627873b6d7618706af438610ac35db20c47e8264bd7a6cbc22b8a3dc7c3f0adbc368fafae0276537f50e136a25499945bbacb23e432b2e6171744cb7bb5a4c999e5d85f242a69f982ec550de871cb992436570000012800000090fe8f09734956f02548cd8f63ce15f0c1ddde2cbac4dc201999e92ff4064819cad46ac3518c24df7d062fb6d35f762fb269c24b321b3c70886a64d4fb15d65e4ece0909a0d3debe0027b17f91c0474f6905a3396dd7d34674a5f0045c50cad0044ca5c662284b82aa3b5dffc61fbd51a11ca2837ce7756c140574e5898443f5fb4fe6963a487d1cccc7f6486377029f4e000000900b4afd56c60ef6c1070d169b3b132a34a66a418319ebf25eb2e6644d525c4e55f59286fe3edad40526c939e06e0171d0ff241e65e4917f1b5d103b1e6fce78fc223e5eafa93f2cf6231fa843eaf15e152accfd0fd72c3001ba993253041fdc113b11ca705089e84fda37707abf64176d1103ed74f87b170c491b322899d45e8206aa63baa4258e4f86aaab412b84926f0000012800000090ca8d8bd3844ff70db7599c6048f652a7ae75c307c5c330a8b4f26e2b42be1385c1b4711041b4de4ca23e1293f35ac8a57f44aa88c742bade393527004a35eeeb6e1e98bcfa918d5ce707f93b5bb498d20ac640394310ea72b54ab47647491aa983af2602cf28b9bd11045a4717ee3b8d16cd5f613c1f4d8e0946665a70afe272cb008776b047cbee52cb91655fbe0aea000000905388098a60a8885398d2e7801984afc45006a2d53882a73a31e8d79e35b65dbb92db7c9c52b3026af24f83b8e2981bc6ba95f3fdf5866e66f3e29797fcd8fa2df275557fc1a226850a9dabdbd54a704304db69faabe019bc43bbc8325a62f42de5df2efca41c411bd0e5599223b80015077a269b1f6ba9d291090b9c81c3d12193e1232b659fb463bbb0b0f4a8d93a620000012800000090a08a2aaaf6fa3927783cd4f7cbb315e44ece1be3c32a7615fff55c3674d3819f32d4f899c499d223cef09d342594b2d47a4b839e589b53d83ddaf1d28c9a99ee2c83d23bc21a813b3a57b8f8d4134fc515f1baf9fc134b62c01a17284e51263fb15955bd7595ec8cd04137904e4a81021db1e0eee945a5625858bb792e91066c3547012d9a4569f464dbf87e3d871c5c00000090e11f5ebb8c3d115ba5ce0f53f74503e6af530e9a8d0601dd287d4e985fd97789866006d25c48b0cf67965f87c57f006d89d874dd2a4d04f100cac979bd6e7d82707e326bc6955a4b0b7d9417193199042f0674c023b3f681df5f56a24ffd314ec17016c9bd43f139764ec054f8b135a11377bab9840a1e3b1c71e9c102f5743bae8d95e695415658c2d6be552d89874a00000128000000908aa41fe5d45dfda0f88901f50dc84fe1f0fc2d36480d8f4d547c7a35e5a0ef68b7347c84842682b2bf3f2b5bfaa25fd1c7b29a81642f99b92c070b6bfa341294281aa10fdad69cca1bb3b74afd4bd3110ce4ecb797792c7cf787869409607eb670923e7271cb48f10ccf673f0c8edd9a27f5ad5dc83955ef89d675a438040272924513a158e2c91d82bea11b6b0e5d37000000902afc6b2cd71fc4cb27e94f041bd70438b160443f024fde5b079009155dfe75832a3deb7f1f812ba842973ea9c85eed96dd7337445c786eab477969ed43764e44f609679360bed57dde8c0474caa5a84b300bdd05d2e74bec7726669db793bee1ad58f14104cb24ba222ee6b8b36bfd1601a64e08182f2aef0b84d331aae64760dd66c28d41f3d67c71e0f500c025ee20000001280000009057a4c22624f918ab13024489b6096c45f29314da9bfac5a65ec85ee69cb763ecbdc930c78a47952c796a66d56f1b3abdf4964b124abac56b29425f73b9aea80944055a6fba0c6df1f7b111259e6cc16e0a5b77679557d851384f31a7ad867fd503ad732f205f728976ad19d401651cc718f6788612bef09956470b3aa2da51a2612dd1b147bce12b4d168dc87d019c2500000090a4c227dc73c03e2968d77182189978ab017217dfdd5b426221f05c27ee97567fb34232084b65669a3a0852c250157fbdf4d026a6f2c476b8fb1e51313611a0a8a6971ef350165d6891bc3feef62cb511081c60d928e59108dfb82a99abb5421f40f1473638e32b962b0d770838cc6f5f10e96bfdb2c594ec6bd1b59d40f662f23e6269aaddafee14d543723976fa39f100000128000000900d30cb2dcb452db311a790dc687ca719363d231fb85307180a222864921453ae7507c3fba569fb30afecc6492b476bd05aceafd1452afd264eb366ba466d238875e138b6463ffcca805534e15dcbe0442922aea4b7fe19eb679c8a3599ce741111ff85e03ec7d0f5a0890156726b9a4821d08707c29200dfe48b561ee4878b7ac7ecea0c81d8bcf4503be7ee05a8f42e0000009057f564f5676db39b282a7238fb15ec4957d0283e20f11ee6384df64c399886ea482c980c8283688af123f223a2279745cb25c4363e6ac288a08b4294b8e2f8fc914cee8ca6e4af58d3e53c80704637ac2ce3a4beac7bb37f8018e45ccafd833cba4685e37d21437b3399a05ac912eb7c21c8cbcbbb7d88007eeadfd0d4e137cb540f668185484adbd9906486e7a9b52b0000012800000090486c65d6eb9db09052f96aa3659b5fc5eee2d893eec9673e236647d3fafa058a074669a5060495de19230021cbdf9df7a6411f7d85838ee497097acf77584e9096dbb85ca511a7aff2ae295832bc0ff316ae0ec708eb52d6e7883f1e040d3ec17e285c074f6da671a00c05366734566a103c4cab9c71a68b68c9694c6a66a5aa61363ce0cccc72fdc9e8d2412771c0e20000009062268cf85604e6fbff7a8b28b31dfbf524c3bb91191217c56ddc8878bc845483519fc61eb2118c3e192c87b7947542a7ae9ef62b858b62fcec93447c215f00345a2413ae3b271c2fe9bd88c6691393ee2366b10fef48b7a335d15fa842d9a681b1dab46131a29be13612ef992b45754c2dbe1b96b1ff4a39bd6924ac35e175ff634608fc18ddbcfe472ddf6b12957f7d000001280000009091ffb382e562df2860d463e5929d0dd386f52b65111f9e24ee48d1174b77b1fc20a1d9ba91ac555237c713e137aa439c26521bf2d66732cdc628546c7fa3e5f210c5b24eedfe48fb62bf1725e114ae710bcee995e3d34369dff77a85547594889bc844493a821a6b8168099a7d5699150cae7f5c77738f1126a36c5defc55b6389a0417511a13cb1a29915d579228700000000900019f2ae31d07e882c01e824e214bfcf81e0af175584abf73d3991ce7855ab35dba74d46f9010fc0b5c188168b9bc34c281ec206fcd2509501f8d581245595f914a10dd463dc8497694a3123465eea9a10486cccc086214c6817596ef0f5cd5b5045a95246db591e2895b8d82ecc2f0b0cc7684ece5aa2615dfdd19ceeb34fae3d036052bc1e84ef238656a40a00239700000ce40000012800000090ff9576db5c8f0cb4a1b3efb6c86ac616730c9da14834ef033dcf04b91e83499159623597754ecb21e72b3468780ff11f1e4aee29b7aa121963057cc401701b577ae15cb36dd89718c17e547b04d6935b1f626c27e1ab8382db8e5612c18ac99a21c599832132285e68e704901a50ce330ad6c3cd18c7ea2647af8ba3ef6092c2d41f5048af52fcdb2404cfbeec5b9751000000900f04e5656ff462af7e54445012c3f04f98cdc48f9a049290340f444ba0be156f3e4155357f30f09945e53d43a1c720ab093775a2d572d088a56db54463f71835bc9c880740939c918a1119bbe8e1f973208858951bff89561c9137b29247d5f13bdc2e696b3af963c61e339fb13731651eaa15f7005162f563ab71c16c1e356f543cd28f7b97061515b54dcaaab74a720000012800000090516fef0dc2bc7055ce2e6409d7fe8bbcfdc4352e7121caecc070d9c84408de76765accf815fe1b00385b7613076442dc45af350d30494d6b1cd477adaf80b1c3b6d70e107238342c594a6bc09ae6ab3d0bc0776028261540f3462148188b384c8d595eb2612d80cef88154d2814382052baaaca7e819e3432884633a07e5d12416594f72d18c0d104565ac16d6ed83fc00000090c9b0c52898a0faec2bdc818c438ac107c304a683d55d9c4a474c0ce74628977de26931a638659d8af47781a4d399b8c34a3a43d2e58bdeeb967e729fa973d414d751ae6a03ee77326e6d0d062f9d630f26dc1e34c25f72a3020af2c52bdcf3cae28ce1b12abdca9c48da1e6ec4a925c029d31227763b4cfc91da9bcbe8bad0a1a285ed8e92edf7542e11f5b8bafff233000001280000009001879f76edcdabda8505da4d1da7564edf80b687de98252c564a739bf504bfa3c9c5bb76737a0cd8f6dc56f7e8d4373cc914e01368de682ffd2715459a87d119bf4c80c7b7bb7ce634942736bfb2199126202160be57c73092d031d24d272f978c48da4886711719dc9d7f37ab7afaa21e2639112345ad2ef734b4df06b976b0f3c4938a62a12bc07128019876f807d500000090094c856a482c1a46791c6ab9798f7850b901aae2c0d7bc45c8512579f505bbe044a6064d25615902bb1745dc9478ddd8744347c29875ffc110c40cfdfbea2d900022a11f0650b6cc0838c1935da8c7cd2003488377fd931473e3b60476cfec044aa3455ea359358fa502a5f6523be23505aa398118bcc6cba1a90d095784d82c5d02f397cf079439fa64916d8b52ebf500000128000000909190d8a7d39141a908a3c2ba238a116f7a4f3b6874f36cab76becf091c82c758c77462aedbef7f4bdf9f100a9cd501b36ae803d8f39610dc460717a0df325c57544325da696345f6af3fdab58488977b1815e7451370c33d00d824fe5b02a636a68ae4bf65eca4c0bcacb109ac66d4d505f42581e608f811e05c936277f00baa0173fd073022b74073ba99edd5429b9c00000090d43c5d92bd7af690db3107bcd32f235bb11dae2488c46509916f060f2d5091d155f75ea21dd668e813c15a3f211158ec929bd4d12f4408ba3ca4e39d17b8600d16ac161751b81a7b47bb7ee43e09a854295562afa3a580f73119d975a77da58a6dd313418b186d91b8d3d1c0775f26411232385c60841d40ebcf0ab89661701e6e0e3292757aa5c1273a37a0d84658b90000012800000090176c26d4e39726f095cf0ecfc4540abe667343ab2b2bed0a7c0f3c606fb87f9abb981e15a4f7802e33b9922c55d7a7ecf61dfdcbd381c6c3e6b81ac2fa28433f2a8c83117b54d9b3c099e6823faffaa025967b084e9196eaf311f7db4d5532120d015ea5c480794d68afa41d61aff7bb085c4f68cc3ff1e0dcfa0dd0c7ed8ed4217923fbc35e5242a3801764c7abd31000000090087b646a49633169b33ba2d85fcad84e999491e6a186594d49a27541178ce451fb8e7a5cf3ff93cd13399411ea6ac49db9e8517386e86d4b71df794a22b6e55469253f584762af3c9e2756ac1d067851179dc9c061bf2b046f87acf976778e4903153cdb0c6107096d8f187e5b45f39209501a350da4b1ec49f577cdbb98999242ade2285f5332d019741984ba413c4800000128000000905704b5e18a8917ddc8e751f1feddfb879dc77a8cf9f02148d9262649c4db2c8dd51d4f65679c04719af674fe999fe560e7698b8cc591d124592f76a0f65c41074faa89b7f8bda5182a2f2136598399eb1a0e858b9c0bbe80aa078a779d39a57df8947e09e5180a88613a378149e3797c1246e31e3424826d668b736544770a475b0538e2b0a5d5a857577c45ecae408800000090b94aeff42f2f4645c053e8898c55207dfa2d6a02490ee7c6675a7776f84fc0d2e54d11c79240b66a7251bd270cc6cafda533cef1f0add2ebe7eb9f73bddd322fab959806deb7914fbcfdb2d24735f52d286cf545a2e3e306828743d8586fa4c5fda3d8d80aac932cdd1dc89e0a149b0e160b0ba32aacbd424bc00debc58ac10029565c9ee8995f28e13ef2d7913d85eb0000012800000090a902f042e0044851611fe0d69869a3a795cbf0a2299c42b22675bf9ee726ff9b75cce4c505b523eb00ab53adab756daeb2de2d034918595d7223b05075a72372279d59c933cb91b3803b7f95b92a53aa037797938220d479d592ac27099c81d0ebd659496e91f7b5ae6c5e27c462b61b0e0e501073b004109a9b6478bc866ab5eb80bc0ed62d484920785973d6b0ef03000000901c686f52b4fe4993a9a801bed3d869979b59edbc027041c5befd7933dfb18878b6767120c1086beba65b1463c1b8689ac9f4abb33bbbb5baeea3271d01e006f160481619d7e291fa4b74b34e98e837ee01dcbd5924797c971240609b533c32acb49251d5a15e35b6e5313195fcc40c292241a66b35916c6bae13bb199c3137db119e952061c071be4367eef26b4854af00000128000000903aee6f233ef26f5454c433359473cffcdf7802c1792d636a19f160c290810c25740c187421ac4a9be82168a564100606bbac43608446d73a3dc8e166f2145bbb885488c99a63b168d6f1f160b7e4166608fccd81388debe5082cde71e5a3cf137ac78b299a942c1ef08bbeb6fb10130117bf54b2ec88977aa57fe396ffd024876e52420e624a79f4e6c8b078eadd2cab00000090f51b156c60a1e9e333581dc07c23ca8f8b215e777d0c77ea0de3eea7ed19b243f3f994d5e683039728aa3d7a89e42a7c303ec9cbf0b1611d54f2a32ff70c971bf3272f7ef77e84a3fe7ee71ccb301fc70d3af64bf24ad0bc2efdf754ee001beeecc5172f93771558475301cc0255f9682e2f853534dc98fa23dad4e8be8833ad930b1f861f9c88f17822d03e51fe94330000012800000090cd157b7b9ab07558bcfc0c9bf6250441e6b8d6119927efda4493f5a998010861a1ef5a3f6f291b5372f3b5d1d08898c94d1eb40cc48610251725883ade207d079cb74cc6c486f821b82594e913ca221925dc1695f45bc90442bdc0964c35c77d3a2a960b1f54170e68b3d9b49d5ebd7f13489920600e6d04cefcb4a847ccb85de59f3622302dbd8e50c1c0cf9ccc470c00000090479cc7355250a06e89ace6a21fd2603a98c2059527c027c2be2bedbef5a228e4d6b9c1833d7cbcec77d717beab10f5abfe13b1d2231843bef2465749cfc81bc606cf2e1183de96605eb4422d2902e1f913481c405d900d9ee98bf0a4a56291ecabdce453ffed73915f79346532cc93f12e4d48483531dbf591691e4240e7519c7c36430cc9695658458b9560648f2a010000012800000090e2386e8290e6513f9109c40d38f0b67bbfca0615fff1b0fc7061ff8c3d0a9b20cecc1c054e5ad7effefdf3f20044e1532d8ad842691984ac2b2424a50b4ea94a24510f5a4628a1d3d8ee6141d54b6e0520bffdaacaa92e715210a5b12240c05fa32e82dfa3da7a59bedf2d62035309621d163f5c71a46f42ea6c300cb7deaf141a2750dd7d6bf17006b4651992b5de8700000090504056397e187b84dbc4ac1077b03c1a1778bba1fcd09121b7a76e09cc0396c9bb0e9b6110e7f8d43bbb5d6d83134a2efed5cf0c3735b59b442e6793be9e32205dcf0fa75d657132a015500d6ed3d45f0a6113c426b2c461091743f9d1971b8951a160322e977234dc72f5c0bd3dc2552014ee9c2e656c38b4a2600fa48886b80e4d09686983a387402ff0d8a10ce38a00000128000000906fdc43b503ae89ec379878d903695ffa30ccfbf73588360c44a19006141112bba26719f718f14879cbce1c0823264361b75582ef05365e4705d93ae543387d2b1a4cd6847a83d3cf5bca24fb0941d9ab211cea90ac6a4d6bd6a8b5eae1552c4bf8d85f07939a82d80a9b1582660b94e423038aa01a904c74a8945e06774ca520f5a78a756262e9d0a8b532980618381400000090d58544eef11204017b7904096ae8c9e415bbaea0e5ce75efc6ed2f4b8eaebb78835e5342ea5073acb2b15ed3e1fbc485b7f7d835923908e8e1fdad047e726a0d20c477e11a1d6a1d2fcbb54bafe24c641eee3719effa26513706a002a7d4ebc27fdf7fc92266cb9705e973a7294499260f4c26b683ac208df56f810c9d52931b64b7858dd349e60d4a26220da7fe472000000ce400000128000000904619e3da319c588d0c7e1c25c996015801c4a767e05b3667fdd54cb707c7c748eb796c9ba34c3e70ac9510e17df2ddb9d72cd7bd0f68e9c22594c01bec4d61447b6c8966bc2927dc70e914b591d234e6084fa29d91b4252e1fb9de9ced1e734bed4c4621087b6ec3eb2602212f341218077e9691ae6c2a583b3c3221890c9ad797585931b03c43966243c0b4f68297320000009021ce9b421a6c69953b5f7bf2b8078c97062e6f2bee21ef404de7a45f046c002053bdfefb898842c91c40d120e11553c0f73225a0669ad14d0fd53ba38885eec5a39fb5da97ce398398d93261e6e905952adb484e048b6b099b2ac1ec9d772cda8fc4e52669d70459204aca258a8d18182df4e2de568b3ced1adee8906d948792d1a4e5cf3219710b7b14b131bbfa596a0000012800000090e5272742cbde353fe3c31c39ab622390c0ffa30ba27329e902e99b8d5e49cce7cb66b509f4e916a971aa9db0c3d76a3d72badb8756a53fdbf3c7d27d9975c813976a48d2de3f30d25a500b55e8c128760697da5b40fd6189f96d592a0b2b3a139d49468746023b72a1562fdd59e980460928cb38de635e892bf7cb6d88af4e46bf588d9c0cdec8c55b02f8aec05fe27b00000090ddb0180a6ec7c82dc05b78f9f956b4e599f2fbcf99e2ac108458cd8df2fcce0b4e678736468fb76c2e2139ce458988edb0802e73aad294dd4eb7e6b005fb716e0cfbcebf26f19da2b3e08b1389515dd9248c0f04383b207c21987d087f02334b58a380ec0c53429a3ae33ef735cc9e0215ccb1271705ff59da563237195a708c19392fe0a3610d6d50050a6f7c41b26000000128000000903aca864e9d4691bc2294002f537931374f1cefdc9e653a632476173445c5787710022f78f82491dfcea73fb8cdd0fc82b00e7b6fdbb55f5898a392e76e7f4e978c0bc1d86d881f66d6dedd88f0d3048613f38b95862bc8d9bba957cfe6bee7c610958a1502e84f7c33e0a2345ed671eb1f8a7e499097ef2e4b7defce6425b7cdbfbe00de5c196a68b3dd266497b29714000000901ab5ca13f8c470d5c3c4ad526cd667073c3c014be3efdf50d65d2da55786d8001e361af8bfec4ec332c3c35386263bc3249fe6e836cbf777c612b45faa6b2aa177ba59550773617d1383f2b560f9d87c035254810ccdfeb446a28a9c036ee24b2dd9ed2c6fcda5577405a7e470ecdd3c2a9426942cf55eb1da96387ff9b7046ab58cb2e39f9eb046601070d432428d8c00000128000000902ab5fedb212a19447007f5393cc050c8ea91e9553dd0e3cace0cee68f3f536d225e1c32ff99d0e10f9fec031150e6d3a962d1ded8e21f8c14ad1c47c42e109b58e9d7c0bf9fd4837292448d617f5d1332e83c00c74828ec16808a4178069b02f503ae50fee013f1a467131e00d46d2eb03e23e00f6140fc2b75599ac84cf339905e16f024b8f6199b9d22004de9156fd00000090cb3c933ed3d89f7d502d0793cef1f84357e7d873bc40819d7dfcb7c9d7e44f7b9d35dc7e0e4d5385d45bb57bb3af930900682f15b6d804291dbb3d3eee3e16945f9267616c8f4bce3e0670f804e2185a0dda110c741be3ab9ec9e3deed7e1a9e11854d4dd16a80ce663d1cb9430db7c91fec78750ff21201402495a32f25e64044dfdb4fa056bf63bfade4de26da53110000012800000090ae5c1e1df141db587a332c3d8bd680381dedfa2bee7f2e498f8df062162f50d146b63764ad5687d8cd45c52671954125bda229cea0881236aa31aa801bb73dc0a595dd54f838b224085c79cfaab4f09f2669b6abe3386210e28448bb18b176177bcd66bd446ac159f0b4197773fd2b712c1f5ecb1156ac1bf426fd9af8c18275a0bef656367910b14ba72d60dc60312a00000090c12dc33b7bfe8dd92cf48fc1d747b9ffaa26feb00e7e85d7b29c3348443f9afcf3330a567384c96a1738359594999874deaa9338406fa2a87a16d28d138deebb4930dc59a24e8901fac05c6daf00b74219d31e2e3fc8a5f8bdc932ad32783528e6e93e23142a1ca6bb54593cf1c2d3f12034e76e05d6d15d59025d0ef092f5c1a0db3f79375c3a555160c7c0bcfbb2d60000012800000090c225b9114d44746790ac40d2d6d2d8517ec4f6536b617998b656f9a879b9e8e1de2258690ad4a0d5953c8b1e97ab237cf2f2ae61f0aa0a0956a5083c13b81abc6d785c022eddf40e5331f4747e5f6fdc1ba6258a26d6d64d25bb9ab5d779af0399412476fce95506df29d4392cbb4c7a02569048dcccd96728f537007cb0df15534bd1ae4b521e008c19a32739952cf50000009039bfdfe285009ab9b68e3164d29d7c9e7a1684b95015d4dcbbc74d75a2183507630b99dd6ab55d675d6a5805991c79ce741490b76adac3542514bbe596496c9aac56e05067afde228fddd84aa6c62d95208d4e733c5a9a3441126102a3b99ae6f5570810a30bdc01892a89fa2b7e8b6d26853a611c533c39c184a71ca31a85ca9d3d292d7b275a7133c1030fb403342f00000128000000905d7290cadd864629feff957596f596a9de94897adde6dc69f40f2bbfe691b348af800b19072caf1a62e59e2af661777ee92b07598580cf0ff8a3c2acbb349eaeea063141966c5fed0b2cb96695c200a1173b830773ba25bcf215f6d56b5438245078898e326857ed532be1dbad713c3e0c1cbe6ee34a48d283613ea1bec5d0c793aa8b8029684aa5aff98f7dba2a48070000009054eddf7204b270a603967c9d3b298fb61f6a0f738db5a36c541ab30f2d88b81edd98abfa5f823cf4be8fcc707bd621d5b96a12d73a1d3dc75fb2229e969ccd68ff7e77a1c6aa0989f0bcb1f7bf0fe3c52832bd21526b8fa92ea2405a9f84f7d6ec4e228cb01c4e6339a5cc01b3eadb0722d7323317a3742c4bc21d33c0b8003d5c5704176b0f0496d7f87dfc25a68106000001280000009042dd4e6490f3879a7aff4a9a97b614b2daa7a5a488858fdb387e59c3e27abe2656dc8d0671713b1daa197921cd93fd883d5946ac0811e7d4049b52518d55bed52d73cdaf2565766c726c9ae3c54b8fd607170a6db6811a3969a42a1676b82c07b9b1dc9bdafd98e7f0373f973daca93727262ed5d997db22ab57e2bc60308293297d36fb824d5a1645d7788ddff41df8000000903fce19e712fef4929577ba02d48dc3e919b1cfa74fb1afdb3ab635b5ab0356875614e33cc054b99268273ebff2fb0a5489db720cb496789d583e7e00f78758ea0b6aec810c37a69b3a6116dcaf918c0c1047231df796f8c9051bf8193897b84d39eedea5f6cc8df9057681cdc2dcd4701ee23a03b6e7152aa7af1c04542ffb0a2874666c14bf01ebdd723f195f448c9100000128000000907c2c17552eecc13111ec31339ec6b6d1b12c2e272b24b8ac5fc6acceeebd5615b628b7504a08f5a801c49f0da9ef19befb0716feaf9cd6be123793316a359d60ba343929756fbcb47c84173c6d3eeffd13320c417faf209fe01543c1274c1ef5d21d34e687904c4257218322040bfa7e2f443e8a14021ff71d40ced97adcdb3af994187d8af8fd98648221b78b17721f00000090ce99d741296de2abbfa5b3aa8bf2aab9a4d583e9f324c0c231df77ad562589afe681380d33631d9470f9412d729c0095dc0ebc544be845e9f1d40f20401d488df7dd6a3def03d43e2d48061cba8bf020055fea4ab4a8a316791b96e4e144685f3645d22b3fd9c748065f55f4694031190263fe8d8fe3a7d8181a5aa839e89c10fedea43c76dd5d40b2af12e45653b1da0000012800000090846f318a24b1f215c6d625c72aebf13e9c9a6ebe3d5c3a2448e6c5300e7031d5cde4a455f92c3d896a8adc7432b89631c399b8a32327fa7472a50e35644661c780d7b34cb8aa8077e4ea9e607bf7f74912e68fd0364bd02e82259616e76358af795cf16387396c52686be4e2acdda5e31889cd0980efb1c3544e0c52d76629ecbe472ea4688603d72556be1524f1087c00000090805bd40de3119eaf50f7093e74f52cc0693c3d0cc6f133c7dc17f1f66f753f39cc797d59aaf4e04796f763eb795ee0b17b5ee73efb92042f2304a1cc9701013029d79a6be88e375d118c911b723fd5d52c24fd0f7a990381d45c475827e3941c773a36367b6ebf719bec3294dde9710604edff508308d049a00412500343eaa717aafc038808df22917277927bcca6c000000128000000904f95efb3b6ec01bf8d702d8198eda7e675acb648127f8cd60985dcf6387b6e8bf4ed3e87013d7963d8d72939128ac3044bcee307d2b8adeddebb0b047fc4713f74f67a25bf26808c0d353f63b50dfe5712eec4c74f9740f92d2c083c16222b56cbfaaeabfd1cdcf3b3772652ab9510302818e5b356c2a48860eae5999dfc313a05810c2b3ad6e222d0ccc83a18e4459f000000908f045ceb9fc72e363f59c2e063e0e61e5926f9490d463e85b5596411f12fa4a4669676924b5869a55390be0f08867b43454ccc99a60b5fd6131a4a420664ed8a60ce858bf9a54c2c35379f7cd49e42d42e5f9e0cee59a07e6aa45d0842d418caf7fc70d2bfbfe5ed44434c9c96f3eaa50f506195df637caeff11304fb4f37fad4cffa436f736f14f080b0714299ae3bd00000ce4000001280000009074371bc6e501686729f51b605fada36b902763f8bd01875a079b278e474b39e2b7d01c4b6d10ba9d9496470f98777b1a68d50c2e493d2287d4122d581c0de4c36fe1f92c6f604303680cdac52261ddde28107101045dc414db647b09438ca1dd569c7352a2c52476408d838bb0bec55a2d2d1f8f38dac0ef6b1e7750eba48310ae919e66582dc3a45b38e6b35c16dade00000090f03086cc5faede7f087977599376c837ece24b03ff946d754b08898ec3093706e214ec83fb92ff844c117a23efe875c955b90e2c3e6ba03a6d83496223f6ba8898d5476a7caec16671e0a774b034456026f6b800f23bb8fa8924c16e7d3ae98e1b4321c84f17fe21eda9d4cb321695fe11108481abe4c28f0ae9876bd11f7f0cfeb211b8948293f06f436de14cd454600000012800000090ef48ea7af87327a2ba6427ad721d480e496348ef1959af7fb4da3a175eb1b6d51473419fa12bd69600ef28a4340ae3770b8f7f021470cf2acfc94994f4d2e11a1c7493f3c18b399d88ddfaf432305532046542c246961ed2d5beb60000548483030e0bf80bcfac2811024de6e7b9f88822d1de444210137c148b2a1550a87bd7b1ccf83652e189e36a4562c964c3fcf9000000903e34de30a1df088fe15ef89620ee4611d58e18e5aba841d90c923dd94e47b9ca9f872bfb4fa12c32421062b80ef889b5740a305f346c8396df848a31bbf093f577613b0ec2653ddd837fb793b8bbd1961297b94436013410b4ef487eb5d865cf27e335efe488bc3aed064f5f4889de1d0d44411c236205ac38f7a9d61c0ff29d91b069a85d1fd75969c121543e6b37ef000001280000009040f168d9ef58a85a6a0d74c05802660a2dedc37078a6edc0227fa2777cdef581973760696ab291f14627bf088650a451c40e62a9d2906dacb76c63e9196f9270eaf13e2b72f26e2944f698be9d232f852825e0ff6f348684e39e6387feb79b103b43a4276be4a266d9801b5e336f7c81095c6d2ed363efa3bd6880dd2fc5ccc5ed2fcf3dfac65be1b56ebbb38a3b363700000090a8b66602022c59e1a134da756df8b077badb05c0f254382ee348f2c1514f689bdd506c4735284691418b0f5932db0aa63daeb13766de36740b7d7da7171bc51edabf333fad158b6ab51c7c589cbf17cd2bc25883c30d4dd76b852cdca3fd96ce4bfebde5ada45ab22803b720db048b0902ebaf926ea6fe4bdaadd0c50b8483d3ba44916e6de82e1f8c71f352740242980000012800000090c26193dbe1a0947aedd442ad2aa1481e3178f50fa091c463688b62df55010349c4bae759d593c9bfa9057e2e8fe2549ca1becc46d3ac8ea8ee617a0fd5aaa54966eb0eae28af7142a73e901861243c6a291ec5bfbc1c4a9e7657f66c20b72b6ed4d71e2c18cc54e4ffb4500c272a63de03742bd1965c22f668e79304aa7ba42a8b91792dc01f615e251bfbc7a2c81488000000905430b47a0fb07e8209019090e9b8cde1527d073863fe22204c41502644410ea892532122f539e7934568d8d897e74e86f182ec167f6e63ea4cb7f31029a76b813cd749a2586fcaf6f12b9dfadf2cbd670ed6d7ca6d14b9785dbab8c387c069a3c1b8743fa140782ba7fe660444541b5a0a35352380eac4725dc8ada78d36afde494eae19944052f16cdab2d3c341c7f100000128000000905a60d042228451d3736befa4dba8f9cb5c35084f1de9933cbe72dd8c71bff3838a4ba068e783d46e297c6f98d0b7143d025baae9b1b9e111e71c8792de9c5b74bf1cb98f805c70180bdd5f3c27714fc31a3d14ea8eccef6f7dabe6a91a83e1a295017f89d83eb80597d36c121a27a46724cddbb87bbc4e86f236a7effae9909e3c960fa774cd06c64cbd2c393e69f91f00000090a82b2ecc53c185c7bb52768d11a005b8c1c32495be879741cdfb92266cb2b3ca9f88a8e38eac0498e3d488a537df7a5c21d336f38a2f0c1c184297179364472296a676212392ca4a89f3aea18d3922f30cd6b5ef3e663c4727d02643e1acfdc4d4ee40146430b5919b3ec1fe432c2f15099c88203be50a9ce7a2ad3317ca808140e51fb9f3ce52ee3b1031327a0709450000012800000090a1a01e5b1905b830d9d6a10ece7b2c475c8eab021b4c6c0edc4e2620a32bab38dc9e3f3ff013145c5f97d2fc2c76eb4e0c84133753ec4e6e1bb7993fb22c1c6e702af656f047e1c7ccca93fd47b7c33a2b007d94909541c549e6b401b062d08a3e9c99eb72a8640e36f443b0254e698d0a0c294cd61e6abed1a2c91425adaf759e6bf1da0b77874154c048ec2d671a7a000000901066ed14c5fc9b49e64aa439ae4021cd58e02d1fa6e712ab23d802b75a3fde4ffacdd124e388591c92616f7aee9ca702cbeaad2d9b1e9685c354f6ac1ac5670326655e1e4fb82a094ec3f6d1053d07a61cf95306cbe12b8e32cfeac8c304b28fc5f11181e1abf2985fa2f8b7a0853f6b0e955546abfd4f9a1dc7683b9d267d733faa8990ffc29521f3aaf3c85a2242580000012800000090a7272fc258a0326c748c0f4f37898c6a9e0914d9c643aaa9c25e102477835e97cb31ff263a1c28a4facb4af6984f2b65f6fff5a7c9f35db2699309929dbf4e5a42a6f4e846b9902c72a64280a211ff5022d9f9405c833eeddc0b6f67bea968a721e08f1946a92821a834eb86bd6bfab60a5a5ada6ccbe9301bce61d53d09c383a6975c11132b521d3af3db4c9d6c318e00000090ff3c7139b675681f3fc896f5bd6cbde547c3aa96d101bfc415ca305172e8f7fbc4e26d3da4f5315836824a5223cdd5ac7bdc2d0113244e1b4c367e460d3eac6c6a2bd7ba58463de7b0dbd7fd97b12c0c25e4056098e6633b0e93c7aae555308bc12282633e596233b79c203fe085f6fc042422b665416dba5fab20d766e9a50e7fe909f691fc7f97d6ec7bb089bdf7f500000128000000904bf829b13c8afd08d1b6555c4536404e92f2328fd2555e10ea70da2a3bdf3d378dce65cb96edb2715d3b56feecaad07fcfdd6bae58d4982e05c62aa1e878993342eac70298558c0f119a7dd086c45a3b0c2ec0b4371458f8968a2a9453b84124a0e66a8c355076697b75a0cda54b6c7e1d220e7f97c1d31df47a72ef7e1866c4e44dcc7d2c3ea8d24e54e596af744ccc00000090ebe8e58f563c94f17976ef75742578764596049630ea0d45c598e2d9407dc829e10681fa79ef239ffa8db12279e1393a3f5ad6acf9b9d9e95042d9e60683a296b26ffc8e1deed6cc2350e7dc01a465d12d4e4d67190baa513097564604aa9988b7399764eeb080a35f12f8bc26756280265cc383fd850a23dc3f8e13fdbdc36a3d728625a58f119bf110baafcefb1feb000001280000009095d76871e9855cfaa107b0c9d43681253aa7507284d9aafb7b6ef1ba0dd0b911a0a3332adb6b09d591218373d27c851e9a854e69b78032fc4ebe60ad87a250add67c9827abdc50e26764c83ee641c4e70b87a29aca2a7d84e90baa76cf73fd4059dfd7e2e36f6c182586def7e1651c4a1eb7178ddd4a7adf6edbe51b83295816fa6f6682aa8ea70937da2e18bd3637aa0000009043caf3f22e9f5fef393b8c1c249e152e2d5480c1ee53bb3bc5737b62a6faaa47c245da95e83f25321192b80e247395e65c5642e261139250d8c0c0296cea2d17f3584c3145b336d855214e1b67bfa7c4062dd9cbd380328cdfa97aaf40f7435b7a2fdfd5fda9123f2f9d9884821778dc0feca83aec4e90672da7bf7ce61fabbb0f28370a652670701f52efba553d0f5f0000012800000090bc5c02b0346c70ba02848f5d947bfb7534d62950b69854bbeaab3b00c117756eb70f68fd3a3096ee99f768e8bd27a71d94d420cabb595d845c8ccf67f1028ef50beccb95efb1e9ed631459993ce7596d22716e6c822faa8c1110df905a553bcc8984fcdd2c67998e5776985eed0ed9271868f42e0d141af534fb7157d4e60e3a23a1bbe025dbfe0db0fe05fcfcf4dafe000000907a6b69cdad05c3be52b6a6d750818ab190a1ff057915d796286971e5cfd38d67ce8ae4cb87cfed247518d130ea59c4342427d2b50d0a145c50240f11aaf61af5037f237a7d13cfbcd5f77faacc760d962e4cc8c72bcf73309a5040d39e8ac345c02a43b22333254b54a53dbcfc29bc800644a6cca50d33a86bf921f4090635bf73dcd01f4e66f50ac8cabf7b3012e20f0000012800000090b3c4606bdeec9bc8defb04498bf05af7234eae98fa3b413fdd657037951acd5b3b85d29877e4bdce0b29a6144f9d39f2ea8a1617412bf529703b5b7ceb406bf4588a913df4d7963ec02b829b71b403fa093d60e07c4c95588b36325c392b927f6baab0f44066a7bf4a521ba8835b619219f8b115a1da654a66e744e0e606f622b75500176ff21b97bdefab7128d78393000000902e2060078e2d60a59c0da00bc77ec317baf34e556ba13f248acfed9e6f0548964df6d4961454ffec894abde402b9acd7ca7e18cd57e60f305d746c194cd0eacfe9ac9704ff88433cb08f5f6bb7df40a703ff878dbc758744671296d3a5e45efebe5b063afad2f211444517624d2a14851fe635952a345221bf353f19da6eebc6b6b13f0dbc4ed929bb107ea655467992", + "calldataHash": "0x3e6fbbe5f3ecd10b87dd3685cfdda696001bca777b23423385caaf69e434f43c", + "chainId": 31337, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000006c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a01f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907000000023e6fbbe5f3ecd10b87dd3685cfdda696001bca777b23423385caaf69e434f43c", "l1ToL2MessagesHash": "0xa10cc8559615be5a44cfb608374b1f84fd11cdb5844ebffafd92a77c068350f1", - "body": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000659eb2370d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000600a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000101f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c418109070000000224c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a006c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b00000020006d87d3393cf4378f937c65b8103be6d2376fe77e1f17850cb76b01d30fed0900000003000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000901bbbef3c28b593bda223910c4da84390617abc7bd1a5d9e6abe699a8d564423d157457f7ffc6ad35e55fcd080285d1f8d0e4257da98a610cd038d08935be90b454d2a167cd0dbe7c7fcabe35baf98f8b0444d1a95109d8af1126716859446f94e2fa3e9223158fc00f0238c4297cde400cc585cdc952e4a35987736f5f0f358afc2c80a9729dce95e4ad6c99a8049496000000900801e74f1076f4059a5e29ea28829c5018b7ed6e2c13088c3ff4afd3d1ecc7195e53056d0b372de69aa635b1a1e2f390e2eff2c8efb57445a53e4ff7c27677b3dd5eff583341bc4756170e27620b1ef01734b72ac04880ce64a043ec11cbee86fb54f25dd38f6da24124b8fcd0e6501f1243520950ee37e7711b13383b83a5670ada6faacf0b6ed63149ff7274313cd7000000903d789416c844dcee48a0c06656977e98cdf7b78d890602ba364c89e5c75244c91065944e7eab2d653ecf36240dfc8d45a57fb12292a1231fecb1202ae0a0448477b3c45bca7f816ddb57d6388cd17a3f0aca6923244fb0b379d6a61ebaadfeb9cc5a5e4581c974556092bf7142abe87e0b29e6f1b99888449e0d7e7ad682da12c1ee264c51ed42667f351deaf078cd15000001bc0000009044c89f4bb93b937f257264d2d760ca5e2b3d4e92cadbf7a0b09abfa46dc22a7c8ab66e5a4ee70b69c0c3a55e9af9353ca6f9e445c7ce18ba203522b28057392622c7cd856993730767bc396cf7a7842e17b72e2da6b614c3a5eb3b758a8c7fde084fc6d1e315e86bf88a94974c11422007441bca51c0fb5a8cd9125a17deebc8fffdb62314c51dcdef8b0b911bde617c000000907cf318c159e037fceb65d69800779afaf4339456ec9afcaae830041a65564f0881e7776057fbe9543a8e2bc51a479c7995c2e1f03aa28f5ebe082bd419e6a4a0f329d746372c844b38f34f450215596914425fdb872988b458cde3fc19afd08806a58b565efc6ec48c2d8be29650150b0f70ab038cf8dda8ecd0d30a1f489218343782affb54aaf0700a993fd812279d00000090391336dfc5cc13c655262457ad009a6dff4a4212be26875a99ee84800b54d454204af0a6685988b443e2d8a02ac61e87916c6f33cc31be2e5eb6f0fa57cac629bb9748d4cab7a56b06e832ec134c88871f61fdbe0ed85c9febb31a9e7b57d1c0fd80c64de3be0532710f8a0c4b6e6dbe2b4731ff0743916951f2cf2ab02d2b073277afa45bd8549231b5b4882cc21574000001bc00000090d4c0306719a700d2335bfe386a6265a26593dc3b00ee3decea20df454464b378b308be6712a79d127dfb22087a048606db264272dcba52a6aba8dc8f907b7ab80d84e5b19b8964085616a3dba66ab55c1f26072b93be3a2bfc1c1dc02a1934b3bc77edcfcc6da9e986db080cbe44e1f02d26389d239f59e89153c403b7121172d4cf25ee5a4f6b334d241e9476054ee800000090ed5694dc14fff5bd9e60c0b0e14631a67728efa34c84b00e23d247589a72c454bb9100a8248d478698f1857f358ba12978163df41f2406568bdbc16f77869395f72890e3ec965f094ba3f2e394bc3854074d4daf022889aca54819148fa933fc708f6b94817cda4126a24c25269f413014232b411c83b1bf72acf16f3332e74ec71b725edf8c14df6d0fadb866051a57000000909550d05d0953185a5a4734d57876a217b048cadd73932617f73c8385691a7528dc8b86244ac48a97866c9ff07c03b4ae87647306698244ed38728b316b5a710162484cbadca0a193e062221e22667f171ec129887f420216fe57d9017e5ad95e656eb93ef18d4bace9845f3933f365a126a47bd5624508828e86be6806b7d6f1a5901802974e1f5896f38041438be007000001bc00000090bf2b3c0781fb59f551ccda180921c7fb59cd0b3fbf3f2d08efc03e329b6186aa892764af52466ce12801f5c425ec10bf740fb24d9812a70d9253481db8225be7fbec76c789a05c5a05ed9ae4dae23d88158f012ce177df67198a930a5cdebad4b91c0fd3ce0d2424955f9168649dab4b0673adb98f3eee50ad255054258bbf19e4c074211652c9e70ce90bc2841a3c6d00000090f3f15a62c34a9c61c7775a16527cd2ceee25ba7b4f6dd174c15dfe09b038c4097df4d2fe97205939ee1d383c9de219b35f296e1f9e68377ae5f582eb44eca3a57280ed2f3275f1dd09c16b32ac1158de21a791fccacb346e1f10c3dfec72bd056984c97cb1f65e093de5dfe30aaca5512b65720c7e95db495d49128884c54dce2dd1201451607bc34e0e9e61b32b163900000090c9303074fcab34ce08631b5613015cb573f8bad3245ff941e061efcf3d2bc98e75f13fb9b026e9fce34e970109445a58077664136392fba1756b28a98576f4a6dba24c19695a5b7a092d6aee83678ac802e48a785b7973b0cec73cfde3c755d8e6a29da5aeb45da94896e8ebdbaf8b22042cf1ddc4ec24f437d9a29bcbeb851a3efced101ba9492574aca98d450bc475000001bc0000009066ba62c480fa8fa8e997d67460ac659594e5acf3ab7f39efbc73ec56a925253858ec11890572625f66e1718856dc34a6773d912465997eb923f2b0951238e77844043fd70e967edb63a3b5d657069c4e04670858748c1dcb6efecf0faf92124b97f0a73eff226715b0911a5180dd708d0a0d072bb2d7c2dc29c1ba30e89d0caf40ce7d9badf83d0894c347a12cfd695400000090b70a4068ec9a281b1cb28c85b9a57aa39cb39f1ba8475b196d569053c09d179ed7bcc57f2438e66f4a6ffa160969df973444f04ee871d5f8ce80c5a2ab783e3ab7b042167205cd81e5fa466475c7ed94027f19cf3771b52de1930b26273d84392378e19362ce087519ed6514233c929b1793f7e258ef1d8b4d8d8071cf18cbb4e6141ed183600c67a5be242acdca3b86000000907baea0cd6b76df2d47201f6c7257e915ad7dadc9e1eaed8859c68c1e885467e0f7dc9a2b6b0069305064b274e55bfdd3ad5683188b423792b6ee485ce0acec288f4473db8e1407187e3b883cda868da32ebcb8e0e56e36d94a5cd04ac5fc3d52dae466abc23da47d6bdc5b73800bfb760ccb9ee2e47ee6dbf512638ed0d110040202fb7e0d20c91237a4f76c922367eb000001bc00000090435a77aa1a5067c65b865b0f099098e369bc09b7466096ea97ecd5c7dc5858eb45defaaf2989274121a0f534f88191da4d3aa801fc7fc1bdd5bc0d262b1e0f37ec62db78889a90ac6671ea990ca4f89e1be694df56aff7af48c2432503efdb1f455885e0ab1f44feb1739d7e0b0b99972af3d27c0af462ad11773ba13816873ff68703bba334da82b1d20df328e821bf000000901e55e15903dcfce5122f315ee3a694608528aff4bdd9f73a8b229cf87f709a78cad350984e664b84e19cda7bb635a50cbc1a6cd07011ca9b17735398c44133b8c723323f1b2e423fb9d63e074e4afe210f479d2da95001a0e0c14bcfafb39095ba68a06bb54c11b4cd4322b7a9dac8471dd5a4fe081c21ba23c3ea6f38f900f03144a15654dadd90c6df53ffc4e9879000000090e6f7127c8ca00dd089998aaceb95832f9f6fbb317287e7d91e09f11ae8a616b0d5c1093463c3ec28ab7b9de0d78cf306c48fc0e35c725a42daf1259484f06d0d0994aedafc7e79bef6d8a14cb835a8af282a5b621c67d4d51ccec78db510f0ab6a70f33d17ec8ade77d45cc2323d0b5a1dc842e9ee6d1fcec7b59dc1957bf7a54d7bb64e7e5913486a186bfb733e5623000001bc000000900daed9b24c8808de6caa0ce94faf29b0161f52a6b6e753d60a6de14382e5543d4f548d163944f4763b35585ade6fbd461d2212fe452779b7080649631d08da65bd450235e95b009e82e7a0ec6f83b2a025570d446fec4fa9ef7931ff02d8268db614e2bd39bbefe1f1cafc27d02b72301262660cf9a50142a90777fe870e5fbe216b736a1626ca98bacec9cce71b40e90000009016a3a084d4db5e21a9ddb2fa8ea6bbf3d1c8a047ccd7299d7dce8b2965a40639f54524e4708c8f3c6b3d68b965b198056691e411132ad001a5c3f3e47b2cb79a792611ce383e4ed6fe76a980141c68462c1de6452357d4cacf986f010f75538916b9b3f6226661a550bcf45c1643b5ab26aee38d8a240740d17b64983c3a697f372162591f9cba336795ff6e771dfd31000000901832177024c659e403875cd3fb6c9b284abb411bbfa9fbe8f92d0fcb55181837c651d9bab72e4a70319f6719ddb9b8de4d0a1f55b2f0bee04ffc2e2adb30fc52d5e85ffbb3571f79ced6ea4c2a01acb50a5149334461de2636c59da982066b918d2beea8b4cb6e4ac43d8b0db00e6a1f04d9efd02aa25814d4aee406a81b6d476a8b0a41d118eac19714a51df358b9d6000001bc00000090a3f3f06a4a96bb9202a1b3f1907abac5bba7f78117ff9b1aed42fb43b1cbaa4b6562f7089868c0b1e434bd36f2dfad77db1b249eed235be3091c20382cb1b1d679458fb695fcd9de0b40454f4f31e24f0b6766b52e095f579bf859ccba46e0b9141ad9a5e2deb486a8e4b69e57e1ac351c40a85b3d32a46f41c366080204cb90c11a2a4f69318317c1339e1339baed730000009079bf57fd182085d21ff68c3cd140c7175c02d3bb3a629f524401ba84dd20456591632f6653b297cacec14710a34b96833e134d848d1ff827ec7071ae67d7fdba4e7c38b23b1eb354730b23f26c47c1f31e35bf639491ed74a38ce136cf075f9322c1714d7f1d0f54d69309e575f4fe061db552b171f53f1efa8656c0e7d6cf6e615a22c666cb36fbee3a5e50fafbc5fc00000090c5a6ef430fe31e17b99f59245e6a6579d1b754ceec9ff1c517895c18d50736b0aa71b234d25be15ff15d3d4c72f153b4c89ae1a2fb6abce065f3aa1bea6a7310ec52904a93230ed524dc4f145361fb28299b9316d827939971374540bee274ec875613b759be66d9edd3339d6cca30620e06f233bad277a812eebcbe491003ceee38e0759815bb0c02176bfe12d63a3a00000e00000001bc00000090dbd592781428d455ed39dc0a07b9ef4ccf58122cb55c07417d0939db32f1866ea0ad8ad899923219cc8db4bcdf752ef90945ae69d0d6a5955cb26e761c2df9f0c414a579f681023f5e83be5e7fa190fb127c3babc53a4cc2dd852580d269d46d21914494e25acf5d3375e0086d5a97c309bd8e92370b80453715cda7cc900ef6efaf62118c4cf5bd7825a173e7e609b00000009066525a088ff7c589c94eeae66f8fc9f087b188fb791f53a5c817550b579a936ba0ae9ea3fc068e776c07ffc0bd3e0593cc82944b3b8ad5cf56c5fcde9db94845e2b04e642c0f7bc247619f69f2660e1921f7ffdb11a80108f64640c810e1e12f1ee907f247b47cf7a183030f3b8307140dbb5ab35f8638c1eb82168428deb529505dd969034f149271a54e1b2eca53770000009040c4b147cc2db994b92ff6eaf08902bb22decace8884a9106c10acb1e96222a7a250f775e3ee8f5829d89fd2d138e03fb5265ec0dbecd7c6dc549b80e1ff76f9d5f8aed45c6f3d370ebf6fe146ee7e130e24ab11e5a2533106fc6d294cf6fbebcac388841cd501264ff7016f0ae299902f2eade2fc2ae7effa8b967e7b5d6b98d83eacd391786d17d257916cb0452948000001bc00000090a2f86a906afe230c158387a588576e4ba5041c43217e5b5f8649a87a73775a3452bc3bf4e21757e53ffeec78be7359eae072956c5e635dfbe3d3e476c958cc89a22e26f5439e9481cf634aa107588f8c11e8fad4739babd855402dfa419e08b030d289d39a45d3cc7b1a865b6115e71f1068eef4671c2f7aacf48acc527df9944b52bdb870b3e9204bc8698754f35f9b00000090a19f37ea68c8eae603f92aafdae814f19be15ca223658a00ebbf284e22ccddc90219b78f162ae17727283c2869d4a1cd39a1fd7434d0671e840700764fab02a023805fe8c7b9eee4e445a63e90f1f400079f383bdb6b0c6257239de9f49fc98c77ca46a5f25a7906345ac830bc5d0c532c5ad56c4ec7c977c39cb3e42a0077d6eb99180704f7249706324c3e3b79760d00000090081a6685395e9c95e121c4684fdd7b01f44d3efd15c56f303e3b7be13797d3b0fe79ff63de67d0c0d97e26ac6461adb3feeb2b4904d2b7b84635e9666c94a3ad2a02f237e0cfed044c5a09b9b65d2e3d0a828adb37d6b23ecc03eb74e2b25c71282f9710a575907c783266b634f5bf3a07453fd656891e21f0e2d2e290a8a82a2a0e5082c7c760ac6a2f5752a74d538b000001bc0000009038865ca967ca89cf35550d25f27c55e440803f4f8a75113addb9c1561c2ba9c81d0bfadbb84e494131ae3047155080ee1d21de792436f33931bb1a699f30c8175a52d9883c8292c6b724ad9867f7cc95295e8c7dbf2f37a76a8052f0ba31a3ee4a658b34359a18ce2104030f878d6b471ffe04e5f74ef661784940d2090c5f134efc1248966629ce8c8411713d1200c30000009023ffd451a6cfc3f4ac36e52f5f312d48704c6929e2ac77405207c24fe1c6e3c291ba592b72614e64f0478f22abf9e25258c7d8f8c992ddc11c991ede410dc14aff4502ce53a0c4c055cfc8151cd96e6306e686af7a3ae7a36c0e977f993a447b87b1cc367d878aea89324e2a3ca398070598b8829da2a2d244e4783d7c1690a9ca4b23528d687cbee85727608ff09351000000900efeb2408af27136ae0e7958dfcd539495df3ce594047c02595a16e38c702a19f2de7ba30b62c2f14a24f29641e2a09c6dba588540caf306ce1bda730fffa5c75d7395e29d2fc222f1705d00de7a19912f2caaace096cd2c6c6a7e7d7c964ae9917563b70a02fdb678a1407c734e4b180a34d98d64cfe0b946598ce5b569fd79656b98a4c87b0700edc1c64ad7d6dbcf000001bc00000090e5fd3c365b22326ea5c0a5dc9f19a996922f7d49aa7313382808187bc060c5b2e015d9b65e23f837dabf320de7e523d0eec069eaac4b1b6850dfa41bd9636caada69d6f42e75eb17fafbb85fdac13db006c1c9bf8f8b254847c18c8e6db06233879d57a21d420dc3593883287540b2cd09e887a6b83d313cd4c68056169e1b7a1db4897cbcae8604fadd6043d904b78c000000906e60255a6adc6580bfd9781f620f4cd13b5c681e9eec066e60b5d785ea84a96a234991ec5d3a57fc0e514e35997e2285ad8074827dce5fd0e782b21f442d353ab072a5d5d2366c3938f1f45f6ce3334f18bd29ef0d97844498c73a72929b72766270cab01c339b412c7832022cd6fa3621729a1a65fc36a97b929bbf4f70ef03aade5df05984a381a6bb62423d9648910000009045a199afa36beb3a48d8a261c43be660020d24d8265aae53155c27b41a4af7780db55020f443c91453ba6a859feaf41c9213db991708737f96a117082e0394b0e1088881d99897226f4dc6038a8fe76f21672acd1a17cfecc99eee359973d6cf8b2a283b5b1b9d27c38c18ce6c232e381fff33e9693fe839214d25ccdcf1894e961cd47c26b5fd5b771886f11db2c228000001bc00000090c43ebc23510738502cc9d8d299fc6478ea4c47a64c4aee16c5e14acc4fe5bf0009bf12f5983cbe03001a26b6e94514fd8101af523a444553ae827d173648e4c8638ad55aca067312a233e0e5ae916bed23a2e29585e3934a321fa483fb663b4f99a8bb77d03a9b02b78e76cb73dd3f0e0837d389463f82a99d5fa64bb66a9508378165f6fe212ad61e7f8483dd56071900000090e4b084e5bbb7b4a8a915e501839417eaf2dd878778adc46a68bfb88e6cd4d2121b1855b46ac48f6046035159b8d3d52359baa8d9f8d6287f270affcd3de3f2ce287e2f8bd8011d102a236cb0bcbb8a3d0e4d309c502ba8bf058660cb96ceb24458043a9db9fff459631458c5556d38e51ebc921f1bf61d44ddc3708ee2e8f5bdbd63c290b7eaa4927d62154937e2bbb600000090f1b36fa8ee796d9caebda6e71962013059ef50b948e189bebc9cd8fdb7735d12cb2d06fc04c037ecfc9b2d25ea08c466bad41d97c2aa5afadd681fffd498d8f12c489bee322d45dfdf1dd372a5e99fa2104c4b82a0c8c1f636fa057d6af53e29c3b232a4b5808759ba4e6b75a58e77322acf78e038a4f93f8f27432abb0deacca30d89d4bc91f9548c699f2ba7f96d74000001bc00000090f1f30b1b3dea88a07f9a0d1e1460a44f2b108b8abb26e585667a903e76f611e4948bc961565171240a0597707a8794c3420ee472d183a524f15ce18d74e6bb7d5f6cf2760f947b5d09c1f50e7f2da577037302b7bc609c1a4695e05a5de05edb1897eba85ac8a1fd7dfc65a62ea5e9162caa7d34f0291a203141e491107bc25ce569aafd1efa5bae2888eae628942556000000907d03856941a006bf1f744b79788b7a0b10b5cae5bf12607544a0cf92d2893db19c3db72a259e653e30e350c80fe1e3c75f0cacf10be1cc93ccc8ee4929f4e13ac333a65c8de2dd8e977b7b65f31a6c38231fdc667d127e71a70dfb8b367549b088fca435214f93e14702a5c66b3ed55f09a1a72e07643cfe14404cf368a89052c537242bae76d558a4c8d3e9df5d0a220000009036b041e9620bd12e9df593848a0a04053bdd55cb2db4ce8cf01fd8c76d893241e2900b56bf981a650eaafe652c08e677ead0d6e9d2c00ea65f830f458f18a2f20222fc7701fdc7e1575f01d78a6f654f21f23148cd71e58956dd66263dcbec384d76fddcb46d7666ad05f078776df83a1c1335155258e399211a697582e753ffac410e0ae79647174e62b01609a5f8fd000001bc00000090cf68f9df45aac4e7f963f64a78793d1528e164bbeb92a5d20e1b1a057902a906760dab6160d43511bb6fcefdd10bd9bf7262d121240c6fd13b55cda7c41f9a96acd8b39325a4b45d892fec8b707194b3266c85a95edd0aeb9e54cdc8f96fe8307b70b0c69b1b6a2221f6718f05c8dc2128ff75437af4ea76e2229be1d6b4c2d90488c1399ff687909a53fe61ad2a6b460000009098ffb40f8c4edf5e8215483c482b55d32228948e988e2447a773a5c98edc009d6b19741770908a1d8cb32a5b21cf3d2b557d6e0a808398176f6ce2a60730eb992e794d57863359b7e0b5874a73e78cc40e0613e88d9014fb9076f12c387655f1127c2e66a94657bb07df8091ea93165b1b0a72d2d55a520004f56c6a780b92633a8dafe39e0fa16c3db586280df813a200000090f6873fe2138107349532a2fec977c59df9569c490f36d663b77973853261a18f8a759e64447e95008398f3ac3ff24b3de15fe53b059299e940bf9cf032dd748a74ca086559ed1da57191f92e2294bc55013fa4a82b64528c590f2dae6683ae4cf53b23efd2a5e758e03d8b31ece815b01974b5163801bbd93869933afe723c7b7e969659a83a30846e3e9487da54dde0000001bc000000905bdfa911b84b587f383d54c009677b2e7325b51c6630acb3002dc8675b67f3a0136323bc91f1d349a544ec4997315089c9c62b6aaeead058e2b05d20a5c0208148bc2702f2eb83cb3fe5e13e2d3bd56502114269970ed0c8e37210609aa10058b8e8d2b2581450390c69512908c95d4a08fa3134fc3e3924f3eed4924d18efcdf5b78b750425245115f379ef1a5cb6b8000000908786f914d1d57927e98c0b81839b4dd874ca2faba27ad7fea64ee53e9ea40336b77c8d0bb664bd50fbc772879cd50bebacc6884dc46bc956df2f0f6427e7a9e61f8c65bf240bc009e1590bc5a42966b9199fb47e1a1940e75b3fa788054ad501e6ee55df308778f20f005608edd6715a00f78529fe00f27b0dd6a331ad8eb421c6d1b4fa9c509d0d83b08b752dc1789e0000009098f1cc4efeb0223b0a9dc2519d7cd2129372286f8dff3f166ccc021bc108e16693843a031d69556329c8c92896e8b19280358d4737965acc74d2979b5977571493e9eeddf567671feca0903fcc71e88f210f93a807bee40f0a26dc79a326c68a81bf4b6c70078b70eeea437ed2eba1b9201ff4356e502ccb68e406e3c39bf0768165fa75195e523acc7e38dd74589a7d00000e00000001bc00000090cce9d87a1a3f39d3d328d1b9cdab679ff43102ba3266ac6651c893dc27b953d68e6642f5d907a7f9619643fc31733c0d42bdc7c5cb40fd7c640bf0cf8aa7dbe823547212442de4eca49cfd32d158f1751c50e6c2214b43a84a562b70ca69182c4cd5e23cf60596bd6b573742cad39ce6162c5f88172f144ca967ff265e10db46939134a34f51b9ac8cffa73f5f5b033400000090c8a8828e8ceefdd4d3240b7d98363f286f5a5b4d5005eae09e3a572dd7ed4909f76dc65675e4cc693a102a9b9ebac9b9daf50d9682132ecd2db484d14d835913d942e36d60759c55204b3f0d4d60370d0bef6cd6727ecee639f2774d4e8c2ba90021b1129591e9282ac01c9ea89136701fbd937e7fed39b2a66d1221d8bc9dd86e83b3fcce73544c237b6d26100f07c3000000906cbc0e36409a0d5a7860f484ae9432881250d1f07f5f490e358dc8280ad21de7d7880102c1ddc3c129e3d88857b04f0bf0ad962f1e0afc94e66637234e567fa8567774d74b8aba48536c89de4bbeb2091e8e5b05e99fba07aa4d3b06a58df8d17113ef48e320b39b58c0b5c1a88b31701c1210c03ffc54b4284c84ff319f649e20e4cacbf220a04afaa9e8d56e6b0533000001bc00000090a3a4c4cd9264e8adb53b1db7d5cff25e47f5d0cdf1572d9f4c9b8807dff3ae2ecab2bff9f2f8d039a956b789945a3a273d527a64661effb45b111ff286986402b6c7636a24d24938cf168d544fbe9a21278ea96d43d07535b77a0b743fe8933cb1e2c2ee72f576c8b3b0cb233118671b2df70659501dadc6310dbe7cd7b40855d4c2fd90415bb1b5ecbc7bbce3b2124a00000090cfa70b1a20378939334ce8635732c6710849073e6246d026a3bab1b77815cfeb9c21e4ef75668b8eb9c155134d19c35210dd54b7e161bf6db27868dc8b403aace16cd81a44f9f0e67b3aa4a5191f2a4d07ba853e5bdb2ba5e1105ebd92b5e78f5b33ec0096928673a96d47fb5ff4a94d2d5c03ad9ae04548b47ce472cd43c72820bbb574a28c41e46076a8ae7c32fced000000904fd16a18080b540a0205836c75d7bbb808c46cba1a56136a3ad4e4a0755a1d4170b13b70c65b2554b78ab68dec8c29129e977e75ab905086a65c48369da7542f625c0bc60b48dd11196a252626c787471eabe965ab5b3b6253451ad3ab8fb1d014642d949e00381375233f7f3ca42c6f202c037673938d7b2a444e8851fc6acc8c003f101461c3d6a69d2c8f13108895000001bc00000090186f6f09ae419a715dd70824fc8ae27bb97263d34452cdd819de11ff473e5c6c6eb39e5d23ca56be9b8ac3137475509bc5e6b66d956d3006bd8d6301ae994bd91759264dbbe99f86463073a32329308f2f2c4f47cee9fbc9c4eeb852a7cf59fdac80c11cf4797683af5b2d17178c7562138322cd7279397b66e0a70ccea7d3f972ba676eb9780fca53ba97ac00afd284000000908502ca2631a9ed3866618251aa67e6638979435f627bd143d416f7923608f47675ceacde229ecfa719edf0970862116ebbcdca48b65b41cb8933d9932757ceec21ea9edecbc2cb7071981f3583456b200b3502dca0b7abec81f86847ba29adc0ead534cbec6559ecfe23755eec3eb55018c5bc485c4da0ece2cb70a225e431a56b581da559fde1d54d4007889d0120f400000090da7dd9e98cd55538f1f524e3f807647719cddbf2ab303912a431ef953706f8d2300fe0ba8670e321b311fe42a39f32dd27083d4f3774cb71687f62dd05399e38f7bea8b6874b5111223353e515d484e126c01fd2a55fa17119c04749aad4d8513184fc7be79150b525075a6cb92999630c62a0a53d615e78a068e1e7b53081c0eeae206b4346c11cfbe062606ae066de000001bc000000904a7db38800f51e278093de082b9f7af9d9c03366a3fa38062f1871d2f72e6a3965cb25c30c869eec5239757da7c91ef7cab96ffcdfd7517b9eb74fe57ca61654b14388dbcda69a74a255a32db259a61110598e0e1cf5f027e539f080736c4da310c17050b8ca200088cee055fcae41f00d449e6ba7713c923fd78c816c87bd9bbfb103870a268a290bd92077a3cd95dd000000907a10299f4454d75b99fc1e996feb1403d7aad5bb4cd54286a09e5b48fa1bb40487a8947512475ffbac9498cf658e04a18b17592cd2078abfb5a51309b7b55bab91c7eb0797e8ac4ba984643002cdb24a09fe6d95c5dbf4c74e49dd645989ad685adacd6c3e73527181cf8a87421e0e2400b010858cb15981866a51fe0f0ad3790c7620c8cc09e2e14403009a630512d3000000900e324ebe3e1b3480b1bd5557ba407dd932b3433e2c4dc7ac50c1d6f11e11151e0594eba6b495fe92e70c4ac09f7bc2662b665962a2fff87a6313bfd1aa34466523720c771b0b7ee1c6de4a508984ef8e2c0d1bf2a4038c2c65c98e5d81b03e53bd5e3bf464c7502cb9dbebacf0f7d5041caabba854b65f3e8169c8678f279519a52f67f65ce9b3fd96cd57bdd911b7d1000001bc000000907b9211d9d748905a18a500eb6a6d6d1fb44cd87fd1c579fa7b3f2ae93ed67c4ef2c5f3090221bea2e2408f628379e2ab6841e4d573c7b0420b1d3da415cd15cbace56965f636050af3674fedf039bdb11c27a3900ad2c68dfa29dc96e5bc82cdab80bb39492a42111d27f1a3a2a80f37247ad11635dce04aa7e465e8c289906ae93e4b78acbdb83b8b8a63ea4aa27d8f00000090292512d8e7a449f67575e74127cc7a680e3561bff95c93e7ebf974d8c20ec23a13fe7a484537aae82ff1201ffee3ac73db8838dde0c843e0c9d528843a52c1e3f9d90427ea37a98e3e938898e9561b2d2423f204c10ad656cf160221081dbeb94a8b2ce0087c671d3b34c8a1e8dd0fa2094a5ac25ca6969e4eda160abcd6859ecc1b6f390d122d79113ef7e47cc5044900000090774384db97344aa33373b85fc5223d79385b630069f16683c497040cbf66e77b07490d72577ed5536547d7b6f9674591511f5b09e6ac88dfec761e7ec0211eb12fa4215f3645d60e9a846bee6be5e9530909469351cc8d33b081c4851c9ce9c021c7f5158767f80bae36615b21950194108a4389ad0ee603ac8865d4ad008568f5e6b823e79f6bc1b2e7eb7c66488ff6000001bc000000908e11951f7670aaefc054a27dc47323825b1cfa85f029306d29ad85c700fba8e18f151752fde95a490c62619b15067f66e0f8c96ec0da407a72607314877bee52c0a5a0c2fa5746b0d7b03ee9ca70507c128b1fd0a65a2b6fbfd87bb47f2da6c8b65376e3d4a25cad7eab946eeb3c463b1ae8d324739ba34749077c05c5d9246c65eab93c820bbf1887c31a0393ec3a5500000090b26243b1a62cb42e7847750990c2ef643f973b274378e21110ba922e1bf4de8fe7aec6f7f3d5229b4d711a505d4e569ef39c49844ec831a7db08c521e5f3050afe8110a40feadef8e0f7b3f5cdd8a06502d20883f0066bb7c3f5ffa522b7219e9c66eaecb97933213b0083f7f9d92e8b12b2765a4032554fedda5fe2635835f4d592f3b725852ff4015dc50dc089a9010000009019978bf34c085b4048d3bb215016ee70502114d7969f79550714b3776004eef96f42af2a275392364f4c44b07d65ce2200a654967ed504fee1ca30b3b24b429bd83a3f1ec155e6f3f550227fc568a4480eca115ecd27d94cf5e0340928946ec64db158dfec8a39dc47186afface68dac2aa91f4b412093409527d198cb62f1204a3516ce45ad0a325114adbe077c393e000001bc000000900fcb8f6b2a7edd9aca0dacd25918287fc58c9301234ccdbeea6e2c98efa1f4a081d99a19c81f9cf19c56317621fa5315409418b7261c797b458aac42af072cbcdcae95a2cdd9c256ebb355f05511e13b05654e468daf33e0c0ff921a4e5e98a83a3308a3a7e9df2569f6bb0869b9d6fa22b28708f4ff3eaaf7fb55dcb2baef83d046175f3d6b916bb5fb40c2ac55beae00000090b9cbf40833a7b278a00069ad6b1475dfe79d938950e4a79ced292beb450104066013e8380a643a9e11a41c86733b1b70c8bed1c8581cb6eb0d7c1b999c9da9b2651a6a1e986985c5713b252e8162043e1276ab664fd7f43e70a4fe4acd42fafed60d6cab69c49b16712bcadadfb0d22b12f145c5126cd1ff0eefbe5f8012adb565e190e86877b30053f34a9881af104d0000009045e78bd61ff3a6652036ae5e6c94584e4abfef252784e0c359aca3ee9ccde85fa8475edb4db2b588ce4d84d11d5e75edfc1fbff5e00bb1b947cd091eaca9cb62ae079f01f9bfb031a0419e46835cffe801802a1dda6fdc033195506f8501910acb44b98b5a5bd57c7281aae0c1f9d6c608b0483fd957398863e9d28d626fb1e35443d7e73caf2a4cadd9e934b6e237da000001bc000000901e07a96bd0419cb16bbb58afc41771dc1d21dac0147ab6d572567994b47198339f1e9224e733443eeaa653386b0694e0aff27562b8d9a9c28655c83e3f04d120efd11e3bb0d5491928ef382eea2427340a1d92e5f2a95315116aff23f783db3c776bce2b9d743a311b9db73696f456d402c7357569195471b065ffffd83a82334f24804ce5dfdd1be66c8d21714579620000009080dfcc8f7e455573b0f74ed0ecd7940c82734165110682467f4c4d5b5babf58bec1d23c69081d420397adecfee162fec22c88ebd33486a6aab4b30c9ed286bf7120f738e909db885b3261dd0c52d4bd31b8bf9bda64a5cbf1abd28db88b54bb2020d81f61ea868ddb41f002b5fecf72c2fee9dcc397605bde2d6491999305621a25cc501fd69caf4853945d87ad632db00000090a7fe1c9131a8009cbb5f8489995203ed56a673d999adc927668ccf9a1f21ebd2b7925d626dfab08f1ea375c139be0302f3dec1992e5545926cae1802c8a3b274f871296490e6eda05694ab7e5711c2c41c67654ca899137262ba90100be34e70cfede7874b240747f52149523c9c43ae09f5b7d45898d8cf3f13ec6edc79f324229d6bc8b6bad960251a774691154b5500000e00000001bc0000009050bddb89806c6d371adae059837278d20302ed4034421923ea862538112e31c6388dddd755f9ec9c076258dc83b84f5c8c683f1a83c7ae04d1723f094f751ad7adab8471c39681f6e5750e41dd37c0d929eb37b28ac642bfca4a5eda6ac1da2bc8a0297b9c0ae62b91f229d54eb21ab20ce76da753ad2b6206798cd64ece1ef23ec7bd050f07f24443c600f39b233ede0000009018cac018070a49a2e3f210338aeb63bc956831c022f19196e684c576455938ce88fc96b0639dd026160467daf4cf174243b3cd38e7de7a2385a42408ac91974d49bd58a544e5644b4f215c0ca76341cb15cf8311882fb02fd13665d2a3de7ddefbbd402795ba9907e48e1711440497830cb16746b0a566214dcf6c313a5c7233565b4f58a97f1640fb055c8a88a0a1a200000090b0f011a48c51a5163271f275bfaa54dd92507db9814793495b43590ab83b4b9bf39091fdee8afa438010a09c747e6f90ba9a31be6e9fdfcd66694511e816c097e8c9288d762edd82233ac6adf3cab59d18f7d1b71e8cff0b9ae7ff0ddc9d9e905236e5ba77876319dc3fde6eb611497a052f07bfe5d634ce1226eb49d1b087531387e7a7f76310c3db56f4e36aab954c000001bc0000009038c6e9887e83979ac3592844e1f292b2d5fc6c7044d5cd697b25c1ae62871ebfded8c6ca7974175545af8337d6a0a250334732a96a6682ea353edfc703a6d18d9c08f4a5c82c48bd983f4f2803c29a41276c2bbc3d6a0bc1dc36e32981de4363352d7f37628ee4c89c2b7bb1126068d82bd301d72a01d7d40757d37207cf8ee5c3f0f838dae508d5710ca510e8e6e95f00000090fa390b3c91805e660e73455231c9c14aacc5d89dafe67a4a8102cfaa6d98a2e1448e5ac6e9e96ff4e6f7c68132cdbd24f0acf7eb757b09c9bd42e850709f3aab441deff33d47d1dec941533a8fb7548d14d209ec6cea7ba1abe32a872ebe0661c35450492fddaab8158fc122225aa87500dad62e0f054dc361382f6390320c194440980eb54e15c79ad74510ff5517b50000009042dbda4df1899ba1021fb0b4d8c7df52ea339e849393bc85e1235ce79e9f16842b3756848d62299374ec2797305c1df4bd8aab5078be5f15d45f29350bfe1e639d9d2daa7bb4f6665c3fcd61ea8d3303023c4434002fe0687b995d775d2b9d5c920d6ac9763819a7c446de39f3aee3930aa6326ade19b7ff95a97a075db0583480862671eef1d5702b70f253345209c5000001bc000000907767e6fa5e52d4a8cc42952b523b33150245f3ec7806210ac990fcf39c5148e73e04beab8076e804d28e8a10cb4957e534538f751e1145b170e09ffcf409ea9e1378c0f3fe7923f24568605007d194a40419e53487bd072cb5363fd01c1d81a4ca6fef8cc9368a3ca17536c16443d28a0784fc56d85cee15131d0c054507f19b2c456626dd316d10bcc4764fe5802e7b000000907c80f7661b245f02bd3e5b605cdda50576e764ad374c12662d9893df3326634775b52b89a6488f3fa79100deab6eb5ff0444f32b1aa6759951b53e2b2b8cbac8b237dce13f3310e8a0ced3e021149ab8247911bcc390dee7bab5b0e8717eca05c149facbd4564554ccec881cccda04b301fc252967dee15cd0341a1c59b564224bdf98dd924625b394d7e61cf4a82178000000903de2a43bd8b8575aa7f5a73fd07bacfe1319b25cf3b58cff9b790bd460ca0d461181320458f35bf7def65f92e6a6c6ecb7ad47c590cca136cf0937fdfc049b8f77e77c609abb514a84b9be2f5f80097c2c1c6ac7340bb7c1cc4364a0f2306d2994b1fe09bb3a5bf22ba092d649a6e96f228e22d42b96235600d29c7f278f3129c0032c914df37df4033c31df3e4b8d1b000001bc000000907956f8c61a02c25812e8e3bd46ad37ad0b12bfa7155631a82a5e40574124e32ee4bb8447f2c7a642dab4fcf2b8b69fe7dc765e3746fcff466f8c86e61951b9b8c4d8c0543e6e2c2989c2a49bac0156f104a1562121d375ff3f800b4a36e7935962afd9c62d888774817e861ef353ad1a283ecc5bbb3b2a4e6c7b065620dffab7f2256039e7848d98620f7b6c3e9837100000009034c3b89d6064f9e51847c078742f955e2806343e19d8c4bb25135d5bf041a912b2de8fc2e7c6a5758969b88853a3031046698c379b1f169908ca1f993da6beeb27e23349820392a526efb286244ef5672494a4583e203976caa8f585ae175324a31f08115a1a895248203a323f2e8f6916301dc1f74ef24ac61bcbe4e224c2efddee19f87d221c314bddbda864a96c7e0000009037a6820a9758099dad8e3e32aa4b97f47ff62c8c193ccb519cc51265d2311e1d8b2330b094ec1c700b5e5a21437111f296ec6e16d34fe2f1a93219341e5b514f8fb5cabd840e5a88b58d4004065741f00c3551e0510d7ef3124fc69017952b70c265fa3514a92c278d0bd18ec88d008a2b90ff717be49fc26060fbb946dce6e1755861b46bc3e74462915dc878f79e19000001bc00000090ff8be2e57edec27485d3666dff0ee490962f2257eacf3638cc44a08333063526d42133196bdaff2c41ac73b8135e6ac5db29320af7149f8ce575930e8464dcc6610f93d26cbaab23618d052fb5a40b6d2a38d7106bc74563f889ba5353e4c5b2d1c7dc61ebea76d1460f352bf46d220e138b578aed2efccfc0287fecc1e2ca4edc9b656c59fe28d3f38f50e13c062ead00000090a81a22e099652a1b95eebab9167c1037f51757734664209dc166c564201bcb7eb8f2e23b1ba452500cc767c24ce993f48bda3a083216d6bbcfebe54167636513e0df3847bd292f4c2a4354f7ce1c32e10257789c196e2fd929c6a8fd916a86ec6df4286d2fb59215ee37eba102e2affe1329b912a4787c3f185b10f03d74cfd57f658bc4ec2de4a8566a8c0406c3901c00000090e9fbb5a34e89b20d7fbe560f945218d2166b624aee3a42fafb10bcb7dc9dbdeb58feb0d8cd51bb4fb1c77ce29eb556224b226fbe831b3432ff25e9e88ac5cdcac32239058ea46965483a0e9da48a022824383480c04a3c062dc801921c364a0ab0a46692654cd96bfef8c10f8c9d0d3e14934c1f33b543219b68f5d810c886314625b4c44dd85bda0dac8a14d932bb3a000001bc000000908470eb0b1f63032a6fec1fc5982285acf6676db3edb403f62780c2169876ccae974a1f1377148773daae76afaecc0c2d19dfc1f0a647ae3fdb632c88c2888332f4f8f8ae1b4731da08c8a94dc0e37a6505e0722d5111b362f15c3f3b637f52af2d0a3382726cc5b7a369de69429a27452eb2c07d46954ad6dec05c5d103b12a21fbb16b896b605178211986479777c7600000090d70fffde576fdc6dbe3a89182758b8254df6d4a0667154f6ef37b624fc1e82f7713971605390155e1f3a8f7bc0382ea1ea0cd2c66d51bea3dba5911918807f13a06224a2979cea0f5011c8ba4f4dabca082d87d7a9ccd3ac16714ca9381c2995b047a61fabe79f5437ad43c7e7c75d56061f8274a7f62f3fddcdd338fb39a1427308e72e5666fe1d2932763a9733b0b2000000903986f85ad1eebc1a7d14c6926d9476e474caff2ef2728a5d090ff9bd6c9a1e686f342c01656552c7740fad5512294afbd87532a709c934465fa53e6f63827c933ca8ad09c474bf3419f8336a483e38c513a8b1075e244814c3a5fb32d0c66399ea37e850e9789df63113cd76090343b71113f9e6c230b989c617aa38e741b25ea2ed75a0069a72188286b350e986c9c2000001bc000000906621f0b3d2c51329c50912430167717bdae7f1534dca7a9b63c0f16b53737640d18ac00e3231eca8d1fa712413b473d10795ba37c4acaf2f21f294ae611be7bfaba43a43a2949088cfdd5163e249774521e05fc2f65bbc60d43d95ac1a1671eff974307a54d6b7a87d050c92f7df112d0453c270451af89c462c9ebe5fe85f8e4d924ec6f6ff06a1f03c9f7b5dd2944e00000090178eb040c11f4ed2d2370a7843c5c5ca43250c0d6cff6b29d0b38ee2415322295aad0c2930ae600d35473ec4a0abd758d9aa01280b8b6f57fc00c0d88629b374743a5f2d37a96e56025ee60c6241782c02626d50cdf76651d1ce9ea774fdadb162ec67def5e30cded3a21d82600db29304a52079fd3ad18637b6171f21bff14f7e0fddb1266c78858ce863cc09e7ee2700000090d55f7d2c49bd970382e2749d0377210390e54b4fc00017a69a010e946e917fffafb211c46629ab22dfac113c5b8c2b21996e94f8254fc4b05d6e041bb55b022872e3243749f70706db3e43b42e4f7403175b9464d1821ba89eb5fcd98e6ef5bcbb6875f36833e6b250e8a0fd1f28eb6d1bd60458e36af25114af9bea7d3c655b3e4cfae23db5693635787f935c0686ce000001bc000000906db13c491fc66f1f2a0b0e987b08af5cf23edb15268ba7cf011568b2aaf47ec599c9a3a3ba79c5fff0a904d678f0aad02ca4f1d0cb0dc76c510161d0756fd27a20a0c3f417d0ac2ff4d8ec36fe14220204780853d3e671f1e69e66c0f8d9278c3fb5e60ce9fb8afad7202ca83e11209b27fa57bfab38c2bd342c1d5e8a3fd2c0bcf296450df7d50efe94f10e3a6c0da50000009031e13c8501de1867d9626afb8d730f170acbdb25c69473e2e338711f3af30d50ec3aad4ed0ea9346c05fb516068aa58ff98b9daf4c1f50b587d1d88a11f3d10f2e26aca82830974ad6c3d47c3d00714e059f17fda8cf86556c3d8c603b130faf6d84393e366e60bfc850ad8c806e39981140efb21b69ee915eddb092f6547b71ba594618f4ad8c56579604284ca0d23400000090cfdadb6b817b179cbbe5922525fc89af0973dfc73cae4006f0740f2bc814b1ffcd0956c526cc5d4f2ba7c1dc407a1546d002ed4ac30fe71761cdd39f01861b2908ca2b423b548fcab9832f6c561bc03d0b281b3bece1250be5005ec1eb757354719cc7ec761c6c7ae07f362ad90e80491e304007bb9b3a7dd58d00081dd5a2feca95043e85649db7ddab194b695b925d000033a000000ce400000128000000909f8f0e6ace9a2c85b0e1c6837bfe9bdfcfdf641a7a262f3864f4399e80cf08b40ac2cb0dcaebda977e10142fd70904fba55dadc1ecc12bbcf26e01ec54e69e6ea74628f27dd9c70a3e1611d284f8c42110d69d794fa40fc49e2cc697a80a45abef25d0b021dfae3b78bfbd4dd670240c11c71cc314c33edeb103e2b459d6f9e0a4b3f601e3ce90e0bb15f2d1c502ef5300000090b23e3e3687dda79a91b4fb8f55e67e22ddf7f915ed61455d0236d61823b95d169acf2c10438b9740c06e90ceda5954b1aa3be810d0aa67cbae4e902db6e2b64080149f45874b7487712fc8d5cf83e9f50274f335bda58cfad871da2677178381cc39f7ed4ee2be03acafc87bf74a4d372d19ec1c8f8e5c6771637531be0e857da95da742b52b10eb3c34673b256d0e030000012800000090c47bdeb67eb0203b950f0bb40c35e23189b5f2eceda303f3e40b5b05a5520b8feb644a875c8c1eef0ceb59f518026b18d35e2fd4bf614a074fac8ebbc3c49bde2ce67be47ba476da92596d3f9d60e86520dcf569a71311b4c7f349b9a66992bd8ccd99a4050efe6bbbfd2a1f0c5c183a2d526c5a4750dce71adb548ce813695bfd372e81f33519c3450871229ef8559c000000906a65a1f67bd19b746d79217567e8efd957563a9d2dcd22ea23f8ceec026ea513e191173bfbc16aad3a58f32cb2fc5520ff5437e744f20c7b8621eab1b6829d11c2c9108f5014c7c7e420aaca18292f57237e45180bfe636e6d6173fdd29750ecd2b23365eb745103f4a46929ad14f42b1bd2567e4155b0a1a2163635cee2051154a753bc063f028b321b002967e0e8e50000012800000090702b6f54058ee8581d5c0afc9c8616c274525a0e1ce6bd7dec36f741ff75345c1b212e3d07339b0a236a0f527fceb6e94c558b7b7de1c569bf04c686eb501106e74d492bb2ccd127d11b8919b969c25b1b35ee58dab892cc0af648daac3135d66ea4db63884ab597c178d2abea58277b0b8855c1957b599272fdcfbdf4047a05ff7fb14bdc18b69f0c41de89630e9e10000000906f0524895f94a397e8635a3b6fbcb20f766bc941a622ce0af677b706f649fe9ec186ea93d4da5fe2ad547677d2ed84b18723f05863ec68198ae2d2d8da6e30e4d757c3b03f5ed2fcd0600c08c3f46f72179d0cba043376d1304ae9c1afd14709c437184a6e7c4ddbcbe7d4e472ee1cae02909c3e671a109db5ac78db6fa93c8fa0f2b13d46e50611d7c8108c13e10fbf000001280000009050940efa17ecd2980f13ae850b62c501c853f2eac9f3f69f82468ccfcf20cb814f93c2b6db4fb508c1009d472598eb86da535dd2734f8f8f068f38c870823434794ce4781f9d9f3670da1e33f2ee9e610ba15b16fbbad5a99ef4d523c8d32d30f198f30bd6308ecd4fbe56ab64f2340606c858a88e8e51230ae4146d78f604c68c36354419494acb49dbb61b2f673cc3000000901b3e3f99917a643a515f211da068d8e8c17adcbb6be9c948cf16d95781badee521b289b3f56bfa1ea7f8ba149e012ca1fc54ce9b6be5d4d82ec3f2428448c0cb9f4f2458d7954d7ceb9a1a125a1e7c0b185a70fbe114b9137a0f5266e205931eace0d4a4bbc869c3b6e6785b7ed1378d05573a1020f03f28f8d01b09ddab509d7a0f250c9a94741ca92c70d4d889b6df00000128000000905f840884679560a8905c7a07d3c122c19764b9bd701591dfcf77a449c08daec98b0bc24e90a98191db9b60bd305076b09054158c626dd5b46c112144bee2d3594e549d67079a4364355870e95a6a8c440f7a27c6af7ea0262baa847dc4ef9945a19fed51e1bd060a2ed5187f616512142f9af3cae6bd3fb3cd9dd1af5756f4a8271b855d7b0e076bec5ee719626fa3c30000009076cf1896fdaa5784ac4b27ef7c843fdb9760e734f764881010a773cb8d558287c6882d07fc05465ac9e876aa42e6f162761151fc6ed48efe6ad5abbc1039898b4c655e0c0f62a963e75d1cedfa3485f92c7ec52539c534aac73cc4fbbbc9836c2e4f08002f7af1f8711af75b2cca23cb1929ef5578b257c43e9a78a1cd8cc8269f4371f34e9064b1fbba1ce2da689ac80000012800000090b08c78f040430df1a5a9f08442755337542415f5bfe2e9ecb1a94ef00c7a0d346d037df629667cf31e438e0e855cc7ac71d288798161948b53ebacf234660922e532195cc7e8a9926d5ed129bd97217a1b170eeb161ecdfa24c5aeae58ee9ec4347026f0507e75589d0088ca004c1231019e491eb908ccf83ddcbadf9be446b8ec5fa5ffb287bc85f8bb1e13beb66617000000903442e435ccbca2080536d45d8dbf4ca789802d596d672a72fc96f805f8fb86b40b31f4dcb94e4568ae28f6bdf097ceaccfe82b06d73b3292c2388327df70ba6270323d5e58c6ede284f0bbe6620a3ca219ecaeec17d9f49a9ceb34d46f833a8f00c0201d8377c914433e1489e48221e1225a97ce45f4721e35310a8cce1608943d9fa0e0c9fa937c3b62954358248b660000012800000090c8323e56ecab702ed7bc4a60606ba2e436b6ad8be22e985a1dddf86ce32a7c9aab444816441188aefac034d780909b74849d1470bf19ba1a3b870bff9020220cc97b43cbb0c36b6188dd0eae6e6f8676169a225a5f8559408cabae0c613e75424671f1897fc4cca34569e2fe02d85c672e9759b17a2aafdc7206590f8b63812ef8a1805db588e277c6cfb57005ca193700000090b404f05067f41cfa67274ee57679ee2ae910bd04cd0e643571cec23141c2ddb9fdb3b36250ac22c3967cc2ce8551d76cba516512fe5319c10948159bb0211a73505392cb28b68c8ca3368765ab98d01d1ce8fa71d5098c339ae26741b35812380a6cede0b215e3251edd4229e77d82a321a8a303f777832fe8a9ea3f4bb4f95ea62deb50bf1abaab822864587fc3b323000001280000009024db5023bca8979f11943482afda456f7b93e405844ca5eeb5937c73157a52f0e7f320eab961fbe481e96b5b8cdafc819cd8dab4331b6ad508b55f9df55338e4dd831a601780a032bd8807840c1b98ea13dd030f83696211e8e5ed737fff5f2b9e69fbcac36a83ca2edf94061b40bfa52bcdb72baea7a8a428a798de6d5a3c96051753be3b1c9802de503728f8d203f500000090742c7d963083725102b72c06708f1fe350327eb1c0ef106bd10e817750201e15bd80d8536d8529cfdc3e67bdbc96206a8c708455017ae4b556d637bf7335821d924194ebc0488cf6006021f9180ade2b016c8ae945bfc67fa805e4c364ccda6a741f8e8f28a543dcb9a06b1cd499d0c1187ecd4717414e389e5e007421b12934c7694c3d751ec01cee068c44db937ec7000001280000009036f4d4f139e83334efbea77c0e516da51139f1925bf9981d798509fd046ec775e2b4eed693249e82199ae189f3d82cf913bf64cdaea7fbd34b5a20f3faecec78bf3d2ba8505dd4cfa4a4e8d301abf2832d5d7ff1932e0ae2aea76c8983303b52c9936c584c5ecafe84b4866157b6c55f208d74c2528961e4cf4b4b95848290d88f9cddd1cea6d67b54fe39617a58413e0000009060fad0bb132545deb65c878b0ce8b544b52583b5cac55466a0f14722d476ce46fdbf3f564ee292ea64b977c381bd17707a6b06a5072de4bbd40b8f742d2d0385c9c7c2241300eed0a999b4ec744c71c209e75820c3c93add6e6cc5123660a0bfb4933732e8d23b7d3ca25cbab2720bcc14bd115eacf6349000956fe778f4048eb418dbaa5890582c959fefc7575467390000012800000090176107cf7e4a3c1eef79c8820f3a40a2dac02ce7e22b6c11c24aec8edfbdd27a078bb529c6e6e7fff3e8923a58568387e0894cddc199ab0f91858207c73bee7dc11b6c251d7a603ee309e6f15856d82f03fd317ca3d65f325b1d7b7f5f560fdd559d92879a59074f8d22b5f1eba9d1c62ca2cd29939327ac181bdeba04407d50ac9b35c8f254c66535e2c6d35889c597000000907d8d646fc5ed7dda9b44cd51bb81d328bc96920de63376b4ea6447dcb67026e9fade724aa488e8bb9c750c835842a3e258c0fa307e672de5f0fc7c0e9b79d58dd7e5509d19214bfb35bb9b35dab94a8409c11f52c7c0badb77ad61b7834db9bf796f79461f174ecaff7ca6f01786616d203a5df354d8de9eb83d717cc3a585e7fadae645444eb57f43fbb19c0720784e0000012800000090db74264f37d1e5ac48bc360fa3ac1f365840a11920381d26670e2e69bc05a4073e7bb65c58566f0b0b594669565e8e529ff5612959f8ddd367adc660a189f0f5323baeb160dae229aa936fd1cf3ea53f27c77f541cf85b2dfdb98d293cb2bff8d16bee86550778cd82acde4b9e00c4bd0ad4be05be20999e61af2948f4d24df761c8e426dcce96bef9ee99a03d6d61eb000000900cd0763aadf988899b32e651883acd7197a92968246d4df5fafd537c72c0ef83434deac8fdfc9f5b9f592768da76180f3b7ca701a607d2530ab1a7cbfce99c4f733459b5da62189a9a5f3cfbc26637c82fce574a08c60e3ced8f24eba946a2d450ae7193955645a41515e55a080f267a154eadaf1ec638141e563c16a6aa35455d3cfb164a49115425c69ca9eb8c953600000ce400000128000000903afb72cdeec2a47f1bf935ada706a6e1a4d6b576d4a94b508fa1dd08c697611b2d6449105f66efae08cdb3f7028234ce6ee5210f04f031103b9ba05afb40224093b5ae3e5938b0a114bc9005b43a3479287a976ff10d30dad9fac1babce35d8218441ab6fd35f20a7ced3cbf8c9a2257226134ae106787d34488ade600e2ffcb6a4547683da6bf66fece37d83364f31d00000090e55d01f0eaaaba67f08b09aa757650d9069d2785bb9e1e6188c9b9006a9db9a4b39f17c8847939bef971653bddd12d2327d64ddc255964faad3f9c304c227b458618b871295685b959f184ce4eb8aaa81c68ff418a89b0de0ce6130cd80568bee79390cb5916bf12c9503590109c0ff419a94015bf0e01a458cdbe44bc377902449c6a16eed79d779bf753ea5635d7d40000012800000090d02006c4eaae045115518940c9ee0cc26b58946c4f6d8d81e9ed0daed3e838377bd9ffba26d92307bd106f4e1074973bb26fe542b43afdb16f24af4496c40ff62806892de32b92a6bb2f85761c7da8512f9822ba5933f5771510f41f5214b17800e017c5fa858cfebfc62247a796a63f08d318cda4ed4be84efb24c8c2bca8687a50bbdac14f8e916f77f80ce430fb330000009029bd6bba2d30919b80e1d32fe38320ce270b13021452f9366600bcc5185a30f6d4c385f9cacd4daeabc1559a90c837fd82494be962c633da9650440c6c5595fa4e1ea09c5a38048662fe86f85d733dcf175526449d8728304fa159bd30acb3714d604ac6afdfe3bb4d685f2b66ad696e24156b3e683f38fa846effe4cf020094ed31592094147ed5154e106173b819eb000001280000009053b9e98ec02851eb21e60488888e73ee9f47549e199327aa34b1d1f90ca135338c79bf0844852a2eb7414f7974d883f741b18d058d9ce31d939303245e05c19492cbe1f784a8d110ede68175699dc0400ea7644e81350776075cda6c1661a6dba567950d4454fc2ec43c5fe2a0906cbb06ed12cddf328aceca03e3b4855f5bf7dd742e3c3d3117557227e874b3e8182300000090be2d24b8bc1ad75c0dc69849e53fec5259a4cb6c367597d829e1b7bff7dda63e77bf3d096585aa139d14797b5d8750a4ad2bd13684190bbbef0361863da876b87bd42665423a42e22fb3060dd9c73f900fe1b72ebc006d5207fb30006150188c6f0c6b14f59745367dca68862f61fd64143a1d6601e96d56ebd298f4b90b2df73215a6fe8397b194a19bdbd3778838c0000001280000009061b24e8ceb34e7544d129a9ef21d5153bc0b8ad1e3030cc9c284f53a895703cc495bb72ff7b1e273961b4dc9380f780f81eea3f598857b744cd330ac15e4487e76e19b83faae1486a8932c6fe388bbd104ebf68c70862af81f17867f97d9f5429f3004c878af466f41113a337ea8d42625b48ea1b6cb49526fc175e65dd0a869734216ed12ee7344981f3ee15ae509f8000000909c0fb44be97b4838d4daa152553b77460faacb7b06613398d7aef1db12ebb8eb5316e1b443d232f06478225ee82244c0f19ffda0b5cb4428ed328f713beeb4c677d11a7860c83456231e63c21233376d2942e81f463d4a7bfb1e05501bad2d78716f8dd45969b88054826ddf5a4ab41d1fe8eb57d44df5ff0817cd39b1023d3b1300b422d38594b1e8335068edeff0c90000012800000090f7fd108f548783bc9551d0d463a8bf7f94a1e6c8b60fdf451f3ccc606f8294981d3b5ce672df54868e27a0d8c74f348c5eb3030aac40cf3b1de346cceb7fd9494ce3bb35881972d7f3ff5182877dbe210e4d4d8bcb167849ba888a13e210639448d689ba5995a2cf6266d928056eb57c13fd22723df36937f86c0cf881791de7146c0ef65286cd69df8547c214332a6c00000090107981bb8f3aea1065b9cde7cce56d12eeb6f1975473b67b99b5d7905cf13310268fb70e8d77ae3c05f4d16504eaac521eb288596375ddb8bbe2b995b563ac45d14476c72141c4a547496c1db9ec803f0af37fc493bc765459ad57f11167ef07a56d7ae032cddfbef55d311e3c8c425c1d5f508ce6dd96b32f5541b5293772a56130dc086e6bbd22f1f14c33bee5977700000128000000904aea85ceeb0100ce9f1efe3220bb32db922cf977772d43c9dc1f19c87e7d98a43d2d4dd91461cbc408239b7129aa237d8f5706cb253427b511c55b8f8110d04c4f75627cd8f2aaae43666df85e688abb2b411b78b74abf27c22bd96d667c113d6ac58fd22b9c7de263650011fb996c991379f7ee71c2db13885787b6aef36f6554e2a482a11f00e6b2f972f7050ea52e000000905dc0a969a008fa8b4f1dec7acf6b73b70ee3e47f03fac413035557cab3728677dba8c647aef9ef6bd288376ce693f9dff555a7ba5d16a3c6ac032d6a3f07367a6b6f9aef79f274229b44b49e74c4d5a70ebb46c5b566d049f63a00cba0910d271c54a1fd2dc3ec64fa53c397fa015afe072642f0c50cb747fd7e48b670f7ba3d433a274106daccdf396ea36e89ad989d00000128000000904d612ab7845284ce62a5d70cfce81009b375cc463bc6b4ffaea4b945ac0ecc3e0a9761c0b79f273efe7be8638f5d1214c9ba7b811132a5956e5814925721c70c9dd4a72c8607a93228bae77a151bfd9528ee829fc60f20def2577aa5063478a969eb41ed43db4dc251d94580ea6d57ed0883dc36e6b90a9d8559bfad5c6bcb8249995f89b8c7d7ca876af23a63d5c33600000090d084b4dabbdbf002a2ad9e9b451d41e78ab165c3c7f702e19c8ff56742faefd0d8f7ab71bbf7046d1c6759c0ed5cef66049cf4f12682a01d197682d9feff8675c006e2e5b99c06e7f87ec28abd8701071acbea1eafda92c77cb9ef64e3f4c80ccdf4a2bbe98841fae72e8bff58785d6f2ebdf38676288029cf0430038dda9ee1e0691a4ff64145cbf081b44c35b3a58f0000012800000090fed672fa19c5a9fdac804a848f869fdfeb363115e5e26540892a271834e433203a0ce7667c3b203cc1818d7381bd9204c99cd8f22d7f1f48da5a079063be0a5c65a65a1f10641cc5a8dc6f0a73d4a4c21caea77de0d2fa800bda8b62236680f372fc9cefac781c55d095df26f7540c240fa8bc9c2733cb9329312ff6ec7e1a2b47403a75ad67ea7df93243f6410371b8000000902a3b422ea518dbe9d741c4df05062ed74e4f1a7c1cdaa251fd989bdf008dfdb9913b4a0aa120549e6481d925e522fbf312c7e71e437b6740541bd4042d6a43bb04caa03ac96783ee6668097107a6822f1a6220290af9e64a6a3daac8e49cd4a92e2e4281788433ff7751265efd25dc8b23168871c86c25ebaddda482171ae243097ad2442719b309e4bef5866d5257ac0000012800000090f6fb1a394b4fc4d8c67dff4c8a0f3cf317d8e1d8a544381c2e4f608b6881b61c279844d2b20be38aa65786e01b06598262c080ce23c3a4d43beb19c7e56f13b0034284e7e04ea4e7bc0581a1df91a2fc2b2eb63ded7e27db61178a4db2ebff23acec70e7bdeac1c5be55a225d28d794e00ccb5bbde557906d6e8d058a62e4a962ade0a495357064b12e13a6a656b19e4000000902998e811887c2a59fefe44a5ef8aee9b5bb61aac5fb000d6b8668f8543acff09c42a82122a23a92d53749b91f2d61b8290a2571d5f69c4d7011e434acc40d765eda4b06c27f2fdea490af3a30f219735073ba046894540f7ebb006fe2a56d87c722838a540d12f7fd6a83d91a55f94f925f6e6951e1f6dfeabaef20424777b6d163020f97bdbce40f95e4366362cd05100000128000000906cfce12e4210cbdde53e910b768b0091925a9035a1e9dca4e8773ccc6be5749368bb7f4eb080584382ea35acc4e2df39385648d4e04bd6dd4bd2715a2e58f646fde89d75d7dc2716afad281461ee7d372c002ff6ec7445af50544b2b651402a23be2cccc1dd2b9f0efa5720a918b9cac0fb4d2268b3ef217f461782f7295446e2d5af95f1535e557c2054ede0b95a58e00000090830257100c277e93f3c49f7ab082ad055cdc67b0141825003b9cd3d349bdd02ca5a0e8d02263be0c4869a6662de376f16b3f51587e3a0486e2abefa3e86be4090e7f70bd98e6b8e369f332ca3a555eba08acfab520870ac5e28daca60516f10f3cbbd7d5d7a9bc055c22d9a60dcd063b2088e784f4201a6da3a72a7109350e0e50afba596a2cde4abef655e196536d6500000128000000904bdfdedd1e441dfa9e136bc325e17eefd8533060f61d5b4eba53c4298b605b6c820887e77c1f2d80167a74380a324ab0891b385fe8e0d7db0355d21cd79e286cd92a1905fa35b5c2591ccb6189a7b25b2f643afcc58f0e60679134ac8e4e352a21abf33cc9ebcf6ede3f9024bd4b71d5189afbd5aa0970977159e383e05b5310d94d060043e1583f43b0d0c89313bfbf00000090cc7b3670a5bfa40d016465f019d7d2af8cd02ce946cb6043aec4904781a5f768a672661e4268fa54ce8f5dd8eb3b3deae505c62ff556edfb87bbba5e4d40dc2db8a5702a72980e4f2e6879eec88b2eb519068b54d138aa1b9878212212a23995c47780b94b4f323f449523755607d9f91739abb31df8ef2f415c1799776d60c8baff3f44fb4a919b773a8487a1f97ec400000ce40000012800000090246a0d106a08ec9b5c24de43750ef0a453554bfb753dc1bd1b44d76c83c910dc9709febd669d7f4708221c6566ad4f3b752ae618d5b63fe50aea4cc7c8027e2604120a79b2712f6a3edb322ecccccc8e0ded9fa60da1014d4339819cea3f507d8e0388cef979d889c1bc43f9f8b27be00820c059595c41a9b7ec63ebf035467a5eb02d9dd6770592c3e6e6b5b59ff90000000090248d83c678092b420119b2023a8823eef838ae6eddb4ac214eb2f385c755ae3cfd292f480c7495d98c1a97581ffc4ec910de7e1cee8a7c9fb0c79a2f0cb3ec60a2aefffe3f108ae87c9e920826700d7127b5d29d9538a7c7803d052198053d0dbe60eacd686d97d02c9f91e558c218a22ca07defec009d42f301e9be442e4cab8de3d6806f2a2defa3d029a9d1e7a03b0000012800000090c947d1f7d0e8fba004eea5a277d746bf38ed5ea75219a9a00d7bd60061f3c8c96ee19187f2074c4434357275ab8df7f3be32404b5462f58878abb847e81944076bfdf875d8259ae9f5bdda689669cffa2f32f2b4242e723d1434ce950109f634baeba2e1ae441a1f170ee8001241d43607e29f21ce598cc9ace7c9fcb293ee98cd771c06a90452485bf2960e778b03c2000000901271d45b7a0e31ed8ba6c1f4e5765322949e4271eaedc6e8744c7b50dd392f98e4784b69d1e36236dd904180d44f664ad0cf9e2e7fc013b9317d095d7daeef6a622ed3f74f06a8ceb6864d4d40b7377102609e650a29204bb2631d787371559b68c131e61333a9583e8b11c64fa181b7114a5889c5dce28a03b894901ca664de01ca0b3187012a9ee30aa500274bfd8c0000012800000090080eee5c08e5b2165858bf7941e34b1c0d717f86d45527b00f6cc5e4b650c331c39d029aaa40138104ea682d224432d15211421a42f71fbb8003b4235b83ff02ca7049f3809cd47737fb94a2a94d54f226600b5187f1ce2f5394c078cf06670a3249e0738e9d170e952ca174bc49690b0069e888bcebb11f591024e564bdb1fb4f4bad91fb2dadc7bec3d18445b43d370000009055e5f35e8be8a12b1379458b114b88fd50ab46f2f773bbda0d97734713ef5e9a606c28a7e8b69ff1cbafa0ea3e281d0c80a2f2b3f6646712ba95dc6041f1fe157fe42fd03022b10511ab55f998390f5b1a417cc74fd030c667aed93164d9087c351cc11f46db56298d8dea943ba920070ef0aa228df6701eebcfa9485c12c79ea07ae7cd1c49ad151ba529a8ea2dcb1f0000012800000090b656cce2d7cf095027f969dd662bc35a7fbf7ff4f4a36f26c8f444b429e7ea1f32ebbc8b61d294bb0ce01f0aa8a79638afbe11bf7aaf3a0860b1179a7446a4601b415dbc49fef8f2cff00052f63d2a7b24bb6746427061652664d449c145012f9c77a29891a54e27d9f89cad7c0a6f3d16e0757c54171d8bc38a56bf254985518ebe42b99a52302435cf36647d8178c500000090d216199db36837839fc6cc741651443e07e5ab902fdca004f0f728cdac1cc4e17000b64f52f8a972517e7b7446c609627fb04b84fc871b68b62b97d5092fe97519e19c5abad064a4fd6533c970cf8bd02c9a870fe6745678a04cb5fd108f93f7f2c420e138f8251803bf85d31edbc50d063660f9398011412e41b42cce9fd0edb964689b4b6fc0b016d7814c9fa0e1ee000001280000009082090320bcdeb7d28388dc67ed61d02475ce864818b0b5d232143a80315ce05dee400b69ad5fc343fd31c7490978667ed9da0b4863317365db5a1eee2aaeaa0721cd6997c7c3eeec2cd3838ead39c8b51e2c9980e5c46143bde338449b6a1bd9c9572b96ac78ec9dd87f59f5cf57b1c90a52db29968774929c18149634aa73a210ea1be4007ec9b9274674a037202fe80000009030bdb825638927614a043a9034162d728cd43c745725fe8c19fc6d50de76e35472267d56e50d6a55d880cfec6342622ded9ed869f75a0c1487d9f9a382fddb13ea1c635e627834235148e634e3f6f1100141e873786b317c74f39ce868708d31cff93b38fbdb2cd20143eca47bd75d53241211448ce1906df7ef556aa9ea4eac40f38f11739df9f5c499605bead183900000012800000090f813f828646067dc51d5242353d807ee5c1aa9c66ed5d7d331c5d0c01de93981885db387722aa025e33b87470d710ebb973889a6809b975a22da8a56907bf80a84d15918cac48b2794e1822941153e4a1440d4db50c931e1ad04e1bbeab9c6ee6e182b4d835485d207cedd64ca443245055847fe127bf5394e1fe8a06707b4fe6c019fe62d4d9b94e56b5d8b6c8dc96a000000905c2449a18e5907e3a3200004082d61f84dc6275702245ac02221e2e9fa7fddbafb9c0c03c33e3a522adb8937b44dc1cfe493c26fd7580d60b981351db198a234dc71b540c2ac7eca5e44130645f0d3ac0205554d5e9f6edd547c5dd999daeff9fbc4fe2f4955a70be1eabcb4d16032e828287e03a8208340deb34ddbd01988ea922f711004ee1ff58d2a80032862a7c800000128000000901094845c5de05e951ad7c565191ca696bebb4b6026bc685765a29fb744acb881d46aa3659618446e392dd104a79f63b78ba6992cb410152ad853e4835cb55fcc765725d5fbdd197e8dd0bebe245a16112642d7fc22957e79f0252e469112b4e5be5dd94c16b0cd03e223ba84c92612b32f29dd1fa08abf0210ae7541fb07518f09b73219800c026a31d1de82806a717d00000090f25784fb68a28671a138a2689a2e27d36ff4b57d6789d7ec9600f50258d2f1d78a8e6f87e600f18c38dd9e2db1ef1fecdab806e69252201bf753848fd642ce0199e4cabbdc6b807103110b79060467dc1d928ecb52987f9594ee3d645e5bc384597fc02bebe8baa1b788619a91011611219cc2d755c7ad29e2b796caee1e48298e1ae075a4906e3cac4aa00fd7c6d37e0000012800000090232a0ab85a65971d9e129564be4959738fbd010e4620bc56d4c6a0cef0df48ea2916d699bfcf86c31ad798df1cf683dc447fcf3f776921569c940f49434bd5c5726b884987da77fc4e5bd2feadede3491d65766b3b5e95867650d9895558f7a6605e54f7b5fadbd155790e4e0f24a61c131f6644777601fd58c0ec242d9d964b3659244cdd9d0734ccc1cd02e2dc0cd70000009000e85396676fe85ae00b6a67c58a775a8e015dbba543d97b62849fd736be0a5ee691edb3386a0d2da107d33c0b6e20aaf0ebc5317953b33d0b1fa5d4dc0aa4e37497ae1ff07f85091f53e2e2c1a4a91912f3a31920458b51becc95d1b36e182988466ef6650fbb25a68f6e41ffe87c8d06fdfda92175001f9449ee523bbe716ed67386b7a65dc2281201dc0f52e79d84000001280000009046eb6f5858b6deb25997802d2470fc937ca6a0db4ec8b4b9f54033e77b0530b1fb827d1b901a45e99ae05235c325eb594e8ae2fcc865713fb826e451fa32072510ba33ea4ea74dd1a418c1fd6623b1882f867d690e3c0e22454afab564d44b876ebb1dc99ee27513ba0d681126875cd2083925d5f64dc05a14f6836d752eb8ee2724d4c45cc4ef6b5dff05966a946bfd0000009089295e34b6554ade8a37880e22cb11e97362668e30b2d266fdc00a06d91cc1c81f1a60714a1eb8e362900d31e59b4874f872d6baf1d057acf9712992eca98651ac3cabd3c68b8480e5a76049fefb122203f473002787777af3bd17162395067a9294669f469176bd8261113591575ea9194fedd044a208a299a74884a04c159189c5584324e0e28c0ed1f934f52083fb00000128000000903b1f75e86603f88b00bc7fcb389a0808f12ee410eb4ea5927614284aa5eff96ce07347df10d30654116e33cf57ec6f616b0d60a7ed480940b78c9bd174f823354c2c6977aaebf30932a359bb3593b8921080a3c03b4b9cd2e136130f101384edae29998621687f204fdcd5d0c5aba84d1348b19326b9878dc77421ad2fd4ec3317bfd7bc9fc0bfaef3ea2d62ded6f7d80000009071cea3ae8023a06bae36072dc5bd97b0579720667a7de4fc06a77c71c8f22fd764d14f7185fe823324e1549513b0c33ba990278a50eef3926f4192fe56d5f4a20a81b3192ea1fa4f5d411f94976ecdbf26fa3c8c2f2ee479ea55e9f45021749e35f514e87b37353ed481023f7e7c801e14fe40a872d25cf710dfd4cb5bd31a7f7fc5b462a5effa3d25bf544a26b50bf70000012800000090550c59f8f001f40751d8d8f83d41b3096ecf6539613399c810c05ea476e5c7f195c496c0590c6482641f0d4001babf649e3c761d216f978c6e279af75d24a0da1cfe90c67caa65b7639e7a82b48e53940c8ed9b0c03f1eca4fb55db4c930c770f029d49a2df26a008e78aa93a35833570ed3c91162ee1d25a96ed37ab571817fafa9c255f21cc8444eb20cac55e0cbc70000009032816c593e8f09426b459417186dc07b9cdfbfa0e7672418b3c63354af60bbdf627fe8e337eebb661f2163173c956523b37df946ad27e4354ed74fc199f40291a7e621b8ce9b5ebb3cf73b45022458160ebf2a3ebe228d431c8938f176fbc32e7f80ca5bff06dcff0d4c1a62e53fd9142812e0a40487e437190f29ae3bae7bf25ebd750c802e6bec8cbbd4b2b60c5e6500000ce40000012800000090cb8101b645c45719b837537f288db2a972242cd3b13945677a520b119b69c1ce9b0cdd31db1ed5af20c58576578b0023ee31cb95c131ee7a51c2ba75defb8f2f925af553133e3f867cf9e5f7c05d5dff0607731d4be02945695497b306deffbd102f7d24cafa87311ce23f557700dcf12cfa609937d2036dd835eb3acee695282f0aa384b7a710abf261c02db6267e0b00000090993f529a09a0517b513d11e6c7d35ae7daea3d9ef96bab7f86182f31abd5fd250a79773e373ecfaed4860234f7ba4581d2eae5882bd731faa19cc6ddc1440f062223294cdc8bd5876a84aca2021e56d0080888d3097e2d6ee2e65c3891b4c62a083308e2b969577fff780fb53c6895a50ca75c4e8e647ac512cde4c9a329960f9d82579529a57a7e0fba3b6c45554b9e0000012800000090c397f20811539f67aa0d9deb333219706d06272749d0ed917bbf52d7d3f1c1828ea1f7982c66e5aaf0b19accc338ec1f0e562c3576ade7ef3e568043e82868f417d22f07a7d4487af14566bc11f10b6a2d0767a2efa94f65d2e2f15db519b52e4d6ad1a96535692bb980b1a0689e2a2321b59c58bb53bfdc0843ce3896a4f36848e0c00a31f3061db854e56ed52aa4b0000000909ebd9573cf974839b5fb0c1a18cd9a565b914ebb383bdd20c73e72a5cb61cfe24ffdb2f71f0d63659b226c9e08f52c23178f18ff0ef81cabe90cc186f9bda9ecdeeef16287313edf4044df7a01fe31c52e1186400dade877de4d00ea6a1b3d2bcfc80220c2ba0f4daded50b5ffeeaac502b7a117fa66d1e46d35c81ca6f4f02933f7bc117648f1212afb6abec99684bd0000012800000090c0e4f6a168e67a0a4f1b0c413a3d02d9751f9febfc9ef4c129386d347ac2828227aed3dc4bbe71247b120e6678676dd8da58102054ee86013cc91f63f4f7add06ac0ae21f75b0939f56d21c8ee079d9f1b09e101295844e7941390e82e4fe23ce5d3f3cb7ee36af753fd549568b8f44e10a3e3341bd516e5ee23abbaf49a9d6a524542bfa891390b79538b307f60c9dd000000908dad9c1e96ee3ced387c2109956a2318f201b2eb51ecd81fee5cc5e16528604afff0916b93c29d298a73cb15adf80a37e539c0e73c13c99060e386785c02de3e03c4a95cf093d2df68e015faaf8beafa1d3d2ad54c1c0dc2fe1220d5e0b58987c14678bb2f6e7e76ef31152d83c961b51f2b841ca071188f2b2b49100a86dd7add0695373e1c3249683b8c2e7b9d09f10000012800000090258db38122111767a6f06767568b2e6256a1c76ba7f99bd399dd90defb9c5cb8a69a331d423515fd6e659c774424095e541dd11504090b9d3821e8039e9b511d0980c4ba6867f8c9494ab945d33d95771c8b29ba520b178f9ce2451e66ca3e510b90fdbdcf2be432f2999909975056861c4b8371741e94728718acfa10fc8bf7568bfba3732fd5fbc52d298fe6be0e92000000906bdf0de137b90d7eed4184fd8fe20aaea35bf9a196cbf9d0fbb4cc396ef24edc4b7200309da70a4e8d1bdbb018f0be98060aa1c7865cc1d2a50e986fae7ba2e510da189ce588ce3eb7c7fac7b9eca1ce2fa9e270894ab1f11c354eed4c70a53893828ae8967fafd1a0ab075afb4342ee0937b02097e238a8a3ab1a5063f0afdb01097c473e4d97d946a3386e067ec4c30000012800000090042c964916bc0cc2975bcbee7b91882633cb36fde8f2e3ced567590076c1e398bd291a2175afe0c483c77d3b93d7090d172bd210c1cd6fcc32b05c48adf810ecaa0299547b96411e5decb69b8154f67a258025cac1d980bfdeaa7003a61586769f66c36e2b27118bfab8819dec6c4a4b00318e674a4622ffb5296d93eef492b52866f74370dd4250d1f8457496a337c600000090b2f68730bfe2c8f0216b58fad1442fb289b8499b95a628c9d83c2d71f222c374101d7a40b459832ef3f396cc4df82b9c436324863f8d4e3a2ebd90d7c88050efdc445745b66f843f2e049c0f8c5f221d2d12df30584882656ff9d6f0efdb29464c87765e44befd7954c672fd4db509bf1ac277f551f5016b51e928ee78fac040bb5f39595f629e87cc40d44fd08c5aa700000128000000900e6ff27e9b1d0ac0be632384adb77793486e64d4d451b359aefa3ecc2f770c53e2bc64852b5efcb0185b8ca6f40e581890c55be4f3c0ba0efd7132544d03f3893fbc5da47e18b3e70271ea2d097039122ab6bbf91b9b3a49701a263e022a02e41a4b12ad55aad42fd4ca280fa88217bb07a897709ee27fcd185cc89617ab003d05727127240091d79f2ded1cadcff23600000090eb243c5a7917e3784d38145f679655b0f598aa913c3585e61523aaba948c59f7500afd3183f8e94dde153aedd2c1efdb0290213aa269d96e40b2e6768a9e9ff804a0da5b3cc6f204bd21b3ed1507f00e0203bd184252c84fccf825b8fe971c75e7c4d7464dd732ccca507038c2a2f800085733ec3b3021387c272405f3ae8a5ff35208a6dd816961ea9b60443e1e72cb0000012800000090000089c0bd91d471aa672d2e71f2b3e95efe7cc2247703f3e68c5341ade330bd2b72cb4d1c453c53e2bfd83a249b4369c796e3ded3ca80c653acd3952935922e8c8e3874477a69194ee84c0ff450e20f05f0f170bedb95b2db6e875248ddb3efaee20d102c9d7f626825fb084b9c02760dffab112427fd2bb4636ef37faa46c0d297db5109d1735caa709e9c11243fbd00000090cd7175b8b999340d3a6a19f314667ebb76111fc1995b92520ec1b2425dd7eec6c6925ce79a38049e728bcf1a7517c76b8f512682dc85233cc675ba2d08fe63a939820be928249d8267ff87e941b1d8ef1ffd90af3769864bce3fa7bf9abaaee175990da6a99f9ffce39188b09054932004577df22545471462a0445004c184e82960acfa0de04ca814e5a59e8d7853d8000001280000009027c57885ad44e86bc050adc16a9f431b8bcd136858797069b2ac1dc57e4bc07f8dfb1b0437a8b04f517ea77e11ff95868a697f4a647d605fca1d24efaf5f2070ed997bb7eb4b394a50ffd46bdb225431064c39026f41d45dc7689a9f766339b36f348817f822b9bade7f63cfc352f1830a6a40c1fca91d694ea2bf01e6c8c96b18e212bae9f1cc726cbcdc5fe42b9997000000909a73ecf61fb7a16bd0da5901fee1878055e506aadcbd399eac68a328c496aa89da4034c0ccd2f41cf9f210bceafb936bef1867d150b6c4eef3a6216f838f46c246be3b5cc9b6917651f0665ce97ec75e0f88f6763f37402d26bc6dd967ea561ebfdf539784f87b34260514f6bea4fe4615f0f38a93420c5a1b7468301b96944f03d14c26da162c1d74518fb5f687471e0000012800000090037411a3e4d6d8fce24c6b20eb2685da8153c648c49b901ea4e198e410c2f4ab8b4f6da6c3001db34c631a0eba034a2a73f7bc07f9b5bb3f0c1cd35b6f830bdde23e56540f2926d1428c92421f512df02d938fb1bf669cb7e3f2f67092ffe9c9235151de0f7780c884c275b87ab16c7c04fbd3ca6e59256f424817a5aa6af4db3dc7cfeccbd2e33a674aaed3c00679b600000090b63e8bcc12b7202e6adf92d08b0ceff3fb5f2aeb3641914f2007f01be6e8d0531717e813359ea9d87f334e4dcd6d9d2a9f469cb3ffe7b39bf3f516371d94d5cd0684b459e90ef0ea7e135cfdc09a459806ebcd20b37d2449effb46e1891920e9552219420926fe5b19e24c84eb5b489702a9b68a3f386683ebb68a80fbf86bda5f9eaf551a05e44bdcb62857b2a2596d0000012800000090be02f8ca31f53bbb98951c594b4d63e86144597afce010fa052abe4ce22ea616e5ebeee1592f72b790e861aa288e5e65e3d4e1de590d600e5fe8e97b2a944523fea6d4877982c820a8382bf211bdab670d212dfd578eea5598603aa2184d3d19631b7afddbf64a7d7d42da50957af2200cfd85cc575e688cfac8a7bf79d13425a8b8118cebbb7450ce71a5f32dd57c7600000090506fbaace8089afb104d6f51761c4b160f7fbe12ea416075884c7051942c26a7a5623325f5ee9b61e978bb6bdb0fb2247e1db58409ed666d92272131d0907441fde90741079630c7979d5c26cecca78a0e9311d2ab08ef98c21d6c368ace80671d4b53355506c328bffa5e50343b7b521f302e47e478b4cd9d6c378dd1d805301e1a212a76dec996b242c73d121275600000012800000090858cb772b6218e3b500c5ec852ec41fa01759de6d92fec4072a5a110de67577417858f16483e60864a6bfeec08ac33f895cd2925d9a32b5592599a6a960b88a9037dec9d267dc8b6c7cf3d14a6eed1e61923dce2ebe3796339f5a12c60b1da8b59ffbea3ff915359fc23a18f1f4967c701c040dd0e12cf5c9847b9acfb42fba71a589cc1cd10069130cd77de09e8f77000000090d3d771170fda563baec8662676daf70c323b048e3b5aea56cacb8e6e05eeab197e7ea3a84783d7048e4b302208cd2677d4fae6517098a2ad889e3675debb168d12bed274ca336a0787c2f0ce0755e66d1c19e641008d906a75f4cfe0412da1c25c4c6eebd8f8acba536deff6a87c52790f0d3c3df3ba9e411bdf469d86c008caa58d2076ab6c34c60b72f9bc03c3d4c7", - "timestamp": 1704899127 + "lastArchive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", + "timestamp": 0, + "version": 1 } } \ No newline at end of file diff --git a/yarn-project/archiver/src/archiver/archiver.test.ts b/yarn-project/archiver/src/archiver/archiver.test.ts index d873da2de83..cacd3560a77 100644 --- a/yarn-project/archiver/src/archiver/archiver.test.ts +++ b/yarn-project/archiver/src/archiver/archiver.test.ts @@ -269,7 +269,7 @@ describe('Archiver', () => { function makeL2BlockProcessedEvent(l1BlockNum: bigint, l2BlockNum: bigint) { return { blockNumber: l1BlockNum, - args: { blockNum: l2BlockNum }, + args: { blockNumber: l2BlockNum }, transactionHash: `0x${l2BlockNum}`, } as Log; } @@ -349,8 +349,10 @@ function makeL1ToL2MessageCancelledEvents(l1BlockNum: bigint, entryKeys: string[ * @returns A fake tx with calldata that corresponds to calling process in the Rollup contract. */ function makeRollupTx(l2Block: L2Block) { + const header = toHex(l2Block.header.toBuffer()); + const archive = toHex(l2Block.archive.toBuffer()); + const body = toHex(l2Block.bodyToBuffer()); const proof = `0x`; - const block = toHex(l2Block.toBufferWithLogs()); - const input = encodeFunctionData({ abi: RollupAbi, functionName: 'process', args: [proof, block] }); + const input = encodeFunctionData({ abi: RollupAbi, functionName: 'process', args: [header, archive, body, proof] }); return { input } as Transaction; } diff --git a/yarn-project/archiver/src/archiver/eth_log_handlers.ts b/yarn-project/archiver/src/archiver/eth_log_handlers.ts index 52133e86d17..1b8b27febb2 100644 --- a/yarn-project/archiver/src/archiver/eth_log_handlers.ts +++ b/yarn-project/archiver/src/archiver/eth_log_handlers.ts @@ -71,12 +71,12 @@ export async function processBlockLogs( ): Promise { const retrievedBlocks: L2Block[] = []; for (const log of logs) { - const blockNum = log.args.blockNum; + const blockNum = log.args.blockNumber; if (blockNum !== expectedL2BlockNumber) { throw new Error('Block number mismatch. Expected: ' + expectedL2BlockNumber + ' but got: ' + blockNum + '.'); } // TODO: Fetch blocks from calldata in parallel - const newBlock = await getBlockFromCallData(publicClient, log.transactionHash!, log.args.blockNum); + const newBlock = await getBlockFromCallData(publicClient, log.transactionHash!, log.args.blockNumber); newBlock.setL1BlockNumber(log.blockNumber!); retrievedBlocks.push(newBlock); expectedL2BlockNumber++; @@ -107,8 +107,14 @@ async function getBlockFromCallData( if (functionName !== 'process') { throw new Error(`Unexpected method called ${functionName}`); } - const [, l2BlockHex] = args! as [Hex, Hex]; - const block = L2Block.fromBufferWithLogs(Buffer.from(hexToBytes(l2BlockHex))); + // TODO(benesjan): This is brittle and should be handled inside the L2 Block. + const [headerHex, archiveHex, bodyHex] = args! as [Hex, Hex, Hex, Hex]; + const blockBuffer = Buffer.concat([ + Buffer.from(hexToBytes(headerHex)), + Buffer.from(hexToBytes(archiveHex)), + Buffer.from(hexToBytes(bodyHex)), + ]); + const block = L2Block.fromBufferWithLogs(blockBuffer); if (BigInt(block.number) !== l2BlockNum) { throw new Error(`Block number mismatch: expected ${l2BlockNum} but got ${block.number}`); } diff --git a/yarn-project/circuit-types/src/l2_block.ts b/yarn-project/circuit-types/src/l2_block.ts index 2a8efb85a3d..baa87985282 100644 --- a/yarn-project/circuit-types/src/l2_block.ts +++ b/yarn-project/circuit-types/src/l2_block.ts @@ -1,6 +1,5 @@ import { AppendOnlyTreeSnapshot, - GlobalVariables, Header, MAX_NEW_COMMITMENTS_PER_TX, MAX_NEW_CONTRACTS_PER_TX, @@ -8,10 +7,7 @@ import { MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, - NUM_BYTES_PER_SHA256, - PartialStateReference, STRING_ENCODING, - StateReference, } from '@aztec/circuits.js'; import { makeAppendOnlyTreeSnapshot, makeGlobalVariables, makeHeader } from '@aztec/circuits.js/factories'; import { keccak, sha256 } from '@aztec/foundation/crypto'; @@ -264,19 +260,7 @@ export class L2Block { */ toBuffer() { return serializeToBuffer( - this.header.globalVariables, - // TODO(#3868) - AppendOnlyTreeSnapshot.empty(), // this.startNoteHashTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startNullifierTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startContractTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startPublicDataTreeSnapshot, - AppendOnlyTreeSnapshot.empty(), // this.startL1ToL2MessageTreeSnapshot, - this.header.lastArchive, - this.header.state.partial.noteHashTree, - this.header.state.partial.nullifierTree, - this.header.state.partial.contractTree, - this.header.state.partial.publicDataTree, - this.header.state.l1ToL2MessageTree, + this.header, this.archive, this.newCommitments.length, this.newCommitments, @@ -309,6 +293,32 @@ export class L2Block { return serializeToBuffer(this.toBuffer(), this.newEncryptedLogs, this.newUnencryptedLogs); } + bodyToBuffer(): Buffer { + if (this.newEncryptedLogs === undefined || this.newUnencryptedLogs === undefined) { + throw new Error( + `newEncryptedLogs and newUnencryptedLogs must be defined when encoding L2BlockData (block ${this.header.globalVariables.blockNumber})`, + ); + } + + return serializeToBuffer( + this.newCommitments.length, + this.newCommitments, + this.newNullifiers.length, + this.newNullifiers, + this.newPublicDataWrites.length, + this.newPublicDataWrites, + this.newL2ToL1Msgs.length, + this.newL2ToL1Msgs, + this.newContracts.length, + this.newContracts, + this.newContractData, + this.newL1ToL2Messages.length, + this.newL1ToL2Messages, + this.newEncryptedLogs, + this.newUnencryptedLogs, + ); + } + /** * Serializes a block without logs to a string. * @remarks This is used when the block is being served via JSON-RPC because the logs are expected to be served @@ -327,20 +337,8 @@ export class L2Block { */ static fromBuffer(buf: Buffer | BufferReader, blockHash?: Buffer) { const reader = BufferReader.asReader(buf); - const globalVariables = reader.readObject(GlobalVariables); - // TODO(#3938): update the encoding here - reader.readObject(AppendOnlyTreeSnapshot); // startNoteHashTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startNullifierTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startContractTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startPublicDataTreeSnapshot - reader.readObject(AppendOnlyTreeSnapshot); // startL1ToL2MessageTreeSnapshot - const startArchiveSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endNoteHashTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endNullifierTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endContractTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endPublicDataTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endL1ToL2MessageTreeSnapshot = reader.readObject(AppendOnlyTreeSnapshot); - const endArchiveSnapshot = reader.readObject(AppendOnlyTreeSnapshot); + const header = reader.readObject(Header); + const archive = reader.readObject(AppendOnlyTreeSnapshot); const newCommitments = reader.readVector(Fr); const newNullifiers = reader.readVector(Fr); const newPublicDataWrites = reader.readVector(PublicDataWrite); @@ -350,19 +348,9 @@ export class L2Block { // TODO(sean): could an optimization of this be that it is encoded such that zeros are assumed const newL1ToL2Messages = reader.readVector(Fr); - const partial = new PartialStateReference( - endNoteHashTreeSnapshot, - endNullifierTreeSnapshot, - endContractTreeSnapshot, - endPublicDataTreeSnapshot, - ); - const state = new StateReference(endL1ToL2MessageTreeSnapshot, partial); - // TODO(#3938): populate bodyHash - const header = new Header(startArchiveSnapshot, Buffer.alloc(NUM_BYTES_PER_SHA256), state, globalVariables); - return L2Block.fromFields( { - archive: endArchiveSnapshot, + archive, header, newCommitments, newNullifiers, diff --git a/yarn-project/circuits.js/src/structs/header.ts b/yarn-project/circuits.js/src/structs/header.ts index 12aebcf39af..afe20bd200a 100644 --- a/yarn-project/circuits.js/src/structs/header.ts +++ b/yarn-project/circuits.js/src/structs/header.ts @@ -25,16 +25,16 @@ export class Header { toBuffer() { // Note: The order here must match the order in the HeaderDecoder solidity library. - return serializeToBuffer(this.lastArchive, this.bodyHash, this.state, this.globalVariables); + return serializeToBuffer(this.globalVariables, this.state, this.lastArchive, this.bodyHash); } static fromBuffer(buffer: Buffer | BufferReader): Header { const reader = BufferReader.asReader(buffer); - return new Header( - reader.readObject(AppendOnlyTreeSnapshot), - reader.readBytes(NUM_BYTES_PER_SHA256), - reader.readObject(StateReference), - reader.readObject(GlobalVariables), - ); + // TODO(benesjan): unify ordering here with ordering in constructor. + const globalVariables = reader.readObject(GlobalVariables); + const state = reader.readObject(StateReference); + const lastArchive = reader.readObject(AppendOnlyTreeSnapshot); + const bodyHash = reader.readBytes(NUM_BYTES_PER_SHA256); + return new Header(lastArchive, bodyHash, state, globalVariables); } } diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index a4f2156ad33..2bc6bc05aad 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -61,6 +61,7 @@ import { import { PrivateKeyAccount, privateKeyToAccount } from 'viem/accounts'; import { setupL1Contracts } from './fixtures/utils.js'; +import { numToUInt32BE } from '@aztec/foundation/serialize'; // Accounts 4 and 5 of Anvil default startup with mnemonic: 'test test test test test test test test test test test junk' const sequencerPK = '0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a'; @@ -102,7 +103,7 @@ describe('L1Publisher integration', () => { const chainId = createEthereumChain(config.rpcUrl, config.apiKey).chainInfo.id; // To overwrite the test data, set this to true and run the tests. - const OVERWRITE_TEST_DATA = false; + const OVERWRITE_TEST_DATA = true; beforeEach(async () => { deployerAccount = privateKeyToAccount(deployerPK); @@ -253,6 +254,8 @@ describe('L1Publisher integration', () => { } // Path relative to the package.json in the end-to-end folder const path = `../../l1-contracts/test/fixtures/${fileName}.json`; + + // NOTE: Members of the struct (and substructs) have to be in ALPHABETICAL order! const jsonObject = { populate: { l1ToL2Content: l1ToL2Content.map(c => `0x${c.toBuffer().toString('hex').padStart(64, '0')}`), @@ -264,14 +267,22 @@ describe('L1Publisher integration', () => { l2ToL1Messages: block.newL2ToL1Msgs.map(m => `0x${m.toBuffer().toString('hex').padStart(64, '0')}`), }, block: { + // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values bellow. + // This should not be a problem for testing as long as the values are not larger than u32. + archive: `0x${block.archive.root.toBuffer().toString('hex').padStart(64, '0')}${numToUInt32BE(block.archive.nextAvailableLeafIndex).toString('hex').padStart(4, '0')}`, blockNumber: block.number, - startStateHash: `0x${block.getStartStateHash().toString('hex').padStart(64, '0')}`, - endStateHash: `0x${block.getEndStateHash().toString('hex').padStart(64, '0')}`, - publicInputsHash: `0x${block.getPublicInputsHash().toBuffer().toString('hex').padStart(64, '0')}`, + body: `0x${block.bodyToBuffer().toString('hex')}`, calldataHash: `0x${block.getCalldataHash().toString('hex').padStart(64, '0')}`, + chainId: Number(block.header.globalVariables.chainId.toBigInt()), + header: `0x${block.header.toBuffer().toString('hex')}`, l1ToL2MessagesHash: `0x${block.getL1ToL2MessagesHash().toString('hex').padStart(64, '0')}`, - body: `0x${block.toBufferWithLogs().toString('hex')}`, - timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), // The json formatting in forge is a bit brittle, so we convert to a number here. This should not be a problem for testing as longs as the timestamp is not larger than u32. + lastArchive: `0x${block.header.lastArchive.root.toBuffer().toString('hex').padStart(64, '0')}`, + timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), + version: Number(block.header.globalVariables.version.toBigInt()), + + // startStateHash: `0x${block.getStartStateHash().toString('hex').padStart(64, '0')}`, + // endStateHash: `0x${block.getEndStateHash().toString('hex').padStart(64, '0')}`, + // publicInputsHash: `0x${block.getPublicInputsHash().toBuffer().toString('hex').padStart(64, '0')}`, }, }; @@ -280,7 +291,7 @@ describe('L1Publisher integration', () => { }; it(`Build ${numberOfConsecutiveBlocks} blocks of 4 bloated txs building on each other`, async () => { - const stateInRollup_ = await rollup.read.rollupStateHash(); + const stateInRollup_ = await rollup.read.archive(); expect(hexStringToBuffer(stateInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); const blockNumber = await publicClient.getBlockNumber(); @@ -351,59 +362,64 @@ describe('L1Publisher integration', () => { writeJson(`mixed_block_${i}`, block, l1ToL2Messages, l1ToL2Content, recipientAddress, deployerAccount.address); - await publisher.processL2Block(block); - - const logs = await publicClient.getLogs({ - address: rollupAddress, - event: getAbiItem({ - abi: RollupAbi, - name: 'L2BlockProcessed', - }), - fromBlock: blockNumber + 1n, - }); - expect(logs).toHaveLength(i + 1); - expect(logs[i].args.blockNum).toEqual(BigInt(i + 1)); - - const ethTx = await publicClient.getTransaction({ - hash: logs[i].transactionHash!, - }); - - const expectedData = encodeFunctionData({ - abi: RollupAbi, - functionName: 'process', - args: [`0x${l2Proof.toString('hex')}`, `0x${block.toBufferWithLogs().toString('hex')}`], - }); - expect(ethTx.input).toEqual(expectedData); - - const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; - const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); - const decodedRes = await decoderHelper.read.decode(decoderArgs); - const stateInRollup = await rollup.read.rollupStateHash(); - - expect(block.number).toEqual(Number(decodedRes[0])); - expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); - expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); - expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); - - // check that values have been consumed from the inbox - for (let j = 0; j < l1ToL2Messages.length; j++) { - if (l1ToL2Messages[j].isZero()) { - continue; - } - expect(await inbox.read.contains([l1ToL2Messages[j].toString()])).toBeFalsy(); - } - // check that values are inserted into the outbox - for (let j = 0; j < block.newL2ToL1Msgs.length; j++) { - expect(await outbox.read.contains([block.newL2ToL1Msgs[j].toString()])).toBeTruthy(); - } + // await publisher.publishL2Block(block); + + // const logs = await publicClient.getLogs({ + // address: rollupAddress, + // event: getAbiItem({ + // abi: RollupAbi, + // name: 'L2BlockProcessed', + // }), + // fromBlock: blockNumber + 1n, + // }); + // expect(logs).toHaveLength(i + 1); + // expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); + + // const ethTx = await publicClient.getTransaction({ + // hash: logs[i].transactionHash!, + // }); + + // const expectedData = encodeFunctionData({ + // abi: RollupAbi, + // functionName: 'process', + // args: [ + // `0x${block.header.toBuffer().toString('hex')}`, + // `0x${block.archive.toBuffer().toString('hex')}`, + // `0x${block.bodyToBuffer().toString('hex')}`, + // `0x${l2Proof.toString('hex')}`, + // ], + // }); + // expect(ethTx.input).toEqual(expectedData); + + // const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; + // const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); + // const decodedRes = await decoderHelper.read.decode(decoderArgs); + // const stateInRollup = await rollup.read.archive(); + + // expect(block.number).toEqual(Number(decodedRes[0])); + // expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); + // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); + // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); + // expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); + // expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); + // expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); + + // // check that values have been consumed from the inbox + // for (let j = 0; j < l1ToL2Messages.length; j++) { + // if (l1ToL2Messages[j].isZero()) { + // continue; + // } + // expect(await inbox.read.contains([l1ToL2Messages[j].toString()])).toBeFalsy(); + // } + // // check that values are inserted into the outbox + // for (let j = 0; j < block.newL2ToL1Msgs.length; j++) { + // expect(await outbox.read.contains([block.newL2ToL1Msgs[j].toString()])).toBeTruthy(); + // } } }, 360_000); it(`Build ${numberOfConsecutiveBlocks} blocks of 4 empty txs building on each other`, async () => { - const stateInRollup_ = await rollup.read.rollupStateHash(); + const stateInRollup_ = await rollup.read.archive(); expect(hexStringToBuffer(stateInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); const blockNumber = await publicClient.getBlockNumber(); @@ -427,42 +443,47 @@ describe('L1Publisher integration', () => { writeJson(`empty_block_${i}`, block, l1ToL2Messages, [], AztecAddress.ZERO, deployerAccount.address); - await publisher.processL2Block(block); - - const logs = await publicClient.getLogs({ - address: rollupAddress, - event: getAbiItem({ - abi: RollupAbi, - name: 'L2BlockProcessed', - }), - fromBlock: blockNumber + 1n, - }); - expect(logs).toHaveLength(i + 1); - expect(logs[i].args.blockNum).toEqual(BigInt(i + 1)); - - const ethTx = await publicClient.getTransaction({ - hash: logs[i].transactionHash!, - }); - - const expectedData = encodeFunctionData({ - abi: RollupAbi, - functionName: 'process', - args: [`0x${l2Proof.toString('hex')}`, `0x${block.toBufferWithLogs().toString('hex')}`], - }); - expect(ethTx.input).toEqual(expectedData); - - const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; - const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); - const decodedRes = await decoderHelper.read.decode(decoderArgs); - const stateInRollup = await rollup.read.rollupStateHash(); - - expect(block.number).toEqual(Number(decodedRes[0])); - expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); - expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); - expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); - expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); + // await publisher.publishL2Block(block); + + // const logs = await publicClient.getLogs({ + // address: rollupAddress, + // event: getAbiItem({ + // abi: RollupAbi, + // name: 'L2BlockProcessed', + // }), + // fromBlock: blockNumber + 1n, + // }); + // expect(logs).toHaveLength(i + 1); + // expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); + + // const ethTx = await publicClient.getTransaction({ + // hash: logs[i].transactionHash!, + // }); + + // const expectedData = encodeFunctionData({ + // abi: RollupAbi, + // functionName: 'process', + // args: [ + // `0x${block.header.toBuffer().toString('hex')}`, + // `0x${block.archive.toBuffer().toString('hex')}`, + // `0x${block.bodyToBuffer().toString('hex')}`, + // `0x${l2Proof.toString('hex')}`, + // ], + // }); + // expect(ethTx.input).toEqual(expectedData); + + // const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; + // const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); + // const decodedRes = await decoderHelper.read.decode(decoderArgs); + // const stateInRollup = await rollup.read.archive(); + + // expect(block.number).toEqual(Number(decodedRes[0])); + // expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); + // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); + // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); + // expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); + // expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); + // expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); } }, 60_000); }); diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts index 123203a59dd..8ac7eb20b84 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts @@ -30,7 +30,7 @@ describe('L1Publisher', () => { }); it('publishes l2 block to l1', async () => { - const result = await publisher.processL2Block(l2Block); + const result = await publisher.publishL2Block(l2Block); expect(result).toEqual(true); expect(txSender.sendProcessTx).toHaveBeenCalledWith({ proof: l2Proof, inputs: l2Inputs }); @@ -48,7 +48,7 @@ describe('L1Publisher', () => { it('does not retry if sending a tx fails', async () => { txSender.sendProcessTx.mockReset().mockRejectedValueOnce(new Error()).mockResolvedValueOnce(txHash); - const result = await publisher.processL2Block(l2Block); + const result = await publisher.publishL2Block(l2Block); expect(result).toEqual(false); expect(txSender.sendProcessTx).toHaveBeenCalledTimes(1); @@ -57,7 +57,7 @@ describe('L1Publisher', () => { it('retries if fetching the receipt fails', async () => { txSender.getTransactionReceipt.mockReset().mockRejectedValueOnce(new Error()).mockResolvedValueOnce(txReceipt); - const result = await publisher.processL2Block(l2Block); + const result = await publisher.publishL2Block(l2Block); expect(result).toEqual(true); expect(txSender.getTransactionReceipt).toHaveBeenCalledTimes(2); @@ -66,7 +66,7 @@ describe('L1Publisher', () => { it('returns false if tx reverts', async () => { txSender.getTransactionReceipt.mockReset().mockResolvedValueOnce({ ...txReceipt, status: false }); - const result = await publisher.processL2Block(l2Block); + const result = await publisher.publishL2Block(l2Block); expect(result).toEqual(false); }); @@ -74,7 +74,7 @@ describe('L1Publisher', () => { it('returns false if interrupted', async () => { txSender.sendProcessTx.mockReset().mockImplementationOnce(() => sleep(10, txHash)); - const resultPromise = publisher.processL2Block(l2Block); + const resultPromise = publisher.publishL2Block(l2Block); publisher.interrupt(); const result = await resultPromise; diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts index d30b32de766..efa87c38542 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts @@ -82,17 +82,17 @@ export interface L1PublisherTxSender { } /** - * Encoded block data and proof ready to be pushed to the L1 contract. + * Encoded block and proof ready to be pushed to the L1 contract. */ export type L1ProcessArgs = { - /** - * Root rollup proof for an L1 block. - */ + /** The L2 block header. */ + header: Buffer; + /** A snapshot (root and next available leaf index) of the archive tree after the L2 block is applied. */ + archive: Buffer; + /** L2 block body. */ + body: Buffer; + /** Root rollup proof of the L2 block. */ proof: Buffer; - /** - * Serialized L2Block data. - */ - inputs: Buffer; }; /** @@ -124,14 +124,18 @@ export class L1Publisher implements L2BlockReceiver { } /** - * Processes incoming L2 block data by publishing it to the L1 rollup contract. - * @param l2BlockData - L2 block data to publish. + * Publishes L2 block on L1. + * @param block - L2 block to publish. * @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise. */ - public async processL2Block(l2BlockData: L2Block): Promise { - const proof = Buffer.alloc(0); - const txData = { proof, inputs: l2BlockData.toBufferWithLogs() }; - const startStateHash = l2BlockData.getStartStateHash(); + public async publishL2Block(block: L2Block): Promise { + const txData = { + header: block.header.toBuffer(), + archive: block.archive.toBuffer(), + body: block.bodyToBuffer(), + proof: Buffer.alloc(0), + }; + const startStateHash = block.getStartStateHash(); while (!this.interrupted) { // TODO: Remove this block number check, it's here because we don't currently have proper genesis state on the contract @@ -157,7 +161,7 @@ export class L1Publisher implements L2BlockReceiver { const stats: L1PublishStats = { ...pick(receipt, 'gasPrice', 'gasUsed', 'transactionHash'), ...pick(tx!, 'calldataGas', 'calldataSize'), - ...l2BlockData.getStats(), + ...block.getStats(), eventName: 'rollup-published-to-l1', }; this.log.info(`Published L2 block to L1 rollup contract`, stats); @@ -242,6 +246,7 @@ export class L1Publisher implements L2BlockReceiver { * @param startStateHash - The start state hash of the block we wish to publish. * @returns Boolean indicating if the hashes are equal. */ + // TODO(benesjan): rename this private async checkStartStateHash(startStateHash: Buffer): Promise { const fromChain = await this.txSender.getCurrentStateHash(); const areSame = startStateHash.equals(fromChain); diff --git a/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts b/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts index 89a3037ec32..e301b6d0b63 100644 --- a/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts +++ b/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts @@ -76,7 +76,7 @@ export class ViemTxSender implements L1PublisherTxSender { } async getCurrentStateHash(): Promise { - const stateHash = await this.rollupContract.read.rollupStateHash(); + const stateHash = await this.rollupContract.read.archive(); return Buffer.from(stateHash.replace('0x', ''), 'hex'); } @@ -122,7 +122,12 @@ export class ViemTxSender implements L1PublisherTxSender { * @returns The hash of the mined tx. */ async sendProcessTx(encodedData: ProcessTxArgs): Promise { - const args = [`0x${encodedData.proof.toString('hex')}`, `0x${encodedData.inputs.toString('hex')}`] as const; + const args = [ + `0x${encodedData.header.toString('hex')}`, + `0x${encodedData.archive.toString('hex')}`, + `0x${encodedData.body.toString('hex')}`, + `0x${encodedData.proof.toString('hex')}`, + ] as const; const gas = await this.rollupContract.estimateGas.process(args, { account: this.account, diff --git a/yarn-project/sequencer-client/src/receiver.ts b/yarn-project/sequencer-client/src/receiver.ts index f731a8f8504..4ae605ed98f 100644 --- a/yarn-project/sequencer-client/src/receiver.ts +++ b/yarn-project/sequencer-client/src/receiver.ts @@ -9,5 +9,5 @@ export interface L2BlockReceiver { * Receive and L2 block and process it, returns true if successful. * @param l2BlockData - L2 block to process. */ - processL2Block(l2BlockData: L2Block): Promise; + publishL2Block(l2BlockData: L2Block): Promise; } diff --git a/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts b/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts index 1bc34c9dc69..7bd063bb167 100644 --- a/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts +++ b/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts @@ -102,7 +102,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce([tx]); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.processL2Block.mockResolvedValueOnce(true); + publisher.publishL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -117,7 +117,7 @@ describe('sequencer', () => { expectedTxHashes.map(hash => expect.objectContaining({ hash })), Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(new Fr(0n)), ); - expect(publisher.processL2Block).toHaveBeenCalledWith(block); + expect(publisher.publishL2Block).toHaveBeenCalledWith(block); }); it('builds a block out of several txs rejecting double spends', async () => { @@ -131,7 +131,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce(txs); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.processL2Block.mockResolvedValueOnce(true); + publisher.publishL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -154,7 +154,7 @@ describe('sequencer', () => { expectedTxHashes.map(hash => expect.objectContaining({ hash })), Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(new Fr(0n)), ); - expect(publisher.processL2Block).toHaveBeenCalledWith(block); + expect(publisher.publishL2Block).toHaveBeenCalledWith(block); expect(p2p.deleteTxs).toHaveBeenCalledWith([await doubleSpendTx.getTxHash()]); }); @@ -169,7 +169,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce(txs); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.processL2Block.mockResolvedValueOnce(true); + publisher.publishL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -187,7 +187,7 @@ describe('sequencer', () => { expectedTxHashes.map(hash => expect.objectContaining({ hash })), Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(new Fr(0n)), ); - expect(publisher.processL2Block).toHaveBeenCalledWith(block); + expect(publisher.publishL2Block).toHaveBeenCalledWith(block); expect(p2p.deleteTxs).toHaveBeenCalledWith([await invalidChainTx.getTxHash()]); }); @@ -199,7 +199,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce([tx]); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.processL2Block.mockResolvedValueOnce(true); + publisher.publishL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -216,7 +216,7 @@ describe('sequencer', () => { await sequencer.work(); - expect(publisher.processL2Block).not.toHaveBeenCalled(); + expect(publisher.publishL2Block).not.toHaveBeenCalled(); }); it('publishes contract data', async () => { diff --git a/yarn-project/sequencer-client/src/sequencer/sequencer.ts b/yarn-project/sequencer-client/src/sequencer/sequencer.ts index f23c8c9a9df..a99124e9c51 100644 --- a/yarn-project/sequencer-client/src/sequencer/sequencer.ts +++ b/yarn-project/sequencer-client/src/sequencer/sequencer.ts @@ -265,7 +265,7 @@ export class Sequencer { protected async publishL2Block(block: L2Block) { // Publishes new block to the network and awaits the tx to be mined this.state = SequencerState.PUBLISHING_BLOCK; - const publishedL2Block = await this.publisher.processL2Block(block); + const publishedL2Block = await this.publisher.publishL2Block(block); if (publishedL2Block) { this.log(`Successfully published block ${block.number}`); this.lastPublishedBlock = block.number; From 16a16610ff08a93c49064622eddbf03a52839075 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 08:43:13 +0000 Subject: [PATCH 02/23] fixed rollup test --- l1-contracts/src/core/Rollup.sol | 2 +- l1-contracts/test/Rollup.t.sol | 225 +++++++++++++++++-------------- 2 files changed, 123 insertions(+), 104 deletions(-) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index 1d140822f09..503c547a25d 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -92,7 +92,7 @@ contract Rollup is IRollup { } // TODO: @benejsan Manually extracting the root here is ugly. TODO: Re-think how to represent archive snap. - archive = bytes32(_header[:0x20]); + archive = bytes32(_archive[:0x20]); lastBlockTs = block.timestamp; // @todo (issue #605) handle fee collector diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 953963f7af4..7983fe2b961 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -39,23 +39,23 @@ contract RollupTest is DecoderBase { registry.upgrade(address(rollup), address(inbox), address(outbox)); } - // function testMixedBlock() public { - // _testBlock("mixed_block_0"); - // } + function testMixedBlock() public { + _testBlock("mixed_block_0"); + } - // function testConsecutiveMixedBlocks() public { - // _testBlock("mixed_block_0"); - // _testBlock("mixed_block_1"); - // } + function testConsecutiveMixedBlocks() public { + _testBlock("mixed_block_0"); + _testBlock("mixed_block_1"); + } - // function testEmptyBlock() public { - // _testBlock("empty_block_0"); - // } + function testEmptyBlock() public { + _testBlock("empty_block_0"); + } - // function testConsecutiveEmptyBlocks() public { - // _testBlock("empty_block_0"); - // _testBlock("empty_block_1"); - // } + function testConsecutiveEmptyBlocks() public { + _testBlock("empty_block_0"); + _testBlock("empty_block_1"); + } function testRevertInvalidChainId() public { DecoderBase.Data memory data = load("empty_block_0").block; @@ -71,93 +71,112 @@ contract RollupTest is DecoderBase { rollup.process(header, archive, body, bytes("")); } - // function testRevertInvalidVersion() public { - // bytes memory block_ = load("empty_block_0").block.body; - - // assembly { - // mstore(add(block_, 0x40), 0x420) - // } - - // vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidVersion.selector, 0x420, 1)); - // rollup.process(bytes(""), block_); - // } - - // function testRevertTimestampInFuture() public { - // bytes memory block_ = load("empty_block_0").block.body; - - // uint256 ts = block.timestamp + 1; - // assembly { - // mstore(add(block_, 0x80), ts) - // } - - // vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampInFuture.selector)); - // rollup.process(bytes(""), block_); - // } - - // function testRevertTimestampTooOld() public { - // bytes memory block_ = load("empty_block_0").block.body; - - // // Overwrite in the rollup contract - // vm.store(address(rollup), bytes32(uint256(1)), bytes32(uint256(block.timestamp))); - - // vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampTooOld.selector)); - // rollup.process(bytes(""), block_); - // } - - // function _testBlock(string memory name) public { - // DecoderBase.Full memory full = load(name); - // // We jump to the time of the block. - // vm.warp(full.block.timestamp); - - // _populateInbox(full.populate.sender, full.populate.recipient, full.populate.l1ToL2Content); - - // for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { - // if (full.messages.l1ToL2Messages[i] == bytes32(0)) { - // continue; - // } - // assertTrue(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not in inbox"); - // } - - // vm.record(); - // rollup.process(bytes(""), full.block.body); - - // (, bytes32[] memory inboxWrites) = vm.accesses(address(inbox)); - // (, bytes32[] memory outboxWrites) = vm.accesses(address(outbox)); - - // { - // uint256 count = 0; - // for (uint256 i = 0; i < full.messages.l2ToL1Messages.length; i++) { - // if (full.messages.l2ToL1Messages[i] == bytes32(0)) { - // continue; - // } - // assertTrue(outbox.contains(full.messages.l2ToL1Messages[i]), "msg not in outbox"); - // count++; - // } - // assertEq(outboxWrites.length, count, "Invalid outbox writes"); - // } - - // { - // uint256 count = 0; - // for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { - // if (full.messages.l1ToL2Messages[i] == bytes32(0)) { - // continue; - // } - // assertFalse(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not consumed"); - // count++; - // } - // assertEq(inboxWrites.length, count, "Invalid inbox writes"); - // } - - // assertEq(rollup.rollupStateHash(), full.block.endStateHash, "Invalid rollup state hash"); - // } - - // function _populateInbox(address _sender, bytes32 _recipient, bytes32[] memory _contents) internal { - // uint32 deadline = type(uint32).max; - // for (uint256 i = 0; i < _contents.length; i++) { - // vm.prank(_sender); - // inbox.sendL2Message( - // DataStructures.L2Actor({actor: _recipient, version: 1}), deadline, _contents[i], bytes32(0) - // ); - // } - // } + function testRevertInvalidVersion() public { + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes memory archive = data.archive; + bytes memory body = data.body; + + assembly { + mstore(add(header, 0x40), 0x420) + } + + vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidVersion.selector, 0x420, 1)); + rollup.process(header, archive, body, bytes("")); + } + + function testRevertTimestampInFuture() public { + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes memory archive = data.archive; + bytes memory body = data.body; + + uint256 ts = block.timestamp + 1; + assembly { + mstore(add(header, 0x80), ts) + } + + vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampInFuture.selector)); + rollup.process(header, archive, body, bytes("")); + } + + function testRevertTimestampTooOld() public { + DecoderBase.Data memory data = load("empty_block_0").block; + bytes memory header = data.header; + bytes memory archive = data.archive; + bytes memory body = data.body; + + // Overwrite in the rollup contract + vm.store(address(rollup), bytes32(uint256(1)), bytes32(uint256(block.timestamp))); + + vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__TimestampTooOld.selector)); + rollup.process(header, archive, body, bytes("")); + } + + function _testBlock(string memory name) public { + DecoderBase.Full memory full = load(name); + bytes memory header = full.block.header; + bytes memory archive = full.block.archive; + bytes memory body = full.block.body; + + // We jump to the time of the block. + vm.warp(full.block.timestamp); + + _populateInbox(full.populate.sender, full.populate.recipient, full.populate.l1ToL2Content); + + for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { + if (full.messages.l1ToL2Messages[i] == bytes32(0)) { + continue; + } + assertTrue(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not in inbox"); + } + + vm.record(); + rollup.process(header, archive, body, bytes("")); + + (, bytes32[] memory inboxWrites) = vm.accesses(address(inbox)); + (, bytes32[] memory outboxWrites) = vm.accesses(address(outbox)); + + { + uint256 count = 0; + for (uint256 i = 0; i < full.messages.l2ToL1Messages.length; i++) { + if (full.messages.l2ToL1Messages[i] == bytes32(0)) { + continue; + } + assertTrue(outbox.contains(full.messages.l2ToL1Messages[i]), "msg not in outbox"); + count++; + } + assertEq(outboxWrites.length, count, "Invalid outbox writes"); + } + + { + uint256 count = 0; + for (uint256 i = 0; i < full.messages.l1ToL2Messages.length; i++) { + if (full.messages.l1ToL2Messages[i] == bytes32(0)) { + continue; + } + assertFalse(inbox.contains(full.messages.l1ToL2Messages[i]), "msg not consumed"); + count++; + } + assertEq(inboxWrites.length, count, "Invalid inbox writes"); + } + + bytes32 archiveRoot; + + assembly { + archiveRoot := mload(add(archive, 32)) + } + + assertEq(rollup.archive(), archiveRoot, "Invalid archive"); + } + + function _populateInbox(address _sender, bytes32 _recipient, bytes32[] memory _contents) internal { + uint32 deadline = type(uint32).max; + for (uint256 i = 0; i < _contents.length; i++) { + vm.prank(_sender); + inbox.sendL2Message( + DataStructures.L2Actor({actor: _recipient, version: 1}), deadline, _contents[i], bytes32(0) + ); + } + } } From 3c6da815faaa22c16c309a56806ab6f9464d819c Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 08:45:12 +0000 Subject: [PATCH 03/23] Rollup cleanup --- l1-contracts/src/core/Rollup.sol | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index 503c547a25d..dfbb62a6478 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -21,7 +21,7 @@ import {AvailabilityOracle} from "./availability_oracle/AvailabilityOracle.sol"; /** * @title Rollup * @author Aztec Labs - * @notice Rollup contract that are concerned about readability and velocity of development + * @notice Rollup contract that is concerned about readability and velocity of development * not giving a damn about gas costs. */ contract Rollup is IRollup { @@ -78,12 +78,6 @@ contract Rollup is IRollup { (bytes32 inHash,, bytes32[] memory l1ToL2Msgs, bytes32[] memory l2ToL1Msgs) = MessagesDecoder.decode(_body); - // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. - // TODO(#3936): Temporarily disabling this because L2Block encoding has not yet been updated. - // if (rollupStateHash != bytes32(0) && rollupStateHash != oldStateHash) { - // revert Errors.Rollup__InvalidStateHash(rollupStateHash, oldStateHash); - // } - bytes32[] memory publicInputs = new bytes32[](1); publicInputs[0] = _computePublicInputHash(_header, txsHash, inHash); From 7da646b9da653a04e19a9e9bd7ba782234018474 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 09:18:53 +0000 Subject: [PATCH 04/23] fixed l1 publisher test --- .../src/publisher/l1-publisher.test.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts index 8ac7eb20b84..e8ac5ab87b9 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts @@ -10,14 +10,21 @@ describe('L1Publisher', () => { let txHash: string; let txReceipt: MinimalTransactionReceipt; let l2Block: L2Block; - let l2Inputs: Buffer; - let l2Proof: Buffer; + + let header: Buffer; + let archive: Buffer; + let body: Buffer; + let proof: Buffer; + let publisher: L1Publisher; beforeEach(() => { l2Block = L2Block.random(42); - l2Inputs = l2Block.toBufferWithLogs(); - l2Proof = Buffer.alloc(0); + + header = l2Block.header.toBuffer(); + archive = l2Block.archive.toBuffer(); + body = l2Block.bodyToBuffer(); + proof = Buffer.alloc(0); txSender = mock(); txHash = `0x${Buffer.from('txHash').toString('hex')}`; // random tx hash @@ -33,7 +40,7 @@ describe('L1Publisher', () => { const result = await publisher.publishL2Block(l2Block); expect(result).toEqual(true); - expect(txSender.sendProcessTx).toHaveBeenCalledWith({ proof: l2Proof, inputs: l2Inputs }); + expect(txSender.sendProcessTx).toHaveBeenCalledWith({ header, archive, body, proof }); expect(txSender.getTransactionReceipt).toHaveBeenCalledWith(txHash); }); From 378f3119895e5220706db7704d19895068a9f30a Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 09:38:55 +0000 Subject: [PATCH 05/23] WIP --- l1-contracts/src/core/Rollup.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index dfbb62a6478..708e9fdaecc 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -108,6 +108,8 @@ contract Rollup is IRollup { revert Errors.Rollup__InvalidVersion(header.version, VERSION); } + // block number already constrained by archive hash check + if (header.timestamp > block.timestamp) { revert Errors.Rollup__TimestampInFuture(); } From db4e6093943458c8f8e6c7dcb0dfe01e12a15e62 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 09:59:27 +0000 Subject: [PATCH 06/23] exposing all decoder helpers --- l1-contracts/test/Rollup.t.sol | 2 +- l1-contracts/test/decoders/Decoder.t.sol | 36 +++---------------- .../{ => decoders/helpers}/DecoderHelper.sol | 4 +-- .../decoders/helpers/HeaderDecoderHelper.sol | 12 +++++++ .../helpers/MessagesDecoderHelper.sol | 21 +++++++++++ .../decoders/helpers/TxsDecoderHelper.sol | 12 +++++++ .../scripts/generate-artifacts.sh | 3 ++ 7 files changed, 56 insertions(+), 34 deletions(-) rename l1-contracts/test/{ => decoders/helpers}/DecoderHelper.sol (79%) create mode 100644 l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol create mode 100644 l1-contracts/test/decoders/helpers/MessagesDecoderHelper.sol create mode 100644 l1-contracts/test/decoders/helpers/TxsDecoderHelper.sol diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 7983fe2b961..ed2961ca95f 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -5,7 +5,7 @@ pragma solidity >=0.8.18; import {Test} from "forge-std/Test.sol"; import {DecoderTest} from "./decoders/Decoder.t.sol"; -import {DecoderHelper} from "./DecoderHelper.sol"; +import {DecoderHelper} from "./decoders/helpers/DecoderHelper.sol"; import {DecoderBase} from "./decoders/Base.sol"; diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index 9caa8cac72e..a4e5204ef55 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -6,7 +6,11 @@ import {DecoderBase} from "./Base.sol"; import {Hash} from "../../src/core/libraries/Hash.sol"; import {DataStructures} from "../../src/core/libraries/DataStructures.sol"; -import {DecoderHelper} from "../DecoderHelper.sol"; + +import {DecoderHelper} from "./helpers/DecoderHelper.sol"; +import {HeaderDecoderHelper} from "./helpers/HeaderDecoderHelper.sol"; +import {MessagesDecoderHelper} from "./helpers/MessagesDecoderHelper.sol"; +import {TxsDecoderHelper} from "./helpers/TxsDecoderHelper.sol"; import {Decoder} from "../../src/core/libraries/decoders/Decoder.sol"; import {HeaderDecoder} from "../../src/core/libraries/decoders/HeaderDecoder.sol"; @@ -15,36 +19,6 @@ import {TxsDecoder} from "../../src/core/libraries/decoders/TxsDecoder.sol"; import {AvailabilityOracle} from "../../src/core/availability_oracle/AvailabilityOracle.sol"; -contract HeaderDecoderHelper { - // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) public pure returns (HeaderDecoder.Header memory) { - return HeaderDecoder.decode(_header); - } -} - -contract MessagesDecoderHelper { - // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _body) - public - pure - returns ( - bytes32 l1ToL2MsgsHash, - bytes32 l2ToL1MsgsHash, - bytes32[] memory l1ToL2Msgs, - bytes32[] memory l2ToL1Msgs - ) - { - return MessagesDecoder.decode(_body); - } -} - -contract TxsDecoderHelper { - // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _body) public pure returns (bytes32 txsHash) { - return TxsDecoder.decode(_body); - } -} - /** * Blocks are generated using the `integration_l1_publisher.test.ts` tests. * Main use of these test is shorter cycles when updating the decoder contract. diff --git a/l1-contracts/test/DecoderHelper.sol b/l1-contracts/test/decoders/helpers/DecoderHelper.sol similarity index 79% rename from l1-contracts/test/DecoderHelper.sol rename to l1-contracts/test/decoders/helpers/DecoderHelper.sol index cb2da5ae603..bdbc019545d 100644 --- a/l1-contracts/test/DecoderHelper.sol +++ b/l1-contracts/test/decoders/helpers/DecoderHelper.sol @@ -2,8 +2,8 @@ // Copyright 2023 Aztec Labs. pragma solidity >=0.8.18; -import {Decoder} from "../src/core/libraries/decoders/Decoder.sol"; -import {Rollup} from "../src/core/Rollup.sol"; +import {Decoder} from "../../../src/core/libraries/decoders/Decoder.sol"; +import {Rollup} from "../../../src/core/Rollup.sol"; contract DecoderHelper { function computeConsumables(bytes calldata _body) diff --git a/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol b/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol new file mode 100644 index 00000000000..19908904c94 --- /dev/null +++ b/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +import {HeaderDecoder} from "../../../src/core/libraries/decoders/HeaderDecoder.sol"; + +contract HeaderDecoderHelper { + // A wrapper used such that we get "calldata" and not memory + function decode(bytes calldata _header) public pure returns (HeaderDecoder.Header memory) { + return HeaderDecoder.decode(_header); + } +} diff --git a/l1-contracts/test/decoders/helpers/MessagesDecoderHelper.sol b/l1-contracts/test/decoders/helpers/MessagesDecoderHelper.sol new file mode 100644 index 00000000000..ce8c866aea8 --- /dev/null +++ b/l1-contracts/test/decoders/helpers/MessagesDecoderHelper.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +import {MessagesDecoder} from "../../../src/core/libraries/decoders/MessagesDecoder.sol"; + +contract MessagesDecoderHelper { + // A wrapper used such that we get "calldata" and not memory + function decode(bytes calldata _body) + public + pure + returns ( + bytes32 l1ToL2MsgsHash, + bytes32 l2ToL1MsgsHash, + bytes32[] memory l1ToL2Msgs, + bytes32[] memory l2ToL1Msgs + ) + { + return MessagesDecoder.decode(_body); + } +} diff --git a/l1-contracts/test/decoders/helpers/TxsDecoderHelper.sol b/l1-contracts/test/decoders/helpers/TxsDecoderHelper.sol new file mode 100644 index 00000000000..aa7b5e5190d --- /dev/null +++ b/l1-contracts/test/decoders/helpers/TxsDecoderHelper.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2023 Aztec Labs. +pragma solidity >=0.8.18; + +import {TxsDecoder} from "../../../src/core/libraries/decoders/TxsDecoder.sol"; + +contract TxsDecoderHelper { + // A wrapper used such that we get "calldata" and not memory + function decode(bytes calldata _body) public pure returns (bytes32 txsHash) { + return TxsDecoder.decode(_body); + } +} diff --git a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh index 37a07c35e17..6c485e056e9 100755 --- a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh +++ b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh @@ -11,6 +11,9 @@ target_dir=./generated CONTRACTS=( "l1-contracts:DecoderHelper" + "l1-contracts:HeaderDecoderHelper" + "l1-contracts:TxsDecoderHelper" + "l1-contracts:MessagesDecoderHelper" "l1-contracts:Registry" "l1-contracts:Inbox" "l1-contracts:Outbox" From a1c40b85ddc0e4d042c6a83d15c2cd1d0b104bf5 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 11:29:08 +0000 Subject: [PATCH 07/23] fixed integration l1 publisher test --- yarn-project/archiver/src/archiver/config.ts | 1 + .../aztec.js/src/contract/contract.test.ts | 1 + yarn-project/end-to-end/src/fixtures/utils.ts | 10 +- .../src/integration_l1_publisher.test.ts | 231 ++++++++++-------- .../ethereum/src/deploy_l1_contracts.ts | 16 ++ .../ethereum/src/l1_contract_addresses.ts | 4 + .../src/pxe_service/test/pxe_service.test.ts | 1 + yarn-project/sequencer-client/src/config.ts | 1 + 8 files changed, 165 insertions(+), 100 deletions(-) diff --git a/yarn-project/archiver/src/archiver/config.ts b/yarn-project/archiver/src/archiver/config.ts index 669827c685a..29f9731063a 100644 --- a/yarn-project/archiver/src/archiver/config.ts +++ b/yarn-project/archiver/src/archiver/config.ts @@ -74,6 +74,7 @@ export function getConfigEnvVars(): ArchiverConfig { ? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS) : EthAddress.ZERO, decoderHelperAddress: EthAddress.ZERO, + headerDecoderHelperAddress: EthAddress.ZERO, }; return { rpcUrl: ETHEREUM_HOST || 'http://127.0.0.1:8545/', diff --git a/yarn-project/aztec.js/src/contract/contract.test.ts b/yarn-project/aztec.js/src/contract/contract.test.ts index 14bdbe71f29..87ce41999c2 100644 --- a/yarn-project/aztec.js/src/contract/contract.test.ts +++ b/yarn-project/aztec.js/src/contract/contract.test.ts @@ -27,6 +27,7 @@ describe('Contract Class', () => { outboxAddress: EthAddress.random(), contractDeploymentEmitterAddress: EthAddress.random(), decoderHelperAddress: EthAddress.random(), + headerDecoderHelperAddress: EthAddress.random(), }; const mockNodeInfo: NodeInfo = { nodeVersion: 'vx.x.x', diff --git a/yarn-project/end-to-end/src/fixtures/utils.ts b/yarn-project/end-to-end/src/fixtures/utils.ts index 9121ca0e114..efa8afd4610 100644 --- a/yarn-project/end-to-end/src/fixtures/utils.ts +++ b/yarn-project/end-to-end/src/fixtures/utils.ts @@ -24,6 +24,8 @@ import { ContractDeploymentEmitterBytecode, DecoderHelperAbi, DecoderHelperBytecode, + HeaderDecoderHelperAbi, + HeaderDecoderHelperBytecode, InboxAbi, InboxBytecode, OutboxAbi, @@ -71,7 +73,7 @@ export const setupL1Contracts = async ( l1RpcUrl: string, account: HDAccount | PrivateKeyAccount, logger: DebugLogger, - deployDecoderHelper = false, + deployDecoderHelpers = false, ) => { const l1Artifacts: L1ContractArtifactsForDeployment = { contractDeploymentEmitter: { @@ -95,11 +97,15 @@ export const setupL1Contracts = async ( contractBytecode: RollupBytecode, }, }; - if (deployDecoderHelper) { + if (deployDecoderHelpers) { l1Artifacts.decoderHelper = { contractAbi: DecoderHelperAbi, contractBytecode: DecoderHelperBytecode, }; + l1Artifacts.headerDecoderHelper = { + contractAbi: HeaderDecoderHelperAbi, + contractBytecode: HeaderDecoderHelperBytecode, + }; } return await deployL1Contracts(l1RpcUrl, account, localAnvil, logger, l1Artifacts); }; diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 2bc6bc05aad..4428afd2a8a 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -28,7 +28,8 @@ import { } from '@aztec/circuits.js/factories'; import { createEthereumChain } from '@aztec/ethereum'; import { makeTuple, range } from '@aztec/foundation/array'; -import { DecoderHelperAbi, InboxAbi, OutboxAbi, RollupAbi } from '@aztec/l1-artifacts'; +import { numToUInt32BE } from '@aztec/foundation/serialize'; +import { DecoderHelperAbi, HeaderDecoderHelperAbi, InboxAbi, OutboxAbi, RollupAbi } from '@aztec/l1-artifacts'; import { EmptyRollupProver, L1Publisher, @@ -61,7 +62,6 @@ import { import { PrivateKeyAccount, privateKeyToAccount } from 'viem/accounts'; import { setupL1Contracts } from './fixtures/utils.js'; -import { numToUInt32BE } from '@aztec/foundation/serialize'; // Accounts 4 and 5 of Anvil default startup with mnemonic: 'test test test test test test test test test test test junk' const sequencerPK = '0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a'; @@ -81,6 +81,7 @@ describe('L1Publisher integration', () => { let inboxAddress: Address; let outboxAddress: Address; let decoderHelperAddress: Address; + let headerDecoderHelperAddress: Address; let rollup: GetContractReturnType>; let inbox: GetContractReturnType< @@ -90,6 +91,7 @@ describe('L1Publisher integration', () => { >; let outbox: GetContractReturnType>; let decoderHelper: GetContractReturnType>; + let headerDecoderHelper: GetContractReturnType>; let publisher: L1Publisher; let l2Proof: Buffer; @@ -103,7 +105,7 @@ describe('L1Publisher integration', () => { const chainId = createEthereumChain(config.rpcUrl, config.apiKey).chainInfo.id; // To overwrite the test data, set this to true and run the tests. - const OVERWRITE_TEST_DATA = true; + const OVERWRITE_TEST_DATA = false; beforeEach(async () => { deployerAccount = privateKeyToAccount(deployerPK); @@ -118,6 +120,7 @@ describe('L1Publisher integration', () => { inboxAddress = getAddress(l1ContractAddresses.inboxAddress.toString()); outboxAddress = getAddress(l1ContractAddresses.outboxAddress.toString()); decoderHelperAddress = getAddress(l1ContractAddresses.decoderHelperAddress.toString()); + headerDecoderHelperAddress = getAddress(l1ContractAddresses.headerDecoderHelperAddress.toString()); // Set up contract instances rollup = getContract({ @@ -141,6 +144,11 @@ describe('L1Publisher integration', () => { abi: DecoderHelperAbi, publicClient, }); + headerDecoderHelper = getContract({ + address: headerDecoderHelperAddress!, + abi: HeaderDecoderHelperAbi, + publicClient, + }); builderDb = await MerkleTrees.new(levelup((memdown as any)())).then(t => t.asLatest()); const vks = getVerificationKeys(); @@ -269,7 +277,11 @@ describe('L1Publisher integration', () => { block: { // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values bellow. // This should not be a problem for testing as long as the values are not larger than u32. - archive: `0x${block.archive.root.toBuffer().toString('hex').padStart(64, '0')}${numToUInt32BE(block.archive.nextAvailableLeafIndex).toString('hex').padStart(4, '0')}`, + archive: `0x${block.archive.root.toBuffer().toString('hex').padStart(64, '0')}${numToUInt32BE( + block.archive.nextAvailableLeafIndex, + ) + .toString('hex') + .padStart(4, '0')}`, blockNumber: block.number, body: `0x${block.bodyToBuffer().toString('hex')}`, calldataHash: `0x${block.getCalldataHash().toString('hex').padStart(64, '0')}`, @@ -280,6 +292,7 @@ describe('L1Publisher integration', () => { timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), version: Number(block.header.globalVariables.version.toBigInt()), + // TODO(#4031): Extract these again once the solidity contract is updated. // startStateHash: `0x${block.getStartStateHash().toString('hex').padStart(64, '0')}`, // endStateHash: `0x${block.getEndStateHash().toString('hex').padStart(64, '0')}`, // publicInputsHash: `0x${block.getPublicInputsHash().toBuffer().toString('hex').padStart(64, '0')}`, @@ -291,8 +304,8 @@ describe('L1Publisher integration', () => { }; it(`Build ${numberOfConsecutiveBlocks} blocks of 4 bloated txs building on each other`, async () => { - const stateInRollup_ = await rollup.read.archive(); - expect(hexStringToBuffer(stateInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); + const archiveInRollup_ = await rollup.read.archive(); + expect(hexStringToBuffer(archiveInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); const blockNumber = await publicClient.getBlockNumber(); // random recipient address, just kept consistent for easy testing ts/sol. @@ -362,65 +375,76 @@ describe('L1Publisher integration', () => { writeJson(`mixed_block_${i}`, block, l1ToL2Messages, l1ToL2Content, recipientAddress, deployerAccount.address); - // await publisher.publishL2Block(block); - - // const logs = await publicClient.getLogs({ - // address: rollupAddress, - // event: getAbiItem({ - // abi: RollupAbi, - // name: 'L2BlockProcessed', - // }), - // fromBlock: blockNumber + 1n, - // }); - // expect(logs).toHaveLength(i + 1); - // expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); - - // const ethTx = await publicClient.getTransaction({ - // hash: logs[i].transactionHash!, - // }); - - // const expectedData = encodeFunctionData({ - // abi: RollupAbi, - // functionName: 'process', - // args: [ - // `0x${block.header.toBuffer().toString('hex')}`, - // `0x${block.archive.toBuffer().toString('hex')}`, - // `0x${block.bodyToBuffer().toString('hex')}`, - // `0x${l2Proof.toString('hex')}`, - // ], - // }); - // expect(ethTx.input).toEqual(expectedData); - - // const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; - // const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); - // const decodedRes = await decoderHelper.read.decode(decoderArgs); - // const stateInRollup = await rollup.read.archive(); - - // expect(block.number).toEqual(Number(decodedRes[0])); - // expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); - // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); - // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); + await publisher.publishL2Block(block); + + const logs = await publicClient.getLogs({ + address: rollupAddress, + event: getAbiItem({ + abi: RollupAbi, + name: 'L2BlockProcessed', + }), + fromBlock: blockNumber + 1n, + }); + expect(logs).toHaveLength(i + 1); + expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); + + const ethTx = await publicClient.getTransaction({ + hash: logs[i].transactionHash!, + }); + + const expectedData = encodeFunctionData({ + abi: RollupAbi, + functionName: 'process', + args: [ + `0x${block.header.toBuffer().toString('hex')}`, + `0x${block.archive.toBuffer().toString('hex')}`, + `0x${block.bodyToBuffer().toString('hex')}`, + `0x${l2Proof.toString('hex')}`, + ], + }); + expect(ethTx.input).toEqual(expectedData); + + const headerDecoderArgs = [`0x${block.header.toBuffer().toString('hex')}`] as const; + const decodedHeader = await headerDecoderHelper.read.decode(headerDecoderArgs); + + expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual(Number(decodedHeader.chainId)); + expect(Number(block.header.globalVariables.version.toBigInt())).toEqual(Number(decodedHeader.version)); + expect(block.number).toEqual(Number(decodedHeader.blockNumber)); + expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual(Number(decodedHeader.timestamp)); + + // TODO(benesjan): this ugly. Unify how the archive value is represented. + const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchive); + const expectedLastArchiveRoot = block.header.lastArchive.root; + expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); + + const archiveInRollup = Fr.fromString(await rollup.read.archive()); + expect(block.archive.root).toEqual(archiveInRollup); + + const decoderArgs = [`0x${block.bodyToBuffer().toString('hex')}`] as const; + const decodedConsumables = await decoderHelper.read.computeConsumables(decoderArgs); + + // TODO(#4031): Re-enable these checks // expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); // expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - // expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); - - // // check that values have been consumed from the inbox - // for (let j = 0; j < l1ToL2Messages.length; j++) { - // if (l1ToL2Messages[j].isZero()) { - // continue; - // } - // expect(await inbox.read.contains([l1ToL2Messages[j].toString()])).toBeFalsy(); - // } - // // check that values are inserted into the outbox - // for (let j = 0; j < block.newL2ToL1Msgs.length; j++) { - // expect(await outbox.read.contains([block.newL2ToL1Msgs[j].toString()])).toBeTruthy(); - // } + expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedConsumables[1].toString())); + + // check that values have been consumed from the inbox + for (let j = 0; j < l1ToL2Messages.length; j++) { + if (l1ToL2Messages[j].isZero()) { + continue; + } + expect(await inbox.read.contains([l1ToL2Messages[j].toString()])).toBeFalsy(); + } + // check that values are inserted into the outbox + for (let j = 0; j < block.newL2ToL1Msgs.length; j++) { + expect(await outbox.read.contains([block.newL2ToL1Msgs[j].toString()])).toBeTruthy(); + } } }, 360_000); it(`Build ${numberOfConsecutiveBlocks} blocks of 4 empty txs building on each other`, async () => { - const stateInRollup_ = await rollup.read.archive(); - expect(hexStringToBuffer(stateInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); + const archiveInRollup_ = await rollup.read.archive(); + expect(hexStringToBuffer(archiveInRollup_.toString())).toEqual(Buffer.alloc(32, 0)); const blockNumber = await publicClient.getBlockNumber(); @@ -443,47 +467,58 @@ describe('L1Publisher integration', () => { writeJson(`empty_block_${i}`, block, l1ToL2Messages, [], AztecAddress.ZERO, deployerAccount.address); - // await publisher.publishL2Block(block); - - // const logs = await publicClient.getLogs({ - // address: rollupAddress, - // event: getAbiItem({ - // abi: RollupAbi, - // name: 'L2BlockProcessed', - // }), - // fromBlock: blockNumber + 1n, - // }); - // expect(logs).toHaveLength(i + 1); - // expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); - - // const ethTx = await publicClient.getTransaction({ - // hash: logs[i].transactionHash!, - // }); - - // const expectedData = encodeFunctionData({ - // abi: RollupAbi, - // functionName: 'process', - // args: [ - // `0x${block.header.toBuffer().toString('hex')}`, - // `0x${block.archive.toBuffer().toString('hex')}`, - // `0x${block.bodyToBuffer().toString('hex')}`, - // `0x${l2Proof.toString('hex')}`, - // ], - // }); - // expect(ethTx.input).toEqual(expectedData); - - // const decoderArgs = [`0x${block.toBufferWithLogs().toString('hex')}`] as const; - // const decodedHashes = await decoderHelper.read.computeDiffRootAndMessagesHash(decoderArgs); - // const decodedRes = await decoderHelper.read.decode(decoderArgs); - // const stateInRollup = await rollup.read.archive(); - - // expect(block.number).toEqual(Number(decodedRes[0])); - // expect(block.getStartStateHash()).toEqual(hexStringToBuffer(decodedRes[1].toString())); - // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(decodedRes[2].toString())); - // expect(block.getEndStateHash()).toEqual(hexStringToBuffer(stateInRollup.toString())); + await publisher.publishL2Block(block); + + const logs = await publicClient.getLogs({ + address: rollupAddress, + event: getAbiItem({ + abi: RollupAbi, + name: 'L2BlockProcessed', + }), + fromBlock: blockNumber + 1n, + }); + expect(logs).toHaveLength(i + 1); + expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); + + const ethTx = await publicClient.getTransaction({ + hash: logs[i].transactionHash!, + }); + + const expectedData = encodeFunctionData({ + abi: RollupAbi, + functionName: 'process', + args: [ + `0x${block.header.toBuffer().toString('hex')}`, + `0x${block.archive.toBuffer().toString('hex')}`, + `0x${block.bodyToBuffer().toString('hex')}`, + `0x${l2Proof.toString('hex')}`, + ], + }); + expect(ethTx.input).toEqual(expectedData); + + const headerDecoderArgs = [`0x${block.header.toBuffer().toString('hex')}`] as const; + const decodedHeader = await headerDecoderHelper.read.decode(headerDecoderArgs); + + expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual(Number(decodedHeader.chainId)); + expect(Number(block.header.globalVariables.version.toBigInt())).toEqual(Number(decodedHeader.version)); + expect(block.number).toEqual(Number(decodedHeader.blockNumber)); + expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual(Number(decodedHeader.timestamp)); + + // TODO(benesjan): this ugly. Unify how the archive value is represented. + const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchive); + const expectedLastArchiveRoot = block.header.lastArchive.root; + expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); + + const archiveInRollup = Fr.fromString(await rollup.read.archive()); + expect(block.archive.root).toEqual(archiveInRollup); + + const decoderArgs = [`0x${block.bodyToBuffer().toString('hex')}`] as const; + const decodedConsumables = await decoderHelper.read.computeConsumables(decoderArgs); + + // TODO(#4031): Re-enable these checks // expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); // expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - // expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedHashes[1].toString())); + expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedConsumables[1].toString())); } }, 60_000); }); diff --git a/yarn-project/ethereum/src/deploy_l1_contracts.ts b/yarn-project/ethereum/src/deploy_l1_contracts.ts index 9682cc4e18b..0fdeb6339ac 100644 --- a/yarn-project/ethereum/src/deploy_l1_contracts.ts +++ b/yarn-project/ethereum/src/deploy_l1_contracts.ts @@ -64,6 +64,10 @@ export interface L1ContractArtifactsForDeployment { * Decoder contract artifacts */ decoderHelper?: ContractArtifacts; + /** + * Header decoder contract artifacts + */ + headerDecoderHelper?: ContractArtifacts; /** * Inbox contract artifacts */ @@ -176,6 +180,17 @@ export const deployL1Contracts = async ( logger(`Deployed DecoderHelper at ${decoderHelperAddress}`); } + let headerDecoderHelperAddress: EthAddress | undefined; + if (contractsToDeploy.headerDecoderHelper) { + headerDecoderHelperAddress = await deployL1Contract( + walletClient, + publicClient, + contractsToDeploy.headerDecoderHelper.contractAbi, + contractsToDeploy.headerDecoderHelper.contractBytecode, + ); + logger(`Deployed HeaderDecoderHelper at ${headerDecoderHelperAddress}`); + } + const l1Contracts: L1ContractAddresses = { rollupAddress, registryAddress, @@ -183,6 +198,7 @@ export const deployL1Contracts = async ( outboxAddress, contractDeploymentEmitterAddress, decoderHelperAddress: decoderHelperAddress ?? EthAddress.ZERO, + headerDecoderHelperAddress: headerDecoderHelperAddress ?? EthAddress.ZERO, }; return { diff --git a/yarn-project/ethereum/src/l1_contract_addresses.ts b/yarn-project/ethereum/src/l1_contract_addresses.ts index a5021698775..8b46c7c60d6 100644 --- a/yarn-project/ethereum/src/l1_contract_addresses.ts +++ b/yarn-project/ethereum/src/l1_contract_addresses.ts @@ -28,4 +28,8 @@ export interface L1ContractAddresses { * Decoder Helper Address. */ decoderHelperAddress: EthAddress; + /** + * Header Decoder Helper Address. + */ + headerDecoderHelperAddress: EthAddress; } diff --git a/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts b/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts index aa5801a715b..5363c6008b6 100644 --- a/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts +++ b/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts @@ -31,6 +31,7 @@ async function createPXEService(): Promise { outboxAddress: EthAddress.random(), contractDeploymentEmitterAddress: EthAddress.random(), decoderHelperAddress: EthAddress.random(), + headerDecoderHelperAddress: EthAddress.random(), }; node.getL1ContractAddresses.mockResolvedValue(mockedContracts); diff --git a/yarn-project/sequencer-client/src/config.ts b/yarn-project/sequencer-client/src/config.ts index 370e9f13702..6b14f491923 100644 --- a/yarn-project/sequencer-client/src/config.ts +++ b/yarn-project/sequencer-client/src/config.ts @@ -59,6 +59,7 @@ export function getConfigEnvVars(): SequencerClientConfig { ? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS) : EthAddress.ZERO, decoderHelperAddress: EthAddress.ZERO, + headerDecoderHelperAddress: EthAddress.ZERO, }; return { From 6c295635425435e07a931f23772c6e24a46f7389 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 12:46:54 +0000 Subject: [PATCH 08/23] re-enabling state hash/last archive check --- .../src/publisher/l1-publisher.test.ts | 15 ++++---- .../src/publisher/l1-publisher.ts | 34 +++++++++---------- .../src/publisher/viem-tx-sender.ts | 6 ++-- 3 files changed, 26 insertions(+), 29 deletions(-) diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts index e8ac5ab87b9..0f01d78bcbf 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts @@ -31,7 +31,7 @@ describe('L1Publisher', () => { txReceipt = { transactionHash: txHash, status: true } as MinimalTransactionReceipt; txSender.sendProcessTx.mockResolvedValueOnce(txHash); txSender.getTransactionReceipt.mockResolvedValueOnce(txReceipt); - txSender.getCurrentStateHash.mockResolvedValue(l2Block.getStartStateHash()); + txSender.getCurrentArchive.mockResolvedValue(l2Block.header.lastArchive.root.toBuffer()); publisher = new L1Publisher(txSender, { l1BlockPublishRetryIntervalMS: 1 }); }); @@ -44,13 +44,12 @@ describe('L1Publisher', () => { expect(txSender.getTransactionReceipt).toHaveBeenCalledWith(txHash); }); - // TODO(#3936): Temporarily disabling this because L2Block encoding has not yet been updated. - // it('does not publish if start hash is different to expected', async () => { - // txSender.getCurrentStateHash.mockResolvedValueOnce(L2Block.random(43).getStartStateHash()); - // const result = await publisher.processL2Block(l2Block); - // expect(result).toBe(false); - // expect(txSender.sendProcessTx).not.toHaveBeenCalled(); - // }); + it('does not publish if last archive root is different to expected', async () => { + txSender.getCurrentArchive.mockResolvedValueOnce(L2Block.random(43).archive.root.toBuffer()); + const result = await publisher.publishL2Block(l2Block); + expect(result).toBe(false); + expect(txSender.sendProcessTx).not.toHaveBeenCalled(); + }); it('does not retry if sending a tx fails', async () => { txSender.sendProcessTx.mockReset().mockRejectedValueOnce(new Error()).mockResolvedValueOnce(txHash); diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts index efa87c38542..d9b70a53ecc 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts @@ -75,10 +75,10 @@ export interface L1PublisherTxSender { getTransactionStats(txHash: string): Promise; /** - * Returns the current state hash. - * @returns The current state hash of the rollup contract. + * Returns the current archive root. + * @returns The current archive root of the rollup contract. */ - getCurrentStateHash(): Promise; + getCurrentArchive(): Promise; } /** @@ -135,15 +135,14 @@ export class L1Publisher implements L2BlockReceiver { body: block.bodyToBuffer(), proof: Buffer.alloc(0), }; - const startStateHash = block.getStartStateHash(); + const lastArchive = block.header.lastArchive.root.toBuffer(); while (!this.interrupted) { // TODO: Remove this block number check, it's here because we don't currently have proper genesis state on the contract - // TODO(#3936): Temporarily disabling this because L2Block encoding has not yet been updated. - // if (l2BlockData.number != 1 && !(await this.checkStartStateHash(startStateHash))) { - // this.log(`Detected different state hash prior to publishing rollup, aborting publish...`); - // break; - // } + if (block.number != 1 && !(await this.checkLastArchiveHash(lastArchive))) { + this.log(`Detected different last archive prior to publishing a block, aborting publish...`); + break; + } const txHash = await this.sendProcessTx(txData); if (!txHash) { @@ -169,7 +168,7 @@ export class L1Publisher implements L2BlockReceiver { } // Check if someone else incremented the block number - if (!(await this.checkStartStateHash(startStateHash))) { + if (!(await this.checkLastArchiveHash(lastArchive))) { this.log('Publish failed. Detected different state hash.'); break; } @@ -242,17 +241,16 @@ export class L1Publisher implements L2BlockReceiver { } /** - * Verifies that the given value of start state hash equals that on the rollup contract - * @param startStateHash - The start state hash of the block we wish to publish. + * Verifies that the given value of last archive in a block header equals current archive of the rollup contract + * @param lastArchive - The last archive of the block we wish to publish. * @returns Boolean indicating if the hashes are equal. */ - // TODO(benesjan): rename this - private async checkStartStateHash(startStateHash: Buffer): Promise { - const fromChain = await this.txSender.getCurrentStateHash(); - const areSame = startStateHash.equals(fromChain); + private async checkLastArchiveHash(lastArchive: Buffer): Promise { + const fromChain = await this.txSender.getCurrentArchive(); + const areSame = lastArchive.equals(fromChain); if (!areSame) { - this.log(`CONTRACT STATE HASH: ${fromChain.toString('hex')}`); - this.log(`NEW BLOCK STATE HASH: ${startStateHash.toString('hex')}`); + this.log(`CONTRACT ARCHIVE: ${fromChain.toString('hex')}`); + this.log(`NEW BLOCK LAST ARCHIVE: ${lastArchive.toString('hex')}`); } return areSame; } diff --git a/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts b/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts index e301b6d0b63..8d5118df410 100644 --- a/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts +++ b/yarn-project/sequencer-client/src/publisher/viem-tx-sender.ts @@ -75,9 +75,9 @@ export class ViemTxSender implements L1PublisherTxSender { }); } - async getCurrentStateHash(): Promise { - const stateHash = await this.rollupContract.read.archive(); - return Buffer.from(stateHash.replace('0x', ''), 'hex'); + async getCurrentArchive(): Promise { + const archive = await this.rollupContract.read.archive(); + return Buffer.from(archive.replace('0x', ''), 'hex'); } async getTransactionStats(txHash: string): Promise { From bdc66426db95b0044a86e68932c91fc7a196a0a7 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 15:08:05 +0000 Subject: [PATCH 09/23] Decoding full header --- l1-contracts/src/core/Rollup.sol | 21 +++---- .../core/libraries/decoders/HeaderDecoder.sol | 62 +++++++++++++++---- l1-contracts/test/decoders/Decoder.t.sol | 10 +-- 3 files changed, 66 insertions(+), 27 deletions(-) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index 708e9fdaecc..e44ba946ad5 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -53,10 +53,9 @@ contract Rollup is IRollup { function process( bytes calldata _header, bytes calldata _archive, - bytes calldata _body, // Note: this will be replaced with _txsHash once the separation is finished. + bytes calldata _body, // TODO(#3944): this will be replaced with _txsHash once the separation is finished. bytes memory _proof ) external override(IRollup) { - // TODO: @benejsan Should we represent this values from header as a nice struct? HeaderDecoder.Header memory header = HeaderDecoder.decode(_header); _validateHeader(header); @@ -96,21 +95,21 @@ contract Rollup is IRollup { IOutbox outbox = REGISTRY.getOutbox(); outbox.sendL1Messages(l2ToL1Msgs); - emit L2BlockProcessed(header.blockNumber); + emit L2BlockProcessed(header.globalVariables.blockNumber); } function _validateHeader(HeaderDecoder.Header memory header) internal view { - if (block.chainid != header.chainId) { - revert Errors.Rollup__InvalidChainId(header.chainId, block.chainid); + if (block.chainid != header.globalVariables.chainId) { + revert Errors.Rollup__InvalidChainId(header.globalVariables.chainId, block.chainid); } - if (header.version != VERSION) { - revert Errors.Rollup__InvalidVersion(header.version, VERSION); + if (header.globalVariables.version != VERSION) { + revert Errors.Rollup__InvalidVersion(header.globalVariables.version, VERSION); } // block number already constrained by archive hash check - if (header.timestamp > block.timestamp) { + if (header.globalVariables.timestamp > block.timestamp) { revert Errors.Rollup__TimestampInFuture(); } @@ -118,13 +117,13 @@ contract Rollup is IRollup { // This will make multiple l2 blocks in the same l1 block impractical. // e.g., the first block will update timestamp which will make the second fail. // Could possibly allow multiple blocks if in same l1 block - if (header.timestamp < lastBlockTs) { + if (header.globalVariables.timestamp < lastBlockTs) { revert Errors.Rollup__TimestampTooOld(); } // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. - if (archive != bytes32(0) && archive != header.lastArchive) { - revert Errors.Rollup__InvalidArchive(archive, header.lastArchive); + if (archive != bytes32(0) && archive != header.lastArchiveRoot) { + revert Errors.Rollup__InvalidArchive(archive, header.lastArchiveRoot); } } diff --git a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol b/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol index 2234afa339e..c0881f3eff8 100644 --- a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol +++ b/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol @@ -48,13 +48,37 @@ import {Hash} from "../Hash.sol"; * | --- | --- | --- */ library HeaderDecoder { - // TODO: This is only partial - struct Header { + struct GlobalVariables { uint256 chainId; uint256 version; uint256 blockNumber; uint256 timestamp; - bytes32 lastArchive; + } + + struct PartialStateReference { + bytes32 noteHashTreeRoot; + uint32 noteHashTreeNextAvailableLeafIndex; + bytes32 nullifierTreeRoot; + uint32 nullifierTreeNextAvailableLeafIndex; + bytes32 contractTreeRoot; + uint32 contractTreeNextAvailableLeafIndex; + bytes32 publicDataTreeRoot; + uint32 publicDataTreeNextAvailableLeafIndex; + } + + struct StateReference { + bytes32 l1ToL2MessageTreeRoot; + uint32 l1ToL2MessageTreeNextAvailableLeafIndex; + // Note: Can't use "partial" name here as in yellow paper because it is a reserved solidity keyword + PartialStateReference partialStateReference; + } + + struct Header { + GlobalVariables globalVariables; + StateReference stateReference; + bytes32 lastArchiveRoot; + uint32 lastArchiveNextAvailableLeafIndex; + bytes32 bodyHash; } /** @@ -62,16 +86,32 @@ library HeaderDecoder { * @param _header - The header calldata. */ function decode(bytes calldata _header) internal pure returns (Header memory) { - Header memory header; + require(_header.length == 376, "Invalid header length"); - header.chainId = uint256(bytes32(_header[:0x20])); - header.version = uint256(bytes32(_header[0x20:0x40])); - header.blockNumber = uint256(bytes32(_header[0x40:0x60])); - header.timestamp = uint256(bytes32(_header[0x60:0x80])); - - // The rest is needed only by verifier and hence not decoded here. + Header memory header; - header.lastArchive = bytes32(_header[0x134:0x154]); + header.globalVariables.chainId = uint256(bytes32(_header[:0x20])); + header.globalVariables.version = uint256(bytes32(_header[0x20:0x40])); + header.globalVariables.blockNumber = uint256(bytes32(_header[0x40:0x60])); + header.globalVariables.timestamp = uint256(bytes32(_header[0x60:0x80])); + header.stateReference.l1ToL2MessageTreeRoot = bytes32(_header[0x80:0xa0]); + header.stateReference.l1ToL2MessageTreeNextAvailableLeafIndex = + uint32(bytes4(_header[0xa0:0xa4])); + header.stateReference.partialStateReference.noteHashTreeRoot = bytes32(_header[0xa4:0xc4]); + header.stateReference.partialStateReference.noteHashTreeNextAvailableLeafIndex = + uint32(bytes4(_header[0xc4:0xc8])); + header.stateReference.partialStateReference.nullifierTreeRoot = bytes32(_header[0xc8:0xe8]); + header.stateReference.partialStateReference.nullifierTreeNextAvailableLeafIndex = + uint32(bytes4(_header[0xe8:0xec])); + header.stateReference.partialStateReference.contractTreeRoot = bytes32(_header[0xec:0x10c]); + header.stateReference.partialStateReference.contractTreeNextAvailableLeafIndex = + uint32(bytes4(_header[0x10c:0x110])); + header.stateReference.partialStateReference.publicDataTreeRoot = bytes32(_header[0x110:0x130]); + header.stateReference.partialStateReference.publicDataTreeNextAvailableLeafIndex = + uint32(bytes4(_header[0x130:0x134])); + header.lastArchiveRoot = bytes32(_header[0x134:0x154]); + header.lastArchiveNextAvailableLeafIndex = uint32(bytes4(_header[0x154:0x158])); + header.bodyHash = bytes32(_header[0x158:0x178]); return header; } diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index a4e5204ef55..f9925c529b5 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -60,11 +60,11 @@ contract DecoderTest is DecoderBase { { HeaderDecoder.Header memory header = headerHelper.decode(data.block.header); - assertEq(header.blockNumber, data.block.blockNumber, "Invalid block number"); - assertEq(header.chainId, data.block.chainId, "Invalid chain Id"); - assertEq(header.lastArchive, data.block.lastArchive, "Invalid last archive"); - assertEq(header.timestamp, data.block.timestamp, "Invalid timestamp"); - assertEq(header.version, data.block.version, "Invalid version"); + assertEq(header.globalVariables.blockNumber, data.block.blockNumber, "Invalid block number"); + assertEq(header.globalVariables.chainId, data.block.chainId, "Invalid chain Id"); + assertEq(header.globalVariables.timestamp, data.block.timestamp, "Invalid timestamp"); + assertEq(header.globalVariables.version, data.block.version, "Invalid version"); + assertEq(header.lastArchiveRoot, data.block.lastArchive, "Invalid last archive"); } // Messages From 38ba535061de1aa5e24be74f143e07b2bf5e3861 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 15:38:18 +0000 Subject: [PATCH 10/23] fix --- .../src/integration_l1_publisher.test.ts | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 4428afd2a8a..44e9d3b0081 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -407,13 +407,19 @@ describe('L1Publisher integration', () => { const headerDecoderArgs = [`0x${block.header.toBuffer().toString('hex')}`] as const; const decodedHeader = await headerDecoderHelper.read.decode(headerDecoderArgs); - expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual(Number(decodedHeader.chainId)); - expect(Number(block.header.globalVariables.version.toBigInt())).toEqual(Number(decodedHeader.version)); - expect(block.number).toEqual(Number(decodedHeader.blockNumber)); - expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual(Number(decodedHeader.timestamp)); + expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual( + Number(decodedHeader.globalVariables.chainId), + ); + expect(Number(block.header.globalVariables.version.toBigInt())).toEqual( + Number(decodedHeader.globalVariables.version), + ); + expect(block.number).toEqual(Number(decodedHeader.globalVariables.blockNumber)); + expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual( + Number(decodedHeader.globalVariables.timestamp), + ); // TODO(benesjan): this ugly. Unify how the archive value is represented. - const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchive); + const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchiveRoot); const expectedLastArchiveRoot = block.header.lastArchive.root; expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); @@ -499,13 +505,19 @@ describe('L1Publisher integration', () => { const headerDecoderArgs = [`0x${block.header.toBuffer().toString('hex')}`] as const; const decodedHeader = await headerDecoderHelper.read.decode(headerDecoderArgs); - expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual(Number(decodedHeader.chainId)); - expect(Number(block.header.globalVariables.version.toBigInt())).toEqual(Number(decodedHeader.version)); - expect(block.number).toEqual(Number(decodedHeader.blockNumber)); - expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual(Number(decodedHeader.timestamp)); + expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual( + Number(decodedHeader.globalVariables.chainId), + ); + expect(Number(block.header.globalVariables.version.toBigInt())).toEqual( + Number(decodedHeader.globalVariables.version), + ); + expect(block.number).toEqual(Number(decodedHeader.globalVariables.blockNumber)); + expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual( + Number(decodedHeader.globalVariables.timestamp), + ); // TODO(benesjan): this ugly. Unify how the archive value is represented. - const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchive); + const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchiveRoot); const expectedLastArchiveRoot = block.header.lastArchive.root; expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); From a884491f7b5ef05fa967961a4108419b58596336 Mon Sep 17 00:00:00 2001 From: benesjan Date: Tue, 16 Jan 2024 15:54:27 +0000 Subject: [PATCH 11/23] final touches --- l1-contracts/test/decoders/Base.sol | 1 - .../archiver/src/archiver/eth_log_handlers.ts | 1 - yarn-project/circuits.js/src/structs/header.ts | 2 +- .../src/integration_l1_publisher.test.ts | 4 ++-- .../src/publisher/l1-publisher.test.ts | 12 ++++++------ .../src/publisher/l1-publisher.ts | 2 +- yarn-project/sequencer-client/src/receiver.ts | 2 +- .../src/sequencer/sequencer.test.ts | 16 ++++++++-------- .../sequencer-client/src/sequencer/sequencer.ts | 2 +- 9 files changed, 20 insertions(+), 22 deletions(-) diff --git a/l1-contracts/test/decoders/Base.sol b/l1-contracts/test/decoders/Base.sol index 19cbb6ae2ab..e0093a6bea4 100644 --- a/l1-contracts/test/decoders/Base.sol +++ b/l1-contracts/test/decoders/Base.sol @@ -25,7 +25,6 @@ contract DecoderBase is Test { } struct Data { - // TODO(benejsan): Use HeaderDecoder.Header here? bytes archive; uint256 blockNumber; bytes body; diff --git a/yarn-project/archiver/src/archiver/eth_log_handlers.ts b/yarn-project/archiver/src/archiver/eth_log_handlers.ts index 1b8b27febb2..4bf8b8009ca 100644 --- a/yarn-project/archiver/src/archiver/eth_log_handlers.ts +++ b/yarn-project/archiver/src/archiver/eth_log_handlers.ts @@ -107,7 +107,6 @@ async function getBlockFromCallData( if (functionName !== 'process') { throw new Error(`Unexpected method called ${functionName}`); } - // TODO(benesjan): This is brittle and should be handled inside the L2 Block. const [headerHex, archiveHex, bodyHex] = args! as [Hex, Hex, Hex, Hex]; const blockBuffer = Buffer.concat([ Buffer.from(hexToBytes(headerHex)), diff --git a/yarn-project/circuits.js/src/structs/header.ts b/yarn-project/circuits.js/src/structs/header.ts index afe20bd200a..6c70655e81d 100644 --- a/yarn-project/circuits.js/src/structs/header.ts +++ b/yarn-project/circuits.js/src/structs/header.ts @@ -30,7 +30,7 @@ export class Header { static fromBuffer(buffer: Buffer | BufferReader): Header { const reader = BufferReader.asReader(buffer); - // TODO(benesjan): unify ordering here with ordering in constructor. + // TODO(#4045): unify ordering here with ordering in constructor. const globalVariables = reader.readObject(GlobalVariables); const state = reader.readObject(StateReference); const lastArchive = reader.readObject(AppendOnlyTreeSnapshot); diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 44e9d3b0081..c369ef6b3f6 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -375,7 +375,7 @@ describe('L1Publisher integration', () => { writeJson(`mixed_block_${i}`, block, l1ToL2Messages, l1ToL2Content, recipientAddress, deployerAccount.address); - await publisher.publishL2Block(block); + await publisher.processL2Block(block); const logs = await publicClient.getLogs({ address: rollupAddress, @@ -473,7 +473,7 @@ describe('L1Publisher integration', () => { writeJson(`empty_block_${i}`, block, l1ToL2Messages, [], AztecAddress.ZERO, deployerAccount.address); - await publisher.publishL2Block(block); + await publisher.processL2Block(block); const logs = await publicClient.getLogs({ address: rollupAddress, diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts index 0f01d78bcbf..94d8b9bda6f 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts @@ -37,7 +37,7 @@ describe('L1Publisher', () => { }); it('publishes l2 block to l1', async () => { - const result = await publisher.publishL2Block(l2Block); + const result = await publisher.processL2Block(l2Block); expect(result).toEqual(true); expect(txSender.sendProcessTx).toHaveBeenCalledWith({ header, archive, body, proof }); @@ -46,7 +46,7 @@ describe('L1Publisher', () => { it('does not publish if last archive root is different to expected', async () => { txSender.getCurrentArchive.mockResolvedValueOnce(L2Block.random(43).archive.root.toBuffer()); - const result = await publisher.publishL2Block(l2Block); + const result = await publisher.processL2Block(l2Block); expect(result).toBe(false); expect(txSender.sendProcessTx).not.toHaveBeenCalled(); }); @@ -54,7 +54,7 @@ describe('L1Publisher', () => { it('does not retry if sending a tx fails', async () => { txSender.sendProcessTx.mockReset().mockRejectedValueOnce(new Error()).mockResolvedValueOnce(txHash); - const result = await publisher.publishL2Block(l2Block); + const result = await publisher.processL2Block(l2Block); expect(result).toEqual(false); expect(txSender.sendProcessTx).toHaveBeenCalledTimes(1); @@ -63,7 +63,7 @@ describe('L1Publisher', () => { it('retries if fetching the receipt fails', async () => { txSender.getTransactionReceipt.mockReset().mockRejectedValueOnce(new Error()).mockResolvedValueOnce(txReceipt); - const result = await publisher.publishL2Block(l2Block); + const result = await publisher.processL2Block(l2Block); expect(result).toEqual(true); expect(txSender.getTransactionReceipt).toHaveBeenCalledTimes(2); @@ -72,7 +72,7 @@ describe('L1Publisher', () => { it('returns false if tx reverts', async () => { txSender.getTransactionReceipt.mockReset().mockResolvedValueOnce({ ...txReceipt, status: false }); - const result = await publisher.publishL2Block(l2Block); + const result = await publisher.processL2Block(l2Block); expect(result).toEqual(false); }); @@ -80,7 +80,7 @@ describe('L1Publisher', () => { it('returns false if interrupted', async () => { txSender.sendProcessTx.mockReset().mockImplementationOnce(() => sleep(10, txHash)); - const resultPromise = publisher.publishL2Block(l2Block); + const resultPromise = publisher.processL2Block(l2Block); publisher.interrupt(); const result = await resultPromise; diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts index d9b70a53ecc..defbf2ee7c4 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts @@ -128,7 +128,7 @@ export class L1Publisher implements L2BlockReceiver { * @param block - L2 block to publish. * @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise. */ - public async publishL2Block(block: L2Block): Promise { + public async processL2Block(block: L2Block): Promise { const txData = { header: block.header.toBuffer(), archive: block.archive.toBuffer(), diff --git a/yarn-project/sequencer-client/src/receiver.ts b/yarn-project/sequencer-client/src/receiver.ts index 4ae605ed98f..f731a8f8504 100644 --- a/yarn-project/sequencer-client/src/receiver.ts +++ b/yarn-project/sequencer-client/src/receiver.ts @@ -9,5 +9,5 @@ export interface L2BlockReceiver { * Receive and L2 block and process it, returns true if successful. * @param l2BlockData - L2 block to process. */ - publishL2Block(l2BlockData: L2Block): Promise; + processL2Block(l2BlockData: L2Block): Promise; } diff --git a/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts b/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts index 7bd063bb167..1bc34c9dc69 100644 --- a/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts +++ b/yarn-project/sequencer-client/src/sequencer/sequencer.test.ts @@ -102,7 +102,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce([tx]); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.publishL2Block.mockResolvedValueOnce(true); + publisher.processL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -117,7 +117,7 @@ describe('sequencer', () => { expectedTxHashes.map(hash => expect.objectContaining({ hash })), Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(new Fr(0n)), ); - expect(publisher.publishL2Block).toHaveBeenCalledWith(block); + expect(publisher.processL2Block).toHaveBeenCalledWith(block); }); it('builds a block out of several txs rejecting double spends', async () => { @@ -131,7 +131,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce(txs); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.publishL2Block.mockResolvedValueOnce(true); + publisher.processL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -154,7 +154,7 @@ describe('sequencer', () => { expectedTxHashes.map(hash => expect.objectContaining({ hash })), Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(new Fr(0n)), ); - expect(publisher.publishL2Block).toHaveBeenCalledWith(block); + expect(publisher.processL2Block).toHaveBeenCalledWith(block); expect(p2p.deleteTxs).toHaveBeenCalledWith([await doubleSpendTx.getTxHash()]); }); @@ -169,7 +169,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce(txs); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.publishL2Block.mockResolvedValueOnce(true); + publisher.processL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -187,7 +187,7 @@ describe('sequencer', () => { expectedTxHashes.map(hash => expect.objectContaining({ hash })), Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(new Fr(0n)), ); - expect(publisher.publishL2Block).toHaveBeenCalledWith(block); + expect(publisher.processL2Block).toHaveBeenCalledWith(block); expect(p2p.deleteTxs).toHaveBeenCalledWith([await invalidChainTx.getTxHash()]); }); @@ -199,7 +199,7 @@ describe('sequencer', () => { p2p.getTxs.mockResolvedValueOnce([tx]); blockBuilder.buildL2Block.mockResolvedValueOnce([block, proof]); - publisher.publishL2Block.mockResolvedValueOnce(true); + publisher.processL2Block.mockResolvedValueOnce(true); globalVariableBuilder.buildGlobalVariables.mockResolvedValueOnce( new GlobalVariables(chainId, version, new Fr(lastBlockNumber + 1), Fr.ZERO), ); @@ -216,7 +216,7 @@ describe('sequencer', () => { await sequencer.work(); - expect(publisher.publishL2Block).not.toHaveBeenCalled(); + expect(publisher.processL2Block).not.toHaveBeenCalled(); }); it('publishes contract data', async () => { diff --git a/yarn-project/sequencer-client/src/sequencer/sequencer.ts b/yarn-project/sequencer-client/src/sequencer/sequencer.ts index a99124e9c51..f23c8c9a9df 100644 --- a/yarn-project/sequencer-client/src/sequencer/sequencer.ts +++ b/yarn-project/sequencer-client/src/sequencer/sequencer.ts @@ -265,7 +265,7 @@ export class Sequencer { protected async publishL2Block(block: L2Block) { // Publishes new block to the network and awaits the tx to be mined this.state = SequencerState.PUBLISHING_BLOCK; - const publishedL2Block = await this.publisher.publishL2Block(block); + const publishedL2Block = await this.publisher.processL2Block(block); if (publishedL2Block) { this.log(`Successfully published block ${block.number}`); this.lastPublishedBlock = block.number; From 9cae8243ba117ed5a748acad3c39e14a3946799a Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 11:13:25 +0000 Subject: [PATCH 12/23] passing only archive root to rollup --- l1-contracts/src/core/Rollup.sol | 17 +++++++++-------- l1-contracts/src/core/interfaces/IRollup.sol | 2 +- l1-contracts/test/Rollup.t.sol | 18 ++++++------------ l1-contracts/test/decoders/Base.sol | 2 +- l1-contracts/test/fixtures/empty_block_0.json | 2 +- l1-contracts/test/fixtures/empty_block_1.json | 2 +- l1-contracts/test/fixtures/mixed_block_0.json | 2 +- l1-contracts/test/fixtures/mixed_block_1.json | 2 +- .../src/integration_l1_publisher.test.ts | 6 +----- .../src/publisher/l1-publisher.test.ts | 2 +- .../src/publisher/l1-publisher.ts | 4 ++-- 11 files changed, 25 insertions(+), 34 deletions(-) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index e44ba946ad5..a0f5722d28d 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -45,14 +45,14 @@ contract Rollup is IRollup { /** * @notice Process an incoming L2 block and progress the state - * @param _header - The L2 block header. - * @param _archive - A snapshot (root and next available leaf index) of the archive tree after the L2 block is applied - * @param _body - The L2 block body. - * @param _proof - The proof of correct execution. + * @param _header - The L2 block header + * @param _archive - A root of the archive tree after the L2 block is applied + * @param _body - The L2 block body + * @param _proof - The proof of correct execution */ function process( bytes calldata _header, - bytes calldata _archive, + bytes32 _archive, bytes calldata _body, // TODO(#3944): this will be replaced with _txsHash once the separation is finished. bytes memory _proof ) external override(IRollup) { @@ -80,12 +80,13 @@ contract Rollup is IRollup { bytes32[] memory publicInputs = new bytes32[](1); publicInputs[0] = _computePublicInputHash(_header, txsHash, inHash); + // @todo @benesjan We will need `nextAvailableLeafIndex` of archive to verify the proof. This value is equal to + // current block number which is stored in the header (header.globalVariables.blockNumber). if (!VERIFIER.verify(_proof, publicInputs)) { revert Errors.Rollup__InvalidProof(); } - // TODO: @benejsan Manually extracting the root here is ugly. TODO: Re-think how to represent archive snap. - archive = bytes32(_archive[:0x20]); + archive = _archive; lastBlockTs = block.timestamp; // @todo (issue #605) handle fee collector @@ -107,7 +108,7 @@ contract Rollup is IRollup { revert Errors.Rollup__InvalidVersion(header.globalVariables.version, VERSION); } - // block number already constrained by archive hash check + // block number already constrained by archive root check if (header.globalVariables.timestamp > block.timestamp) { revert Errors.Rollup__TimestampInFuture(); diff --git a/l1-contracts/src/core/interfaces/IRollup.sol b/l1-contracts/src/core/interfaces/IRollup.sol index 264625275ff..47f6dd8b31a 100644 --- a/l1-contracts/src/core/interfaces/IRollup.sol +++ b/l1-contracts/src/core/interfaces/IRollup.sol @@ -7,7 +7,7 @@ interface IRollup { function process( bytes calldata _header, - bytes calldata _archive, + bytes32 _archive, bytes calldata _body, bytes memory _proof ) external; diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index ed2961ca95f..616eb18abbe 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -60,7 +60,7 @@ contract RollupTest is DecoderBase { function testRevertInvalidChainId() public { DecoderBase.Data memory data = load("empty_block_0").block; bytes memory header = data.header; - bytes memory archive = data.archive; + bytes32 archive = data.archive; bytes memory body = data.body; assembly { @@ -74,7 +74,7 @@ contract RollupTest is DecoderBase { function testRevertInvalidVersion() public { DecoderBase.Data memory data = load("empty_block_0").block; bytes memory header = data.header; - bytes memory archive = data.archive; + bytes32 archive = data.archive; bytes memory body = data.body; assembly { @@ -88,7 +88,7 @@ contract RollupTest is DecoderBase { function testRevertTimestampInFuture() public { DecoderBase.Data memory data = load("empty_block_0").block; bytes memory header = data.header; - bytes memory archive = data.archive; + bytes32 archive = data.archive; bytes memory body = data.body; uint256 ts = block.timestamp + 1; @@ -103,7 +103,7 @@ contract RollupTest is DecoderBase { function testRevertTimestampTooOld() public { DecoderBase.Data memory data = load("empty_block_0").block; bytes memory header = data.header; - bytes memory archive = data.archive; + bytes32 archive = data.archive; bytes memory body = data.body; // Overwrite in the rollup contract @@ -116,7 +116,7 @@ contract RollupTest is DecoderBase { function _testBlock(string memory name) public { DecoderBase.Full memory full = load(name); bytes memory header = full.block.header; - bytes memory archive = full.block.archive; + bytes32 archive = full.block.archive; bytes memory body = full.block.body; // We jump to the time of the block. @@ -161,13 +161,7 @@ contract RollupTest is DecoderBase { assertEq(inboxWrites.length, count, "Invalid inbox writes"); } - bytes32 archiveRoot; - - assembly { - archiveRoot := mload(add(archive, 32)) - } - - assertEq(rollup.archive(), archiveRoot, "Invalid archive"); + assertEq(rollup.archive(), archive, "Invalid archive"); } function _populateInbox(address _sender, bytes32 _recipient, bytes32[] memory _contents) internal { diff --git a/l1-contracts/test/decoders/Base.sol b/l1-contracts/test/decoders/Base.sol index e0093a6bea4..2d2bf4c4026 100644 --- a/l1-contracts/test/decoders/Base.sol +++ b/l1-contracts/test/decoders/Base.sol @@ -25,7 +25,7 @@ contract DecoderBase is Test { } struct Data { - bytes archive; + bytes32 archive; uint256 blockNumber; bytes body; bytes32 calldataHash; diff --git a/l1-contracts/test/fixtures/empty_block_0.json b/l1-contracts/test/fixtures/empty_block_0.json index e8312470550..3db7cbc6f84 100644 --- a/l1-contracts/test/fixtures/empty_block_0.json +++ b/l1-contracts/test/fixtures/empty_block_0.json @@ -35,7 +35,7 @@ ] }, "block": { - "archive": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee1100000002", + "archive": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11", "blockNumber": 1, "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index aeabd316808..bcf098a4cae 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -35,7 +35,7 @@ ] }, "block": { - "archive": "0x062c84d465ee9d45786f9027505262f29ec82349c3af173660688223d234946a00000003", + "archive": "0x062c84d465ee9d45786f9027505262f29ec82349c3af173660688223d234946a", "blockNumber": 2, "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", diff --git a/l1-contracts/test/fixtures/mixed_block_0.json b/l1-contracts/test/fixtures/mixed_block_0.json index f69ea9d7baa..94d6dc0fad5 100644 --- a/l1-contracts/test/fixtures/mixed_block_0.json +++ b/l1-contracts/test/fixtures/mixed_block_0.json @@ -52,7 +52,7 @@ ] }, "block": { - "archive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002", + "archive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", "blockNumber": 1, "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc000000909bbef5503d1570cbdfeef1232fcd239004bd51330c71084102df1b0139c96454a34fe9cc92f16c9b5d2533dab3abee1e6f76a18273bcfdf80b7a7cda429b708969d07be79d1941457464b82af9c8c2651e9b600a5131089f6843b80ac97d1043a69c02bced13318fb24cc05e475cc7a82caf0e1c9b7fd29692d53e3ac240524950cf9634ec8f79c3e8de8fb000d496890000009083b969edfbbb257128896182c090f34ff1055a32d42f9ccfc0b3dd3ce4cdf884a0e66f914bc63aaf4f5d07475e0eb18967ed28a4fa4a722844d748ad9cb87e0cd6f26836c85f99a81db636784da29be60e0514c60657d5eaee7bfd26d21f8912e54dc5a436919d32f94f92f8551875582ff1014c6212aafcbeb0aeb8fe378cd8fbe4cc0b72a00c2fa42818020315e30b0000009088900d1181bf09eb9401d224b2666f7361ed29ebfd46ca3c46b4ea3d24ede87559597ee2eaa8782b5d45b972da0c7f15d7d3684c0c52536a64ccb66ba3c1c9a4c2041bb0ab9cbd265801c5903bf9f1ce182b8827e39f1961318f284f9c82ec2d9d375ceb912d3862f6e99f7a5f4d4b751961378e0dab4241c89840533380328f47c47e47ff8cf9a44b7ef7fd84424a61000001bc00000090026c3b43889bbc795a4f21a026fa2868b016bd91e2b52e2ed7da7960ce6bf2f12e6330640580504824bdf0174c4b84c88602a8bb449639b0dfdbff4fa7d8cc80e507ad8a275cef132ecbadd5a21661d207bf4cc07ed6ac045f2bb927142b6c23faee0aae6fb05626267b51f90bcf26b523c1f3b9fa11973a138717d5b5fcd754477eccdc0951c614675265aa0d2c00a00000009060a961cbc3407502d66a39ccf0ac0b5de0d2ec509f149a509553909a67de20e04c15e05c11abdb2683b84c468fae0c55fce1de1efc63edc254961c5184530472e7170c20d2f7f8627617283e0e38f5ed0d5cf245fbfc1de41ddd83006014f575cadbcfbfc4958047cb85f884272bed122ec46b08ae5ed4cc14b6bd8703df3ce13f7f82aac100a669c48d98af079f2bc6000000903ea20ca150a8cdd46bd1040b3026003863c133391fb9c2348f37741f6676eb981ba34dc9042b14fa269710bbfaa8e44ec2db9cd0f1ed0bf69b2101e2aa28318545218f548f7833d01326256a65e17cb00980e953ebbbdf0051b0cfd19d868e55cc8bd7e47c1d8e6900edb0fff15970f92031a47fa806aac3ec4b3ba2c16be45c980c04074ade5d1bdb73c81f8a465997000001bc000000905c499acf9ced813869c64d1bda076a5261846bf036ff6bc4cb5d2af4808ec7a7855fc966434bb84463ca86c7bedb9fed6b49a66c4b602721cc4cf5b0a17792c464e29824e4c353797a83ced97b517f341deffef75774a08b0a8c1d8e7e1b4aa4a26ad2a29fbf4eacc6c2d4bdea808baf0aebccaf141757398a4e5e91bfc0f14d4c38c182268895016e7b37c5c1f70d2e00000090d39b69c05f9bdfa76069cfd63d6ffe7fda52eb5281d8b87cc9c280dc1ac000228f3f4d71635405974464ed3ba854f19784e389155e5d1baa82f9c1208bf7b69d929a83e4e57bb0b383bf69292a8f767f2415587a9ce719e53d2c2189ced32e37067444a5e02a974b8c8868d7c67d2935045232888ca2221335e743cd6d34d50d6f17f87a11c6e3951990b8f1d9cf35ff00000090d0964ef786dead8ac8401283e615cdbff52f05984e773974a640b5aa68136a422d7f0b3d63783abdac8c4a7e8ed7ed12671bc2fcf9fe967681beaf6adc1ae8cdf7834e5fe9dc08c69c7f58b397356ef516919ae029c967364df751e3a7cab589adaf0272dd34a34cc46596185cad7ca918bb1a1686b961a71c888e2424a0f8ed0afd288a4169c9fe4f43a22059a4cf86000001bc00000090ac72f9cf1974c51361ad65c0e1ff26bef2b533d413a2e332f9d400a922902cf0602b0f558dd959c3619a0a609884be90d255ced6a9089cd057cbea97a32ddc499107029318f5c65573eff88479c7f45b18129b888d55d65213bf1ae85307a7bb3bb580828b14911983b28f5092ed6d8f0c9f598a840626a6f8f6f55572600924f2d567b2d49c87eeb18e0ef6ce68c5f2000000900e442dddde36ce021e8ca2e3a8d730f9bc755ee0ed429103089ce923b09ce93a5dda7df1cd490dde95d6a9e89c9f37d52691c426fea8dd4ec33bd274b82c14cca7767b61c56da8e2f3e079e1e132cd0520c854a446d6a47d6031ed9492413c99109423b0038da0bf1617efac1a799f441f00ea166c99b9bbcbb415ff75e4984f8bf27fd5ce539d687a08d98e9246a26900000090149fea1dc7a7898a5172e3fac5c8bd87cbe9de239b2dbfe3315693a25466c5da49171a93c50da9721aa1da1f34775da347c4630502b894ee39c485ac28fcac715722a321c96e3521e4d0395cf38c096020d8aa15be6d2f4f68d61ecc4ce68154e645963864a7b73ce863bcaa5a3a1a38076fc4eda1d81ab7b8af1740f29513f9b3e90f390b3737e2aca29a09e0194402000001bc0000009082a519da67f66077a2d4a226bfab1f2df6c5d0331f6bee3639f9824a2273cc343c18bf79eb245debdba79b7881b8725775df0e0a5d0c5c76fa47a5892eb855e5a6ac49aa1574762a21c1e847dabc8ddd0adbfd1b9d4447595e98123afa44363ed253e217965aa3e1797330bf5d62cc461322eed52fd8ca980a81518ed15ecc85b28b67f116da4ad8188b171328d8b31d00000090dc3426f589048e2e2c1e57a7269e1a4628290af1209cb03e4fccdc9f7d02651126417d28fa16303e782779e14e7900e2739e93d0a3110925bb86a14bb24424b7cf09d78635791a79d3b83e2b5a70fa9015e9c7c8ff1328a78f71139f0f6a3519fa98dd49837207fc8e68ca16b6e91d592e23a0c2876062cba48d0c081be962c8c7bd404c15767f2f06c513c5eb15fbcb000000903a27be9bfe0cf52c0ad565798650313d1e4afb29e6ca4a8aee320efe5f667f41cc7fe43c33ef0e027a87dfaa8dba4a8277cd27641a0fac32f5fbdb8a5a8793269e212207f87ff35731f72098ad4001070e6463880de4e1530627736c292bf27fcb2272220055f3c283c90fe8f97db20d062791df527bd2abf5786c0dc171fa17748504ec4913b0be17a387ab5c1affeb000001bc00000090aa672c329510483f5b9454864206a869d1259056243caa9375e64a20072d06435a12c7cb2a74a5cf4a26453c6ad0dd52841a460ff50030396fbb5716ba859c28579b8fc1bdd5f2fa1bcb223da7275b6b1acee98e258cce6a4541ed6d280f23639b8ed4234989897d6f3e909c3df2d8bf2681b7c0ef1c129c79012cfa70de3f668dc7cdcc49d1d656ed6a4c8c24c01c8d00000090b19771862f0ea8fc9317d9abe4add7c7087bc230d08ea82d3522f0979aadf22dc674d48673f8c153533b46a075d77a72c6897366191b55c6e0166bbda7b3d42db71758530794e3f487c736c7341d2410230e6427d7826d47f8d955ea78659d852e782393fcc3ab242f3d24c6409908b71578693b0c11c03f8d961510887042808f985f6dc934952421dcdfabe35cd98a000000900747f0abdd4f91886927baa5f27738eb3b93b62ca9b741310c3bcd61453c11269186c3ae8414e827b96b8bcae919dcd04604a1eabd806ec897739e32c732cad404cda5e7de5ab971260f54f0b38e755b1f92b649664d281194bcf208f61a9751605bf50a44657354d09133761c8cca1402bdfd7aadb82b2e6b3471597432870d821a0748a0d616ca6b3b7184b0451730000001bc000000907f384297611556d8a055147c4c8b5efe91e681d72fd1cb8880c69bb17aebedaed24d58441dc48e4f04134fb2ca5e388fc96424c3a992375fdfb9e82784767fe5c97efff389cd3e6c43002d324422e2310d2c83601b82b80d4c93b20943149665234b30263b8bd36a59ba0aa1a3085d3616ad990ac5a3407db72091eced72e554814d24861f7546a1a70a2cf8a28de5ca00000090e55a4d0ce24b4659fa6ffced6d7e9c959feab4ce85b796037d30081a7e82b1088cd7490af1c9915479c0ddd708dbf104f91151e3ccaffe311e54a7b3190d925bd7f0ee30b4f3e293ba5f2d00a21f2c1c0cf328d063090615894d977ac7eba5306ff203652041049dcdc1a331870d281414837f7c2bf7cca89a9d9f2991d9da9c6329473c2d34aec79c1584c5fa6bce3e00000090e1d5cc49a8e4b99e93cd98a94de5affc4f051c2dec07aec7228a95a8b5a01cce6f1ada2450667634d48b60c2c636346b7000249a270d40e894f2f7254c156d1956e48d263fc2f9c5470bd079971fd2c5108b280fe66f674a45a48b19b147f62dc7761cffd758079a9216bbe0ad43a4c508a61d27a8d9eb43160b8bcc44f2e5fe62f3a3b219c18cecaea6747e47c37feb000001bc0000009072f8ae1bbdf59ab65c93cc05d7a355e5316642ff8db28c9e0ba07d4316be9a8dc3a7efe96f98fc5bbbf2e5c18e9486c298c742d659aaf45a5d240f9b70f6f8bc14579bd34779c5f6a43e1d33d2bfaca929cc633a5d1c38513436906ff38fd87a3ad45223260cc18abcb9b1a750837e0f0a5ca4436cf6fa8ec8c3d43d56a2efc7b586f7eb3ee56c9ed8c7a59104d9e5820000009020ad37c54953810dc0898acd7c2c98f995e94294bfe3e7616037797c72c0cec5f56b7c7a2e8f0b257cdfb63e9329466a58076b7207f4ee5589c4d7312bd7efccbb5f2c40c22dae8376b8b851d76a1ca61878a7925284cf76fae653a18918bfa22c235cdf5e7c80abb178be43fbd96cf715fc8a6bcbbc58e283159aa13abb3dd5c60960ff37f7e762d9e11ac1393de26f00000090212c7a82ba9a7e1c81a051465ee493d5a51b25f894f6ba300b0654a3ebb3be22f33ab5e60f57defd957c5e1aa0d699c344ced5a946386ceb30be42711abad082a730da18fc189122ea633494eb9b3afc2105e6a56372319f65638e30496f50b867c650085e21a4ab907a320a38bab5951dadc260f6998e69da9a9e3e4216bea0cdcddb554fce18070b264116c82f861800000e00000001bc00000090a451e3d670f70431e3422f55fcec6bb352bfb5ad75e56a2f25ee8593509f7a31c5c17def61bf6fdacd02afd35757c861540855acdf07e48ebabdeca89cc9e2d5f10c590396cf9991c75a28b54b74df2c0b1f55c75274147ec85bd2e0940b20dad498d59d8f5a43e94382ef90e6e0eb4a1c7361ca729f8cb2c9acabfb0b8e08967bf3b3b3f6ebe7048d5cab3b0adc6b7100000090177e8bfa86e98ef6470bc450cb68e38a972eb47b25cd7b266460f4a483eb53a0ce1365351c738ea4d27f90f0df0f15d973d4b6489b072748b43bbc5d64fbbe5cda3ea0543f7190596d0dbf6cc333ec1b0f735e08a769c7ff3e37a0e3b6dd909f30f68e84bbb5f6396f604ff1ec76e8ac1070a6c6d0aafe2c34aec6b14845a2380343b6d8e9e7a0e3c76ac45f7c96b8cc0000009028e81d7fc9248efc832f4d37543d8ec7693fc143e0044ab9571d6ee4cd4100fc44bf307979fb2f12bc228ada6d114690e4c056ff0f2a24c7597f1a7387e2cbaa4325aa9c2589f89c55bf127b530ccc2c28cf3311a2b24d3f44a57cd305f7027b35e81855b074fe90dbd164c6f94238020638c3d2648d89f41d71e64f7b4ac29e311b0f77e319c707456418e605fae298000001bc00000090c6927472687ee6df3087053f3305857ef778999110c167a61b770523441355eb2e252173acea10ef091928865d740d12f9198252364bcd53567a140c25d488a81f8e466ddfd7f6bdfa0386f05200ebeb2f0e971fddb99078a99bd1faafd8d264e2a6c0c581a6146c8f6bd7cbb12147df21a113320d27267a572ff5e8c77ef3ff2b25b5ac87f36e2ac64bc929a8eeeedd0000009023350e97edd2d322022b65061a38b3ffe9d6f05c1652aed846804ee2fe5c2660ceaf5554177ddbc05f663f0b6d61cd4bcb72dfcd71ac5a8b34d61dc787774cd2daa1e99aee0cf585b61347a8d012336202a1cefb29f30a7b8cfbeffdef3bada09da5ff1b82f3e4559a24c5d62a46fddf1aa147f8fcbb7c3b4d966ceaf292191c0f2e32d6799146445a91b6f7c0e575fd00000090032c447b00b809ae3fc5bee0bb531cc777d478de35b5fd3297e8517cc9a670543ad73e8308c8ffd0ac57ed584b9609d1ac62cd51a734a17b23be0d6efa1a9c523693d877d32e682aa33ae792d51b088a17a033baccd89d0389bccc1253dc79587c465257bc5d737d0f75a3c12f9c672e167d0ff5ad8a09c899fed467bc1f3cf27b31c813cfb779ebf6ae4225b859717e000001bc0000009012305d42791664ecffbed511cba09e66929cb8318a84a519e268b64b61c60156375cd7c834d1e791c1f480c1339696574d6a21edcb7ffa14496b11f2a81adaeed3ee10978ec0c7a0be6370b64c75badc01191363046006c7fc0402c46056d3126df76bda003840bff72712c370130c1b0e5977c8b4b7190037407578ec695e163d4610040d2374e7c2fe91eab3846b54000000901abacc4508cf118dfcfee0568f9dc1fec255e90bde1c28cd6d805f6501a926b9489c512f7fcf75f71f5f96507f33770e4b57dad98e633dfd39dba33c8e2b2f2ac08e9db545af729ed767bb3805a142b21e72956d0d024d893340764af7662ae3d8e43281e30012bfc6777d492a83a89c0b3883dd192d1b8d4915ae9b96542d40c5f35cb7ce71157173fc6adf895a77640000009042e7406e6ea91c7e1f133001cfb88b9ce7479470a7086204c3273420a7e98446cf78ce3236111bde349bd7cf618df3c2ded1e057a412a0cf50dc860d21cae7c4c015195142fb11a9fcb08a4bb88e55e31255aeaab9e2c682699842aeb658552570b38c5dabac8f40964ba29cab2baa610e0d73b6fa11cf8985c932c29381fcc53abb9dae5c567e38aba8a1cfe364d4f1000001bc0000009069c81b2c2afa628b63d46f84e4aaad27acbcb75e0f94bc3a158a3a99c5c2937a92188378028c5f78579e6e24f73b4ae6b4918e2e2df3073b6ea86428c74d819297a41a7e4b0b38c3ad1dfb9255e72c4c01d398b728b20f4d31d2d6aa827c71ce02ce8538a2c6b80d6141c2e36b7665621c9136e0fb53df24796213ff20daf576ec8c2f6873e2fe5c5d32b0bfd873ca9d000000901077cefdd807c8637e951c51da982b6c021c3ab45e7540a9b53b94ca4eea56be9be233025d3e53b810294b200f928d866fff80496672ed68ec82b8f4edc30cfdcbc17d94919269ba4dbd880579876d07177a500d0c469c3abae3bc6f55da917e134910439c390252b756e4b12bca09762552d8c36aaeb215772f6399094f96e12d29bd906964cba09bd63e4d9df9ae5f00000090561b0c52813548509e57d59da60ba6a85d4405fc729a02302883b217cff32424be6041b1cd7ce90957a439e00b1d0039c4e30b5b238bbdb648d4828f6e147a5b007e90cfcaa52b1366e86fce4d10612314e85b32355a6298b952f903b2cf1f4a18ae2ce87c88fdf78a91819437d720a61f269dfdd741ea4e9d75bc40dda13e98afe97cd29aea805182a80457f70b4cf7000001bc00000090f6cd07cf1343c7216a411a544a3d7e71b5a56a40b3af9c1c523eee1045381b8cf25a148ad85e54e88f06844f3c074cc48cf64462908ea37d8cb86b1230851f9b476cdeb096f9b827a5505c482cb1d0e41b4a3c4bbc0ec2581db895437cbceae412a9871b442b28a42f99376e1472aecf11a99476ffcc5e10ad580e244352469043b70e4fcb8a162c5afead4c7b5fd7c000000090a74604d334ebbf486774b8c412a9dea44cebe52cc3285ef48ff437941e81d3f57388df7f35989178462381054b5931d69e0611864e28f1f7fdf2dc2f901bd2a6628f39aaf348f6e9d2478ef089461c8f2abf949e71045e87a2dc683afeaed430de2fe26b3de371059995f2c4010353e2074f6e95837f62cf760b1b103add9967b48aa0e868d0d76b276c706c5c7e1a2a00000090222f83ccd9bfc62814299abf79b67d29701739da7e0a683ef6595ad40862cbee275ee3a3ff9713ad38ccd2f2a7f93f73cb79e6bf5e6fdf439853c8aa0fcfd2b84f7935e985c8091a7555e67ed5f071961b715ca32e375c6d42c74ea0425df8aecd7d270fa90ca05913f57f4a0ad57f0329e9c743117724e634eb72aedbd0ebdd5a1492ad753fe7292af5bf562ec0ceeb000001bc0000009034d7dd691b8df86c3b6237c8db2439aec031c14c200b36bfec393a0982e71e7cac02bc73c224edf50d45b87efe3e477f9e3794b38f5ab4af670b50b20bf0d1ba2637419e94307c7738a17429b67d2f5e134bd0e62a37738eedc16979e988836e022d8fdcef1682c2f5668a187cdc02ea08d3dc0119ac898c636d7dd0bd59133ec47d305cee722a64eddb51b261fe324f00000090729301907fb4c676099f12753ab192f8a2d4cf23feb033de3c63b902ab60290100943dec4bacc6e738a7d2961d57b6f86e4027809a8df750c5df3c58c56099a70f25cd67a696c40ede567fc4b6b1c86c0a427d5332618a91a3c84d8cd2777cd3ccc480528f129de0ce6c754a4772dea30daada4c54a9e120c0cf870529b9fbbf88bc578ad2a2ee5caf0fc9b5a2fc81c7000000908e852e4e17f0c747978a8d80e60d0f5b10b9b5e4ad4f2f68108a5dde3c057c33c8e4110e6a983e4be23bd8bf60be36bb1adfaacc0208300f2b1e8ebb26fabd6fd5c7d368c58ee37709d1c0ecb545ddb618c45281c088819892055647fcc5790b4f8306fc61767d60fac43447aaf64f7603b620d9c2e2da36cdf09ed8198d1704039720d582efdc898bd9cdb4aa7c97d4000001bc000000901d149ca8d7c4ca3132bbd16d86a6b19816552d86bbb81084e235b5b8d24a57085ec3f7f7c0651c85719c82ff3ba64141e90f9bfd5ba6735ba0f2909aae2c618181a7b58956e81856e9801968641a4f1f049c47877ae2a718f4087823f0eadc4a94f765359cf1b3bd0c366bc5ef5bf1c71bcdfcc34172dafbb3e48b29fecf0b20e819354c9e64d4ad05c80cb4435e34100000009017548e46161cd7491fd3bee49819e723cd63b308f95695ee72af5744602207df07004d6cbd459059ca40033d7e7edf8ec76f5e1ca77054d733ca0c35b49ae7a44d7c05a521e7082ed11efd9b896ea1571f16734c08d0eb0449618965dd7ed0f770a674ae3a69d39dbdb6961bc4b3958b2b97405691c885331e22c78acccb81ad9b2e3051ef6a2dda2df8b7bf2e4ebdca000000909da6a35fef6c5ac1c73fd091e4a3604bafd94e15a4a15f2e456763156827acf8b9d166ac80d10693e5caa9c0836f97ba8151360c378a7ee1489cc366a47206562d30c80bc5ee660b959019072c9487442897d7e5b15c55a9007810718831c9b5fc9a59d0c007944adf5d08b05c28b4d50556628306422e08738a7e8b8a9e69b3442b5a5ea4ed0cc5d28b52fb5491619d000001bc00000090f30f0949344c720025364d7ee45222c6e35930daa2e89839c6381042f03657631a9a512de74114b70133e5e3b25fadcfb72840828dcd9f6248d2e805e7538f19c1c7738bb86a6e9780afe23cd62281842d706cd4144b70e686942f9ce841f335c829ef3fb1ffed1170e5eb9d1a2f298317a18350ce5ba07cfc7c3899607d35cf565197b3d287ba7e363c87198202fc560000009016e71b683492bffb376aa6bd7da0c7f8a56c50bb5ba08b21e14bc0cc3f5fd873beab4f0372f72d5d67a9fcca173161c0a4f8b6868473d3e7fb39536b257bd6eab83304b9017895d2de1a80e9a4ac08bf21e7507f287b28090030174908ef3629b64573bf5b7cb0d9d0ef0076b5af4383162cfebdaac872df93accd26c673c48df2bd250acc5d4c069e65a6698a33718900000090f23400722b327791582c289ba5f5caaf670682c5632ea03c3cc140db78dfcce02a90087eb0c52fbf719dfa0040ca5d20ad6683b3263a8f9f84d62d4614768b10ea9128ec1ca07f3badaea2f1a5398e1521a264f0b98ac3cfd9cbb022a16567746344fedaccb362dbf67824398c6efc5018c6e4089e1bd826c520a35027a393d4fb738d10ddce71682201a9774210549300000e00000001bc000000902b06d61724cc7c58acb63fa0517df805cd6f3974429cd068b7160155896c657b3c8bc38401dba21c77ca868009842969c4100c09ef00103b0e2c1b5822c8e494465f977a28f57d5e2b01049323c8e56c0ec1fdc1b7b0b88de4109cf5706a027e95586cc35abe3892257b6bd89c167ebe284bd0060e98ac74330c84abc8c36a24d4c4b2a0c659a0d16327c527df7feb3c00000090efa03261f4d73815d5bc450e8a56be71fbe9a06e5d0d851b75b299e1464771277f47b55ad332847bd6559f9ff5333f677fb8dceb2a7c09019e588dadf69b5fc6f821c897953b3424dbfe5507d42563d406884f2e4579eb9a3619d9a0a5d2605b3272726193aa79a88a1e1e09070c97880e70d3667985b7d125c4f8de5786ca1bb2aa90b2a802e525874bf9d165e2d90200000090c70dfe768cb36b117e8f41f62a4983fa67e2c7d12dcb41ca11d073365bd4f7e063bea59b96360b5a24c7c0d3a44be0afc1ecb558d3b84c63b0e1df996926e11ea186861231e4bb548771da92f6d0e22e1e708aadbca6057d8d76887bb8570c9dffe5a3ab46649f4d7f1073620ef14ede1e783eea0513c3deae136cd05f3577acdeade3011d2f08c3e05d93da2c635995000001bc0000009066b714af7f7583c4b719c6c3eaa75ad7fa5a7189612ed4b4f42b5b9d77f9deaa90945c7dde67cf659363c1abfe681088309dc7fdc4696a6de95407cd266aea044237044609ac705bd0d13197db795b391541f0acad80f90184152e8d6d848c46c6cf9e598542c35f0de0d585cf7aed2c28d31dab5b484b7240c914c6a8524f34e7853263278480f8ff529b6ced9685d6000000903dd7d0ed314579056da5128ded3c01dbd4fc2c01eea6f09a2554f114b7f084ceb0e404a678387e503db2b5a64b4ab30e6a73012f7eae1722ba5b9c8d920152777af28eda3eccaef5317e01f16c977eff15a72827b49edb61dff9033b345aefb8433aebba97e74c768bba02aa83bd95d71d010b06b598ef0838f55fbe6e0af573f06aa91d5b0b239a48ee022705f4a97e00000090741cdd3c214c75f878eb00a51e6272c524fca0e4723fca8045bb7217484ef4395ebd5f1bb8db9dda81e55c2bc67a0aeb1d7ef101a36bf1745533266ccd1083fee39b4f666591e3fb4f16ca02f479844c2ce4d10d5dfe6a4cf2fb031a723b20177c77f087eb0f2e7d4e63fc3d678cf02028f0c61cd7d67aae3408af3b5d5f5fadbc9ec9761e729435aebcb423e30bb642000001bc000000901a45cd9e6bee7482572e4da3efd399e9b6dd5d8d1934a7920411e8fc5908971da05153bdac3a0275fa63558f859c26fb4f9246daa8fc9db275a1ecdc1216e5c40da225674bc9547e14eb9ea779a7eb9b152fb1a22797f9b63521bf6a53c24a3225fa7229274172bb9ca21e00329bafda127289ec3b7af2abd65465babcc51889f34baf0a4cbc88dabb122b48bd0800510000009002708628fef3ca89be4f7e561f630d73491a222ed1a58c1e61b290ff4af55b7ee0fd4daf8320623715acbabb1cf144e74bc0c04d25897e220242f7d5f48048cca75dceef03ca8d2b016e80268cd3181117bbea40a2edfabd1a3d1918127751f4f372d4a55e0445941449a46557a604690be1ced93ea3b87d3555885908fdf9176aca6494d9ee44a655c0323340e946a00000009043857df80f3a4b4f866b7768123c2f5403eed2b00b2ff41eeeaa30454093c35da5483ed03dc6fd2589dc9b4b005be5def48382bd3d089b96e46449f62ce81fa2b8114bc96d09b061cfdff531d1cf27eb0a05609a23b362a58d6caed303347eed9197a093332a1a2d4bbf0e63de69482c11fa09d1257b0ecbfa391c9edb87a68528d554093f6f86d384bec1d206e371bc000001bc00000090d41aec12620f384e28928e6b2d3cf255253f98a1b9cd437fdbb82f9c11120a9c2d6ae22f0a39ced93d8bf104313ec625f547e4b82dd82aa4e5e9fbef921a4bd1347c2e49677b3e7d511d7750e37cd95e10c72f7846246c16ced15cc9f900a485877985758ca4cdc1002c7079a20c96da0c2f0e501a589e86a55a980bea7669f6eb7bb00e3ea2ada0b68d2f7a5f2af993000000902e23d97be99f37413bf94991c0dbfb298ed1df46d0fe2334970823237e17d3ecf4f069d8bdd850aa1d9df1321fefe49c6b5b11a7e5c7e145d2df74ea82da36fa85ced28b2ae0ab2c14435533a968e5a40353ad3eaf3ce13e27cc5b52549c7c08e7e7d15546391834faa6f3a599cf16441c9f89e4f1e7ef2cfde33faecc088f1b2b93092edae2668320614f5d7440efb300000090c956f8998773b509029e1520ec78cebac4d0f1a7c4bb77821a1d0a7fda691e5d81f3bb9dd18a4df95089f58ed9c93cad76f6d0b982309e5b9ef4a79ca562b5a99b743cc1124966ca0ed178478c7e09c8069ac00176881a6fd0b3fb4e01b92ecadb75ed1016c129ff1992b170ab22ba67071a288fbcba253d2894359cc7a84b02283f2a75d407b3c5f1906c72d551dccc000001bc0000009093c6f8e36ac145b1bab3a118608d174423b033ab9528da88df7cdf4ec871959d48ba859ce88ed56a75aaa7a58391c30e870cf0fd05f5a7822ce8ec092052ffad2565ceb74ad04f0d95949f3ad9dddff324871e7445e731710dd3ed2b9441e3229c703527fa835439f593bae6ce60d4cf051aada51eece5fd59db3530a713cea9194bd4c66595557c07e7614b251a0734000000905ff56bc4b4b6264a2209b09cdd93560a91b77d10543e36aeda5bc349023fa5fa7019797b7508e0e017e76f478996a758fa6c86280eea7accece8cdb6a10d3d1e2ec06182ce50cec166c62af29f778ba214d4ebbc541f2e16b22923b48b7d04a54f82199eff6b48c90daed59d873028de230ff33567fc8f890dbf27d826e66a91ddae34e62d737deeac896bcdff5ffdc200000090610d770d4efcb5970aa049f66d860f20b9b8ed09b8e6d9c0fd2b040f38fd57187b7f5ff0a701fc027b5cc20971ccfe925eed17f7d095b4a9d2b91374681a06c727a4f168887f5b830c9d3d9cb17b9e042040cc23e9c92f88038152c892b2b26ba3e9ad8fceab82b36aca0f2b7908de3820cd256a7d49e7b69815f0973a0374af5278c7b6b5d56e0ba0d99950baa81fe2000001bc0000009081197b805e85b3478257dc7a24c3c137cf58ddb396571d7d0759ea5f1df68399920055fcf39bd24c9542e4a5c870b1cc78ab9f4d382b481b893df9960ed8626a1a94dde880ecbd73f108e57cd63bd1be30201c546a6a10d659c78d647f60a1b5318447d4698e0ea585c6f605eabb345417245147b488839eac50b327474473dcaaa709861e9ae35b41a163326822c3330000009023c38da81b376c71b7ea255da4800cb468292f2a1fb778a99b3a83f02cd888caa71cddd8ec9cfe020123fd83f16d718e4af1746a065b236d4a1008150ea7a5e50fd6d2456d280c28670241a63b2b725620573408916e69b8d21209008337b6d3169de9c10a3aeb80229969609cc5ebd0074770e88b19552e472f9bf2ca37291a20411572104debdeabf5525f6c2064cc000000909d29034aee73fce7a151b594a09a0f086f693e43ac569ee795abc3c4938c644479ef9baf4b1cc6f90ea747eff861e5966e65836f63dd9909dacc8f4eb59a29109c4af6168b9b47ab11d9b3432b261fbc14d697b84f698a8a327527521bff5ca3e49103d48a0555ae96adadf35ca2927f1801484605908c8e775d3d8042e6c95b9c898a26a2d8cda29d007bcd0f461e3f000001bc00000090a5c4c80f0fb40efd4b90340ab32f87479a2a8ac6b0649725dfd4e12236405621912820dbeb159623b68d6480077740b198264535a3298e9a3ba6f51a11a4106c290ba36cbf03bf591f8f99c16e3875de16e2cd973d35a3294074dd98f7186ce7fd40bfa08b4e16c7272e87b773c01eed2d8b25c82986e9fa133c134420056e7e90b49ffd21a0996b35d2c4b482c79e7000000090709561921a7a129affb05ff81c2a96b0a6f0c4f4d54c54c5d37028e343b4ba9115bc9131ffa6816bb982218f5233cca591f80052fbfc4f8bcd3c84dd6edce2fbca363cfb2b6485acfbec4af2c32b3e2810ef246c861fdfa1e7b7bb7fa85b6103bb93b8a23860ad77b5483e2e91d027cd033e145924a5ac3b643cc0080817907c6d3d40df0689f2b0fab9dd76455022f8000000905dad2c324fb712b4365a3618f9dd959a6af4cb2051ceb3d2e49d5b560b1ffa501c61908a50305e0ccafeecb216a8c636983d9f5f2bd259a27ab8116be1b1721728bd5ba8311d657bebbb3e87952ac30705b8f415d42c48614f4ac5c9ce274689649deaa3f682bc339a4a42f2f43cf97322436331062c51f2be86586244ba3867aef4fdc00644ef3c2c09bd8bdee63ee1000001bc00000090e172f139502801841ac31483f29202815ab912c3eec81ff9e77bac39756f6687128bc472b747469775d6b8af33e164d92d9a9cf50eb4bf7223dce2a4946f232b094fd04e02b45793416827484b39eba40e03b4ac1cbcef5e23ce19993eb513dccda494c44973ff0aae10a70510c60c081899cccf67e9f5935b3503fe53b380e91a757aea53036076370ed9aadcd3869600000090d903a04d6e00edf953bacd3cb1ed209664094665817f2a5d7b79517d0e26d3ab385fb9c337ed688e4ab46a87ff8f7298ed530b590aed3a6cddeeec550f7ece1a97010604a219225772ec1c28ec2748d402bd7dc7feb73ac952f3e27c9249339d9906c47405b7c7cfdfec16808329cea228bb9f9be95f80f7b1cb9bdefb6e1fb50a103f14cab643e1848945c2dd85d1e700000090019613e996afb9de3b063788d2796ce162a6f423eecfb01cb10a7940d1939de00c357c8cea3bc71aa77a211948c65835e7e214b771bb91dc8c8cd42993b238932b318bb688e77489f7ba99b84560d78f2723c88b91fd2081eafb9549bb7a6a1de4ccca2c3e130a470538e3eedb7931a925494efa63bd03b6a2045170595416f163b8d68eea6c8bb33e1891a4c975fac000000e00000001bc0000009018254c0d76ccbb466a83370520861b1ec37ca8d9749ce0834aada0e0e434d412fe67057cc37522a274e371547d1b1e0046b9d47273a82bcf05c477161888137b67b816318e8fdb945fc408c0ca9c19ab20bb39b17fa2e81985f7f238040ddf093da1b1974dd3419233277c5b9eab13121b1a7edf24018d8220c66813d1a52cd1018f2cc6dae11da8094f811f2b70068400000090a9a8ee0acbf9369f1408225981c8d84499ae07ef2a68030e753190e47d0bd640d27f24fb6f0ca5b1800aabef1f4cdb34ea03746cd8d666a52db8758689b910ba9d2bcef15cef29a0cf99b00b4a9e0df9032495272880c51e18eee2c6f37f9027b4e4017e1153f3d50c8533d1eba2ed34129771d5c27757f299800adaa106d82eb4ca56804edebc88d986c665e48f8fb800000090f32559fa5b72d287b8a1cf04b1cd66e5c70d6b0dcc93612b0614efb1f2b19e218ab98cc25c06075a766af955e5bceaba28954c2f7e3a4b39fd405684090108e089673151545903c680c54d421639dd29201112e70a41a90befb542f4488e9fba3611f2fbb83f0fbbe683bbd2ad11bf3f0cafedf94ab87c216d0ea6f37d953e050858b340060fc120167e0111f201d1e3000001bc000000908c287f342b2402f561febf83d58c64a2651b063f07a7f862fbab9138dc9a3250ad02ce4716c5c93ba32be293c8037da2a7dec052aecd0f167454066c749db15aa23c177c8e4a2c2316476687f50065c122cf881f1e44e5f2e7ab9a5a6f6fe02ea0303fa7e893b46e14e4e5502e6a26640a6f5a651265fce7774cde833fd7b0e529f00557da5aea9bdde5dcdd2a74df6e00000090e48fe6d7d4e0768c28e9712efbe05f27e7579edf1265b1d4c71d41839731c4952bff84bb4aaaab9750926105fd85777f9a0fcd2a75e9091a1b1509f4c57f4aefdd3143d7dd571f59ab1dfcd45460cac81a15f99d9f319a2ddf67a65146b5e02ecb7d49b17d3876ad37acc99b48753d1f1b7bc6b588d3e29d188b52b7ca79555bc7e1530f7c7c8bcbeb387f73085398a5000000903d4610bec22444d2578f584a13cbe8db93826b7324c1091b93babccc0674895cde28c8f5505495db9c15b647d9a297cfa072f9911af8f84ff27787a9187452b57a328655a05d9d2f409df359a2fd83c002858caf2b31a29604c74263e24f69d53c79c5c4f765bb3aab75f93c2855745213f8e9aa7156e6c069a4863d8e10830a2bb104a7b2be7ab69f576a8071d27b8f000001bc00000090f5f453102f6cd97673090be1b8a95db766c55e021f7d10b63a3ff604694df1a752c6c6ad997baa7b18b00ad4904e6ca3cc44067b35df8cdcf17cb41bf7fb0805e481a244571e814b3f84ce392307b4870da7a9c01b0dabf4621213983955c61d2c925fdd20a7f5ffebb4d3b638e415620eac8f88aa7bb6acf5e930d074e4c02d708baa3dcbce03cfc0b575628fcbf39e000000908ebe6a4e2b7a7a23cf833e51ba1b9cbdac2a7a7eb68eec6c0efb6e76c2fb248baadf1bcb8fdd36c61c490273b82d8072b95b87621db49a91abf9fb0e625d07ef80f6361f6731206943ca65ab8633a9a5123240d463c34dc493821dc4c96be86a1de9234a0bf0479f08956f80108b82a820ff694205224a61abe86316f8c8dacce12817bfa0284a224561ad399605b2d5000000908e1b76f7e65bdd0d931f1105d7a31fe430f35143f001e8d36e185818b47f2bb2cfdd0443826b387c43546441dfd8da92759f65eaa6c7c38ff4e159ceb0a676a7aba566675b8bc5fc9aa29693281e8b1d1bdc00adb670be34f1be7729140f26c73852a8f33f7dee2c54132e95f328cd3f136ffc85b35831d9414788acf3cfb42e20518b22ca945aea170522be01ba32e3000001bc000000903b26e03c072cca2064078d6150e583e684cc388292c2dd6896dc09b9a34d4c1d3c9205533a438ed4410b7dd48ecbcc49d21e290609e444970fe1fbebe25372ce548ddc5a3d3e7e49051b28c43691349218e412f9a9eea352f6c775cea1cecc83cd512e0ef90c7ad196209589e5d43b562e6fd424aaf2fab76f1ec6d4a3ee66387f2b61d317143b074d59cc3f5acd4730000000902ca9a7d60ef32445aebd381529f483d3423a3857c9b34b7330a1aaf2148d472202e39a7d2527a4ac2167f7d4e6226b72d601b7b46416fb67a87ee22a9c2a6b70b40e9cd379118d848d0e274e0d76f69b1bd49ceec06bbbc00ae045d6022c58f955862b38f5806d1446030ca3c9f8236c2919485f61af750f5064d92a6fd799f9c4c134344eef935474a7c9beeb07309e0000009073fb4cfbe2c4ddfbd8354b6e1b77131f25231debda99a499e1ecbddfd5ec274b9056a3b48a2b86a8b5152ae6eec55ca847076d023fb9d50927f7df6da9e7d2b8e48bd943e36984d1d44ad5888305d2960351deda02610840ede3eb633a1b3c8142aa9c15972dfc5d2251d8784608b6cd0d4805e283a6f323245921303039a91aae51c54877875b60a9c90a5a6d3d4091000001bc00000090f8a0373901dabe3c21987373e45465bb70beb28d2e198c96634b8c5b3c3318b5c41475c99475e45f99af928add960b77163fc4600e616e69a79eff6af9b00c0bd6e8118ec97f6259688c07ef8c8a7c4f19034fce968e58e21dc88804fc4406b70f5a8fcf5e5897de417d5612eaae4c710ea3020e80e66fcb959d6cc4dca458a6711041ecb08aa3a182942216dd3025c70000009095dae8d18eb1192600785a7b3cb2fdb15a0a69625ab5bb5a6399493534027108ab3a2fd6342e644b44af07b1e5949035d7408fb496b0dd9c5486f47070b187032a72888e83d176ec28bf77e3c09e4517164057c9e3543a4ed1f2442cdac6a9ed6b5d893dd0846e9103f97d9c64fe24a50ea138ac118dd35ae1e14445fc22ea521b8ee289eca6a5b33bc99d132f06dc4a00000090fc15f17a0d6869387f862c9aa0f5253e48fc111b06620a90827b2024fdf814a16ef921124d8103153dfc54a0e0be1167eb195c89956507eb7ae6b4641755e0658f864d79f01765b0260071bcce7ecf062d55ff6af3668375705caa5c1ea5d34416f64039c600894e6cd0f05368ac9ef22006d00cd56bd9eecfdce819ca4cf2a379e1de3c9d7963ff49d4fc627737d59e000001bc000000909be00b8a90104a6d388c22e341811df3216e0a82329012cefa3dad70289d1de4d2ed42e4e1a934a611ed7334a562df4e211df9e4bfb5ebb1506be091e61b9c95e31610398687b0c1bebf82295fe7d38d10b41e2df5137d418f0555c60e7cfae9578f403b3fee849d10a2b6d0d5ee86fb03dcc90b2d370aea15c3c7a6e517db1b8e4f550632a2b4741cfb325a5ae38c2100000090c7b5d6c10924bca9a2be72f585d6faaed3761d1547899ca25c17251f9990d425ba4b6a628de91d8f9d032000ff06ec3c29bab819ea88e7dcd3b0802e5099aaa1054808096f88fab55d2775a8b7120c3920856bc5c188f7197f13bfe1c454c244d838e7dde7cdf9b25be042f7efb63d2b25bf3efe0d8b7a725e6214623a362d44c49762916262bff5e8e48733a944690b0000009073d9dd2f7ceafca4f3e69369d990b717aef7e457f41314b0cf2550de4ef8f5060e524d48878eb292eeb6f1afafe06b8dd6d083d8889a13535ff077afc5b313dbbe124061547edff2c8c9e0756673c1e2063f942e617562ad0f16b9a8d8cc2b4181896d1dd99035c6d7a3c774fc3a9228086f9e3542b8ce17f13253976d114f478f3fc7f1116916ff98f598c0546c367c000001bc00000090f96f7198d858ef2c5157a258d7aeecb62a86967083e60ea8a8dd3b04031bc170338bda35b2611e6801c2b83b79b9306352f1932eb93db6a03c50de6e324b8063b60ea58a4f71734b8e9c8888a519137719225008ebba9effee254aeea7f8b2a374dc2e6bd71c281ab8ce4928177d7e322cb5b0abfed9ec8cc714423b4dcb31c14afd299fdab163b823f71d7b6f1393c700000090c31d6c8aa79191c9a6cce51de95ca224de65ac6096e3a2e0de95fda026cecdf292a0b01a9823908444ce61cf8b430bc2e74a64b9ce759d957b74e51889a59a261fd7208a1cca560b6ddded30c9f60a150b28a0f90e98f0623d5c8ea221c25bcded1009b626aa5c0bfa0fc79ac72e09910610d192054a82624fc139fcf3141e6fb5caf6c17fd68bea5970ae29cfe986d000000090623da42b945ac8e154df72b0e3c3499a3982747bd6d137e87bc68251c54fbee14e73e3f65fc968c6527ef5f174a4cd295c47f2c74e579a8e9b6970fc67afe1ad0a0e504270fabacb15fc4f007255dfda0c98d86592fa4aa519f7ba2b90bd365c9ff06da362dc35472ffe3edcf873f83906a91fec9e1075aa2ff75cea0333f79b91c1121bea7524a7a49d9fb200dc8c86000001bc000000906fb797f0079fcdfc255dc5f1754010fdf5e6d0d407104e5c855c6404c80c34377497400a3706833f4f5a18cfc888dfb1638a0d32d4c801ee659febecd354efae01b2a82f8b32133a14f4df8ad68466de300e85ae51d0de43eaf80fb77a6ad2dacdfa9aeb7073967180441489f4fc5a0215f41613ceca59abb80d711e5163f01f59b94fc72bafde138171786d6ed6d6ff00000090de494d257aef9354e6b3a3845d76b3f045a4aa77ce8f1545223e3c99531ef4be0bc365f4d8d18da0b9189953ae96791af42b963a23044e16fd46564630f066f15c59a0ef16649a9b145285365e6bf89f3060cdb8db0e69f5bd35272394cd51997ebaefc043e078c20d66b3cb641137462039ae20fb14c07a5cf8ecae73e240b01c6bf71d75512f4c32a641ea41e4d0e9000000908cf751b31521b0ccfbd9835f4a2c117ee79bbabe6a2030796d95618a622922c7550a53913481ae1b1b88b777800bc81e7f1442d8cedcf2eba27c75405e60631de14881c3ac9eb324d36b828e211c2457092992799432d06e2f9366e23a6e491d21e91aa874d14c6be9a4259700c53c29259c009f5dee352fa76338d6b0bc972ad4fa9f8d70f2c0f15946d76bfc513f8b000033a000000ce40000012800000090db0e0239cd3aca4bb13607973aff76221897a39cfa8cd67fd76e0e9fd40bb17335a153ddff6b9962eec48bad3b40b81edbe25c60413c57b687e5bd87a635d3cf4dff99f6b6846634a9577c3151bed8192ecd128183ad92bb7cc175257ae1b136d2e4050b97836ef52431817c899c236d121e2b4537d3665d0b2b8887cf8994291b6e57cfb8767c66e41d481044cc048c000000908cc447c48d281aab51648c89eefbfcca50bbef3844a40021d45b069af00f923a846b84541eaf7a36a74e808ab25b520ed7992d87d09c6ad038971fa37ec0c00e43c945c7e241353efe8f9373b66cbbff14f24ef5a48c9499c4945456064151435ca5e0142ed49a35d97325bacdbfe8530aa096ca06e7c4ed25d3a300509948395fba2372db244d241f693ef89d445c230000012800000090c931e46a34d8ce376dfb6fa440845c38f5e56a0bcf5ce275aaf3a97141ba1d401c25097db75b6308088441ad96cdc47dd90036232a4b6df78a7abf9dac39b36117f3a11e1e4ef73da216a3cc488b67e21b0cee2d0e7e333141f8458ebd57097b887ee33d26f4809daf113e1f5d3762c32c0d8a24f34e9cf7f57f6f097f5a24fb25961c8951594546dd3496ed1322b2e500000090ba1d5783ae88e278c74c45f54d973a0426d26a974ecf2a411a73433e67f1def16cdc6e8dbe72d954cdfe2ed8b89e6b64789eb657ff0e4170f40d1fac114675cf8083acb59c3dc9c3ba2291ea14396bfd29048239adc2a92cb2e511be45f2a4a96314e8e5f9c4d297f5a84662ca3e18310e1b7f7f6702eae05cb9926b47b51b67b84fd06248b52256d29c0fe7f14c532b0000012800000090e064a2ca2c276d2fdff1ac724bbd5fa99d3a89c37f1614bc19525c4ee7b70e4a96d9673e901fbc8f9bdc05e2f48d7f8430ebb1de0f2962e2495bebb73d3c5bbb9f449b80a4e9850c542e3cb1f909dbe208d01c071382206283f5c9cd19e9cf1da20007860acd557b75ff9217f3b4221e2792123d7c1ed7b369b7a8ceb4d707c27ee96be2c99c1c6e65d323e005f5e08c00000090bacc846661ed453698d44392c6cf8668ee64500e0ccccdaf16f7479a9c04b8be3a5e75fb53406459b00bbd71d23fa9cf5528c811595b865ea2ac2c0c7bf3ed13c18944edf69ba89a08c56755ea88bb011296c4784da66486e01a2e66726681a8aee0858631a4111df846b94bd531a4961af33b19cd5969f696564c8a7a90c23cf6b6e3dc2baf626d07736d0e9a99e2ca000001280000009007085fb34973a27dbf89914a04f8eefbfecd1fea873dee470b1437c672d79c531f192874293043bef9017a1904bd775484f4d9b9c3908b1edc8d87b18221f6bb46b9170150456972d2bcbc2ab721aea22f8a7c0954d71578e8503ec0c87f90e0e9d0c93fd6366886df7ccc6bee88829700948cba8ecb9b504ccf403751351e78118dbd3f98c8d5aaed211a37203dd354000000905bae15e7f0913f0da17e293b101b9e252523f00d98ea1066f8347c62cf75b60448e26040189916c7aeda51e3a41a156ae5346a6d662103875c2be90d164580cf1d93199d0eaa426add63a20518addb2024600d2c8f03bdb0887a59a823f8529c11837bf1dd0ae48c69d78fb87f9e54a2174420c660314e26fd6e4d82e6639ce9c2cca6e4312da7934fd116561b4a7d570000012800000090f5f772ba9fec64e2938bb61a8e4a8c05d7124f67bb89e598f118788a6ca23d4088e927733d13070001853f2d22e33d82f054fd51cf956fc731101d8c0bef58e85c644b832a3bf6fdc60d2ff4e0e66f2d20a5cf4dcd2da06a638d0aa331f339ab188bc1e0b47c2457bb3badf31094c49b18b5a83f30b762f666e6da83eb25d0f11dc82b7ab1159ef9336b5ab6239d195900000090b9b25433f656012aa8e0c76e9fc055507cdf6bfe9158a11197c085a74a961083681d13e75e6f3b8deafa7c1e0cb2feeb0e8385b6166d7fccf1e91026d61b13f5424b2888badcd0ef01a316e456f9f2511eee85e21758ccce1f28c17ea8a8cf3e8ec21eda7762ab94d9ada4490a69278706350ecb297ddfb0a34f3bcd228be3ee3f0f4fd77a0980001cda5549343d3e3a000001280000009010f45b204ca6778949ed8cb059d25bc4fec6f22bb6708e5b5775a6bc3318048c94e3281dbfc32b947251aec12ab039ca0bcc71bf2f8af8f2440ec0464b64257b876d71ae08fa026006ce4bf0ca30cce70439b4fc302bef0d6dc0b16505e61f8cdd845905de5a394ba75bb5b8e00b3be70a7f47414958d12309d57caeeca5fdea8a0a6dfe012ae3ca7463788f9ebfede30000009093d9e4af78824e416fd082f1c38381198118bfd62d1510f702760be12d4a541b5c40fab0f0792e7c6d0459977f91d7972a27df083484e8673d54d3c9482646173786476f949ae9553d77089d223875120bdd2a15127c23acc23c4825a8ce97e746a3cf5ae7de014f6c33c23ef46ee2ea110ddf95dd47b38f10bbd872517f41cc501bb017580d02366581da31e4c8467c00000128000000905278a3b877dd076261004efe000bf56f2c25fcf680165e56060c0d50ead25c837bebea08da1af822b8b55f4fcc7369d560824e23cc29fbcf18516af0203b32d97df5eea776b3dca2c972a3b36252d33900c6db2f2fb24ff74a8ba96b4d365bcff0f39ee7db79228a0d56a4c1f9fbac122e7fbbc0ac0aa5bf6b96f0b3f8b61f079ae96b6ed4e5451a397523bc38d455ce00000090fc731ea1feb5719a1957621c658c36d136738cee00b31266038661c6e845ba06487469c85f90f3dbaea068013f1cbcb0e2d8f27dfdf5b03b31a8b1c025e7a96f335d3df3a182011e7d70195883a5b3ed022df2012f6be317a86f5b68271e47b2a28cac88c2607c4a8a0a6f89ceff73b50a873eac08cca2d117220098e39607d4626e99160081078d59b6e87df2bbb5d50000012800000090b90fca94a354bec5f029899df0e3eeae745b0f7c3b81750204a2fa20738deae2e9ce83b3883ddb7cf77cb67b14d7335b2501cffa2ba88862386c24cbe380c02456b6614df1fc3073cbee52d1f5933dca191cf08d1d09611b0ab6b64cb718363fddd3c3f74d5f02abb70856f8f8a6d5c615c984213d252584d71ea78becac1f9cbbb701de79f106a0dcbe98f51c9fd853000000903825f89951963c02522c5e559dabea7e622c7abb970f51ef3cba2ec98984d08cca32862d33bd95f4f90a86ed1e68533f54b287a0ec1a320afea3c2d6cae6b129323bf25c008a8c847789e5a50a54cfdc12141b06e3051714ba05e7f8001fd02c2829230b7827a43cdbe0f6eab847f42626b47eef5f9532a97ff9eec1afc9bd65945d052b1608c3f423e1d3d7106511dc000001280000009088313b533cf2e9ded7e742d02d68477905421f0b1fe3bf9b0aa8c146ba17aea6b9ebfab46046f91aa6f251308f7a5ae24afac85650629bb0fd6e6ff310d0903d9b3485f8f3699d6e8768d3c8e9dbf9ac0c3088ad2cca27bbb8b715fdcb577173c726a598464c18e29c680a33839df0e0249798be5fd701e644ec9dd0b497ee800d5ff22b585f1b0003c89d4d639f1e9700000090d469383937ad5cec2958fa45fbb73232e6a33797d712ce99fc33616422f3e7767aaba9df8425553f646b88dd79a3cd90c2c0917ec8c79e1fbe299142dccc7ba1002c088f983b749716b533dcd2ed05361263d51717411a0ccb2e5bde7ed28aa6a570218ac63108d101725a2ef75c466107dbd404cd1033e29dd08e913170e57a813c93383660169b77ab6218d8b7301f0000012800000090dd2331dc5b145d5accfd5953002837ea2900c25d72b0544d2c20ac362b7e25701792cabae84dbdbae11455ffa76b861a11553bd0d42e2047ba0515370f3f559673ad9bdda1a01889c63b047b26935fe817a8687099a6fe9ac41d62f14c8443b9ff5a34bcc1d0dee62427b7b5e35bc30204beac7044caa779595be13bc7c1f0a611312f09ae17bcefcd7cb3a347409f03000000900ce4bc21ecd512d21f678848179e49238b270a25621cf84bf9a1e7811c17af4ca5930d98448f6d4c7d24f25541767aeb21a021b7b50da48f91b18914976612e0623ff08d327b73407fc5bf81500e5a430b30ef9f682c9d324b350ccc37599e03b9c429b6f3aefbfe305b487251c3d7a22c8df0495ea55053bd8ec3a4b009a64a66acf34ef5732e1d20abfdd7ea3e681700000128000000908064feac2cda1ec43b8d0d4a8da77ca08bf9b29bd0db5599c232a2cbc48fc7d7db31a46bc0348cc3877b505af71fd21a8f3c3a191b866ff1d4f172dc23058506b1c915fa73f7dd910ad67a1cc1d9bdee205dfaa161d749bcb84ad9e2e34b159a1a5eac4854d5f628741aeb4206de14da24ead0f17c5f1df3cb37c670d44ab6f7a5ef17bfcdc57ef78f27b0583be0e1bc00000090a50023d2869cd231ce8245a0fd36c7d4ef593aed0a3439043a0d760b410855b844d461853b2b5d03292574e98add9404ab525b669ef626b2b476b9d5aa358d7ac3980734e4daacce1a74cdd909d4f97b1dd8473f3e0f792ada5ac2e04d2ca75ec71aa65c458e6a4466bae8af7ef9e9f62351d140f3edb0c82c1182ac2ae2c33de9177bd048c9fe885036270256efd16500000ce400000128000000905aae60d2a4236edc717c7b085ed3c9e4772d4c755ce6d193ff7166671ae1084a7d3c94a21d3046e77e0611fa9464ce56a8a940342b3faa648a2b27789e9f6149b8a454eb42576f0c51b1850bfe99a5702f9c78bf2951ee936628d76a732ebfdd5a955997d8817f6bccebe078de8933b82a45f4a9b9794ffe40d4198f9ada914848744bb98548412e75b05f21f89d858700000090b55d98355d463f90ac2a3061e19e64a9b27580bc59ce71ac090b40c74611d5c0aee840bbd42fdde9b2ad9b3efc82c2486ddd6daff949830d2ed19f37b13c8e01247f820c3b8ebd2b654eb9da4104bb731709e79fee5dfe8ad72e295f5f7d43e80d87b909c7e54a4a7fbacc195c86b45c083447248154d2da66c1cf61d33b85858aa7b5e3f7a1722e47e9886212f2ef790000012800000090e210e1e82695e55a5e0fce823843b9e31f8914537c3da879b009b81d65c89747db34e8eda613543c1b2d7be16cb5d201a307c688757c0126c2e1dfc2eaf7d623569bc1644592bd20a9fb4cbda5965f452807b575906f5623441066c01c85570843d730e5c252c6487da90e19dbc6ecb60cbfec574b8530155c21cf265eade7484fd5af59b85810a6a5e035c8cedc67f70000009029d7b9f9c3aa84051c2b9f4576d7f0c50b63cf592b16ac8257f78b8f151d515bd38b586f6a1a2b42e596407ed17f912d7981413e72d68f3014b5fcd616a9424818b24059924217459f0d82715ef881850a705775a461c4ebcb74cf1b0cd3f59c44e7bc1d359ec9de7aa8259be3b6e613216ea170e50163a74763d144418e79482b177aa43f6d6445d100fcfea924d1690000012800000090134f4630b5a437598a1589b3a42d3bcf8d1ec5e91e706f4a0a084aaac4b778c0e6edd08a681a2bb2bc78bb08cc768c3ca6f84f58bd015c1b7d2e189009487d95cea5e9c28cd666ddde3df9f227f1202e024ead676d9ed8ebdf8920ced653fec013a9ddba35c8eb023b21ee9f597f079a07dea3b3388209287de4d99afd20ef3fc44c061cd01126d767de3157c7c3e55c00000090e1979b68d2ff9311525c6160c31933241b99b3de6220ea6512d15e32a4064fb80c540dc37be2a93755bb54b2092269c014847453a95fc56b81b4876234a6bed58fb59565e1d8e0acb9c5ed8ee24ed0f110ca41e8a4708479d5f4061c01b0d44ca44a92fdc78338b6b7ab90ef9d901d311417688355823ccdd0e746c6614909c50cb06340e13f6bbad2735f6f3de8c5c40000012800000090d3c113bbd9fae618e84aa32fa1d24478d357345564c7981a08d9fe2f717540bb262f3e76cb4fe1aad1ec5b936ebb040f1fa54f0f7f845f55884ea875dbca554a5c14cdacd1a99377e267297638fcb2f71209bf29c9d421aa997e355910e41647850ad8b1c6e6825949ae62ed02cfedb20c76a75db9a71131a30cc1bc6966f3687219cd928f5b4cc5d62908372b24ec0000000090ea948dc5080f9b002ff306e72c1ea1c0e38786a269ce29ebd8d76e279dcc3917d368187b91a55370d9882af19867ba6eef7f1dc5aaf725e1da7e481e942f7c211e1f33780847468fa26e17165aea3fee2bb95191550bbeae875832ab85706cade6edd63c1a73f432cbaeefd22ec36f350de8d3ce29793db50f826d300b25a94cf8c882f82cd688c8a49a4c281ed20c7d0000012800000090a0cc9f70b295255f0c15a6478b4f5495cf790ccb0c31f1794565291065d6b75e9975a3bc8a591b0f622331d3c004884524d11f530a17da5cffd7f88db93533622e002ef97c440f9a51981351ca7dbdbe18b6147a37e0efe2e4f38adf3e7a6fa5b93f92f4c15abd03ae72c7bef55089ed049b8f1ecb4c55d9edf0cef0aad6ff1d7980978af2dc0f320541b1149cb3cb7700000090b6e855a08ef4a6e660ac01f0c2df88bc7b4b0c574ea24448f3b616ac6a2b60c2e0a69bcf144660e4efcae681cd0cced828fbaf75aa2b45a7ca9a0cab9da11a86b214818cdb43bfe3d502572937cc49f20ce5bcb0d796dc43ec448e1d30723203bf7560b3eae7cb7f7c4b2d0e5ad03d2000b47d9ab757b3978e44b5e54c440848420266924dec99e19a70d62467ef799f000001280000009078cd8b67fbad66d9c523254b33490f413b710a9630452d1955a6326aa20fbfd476b67b3cd0856af83a99daa86ab351f8a5aa0ccd5a310942ad42f0fc82e65782cb231f6e0d7e6d241bf039889121df6018f562426a63eb57c1c8c065b06243d1a51687bcf11d3768e3854c45fae53c0019957a6cd82aa1853b30c7829ab18c1e3404273c04106065eac90bbd9d8dd52700000090ac7d9560cd2997c58a72cca3e57e5b58ee035b8201924564af27dba153a612a4a90346ba45d6d7f7a16e2e8ef714774836a339df161ab634df1de9f57589ffeaaed27a9815f8c471aeb6a9d5d7ef97cd04ba26962b48fa55c2da994acd880cef9310a1c484495d673fa5ed68a1f70ccb0810618f6974ba1d11b8777dd52b6b79b177fafeeeff66101e4b5739dadddb96000001280000009085fc1f709f024f16e2d7d3042adc8776cf373bfe27da97ece4913961a7592760b142f0eded8936205fbdfef0c72ef20323256ddee9a0070011b3711572013c1b77c5cdafe7f4e1768d41e09f2a9d0378181e13e0edfe41567102c2b2bd319593f945ad77649bc8542b14ffab2e97c2880643ef014c7b1775d644f5112a1ffec178cc587b0f140e681cdb985a90e00d6c00000090b8042a08acff363ea21e701892655c0fd07105d58852414b31ef9b7d3ddb1b1eed34ffa1b518188c982f31673683b8c8ebd86644dd8bd53d70b6e23f578ecf4e816b5d6f2eff705a44e7c823b7d91cfa21514ebc97088053383e4803efd65ac68bcf5c98c600739e99bd1f5cbd760df72ff53921711cea027ebc898c44e3d93c28ae13ea86386a1ed4ae4fb8b695aa8700000128000000905a3defdf9bbafdeb6ea5ac10e5c97eee4e02be61ec2591d2ddc24b25a99e4945a7aa964612b9e9b713d189edecbc4484b09cb07be1e0fee25592628650a433cf220251e5f598126b191523b19123de521156ef89617c6f1a449ac555e20cab52f06be5711a516c1a5a8ee384f92a47f112b3542ebe8329ef59a82f7f2f126cc4129532b9676e1e62c35aa0e0875f804800000090761f5911d233f088e8564950e9e00a44abf7ee38d9f3a319c86c716f5f5d5e8e4d31d5770fc5e0581ed7eb77c6fc1852d68694d58531e196d7b0df4c1f5f4c03adba60c157500269c33ac6bfbfa8194119f28d8c72f8dcb71863909ba0476349f9cf7c0fcad7ba2a6eb4c8f1bfa57e582a105c35f2d102cc8c3c55cce547cd42581e798b91a919cfe9b060230e63e7a80000012800000090b47f48d7705d943b40047448cb3f34d5dcae0eddbe6facee63a47be6c553d05993b56c4e190b743209b90cc5d1c6b6438d730f6574d89e475bddc2dea033a0f062de77a0779580dbfed8bb88b72bb958114617638fd612f2daeabadd88ce4ac45b93356033223da21007ea847311e97912c3859e3265e4e80652fcc3c69ad540fcfeec721e6f15975362d36b8e425b7000000090a489c9297e07c64ed809ee4caeced45d38c4caef8ac73174a7eab0de37c954774d93d7cada09f49ecac49c91a7bbfc034d1cbb54f6ad920cd6ea128c2d898f5cc7b60b118aee403fd95fc85584fd3f340960aa46ea13254856235eb2bd06d476dcc1432d968ac2355d7a0e46d16f88c52434cc45564977715251ed0edae97b138fa61957d6f2105e76c656dde7b50c280000012800000090472ca1259de4fb70db665adc48d2e078ffa2203e1615a6bd7ef908d496e840610792831911c1211211698481def763aa6d22697fa3ede60fc950841d5fe18c9ee44a832aca695542ebad3f39aeac621e0a7e00e17d06b8c68e0c3f939143027ad7da02a474d231135d67de0085001dca06a2a58465d9735cc047cb34ac4c6a4f6005da575b1f0539cc480425112f6cb00000009022607e80da038c96cb12be40f3cfc1e8742ccddf1cced4f6deed2b10804800f91e5d99897a3eba8b83760c96fa2bcd4daff94c77fb1cd48fd9150114f26a8eed01194c4c5e9b178681f6c9152ccc403a26fcdeb5f514942ef1c6ab3b3be28c0ddead0c6c2ff820a21902125dc1248c661733ea0a24b2257a70c7b0320d73f6c17b8d33df70dd22a9aaebefa6b9971e42000001280000009033177290bfb9728379232076cb2130bd23481e3c6c2f08c3bc50235c2b369e3f25858aa4f602b51a7734080ed6eee6c50ea4bc061bc87e4fe6d4d7fe398e128c3aba41f21bc996d8497012104284453819ae441c80349ef7e4b7335ea7c294aeed601c894ad9e50ee78ce3d59c2c983e1b54bd4b33fb8ecc9fd59bedbb005356a55b804e18694a22a8da183e1563384d000000906b3e57cd71dc0ce4d4f88f4508091b9d2458621d55a3ba0661a0c2abbb9638de58fcc70ed4c56868f18c1332a7f408dddc6a9889ece174233ebf2ea193ec45ebc7c87cdb13dc74321d5f015c1e33665f0995eff8e6725e4f9dbc181d83f5502a351e0daed3ddc2da62f6f8118792142e1034570e83eb17ed07f62a5657d8b140cab7d05527b81d105e309547d13100fe00000ce4000001280000009070059eb6777a0a4c9489bf1328d8693f6bc671499c26738d4361cbe6cd6d4cf83e9a2d46101364b6f9aea23db7d239a4d7fd3f2fdee6d51e47674b1e8694df45bfa875d456abdef873a617a021ca5f672e72d13d77c5d3416b52f6c7a7d98af0c4edb3c98571eac6aec13345778d7cf82b8bd5d7dcd5e233c9f50b6dd74c11a61379692ae24a660216b63846f703bf27000000901337a611c32cb281c769bf831e7dc6f31fb0e00fe3c314dd6f83901553ae815afbfa9b84305129f07a18f215f2466d2ecbca04fc0be9fc348e4e81d35266ed36a294017f46b390a2441c6a7d5e99c670180d4f412a5869bcf79dd3053df13a65655cd9c30054b2bebfb5e3c73178a31122fa53b303af23f227b0d673e66331ddbf0745fab27a0735c48576826aceddb7000001280000009082e220089bf79a64526f276171858ec484facd2687dc10b5a22a044aa9651400801faf4329eac02ab3a7d4ec52724b5062cee499099305ecff4217e8a7c7ef34afec9a7f9f105da62ca480d5972ffff20378a38b1a99225210bc0c7ee61f794c217d8e0dad16c878cbc911eb8dd84630161c32c8030598801cc2f65afa09711e39b7db08ee1cb3e85d967639a6c653d60000009034157362c597e0c6683b5e76d55a677ae433f219c637b64727df586d5274abae43ebab09f44369d0175e8c806a3513ff6c82b244dbaea1d06a70d1e77d76252c375fa96fe5eebc641bd8532901ecae400887599fb0ccd1bd1a1a132d814c1d66c343ce45ba8099207242482cadb1ef3828c517f7ce3c462b8ae370c0f3bc164c415e943d5d477e366c3d50575505cb440000012800000090e0428b0df541308669c6ba35a21e14a48ed1ff30306d051c51a535aeb8acc68744cc4c171305c261ab0b97d23561ea59b1f7c2c12e50efcf7af249b66d1615a886011f90b4c7fa18ff9ac22b0109c83d1e6a0988f2d8c3b14cc3499e566b021c8078920323e7f5a06698495c92bc33fd11de21eeeee4ff80c41300d0875383816deaf1deef2d6d087dd906001df4d57c000000908dba7c9aa1d8ba05409d9782faedd5d1e96ccf1fa6ca9e641543446277ce17cee21dab6f09e1fec2fea2b5bdc8d03c0d5ef9dda9fa71db46f0437c84ddfb585c2a3efe8eb85fe362d6c96bcfc3f9795b0edb530752ec4053f8f3abffd524189327b991c3d2d6aefa5eb377c860c61c4501f18f9359d1a66ecca46dda13d3974305960ce02879c4d3fc26f1dba12e219d000001280000009077785c15f3dd860664e14772df897a1f26b9ca56ebe93b1743f3de1e35871c1adda23ecefe65b3e818ab0a9f3882e8225120263a42cbb59f8c7e8ed7e842e0518e0a4b354aab971450571f0459f4b1392bb427ca2f4c67154489baaf5008e065366311a7509a088377914c276959022d09a631e1a11a32b036c980b3a561602b1fb5cc022dc7fe926097e0373cb00b5100000090854432b9ae5baf9115de2e11dc54b27df7ecc439cab60c916a224cc699e70efd6b5de9b83cbb039e8e69c1590ffa51b3f205b4d63b9bf23e342f0a10064c6489475ada155827ddee86a49b7ed05710751b5967bb71b42384b999696c36be4c88103f74d79ff224e983b54cff21b958191ce961dce230f55fea696fac045249c58ab1164f4ac1836e62d696d8bdb2b0c20000012800000090d5b9d95cfb1cc0ccae74db754e2d00ae1185adb6095e045fedfd5d0f7f4d834f0fe0272e5f40f0a7f6e4037a77030c48f2c60ab734cf16c414c57dfca04ce054c9ae266b651e94f5518db6f2a42fc8ad004ca27ae86f48fd02156fc4aaac8026c9a12dd3c5788f4f7b31a6113b393a23010f60c7b0c1b14de4ea4e59b1ba16c0ff2ba90fcf2565fec41d8531242860f5000000907e1bcfa07b4942bec0d1cf12e2dc61002bbd4737a6a50b0358dc595447dfaf149e7f170d60c59133fd0f8a182a59e6463aa122be90967c671b625d54053b64f6cacda485ff61802fdf4ef013fb67171d1d63c59168db4c0d9baae90770a9c22ad66c677c38972d36844bdee6466cffb9186fb3f1c740eccdd557eda68a9deaf9069c18d3acd624b822672acb9892f1430000012800000090fac793ba4caed97a8d82abf14e9e11a49b1e78f757b6e55e3b5e2a9e50bc9061d98f5b2253a5a4f8b92d616f740b5f872cf311fb88a80398bc5711aa954af87524a84aab7f347eead5bc848f43f312ce101ec8df500ad3069fa10e285fa2388be33d5550b1b6db1962cf380c76adf09d0fe8975676e0e6ba0a14b5230459dc638cd65744dbff41ee31c99cd9d46836dd00000090112d73f7f23f328d1fb1bcb7acc74a73c3a46e611933055d90565a62f35d1c0b493739b2822340fb83967381d0e5b957b8538fd68dc7edfba1b3d12d176442f39bd3bf3a20bca734d495cbe10a19b6f22b71531209c05a2c9ff13638bad3b1513d7af44e6b1f082d7adcc76fcf16806115dcc08349fcd766f2f58a1d3e4cbb017b459fa67405dc9754514f4a3b6c00220000012800000090f6fcf98d3d4bff56e76f2dd03978515ec7b5bb267c7554a42f72e0a749f5370ebe74ee4ed9989438732ad0009d1343b5e5ff3fdeed5e0fd201ef859279ea2e9b2dbae42fcfffd88e0a546cfdd929bd92033c83d8b643dc23d1c4544c6d58caa4b1cfc8d2d00c220a15bc58939fdedc3a009e8c87c008a1694af9424e7dab7797868fe5789b66704489e5d4a18a2d181100000090695bad5a47559a016257457bc888cde434bd84b2468b6aef251a7a1d6c44dcc5155b60d5cdec7b105ebb3756ebfa6bcd213ee5ceb9ef6076b40495a5d8ca7710dda5458ca15615c69c5ff83ed6f3e69f26ce0a4bdcdb8a314f628d1d3036b4a781cc6bf605db34be7d149d5a6d3ee01320cea72c94c070bcc07748dfcff26f27197c8ebaf6a3a25ec3cc44767056145900000128000000909791a7a2bd581aad09db136c2de92ad28d70a395222c9302fd37cf1972075f2cd8814cde5eeef57b44225134bb0ffa1162fef33c82430ee6e59ee65170468a2b41c1f71dc18d2424ee74fadcc9512fd52342efa0f8faa81d9cd0208c6e31446694c641a1e4a7958b72e7f2754dcd8c1105a5d4aca5d4011fadf17451c556421a8f21dbce3916431e1750db3e0240692b000000904096029b3a23b8cd1f916eadfef524e07c325326d3a1b35823eafd3c974121af734b33c68fd8791a27c986f55f1fbc3442332a0de4507885e4651ed98944c075d64d967169f89de50e86761b14cfc9fa273cb39aaf7ffcb57c9866488cd1bfa2aa372bbb62608405afd86146ca439b532bb6fc90b711d1213fae5adfab07348e94780b884ec62ed73dca50fd117c44c300000128000000904f8810b5e5bc5745ba60bce08a977703c870c32e7f8bd48a2d32234fbf4ac4945dba64a2d99f66992e2c4927e6a5bf80e14009dd49b3f56196781ca17e0b20fd839e496ace40296453229cb7c184f8f9103b62ac3ff9c93966f28b3aa0be95f6c93eb276d006535b539c39ba7d4c86a903d6937595ee240a70514d3c9212bbd021a8e0b440417b419c935ac944af17b200000090fc643b9f521e954d3725dbaa85c6a69ef9be0c03fecb82949f151582ed6cf886b4c7c90df7e1fb3de9640de6c03715000385ded6b15c69da80be33f946a92ad1105f870818122955847220e1595fa24f1ecfba04c2fab4e8ccf656ca4298998a6bf60be5fe9132c4a65caaf8252dae0a1b80a15c1c0c7a19bd2e67d846b5a305e7c891794b5e3975e9fc496c440c7f0b00000128000000907853b4750db13e7355720133ea8fb1c4dc286e94ef83c9db3c90252cbdf9775b1b9011581f06b8f90e0c31fdd18e203def67f8c724151aa8d77a68121a3de1167dde8414109d206a718f9cac5aac111d2fb0c0ad12b68722117ec2f0985caa409027c99b03bfcb4a21d300cfb7b8a6cc135c2ba9ec230f3c07911402213c75fd79ae45b964b9da0e54330229ec3f1b610000009093c682aa32f37e44143e9ecf74668b190fd1f304c9672e7222430c9b24ef0956a07de80e427e107f82a1d9ab40e0ad9cc90e03d1c29e3be86a747ab2f46c2a0727deda8e2f790dde8fee319306d1e9072048a52e7b442736231812d7bcf8b7a7e7d61c25a739d67d891c3487c25b53120a30564a3fb580a392e93f314ecc5c2d8e2455c285b122c99c9d711c4bc53f820000012800000090337d85447f97c9534735096c30cc024d2fcf62321e2472b8c95a7d306bb61b051497d169eb1143188b2644833c4380eb8974840ba1654f4ede972f7dbad37bc6f63bfb37f07fec1539015205146d8c7d2b1d05f703212e265a2063cf67edd8923305032d6b8837f042a1aed310f040b8157fd787e3b6a03d24de17d71f7e8313f0977049877745b827b4ea4603c55aa900000090daa9806f904330e20f5dd80a7cc850d83f72d78642bb31e85d23f4dab25cdce8166b5a546bea45a001607eec70e5fb37a8cf938c0f3a7662609a73c41adf7851c13289fc1013e4b792a1f1ffee8929d32449c434f98699fa409f7487eab797aff9a6473420713f3a6ae3f113aa93dbb21b0123a4b3a952eef2719092dc98632bf0e9b818dbb967e4a0c908a3f7250bc900000ce400000128000000905234a8d543d1e361b194e6742cc7de8cf2145aa222fd945d6da3281093a3d25124550411cc4df1eb9b8c3e5b05a041ad363f267136be11e1ae385c93e151249b194ba5e429e1ea766fd195560bad788a2bb6e49a940be6902dc1142171c79afa324341eecd70f18d27d39ed67362c3dd09c39c99d9fe7fee7659ce45c8fddf78f2eadaaa99118cbfb56aa650177e3767000000909e756e9965b95e69f03b298d46b05587bfa9e86a274a6839bde6007740dfd2f818190854b27da547fa448c623c5b99d3343d3114487592bf8c8a9c5d66b207996c96700e8ffc3b6cff57d869cfcd6a0f13642d5c3cdbe7587c0275dc93991c7a7c4afcb0c7b50b2e1200689e89304d232e392139c109230c4c3b9a735fda104e9d66cc091095b7053ee945c500e1e07500000128000000903654219f5e0f8f81f6e951ebb6855e33be53fba8d7fcdfaa07fef166b27fc05657f78ec2deb64c96720ecbec79712e685977270c5c0bc8ea70f09d55689ad2e9352596540aa0849eea513bf24c725ec52bbf60f0435018ef4c8a74552580d7653faea40aef3261efd2893c6ebe021db8043805d9820c8b2b81bccae0115ef2a28fda161e251047c9798f0eb31654168e00000090a734b780768ae0f3793d9d40e42a48bf58422a66d846fc317749192a76f3094fecd275dfe4c715491af1dbd4e35827782e15c5ad65b13f82188bb7965890c26eebfcbfbe7cb274bda87c5ff6e96b57371f91d66850f67062410a9ab4e664e1a3e18c7450f089ed7e44604b8e1ce3ec880fb45f3acd558a0cdd87a4d706dc8ddbd8f005de8970ab7169b69299cd5d12b500000128000000903ff6ee6d06191ac7bd0edf29ef976b4ea52062ef9994ac251d77e97ae4634a8a5b69299586d1046df63765eb2d6beb933e85399c5e853e00ed4be13510079fc92f6e12a4ca24e13b35f67c506e25b9ad26e7494ba2efba64d4b8544fead9d48ed6c16dfadd0edd347f4e729a19f2f38a0360609308a7500dd33f04fdf70d542a0520d3ca051c7314225463c236ebfa0f00000090c952726c8c1da23334c720d4f56874020f86b579e4b771e4f3f061277209e97e64b1a0f37f322d9d3cc24c0166d6d91a141f7aa3b50a1bbeb3cd4d6105746fe2a80fdcd6679282bdca9a5aff41fa379e05387d21cc7355f6052f7c8d330874086dba0f7454f37c6cb56113b8f24245e629e2430599401c7cf3c1bb08fc7e4960c782c705189b87446f975a8009ea78500000012800000090508d942fb8878faae7d8ee45d71a2c61b184be5f64ceb7e859bd8ffa76011b8e2b4e8886f43e26c13663a1413a13962bb7a6a502f5d3d136a2594f7927f16eee50aabfdf9f9799d3807b69e7dd011b7d29894af7eb86b113d98fc9f610d2431e4165342f0cde9e211dc1ea0de30766d92013a812d1a963286d5ac93465ab4531cbc24d519d766bc4d59208bdd35ff0d200000090016c27c704cadb72dd8dc36995bf09bd6468ecac31c2081971d7b261d29b5fb6492e56e1511894e82f14686c9b82103864ca792289e68d5c69a30b846847e671a33e9699e59fe443a9e8ecda6c521cc4067569144209bfcbf034641522844ac799d81fa7a119d56ed0c16b73cdd6cc5c20d3a2b9a2b844106db32bfe27ae79ac410ec3a7879a7c8b983a919605d98a2500000128000000903fff0cebed4d849de3c75c8801b700db60709711b6dfcbad0341bbaa743227cac68db27c686f0132e7c071f71d344f273b24a5169bb0cb3212a3f739128219adaa187570236f7c3ed1ebbb3bf38e7a39141ecda406a8847e2d03d44c67efe6c379f02d7b9b43dd3ab6cc02a419b90f020ecbd1ef59146549b5f52833cbd51f955a399bcac234ff6f566ca809b1591b38000000900ae3d2cf6c75c461f50ed4e17b6ef2219345d3d2dd74d29132ff958c099b8707a8a3517691c57c1c77859d8f141e32add4518b88e37b0485d6bab6174d154663e7379c174b97417163a5f72510177d11089b45e57eb2d9cc3e5c06229a48c16fdafee6017ac8a004c30d24f945d33c8c01efea48ea24ce59553fd29c894b14d124076d89c09f493ec7513b685577b0180000012800000090af144e980af90716a79afcc5fb5f450edcbc220990f32771084a33d8cb1dda7a2b35b46a9be6d0a678d604a0cd08705a336d3b2ad3e35bbd6dee37dbddfce631a4192084b280f666fb140366e9d454f022732a440ebaa20930db3743d686b4694d8ccf460f45658bc939b90352e7059a2d238586ac9611fe7655bbc71123a38f43198a706942fbea5d076972aa79752e00000090c5b9a9b215cdf948b32d39dace1cd8fe899dc54c0bff8293566da6c01c0f0b9bcf30e5e83a127a268a01b201793c2714dcac11a1e8ab24ffad3b1d1cb6af64f7df91476d0d0737b1eaddb2f303f8878508daa74d3741a091a718a0d4a85558ca6a7af9fb3c67e93a563b09b844c7d79c0cb308ac119cfac2d0e08fcf9c09a2f54f5a14e72b39dd9dd319d918e84af308000001280000009067e18873971a8bc7576f3b30987dad7e97d7b1db9d8b7e9c3b962b5f4049394b7b9cce6bd9d8082972429825dfa87ccac8f9dd3e86f62de38c2adce5b0e230a9e6fa0042c493751378f60c56de36bd2a0975835574e15f929ce0852a05c59d71d191b8c2716ec2717e4e44c7d5e323b3249240f5483702f9ac30b10833dc0e26081514aa666f18387e31aa5a38ec997100000090fcc2fabd12293d459a2429ae4ae73ff08a3fc89d54a29d3271af9c6da40c1bc509e9b96f57f715a63384e6d491aecaddf2dbcc576cec513a34a18aa4e75c5a37d8b9e3991802f8b43fe3b9107d7536650eeca460189ba703c44d65b119b0801cda27d66853fc11e7bd7407caf41b3ad815d52daa2ba57f6e7f12b139e3b1561c38b0fb514f84b0d75d0528c0397285f300000128000000908e9bff6422f45b6c4700890739c7b0b90247859429e5abfd0019f363fe6600e0a98ac81f665701db4cd62e7c29eaab75a689820489a4d6f7b3beaea545faa73930f9c9c1df036e4f771ef80b73b3bd441772518e62924233bb1eb83ea5587b2c35a4577802b80d70cce4a2e6bcbe74f121c7b3f85ec8ff5154f41e2883b80f75266ed994286d87c1cacb02bacc039b4700000090b20de16b35ed341b9beffe6aca469acab6c5c0183770d7943cb6aee66b60e565ce3e6facd8b812646e906f5f6bd2102a03d1047d776e20552192237e67fc64ac398176a4e7ae344dfadb65411da0de712a809fe21cde6f7633eb0789cbbba552a4fce337117a86edeb7e8d9908f3c3de125f65e0b44058a07047d0c0394fe55e73a3281cd0701a154da244b19a14214d00000128000000902dd7abf8c1d174e6d2afec69c0c99f5014b7646b69f6b7231eff4e15e54ed0ad8a0f44e86fcd23d0ac6b01fb717b18e6f5ed3bbca715b8a8694aac3ade0d07322116d0468d282f3afafd11c4ba799e3b0759a4aaece0bacdc6b7555075cc63eb1ffc4024d0c11d9a3fe7afc1b4dc0d960814d1d4d3e1c964b27f49b47d0d544ac4290145032565d19d468b73799b46dc000000902866bfd99a1b49dda67fb0df455172f796afe06edd85fb579ae969a564aba24c30b6988330cf66286f39ef29aeb98135ca290a96f72ebc15388b461fd0c0f8290f6a454fd96f81f59900d57b760b3ace13e38c76f99894dda14fd51cb0a4b63f17eddf29615984cc5df18bca6c02272525da84032b9a7b1d80bcf239215ce9aa1a08cbb3909bede3769c5746d43718d800000128000000908c49f2cca9d032a7946c55894a8455367055eb64cf548eedbd1610f276908cbaa4b16c2d0ed0c719b6aa3efe3e1777b2bdabaa45ae4fae1f504ded8eea3bc98fdcda46ecf1144795ff44e3da537cc15f13d9aefea9599266ec93845a9ca4245b5db17d78a0007d3e4770ba8582b02efa1a120ee0c87cc1a156b588578a60edd45d10c9f0b78e7ff49421362c37b9859c000000901df61024caaf3863ffa29eef26999a416bb4f7134d599f6cc6e2279cd48a8491c4a7cdea3691b724cdc1e52ac9458f5410e1057e00496b1a291fe84fbedb962d9fe3c4dc52748dac6a350701a3c22535277a50e70913aeb536d7711ca17804a0e94b0f3ceb605df9bfb5e472a0564dc505393a6eaa381c254557e90cbae44b9cff285ea6b8b9c42a1f4956db300f81b50000012800000090a33a3aa9af0b3cabed4f4712e8e4d3170aae4ccfefcbcc3d731501940b38cdd47e44137a4e82d4881caca6fa754062cddfd85757eb3780cc03167a768e66bb9e2f43b208c09dc0b6dc204f184ccf2ef02e4195a620b5c2b0f01fe23a720feb0dd0b8a86d8b0c9135d0d72b962eab749317c11702670d34c43b5b499fe09b0fabd191eb46afa05350f7b957c27a60290200000090447ce39fe1c9d367600a0dab94d2b3a082a1ebb8ab25e7f42bd0d54c870ebc6163e7e5ec50e8ae07b8ebd34efc687c4131411590e83f1782ba094724aa127b3826a24d67fb8b6898c03f8c717105d3972df34cbda6a037a8f6d2ce61d05792d9f722668a762e58c2fe90edabbcbb67080cbbcd8c84934071761d49f7b7cdb6ddcfee56798b1aea270950d8af64d7173d", "calldataHash": "0xfd94f65b1ec0868c3600edda1df01e4d78eebeedd7a33d4af88147e78bb5b43f", diff --git a/l1-contracts/test/fixtures/mixed_block_1.json b/l1-contracts/test/fixtures/mixed_block_1.json index 1f985c86049..781fa7f2e23 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -52,7 +52,7 @@ ] }, "block": { - "archive": "0x1e375c61ba0422a0da2ede46373a553ba043852169a597c40abdbdeeae01907e00000003", + "archive": "0x1e375c61ba0422a0da2ede46373a553ba043852169a597c40abdbdeeae01907e", "blockNumber": 2, "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000901f6b4cd3a6304da1e5081428953bbf95f8caeddbcad311da1a0636fc766d592b07120f151ed9e955659e1ebee6fb1a17d235cde8f02c3333d7257faf23ac07dd0191d83d771a5284fba516bfbf5a849f3017a502842b83874bb9ed8d986fc80c88467dd05382ea2e5076854a9e2ee34c1acd331b70044f2fa88e59c79552474bccd4c6b322c704a00d5b1d701d04ef1d00000090d6ac1dfd6fe88842e153cf1555e6262e9f7ce377f0bcfbd745bd543dfa526a450b430f60b485c14ae43da63d1c0d7f8352f10c4de856aeed7a64ed8bb35d52b223110e7f22a0b74faa2389f0d87a9c27254d43bab000d08cb828fb116d8e6a5608d119fd911af50dffe679c1e4e912f9083154f3e6a568d14541d68a98c5bd312ab7511e221043772f9a0ee72f983cde000000907daecc13576e25082c2c58958af7f44c68ae85afca62d2911f7355e832a1888567bd856d56a926e028e4ef145ca51074244652dca7b5549777a7aa157a8ec177047a9975c9e59d357b5a2a073b1f1c511c35edcac0bda6c9f6e337c180c54bf0e4d74d9612ae1401a9243180b30e19dd27fecc2e33fe9326d0c2a206db8db75984f619cbb608f9d035e18380a65188a7000001bc00000090f7cd623670fe8345ace8b09c6efad610804bbba0a985baf31e0a3517d1a1385dedc808dde80f95062e092f56f301ed60c00a405302f82c9a0f2262afa338b63a56d109a5c813db1bb8ec9bbc5b9deb212a198b201e781faede95585c21cca50e27ae60e74e03523b6833b3355f601d0d1a5e361cff7617088f544f2265778508a4e6e8ff5757e10bcbce6b55b247d50100000090a4e89c66360f9ebd32e6537f1f5de63eacd2bebe8feb2ded60f8f238c8fa366abbd00e08225547febd62e204bf52ae79507bbf2cca5d6006d1334e1db7e8c89a6f4fec1508e2c4d98aff5434b2e8014b09756c0440020ae3bf82af3afa6928a5875e214743a157827453a13b47bbaff004c2a5c0d950a5ba73f67b25e49190ec1e00533ef4216119b4cc8b6af70fd0630000009030c26e37485c44c90677e93806c5cc97f6a796cf1712d9325277d6730e4408a5e82948d27f9bdff3f25787cbe941f85c86050078f590200b6b0631f21413bb1ef7fe16b1d62d5ba1f1b48a05ce3fa4e5213e7e4f39745d86704767106bf7615df580ba01d59c2d8f24e1ef03d0681a7d187252e271b3150dc7fc291a54bf2f347858dd638d46c7bef49c3126204037e4000001bc00000090fd26b1107dc3623d6a8aaf5fef54d0fb291a6e7d8bb16a6e6e702f2674b7f21792c294e7f43c8f42be7b30f8367c2a5a0cd1761e5d13fff62e6da5a2353ea6d42b0002d47a15b8cfdcaa1dc958e3b48a22bc3d346e6822ae9875960737c5a064a85cdb4220f3e3786658f70aa9484c860c780593131e5211fb698302756c13bf193bb84188e5507b533cbcf96fa3391e000000900a1712a5bd5ec877c416c674ca29a690dfedf3482649e8fb00400177216bc1533dac566371e4489046a1d1f591c3abca98916aa51afa81caa85069ff66d6fe00580ad4e3b11bf2d4679d3e7c4b0e720f1a3030c146d844030d1b263e74a503396a3505248603467ebc7efef59c5e78a2161a24357e209831f1175498cbcd648434e4e4f01f4024f6ce4a61894f1d7bfc00000090d5b5bc1daa383033e4445a603210cfc075d1d283eb9ec9d6485e1dc8cdaf8c4998678485374e8b2d3a6dfaa35c498641ee32bfc9d527fe13fb82807d4abca238aac4ea23e7d2db4b20c804bdc224a55518aa9e5a447bf1ace058f39beabd0584f80778aae59fb7ff9d7d14dfdbd9645429d78a4d5046d7f74ee0d84e162f3b8372c63ced687a0b69e0918046a695eb60000001bc00000090db1361459999167bd5c9c11ace3e20429a863a97bae60fe9c712bfbe37129aa612ac141d0c9f4242d91454686720c86f00feaf4a8f5b22fdbee824f51099ad987b932461b7d83fa125c8778247d1577e0d9f606e3429059224e1dd3e1efeb8eaf22bcde6a35259e9e8958afb508d942e1f7bb605a073122a03c35a7277f4c9d8a8c04458d751cb975cb649f634979ceb000000909db56599d14c1894b36e049310fe48d6eda527bd47cf184dfc1344abac8298ce442fa10cfbd1818816b40683ada8b26b96df7f8d7a6387ad0b3a0d26a432f1595c444d5527614ee52ce81c186c29e28f183a9834311a4e53e98f498bcfda8f89ce9e23229bce82dc47f53d3414178676290c138312739539cc5265e70db2356ab8b8ca30f7eac974ae025544436fe3eb00000090b97a7526997795d908d4d793e5d08e92857892a94c103d790cc12765baca1234e6289e7d3e688953d6b79dbafac8d501ac3eb1daf0218c36ce2496a07a18f82a5dfa4bbb7dcd4e7f6d2a55c736bb2bb52ab6b9a77b91fbbd8cfd5ff92235ba06b521beb8881051644e0766e74f8038e9106c8ebcf533106a0e5c17d6e5c3ca29649a55adf8ce78c119feb5a20b6c253a000001bc000000906f166acc87984fdadad9421885a9008d2ad839849d9737ca950770a2953cca51a3578c0966d0935679e745e5c047a2cc3bb24db8c86ba23614f16f3704c25b1ef8d15e684a9f288d940b270cf4ff901506b93d0de9ef3bccec20eb996f747ba51f030ffdb693866373033cd1e58e5797099035c3db1b0bcea4fa1afac2657589718a37d12f65b5127ef15b04ef1901650000009045e0533ad6f080d707fab0fd994377efd1c79f6a9a8f29ac7b6f4865c9203f0535eaf53eec86aaeb179cdb286301d43e70283ce534d25c959bfb457b7487f2d96a19d1ed691f01e2f603eea8b0036fcc00b5a6b03bac423c7adb13256ba444e2822361698c1e68e3443b8c2f8b430e1a066441d0332a5249af5e19ec986e9910b4b545e89a373ad1f3647357004ab23d000000906f512aa5449fddd0663929b6c69ab4522ca3df6a91af6278084073487f84662408e3df716ff3a131f5570013615af2ca45bb9a14522646119fbc333c79048b5b077537e3f954abdb472b68b4fa18aa3f056c461e7ae24029b824a16a7508520a7e2a074916f44da968fa618240b499832f2bdc063d6d616d183e6de6a5dfa3d709af9380110f25f21007fe7338bd39ba000001bc00000090840f13247306bcad457026bd58acf54089710926d7c90000b5ec5e20eeaf7b9868fe6dfc9c1e8fd3156ea7578a402510f5dea52e9b693dd2f4f514ef2c9ef3af542b0703cfee0279806f04952d388ca202f15d83b569f1fa9b652737bb8b00d8eb793fb3bfa590ed08924fdbf938f86d1802e242126cce901e6cf918e42f1aff7a76a9acccaf2b368c6174cd7567e1c70000009009ed60ac272274117aa92e29cdc7a07fa392a66f6184fbcde0a053c02c3cc30a5fad8a48feda44636794070fdb5884b96123a071f84fcc12edfab90b5afaadbd84d1041301e5013fdfdedc3abac679680b2a00e6415d74be2f1b5791c68f39adb477420be4b7ae49578e3b14fd10bf871a19227547e15e8fba2c22c4ee7dbc0b98b5f21b6dc8e0c7d76a564b4632ecd100000090ef95a411a1aa536f4e79be780761466f823672f015ebad41f1cf5b1d780d7d65e31aa1f721ed2253032ee24cf424b8977b1a7581c4dc2282a20ad6ff39c86eeb774e2dbc0a4d8f9bd079a03a2d3ab5d90bcb6ec9c9b02965c6cffc233df256170d61f53990f634b6bbe353a6620b63ae02555645234b67e2cd731ab32542da32afc997dddde0c56bf40c223f86982c6d000001bc00000090ace691a81d0a395620eb6387df139048e396369693d8d902d65a3e895074c279360aca36f26a03504390ac7f386c9fc735686ea422c7367c0b58abfc1d954903e6c05a02e08972199e29d1606cff4b6700360b85d209a3f2ec157b48cf71235a9d018885d41026a66d9de00303f3a9a21df2facb29947e29e4e9febe28cff1cfa05a71ecf7f71ec0faefdecc253f4b140000009090e74abd5f16b601d94b892b1db386e3ed0cc964b8d4a40007a2a84d6cd752661a93838c5145a7e8a48c335e06f355408c61bedf61df12cbe17f2ba78257593e7a90c967cf1ebb0a3f6e72a5649c43980e2191cec30cf242865fccfe6baf59bd31791733691509290108c1b1b43d3bad1a47c5bf2f3a01a8a88fdaf95a8b58c7cf0b588b33bc596b066f564d7db0b17a0000009037aa5e129b115923fc9c5fdda6075d0d8ba87cf553800225c50dca40f4cac441b2d1ea70052c7ac119f3ac9cfc8cbb71909484444d25949e72675dfac75b5b2e8d0220ae71be5029db71ed954c9454c81f686aa5073a246c38e206ec28c23d08b17af98c617f7872b8792c8d20a7431f05f9907e94a59892b538f8990a5b56d25a5b39e62082708b6454833cf939ba8a000001bc00000090e963879f029469dc12a0bea7f6700f3491f18e9421735d7d883662c9d6dbbdb17ca856044a403b09ceb6bdf081c411a70b4e5f78ea2c36853f23174754ba740b4d132418f91202cc585160011b218ff013cb361f4dc7847a8a86df60f205bc69f928ab9c54065e9e0fa95b526f3ab91a23c5ee8557c3cf92bde37781b70589702a2c45707536d42a4a301aed6154f00000000090ee01f0f4b6098d40594dc4556065ea50e4c4ec9d06be848b061a4b73d3c1f606fb6b9a4704215a4bb8c76dfe47dfca4ed9aeab9c3d4536810bb9794d49e9c63806ff82dc6c2651ec152e362303bb35d807ee895286fe8ecd915621f30abc5fadfaacb9e0fdd0f8f7a699d68f4d5ea94d184c0c5fcda60ad000e111ce009552a02d89f495e226e9cdf1a39b2f86ddc82c000000904bbb24b22e181fa7fefc54818e8fff66fd78e3d3b8e94d66dd6bc6526e58d65edc43c172d4ebab33f1b278760adedb1e8e9745c019756bf8a0918a2f27a7b2e8ea5f6a3c995904f1992f5cfca65e344c1bd9f9755423441406937c8f79261b07060b63d646b1261453cebc4869329b091571bc84b1f80043547fac0c98806580b81e77bed0207dee283d4521d2ab59aa00000e00000001bc0000009031d9cb2c72491cb29f86abb1fbcce64dc97bb0300ac7c63367e6e9e2cdccc7d39ca3866f7961057a2d81d22810bb01ac2e0d5f56ad10b166dc53c56ebf987946e6c1ad5d175a8b5bb96ff7026deeaed607cd506dbced56251d06bbdb8d0b7fe763e8fd0875cf4fca5ccd021f4619f03202645d230d0afff256799fddb4fd275f550638ac5ceefb7f687bd4ce0164df70000000905b403e07a5a800d03bc92fb129e2e559b34bb4fbab04ee40673461dfae7eebc49be9e408e023f15462ff74ab56b3b5134b2146e2504a97c8c3e049aa80a9ba5712c14df12c25b75fb2489ec83d996a5604c3dd2c5c094c84787e6798019d0b49c6606717649b95c34a6ce153d7b6c4491af811437b121a89698f14740cc4311ba44cccc2a1523c8df02d898694fe8c200000009006b1f9afc8e1dedece6025cd1de1620062afdc9d912bba5bfff4354bfa19a5366f515d29601effaacfe23851198c674db88b5f4d146583fc70dd9b048013631ce6eea24be64ba58ee64fcafd0369ccf905dd58d0a32466bd831f12e06fa6dfc9a91566ac76ab6457f80b7470eaf9bb710246f28fb68fbee8357ca09eed5fb100cafb1d26165bc7f9558a802df5ec4122000001bc000000909fc876b803b02925f0732643f7a358b0558e8dd5066a693885f17c2523611b8063ac1e271c5d2bb53ae59aa11cce68b89a120f1714353e91bab03cb4010cc0fc85569fc09e49cd04eec3b1d20a7d1a9f2c4cbe34ebe86b6226ed6989f3de93b96f36f791e40172181000a5a6d9865d4009461c947dcba41ef8cfe4f78e7110e04e22f6242c973ea01949288bea37dc26000000900df4613a42c263ded0658c6b6fa9be7402da423dea5be2c8b3a2094e1d789bbb7864190477619d789b99f8a1dfe26d35b3c037c1ffcfc0b27b8e332533c5036e3b69bd836bdf948b28c8e276370c78b614abca5f5f2e8ffbda87d26ce31f0fb658a2d672bcf471ca407f79f94806b7cb038d91069ffc3b15a2d5d248e62e65f6d5271038eada3476fcda2878088f8b6d000000905b424d547d3fc1dfc16fdab1606ca74309b1b2ee0167042c75f3f8498786b77d9697fd28d0d3349f34a687d2df06b8e82770d282165b787ed36f5cdf4810db9535903a38d74aefcc482e1895cdc9b00a087c1072772bf24958e0e20419455c63ceb8ed868280104081c0ebf4b21f0f0a221e6d3fc4b2dd837cdc415d8cd0f35f6bffeafb6eb23a1688cdc25bc0ff203b000001bc00000090479c1cc4e8be6753145fed961e32dcbeb9b212dcb11efe6543a7a3c0bf56bb1ce8f5ab2a7fb67425ede7acf387f8883b20b2bc57405a5b7aaa23350b95603fcc084937e4173a81b84531ebe7ae1d33aa113125636fb28b2a8eefcb69f56fc0321c9acd7fa90e75d56dda0cd28812d54202a2871f8199e3c6c60c78e64751cc76a48ce3d2cf12d76c92ac6d4d2ae00049000000903d3744e1ede8e424a7c77d0b8dcecfe4986894dc8c3342637b77644828a9099d96c9834876bbe21b7704255b05db76a3f356d4b616e43cbf01b503c0def70ba213d5e950c86cd2aa76ef28bc4c9b65a02eb7c742883707d12a32d84a74bb116d5bc049b4179f42bde828d45f652b3f22019cb8d2201690af85f3827285ce33ba4cffa6a1582dd015f688cb007fd0bad300000090eef7e1aa5507df7ba6bb181a018134294268ebc192479967e5430d14768d16e2bacf081b66aec472b2dea0319a4a96a99a4c0b7ced96c6d5a4920449625404e971932d7f358e99a857369899cec481802a2d93b92768ce483adf47ea9f440825bc859542f53328346e38d67e93562dac0f16752b182a8553db195268e9f1f20306fae5cf2c3d34b162de97960fd3f037000001bc000000905b4738181849da9f92782732c9b31140ae1c09d0ee2332ffa8f855d64902a1182a812fb2370ff55e3a55c1eb5d0128c1b3180a2d2270714b05234dbfc3558e1340a6654d7112cfb2de8680a74643b507129f20cfdf99439e0266c59a1899831bacf8dbc976f00999fc0a468e653d2eb407a2d2140334cb9057406ca965b0556e946ff728aa63a6d9a39f80739a1a5046000000904114623211ba07a8df73883e4f90178aca2723740fb13291611aab18014a9beacce5a780d44fcc7877c2932304381ca68d16cedb0739182ce5e1a95d5aaad67adb72ca9041c5ba87884cd72d6b50d3f0079b727685b736b8cc4787f2404f62c76a1679174510ea3816a3dbc1c691b18e170617dd87cd67b6a7c7ccb3f18cbadf5481ce593580022cc6a72ee7e68cc665000000902f99e44318b735212e5f21f819b3e5b39eadf3f8bebd7c91a900da456bd217f124494d76714c94e6faa1fbae6f1586251d0dd1df1ca99d71006eae08a690a5e37c5cfc8a42702c896a5c6f2334e0837e1b87643f9446a6b59978ff8d71ee309b37d1cfb7a4cbc5aa6af9c53329bd40e1162153937fd2d4058b6a70d50e6b1e2160f875961fb91511232f85827e9c2858000001bc00000090bf46c0a256c4c246e6472143433ead3351a6d7a1dcd47c178c6892e02d273b3ada94157f4c99d14f9d0f586ce6e8ccd241d37dbeef1fc4abd9ae379da6d26f0e6207dca1c02bde7d81b5fb5be927004d1712ce474f07d6776fa6bd66a399c01d59da58ec6e93f56f78a5e90a2c2d078f00a36482c38e6adb1f2bedf37c703d3f2ce4643a59c3363f579583c10a1cec7b00000090275dd76f8e27728328276be5695ed40c306d39d7572909094525f4bb06ca70194d4fbc027f711545c8b0f8e133192ded895ada0e5d726868226b10fba187fd6c076f5d6eedc29359d74309e9c0487df50e51ed694b48c274cc891719a71c5573327498dff8c9c6b9020abaf61660849d18408a2b2484caf68f367174dd21ed66f4a2ae454570028b0a5de05653d60d85000000908e56f34a349e329df1f93ee0719913fe6791839f7427d793fbebe054c4bbab06106783a88b1c89a4fc50b827409c516858cc2686702106ae8e47fe77ca5bfd14b92872b815c5f84f18f6d1feffa0bbfe0dc0c6f78540878525d91c93ff0a2df4f1a25cad48d19041f735f300e3b6a7cc107386d10c3dbc7048131b236c1b37e81284a2a5adba7d114bfeef06ec46c2c9000001bc00000090cefd83ddad49d59a439a6d28a6beb5ea299975ddc8d22e690a813b726f6a24dae6c60c25416ac9a2233a99f83cd0f22cb300df2f49e9282262139a8585f28ef43b4c72a3829cb34f8924035b940a7c312443172799b336dd6a48f39be802cc188f64aceeb3a0317ffc80884632b2de430fb2c0a23f5a105126dc4c3af84c113a45b721c29bb31d18ca9bc3c348c659ce000000904f52486994d0f24a651bc5793f84c151f849d88c1982dad8cbfa351cdd733288e278b992ccbf5058cebb5d1a98aa273c635d4d65f853b9cbfbd044cd4b51ed301fcfc73883230b169897005a8a8205812171766883f96ecf0823cd230605bc1f9f0eafd0a3f59b204fbc441a1eab53e22ce48a3f495c46fbf325549ce895355d2e96a72e42af4bbfc42c239a1aec58aa000000902eb4603bd0953270327d783571f197eb0e017bb6815ef09f4760c3b9ca707ce529a321fcfe073e97ef998c94831500c16c5a0e87a8cc5339a2164c62ad69f9083399fef1ccbc712f5829fa1ba07c00c621cedfc2ad11220ac572fa2dad52999149936c3ed24e41efc72a6a6592e1be7326cc0e3b56efe912db790342a4427c0c2a44ee9d23316f6dd6462487c9df7dcb000001bc00000090e1297510dc0ff3f87b93afde09c5408c0bfda67bc47bba76e528f22ee936b7b8d259b90ef66d2ad9f808c456dbaa35b6e701c7c6895cf48ba46f8e533e890783886f0190aff6a1988745fec1fed42d650699239628ec35d6d269c55a9379ac1bb3907687f1a3826f3b29abb65cafecc3230caf6e9cdb60b1313c2f89bd529aa7f41a5a587033968e76322d1f6cd24f5a00000090e11ceb27c5ca106c80e456740877009c259516462a9f0f76bfb559beed1e9efef5aaba3fcb01d97306ad79b6d020b02d441cfd275177b80d31f0bc9baa8674f56b798f0b4315308c7e7972364510babd12794c32a74e4083a421ed3826de6042115f30a434ee8dcb6058de122c043b391f52c0ef5130871343b6f56b5d961a5dedba8b10a5d679cd3edc3b836ac0bdc80000009081c06356cc159e98eba4e90d17cfadfa454bdfadccf2efcf53b59ed62b813d011c66020d0c386f9dee1fd6a8a454459834141dd21b2a78d7c488a5d1fd1ce51ee5e9e4bfd7627b26ddb0d21af9c84bb118763f94891ee365313dd05fca8beada870fd7346d65c60b6e527a2308c7fdb52b6652017cb1b1919b56b5fe29144df679ace08f9d285b1d9ff1ecde8fafccd4000001bc0000009015d27d0c635886cc3039bb4fd72fd4dfa1cf7781985c2af996a42410b1ca0bbd75d128c09a7b8e33bc032e28c1f55cad3a7e8a1839352d976f20ca470648f0c0e683a07cf2be736d475b5e5ba7c9b4df1251e9e3aa9504dfa7edf788149647440b143f4d80746af81b2f4a57bfb4fa4700d0164f5d26cdb38dd14feb7207800c5e2d8329b4ba109f2dc2a4f7762897d0000000900e102a9aed3daa65dc7af1f45c733c96ea0fae31d90af3be7c47915f511553ec01896463867a2d5e5749f34d98e12f87a709325fe0287cc3f4020ae8ccdac2618e9b0bc97744add9761cc7785417788d114a9f8c33e53794201c3f994c437cf692ab9c60aa954bdb6491dd6c39c690c523afe3496015b3defcffbec09134eaa46a7a57b4e8a7b070b7a68726013586b800000090758ce78d418d80b1228ffac5638b27e159d3954b0b7b2f57e4baaefddb74e1837010d0bc405a3cfb7bfba3a411fe133f93269fb355e77bcffb0bedd555cc072dee92e10bdbe83534732cd5cb97c0c70907ecff01a0ab82b6f8b02577a121e60ecf16926375ca9994647cd5f42852dece1d3325c0db27a5917ee01823c48a9aac9e3d2d503309d217982d3b3cf1f34a7d00000e00000001bc00000090fa3f28ee26dbf08028371698a9bbca808d0d94a4cf4a1a5e23c2c4cfac0ef079f7f4f601908ae708aa4ca6a923a2c0fc241d1faca4fec6ca6e603590ead884916978d1bc6d77949f94977f43d1b23c8e1823fead71e716ee56c7d51b442ab2c6566fb9d923180f6c1c43f0d3f17ea35d2a10c3c223eed3ed8f3796aaaf3cbe5c2f3dca16fc34515b317150db822b6245000000901a18fcd8c3cebec8777d0449538a79fcfd5d1ffebeb0375eff9761797eb651b8f818d49a84b020f66c5a0d497ecda7dab70d2416ae6f76277bc74b3d079d11cd50bd1eeff737974427cd713d29a24ed1204c182db29dec045faddca5b3db38d8ddf620021687ae4f536643a0ad4356e720fbcd793ed82a7682ec0da0ffd0d5ae9e7a2beba71d3971c71ac23a204b48ee00000090990d70a46ac7f10ee8857bab7174aaafc5c4981986852608eb76e30d58d95b302b9d4e8f8df806d058486c2f81b59f9a4e33c3cc3ba25d0ffa5897c8f94c92459a2c75c9076a62da5970ef45b85516302f5bd8ff6373a6bab73bc2e1ce109a02aee57ad3b2a5e6759c05eab61c7d9303192466a8a8cecbc0801f630fee7ac7634dd84580b82fa5868fa149b046445c76000001bc00000090f8e625c27f0ea5ac912319952e8e6ae26f11d25e1c7b99e333d5546f1de7e0fc7ab396053876c616dd76c9b8ababb85d8632d8ee3987d68736153ef3a577e45dbfbd2032928e223aebc121117b689a9e263bd881d9a5e10547e1e3a032a60a2cff5f355f9ed6af3f100f0de91aba3dda297e3009ce0877fb0b754d39fb151365c6e3b2c2098c66f9a4384868b89b9dfa0000009087f5519ccc47d5bc478c41e85bc6e24e473c250e321603fbd5ee8aef9ec8a9d017de4e8e349dcef90bf92181544af461182afcf28f0b4fb10842efa18fc8059216655b6506993b1683b98685177dac2a09c215e3052c50c49050ee1945d5df3c42214b583907769477ae9e483825ecac14e732793de0a60f31102ebaf49f87664caf312bbf28bc04e9dce92ae57cc1a90000009031b18c2190fa9a51d9eefaaf41672f62d19b9b4b6944f178aa2158e0c1673f8c80187dda2af3e7e99a3266f4515bf6c6a9c1f8302d57c8fae8f611ce9e9b3abad926967ccc094b88cc3c6af059fcf16b0f55ecb3de539f39f1b10619e15405e6cb4c7feb2c80ead0b587ff34950c23292ed11bd9ae971871b6481a89dc9d1dba96a20aaa5a8da09120cab9c94bce6244000001bc00000090c158e9bdc1ba2452a1ec1177053b123da9ecd86103ac4d434e0565e173f94836181a7825aca153dc752c8bcc8295eb36ccea8ce1132e142eda9025f9773f5663b7d7ec2e68763df4e7d53f0bcd33002c189985041858887f58b181f385e7d3eae68dc4a6a322b05a0fdf671dfc41746014024e67a3193ac02c92ddbb54436068287c93c8dee3e61fed7fa770b025c30700000090c5192684a6db357dff5a0e9470f4cf5bb66b9f977deebe5bd1e52274cda82e5b008b28bec84df65bd15bc222a741b68aa0544b54cb90191b4bba109c54cfb4b8fce2197c8c3ed802aa57a14f1ba60cb80f21a2fdd12b6addbe24c00ba82fc1173515e43f5f6d71ece010b71db49ea40e113732815c44a09dae9c5c50776aa06a6e750ac6f2365f71267952b62c4dcdfd00000090106c0f7b8dc966747ee6543cadf1f5ae0fa5748f8f06c5335ec2b6ce33376501f656058255a8c6bf6a6e02e6a536b4f734b530e1c03bcd6a7b962f152aa4912babce1b6434bb2af7aee90932fca8680921e2ce90c79480df4802eb6e56c4c98dbe36476810fa232b44c665d0eac1c3c22100bfede9a0c26892dde711c162584c6d3877c7d11ec70c224b245b95f632b1000001bc00000090bdbf0894be5c0cd62c71d6b03b7194c5473f8d90323fd803129f83c1d071ee8734e9185089786aa4007af434e676a94805734cb93833bfa49cb2b47fd5b0c875d43b3c40bf96cbc777c27206f2aecc7d169b7ae5fb1f708295e3838a7931ea1f73f397e60f717a005c1b979a6ac0870c2527678d8f8f2a03929220098627aa39240746bb427b1557edd7286c7c98456e00000090227bbdadcf3ac6b8802319ed81c22cc6503b7c80b0a16f5b294b4f4a8dc087a3dd96d7a062ff531ef22fac632fc7bca35b069c892c8c2f174627375902b0bef7e7970a20774156af4bb76ec172f983ca066642a1e3a13428c426b506397ce967362ed6a5f93e7ec6a9a1e8d38621a24f0b62386eb9af3b97014279fc5ddd2a6df2c96befcbecf71c0fed0db0c8a7e21b00000090533310db684e52586da51b45fd1c3d78dd1358db9cc33d65a6362283a20e642fdbfd69a44c30dea5e3ac9f1afe5a90d53cdb6993bb0803435a2c8067c780e9e4b396fda4931fbfc85856fd196e68fff80245711e56890457c6c87133912ac99dc4dc95b127bd3a9d86ae78c2cac800312b241644dcd9d4bead2b59ac1face8edee6f3c59df01d600ebc336384f223fdf000001bc00000090b54513047e50017c9241d437a2f0bda50781f75e28c6b692bf0a94546dc0568513c1ef923c0790ec2464b0cc275da0447418cae16b8c9d6217597836501a2f516721046201886e445c6a2d231a1fa1792ac86b552847cce5d7bfaea7d1e05f8cbaa28dd1f2da5b78ffd7acabc0e589292069594044af1b687765a650c56248016f3f3733f9f21cd41adafbef3f03a489000000908be7b9fccfe04df0a89196704f4a12daff44ed90f8e8fc2d1c7083ca1bdcf65128422163314520ec057357096a5da93431ab954d691e819cd53c1e9eb74dc203f8e36f61a799779b0d998da8b652f13407beba8cc1a4825cba1ce3208aea5d821bbe4b4a6973e4402ac344ee7bf3c07a12bea44af3636cd54f2dfd9ca26cdc59621ab68aa163fb45af57378358ffd201000000900357a9cd16d8e002a43552ba4d8471434c4aa068340f52b42ab6c5eda58d1f89ad55cbbfe818368a3b08c34b45a5de3b03cefa71a690941b58ee3a3d27df6d16a5610dfebf88f18bebcc37c1f82919fd219d489d5567919b9e08b3a0f7631537e57bd823dd7dc78e41e8bcd8e3fa9816287e457ad5613a143dcfff22a2b5462ed34171188ff4997026539db3aeb8d588000001bc00000090db600c3ad6b91ca1e3f944798cc98e901dc633fe171a9090e1c484ec1ff1b69e31c35c6ec469e8bcb454192eb7a0a807023ed37f5cd6e732b098703244352103a3d85a40fc1ef6d15813e58fae2a1b3b23d7de03c127ef3d06adb6f5ceea929f5d69af1f5829cc31370c78c33a9e02f600ef33303f59847647d34f709c60ee1f1977fc8ff4f4ac995b8ca860a17ba6ca000000909f6f1433c3b65de557941780e5215c5edc0832e5e87e42ce0f7b2691f3dc75bb8dce777166ba0be1a3c04426105d1bd70d825baca848635ad9e185c99f4db5b05caaaf21f1b81eccff1dc11dab97b1522e49b951802b9ba64045f978fb600584981caa11fec00729908c606d6decaa7c09cc67f684670ad144f3263f663d38ce5623998a79bcab47d0fc18c19c3267d4000000909053b8bf2ef300479e59c500e2fe3d15217148d7b1d478777e57bb9e801a390045f558c4a5c50c5a86483efb8fa7379e4b67def8f72b080bb9f8c8c065dd19d733df8e1096e2fd69463f649c46d2f9d12b59d54d5ab2eeb038e3bb3cf9fd7e29a24c97b28c61cf19ef18992fa7c7de7302cee5587729b1e161fdccaa6116165e6e12675735b94739d070764526d62339000001bc0000009029a774baa556000734c5f96a24860488de9c9da645fbeb3142bdb7043a27d737158552949367a409e25d25af7ae98e6d55b5961270b6fba8b2a4d8f12552dcd45413a599df25ce8c6f405f68df4693bf04776bc1ab6f6b5d1d13169dcfd8447f219c83a7520bfcbcf558886c01445e6f2e5c128e3e814968971e6dc731fcc6df11259d0ca90fe3ac166220cce337db1e00000090f0494a817614d81320d746af1226690018596744506887414fe8548b96f8ab884f43c62b0dfb06af155b7b32f0400dadbb88def62837ae863c4636ccba3887b1c7530f4f0deee946c4fabdbd9c2e2d231a0da4ce3842b21f4df27728f679e9f0a4d5495c77a00924f8b19168981c5eda14ba51299c420bb249f59694520e9b2dd06fd7f2dfeb0faa2198b9dcda8514b9000000905e1733de43b9179b8ea4757bf3653dcc9a2a2fb20aef62a0dd49fcabe643c8f85f22a501c2ecac2c3aa13789da1a36359baebe40d403210475999fe43690106adc7ca8a6885fbe2273ab4526ca2ddba706ea4aded1f096bf9706e1dd00a20cac5006f8e6c299bb992400f085820d8395158ecbe51a9d7e5e6981f965f1bb1f59a89bbfe862241679f25a7603e6f7230a000001bc00000090819a74ac553985a35905d1cb9ba8099e68e842172303f8bb7f0587d73c28a75372964fba94393a605274f9fb3188886e569b2c0a9a73ddea156fe8c9490e5a68a767c8a86ba12fc8e1a86f92abb23d6315606fe0f49aa8373a8e6415f4936e498e2c22d25d494a0d5c08703fe5bfc71b1ea4dd0c1b5c08256f55fe5ec90212296b5c24df3f1e26b2a775eebd85a0aa8c0000009003fe00a821320dd9356c28c8b5474d972f9772af7c67e94e3c59316e4d24da1ead36e678857d3d5137f3d55a895f3b05bb6f34518d66d6feb16e824546cd26a302deb82c2272e86020c013a8ebd10d450d9cf49dfe8c0062d3b34adb03c293cf556cfa248bf9ae96b1de8cf91da30c1f09c504f94c704c68a4af43f6246ef4bd5596edea60d752bf4a48f3336c450af5000000900117724c41400a47d8639bb23920dd553583be5fd0b96f998970dcd099bb29299cb7d2d73351e8ec1a09f0394fdfb5e4bce293acc57da34b60cde2268c7974f27aeb0bea7c188c2c0893c76534cf9df227aede91f361028c6bc1c5351a690a6af312e656d2e54dfd6d62eab62ec97aa91ffba09319d0ebbb0917f53ef886b3203edba3d7f019662752c30427b7ae6fb000000e00000001bc0000009081f9d24e067d5f4fb0389c89104ecf20cc9d7258b071eb48bf54926873300226dc52b9a6cd11afbcf55552e4a896a6638954902e34eb3cd7a2cd8fe6a96bd531d70b14b09f1ea2bd689f1e1c85c56be40b1f8e01374ab4957194827d965acdb314c4ba0bb14c3af3b673069b150790392cf75cf827fa0520c3df6ace7ce8df4da720046da295e215274eaecf17c5c2f4000000904e34c0c0a048737e921b9305e266821997e3fb89186cce3f0e024d58669668d70b004fc0e20d2e5d4cd899d2b5b314b168b048ab92b69bc156c43841f64603f8763ee93a611991b330f901f7ea9b0f890f04da20798ae1a93f25446ad3735db5e4d52d4f3044a94c2f3f5fbedc5347201ee773475c892abdc851e3c5eceef76e37be94c9691208e7f5ee3d36cdddc9c9000000902ae0558330a148406d5db59415bf48296cd6b217d5e3285a13c9286843b08e574d33348624f2f93a18375dce8702663e7c4e890b9bc97c9867f2deecedc7ca3325a06b74fdc884f87dfb3e3ab74e512900fc39caf34efb1eabb1477454b1fb06bc40d21711d11dc09f9428a4162f4e11276b2b4c8558ba79d43767fdd2e16af5e36f747a682c712d6cac49821ee705f4000001bc00000090448e4fbbca04c080fd40b2c41a430f899a7abc3fa008bfa82eba2443a692092e3bcb9aaa4159b73b523a15ec82345c2d969571a661fe83b82a4eb0015b4a3e2fe7431e22f04198bf3718edb766f5361c29546889d4af3bcefa141b554971814bee598b241d144a2b4e91944fbdb53ca028703155e902d6978782824f224c66e81c0e527c8e1332039704cf2a00a2e82000000090ebb7246897d4d805f34699a79bf1e3c955744a36291fa62e6446222ccd414a6980eb18ddeeb44dea2b7f958fe4a28379ebb798ce84e0eaea8dcf9f01cc8d483127bae998b807b15976e9e025dadfa87f14d9487ff53463284a3522a583d702876d47831a966b04d2d2e8525c2d277f0f25dfce36790f7b55082c8a6d54bbd1526b96338a8ab1f87dd9b219955504b008000000908e25c976c0fd05bfd5d040caaee417179052a99570de2fd9922733c3f6b3e67381f7caf58c151ede5724f9121d0a47ce588f7fe96da9cf73536d260fdef5e5c591b6b5f2e709663360fbc81e86b40af0188bab1dcb168d81e17c4f1ab2621205b42a8b6a217eda6b6f95ecd35e6a14351679f76dae2ada5144a7bf09549debdedbc7dc4707145e80ebd653be9635d160000001bc0000009077a01ce9c4eb63b611b1d55c3aff4c29afcf7e116fac605366cda3540a07a5c8b573cb672b9101882c4039d78292259ae21b059f5a34b346cf0f7f06a260c5399e9d35429fefca4faaeed76de3fd772529087560d9c0991dcfa5b17d5f5974c442db1458785cb81438e00faf2be10c9d1031f516950bd08377f6333d4d129a651adba61791a90558b9de3245a7623f6900000090e41b0d67a8a72ab35d020402437bb0c47a613fae7484982232e6e0d6abad8deb6f4aacd4e8e0ef4d175277302ccd2ca04768888aebff71f204c255a4ebe79fd53a57a888e8f39263d26911569c55385b2d8c15b09235af94534c6ab94ab7e4de4bf2c8726dd5f297fef840add43477ed1d2243f79878c9587b0ee87f3ba735940076a3ca50f67a06a3aaa80b46396aec000000909d53427bd98a95226bf0e9607ed5a95f36b20642ec62dd5eca2a9821607c5bbfcd7b1d4e4d8310ae11705100f6da726486750a33c46787a380c9c35d6e30ab7183d74e22a7520c33966097144f35b9cf2ac247384b1fedad7461f6c6ddcecdbbd751ae339b62b26023cf1feda3f18687009336bd7b8a88f2d15087905e74e343731886989bfa0395bd85babcb8fa91a0000001bc00000090aa63094cea15318762db90e9d688dd063b9297a75c73a2d337d6ac07adc273e478385a50d1435fc4322d3e76d142c32ea4808f7a5a4a3796f1a6c8a125bd4b442c2becb597404e7ad6dbfeef08090659175f2ff9b31d1a37ba054c66058d7c75061c0c586e38ef1f0fcf71c80a80a55228308471dacd995a143316745c64097240ba819a8d2afe55a1e1c428832deb0f00000090d98251d93e4c3486b2f7e19781305d3c0fb245e2688a5a25d81d1f13db27b70ed42d088c421037fa51b454b6e4191681883ca777a5a84320b6af6d0cb1d18f85c831fbb3429cecdc172e0efd2672494f2cd3661e1ec4d81f7f1293fa3f49db06fc2b895063dc6701da81f5994685cc1725f23cedd64d5f340b82be1869bddac469dbbecd81becf607e6ed8c6e498dd7f00000090488e99f9edbcccd359da894eb5792483c316a4cbf8900364f6b0a08cc7fa55487f361c305d499ac45c4078a9ca186f267dde3583255ac1e0d166bb0408bf6c065e52642de9754edbc6b928cefb75039f05fcc2ea0159e6de81eed69c24b3381455114ead46694c9f84aa29e9930d64a0054037ebb39ccac551311b31081b31de38ef7d013af6cf96d2840dbf24c9b595000001bc000000908eb9765b98c24da9be1561c0a1209feff93c311fd604a585b0a72e584143a357cb3342dde8168302934982e534d22203373bca09580424726c035e5d5825a2137a6e82867450c5c9926611d02bd8f3352a2901542d8c6f8659b85174875e339ec8ca64f841e9235c5baa415888f6bf4c3009efb25b5b05c3d6bb854dda6094c1eb28dc6193e8d0a4401f36b575d8b69e000000901dc83e01313bfcdc0e5be49cea7add8a1034c075c51c4b0dc92cf0e767ee455424baba50cd69dc47a6d625bab4703a5d5c7cc2769a2721a2874c4565d154076a030403b7a5aadf093eac12400f12180328fa5d67847c44c61237f0f78b6f27ddd8c7b19841a175603a21395b932e449d06572b93b8398a7e8e7b67b1bf1856aaf11301eb2d349e19dee76320c72f435000000090d4dceb2e6ebc13131a19ed5f476104be4774a241f8024135c5ace4b10bd42f15c9ee6cfd66413943f1f2d20fa52bd78cb94d103d64cb6d1e93183f9678d42588012008b33c674d86dd79ce36022fa01f2f9820ffb0592157e82bdf182f762d7f633504f09215ed389c2261d951e7ad0d0037d503b10331edf0d3c0471f14f902faa9024c2053494766b64c4b7c917cde000001bc0000009094105ffa42e309f83696ce2673d89562048d19e551f9db802ee48939d4ccf36bdae97953a0a20bf67ead92dc1f9f32c4e3f61263d930a4ca01dbf8b94e212d51fef6e092d8de3f321075bc5ebd0b5f840eb061818f0cca9ac9c851927f1ffc9b545106e9d53d0e04171c88c93272db0e1a3df6d983a41d45762c800520d06193e909b86bae3a2bb70729ff3d458c2a400000009038e075004ffb6f2496351b6451b65d8d7b82d697d6759f33594642699492b215b0d60239a93d51406024b21fb926c4fe14fe84ac03f15e7a2eab9704fd0ac0505a329a74542874efb89ae53d1b61720129e7500739dc3fe9374dfdbe7673755a584a7c795be355708950ff6b2d8836b81a3efa4651a2b033d10a55006522831e7fc435135eabae91d3e11261953130fe0000009026cec1714b91a7fb5c2bd087678bb207bffbd171579f97c814ac65cf59252332f579ee5f81ec4dc3ed1899c1be8ef3d0c2f906c5cbe4e1da343dd2b9c890d5da0186261bc297ffaafc2507632f13f06e1bf8b774733568578c112501af6aed6e339e929370c365b97be53f717b4dcec21425828d56210e5d970ba52b2e2ca977257ca8d30d2cd8e32c34468827885d4c000001bc00000090c4a7602cc0b6d69cb013e41ccb86f1a189b685286a77a55312e6dcd3b270b6bee33e1b24c45abbcbab47523c545cb09d6f8e774362d88c1ab811a65fdabc6aa7e940bfd8465d0d765a51d84c806ae72a0f6b7a3adccae3d9c4027bf03651eaa081467e299ed8ba6b8f344b4ce573e5001294ff2e75f881a34e3258bff1a5102a4aa75b6b03b561bd32ff5445bc9750a700000090c103324393122c19b6416757a19e2893e6f82149811ad368ce94d082f5d88b8f1e5cdc377fd4452db9fe446a1ba14475fdcfda16799e1281e94de4a3b0f3f4a1ae16e8c8505a4f0ef4d03be726f2a74f2fdca85cae804f799dc7fc0267cd4cde87421ec535fdc42085f26983411a1f13104977f0a079a9bc0e01e9af5bcd0ca6ae79d1fb9f89b81e3a6e1b956ecf22ef000000909b66cc9b4ffb30456e09bad3657c6bfe571c291cedfec5dcb81084d2469155f963db8da2bcec625817108ccca6bcf455183ae4dad4bebe9f8bee1b508765e0b5dd31add5cb46e4fdb0070237faa48377254404f83656d1eb9917e8f36752baa0fb52200037fab4f35e528cf43734457b0d0023857a049081630b780e40d39f09536c2375d5eef6145c3fb50cdbf04ce1000001bc00000090613b06be592035c4124a3f05202ad0b82278e689ac5edfd239784592fa44b194cae93d16cfb28412042ea773d6bbeb55d1d502995488af2abb71a2979e9e0e3f384b55521de96a7d73f6e1f6c0aa1aa219bb5d9eb44e5501c77cd7b56e60be843ebedbd3e1eb4a7410a2ded36c7504cd21f35bf912bb4abbff9560e1a594a108bcf9c78f5a7c100fd9931b7bcc234d000000009013f898b19796142cb961f5d919d7783b6708f0519155e6f0fd028c2d4279a3eb20042a74a9a31485d5791d0bbbb8a34fc0e62a810fb72730f3504348533064e269facb8a7691863cc0060e8f05cb957829bdaac034880ce239f1da07ecb4b5fd3299d62ede8edad305d24d03291e54240fcfc9dbe3e853b390cf7394cdc52dd65db932b67164f4c438749078d96afc8d000000900c580b138aa0b469826f6411795d43fc63a263d27be7d4a95e94b6d0934271c86eb268bf09c8b6ea8d842aacb049b0f3f00718f9e9c36417f935072e6bb203ee943fdf4bba457dba5041a543ae82d7c32d4026102241ba6152d6190e869dccaa53b3f6dae3da6882892682aae5f31dfa2fb0e7172e5d4c9d542558d2258582ffb7e14f62211e5313520034749e1d4c60000033a000000ce400000128000000908e48891884cfec7657d80b910b97ef001c94f5bfc4d43fd9c164307a1a0a4bc8b6eadeca4bf6848d23b995f97c37148ed896b525b9aca066a476e74a7fd0f4d4ab607cadd621c7b83318aebc3eeddf3b0128cc37bcfdeac4043b510bbb09e1079a8dcbaf7af89eb1f552247626a814551d203e2b7f0b4badcb23f346168a5176789fcf68aa3fd2264ccade9132b85ea8000000905197029fc01e49fbbdc28725dd7e8588682d3bd6a45805c38d16f66f8e3e5050d8c08ff0076937e6eccd5ea431455cedbf5ebcc7d7d8f8ca9c9979683cdb092e632f721997b6ac7d4e646cf1ecb402b6206b19646eb390680f50beeccd34d81e30b71606c50e84ab8920bc6bd45e3c18257b5f4d786b30d948278fa811d49b83b3ccc9c53e6af2385387ad92d7c51f170000012800000090ea0a2aeb516176ca7e424f492fe8189eb71ad295387bd9aa01633b7228fd99857e6964108cacf9e14a44e9735f567e26b9379b53671d2a59ecfa808eba62ec39ab0dc49d5c10a732bbf298328b45881d15413e60170c56d682fa72a2f23376843e06cb0a33b846e36a88d03d855950a328017d4aea0be3427bafe74d912ded34a0cf8a50c809617fa6873e9b68c904e500000090e5af0c929842c7a60302108077210b10ed4dda5793532878982ae667d6616c07c9d3fd68a77720813c789b234dab39bbcddbbd9e3b736d225daca3908995c5ed12d043bb34d6c32fd73ebd7002d20f85277c3599379da9e30694349e164c3c6b059565df083fcd34cad2042d9890d10b1984922841197d2761bf618923957122018e83141b18a1f49ffc9c71ce6664e2000001280000009063b6f5e869249fa2e48f4d604fe0d8dd752af9709d1f7ffef9915abf574da164a8848580c07692017de0b74def9fdf88f05ce4e2f167eb6461f9656e0b88e1d202b425afc28912b07d2ab1916224d28c19818da33d71cc60bf8cbb0dce413ec868808e6aab3fe510cae51e12c1a0c2440d5c548e5dd5a36f365e742ce502379b6ce162fb23cc6ce9afd84bfbf74ed69800000090c7de50330028d827eee59ee6f1430e446852aef2ca126b736a422dd409087624dff6771a2cadfc5dd1214198e5944c3bbed081d8875b6c00aee9fd0cefe627873b6d7618706af438610ac35db20c47e8264bd7a6cbc22b8a3dc7c3f0adbc368fafae0276537f50e136a25499945bbacb23e432b2e6171744cb7bb5a4c999e5d85f242a69f982ec550de871cb992436570000012800000090fe8f09734956f02548cd8f63ce15f0c1ddde2cbac4dc201999e92ff4064819cad46ac3518c24df7d062fb6d35f762fb269c24b321b3c70886a64d4fb15d65e4ece0909a0d3debe0027b17f91c0474f6905a3396dd7d34674a5f0045c50cad0044ca5c662284b82aa3b5dffc61fbd51a11ca2837ce7756c140574e5898443f5fb4fe6963a487d1cccc7f6486377029f4e000000900b4afd56c60ef6c1070d169b3b132a34a66a418319ebf25eb2e6644d525c4e55f59286fe3edad40526c939e06e0171d0ff241e65e4917f1b5d103b1e6fce78fc223e5eafa93f2cf6231fa843eaf15e152accfd0fd72c3001ba993253041fdc113b11ca705089e84fda37707abf64176d1103ed74f87b170c491b322899d45e8206aa63baa4258e4f86aaab412b84926f0000012800000090ca8d8bd3844ff70db7599c6048f652a7ae75c307c5c330a8b4f26e2b42be1385c1b4711041b4de4ca23e1293f35ac8a57f44aa88c742bade393527004a35eeeb6e1e98bcfa918d5ce707f93b5bb498d20ac640394310ea72b54ab47647491aa983af2602cf28b9bd11045a4717ee3b8d16cd5f613c1f4d8e0946665a70afe272cb008776b047cbee52cb91655fbe0aea000000905388098a60a8885398d2e7801984afc45006a2d53882a73a31e8d79e35b65dbb92db7c9c52b3026af24f83b8e2981bc6ba95f3fdf5866e66f3e29797fcd8fa2df275557fc1a226850a9dabdbd54a704304db69faabe019bc43bbc8325a62f42de5df2efca41c411bd0e5599223b80015077a269b1f6ba9d291090b9c81c3d12193e1232b659fb463bbb0b0f4a8d93a620000012800000090a08a2aaaf6fa3927783cd4f7cbb315e44ece1be3c32a7615fff55c3674d3819f32d4f899c499d223cef09d342594b2d47a4b839e589b53d83ddaf1d28c9a99ee2c83d23bc21a813b3a57b8f8d4134fc515f1baf9fc134b62c01a17284e51263fb15955bd7595ec8cd04137904e4a81021db1e0eee945a5625858bb792e91066c3547012d9a4569f464dbf87e3d871c5c00000090e11f5ebb8c3d115ba5ce0f53f74503e6af530e9a8d0601dd287d4e985fd97789866006d25c48b0cf67965f87c57f006d89d874dd2a4d04f100cac979bd6e7d82707e326bc6955a4b0b7d9417193199042f0674c023b3f681df5f56a24ffd314ec17016c9bd43f139764ec054f8b135a11377bab9840a1e3b1c71e9c102f5743bae8d95e695415658c2d6be552d89874a00000128000000908aa41fe5d45dfda0f88901f50dc84fe1f0fc2d36480d8f4d547c7a35e5a0ef68b7347c84842682b2bf3f2b5bfaa25fd1c7b29a81642f99b92c070b6bfa341294281aa10fdad69cca1bb3b74afd4bd3110ce4ecb797792c7cf787869409607eb670923e7271cb48f10ccf673f0c8edd9a27f5ad5dc83955ef89d675a438040272924513a158e2c91d82bea11b6b0e5d37000000902afc6b2cd71fc4cb27e94f041bd70438b160443f024fde5b079009155dfe75832a3deb7f1f812ba842973ea9c85eed96dd7337445c786eab477969ed43764e44f609679360bed57dde8c0474caa5a84b300bdd05d2e74bec7726669db793bee1ad58f14104cb24ba222ee6b8b36bfd1601a64e08182f2aef0b84d331aae64760dd66c28d41f3d67c71e0f500c025ee20000001280000009057a4c22624f918ab13024489b6096c45f29314da9bfac5a65ec85ee69cb763ecbdc930c78a47952c796a66d56f1b3abdf4964b124abac56b29425f73b9aea80944055a6fba0c6df1f7b111259e6cc16e0a5b77679557d851384f31a7ad867fd503ad732f205f728976ad19d401651cc718f6788612bef09956470b3aa2da51a2612dd1b147bce12b4d168dc87d019c2500000090a4c227dc73c03e2968d77182189978ab017217dfdd5b426221f05c27ee97567fb34232084b65669a3a0852c250157fbdf4d026a6f2c476b8fb1e51313611a0a8a6971ef350165d6891bc3feef62cb511081c60d928e59108dfb82a99abb5421f40f1473638e32b962b0d770838cc6f5f10e96bfdb2c594ec6bd1b59d40f662f23e6269aaddafee14d543723976fa39f100000128000000900d30cb2dcb452db311a790dc687ca719363d231fb85307180a222864921453ae7507c3fba569fb30afecc6492b476bd05aceafd1452afd264eb366ba466d238875e138b6463ffcca805534e15dcbe0442922aea4b7fe19eb679c8a3599ce741111ff85e03ec7d0f5a0890156726b9a4821d08707c29200dfe48b561ee4878b7ac7ecea0c81d8bcf4503be7ee05a8f42e0000009057f564f5676db39b282a7238fb15ec4957d0283e20f11ee6384df64c399886ea482c980c8283688af123f223a2279745cb25c4363e6ac288a08b4294b8e2f8fc914cee8ca6e4af58d3e53c80704637ac2ce3a4beac7bb37f8018e45ccafd833cba4685e37d21437b3399a05ac912eb7c21c8cbcbbb7d88007eeadfd0d4e137cb540f668185484adbd9906486e7a9b52b0000012800000090486c65d6eb9db09052f96aa3659b5fc5eee2d893eec9673e236647d3fafa058a074669a5060495de19230021cbdf9df7a6411f7d85838ee497097acf77584e9096dbb85ca511a7aff2ae295832bc0ff316ae0ec708eb52d6e7883f1e040d3ec17e285c074f6da671a00c05366734566a103c4cab9c71a68b68c9694c6a66a5aa61363ce0cccc72fdc9e8d2412771c0e20000009062268cf85604e6fbff7a8b28b31dfbf524c3bb91191217c56ddc8878bc845483519fc61eb2118c3e192c87b7947542a7ae9ef62b858b62fcec93447c215f00345a2413ae3b271c2fe9bd88c6691393ee2366b10fef48b7a335d15fa842d9a681b1dab46131a29be13612ef992b45754c2dbe1b96b1ff4a39bd6924ac35e175ff634608fc18ddbcfe472ddf6b12957f7d000001280000009091ffb382e562df2860d463e5929d0dd386f52b65111f9e24ee48d1174b77b1fc20a1d9ba91ac555237c713e137aa439c26521bf2d66732cdc628546c7fa3e5f210c5b24eedfe48fb62bf1725e114ae710bcee995e3d34369dff77a85547594889bc844493a821a6b8168099a7d5699150cae7f5c77738f1126a36c5defc55b6389a0417511a13cb1a29915d579228700000000900019f2ae31d07e882c01e824e214bfcf81e0af175584abf73d3991ce7855ab35dba74d46f9010fc0b5c188168b9bc34c281ec206fcd2509501f8d581245595f914a10dd463dc8497694a3123465eea9a10486cccc086214c6817596ef0f5cd5b5045a95246db591e2895b8d82ecc2f0b0cc7684ece5aa2615dfdd19ceeb34fae3d036052bc1e84ef238656a40a00239700000ce40000012800000090ff9576db5c8f0cb4a1b3efb6c86ac616730c9da14834ef033dcf04b91e83499159623597754ecb21e72b3468780ff11f1e4aee29b7aa121963057cc401701b577ae15cb36dd89718c17e547b04d6935b1f626c27e1ab8382db8e5612c18ac99a21c599832132285e68e704901a50ce330ad6c3cd18c7ea2647af8ba3ef6092c2d41f5048af52fcdb2404cfbeec5b9751000000900f04e5656ff462af7e54445012c3f04f98cdc48f9a049290340f444ba0be156f3e4155357f30f09945e53d43a1c720ab093775a2d572d088a56db54463f71835bc9c880740939c918a1119bbe8e1f973208858951bff89561c9137b29247d5f13bdc2e696b3af963c61e339fb13731651eaa15f7005162f563ab71c16c1e356f543cd28f7b97061515b54dcaaab74a720000012800000090516fef0dc2bc7055ce2e6409d7fe8bbcfdc4352e7121caecc070d9c84408de76765accf815fe1b00385b7613076442dc45af350d30494d6b1cd477adaf80b1c3b6d70e107238342c594a6bc09ae6ab3d0bc0776028261540f3462148188b384c8d595eb2612d80cef88154d2814382052baaaca7e819e3432884633a07e5d12416594f72d18c0d104565ac16d6ed83fc00000090c9b0c52898a0faec2bdc818c438ac107c304a683d55d9c4a474c0ce74628977de26931a638659d8af47781a4d399b8c34a3a43d2e58bdeeb967e729fa973d414d751ae6a03ee77326e6d0d062f9d630f26dc1e34c25f72a3020af2c52bdcf3cae28ce1b12abdca9c48da1e6ec4a925c029d31227763b4cfc91da9bcbe8bad0a1a285ed8e92edf7542e11f5b8bafff233000001280000009001879f76edcdabda8505da4d1da7564edf80b687de98252c564a739bf504bfa3c9c5bb76737a0cd8f6dc56f7e8d4373cc914e01368de682ffd2715459a87d119bf4c80c7b7bb7ce634942736bfb2199126202160be57c73092d031d24d272f978c48da4886711719dc9d7f37ab7afaa21e2639112345ad2ef734b4df06b976b0f3c4938a62a12bc07128019876f807d500000090094c856a482c1a46791c6ab9798f7850b901aae2c0d7bc45c8512579f505bbe044a6064d25615902bb1745dc9478ddd8744347c29875ffc110c40cfdfbea2d900022a11f0650b6cc0838c1935da8c7cd2003488377fd931473e3b60476cfec044aa3455ea359358fa502a5f6523be23505aa398118bcc6cba1a90d095784d82c5d02f397cf079439fa64916d8b52ebf500000128000000909190d8a7d39141a908a3c2ba238a116f7a4f3b6874f36cab76becf091c82c758c77462aedbef7f4bdf9f100a9cd501b36ae803d8f39610dc460717a0df325c57544325da696345f6af3fdab58488977b1815e7451370c33d00d824fe5b02a636a68ae4bf65eca4c0bcacb109ac66d4d505f42581e608f811e05c936277f00baa0173fd073022b74073ba99edd5429b9c00000090d43c5d92bd7af690db3107bcd32f235bb11dae2488c46509916f060f2d5091d155f75ea21dd668e813c15a3f211158ec929bd4d12f4408ba3ca4e39d17b8600d16ac161751b81a7b47bb7ee43e09a854295562afa3a580f73119d975a77da58a6dd313418b186d91b8d3d1c0775f26411232385c60841d40ebcf0ab89661701e6e0e3292757aa5c1273a37a0d84658b90000012800000090176c26d4e39726f095cf0ecfc4540abe667343ab2b2bed0a7c0f3c606fb87f9abb981e15a4f7802e33b9922c55d7a7ecf61dfdcbd381c6c3e6b81ac2fa28433f2a8c83117b54d9b3c099e6823faffaa025967b084e9196eaf311f7db4d5532120d015ea5c480794d68afa41d61aff7bb085c4f68cc3ff1e0dcfa0dd0c7ed8ed4217923fbc35e5242a3801764c7abd31000000090087b646a49633169b33ba2d85fcad84e999491e6a186594d49a27541178ce451fb8e7a5cf3ff93cd13399411ea6ac49db9e8517386e86d4b71df794a22b6e55469253f584762af3c9e2756ac1d067851179dc9c061bf2b046f87acf976778e4903153cdb0c6107096d8f187e5b45f39209501a350da4b1ec49f577cdbb98999242ade2285f5332d019741984ba413c4800000128000000905704b5e18a8917ddc8e751f1feddfb879dc77a8cf9f02148d9262649c4db2c8dd51d4f65679c04719af674fe999fe560e7698b8cc591d124592f76a0f65c41074faa89b7f8bda5182a2f2136598399eb1a0e858b9c0bbe80aa078a779d39a57df8947e09e5180a88613a378149e3797c1246e31e3424826d668b736544770a475b0538e2b0a5d5a857577c45ecae408800000090b94aeff42f2f4645c053e8898c55207dfa2d6a02490ee7c6675a7776f84fc0d2e54d11c79240b66a7251bd270cc6cafda533cef1f0add2ebe7eb9f73bddd322fab959806deb7914fbcfdb2d24735f52d286cf545a2e3e306828743d8586fa4c5fda3d8d80aac932cdd1dc89e0a149b0e160b0ba32aacbd424bc00debc58ac10029565c9ee8995f28e13ef2d7913d85eb0000012800000090a902f042e0044851611fe0d69869a3a795cbf0a2299c42b22675bf9ee726ff9b75cce4c505b523eb00ab53adab756daeb2de2d034918595d7223b05075a72372279d59c933cb91b3803b7f95b92a53aa037797938220d479d592ac27099c81d0ebd659496e91f7b5ae6c5e27c462b61b0e0e501073b004109a9b6478bc866ab5eb80bc0ed62d484920785973d6b0ef03000000901c686f52b4fe4993a9a801bed3d869979b59edbc027041c5befd7933dfb18878b6767120c1086beba65b1463c1b8689ac9f4abb33bbbb5baeea3271d01e006f160481619d7e291fa4b74b34e98e837ee01dcbd5924797c971240609b533c32acb49251d5a15e35b6e5313195fcc40c292241a66b35916c6bae13bb199c3137db119e952061c071be4367eef26b4854af00000128000000903aee6f233ef26f5454c433359473cffcdf7802c1792d636a19f160c290810c25740c187421ac4a9be82168a564100606bbac43608446d73a3dc8e166f2145bbb885488c99a63b168d6f1f160b7e4166608fccd81388debe5082cde71e5a3cf137ac78b299a942c1ef08bbeb6fb10130117bf54b2ec88977aa57fe396ffd024876e52420e624a79f4e6c8b078eadd2cab00000090f51b156c60a1e9e333581dc07c23ca8f8b215e777d0c77ea0de3eea7ed19b243f3f994d5e683039728aa3d7a89e42a7c303ec9cbf0b1611d54f2a32ff70c971bf3272f7ef77e84a3fe7ee71ccb301fc70d3af64bf24ad0bc2efdf754ee001beeecc5172f93771558475301cc0255f9682e2f853534dc98fa23dad4e8be8833ad930b1f861f9c88f17822d03e51fe94330000012800000090cd157b7b9ab07558bcfc0c9bf6250441e6b8d6119927efda4493f5a998010861a1ef5a3f6f291b5372f3b5d1d08898c94d1eb40cc48610251725883ade207d079cb74cc6c486f821b82594e913ca221925dc1695f45bc90442bdc0964c35c77d3a2a960b1f54170e68b3d9b49d5ebd7f13489920600e6d04cefcb4a847ccb85de59f3622302dbd8e50c1c0cf9ccc470c00000090479cc7355250a06e89ace6a21fd2603a98c2059527c027c2be2bedbef5a228e4d6b9c1833d7cbcec77d717beab10f5abfe13b1d2231843bef2465749cfc81bc606cf2e1183de96605eb4422d2902e1f913481c405d900d9ee98bf0a4a56291ecabdce453ffed73915f79346532cc93f12e4d48483531dbf591691e4240e7519c7c36430cc9695658458b9560648f2a010000012800000090e2386e8290e6513f9109c40d38f0b67bbfca0615fff1b0fc7061ff8c3d0a9b20cecc1c054e5ad7effefdf3f20044e1532d8ad842691984ac2b2424a50b4ea94a24510f5a4628a1d3d8ee6141d54b6e0520bffdaacaa92e715210a5b12240c05fa32e82dfa3da7a59bedf2d62035309621d163f5c71a46f42ea6c300cb7deaf141a2750dd7d6bf17006b4651992b5de8700000090504056397e187b84dbc4ac1077b03c1a1778bba1fcd09121b7a76e09cc0396c9bb0e9b6110e7f8d43bbb5d6d83134a2efed5cf0c3735b59b442e6793be9e32205dcf0fa75d657132a015500d6ed3d45f0a6113c426b2c461091743f9d1971b8951a160322e977234dc72f5c0bd3dc2552014ee9c2e656c38b4a2600fa48886b80e4d09686983a387402ff0d8a10ce38a00000128000000906fdc43b503ae89ec379878d903695ffa30ccfbf73588360c44a19006141112bba26719f718f14879cbce1c0823264361b75582ef05365e4705d93ae543387d2b1a4cd6847a83d3cf5bca24fb0941d9ab211cea90ac6a4d6bd6a8b5eae1552c4bf8d85f07939a82d80a9b1582660b94e423038aa01a904c74a8945e06774ca520f5a78a756262e9d0a8b532980618381400000090d58544eef11204017b7904096ae8c9e415bbaea0e5ce75efc6ed2f4b8eaebb78835e5342ea5073acb2b15ed3e1fbc485b7f7d835923908e8e1fdad047e726a0d20c477e11a1d6a1d2fcbb54bafe24c641eee3719effa26513706a002a7d4ebc27fdf7fc92266cb9705e973a7294499260f4c26b683ac208df56f810c9d52931b64b7858dd349e60d4a26220da7fe472000000ce400000128000000904619e3da319c588d0c7e1c25c996015801c4a767e05b3667fdd54cb707c7c748eb796c9ba34c3e70ac9510e17df2ddb9d72cd7bd0f68e9c22594c01bec4d61447b6c8966bc2927dc70e914b591d234e6084fa29d91b4252e1fb9de9ced1e734bed4c4621087b6ec3eb2602212f341218077e9691ae6c2a583b3c3221890c9ad797585931b03c43966243c0b4f68297320000009021ce9b421a6c69953b5f7bf2b8078c97062e6f2bee21ef404de7a45f046c002053bdfefb898842c91c40d120e11553c0f73225a0669ad14d0fd53ba38885eec5a39fb5da97ce398398d93261e6e905952adb484e048b6b099b2ac1ec9d772cda8fc4e52669d70459204aca258a8d18182df4e2de568b3ced1adee8906d948792d1a4e5cf3219710b7b14b131bbfa596a0000012800000090e5272742cbde353fe3c31c39ab622390c0ffa30ba27329e902e99b8d5e49cce7cb66b509f4e916a971aa9db0c3d76a3d72badb8756a53fdbf3c7d27d9975c813976a48d2de3f30d25a500b55e8c128760697da5b40fd6189f96d592a0b2b3a139d49468746023b72a1562fdd59e980460928cb38de635e892bf7cb6d88af4e46bf588d9c0cdec8c55b02f8aec05fe27b00000090ddb0180a6ec7c82dc05b78f9f956b4e599f2fbcf99e2ac108458cd8df2fcce0b4e678736468fb76c2e2139ce458988edb0802e73aad294dd4eb7e6b005fb716e0cfbcebf26f19da2b3e08b1389515dd9248c0f04383b207c21987d087f02334b58a380ec0c53429a3ae33ef735cc9e0215ccb1271705ff59da563237195a708c19392fe0a3610d6d50050a6f7c41b26000000128000000903aca864e9d4691bc2294002f537931374f1cefdc9e653a632476173445c5787710022f78f82491dfcea73fb8cdd0fc82b00e7b6fdbb55f5898a392e76e7f4e978c0bc1d86d881f66d6dedd88f0d3048613f38b95862bc8d9bba957cfe6bee7c610958a1502e84f7c33e0a2345ed671eb1f8a7e499097ef2e4b7defce6425b7cdbfbe00de5c196a68b3dd266497b29714000000901ab5ca13f8c470d5c3c4ad526cd667073c3c014be3efdf50d65d2da55786d8001e361af8bfec4ec332c3c35386263bc3249fe6e836cbf777c612b45faa6b2aa177ba59550773617d1383f2b560f9d87c035254810ccdfeb446a28a9c036ee24b2dd9ed2c6fcda5577405a7e470ecdd3c2a9426942cf55eb1da96387ff9b7046ab58cb2e39f9eb046601070d432428d8c00000128000000902ab5fedb212a19447007f5393cc050c8ea91e9553dd0e3cace0cee68f3f536d225e1c32ff99d0e10f9fec031150e6d3a962d1ded8e21f8c14ad1c47c42e109b58e9d7c0bf9fd4837292448d617f5d1332e83c00c74828ec16808a4178069b02f503ae50fee013f1a467131e00d46d2eb03e23e00f6140fc2b75599ac84cf339905e16f024b8f6199b9d22004de9156fd00000090cb3c933ed3d89f7d502d0793cef1f84357e7d873bc40819d7dfcb7c9d7e44f7b9d35dc7e0e4d5385d45bb57bb3af930900682f15b6d804291dbb3d3eee3e16945f9267616c8f4bce3e0670f804e2185a0dda110c741be3ab9ec9e3deed7e1a9e11854d4dd16a80ce663d1cb9430db7c91fec78750ff21201402495a32f25e64044dfdb4fa056bf63bfade4de26da53110000012800000090ae5c1e1df141db587a332c3d8bd680381dedfa2bee7f2e498f8df062162f50d146b63764ad5687d8cd45c52671954125bda229cea0881236aa31aa801bb73dc0a595dd54f838b224085c79cfaab4f09f2669b6abe3386210e28448bb18b176177bcd66bd446ac159f0b4197773fd2b712c1f5ecb1156ac1bf426fd9af8c18275a0bef656367910b14ba72d60dc60312a00000090c12dc33b7bfe8dd92cf48fc1d747b9ffaa26feb00e7e85d7b29c3348443f9afcf3330a567384c96a1738359594999874deaa9338406fa2a87a16d28d138deebb4930dc59a24e8901fac05c6daf00b74219d31e2e3fc8a5f8bdc932ad32783528e6e93e23142a1ca6bb54593cf1c2d3f12034e76e05d6d15d59025d0ef092f5c1a0db3f79375c3a555160c7c0bcfbb2d60000012800000090c225b9114d44746790ac40d2d6d2d8517ec4f6536b617998b656f9a879b9e8e1de2258690ad4a0d5953c8b1e97ab237cf2f2ae61f0aa0a0956a5083c13b81abc6d785c022eddf40e5331f4747e5f6fdc1ba6258a26d6d64d25bb9ab5d779af0399412476fce95506df29d4392cbb4c7a02569048dcccd96728f537007cb0df15534bd1ae4b521e008c19a32739952cf50000009039bfdfe285009ab9b68e3164d29d7c9e7a1684b95015d4dcbbc74d75a2183507630b99dd6ab55d675d6a5805991c79ce741490b76adac3542514bbe596496c9aac56e05067afde228fddd84aa6c62d95208d4e733c5a9a3441126102a3b99ae6f5570810a30bdc01892a89fa2b7e8b6d26853a611c533c39c184a71ca31a85ca9d3d292d7b275a7133c1030fb403342f00000128000000905d7290cadd864629feff957596f596a9de94897adde6dc69f40f2bbfe691b348af800b19072caf1a62e59e2af661777ee92b07598580cf0ff8a3c2acbb349eaeea063141966c5fed0b2cb96695c200a1173b830773ba25bcf215f6d56b5438245078898e326857ed532be1dbad713c3e0c1cbe6ee34a48d283613ea1bec5d0c793aa8b8029684aa5aff98f7dba2a48070000009054eddf7204b270a603967c9d3b298fb61f6a0f738db5a36c541ab30f2d88b81edd98abfa5f823cf4be8fcc707bd621d5b96a12d73a1d3dc75fb2229e969ccd68ff7e77a1c6aa0989f0bcb1f7bf0fe3c52832bd21526b8fa92ea2405a9f84f7d6ec4e228cb01c4e6339a5cc01b3eadb0722d7323317a3742c4bc21d33c0b8003d5c5704176b0f0496d7f87dfc25a68106000001280000009042dd4e6490f3879a7aff4a9a97b614b2daa7a5a488858fdb387e59c3e27abe2656dc8d0671713b1daa197921cd93fd883d5946ac0811e7d4049b52518d55bed52d73cdaf2565766c726c9ae3c54b8fd607170a6db6811a3969a42a1676b82c07b9b1dc9bdafd98e7f0373f973daca93727262ed5d997db22ab57e2bc60308293297d36fb824d5a1645d7788ddff41df8000000903fce19e712fef4929577ba02d48dc3e919b1cfa74fb1afdb3ab635b5ab0356875614e33cc054b99268273ebff2fb0a5489db720cb496789d583e7e00f78758ea0b6aec810c37a69b3a6116dcaf918c0c1047231df796f8c9051bf8193897b84d39eedea5f6cc8df9057681cdc2dcd4701ee23a03b6e7152aa7af1c04542ffb0a2874666c14bf01ebdd723f195f448c9100000128000000907c2c17552eecc13111ec31339ec6b6d1b12c2e272b24b8ac5fc6acceeebd5615b628b7504a08f5a801c49f0da9ef19befb0716feaf9cd6be123793316a359d60ba343929756fbcb47c84173c6d3eeffd13320c417faf209fe01543c1274c1ef5d21d34e687904c4257218322040bfa7e2f443e8a14021ff71d40ced97adcdb3af994187d8af8fd98648221b78b17721f00000090ce99d741296de2abbfa5b3aa8bf2aab9a4d583e9f324c0c231df77ad562589afe681380d33631d9470f9412d729c0095dc0ebc544be845e9f1d40f20401d488df7dd6a3def03d43e2d48061cba8bf020055fea4ab4a8a316791b96e4e144685f3645d22b3fd9c748065f55f4694031190263fe8d8fe3a7d8181a5aa839e89c10fedea43c76dd5d40b2af12e45653b1da0000012800000090846f318a24b1f215c6d625c72aebf13e9c9a6ebe3d5c3a2448e6c5300e7031d5cde4a455f92c3d896a8adc7432b89631c399b8a32327fa7472a50e35644661c780d7b34cb8aa8077e4ea9e607bf7f74912e68fd0364bd02e82259616e76358af795cf16387396c52686be4e2acdda5e31889cd0980efb1c3544e0c52d76629ecbe472ea4688603d72556be1524f1087c00000090805bd40de3119eaf50f7093e74f52cc0693c3d0cc6f133c7dc17f1f66f753f39cc797d59aaf4e04796f763eb795ee0b17b5ee73efb92042f2304a1cc9701013029d79a6be88e375d118c911b723fd5d52c24fd0f7a990381d45c475827e3941c773a36367b6ebf719bec3294dde9710604edff508308d049a00412500343eaa717aafc038808df22917277927bcca6c000000128000000904f95efb3b6ec01bf8d702d8198eda7e675acb648127f8cd60985dcf6387b6e8bf4ed3e87013d7963d8d72939128ac3044bcee307d2b8adeddebb0b047fc4713f74f67a25bf26808c0d353f63b50dfe5712eec4c74f9740f92d2c083c16222b56cbfaaeabfd1cdcf3b3772652ab9510302818e5b356c2a48860eae5999dfc313a05810c2b3ad6e222d0ccc83a18e4459f000000908f045ceb9fc72e363f59c2e063e0e61e5926f9490d463e85b5596411f12fa4a4669676924b5869a55390be0f08867b43454ccc99a60b5fd6131a4a420664ed8a60ce858bf9a54c2c35379f7cd49e42d42e5f9e0cee59a07e6aa45d0842d418caf7fc70d2bfbfe5ed44434c9c96f3eaa50f506195df637caeff11304fb4f37fad4cffa436f736f14f080b0714299ae3bd00000ce4000001280000009074371bc6e501686729f51b605fada36b902763f8bd01875a079b278e474b39e2b7d01c4b6d10ba9d9496470f98777b1a68d50c2e493d2287d4122d581c0de4c36fe1f92c6f604303680cdac52261ddde28107101045dc414db647b09438ca1dd569c7352a2c52476408d838bb0bec55a2d2d1f8f38dac0ef6b1e7750eba48310ae919e66582dc3a45b38e6b35c16dade00000090f03086cc5faede7f087977599376c837ece24b03ff946d754b08898ec3093706e214ec83fb92ff844c117a23efe875c955b90e2c3e6ba03a6d83496223f6ba8898d5476a7caec16671e0a774b034456026f6b800f23bb8fa8924c16e7d3ae98e1b4321c84f17fe21eda9d4cb321695fe11108481abe4c28f0ae9876bd11f7f0cfeb211b8948293f06f436de14cd454600000012800000090ef48ea7af87327a2ba6427ad721d480e496348ef1959af7fb4da3a175eb1b6d51473419fa12bd69600ef28a4340ae3770b8f7f021470cf2acfc94994f4d2e11a1c7493f3c18b399d88ddfaf432305532046542c246961ed2d5beb60000548483030e0bf80bcfac2811024de6e7b9f88822d1de444210137c148b2a1550a87bd7b1ccf83652e189e36a4562c964c3fcf9000000903e34de30a1df088fe15ef89620ee4611d58e18e5aba841d90c923dd94e47b9ca9f872bfb4fa12c32421062b80ef889b5740a305f346c8396df848a31bbf093f577613b0ec2653ddd837fb793b8bbd1961297b94436013410b4ef487eb5d865cf27e335efe488bc3aed064f5f4889de1d0d44411c236205ac38f7a9d61c0ff29d91b069a85d1fd75969c121543e6b37ef000001280000009040f168d9ef58a85a6a0d74c05802660a2dedc37078a6edc0227fa2777cdef581973760696ab291f14627bf088650a451c40e62a9d2906dacb76c63e9196f9270eaf13e2b72f26e2944f698be9d232f852825e0ff6f348684e39e6387feb79b103b43a4276be4a266d9801b5e336f7c81095c6d2ed363efa3bd6880dd2fc5ccc5ed2fcf3dfac65be1b56ebbb38a3b363700000090a8b66602022c59e1a134da756df8b077badb05c0f254382ee348f2c1514f689bdd506c4735284691418b0f5932db0aa63daeb13766de36740b7d7da7171bc51edabf333fad158b6ab51c7c589cbf17cd2bc25883c30d4dd76b852cdca3fd96ce4bfebde5ada45ab22803b720db048b0902ebaf926ea6fe4bdaadd0c50b8483d3ba44916e6de82e1f8c71f352740242980000012800000090c26193dbe1a0947aedd442ad2aa1481e3178f50fa091c463688b62df55010349c4bae759d593c9bfa9057e2e8fe2549ca1becc46d3ac8ea8ee617a0fd5aaa54966eb0eae28af7142a73e901861243c6a291ec5bfbc1c4a9e7657f66c20b72b6ed4d71e2c18cc54e4ffb4500c272a63de03742bd1965c22f668e79304aa7ba42a8b91792dc01f615e251bfbc7a2c81488000000905430b47a0fb07e8209019090e9b8cde1527d073863fe22204c41502644410ea892532122f539e7934568d8d897e74e86f182ec167f6e63ea4cb7f31029a76b813cd749a2586fcaf6f12b9dfadf2cbd670ed6d7ca6d14b9785dbab8c387c069a3c1b8743fa140782ba7fe660444541b5a0a35352380eac4725dc8ada78d36afde494eae19944052f16cdab2d3c341c7f100000128000000905a60d042228451d3736befa4dba8f9cb5c35084f1de9933cbe72dd8c71bff3838a4ba068e783d46e297c6f98d0b7143d025baae9b1b9e111e71c8792de9c5b74bf1cb98f805c70180bdd5f3c27714fc31a3d14ea8eccef6f7dabe6a91a83e1a295017f89d83eb80597d36c121a27a46724cddbb87bbc4e86f236a7effae9909e3c960fa774cd06c64cbd2c393e69f91f00000090a82b2ecc53c185c7bb52768d11a005b8c1c32495be879741cdfb92266cb2b3ca9f88a8e38eac0498e3d488a537df7a5c21d336f38a2f0c1c184297179364472296a676212392ca4a89f3aea18d3922f30cd6b5ef3e663c4727d02643e1acfdc4d4ee40146430b5919b3ec1fe432c2f15099c88203be50a9ce7a2ad3317ca808140e51fb9f3ce52ee3b1031327a0709450000012800000090a1a01e5b1905b830d9d6a10ece7b2c475c8eab021b4c6c0edc4e2620a32bab38dc9e3f3ff013145c5f97d2fc2c76eb4e0c84133753ec4e6e1bb7993fb22c1c6e702af656f047e1c7ccca93fd47b7c33a2b007d94909541c549e6b401b062d08a3e9c99eb72a8640e36f443b0254e698d0a0c294cd61e6abed1a2c91425adaf759e6bf1da0b77874154c048ec2d671a7a000000901066ed14c5fc9b49e64aa439ae4021cd58e02d1fa6e712ab23d802b75a3fde4ffacdd124e388591c92616f7aee9ca702cbeaad2d9b1e9685c354f6ac1ac5670326655e1e4fb82a094ec3f6d1053d07a61cf95306cbe12b8e32cfeac8c304b28fc5f11181e1abf2985fa2f8b7a0853f6b0e955546abfd4f9a1dc7683b9d267d733faa8990ffc29521f3aaf3c85a2242580000012800000090a7272fc258a0326c748c0f4f37898c6a9e0914d9c643aaa9c25e102477835e97cb31ff263a1c28a4facb4af6984f2b65f6fff5a7c9f35db2699309929dbf4e5a42a6f4e846b9902c72a64280a211ff5022d9f9405c833eeddc0b6f67bea968a721e08f1946a92821a834eb86bd6bfab60a5a5ada6ccbe9301bce61d53d09c383a6975c11132b521d3af3db4c9d6c318e00000090ff3c7139b675681f3fc896f5bd6cbde547c3aa96d101bfc415ca305172e8f7fbc4e26d3da4f5315836824a5223cdd5ac7bdc2d0113244e1b4c367e460d3eac6c6a2bd7ba58463de7b0dbd7fd97b12c0c25e4056098e6633b0e93c7aae555308bc12282633e596233b79c203fe085f6fc042422b665416dba5fab20d766e9a50e7fe909f691fc7f97d6ec7bb089bdf7f500000128000000904bf829b13c8afd08d1b6555c4536404e92f2328fd2555e10ea70da2a3bdf3d378dce65cb96edb2715d3b56feecaad07fcfdd6bae58d4982e05c62aa1e878993342eac70298558c0f119a7dd086c45a3b0c2ec0b4371458f8968a2a9453b84124a0e66a8c355076697b75a0cda54b6c7e1d220e7f97c1d31df47a72ef7e1866c4e44dcc7d2c3ea8d24e54e596af744ccc00000090ebe8e58f563c94f17976ef75742578764596049630ea0d45c598e2d9407dc829e10681fa79ef239ffa8db12279e1393a3f5ad6acf9b9d9e95042d9e60683a296b26ffc8e1deed6cc2350e7dc01a465d12d4e4d67190baa513097564604aa9988b7399764eeb080a35f12f8bc26756280265cc383fd850a23dc3f8e13fdbdc36a3d728625a58f119bf110baafcefb1feb000001280000009095d76871e9855cfaa107b0c9d43681253aa7507284d9aafb7b6ef1ba0dd0b911a0a3332adb6b09d591218373d27c851e9a854e69b78032fc4ebe60ad87a250add67c9827abdc50e26764c83ee641c4e70b87a29aca2a7d84e90baa76cf73fd4059dfd7e2e36f6c182586def7e1651c4a1eb7178ddd4a7adf6edbe51b83295816fa6f6682aa8ea70937da2e18bd3637aa0000009043caf3f22e9f5fef393b8c1c249e152e2d5480c1ee53bb3bc5737b62a6faaa47c245da95e83f25321192b80e247395e65c5642e261139250d8c0c0296cea2d17f3584c3145b336d855214e1b67bfa7c4062dd9cbd380328cdfa97aaf40f7435b7a2fdfd5fda9123f2f9d9884821778dc0feca83aec4e90672da7bf7ce61fabbb0f28370a652670701f52efba553d0f5f0000012800000090bc5c02b0346c70ba02848f5d947bfb7534d62950b69854bbeaab3b00c117756eb70f68fd3a3096ee99f768e8bd27a71d94d420cabb595d845c8ccf67f1028ef50beccb95efb1e9ed631459993ce7596d22716e6c822faa8c1110df905a553bcc8984fcdd2c67998e5776985eed0ed9271868f42e0d141af534fb7157d4e60e3a23a1bbe025dbfe0db0fe05fcfcf4dafe000000907a6b69cdad05c3be52b6a6d750818ab190a1ff057915d796286971e5cfd38d67ce8ae4cb87cfed247518d130ea59c4342427d2b50d0a145c50240f11aaf61af5037f237a7d13cfbcd5f77faacc760d962e4cc8c72bcf73309a5040d39e8ac345c02a43b22333254b54a53dbcfc29bc800644a6cca50d33a86bf921f4090635bf73dcd01f4e66f50ac8cabf7b3012e20f0000012800000090b3c4606bdeec9bc8defb04498bf05af7234eae98fa3b413fdd657037951acd5b3b85d29877e4bdce0b29a6144f9d39f2ea8a1617412bf529703b5b7ceb406bf4588a913df4d7963ec02b829b71b403fa093d60e07c4c95588b36325c392b927f6baab0f44066a7bf4a521ba8835b619219f8b115a1da654a66e744e0e606f622b75500176ff21b97bdefab7128d78393000000902e2060078e2d60a59c0da00bc77ec317baf34e556ba13f248acfed9e6f0548964df6d4961454ffec894abde402b9acd7ca7e18cd57e60f305d746c194cd0eacfe9ac9704ff88433cb08f5f6bb7df40a703ff878dbc758744671296d3a5e45efebe5b063afad2f211444517624d2a14851fe635952a345221bf353f19da6eebc6b6b13f0dbc4ed929bb107ea655467992", "calldataHash": "0x3e6fbbe5f3ecd10b87dd3685cfdda696001bca777b23423385caaf69e434f43c", diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index c369ef6b3f6..64d8271aeff 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -277,11 +277,7 @@ describe('L1Publisher integration', () => { block: { // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values bellow. // This should not be a problem for testing as long as the values are not larger than u32. - archive: `0x${block.archive.root.toBuffer().toString('hex').padStart(64, '0')}${numToUInt32BE( - block.archive.nextAvailableLeafIndex, - ) - .toString('hex') - .padStart(4, '0')}`, + archive: `0x${block.archive.root.toBuffer().toString('hex').padStart(64, '0')}`, blockNumber: block.number, body: `0x${block.bodyToBuffer().toString('hex')}`, calldataHash: `0x${block.getCalldataHash().toString('hex').padStart(64, '0')}`, diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts index 94d8b9bda6f..3ca39d7dd67 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.test.ts @@ -22,7 +22,7 @@ describe('L1Publisher', () => { l2Block = L2Block.random(42); header = l2Block.header.toBuffer(); - archive = l2Block.archive.toBuffer(); + archive = l2Block.archive.root.toBuffer(); body = l2Block.bodyToBuffer(); proof = Buffer.alloc(0); diff --git a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts index defbf2ee7c4..2210aa32b6f 100644 --- a/yarn-project/sequencer-client/src/publisher/l1-publisher.ts +++ b/yarn-project/sequencer-client/src/publisher/l1-publisher.ts @@ -87,7 +87,7 @@ export interface L1PublisherTxSender { export type L1ProcessArgs = { /** The L2 block header. */ header: Buffer; - /** A snapshot (root and next available leaf index) of the archive tree after the L2 block is applied. */ + /** A root of the archive tree after the L2 block is applied. */ archive: Buffer; /** L2 block body. */ body: Buffer; @@ -131,7 +131,7 @@ export class L1Publisher implements L2BlockReceiver { public async processL2Block(block: L2Block): Promise { const txData = { header: block.header.toBuffer(), - archive: block.archive.toBuffer(), + archive: block.archive.root.toBuffer(), body: block.bodyToBuffer(), proof: Buffer.alloc(0), }; From 7da8c16dfbde36634e92f929c6750c2d28117d0a Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 12:02:43 +0000 Subject: [PATCH 13/23] integration test fix --- yarn-project/end-to-end/src/integration_l1_publisher.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 64d8271aeff..7b4fee2a215 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -393,7 +393,7 @@ describe('L1Publisher integration', () => { functionName: 'process', args: [ `0x${block.header.toBuffer().toString('hex')}`, - `0x${block.archive.toBuffer().toString('hex')}`, + `0x${block.archive.root.toBuffer().toString('hex')}`, `0x${block.bodyToBuffer().toString('hex')}`, `0x${l2Proof.toString('hex')}`, ], @@ -491,7 +491,7 @@ describe('L1Publisher integration', () => { functionName: 'process', args: [ `0x${block.header.toBuffer().toString('hex')}`, - `0x${block.archive.toBuffer().toString('hex')}`, + `0x${block.archive.root.toBuffer().toString('hex')}`, `0x${block.bodyToBuffer().toString('hex')}`, `0x${l2Proof.toString('hex')}`, ], From f35d387fdc3fdf0ed3d3a11e68f039d6484c3682 Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 12:24:57 +0000 Subject: [PATCH 14/23] fixes --- yarn-project/archiver/src/archiver/archiver.test.ts | 2 +- yarn-project/archiver/src/archiver/eth_log_handlers.ts | 7 ++++--- .../end-to-end/src/integration_l1_publisher.test.ts | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn-project/archiver/src/archiver/archiver.test.ts b/yarn-project/archiver/src/archiver/archiver.test.ts index cacd3560a77..c20e2f5bcef 100644 --- a/yarn-project/archiver/src/archiver/archiver.test.ts +++ b/yarn-project/archiver/src/archiver/archiver.test.ts @@ -350,7 +350,7 @@ function makeL1ToL2MessageCancelledEvents(l1BlockNum: bigint, entryKeys: string[ */ function makeRollupTx(l2Block: L2Block) { const header = toHex(l2Block.header.toBuffer()); - const archive = toHex(l2Block.archive.toBuffer()); + const archive = toHex(l2Block.archive.root.toBuffer()); const body = toHex(l2Block.bodyToBuffer()); const proof = `0x`; const input = encodeFunctionData({ abi: RollupAbi, functionName: 'process', args: [header, archive, body, proof] }); diff --git a/yarn-project/archiver/src/archiver/eth_log_handlers.ts b/yarn-project/archiver/src/archiver/eth_log_handlers.ts index 4bf8b8009ca..8ebf5d65433 100644 --- a/yarn-project/archiver/src/archiver/eth_log_handlers.ts +++ b/yarn-project/archiver/src/archiver/eth_log_handlers.ts @@ -10,7 +10,7 @@ import { import { AztecAddress } from '@aztec/foundation/aztec-address'; import { EthAddress } from '@aztec/foundation/eth-address'; import { Fr, Point } from '@aztec/foundation/fields'; -import { BufferReader } from '@aztec/foundation/serialize'; +import { BufferReader, numToUInt32BE } from '@aztec/foundation/serialize'; import { ContractDeploymentEmitterAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts'; import { Hex, Log, PublicClient, decodeFunctionData, getAbiItem, getAddress, hexToBytes } from 'viem'; @@ -107,10 +107,11 @@ async function getBlockFromCallData( if (functionName !== 'process') { throw new Error(`Unexpected method called ${functionName}`); } - const [headerHex, archiveHex, bodyHex] = args! as [Hex, Hex, Hex, Hex]; + const [headerHex, archiveRootHex, bodyHex] = args! as [Hex, Hex, Hex, Hex]; const blockBuffer = Buffer.concat([ Buffer.from(hexToBytes(headerHex)), - Buffer.from(hexToBytes(archiveHex)), + Buffer.from(hexToBytes(archiveRootHex)), // L2Block.archive.root + numToUInt32BE(Number(l2BlockNum)), // L2Block.archive.nextAvailableLeafIndex Buffer.from(hexToBytes(bodyHex)), ]); const block = L2Block.fromBufferWithLogs(blockBuffer); diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 7b4fee2a215..ca84dda33e6 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -28,7 +28,6 @@ import { } from '@aztec/circuits.js/factories'; import { createEthereumChain } from '@aztec/ethereum'; import { makeTuple, range } from '@aztec/foundation/array'; -import { numToUInt32BE } from '@aztec/foundation/serialize'; import { DecoderHelperAbi, HeaderDecoderHelperAbi, InboxAbi, OutboxAbi, RollupAbi } from '@aztec/l1-artifacts'; import { EmptyRollupProver, From 1882642900dec0d77dd74fa41a8eca4f29af5a80 Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 13:32:25 +0000 Subject: [PATCH 15/23] testing decoding of full header --- l1-contracts/test/Rollup.t.sol | 2 +- l1-contracts/test/decoders/Base.sol | 35 ++++++- l1-contracts/test/decoders/Decoder.t.sol | 91 ++++++++++++++++++- l1-contracts/test/fixtures/empty_block_0.json | 31 ++++++- l1-contracts/test/fixtures/empty_block_1.json | 35 +++++-- l1-contracts/test/fixtures/mixed_block_0.json | 37 ++++++-- l1-contracts/test/fixtures/mixed_block_1.json | 39 ++++++-- .../src/integration_l1_publisher.test.ts | 39 +++++--- 8 files changed, 260 insertions(+), 49 deletions(-) diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 616eb18abbe..382908012f1 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -120,7 +120,7 @@ contract RollupTest is DecoderBase { bytes memory body = full.block.body; // We jump to the time of the block. - vm.warp(full.block.timestamp); + vm.warp(full.block.decodedHeader.globalVariables.timestamp); _populateInbox(full.populate.sender, full.populate.recipient, full.populate.l1ToL2Content); diff --git a/l1-contracts/test/decoders/Base.sol b/l1-contracts/test/decoders/Base.sol index 2d2bf4c4026..7a253c4b2f5 100644 --- a/l1-contracts/test/decoders/Base.sol +++ b/l1-contracts/test/decoders/Base.sol @@ -26,17 +26,46 @@ contract DecoderBase is Test { struct Data { bytes32 archive; - uint256 blockNumber; bytes body; bytes32 calldataHash; - uint256 chainId; + DecodedHeader decodedHeader; bytes header; bytes32 l1ToL2MessagesHash; - bytes32 lastArchive; + bytes32 publicInputsHash; + } + + struct DecodedHeader { + bytes32 bodyHash; + GlobalVariables globalVariables; + uint256 lastArchiveNextAvailableLeafIndex; + bytes32 lastArchiveRoot; + StateReference stateReference; + } + + struct GlobalVariables { + uint256 blockNumber; + uint256 chainId; uint256 timestamp; uint256 version; } + struct StateReference { + uint256 l1ToL2MessageTreeNextAvailableLeafIndex; + bytes32 l1ToL2MessageTreeRoot; + PartialStateReference partialStateReference; + } + + struct PartialStateReference { + uint256 contractTreeNextAvailableLeafIndex; + bytes32 contractTreeRoot; + uint256 noteHashTreeNextAvailableLeafIndex; + bytes32 noteHashTreeRoot; + uint256 nullifierTreeNextAvailableLeafIndex; + bytes32 nullifierTreeRoot; + uint256 publicDataTreeNextAvailableLeafIndex; + bytes32 publicDataTreeRoot; + } + function load(string memory name) public view returns (Full memory) { string memory root = vm.projectRoot(); string memory path = string.concat(root, "/test/fixtures/", name, ".json"); diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index f9925c529b5..710ec5c7ec6 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -58,13 +58,94 @@ contract DecoderTest is DecoderBase { // Header { + DecoderBase.DecodedHeader memory referenceHeader = data.block.decodedHeader; HeaderDecoder.Header memory header = headerHelper.decode(data.block.header); - assertEq(header.globalVariables.blockNumber, data.block.blockNumber, "Invalid block number"); - assertEq(header.globalVariables.chainId, data.block.chainId, "Invalid chain Id"); - assertEq(header.globalVariables.timestamp, data.block.timestamp, "Invalid timestamp"); - assertEq(header.globalVariables.version, data.block.version, "Invalid version"); - assertEq(header.lastArchiveRoot, data.block.lastArchive, "Invalid last archive"); + // GlobalVariables + { + DecoderBase.GlobalVariables memory globalVariables = referenceHeader.globalVariables; + + assertEq( + header.globalVariables.blockNumber, globalVariables.blockNumber, "Invalid block number" + ); + assertEq(header.globalVariables.chainId, globalVariables.chainId, "Invalid chain Id"); + assertEq(header.globalVariables.timestamp, globalVariables.timestamp, "Invalid timestamp"); + assertEq(header.globalVariables.version, globalVariables.version, "Invalid version"); + } + + // StateReference + { + DecoderBase.StateReference memory stateReference = referenceHeader.stateReference; + + // L1 -> L2 messages + assertEq( + header.stateReference.l1ToL2MessageTreeNextAvailableLeafIndex, + stateReference.l1ToL2MessageTreeNextAvailableLeafIndex, + "Invalid l1ToL2MessageTreeNextAvailableLeafIndex" + ); + assertEq( + header.stateReference.l1ToL2MessageTreeRoot, + stateReference.l1ToL2MessageTreeRoot, + "Invalid l1ToL2MessageTreeRoot" + ); + + // PartialStateReference + { + DecoderBase.PartialStateReference memory partialStateReference = + referenceHeader.stateReference.partialStateReference; + + // NoteHashTree + assertEq( + header.stateReference.partialStateReference.noteHashTreeNextAvailableLeafIndex, + partialStateReference.noteHashTreeNextAvailableLeafIndex, + "Invalid noteHashTreeNextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.noteHashTreeRoot, + partialStateReference.noteHashTreeRoot, + "Invalid noteHashTreeRoot" + ); + + // NullifierTree + assertEq( + header.stateReference.partialStateReference.nullifierTreeNextAvailableLeafIndex, + partialStateReference.nullifierTreeNextAvailableLeafIndex, + "Invalid nullifierTreeNextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.nullifierTreeRoot, + partialStateReference.nullifierTreeRoot, + "Invalid nullifierTreeRoot" + ); + + // ContractTree + assertEq( + header.stateReference.partialStateReference.contractTreeNextAvailableLeafIndex, + partialStateReference.contractTreeNextAvailableLeafIndex, + "Invalid contractTreeNextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.contractTreeRoot, + partialStateReference.contractTreeRoot, + "Invalid contractTreeRoot" + ); + + // PublicDataTree + assertEq( + header.stateReference.partialStateReference.publicDataTreeNextAvailableLeafIndex, + partialStateReference.publicDataTreeNextAvailableLeafIndex, + "Invalid publicDataTreeNextAvailableLeafIndex" + ); + assertEq( + header.stateReference.partialStateReference.publicDataTreeRoot, + partialStateReference.publicDataTreeRoot, + "Invalid publicDataTreeRoot" + ); + } + } + + assertEq(header.lastArchiveRoot, referenceHeader.lastArchiveRoot, "Invalid last archive"); + assertEq(header.bodyHash, referenceHeader.bodyHash, "Invalid body hash"); } // Messages diff --git a/l1-contracts/test/fixtures/empty_block_0.json b/l1-contracts/test/fixtures/empty_block_0.json index 3db7cbc6f84..b24d9e400af 100644 --- a/l1-contracts/test/fixtures/empty_block_0.json +++ b/l1-contracts/test/fixtures/empty_block_0.json @@ -36,14 +36,35 @@ }, "block": { "archive": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11", - "blockNumber": 1, "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", - "chainId": 31337, + "decodedHeader": { + "bodyHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "globalVariables": { + "blockNumber": 1, + "chainId": 31337, + "timestamp": 0, + "version": 1 + }, + "lastArchiveNextAvailableLeafIndex": 1, + "lastArchiveRoot": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", + "stateReference": { + "l1ToL2MessageTreeNextAvailableLeafIndex": 16, + "l1ToL2MessageTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", + "partialStateReference": { + "contractTreeNextAvailableLeafIndex": 4, + "contractTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", + "noteHashTreeNextAvailableLeafIndex": 256, + "noteHashTreeRoot": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb", + "nullifierTreeNextAvailableLeafIndex": 384, + "nullifierTreeRoot": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278", + "publicDataTreeNextAvailableLeafIndex": 96, + "publicDataTreeRoot": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + } + } + }, "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000015b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "lastArchive": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", - "timestamp": 0, - "version": 1 + "publicInputsHash": "0x1476d6b0483d0d5fc4c9d3b04f50105d97a06bb01054ec7acccac3ff6c85f960" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index bcf098a4cae..58656cc47b0 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -35,15 +35,36 @@ ] }, "block": { - "archive": "0x062c84d465ee9d45786f9027505262f29ec82349c3af173660688223d234946a", - "blockNumber": 2, + "archive": "0x28322d94cbe9e2bb3911926ed22b94db6f9bab7f5ac63c4c4a495d745750a170", "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", - "chainId": 31337, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "decodedHeader": { + "bodyHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "globalVariables": { + "blockNumber": 2, + "chainId": 31337, + "timestamp": 1705497412, + "version": 1 + }, + "lastArchiveNextAvailableLeafIndex": 2, + "lastArchiveRoot": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11", + "stateReference": { + "l1ToL2MessageTreeNextAvailableLeafIndex": 32, + "l1ToL2MessageTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", + "partialStateReference": { + "contractTreeNextAvailableLeafIndex": 8, + "contractTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", + "noteHashTreeNextAvailableLeafIndex": 512, + "noteHashTreeRoot": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb", + "nullifierTreeNextAvailableLeafIndex": 640, + "nullifierTreeRoot": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278", + "publicDataTreeNextAvailableLeafIndex": 160, + "publicDataTreeRoot": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + } + } + }, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7d3441864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "lastArchive": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11", - "timestamp": 0, - "version": 1 + "publicInputsHash": "0x2426bb0bc26f117b60f9c5c68cbaa56925660d6304f6ee8a29361e07f8271b02" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_0.json b/l1-contracts/test/fixtures/mixed_block_0.json index 94d6dc0fad5..201a88d1547 100644 --- a/l1-contracts/test/fixtures/mixed_block_0.json +++ b/l1-contracts/test/fixtures/mixed_block_0.json @@ -53,14 +53,35 @@ }, "block": { "archive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", - "blockNumber": 1, - "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc000000909bbef5503d1570cbdfeef1232fcd239004bd51330c71084102df1b0139c96454a34fe9cc92f16c9b5d2533dab3abee1e6f76a18273bcfdf80b7a7cda429b708969d07be79d1941457464b82af9c8c2651e9b600a5131089f6843b80ac97d1043a69c02bced13318fb24cc05e475cc7a82caf0e1c9b7fd29692d53e3ac240524950cf9634ec8f79c3e8de8fb000d496890000009083b969edfbbb257128896182c090f34ff1055a32d42f9ccfc0b3dd3ce4cdf884a0e66f914bc63aaf4f5d07475e0eb18967ed28a4fa4a722844d748ad9cb87e0cd6f26836c85f99a81db636784da29be60e0514c60657d5eaee7bfd26d21f8912e54dc5a436919d32f94f92f8551875582ff1014c6212aafcbeb0aeb8fe378cd8fbe4cc0b72a00c2fa42818020315e30b0000009088900d1181bf09eb9401d224b2666f7361ed29ebfd46ca3c46b4ea3d24ede87559597ee2eaa8782b5d45b972da0c7f15d7d3684c0c52536a64ccb66ba3c1c9a4c2041bb0ab9cbd265801c5903bf9f1ce182b8827e39f1961318f284f9c82ec2d9d375ceb912d3862f6e99f7a5f4d4b751961378e0dab4241c89840533380328f47c47e47ff8cf9a44b7ef7fd84424a61000001bc00000090026c3b43889bbc795a4f21a026fa2868b016bd91e2b52e2ed7da7960ce6bf2f12e6330640580504824bdf0174c4b84c88602a8bb449639b0dfdbff4fa7d8cc80e507ad8a275cef132ecbadd5a21661d207bf4cc07ed6ac045f2bb927142b6c23faee0aae6fb05626267b51f90bcf26b523c1f3b9fa11973a138717d5b5fcd754477eccdc0951c614675265aa0d2c00a00000009060a961cbc3407502d66a39ccf0ac0b5de0d2ec509f149a509553909a67de20e04c15e05c11abdb2683b84c468fae0c55fce1de1efc63edc254961c5184530472e7170c20d2f7f8627617283e0e38f5ed0d5cf245fbfc1de41ddd83006014f575cadbcfbfc4958047cb85f884272bed122ec46b08ae5ed4cc14b6bd8703df3ce13f7f82aac100a669c48d98af079f2bc6000000903ea20ca150a8cdd46bd1040b3026003863c133391fb9c2348f37741f6676eb981ba34dc9042b14fa269710bbfaa8e44ec2db9cd0f1ed0bf69b2101e2aa28318545218f548f7833d01326256a65e17cb00980e953ebbbdf0051b0cfd19d868e55cc8bd7e47c1d8e6900edb0fff15970f92031a47fa806aac3ec4b3ba2c16be45c980c04074ade5d1bdb73c81f8a465997000001bc000000905c499acf9ced813869c64d1bda076a5261846bf036ff6bc4cb5d2af4808ec7a7855fc966434bb84463ca86c7bedb9fed6b49a66c4b602721cc4cf5b0a17792c464e29824e4c353797a83ced97b517f341deffef75774a08b0a8c1d8e7e1b4aa4a26ad2a29fbf4eacc6c2d4bdea808baf0aebccaf141757398a4e5e91bfc0f14d4c38c182268895016e7b37c5c1f70d2e00000090d39b69c05f9bdfa76069cfd63d6ffe7fda52eb5281d8b87cc9c280dc1ac000228f3f4d71635405974464ed3ba854f19784e389155e5d1baa82f9c1208bf7b69d929a83e4e57bb0b383bf69292a8f767f2415587a9ce719e53d2c2189ced32e37067444a5e02a974b8c8868d7c67d2935045232888ca2221335e743cd6d34d50d6f17f87a11c6e3951990b8f1d9cf35ff00000090d0964ef786dead8ac8401283e615cdbff52f05984e773974a640b5aa68136a422d7f0b3d63783abdac8c4a7e8ed7ed12671bc2fcf9fe967681beaf6adc1ae8cdf7834e5fe9dc08c69c7f58b397356ef516919ae029c967364df751e3a7cab589adaf0272dd34a34cc46596185cad7ca918bb1a1686b961a71c888e2424a0f8ed0afd288a4169c9fe4f43a22059a4cf86000001bc00000090ac72f9cf1974c51361ad65c0e1ff26bef2b533d413a2e332f9d400a922902cf0602b0f558dd959c3619a0a609884be90d255ced6a9089cd057cbea97a32ddc499107029318f5c65573eff88479c7f45b18129b888d55d65213bf1ae85307a7bb3bb580828b14911983b28f5092ed6d8f0c9f598a840626a6f8f6f55572600924f2d567b2d49c87eeb18e0ef6ce68c5f2000000900e442dddde36ce021e8ca2e3a8d730f9bc755ee0ed429103089ce923b09ce93a5dda7df1cd490dde95d6a9e89c9f37d52691c426fea8dd4ec33bd274b82c14cca7767b61c56da8e2f3e079e1e132cd0520c854a446d6a47d6031ed9492413c99109423b0038da0bf1617efac1a799f441f00ea166c99b9bbcbb415ff75e4984f8bf27fd5ce539d687a08d98e9246a26900000090149fea1dc7a7898a5172e3fac5c8bd87cbe9de239b2dbfe3315693a25466c5da49171a93c50da9721aa1da1f34775da347c4630502b894ee39c485ac28fcac715722a321c96e3521e4d0395cf38c096020d8aa15be6d2f4f68d61ecc4ce68154e645963864a7b73ce863bcaa5a3a1a38076fc4eda1d81ab7b8af1740f29513f9b3e90f390b3737e2aca29a09e0194402000001bc0000009082a519da67f66077a2d4a226bfab1f2df6c5d0331f6bee3639f9824a2273cc343c18bf79eb245debdba79b7881b8725775df0e0a5d0c5c76fa47a5892eb855e5a6ac49aa1574762a21c1e847dabc8ddd0adbfd1b9d4447595e98123afa44363ed253e217965aa3e1797330bf5d62cc461322eed52fd8ca980a81518ed15ecc85b28b67f116da4ad8188b171328d8b31d00000090dc3426f589048e2e2c1e57a7269e1a4628290af1209cb03e4fccdc9f7d02651126417d28fa16303e782779e14e7900e2739e93d0a3110925bb86a14bb24424b7cf09d78635791a79d3b83e2b5a70fa9015e9c7c8ff1328a78f71139f0f6a3519fa98dd49837207fc8e68ca16b6e91d592e23a0c2876062cba48d0c081be962c8c7bd404c15767f2f06c513c5eb15fbcb000000903a27be9bfe0cf52c0ad565798650313d1e4afb29e6ca4a8aee320efe5f667f41cc7fe43c33ef0e027a87dfaa8dba4a8277cd27641a0fac32f5fbdb8a5a8793269e212207f87ff35731f72098ad4001070e6463880de4e1530627736c292bf27fcb2272220055f3c283c90fe8f97db20d062791df527bd2abf5786c0dc171fa17748504ec4913b0be17a387ab5c1affeb000001bc00000090aa672c329510483f5b9454864206a869d1259056243caa9375e64a20072d06435a12c7cb2a74a5cf4a26453c6ad0dd52841a460ff50030396fbb5716ba859c28579b8fc1bdd5f2fa1bcb223da7275b6b1acee98e258cce6a4541ed6d280f23639b8ed4234989897d6f3e909c3df2d8bf2681b7c0ef1c129c79012cfa70de3f668dc7cdcc49d1d656ed6a4c8c24c01c8d00000090b19771862f0ea8fc9317d9abe4add7c7087bc230d08ea82d3522f0979aadf22dc674d48673f8c153533b46a075d77a72c6897366191b55c6e0166bbda7b3d42db71758530794e3f487c736c7341d2410230e6427d7826d47f8d955ea78659d852e782393fcc3ab242f3d24c6409908b71578693b0c11c03f8d961510887042808f985f6dc934952421dcdfabe35cd98a000000900747f0abdd4f91886927baa5f27738eb3b93b62ca9b741310c3bcd61453c11269186c3ae8414e827b96b8bcae919dcd04604a1eabd806ec897739e32c732cad404cda5e7de5ab971260f54f0b38e755b1f92b649664d281194bcf208f61a9751605bf50a44657354d09133761c8cca1402bdfd7aadb82b2e6b3471597432870d821a0748a0d616ca6b3b7184b0451730000001bc000000907f384297611556d8a055147c4c8b5efe91e681d72fd1cb8880c69bb17aebedaed24d58441dc48e4f04134fb2ca5e388fc96424c3a992375fdfb9e82784767fe5c97efff389cd3e6c43002d324422e2310d2c83601b82b80d4c93b20943149665234b30263b8bd36a59ba0aa1a3085d3616ad990ac5a3407db72091eced72e554814d24861f7546a1a70a2cf8a28de5ca00000090e55a4d0ce24b4659fa6ffced6d7e9c959feab4ce85b796037d30081a7e82b1088cd7490af1c9915479c0ddd708dbf104f91151e3ccaffe311e54a7b3190d925bd7f0ee30b4f3e293ba5f2d00a21f2c1c0cf328d063090615894d977ac7eba5306ff203652041049dcdc1a331870d281414837f7c2bf7cca89a9d9f2991d9da9c6329473c2d34aec79c1584c5fa6bce3e00000090e1d5cc49a8e4b99e93cd98a94de5affc4f051c2dec07aec7228a95a8b5a01cce6f1ada2450667634d48b60c2c636346b7000249a270d40e894f2f7254c156d1956e48d263fc2f9c5470bd079971fd2c5108b280fe66f674a45a48b19b147f62dc7761cffd758079a9216bbe0ad43a4c508a61d27a8d9eb43160b8bcc44f2e5fe62f3a3b219c18cecaea6747e47c37feb000001bc0000009072f8ae1bbdf59ab65c93cc05d7a355e5316642ff8db28c9e0ba07d4316be9a8dc3a7efe96f98fc5bbbf2e5c18e9486c298c742d659aaf45a5d240f9b70f6f8bc14579bd34779c5f6a43e1d33d2bfaca929cc633a5d1c38513436906ff38fd87a3ad45223260cc18abcb9b1a750837e0f0a5ca4436cf6fa8ec8c3d43d56a2efc7b586f7eb3ee56c9ed8c7a59104d9e5820000009020ad37c54953810dc0898acd7c2c98f995e94294bfe3e7616037797c72c0cec5f56b7c7a2e8f0b257cdfb63e9329466a58076b7207f4ee5589c4d7312bd7efccbb5f2c40c22dae8376b8b851d76a1ca61878a7925284cf76fae653a18918bfa22c235cdf5e7c80abb178be43fbd96cf715fc8a6bcbbc58e283159aa13abb3dd5c60960ff37f7e762d9e11ac1393de26f00000090212c7a82ba9a7e1c81a051465ee493d5a51b25f894f6ba300b0654a3ebb3be22f33ab5e60f57defd957c5e1aa0d699c344ced5a946386ceb30be42711abad082a730da18fc189122ea633494eb9b3afc2105e6a56372319f65638e30496f50b867c650085e21a4ab907a320a38bab5951dadc260f6998e69da9a9e3e4216bea0cdcddb554fce18070b264116c82f861800000e00000001bc00000090a451e3d670f70431e3422f55fcec6bb352bfb5ad75e56a2f25ee8593509f7a31c5c17def61bf6fdacd02afd35757c861540855acdf07e48ebabdeca89cc9e2d5f10c590396cf9991c75a28b54b74df2c0b1f55c75274147ec85bd2e0940b20dad498d59d8f5a43e94382ef90e6e0eb4a1c7361ca729f8cb2c9acabfb0b8e08967bf3b3b3f6ebe7048d5cab3b0adc6b7100000090177e8bfa86e98ef6470bc450cb68e38a972eb47b25cd7b266460f4a483eb53a0ce1365351c738ea4d27f90f0df0f15d973d4b6489b072748b43bbc5d64fbbe5cda3ea0543f7190596d0dbf6cc333ec1b0f735e08a769c7ff3e37a0e3b6dd909f30f68e84bbb5f6396f604ff1ec76e8ac1070a6c6d0aafe2c34aec6b14845a2380343b6d8e9e7a0e3c76ac45f7c96b8cc0000009028e81d7fc9248efc832f4d37543d8ec7693fc143e0044ab9571d6ee4cd4100fc44bf307979fb2f12bc228ada6d114690e4c056ff0f2a24c7597f1a7387e2cbaa4325aa9c2589f89c55bf127b530ccc2c28cf3311a2b24d3f44a57cd305f7027b35e81855b074fe90dbd164c6f94238020638c3d2648d89f41d71e64f7b4ac29e311b0f77e319c707456418e605fae298000001bc00000090c6927472687ee6df3087053f3305857ef778999110c167a61b770523441355eb2e252173acea10ef091928865d740d12f9198252364bcd53567a140c25d488a81f8e466ddfd7f6bdfa0386f05200ebeb2f0e971fddb99078a99bd1faafd8d264e2a6c0c581a6146c8f6bd7cbb12147df21a113320d27267a572ff5e8c77ef3ff2b25b5ac87f36e2ac64bc929a8eeeedd0000009023350e97edd2d322022b65061a38b3ffe9d6f05c1652aed846804ee2fe5c2660ceaf5554177ddbc05f663f0b6d61cd4bcb72dfcd71ac5a8b34d61dc787774cd2daa1e99aee0cf585b61347a8d012336202a1cefb29f30a7b8cfbeffdef3bada09da5ff1b82f3e4559a24c5d62a46fddf1aa147f8fcbb7c3b4d966ceaf292191c0f2e32d6799146445a91b6f7c0e575fd00000090032c447b00b809ae3fc5bee0bb531cc777d478de35b5fd3297e8517cc9a670543ad73e8308c8ffd0ac57ed584b9609d1ac62cd51a734a17b23be0d6efa1a9c523693d877d32e682aa33ae792d51b088a17a033baccd89d0389bccc1253dc79587c465257bc5d737d0f75a3c12f9c672e167d0ff5ad8a09c899fed467bc1f3cf27b31c813cfb779ebf6ae4225b859717e000001bc0000009012305d42791664ecffbed511cba09e66929cb8318a84a519e268b64b61c60156375cd7c834d1e791c1f480c1339696574d6a21edcb7ffa14496b11f2a81adaeed3ee10978ec0c7a0be6370b64c75badc01191363046006c7fc0402c46056d3126df76bda003840bff72712c370130c1b0e5977c8b4b7190037407578ec695e163d4610040d2374e7c2fe91eab3846b54000000901abacc4508cf118dfcfee0568f9dc1fec255e90bde1c28cd6d805f6501a926b9489c512f7fcf75f71f5f96507f33770e4b57dad98e633dfd39dba33c8e2b2f2ac08e9db545af729ed767bb3805a142b21e72956d0d024d893340764af7662ae3d8e43281e30012bfc6777d492a83a89c0b3883dd192d1b8d4915ae9b96542d40c5f35cb7ce71157173fc6adf895a77640000009042e7406e6ea91c7e1f133001cfb88b9ce7479470a7086204c3273420a7e98446cf78ce3236111bde349bd7cf618df3c2ded1e057a412a0cf50dc860d21cae7c4c015195142fb11a9fcb08a4bb88e55e31255aeaab9e2c682699842aeb658552570b38c5dabac8f40964ba29cab2baa610e0d73b6fa11cf8985c932c29381fcc53abb9dae5c567e38aba8a1cfe364d4f1000001bc0000009069c81b2c2afa628b63d46f84e4aaad27acbcb75e0f94bc3a158a3a99c5c2937a92188378028c5f78579e6e24f73b4ae6b4918e2e2df3073b6ea86428c74d819297a41a7e4b0b38c3ad1dfb9255e72c4c01d398b728b20f4d31d2d6aa827c71ce02ce8538a2c6b80d6141c2e36b7665621c9136e0fb53df24796213ff20daf576ec8c2f6873e2fe5c5d32b0bfd873ca9d000000901077cefdd807c8637e951c51da982b6c021c3ab45e7540a9b53b94ca4eea56be9be233025d3e53b810294b200f928d866fff80496672ed68ec82b8f4edc30cfdcbc17d94919269ba4dbd880579876d07177a500d0c469c3abae3bc6f55da917e134910439c390252b756e4b12bca09762552d8c36aaeb215772f6399094f96e12d29bd906964cba09bd63e4d9df9ae5f00000090561b0c52813548509e57d59da60ba6a85d4405fc729a02302883b217cff32424be6041b1cd7ce90957a439e00b1d0039c4e30b5b238bbdb648d4828f6e147a5b007e90cfcaa52b1366e86fce4d10612314e85b32355a6298b952f903b2cf1f4a18ae2ce87c88fdf78a91819437d720a61f269dfdd741ea4e9d75bc40dda13e98afe97cd29aea805182a80457f70b4cf7000001bc00000090f6cd07cf1343c7216a411a544a3d7e71b5a56a40b3af9c1c523eee1045381b8cf25a148ad85e54e88f06844f3c074cc48cf64462908ea37d8cb86b1230851f9b476cdeb096f9b827a5505c482cb1d0e41b4a3c4bbc0ec2581db895437cbceae412a9871b442b28a42f99376e1472aecf11a99476ffcc5e10ad580e244352469043b70e4fcb8a162c5afead4c7b5fd7c000000090a74604d334ebbf486774b8c412a9dea44cebe52cc3285ef48ff437941e81d3f57388df7f35989178462381054b5931d69e0611864e28f1f7fdf2dc2f901bd2a6628f39aaf348f6e9d2478ef089461c8f2abf949e71045e87a2dc683afeaed430de2fe26b3de371059995f2c4010353e2074f6e95837f62cf760b1b103add9967b48aa0e868d0d76b276c706c5c7e1a2a00000090222f83ccd9bfc62814299abf79b67d29701739da7e0a683ef6595ad40862cbee275ee3a3ff9713ad38ccd2f2a7f93f73cb79e6bf5e6fdf439853c8aa0fcfd2b84f7935e985c8091a7555e67ed5f071961b715ca32e375c6d42c74ea0425df8aecd7d270fa90ca05913f57f4a0ad57f0329e9c743117724e634eb72aedbd0ebdd5a1492ad753fe7292af5bf562ec0ceeb000001bc0000009034d7dd691b8df86c3b6237c8db2439aec031c14c200b36bfec393a0982e71e7cac02bc73c224edf50d45b87efe3e477f9e3794b38f5ab4af670b50b20bf0d1ba2637419e94307c7738a17429b67d2f5e134bd0e62a37738eedc16979e988836e022d8fdcef1682c2f5668a187cdc02ea08d3dc0119ac898c636d7dd0bd59133ec47d305cee722a64eddb51b261fe324f00000090729301907fb4c676099f12753ab192f8a2d4cf23feb033de3c63b902ab60290100943dec4bacc6e738a7d2961d57b6f86e4027809a8df750c5df3c58c56099a70f25cd67a696c40ede567fc4b6b1c86c0a427d5332618a91a3c84d8cd2777cd3ccc480528f129de0ce6c754a4772dea30daada4c54a9e120c0cf870529b9fbbf88bc578ad2a2ee5caf0fc9b5a2fc81c7000000908e852e4e17f0c747978a8d80e60d0f5b10b9b5e4ad4f2f68108a5dde3c057c33c8e4110e6a983e4be23bd8bf60be36bb1adfaacc0208300f2b1e8ebb26fabd6fd5c7d368c58ee37709d1c0ecb545ddb618c45281c088819892055647fcc5790b4f8306fc61767d60fac43447aaf64f7603b620d9c2e2da36cdf09ed8198d1704039720d582efdc898bd9cdb4aa7c97d4000001bc000000901d149ca8d7c4ca3132bbd16d86a6b19816552d86bbb81084e235b5b8d24a57085ec3f7f7c0651c85719c82ff3ba64141e90f9bfd5ba6735ba0f2909aae2c618181a7b58956e81856e9801968641a4f1f049c47877ae2a718f4087823f0eadc4a94f765359cf1b3bd0c366bc5ef5bf1c71bcdfcc34172dafbb3e48b29fecf0b20e819354c9e64d4ad05c80cb4435e34100000009017548e46161cd7491fd3bee49819e723cd63b308f95695ee72af5744602207df07004d6cbd459059ca40033d7e7edf8ec76f5e1ca77054d733ca0c35b49ae7a44d7c05a521e7082ed11efd9b896ea1571f16734c08d0eb0449618965dd7ed0f770a674ae3a69d39dbdb6961bc4b3958b2b97405691c885331e22c78acccb81ad9b2e3051ef6a2dda2df8b7bf2e4ebdca000000909da6a35fef6c5ac1c73fd091e4a3604bafd94e15a4a15f2e456763156827acf8b9d166ac80d10693e5caa9c0836f97ba8151360c378a7ee1489cc366a47206562d30c80bc5ee660b959019072c9487442897d7e5b15c55a9007810718831c9b5fc9a59d0c007944adf5d08b05c28b4d50556628306422e08738a7e8b8a9e69b3442b5a5ea4ed0cc5d28b52fb5491619d000001bc00000090f30f0949344c720025364d7ee45222c6e35930daa2e89839c6381042f03657631a9a512de74114b70133e5e3b25fadcfb72840828dcd9f6248d2e805e7538f19c1c7738bb86a6e9780afe23cd62281842d706cd4144b70e686942f9ce841f335c829ef3fb1ffed1170e5eb9d1a2f298317a18350ce5ba07cfc7c3899607d35cf565197b3d287ba7e363c87198202fc560000009016e71b683492bffb376aa6bd7da0c7f8a56c50bb5ba08b21e14bc0cc3f5fd873beab4f0372f72d5d67a9fcca173161c0a4f8b6868473d3e7fb39536b257bd6eab83304b9017895d2de1a80e9a4ac08bf21e7507f287b28090030174908ef3629b64573bf5b7cb0d9d0ef0076b5af4383162cfebdaac872df93accd26c673c48df2bd250acc5d4c069e65a6698a33718900000090f23400722b327791582c289ba5f5caaf670682c5632ea03c3cc140db78dfcce02a90087eb0c52fbf719dfa0040ca5d20ad6683b3263a8f9f84d62d4614768b10ea9128ec1ca07f3badaea2f1a5398e1521a264f0b98ac3cfd9cbb022a16567746344fedaccb362dbf67824398c6efc5018c6e4089e1bd826c520a35027a393d4fb738d10ddce71682201a9774210549300000e00000001bc000000902b06d61724cc7c58acb63fa0517df805cd6f3974429cd068b7160155896c657b3c8bc38401dba21c77ca868009842969c4100c09ef00103b0e2c1b5822c8e494465f977a28f57d5e2b01049323c8e56c0ec1fdc1b7b0b88de4109cf5706a027e95586cc35abe3892257b6bd89c167ebe284bd0060e98ac74330c84abc8c36a24d4c4b2a0c659a0d16327c527df7feb3c00000090efa03261f4d73815d5bc450e8a56be71fbe9a06e5d0d851b75b299e1464771277f47b55ad332847bd6559f9ff5333f677fb8dceb2a7c09019e588dadf69b5fc6f821c897953b3424dbfe5507d42563d406884f2e4579eb9a3619d9a0a5d2605b3272726193aa79a88a1e1e09070c97880e70d3667985b7d125c4f8de5786ca1bb2aa90b2a802e525874bf9d165e2d90200000090c70dfe768cb36b117e8f41f62a4983fa67e2c7d12dcb41ca11d073365bd4f7e063bea59b96360b5a24c7c0d3a44be0afc1ecb558d3b84c63b0e1df996926e11ea186861231e4bb548771da92f6d0e22e1e708aadbca6057d8d76887bb8570c9dffe5a3ab46649f4d7f1073620ef14ede1e783eea0513c3deae136cd05f3577acdeade3011d2f08c3e05d93da2c635995000001bc0000009066b714af7f7583c4b719c6c3eaa75ad7fa5a7189612ed4b4f42b5b9d77f9deaa90945c7dde67cf659363c1abfe681088309dc7fdc4696a6de95407cd266aea044237044609ac705bd0d13197db795b391541f0acad80f90184152e8d6d848c46c6cf9e598542c35f0de0d585cf7aed2c28d31dab5b484b7240c914c6a8524f34e7853263278480f8ff529b6ced9685d6000000903dd7d0ed314579056da5128ded3c01dbd4fc2c01eea6f09a2554f114b7f084ceb0e404a678387e503db2b5a64b4ab30e6a73012f7eae1722ba5b9c8d920152777af28eda3eccaef5317e01f16c977eff15a72827b49edb61dff9033b345aefb8433aebba97e74c768bba02aa83bd95d71d010b06b598ef0838f55fbe6e0af573f06aa91d5b0b239a48ee022705f4a97e00000090741cdd3c214c75f878eb00a51e6272c524fca0e4723fca8045bb7217484ef4395ebd5f1bb8db9dda81e55c2bc67a0aeb1d7ef101a36bf1745533266ccd1083fee39b4f666591e3fb4f16ca02f479844c2ce4d10d5dfe6a4cf2fb031a723b20177c77f087eb0f2e7d4e63fc3d678cf02028f0c61cd7d67aae3408af3b5d5f5fadbc9ec9761e729435aebcb423e30bb642000001bc000000901a45cd9e6bee7482572e4da3efd399e9b6dd5d8d1934a7920411e8fc5908971da05153bdac3a0275fa63558f859c26fb4f9246daa8fc9db275a1ecdc1216e5c40da225674bc9547e14eb9ea779a7eb9b152fb1a22797f9b63521bf6a53c24a3225fa7229274172bb9ca21e00329bafda127289ec3b7af2abd65465babcc51889f34baf0a4cbc88dabb122b48bd0800510000009002708628fef3ca89be4f7e561f630d73491a222ed1a58c1e61b290ff4af55b7ee0fd4daf8320623715acbabb1cf144e74bc0c04d25897e220242f7d5f48048cca75dceef03ca8d2b016e80268cd3181117bbea40a2edfabd1a3d1918127751f4f372d4a55e0445941449a46557a604690be1ced93ea3b87d3555885908fdf9176aca6494d9ee44a655c0323340e946a00000009043857df80f3a4b4f866b7768123c2f5403eed2b00b2ff41eeeaa30454093c35da5483ed03dc6fd2589dc9b4b005be5def48382bd3d089b96e46449f62ce81fa2b8114bc96d09b061cfdff531d1cf27eb0a05609a23b362a58d6caed303347eed9197a093332a1a2d4bbf0e63de69482c11fa09d1257b0ecbfa391c9edb87a68528d554093f6f86d384bec1d206e371bc000001bc00000090d41aec12620f384e28928e6b2d3cf255253f98a1b9cd437fdbb82f9c11120a9c2d6ae22f0a39ced93d8bf104313ec625f547e4b82dd82aa4e5e9fbef921a4bd1347c2e49677b3e7d511d7750e37cd95e10c72f7846246c16ced15cc9f900a485877985758ca4cdc1002c7079a20c96da0c2f0e501a589e86a55a980bea7669f6eb7bb00e3ea2ada0b68d2f7a5f2af993000000902e23d97be99f37413bf94991c0dbfb298ed1df46d0fe2334970823237e17d3ecf4f069d8bdd850aa1d9df1321fefe49c6b5b11a7e5c7e145d2df74ea82da36fa85ced28b2ae0ab2c14435533a968e5a40353ad3eaf3ce13e27cc5b52549c7c08e7e7d15546391834faa6f3a599cf16441c9f89e4f1e7ef2cfde33faecc088f1b2b93092edae2668320614f5d7440efb300000090c956f8998773b509029e1520ec78cebac4d0f1a7c4bb77821a1d0a7fda691e5d81f3bb9dd18a4df95089f58ed9c93cad76f6d0b982309e5b9ef4a79ca562b5a99b743cc1124966ca0ed178478c7e09c8069ac00176881a6fd0b3fb4e01b92ecadb75ed1016c129ff1992b170ab22ba67071a288fbcba253d2894359cc7a84b02283f2a75d407b3c5f1906c72d551dccc000001bc0000009093c6f8e36ac145b1bab3a118608d174423b033ab9528da88df7cdf4ec871959d48ba859ce88ed56a75aaa7a58391c30e870cf0fd05f5a7822ce8ec092052ffad2565ceb74ad04f0d95949f3ad9dddff324871e7445e731710dd3ed2b9441e3229c703527fa835439f593bae6ce60d4cf051aada51eece5fd59db3530a713cea9194bd4c66595557c07e7614b251a0734000000905ff56bc4b4b6264a2209b09cdd93560a91b77d10543e36aeda5bc349023fa5fa7019797b7508e0e017e76f478996a758fa6c86280eea7accece8cdb6a10d3d1e2ec06182ce50cec166c62af29f778ba214d4ebbc541f2e16b22923b48b7d04a54f82199eff6b48c90daed59d873028de230ff33567fc8f890dbf27d826e66a91ddae34e62d737deeac896bcdff5ffdc200000090610d770d4efcb5970aa049f66d860f20b9b8ed09b8e6d9c0fd2b040f38fd57187b7f5ff0a701fc027b5cc20971ccfe925eed17f7d095b4a9d2b91374681a06c727a4f168887f5b830c9d3d9cb17b9e042040cc23e9c92f88038152c892b2b26ba3e9ad8fceab82b36aca0f2b7908de3820cd256a7d49e7b69815f0973a0374af5278c7b6b5d56e0ba0d99950baa81fe2000001bc0000009081197b805e85b3478257dc7a24c3c137cf58ddb396571d7d0759ea5f1df68399920055fcf39bd24c9542e4a5c870b1cc78ab9f4d382b481b893df9960ed8626a1a94dde880ecbd73f108e57cd63bd1be30201c546a6a10d659c78d647f60a1b5318447d4698e0ea585c6f605eabb345417245147b488839eac50b327474473dcaaa709861e9ae35b41a163326822c3330000009023c38da81b376c71b7ea255da4800cb468292f2a1fb778a99b3a83f02cd888caa71cddd8ec9cfe020123fd83f16d718e4af1746a065b236d4a1008150ea7a5e50fd6d2456d280c28670241a63b2b725620573408916e69b8d21209008337b6d3169de9c10a3aeb80229969609cc5ebd0074770e88b19552e472f9bf2ca37291a20411572104debdeabf5525f6c2064cc000000909d29034aee73fce7a151b594a09a0f086f693e43ac569ee795abc3c4938c644479ef9baf4b1cc6f90ea747eff861e5966e65836f63dd9909dacc8f4eb59a29109c4af6168b9b47ab11d9b3432b261fbc14d697b84f698a8a327527521bff5ca3e49103d48a0555ae96adadf35ca2927f1801484605908c8e775d3d8042e6c95b9c898a26a2d8cda29d007bcd0f461e3f000001bc00000090a5c4c80f0fb40efd4b90340ab32f87479a2a8ac6b0649725dfd4e12236405621912820dbeb159623b68d6480077740b198264535a3298e9a3ba6f51a11a4106c290ba36cbf03bf591f8f99c16e3875de16e2cd973d35a3294074dd98f7186ce7fd40bfa08b4e16c7272e87b773c01eed2d8b25c82986e9fa133c134420056e7e90b49ffd21a0996b35d2c4b482c79e7000000090709561921a7a129affb05ff81c2a96b0a6f0c4f4d54c54c5d37028e343b4ba9115bc9131ffa6816bb982218f5233cca591f80052fbfc4f8bcd3c84dd6edce2fbca363cfb2b6485acfbec4af2c32b3e2810ef246c861fdfa1e7b7bb7fa85b6103bb93b8a23860ad77b5483e2e91d027cd033e145924a5ac3b643cc0080817907c6d3d40df0689f2b0fab9dd76455022f8000000905dad2c324fb712b4365a3618f9dd959a6af4cb2051ceb3d2e49d5b560b1ffa501c61908a50305e0ccafeecb216a8c636983d9f5f2bd259a27ab8116be1b1721728bd5ba8311d657bebbb3e87952ac30705b8f415d42c48614f4ac5c9ce274689649deaa3f682bc339a4a42f2f43cf97322436331062c51f2be86586244ba3867aef4fdc00644ef3c2c09bd8bdee63ee1000001bc00000090e172f139502801841ac31483f29202815ab912c3eec81ff9e77bac39756f6687128bc472b747469775d6b8af33e164d92d9a9cf50eb4bf7223dce2a4946f232b094fd04e02b45793416827484b39eba40e03b4ac1cbcef5e23ce19993eb513dccda494c44973ff0aae10a70510c60c081899cccf67e9f5935b3503fe53b380e91a757aea53036076370ed9aadcd3869600000090d903a04d6e00edf953bacd3cb1ed209664094665817f2a5d7b79517d0e26d3ab385fb9c337ed688e4ab46a87ff8f7298ed530b590aed3a6cddeeec550f7ece1a97010604a219225772ec1c28ec2748d402bd7dc7feb73ac952f3e27c9249339d9906c47405b7c7cfdfec16808329cea228bb9f9be95f80f7b1cb9bdefb6e1fb50a103f14cab643e1848945c2dd85d1e700000090019613e996afb9de3b063788d2796ce162a6f423eecfb01cb10a7940d1939de00c357c8cea3bc71aa77a211948c65835e7e214b771bb91dc8c8cd42993b238932b318bb688e77489f7ba99b84560d78f2723c88b91fd2081eafb9549bb7a6a1de4ccca2c3e130a470538e3eedb7931a925494efa63bd03b6a2045170595416f163b8d68eea6c8bb33e1891a4c975fac000000e00000001bc0000009018254c0d76ccbb466a83370520861b1ec37ca8d9749ce0834aada0e0e434d412fe67057cc37522a274e371547d1b1e0046b9d47273a82bcf05c477161888137b67b816318e8fdb945fc408c0ca9c19ab20bb39b17fa2e81985f7f238040ddf093da1b1974dd3419233277c5b9eab13121b1a7edf24018d8220c66813d1a52cd1018f2cc6dae11da8094f811f2b70068400000090a9a8ee0acbf9369f1408225981c8d84499ae07ef2a68030e753190e47d0bd640d27f24fb6f0ca5b1800aabef1f4cdb34ea03746cd8d666a52db8758689b910ba9d2bcef15cef29a0cf99b00b4a9e0df9032495272880c51e18eee2c6f37f9027b4e4017e1153f3d50c8533d1eba2ed34129771d5c27757f299800adaa106d82eb4ca56804edebc88d986c665e48f8fb800000090f32559fa5b72d287b8a1cf04b1cd66e5c70d6b0dcc93612b0614efb1f2b19e218ab98cc25c06075a766af955e5bceaba28954c2f7e3a4b39fd405684090108e089673151545903c680c54d421639dd29201112e70a41a90befb542f4488e9fba3611f2fbb83f0fbbe683bbd2ad11bf3f0cafedf94ab87c216d0ea6f37d953e050858b340060fc120167e0111f201d1e3000001bc000000908c287f342b2402f561febf83d58c64a2651b063f07a7f862fbab9138dc9a3250ad02ce4716c5c93ba32be293c8037da2a7dec052aecd0f167454066c749db15aa23c177c8e4a2c2316476687f50065c122cf881f1e44e5f2e7ab9a5a6f6fe02ea0303fa7e893b46e14e4e5502e6a26640a6f5a651265fce7774cde833fd7b0e529f00557da5aea9bdde5dcdd2a74df6e00000090e48fe6d7d4e0768c28e9712efbe05f27e7579edf1265b1d4c71d41839731c4952bff84bb4aaaab9750926105fd85777f9a0fcd2a75e9091a1b1509f4c57f4aefdd3143d7dd571f59ab1dfcd45460cac81a15f99d9f319a2ddf67a65146b5e02ecb7d49b17d3876ad37acc99b48753d1f1b7bc6b588d3e29d188b52b7ca79555bc7e1530f7c7c8bcbeb387f73085398a5000000903d4610bec22444d2578f584a13cbe8db93826b7324c1091b93babccc0674895cde28c8f5505495db9c15b647d9a297cfa072f9911af8f84ff27787a9187452b57a328655a05d9d2f409df359a2fd83c002858caf2b31a29604c74263e24f69d53c79c5c4f765bb3aab75f93c2855745213f8e9aa7156e6c069a4863d8e10830a2bb104a7b2be7ab69f576a8071d27b8f000001bc00000090f5f453102f6cd97673090be1b8a95db766c55e021f7d10b63a3ff604694df1a752c6c6ad997baa7b18b00ad4904e6ca3cc44067b35df8cdcf17cb41bf7fb0805e481a244571e814b3f84ce392307b4870da7a9c01b0dabf4621213983955c61d2c925fdd20a7f5ffebb4d3b638e415620eac8f88aa7bb6acf5e930d074e4c02d708baa3dcbce03cfc0b575628fcbf39e000000908ebe6a4e2b7a7a23cf833e51ba1b9cbdac2a7a7eb68eec6c0efb6e76c2fb248baadf1bcb8fdd36c61c490273b82d8072b95b87621db49a91abf9fb0e625d07ef80f6361f6731206943ca65ab8633a9a5123240d463c34dc493821dc4c96be86a1de9234a0bf0479f08956f80108b82a820ff694205224a61abe86316f8c8dacce12817bfa0284a224561ad399605b2d5000000908e1b76f7e65bdd0d931f1105d7a31fe430f35143f001e8d36e185818b47f2bb2cfdd0443826b387c43546441dfd8da92759f65eaa6c7c38ff4e159ceb0a676a7aba566675b8bc5fc9aa29693281e8b1d1bdc00adb670be34f1be7729140f26c73852a8f33f7dee2c54132e95f328cd3f136ffc85b35831d9414788acf3cfb42e20518b22ca945aea170522be01ba32e3000001bc000000903b26e03c072cca2064078d6150e583e684cc388292c2dd6896dc09b9a34d4c1d3c9205533a438ed4410b7dd48ecbcc49d21e290609e444970fe1fbebe25372ce548ddc5a3d3e7e49051b28c43691349218e412f9a9eea352f6c775cea1cecc83cd512e0ef90c7ad196209589e5d43b562e6fd424aaf2fab76f1ec6d4a3ee66387f2b61d317143b074d59cc3f5acd4730000000902ca9a7d60ef32445aebd381529f483d3423a3857c9b34b7330a1aaf2148d472202e39a7d2527a4ac2167f7d4e6226b72d601b7b46416fb67a87ee22a9c2a6b70b40e9cd379118d848d0e274e0d76f69b1bd49ceec06bbbc00ae045d6022c58f955862b38f5806d1446030ca3c9f8236c2919485f61af750f5064d92a6fd799f9c4c134344eef935474a7c9beeb07309e0000009073fb4cfbe2c4ddfbd8354b6e1b77131f25231debda99a499e1ecbddfd5ec274b9056a3b48a2b86a8b5152ae6eec55ca847076d023fb9d50927f7df6da9e7d2b8e48bd943e36984d1d44ad5888305d2960351deda02610840ede3eb633a1b3c8142aa9c15972dfc5d2251d8784608b6cd0d4805e283a6f323245921303039a91aae51c54877875b60a9c90a5a6d3d4091000001bc00000090f8a0373901dabe3c21987373e45465bb70beb28d2e198c96634b8c5b3c3318b5c41475c99475e45f99af928add960b77163fc4600e616e69a79eff6af9b00c0bd6e8118ec97f6259688c07ef8c8a7c4f19034fce968e58e21dc88804fc4406b70f5a8fcf5e5897de417d5612eaae4c710ea3020e80e66fcb959d6cc4dca458a6711041ecb08aa3a182942216dd3025c70000009095dae8d18eb1192600785a7b3cb2fdb15a0a69625ab5bb5a6399493534027108ab3a2fd6342e644b44af07b1e5949035d7408fb496b0dd9c5486f47070b187032a72888e83d176ec28bf77e3c09e4517164057c9e3543a4ed1f2442cdac6a9ed6b5d893dd0846e9103f97d9c64fe24a50ea138ac118dd35ae1e14445fc22ea521b8ee289eca6a5b33bc99d132f06dc4a00000090fc15f17a0d6869387f862c9aa0f5253e48fc111b06620a90827b2024fdf814a16ef921124d8103153dfc54a0e0be1167eb195c89956507eb7ae6b4641755e0658f864d79f01765b0260071bcce7ecf062d55ff6af3668375705caa5c1ea5d34416f64039c600894e6cd0f05368ac9ef22006d00cd56bd9eecfdce819ca4cf2a379e1de3c9d7963ff49d4fc627737d59e000001bc000000909be00b8a90104a6d388c22e341811df3216e0a82329012cefa3dad70289d1de4d2ed42e4e1a934a611ed7334a562df4e211df9e4bfb5ebb1506be091e61b9c95e31610398687b0c1bebf82295fe7d38d10b41e2df5137d418f0555c60e7cfae9578f403b3fee849d10a2b6d0d5ee86fb03dcc90b2d370aea15c3c7a6e517db1b8e4f550632a2b4741cfb325a5ae38c2100000090c7b5d6c10924bca9a2be72f585d6faaed3761d1547899ca25c17251f9990d425ba4b6a628de91d8f9d032000ff06ec3c29bab819ea88e7dcd3b0802e5099aaa1054808096f88fab55d2775a8b7120c3920856bc5c188f7197f13bfe1c454c244d838e7dde7cdf9b25be042f7efb63d2b25bf3efe0d8b7a725e6214623a362d44c49762916262bff5e8e48733a944690b0000009073d9dd2f7ceafca4f3e69369d990b717aef7e457f41314b0cf2550de4ef8f5060e524d48878eb292eeb6f1afafe06b8dd6d083d8889a13535ff077afc5b313dbbe124061547edff2c8c9e0756673c1e2063f942e617562ad0f16b9a8d8cc2b4181896d1dd99035c6d7a3c774fc3a9228086f9e3542b8ce17f13253976d114f478f3fc7f1116916ff98f598c0546c367c000001bc00000090f96f7198d858ef2c5157a258d7aeecb62a86967083e60ea8a8dd3b04031bc170338bda35b2611e6801c2b83b79b9306352f1932eb93db6a03c50de6e324b8063b60ea58a4f71734b8e9c8888a519137719225008ebba9effee254aeea7f8b2a374dc2e6bd71c281ab8ce4928177d7e322cb5b0abfed9ec8cc714423b4dcb31c14afd299fdab163b823f71d7b6f1393c700000090c31d6c8aa79191c9a6cce51de95ca224de65ac6096e3a2e0de95fda026cecdf292a0b01a9823908444ce61cf8b430bc2e74a64b9ce759d957b74e51889a59a261fd7208a1cca560b6ddded30c9f60a150b28a0f90e98f0623d5c8ea221c25bcded1009b626aa5c0bfa0fc79ac72e09910610d192054a82624fc139fcf3141e6fb5caf6c17fd68bea5970ae29cfe986d000000090623da42b945ac8e154df72b0e3c3499a3982747bd6d137e87bc68251c54fbee14e73e3f65fc968c6527ef5f174a4cd295c47f2c74e579a8e9b6970fc67afe1ad0a0e504270fabacb15fc4f007255dfda0c98d86592fa4aa519f7ba2b90bd365c9ff06da362dc35472ffe3edcf873f83906a91fec9e1075aa2ff75cea0333f79b91c1121bea7524a7a49d9fb200dc8c86000001bc000000906fb797f0079fcdfc255dc5f1754010fdf5e6d0d407104e5c855c6404c80c34377497400a3706833f4f5a18cfc888dfb1638a0d32d4c801ee659febecd354efae01b2a82f8b32133a14f4df8ad68466de300e85ae51d0de43eaf80fb77a6ad2dacdfa9aeb7073967180441489f4fc5a0215f41613ceca59abb80d711e5163f01f59b94fc72bafde138171786d6ed6d6ff00000090de494d257aef9354e6b3a3845d76b3f045a4aa77ce8f1545223e3c99531ef4be0bc365f4d8d18da0b9189953ae96791af42b963a23044e16fd46564630f066f15c59a0ef16649a9b145285365e6bf89f3060cdb8db0e69f5bd35272394cd51997ebaefc043e078c20d66b3cb641137462039ae20fb14c07a5cf8ecae73e240b01c6bf71d75512f4c32a641ea41e4d0e9000000908cf751b31521b0ccfbd9835f4a2c117ee79bbabe6a2030796d95618a622922c7550a53913481ae1b1b88b777800bc81e7f1442d8cedcf2eba27c75405e60631de14881c3ac9eb324d36b828e211c2457092992799432d06e2f9366e23a6e491d21e91aa874d14c6be9a4259700c53c29259c009f5dee352fa76338d6b0bc972ad4fa9f8d70f2c0f15946d76bfc513f8b000033a000000ce40000012800000090db0e0239cd3aca4bb13607973aff76221897a39cfa8cd67fd76e0e9fd40bb17335a153ddff6b9962eec48bad3b40b81edbe25c60413c57b687e5bd87a635d3cf4dff99f6b6846634a9577c3151bed8192ecd128183ad92bb7cc175257ae1b136d2e4050b97836ef52431817c899c236d121e2b4537d3665d0b2b8887cf8994291b6e57cfb8767c66e41d481044cc048c000000908cc447c48d281aab51648c89eefbfcca50bbef3844a40021d45b069af00f923a846b84541eaf7a36a74e808ab25b520ed7992d87d09c6ad038971fa37ec0c00e43c945c7e241353efe8f9373b66cbbff14f24ef5a48c9499c4945456064151435ca5e0142ed49a35d97325bacdbfe8530aa096ca06e7c4ed25d3a300509948395fba2372db244d241f693ef89d445c230000012800000090c931e46a34d8ce376dfb6fa440845c38f5e56a0bcf5ce275aaf3a97141ba1d401c25097db75b6308088441ad96cdc47dd90036232a4b6df78a7abf9dac39b36117f3a11e1e4ef73da216a3cc488b67e21b0cee2d0e7e333141f8458ebd57097b887ee33d26f4809daf113e1f5d3762c32c0d8a24f34e9cf7f57f6f097f5a24fb25961c8951594546dd3496ed1322b2e500000090ba1d5783ae88e278c74c45f54d973a0426d26a974ecf2a411a73433e67f1def16cdc6e8dbe72d954cdfe2ed8b89e6b64789eb657ff0e4170f40d1fac114675cf8083acb59c3dc9c3ba2291ea14396bfd29048239adc2a92cb2e511be45f2a4a96314e8e5f9c4d297f5a84662ca3e18310e1b7f7f6702eae05cb9926b47b51b67b84fd06248b52256d29c0fe7f14c532b0000012800000090e064a2ca2c276d2fdff1ac724bbd5fa99d3a89c37f1614bc19525c4ee7b70e4a96d9673e901fbc8f9bdc05e2f48d7f8430ebb1de0f2962e2495bebb73d3c5bbb9f449b80a4e9850c542e3cb1f909dbe208d01c071382206283f5c9cd19e9cf1da20007860acd557b75ff9217f3b4221e2792123d7c1ed7b369b7a8ceb4d707c27ee96be2c99c1c6e65d323e005f5e08c00000090bacc846661ed453698d44392c6cf8668ee64500e0ccccdaf16f7479a9c04b8be3a5e75fb53406459b00bbd71d23fa9cf5528c811595b865ea2ac2c0c7bf3ed13c18944edf69ba89a08c56755ea88bb011296c4784da66486e01a2e66726681a8aee0858631a4111df846b94bd531a4961af33b19cd5969f696564c8a7a90c23cf6b6e3dc2baf626d07736d0e9a99e2ca000001280000009007085fb34973a27dbf89914a04f8eefbfecd1fea873dee470b1437c672d79c531f192874293043bef9017a1904bd775484f4d9b9c3908b1edc8d87b18221f6bb46b9170150456972d2bcbc2ab721aea22f8a7c0954d71578e8503ec0c87f90e0e9d0c93fd6366886df7ccc6bee88829700948cba8ecb9b504ccf403751351e78118dbd3f98c8d5aaed211a37203dd354000000905bae15e7f0913f0da17e293b101b9e252523f00d98ea1066f8347c62cf75b60448e26040189916c7aeda51e3a41a156ae5346a6d662103875c2be90d164580cf1d93199d0eaa426add63a20518addb2024600d2c8f03bdb0887a59a823f8529c11837bf1dd0ae48c69d78fb87f9e54a2174420c660314e26fd6e4d82e6639ce9c2cca6e4312da7934fd116561b4a7d570000012800000090f5f772ba9fec64e2938bb61a8e4a8c05d7124f67bb89e598f118788a6ca23d4088e927733d13070001853f2d22e33d82f054fd51cf956fc731101d8c0bef58e85c644b832a3bf6fdc60d2ff4e0e66f2d20a5cf4dcd2da06a638d0aa331f339ab188bc1e0b47c2457bb3badf31094c49b18b5a83f30b762f666e6da83eb25d0f11dc82b7ab1159ef9336b5ab6239d195900000090b9b25433f656012aa8e0c76e9fc055507cdf6bfe9158a11197c085a74a961083681d13e75e6f3b8deafa7c1e0cb2feeb0e8385b6166d7fccf1e91026d61b13f5424b2888badcd0ef01a316e456f9f2511eee85e21758ccce1f28c17ea8a8cf3e8ec21eda7762ab94d9ada4490a69278706350ecb297ddfb0a34f3bcd228be3ee3f0f4fd77a0980001cda5549343d3e3a000001280000009010f45b204ca6778949ed8cb059d25bc4fec6f22bb6708e5b5775a6bc3318048c94e3281dbfc32b947251aec12ab039ca0bcc71bf2f8af8f2440ec0464b64257b876d71ae08fa026006ce4bf0ca30cce70439b4fc302bef0d6dc0b16505e61f8cdd845905de5a394ba75bb5b8e00b3be70a7f47414958d12309d57caeeca5fdea8a0a6dfe012ae3ca7463788f9ebfede30000009093d9e4af78824e416fd082f1c38381198118bfd62d1510f702760be12d4a541b5c40fab0f0792e7c6d0459977f91d7972a27df083484e8673d54d3c9482646173786476f949ae9553d77089d223875120bdd2a15127c23acc23c4825a8ce97e746a3cf5ae7de014f6c33c23ef46ee2ea110ddf95dd47b38f10bbd872517f41cc501bb017580d02366581da31e4c8467c00000128000000905278a3b877dd076261004efe000bf56f2c25fcf680165e56060c0d50ead25c837bebea08da1af822b8b55f4fcc7369d560824e23cc29fbcf18516af0203b32d97df5eea776b3dca2c972a3b36252d33900c6db2f2fb24ff74a8ba96b4d365bcff0f39ee7db79228a0d56a4c1f9fbac122e7fbbc0ac0aa5bf6b96f0b3f8b61f079ae96b6ed4e5451a397523bc38d455ce00000090fc731ea1feb5719a1957621c658c36d136738cee00b31266038661c6e845ba06487469c85f90f3dbaea068013f1cbcb0e2d8f27dfdf5b03b31a8b1c025e7a96f335d3df3a182011e7d70195883a5b3ed022df2012f6be317a86f5b68271e47b2a28cac88c2607c4a8a0a6f89ceff73b50a873eac08cca2d117220098e39607d4626e99160081078d59b6e87df2bbb5d50000012800000090b90fca94a354bec5f029899df0e3eeae745b0f7c3b81750204a2fa20738deae2e9ce83b3883ddb7cf77cb67b14d7335b2501cffa2ba88862386c24cbe380c02456b6614df1fc3073cbee52d1f5933dca191cf08d1d09611b0ab6b64cb718363fddd3c3f74d5f02abb70856f8f8a6d5c615c984213d252584d71ea78becac1f9cbbb701de79f106a0dcbe98f51c9fd853000000903825f89951963c02522c5e559dabea7e622c7abb970f51ef3cba2ec98984d08cca32862d33bd95f4f90a86ed1e68533f54b287a0ec1a320afea3c2d6cae6b129323bf25c008a8c847789e5a50a54cfdc12141b06e3051714ba05e7f8001fd02c2829230b7827a43cdbe0f6eab847f42626b47eef5f9532a97ff9eec1afc9bd65945d052b1608c3f423e1d3d7106511dc000001280000009088313b533cf2e9ded7e742d02d68477905421f0b1fe3bf9b0aa8c146ba17aea6b9ebfab46046f91aa6f251308f7a5ae24afac85650629bb0fd6e6ff310d0903d9b3485f8f3699d6e8768d3c8e9dbf9ac0c3088ad2cca27bbb8b715fdcb577173c726a598464c18e29c680a33839df0e0249798be5fd701e644ec9dd0b497ee800d5ff22b585f1b0003c89d4d639f1e9700000090d469383937ad5cec2958fa45fbb73232e6a33797d712ce99fc33616422f3e7767aaba9df8425553f646b88dd79a3cd90c2c0917ec8c79e1fbe299142dccc7ba1002c088f983b749716b533dcd2ed05361263d51717411a0ccb2e5bde7ed28aa6a570218ac63108d101725a2ef75c466107dbd404cd1033e29dd08e913170e57a813c93383660169b77ab6218d8b7301f0000012800000090dd2331dc5b145d5accfd5953002837ea2900c25d72b0544d2c20ac362b7e25701792cabae84dbdbae11455ffa76b861a11553bd0d42e2047ba0515370f3f559673ad9bdda1a01889c63b047b26935fe817a8687099a6fe9ac41d62f14c8443b9ff5a34bcc1d0dee62427b7b5e35bc30204beac7044caa779595be13bc7c1f0a611312f09ae17bcefcd7cb3a347409f03000000900ce4bc21ecd512d21f678848179e49238b270a25621cf84bf9a1e7811c17af4ca5930d98448f6d4c7d24f25541767aeb21a021b7b50da48f91b18914976612e0623ff08d327b73407fc5bf81500e5a430b30ef9f682c9d324b350ccc37599e03b9c429b6f3aefbfe305b487251c3d7a22c8df0495ea55053bd8ec3a4b009a64a66acf34ef5732e1d20abfdd7ea3e681700000128000000908064feac2cda1ec43b8d0d4a8da77ca08bf9b29bd0db5599c232a2cbc48fc7d7db31a46bc0348cc3877b505af71fd21a8f3c3a191b866ff1d4f172dc23058506b1c915fa73f7dd910ad67a1cc1d9bdee205dfaa161d749bcb84ad9e2e34b159a1a5eac4854d5f628741aeb4206de14da24ead0f17c5f1df3cb37c670d44ab6f7a5ef17bfcdc57ef78f27b0583be0e1bc00000090a50023d2869cd231ce8245a0fd36c7d4ef593aed0a3439043a0d760b410855b844d461853b2b5d03292574e98add9404ab525b669ef626b2b476b9d5aa358d7ac3980734e4daacce1a74cdd909d4f97b1dd8473f3e0f792ada5ac2e04d2ca75ec71aa65c458e6a4466bae8af7ef9e9f62351d140f3edb0c82c1182ac2ae2c33de9177bd048c9fe885036270256efd16500000ce400000128000000905aae60d2a4236edc717c7b085ed3c9e4772d4c755ce6d193ff7166671ae1084a7d3c94a21d3046e77e0611fa9464ce56a8a940342b3faa648a2b27789e9f6149b8a454eb42576f0c51b1850bfe99a5702f9c78bf2951ee936628d76a732ebfdd5a955997d8817f6bccebe078de8933b82a45f4a9b9794ffe40d4198f9ada914848744bb98548412e75b05f21f89d858700000090b55d98355d463f90ac2a3061e19e64a9b27580bc59ce71ac090b40c74611d5c0aee840bbd42fdde9b2ad9b3efc82c2486ddd6daff949830d2ed19f37b13c8e01247f820c3b8ebd2b654eb9da4104bb731709e79fee5dfe8ad72e295f5f7d43e80d87b909c7e54a4a7fbacc195c86b45c083447248154d2da66c1cf61d33b85858aa7b5e3f7a1722e47e9886212f2ef790000012800000090e210e1e82695e55a5e0fce823843b9e31f8914537c3da879b009b81d65c89747db34e8eda613543c1b2d7be16cb5d201a307c688757c0126c2e1dfc2eaf7d623569bc1644592bd20a9fb4cbda5965f452807b575906f5623441066c01c85570843d730e5c252c6487da90e19dbc6ecb60cbfec574b8530155c21cf265eade7484fd5af59b85810a6a5e035c8cedc67f70000009029d7b9f9c3aa84051c2b9f4576d7f0c50b63cf592b16ac8257f78b8f151d515bd38b586f6a1a2b42e596407ed17f912d7981413e72d68f3014b5fcd616a9424818b24059924217459f0d82715ef881850a705775a461c4ebcb74cf1b0cd3f59c44e7bc1d359ec9de7aa8259be3b6e613216ea170e50163a74763d144418e79482b177aa43f6d6445d100fcfea924d1690000012800000090134f4630b5a437598a1589b3a42d3bcf8d1ec5e91e706f4a0a084aaac4b778c0e6edd08a681a2bb2bc78bb08cc768c3ca6f84f58bd015c1b7d2e189009487d95cea5e9c28cd666ddde3df9f227f1202e024ead676d9ed8ebdf8920ced653fec013a9ddba35c8eb023b21ee9f597f079a07dea3b3388209287de4d99afd20ef3fc44c061cd01126d767de3157c7c3e55c00000090e1979b68d2ff9311525c6160c31933241b99b3de6220ea6512d15e32a4064fb80c540dc37be2a93755bb54b2092269c014847453a95fc56b81b4876234a6bed58fb59565e1d8e0acb9c5ed8ee24ed0f110ca41e8a4708479d5f4061c01b0d44ca44a92fdc78338b6b7ab90ef9d901d311417688355823ccdd0e746c6614909c50cb06340e13f6bbad2735f6f3de8c5c40000012800000090d3c113bbd9fae618e84aa32fa1d24478d357345564c7981a08d9fe2f717540bb262f3e76cb4fe1aad1ec5b936ebb040f1fa54f0f7f845f55884ea875dbca554a5c14cdacd1a99377e267297638fcb2f71209bf29c9d421aa997e355910e41647850ad8b1c6e6825949ae62ed02cfedb20c76a75db9a71131a30cc1bc6966f3687219cd928f5b4cc5d62908372b24ec0000000090ea948dc5080f9b002ff306e72c1ea1c0e38786a269ce29ebd8d76e279dcc3917d368187b91a55370d9882af19867ba6eef7f1dc5aaf725e1da7e481e942f7c211e1f33780847468fa26e17165aea3fee2bb95191550bbeae875832ab85706cade6edd63c1a73f432cbaeefd22ec36f350de8d3ce29793db50f826d300b25a94cf8c882f82cd688c8a49a4c281ed20c7d0000012800000090a0cc9f70b295255f0c15a6478b4f5495cf790ccb0c31f1794565291065d6b75e9975a3bc8a591b0f622331d3c004884524d11f530a17da5cffd7f88db93533622e002ef97c440f9a51981351ca7dbdbe18b6147a37e0efe2e4f38adf3e7a6fa5b93f92f4c15abd03ae72c7bef55089ed049b8f1ecb4c55d9edf0cef0aad6ff1d7980978af2dc0f320541b1149cb3cb7700000090b6e855a08ef4a6e660ac01f0c2df88bc7b4b0c574ea24448f3b616ac6a2b60c2e0a69bcf144660e4efcae681cd0cced828fbaf75aa2b45a7ca9a0cab9da11a86b214818cdb43bfe3d502572937cc49f20ce5bcb0d796dc43ec448e1d30723203bf7560b3eae7cb7f7c4b2d0e5ad03d2000b47d9ab757b3978e44b5e54c440848420266924dec99e19a70d62467ef799f000001280000009078cd8b67fbad66d9c523254b33490f413b710a9630452d1955a6326aa20fbfd476b67b3cd0856af83a99daa86ab351f8a5aa0ccd5a310942ad42f0fc82e65782cb231f6e0d7e6d241bf039889121df6018f562426a63eb57c1c8c065b06243d1a51687bcf11d3768e3854c45fae53c0019957a6cd82aa1853b30c7829ab18c1e3404273c04106065eac90bbd9d8dd52700000090ac7d9560cd2997c58a72cca3e57e5b58ee035b8201924564af27dba153a612a4a90346ba45d6d7f7a16e2e8ef714774836a339df161ab634df1de9f57589ffeaaed27a9815f8c471aeb6a9d5d7ef97cd04ba26962b48fa55c2da994acd880cef9310a1c484495d673fa5ed68a1f70ccb0810618f6974ba1d11b8777dd52b6b79b177fafeeeff66101e4b5739dadddb96000001280000009085fc1f709f024f16e2d7d3042adc8776cf373bfe27da97ece4913961a7592760b142f0eded8936205fbdfef0c72ef20323256ddee9a0070011b3711572013c1b77c5cdafe7f4e1768d41e09f2a9d0378181e13e0edfe41567102c2b2bd319593f945ad77649bc8542b14ffab2e97c2880643ef014c7b1775d644f5112a1ffec178cc587b0f140e681cdb985a90e00d6c00000090b8042a08acff363ea21e701892655c0fd07105d58852414b31ef9b7d3ddb1b1eed34ffa1b518188c982f31673683b8c8ebd86644dd8bd53d70b6e23f578ecf4e816b5d6f2eff705a44e7c823b7d91cfa21514ebc97088053383e4803efd65ac68bcf5c98c600739e99bd1f5cbd760df72ff53921711cea027ebc898c44e3d93c28ae13ea86386a1ed4ae4fb8b695aa8700000128000000905a3defdf9bbafdeb6ea5ac10e5c97eee4e02be61ec2591d2ddc24b25a99e4945a7aa964612b9e9b713d189edecbc4484b09cb07be1e0fee25592628650a433cf220251e5f598126b191523b19123de521156ef89617c6f1a449ac555e20cab52f06be5711a516c1a5a8ee384f92a47f112b3542ebe8329ef59a82f7f2f126cc4129532b9676e1e62c35aa0e0875f804800000090761f5911d233f088e8564950e9e00a44abf7ee38d9f3a319c86c716f5f5d5e8e4d31d5770fc5e0581ed7eb77c6fc1852d68694d58531e196d7b0df4c1f5f4c03adba60c157500269c33ac6bfbfa8194119f28d8c72f8dcb71863909ba0476349f9cf7c0fcad7ba2a6eb4c8f1bfa57e582a105c35f2d102cc8c3c55cce547cd42581e798b91a919cfe9b060230e63e7a80000012800000090b47f48d7705d943b40047448cb3f34d5dcae0eddbe6facee63a47be6c553d05993b56c4e190b743209b90cc5d1c6b6438d730f6574d89e475bddc2dea033a0f062de77a0779580dbfed8bb88b72bb958114617638fd612f2daeabadd88ce4ac45b93356033223da21007ea847311e97912c3859e3265e4e80652fcc3c69ad540fcfeec721e6f15975362d36b8e425b7000000090a489c9297e07c64ed809ee4caeced45d38c4caef8ac73174a7eab0de37c954774d93d7cada09f49ecac49c91a7bbfc034d1cbb54f6ad920cd6ea128c2d898f5cc7b60b118aee403fd95fc85584fd3f340960aa46ea13254856235eb2bd06d476dcc1432d968ac2355d7a0e46d16f88c52434cc45564977715251ed0edae97b138fa61957d6f2105e76c656dde7b50c280000012800000090472ca1259de4fb70db665adc48d2e078ffa2203e1615a6bd7ef908d496e840610792831911c1211211698481def763aa6d22697fa3ede60fc950841d5fe18c9ee44a832aca695542ebad3f39aeac621e0a7e00e17d06b8c68e0c3f939143027ad7da02a474d231135d67de0085001dca06a2a58465d9735cc047cb34ac4c6a4f6005da575b1f0539cc480425112f6cb00000009022607e80da038c96cb12be40f3cfc1e8742ccddf1cced4f6deed2b10804800f91e5d99897a3eba8b83760c96fa2bcd4daff94c77fb1cd48fd9150114f26a8eed01194c4c5e9b178681f6c9152ccc403a26fcdeb5f514942ef1c6ab3b3be28c0ddead0c6c2ff820a21902125dc1248c661733ea0a24b2257a70c7b0320d73f6c17b8d33df70dd22a9aaebefa6b9971e42000001280000009033177290bfb9728379232076cb2130bd23481e3c6c2f08c3bc50235c2b369e3f25858aa4f602b51a7734080ed6eee6c50ea4bc061bc87e4fe6d4d7fe398e128c3aba41f21bc996d8497012104284453819ae441c80349ef7e4b7335ea7c294aeed601c894ad9e50ee78ce3d59c2c983e1b54bd4b33fb8ecc9fd59bedbb005356a55b804e18694a22a8da183e1563384d000000906b3e57cd71dc0ce4d4f88f4508091b9d2458621d55a3ba0661a0c2abbb9638de58fcc70ed4c56868f18c1332a7f408dddc6a9889ece174233ebf2ea193ec45ebc7c87cdb13dc74321d5f015c1e33665f0995eff8e6725e4f9dbc181d83f5502a351e0daed3ddc2da62f6f8118792142e1034570e83eb17ed07f62a5657d8b140cab7d05527b81d105e309547d13100fe00000ce4000001280000009070059eb6777a0a4c9489bf1328d8693f6bc671499c26738d4361cbe6cd6d4cf83e9a2d46101364b6f9aea23db7d239a4d7fd3f2fdee6d51e47674b1e8694df45bfa875d456abdef873a617a021ca5f672e72d13d77c5d3416b52f6c7a7d98af0c4edb3c98571eac6aec13345778d7cf82b8bd5d7dcd5e233c9f50b6dd74c11a61379692ae24a660216b63846f703bf27000000901337a611c32cb281c769bf831e7dc6f31fb0e00fe3c314dd6f83901553ae815afbfa9b84305129f07a18f215f2466d2ecbca04fc0be9fc348e4e81d35266ed36a294017f46b390a2441c6a7d5e99c670180d4f412a5869bcf79dd3053df13a65655cd9c30054b2bebfb5e3c73178a31122fa53b303af23f227b0d673e66331ddbf0745fab27a0735c48576826aceddb7000001280000009082e220089bf79a64526f276171858ec484facd2687dc10b5a22a044aa9651400801faf4329eac02ab3a7d4ec52724b5062cee499099305ecff4217e8a7c7ef34afec9a7f9f105da62ca480d5972ffff20378a38b1a99225210bc0c7ee61f794c217d8e0dad16c878cbc911eb8dd84630161c32c8030598801cc2f65afa09711e39b7db08ee1cb3e85d967639a6c653d60000009034157362c597e0c6683b5e76d55a677ae433f219c637b64727df586d5274abae43ebab09f44369d0175e8c806a3513ff6c82b244dbaea1d06a70d1e77d76252c375fa96fe5eebc641bd8532901ecae400887599fb0ccd1bd1a1a132d814c1d66c343ce45ba8099207242482cadb1ef3828c517f7ce3c462b8ae370c0f3bc164c415e943d5d477e366c3d50575505cb440000012800000090e0428b0df541308669c6ba35a21e14a48ed1ff30306d051c51a535aeb8acc68744cc4c171305c261ab0b97d23561ea59b1f7c2c12e50efcf7af249b66d1615a886011f90b4c7fa18ff9ac22b0109c83d1e6a0988f2d8c3b14cc3499e566b021c8078920323e7f5a06698495c92bc33fd11de21eeeee4ff80c41300d0875383816deaf1deef2d6d087dd906001df4d57c000000908dba7c9aa1d8ba05409d9782faedd5d1e96ccf1fa6ca9e641543446277ce17cee21dab6f09e1fec2fea2b5bdc8d03c0d5ef9dda9fa71db46f0437c84ddfb585c2a3efe8eb85fe362d6c96bcfc3f9795b0edb530752ec4053f8f3abffd524189327b991c3d2d6aefa5eb377c860c61c4501f18f9359d1a66ecca46dda13d3974305960ce02879c4d3fc26f1dba12e219d000001280000009077785c15f3dd860664e14772df897a1f26b9ca56ebe93b1743f3de1e35871c1adda23ecefe65b3e818ab0a9f3882e8225120263a42cbb59f8c7e8ed7e842e0518e0a4b354aab971450571f0459f4b1392bb427ca2f4c67154489baaf5008e065366311a7509a088377914c276959022d09a631e1a11a32b036c980b3a561602b1fb5cc022dc7fe926097e0373cb00b5100000090854432b9ae5baf9115de2e11dc54b27df7ecc439cab60c916a224cc699e70efd6b5de9b83cbb039e8e69c1590ffa51b3f205b4d63b9bf23e342f0a10064c6489475ada155827ddee86a49b7ed05710751b5967bb71b42384b999696c36be4c88103f74d79ff224e983b54cff21b958191ce961dce230f55fea696fac045249c58ab1164f4ac1836e62d696d8bdb2b0c20000012800000090d5b9d95cfb1cc0ccae74db754e2d00ae1185adb6095e045fedfd5d0f7f4d834f0fe0272e5f40f0a7f6e4037a77030c48f2c60ab734cf16c414c57dfca04ce054c9ae266b651e94f5518db6f2a42fc8ad004ca27ae86f48fd02156fc4aaac8026c9a12dd3c5788f4f7b31a6113b393a23010f60c7b0c1b14de4ea4e59b1ba16c0ff2ba90fcf2565fec41d8531242860f5000000907e1bcfa07b4942bec0d1cf12e2dc61002bbd4737a6a50b0358dc595447dfaf149e7f170d60c59133fd0f8a182a59e6463aa122be90967c671b625d54053b64f6cacda485ff61802fdf4ef013fb67171d1d63c59168db4c0d9baae90770a9c22ad66c677c38972d36844bdee6466cffb9186fb3f1c740eccdd557eda68a9deaf9069c18d3acd624b822672acb9892f1430000012800000090fac793ba4caed97a8d82abf14e9e11a49b1e78f757b6e55e3b5e2a9e50bc9061d98f5b2253a5a4f8b92d616f740b5f872cf311fb88a80398bc5711aa954af87524a84aab7f347eead5bc848f43f312ce101ec8df500ad3069fa10e285fa2388be33d5550b1b6db1962cf380c76adf09d0fe8975676e0e6ba0a14b5230459dc638cd65744dbff41ee31c99cd9d46836dd00000090112d73f7f23f328d1fb1bcb7acc74a73c3a46e611933055d90565a62f35d1c0b493739b2822340fb83967381d0e5b957b8538fd68dc7edfba1b3d12d176442f39bd3bf3a20bca734d495cbe10a19b6f22b71531209c05a2c9ff13638bad3b1513d7af44e6b1f082d7adcc76fcf16806115dcc08349fcd766f2f58a1d3e4cbb017b459fa67405dc9754514f4a3b6c00220000012800000090f6fcf98d3d4bff56e76f2dd03978515ec7b5bb267c7554a42f72e0a749f5370ebe74ee4ed9989438732ad0009d1343b5e5ff3fdeed5e0fd201ef859279ea2e9b2dbae42fcfffd88e0a546cfdd929bd92033c83d8b643dc23d1c4544c6d58caa4b1cfc8d2d00c220a15bc58939fdedc3a009e8c87c008a1694af9424e7dab7797868fe5789b66704489e5d4a18a2d181100000090695bad5a47559a016257457bc888cde434bd84b2468b6aef251a7a1d6c44dcc5155b60d5cdec7b105ebb3756ebfa6bcd213ee5ceb9ef6076b40495a5d8ca7710dda5458ca15615c69c5ff83ed6f3e69f26ce0a4bdcdb8a314f628d1d3036b4a781cc6bf605db34be7d149d5a6d3ee01320cea72c94c070bcc07748dfcff26f27197c8ebaf6a3a25ec3cc44767056145900000128000000909791a7a2bd581aad09db136c2de92ad28d70a395222c9302fd37cf1972075f2cd8814cde5eeef57b44225134bb0ffa1162fef33c82430ee6e59ee65170468a2b41c1f71dc18d2424ee74fadcc9512fd52342efa0f8faa81d9cd0208c6e31446694c641a1e4a7958b72e7f2754dcd8c1105a5d4aca5d4011fadf17451c556421a8f21dbce3916431e1750db3e0240692b000000904096029b3a23b8cd1f916eadfef524e07c325326d3a1b35823eafd3c974121af734b33c68fd8791a27c986f55f1fbc3442332a0de4507885e4651ed98944c075d64d967169f89de50e86761b14cfc9fa273cb39aaf7ffcb57c9866488cd1bfa2aa372bbb62608405afd86146ca439b532bb6fc90b711d1213fae5adfab07348e94780b884ec62ed73dca50fd117c44c300000128000000904f8810b5e5bc5745ba60bce08a977703c870c32e7f8bd48a2d32234fbf4ac4945dba64a2d99f66992e2c4927e6a5bf80e14009dd49b3f56196781ca17e0b20fd839e496ace40296453229cb7c184f8f9103b62ac3ff9c93966f28b3aa0be95f6c93eb276d006535b539c39ba7d4c86a903d6937595ee240a70514d3c9212bbd021a8e0b440417b419c935ac944af17b200000090fc643b9f521e954d3725dbaa85c6a69ef9be0c03fecb82949f151582ed6cf886b4c7c90df7e1fb3de9640de6c03715000385ded6b15c69da80be33f946a92ad1105f870818122955847220e1595fa24f1ecfba04c2fab4e8ccf656ca4298998a6bf60be5fe9132c4a65caaf8252dae0a1b80a15c1c0c7a19bd2e67d846b5a305e7c891794b5e3975e9fc496c440c7f0b00000128000000907853b4750db13e7355720133ea8fb1c4dc286e94ef83c9db3c90252cbdf9775b1b9011581f06b8f90e0c31fdd18e203def67f8c724151aa8d77a68121a3de1167dde8414109d206a718f9cac5aac111d2fb0c0ad12b68722117ec2f0985caa409027c99b03bfcb4a21d300cfb7b8a6cc135c2ba9ec230f3c07911402213c75fd79ae45b964b9da0e54330229ec3f1b610000009093c682aa32f37e44143e9ecf74668b190fd1f304c9672e7222430c9b24ef0956a07de80e427e107f82a1d9ab40e0ad9cc90e03d1c29e3be86a747ab2f46c2a0727deda8e2f790dde8fee319306d1e9072048a52e7b442736231812d7bcf8b7a7e7d61c25a739d67d891c3487c25b53120a30564a3fb580a392e93f314ecc5c2d8e2455c285b122c99c9d711c4bc53f820000012800000090337d85447f97c9534735096c30cc024d2fcf62321e2472b8c95a7d306bb61b051497d169eb1143188b2644833c4380eb8974840ba1654f4ede972f7dbad37bc6f63bfb37f07fec1539015205146d8c7d2b1d05f703212e265a2063cf67edd8923305032d6b8837f042a1aed310f040b8157fd787e3b6a03d24de17d71f7e8313f0977049877745b827b4ea4603c55aa900000090daa9806f904330e20f5dd80a7cc850d83f72d78642bb31e85d23f4dab25cdce8166b5a546bea45a001607eec70e5fb37a8cf938c0f3a7662609a73c41adf7851c13289fc1013e4b792a1f1ffee8929d32449c434f98699fa409f7487eab797aff9a6473420713f3a6ae3f113aa93dbb21b0123a4b3a952eef2719092dc98632bf0e9b818dbb967e4a0c908a3f7250bc900000ce400000128000000905234a8d543d1e361b194e6742cc7de8cf2145aa222fd945d6da3281093a3d25124550411cc4df1eb9b8c3e5b05a041ad363f267136be11e1ae385c93e151249b194ba5e429e1ea766fd195560bad788a2bb6e49a940be6902dc1142171c79afa324341eecd70f18d27d39ed67362c3dd09c39c99d9fe7fee7659ce45c8fddf78f2eadaaa99118cbfb56aa650177e3767000000909e756e9965b95e69f03b298d46b05587bfa9e86a274a6839bde6007740dfd2f818190854b27da547fa448c623c5b99d3343d3114487592bf8c8a9c5d66b207996c96700e8ffc3b6cff57d869cfcd6a0f13642d5c3cdbe7587c0275dc93991c7a7c4afcb0c7b50b2e1200689e89304d232e392139c109230c4c3b9a735fda104e9d66cc091095b7053ee945c500e1e07500000128000000903654219f5e0f8f81f6e951ebb6855e33be53fba8d7fcdfaa07fef166b27fc05657f78ec2deb64c96720ecbec79712e685977270c5c0bc8ea70f09d55689ad2e9352596540aa0849eea513bf24c725ec52bbf60f0435018ef4c8a74552580d7653faea40aef3261efd2893c6ebe021db8043805d9820c8b2b81bccae0115ef2a28fda161e251047c9798f0eb31654168e00000090a734b780768ae0f3793d9d40e42a48bf58422a66d846fc317749192a76f3094fecd275dfe4c715491af1dbd4e35827782e15c5ad65b13f82188bb7965890c26eebfcbfbe7cb274bda87c5ff6e96b57371f91d66850f67062410a9ab4e664e1a3e18c7450f089ed7e44604b8e1ce3ec880fb45f3acd558a0cdd87a4d706dc8ddbd8f005de8970ab7169b69299cd5d12b500000128000000903ff6ee6d06191ac7bd0edf29ef976b4ea52062ef9994ac251d77e97ae4634a8a5b69299586d1046df63765eb2d6beb933e85399c5e853e00ed4be13510079fc92f6e12a4ca24e13b35f67c506e25b9ad26e7494ba2efba64d4b8544fead9d48ed6c16dfadd0edd347f4e729a19f2f38a0360609308a7500dd33f04fdf70d542a0520d3ca051c7314225463c236ebfa0f00000090c952726c8c1da23334c720d4f56874020f86b579e4b771e4f3f061277209e97e64b1a0f37f322d9d3cc24c0166d6d91a141f7aa3b50a1bbeb3cd4d6105746fe2a80fdcd6679282bdca9a5aff41fa379e05387d21cc7355f6052f7c8d330874086dba0f7454f37c6cb56113b8f24245e629e2430599401c7cf3c1bb08fc7e4960c782c705189b87446f975a8009ea78500000012800000090508d942fb8878faae7d8ee45d71a2c61b184be5f64ceb7e859bd8ffa76011b8e2b4e8886f43e26c13663a1413a13962bb7a6a502f5d3d136a2594f7927f16eee50aabfdf9f9799d3807b69e7dd011b7d29894af7eb86b113d98fc9f610d2431e4165342f0cde9e211dc1ea0de30766d92013a812d1a963286d5ac93465ab4531cbc24d519d766bc4d59208bdd35ff0d200000090016c27c704cadb72dd8dc36995bf09bd6468ecac31c2081971d7b261d29b5fb6492e56e1511894e82f14686c9b82103864ca792289e68d5c69a30b846847e671a33e9699e59fe443a9e8ecda6c521cc4067569144209bfcbf034641522844ac799d81fa7a119d56ed0c16b73cdd6cc5c20d3a2b9a2b844106db32bfe27ae79ac410ec3a7879a7c8b983a919605d98a2500000128000000903fff0cebed4d849de3c75c8801b700db60709711b6dfcbad0341bbaa743227cac68db27c686f0132e7c071f71d344f273b24a5169bb0cb3212a3f739128219adaa187570236f7c3ed1ebbb3bf38e7a39141ecda406a8847e2d03d44c67efe6c379f02d7b9b43dd3ab6cc02a419b90f020ecbd1ef59146549b5f52833cbd51f955a399bcac234ff6f566ca809b1591b38000000900ae3d2cf6c75c461f50ed4e17b6ef2219345d3d2dd74d29132ff958c099b8707a8a3517691c57c1c77859d8f141e32add4518b88e37b0485d6bab6174d154663e7379c174b97417163a5f72510177d11089b45e57eb2d9cc3e5c06229a48c16fdafee6017ac8a004c30d24f945d33c8c01efea48ea24ce59553fd29c894b14d124076d89c09f493ec7513b685577b0180000012800000090af144e980af90716a79afcc5fb5f450edcbc220990f32771084a33d8cb1dda7a2b35b46a9be6d0a678d604a0cd08705a336d3b2ad3e35bbd6dee37dbddfce631a4192084b280f666fb140366e9d454f022732a440ebaa20930db3743d686b4694d8ccf460f45658bc939b90352e7059a2d238586ac9611fe7655bbc71123a38f43198a706942fbea5d076972aa79752e00000090c5b9a9b215cdf948b32d39dace1cd8fe899dc54c0bff8293566da6c01c0f0b9bcf30e5e83a127a268a01b201793c2714dcac11a1e8ab24ffad3b1d1cb6af64f7df91476d0d0737b1eaddb2f303f8878508daa74d3741a091a718a0d4a85558ca6a7af9fb3c67e93a563b09b844c7d79c0cb308ac119cfac2d0e08fcf9c09a2f54f5a14e72b39dd9dd319d918e84af308000001280000009067e18873971a8bc7576f3b30987dad7e97d7b1db9d8b7e9c3b962b5f4049394b7b9cce6bd9d8082972429825dfa87ccac8f9dd3e86f62de38c2adce5b0e230a9e6fa0042c493751378f60c56de36bd2a0975835574e15f929ce0852a05c59d71d191b8c2716ec2717e4e44c7d5e323b3249240f5483702f9ac30b10833dc0e26081514aa666f18387e31aa5a38ec997100000090fcc2fabd12293d459a2429ae4ae73ff08a3fc89d54a29d3271af9c6da40c1bc509e9b96f57f715a63384e6d491aecaddf2dbcc576cec513a34a18aa4e75c5a37d8b9e3991802f8b43fe3b9107d7536650eeca460189ba703c44d65b119b0801cda27d66853fc11e7bd7407caf41b3ad815d52daa2ba57f6e7f12b139e3b1561c38b0fb514f84b0d75d0528c0397285f300000128000000908e9bff6422f45b6c4700890739c7b0b90247859429e5abfd0019f363fe6600e0a98ac81f665701db4cd62e7c29eaab75a689820489a4d6f7b3beaea545faa73930f9c9c1df036e4f771ef80b73b3bd441772518e62924233bb1eb83ea5587b2c35a4577802b80d70cce4a2e6bcbe74f121c7b3f85ec8ff5154f41e2883b80f75266ed994286d87c1cacb02bacc039b4700000090b20de16b35ed341b9beffe6aca469acab6c5c0183770d7943cb6aee66b60e565ce3e6facd8b812646e906f5f6bd2102a03d1047d776e20552192237e67fc64ac398176a4e7ae344dfadb65411da0de712a809fe21cde6f7633eb0789cbbba552a4fce337117a86edeb7e8d9908f3c3de125f65e0b44058a07047d0c0394fe55e73a3281cd0701a154da244b19a14214d00000128000000902dd7abf8c1d174e6d2afec69c0c99f5014b7646b69f6b7231eff4e15e54ed0ad8a0f44e86fcd23d0ac6b01fb717b18e6f5ed3bbca715b8a8694aac3ade0d07322116d0468d282f3afafd11c4ba799e3b0759a4aaece0bacdc6b7555075cc63eb1ffc4024d0c11d9a3fe7afc1b4dc0d960814d1d4d3e1c964b27f49b47d0d544ac4290145032565d19d468b73799b46dc000000902866bfd99a1b49dda67fb0df455172f796afe06edd85fb579ae969a564aba24c30b6988330cf66286f39ef29aeb98135ca290a96f72ebc15388b461fd0c0f8290f6a454fd96f81f59900d57b760b3ace13e38c76f99894dda14fd51cb0a4b63f17eddf29615984cc5df18bca6c02272525da84032b9a7b1d80bcf239215ce9aa1a08cbb3909bede3769c5746d43718d800000128000000908c49f2cca9d032a7946c55894a8455367055eb64cf548eedbd1610f276908cbaa4b16c2d0ed0c719b6aa3efe3e1777b2bdabaa45ae4fae1f504ded8eea3bc98fdcda46ecf1144795ff44e3da537cc15f13d9aefea9599266ec93845a9ca4245b5db17d78a0007d3e4770ba8582b02efa1a120ee0c87cc1a156b588578a60edd45d10c9f0b78e7ff49421362c37b9859c000000901df61024caaf3863ffa29eef26999a416bb4f7134d599f6cc6e2279cd48a8491c4a7cdea3691b724cdc1e52ac9458f5410e1057e00496b1a291fe84fbedb962d9fe3c4dc52748dac6a350701a3c22535277a50e70913aeb536d7711ca17804a0e94b0f3ceb605df9bfb5e472a0564dc505393a6eaa381c254557e90cbae44b9cff285ea6b8b9c42a1f4956db300f81b50000012800000090a33a3aa9af0b3cabed4f4712e8e4d3170aae4ccfefcbcc3d731501940b38cdd47e44137a4e82d4881caca6fa754062cddfd85757eb3780cc03167a768e66bb9e2f43b208c09dc0b6dc204f184ccf2ef02e4195a620b5c2b0f01fe23a720feb0dd0b8a86d8b0c9135d0d72b962eab749317c11702670d34c43b5b499fe09b0fabd191eb46afa05350f7b957c27a60290200000090447ce39fe1c9d367600a0dab94d2b3a082a1ebb8ab25e7f42bd0d54c870ebc6163e7e5ec50e8ae07b8ebd34efc687c4131411590e83f1782ba094724aa127b3826a24d67fb8b6898c03f8c717105d3972df34cbda6a037a8f6d2ce61d05792d9f722668a762e58c2fe90edabbcbb67080cbbcd8c84934071761d49f7b7cdb6ddcfee56798b1aea270950d8af64d7173d", - "calldataHash": "0xfd94f65b1ec0868c3600edda1df01e4d78eebeedd7a33d4af88147e78bb5b43f", - "chainId": 31337, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000001fd94f65b1ec0868c3600edda1df01e4d78eebeedd7a33d4af88147e78bb5b43f", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090c82ce217acd65867d051bdfae07e4d67488fb51fbecfed8bb2341e1558683008637541e4f4b767df34b656a0b2c4e868076b64b9da03dac125950bcbae0fc482ca8a9cad593253b50cf89ce0cd40f4042ca203c5ad6996fe30e7319a5ae549a9eb2fdb9224a3cdc56fb3f2d2813ed0b31b62a7a018ba882a208c53ba1be895a291562227da578c63dd90b9be383005e20000009022caacf080b1431cc66e549a0a568650f9f08a8345ca3fba2489837c69be5047c05a3cab25513ede13a04e71e8101498b3991ad0b8a734ab1ffe11d8413a67ed9237a4d32b6ac56004ba3af472427ec52f03d19f9d96beefde24e9ed40290f6f23404d37f15edcc8920fd0c944f8003d289de5c535b0c01adc05527257ecc0562e475c1acf01bb8d6d9272b8a08d4f3000000090091b8f38586b476b48939e1400957c637e01d0cc089055a01c7e06ef989a1c71bb8154f22b985ea6fc01e7a1d1cc0151e2c20c114ba924d2d1a5b399de693748d4de080048fdf410fb053f9f1404985a046dcb0ac18a2101930945b55245311341feda2bf8165b9fcb03acf4ac13e38e12a6b76fc1cb73fff549dedcb082feebaf508679695240a0ede0b50db7e14769000001bc00000090c69827acd9d0d42472f9065d746722ed013168b59cceec5adab279c1be3990650f9599501696c530d37d044a08d35ea3490c34566be93febac8eb60eb5c067d69b9f88cac06ee6fac33ecb99da6dbcf011e5533bc26469aa1085169acf7797958754651b85dc0b8cfe84b8c4e270173e1fca23d1f0afc39f600573bee1ad008d3efe59de92635f894a7ece86e7cd62db00000090585c797c9027ac23f31c5f60797bfc5fecd58678e6fb3f31b780b362cac6ad777be68a741980b1580ca9a66a586af80e00ba6a1f57a6668de4e05e6556f8caa17f358ab2b28fcb6a3a581028c4e428202f22bbbca1fcdba1e524935414f4caccc23f5ea9d6505e76aa62975096ea3df7261ebbb4d1488ef761efb9709bb1939d33824538796f6fbb7775345f0da2f0190000009079a78523baa9e9ddfc828c895bbc14205562cf85b1c33d39dd0f466c0bb93315a3bdf8a0dbf1edda20d4f5dac94c6a5e4f4d32352a0d80dd00d061679fca2e749c64c99a1ae70e4bd7ee9bafa42504c707b5122a24ec5261fd0f60020fb422e48a290bd5a995f220481280f1cb2372f123324b556c2a96d5e4cf4a2f536e64c9e464f14632a7d68cc591b9f132bcfc0c000001bc00000090c503e9499e4f1b5f36a89b1b20a262de732c59b5203ccdbef69fbdefa50d67a971d124b4d330287b39b03b814871a19a69b42170b3013fb1cd5fc5fa1636837f09e99e981c0f3a15967d10859d852b1b2b2b17f8a9a191e9e5b09db478a12f650df21515d41fa41a209644eca728061c0aee02f82cf09c100694325c16c7b7d99c06a8db2ed5827fcd84a4f4902b58c100000090e13c6553502f9432a4d3ab9b16cd684e7b852a8d612d2bafb34de68414d753a3a5fb00649442be37fbf08d09c7cf657cef1b949daaa7e8f6aa38afbb600fcc552e88ed4f9cec78fa8d42e88896298522206af8a346be06fc799965c42df7356885987af6514890a83fc69baf09a0c8d400db4858f9ee56509390d868f40f8fa781d3bdc04c08958684b9645a6f9791d5000000906e0146d95aa8373dca53797e33aff593a77f2a1c3efdf8f567e39aca7f50ad49546dc14e986fdeb938e04afa2059259bc51f044dfde7f19d6ff7289dac89ac789fc2c8e2301f5031b3833a91b63c088726f8546c8a2b73cc53b39d6cfb88af18c1fe2d08850b723a47e18710e8fab33b07110cda4b7f48a604c613358ed425f5a712e780a67bd61002cdd4f00453a7a2000001bc00000090f99228e609a05612bb886f35e6b779a92b7503f879a318d04e6eed55977939c73e11c61a86dfc0180fbb7f388d9bb5b57344d588698e9fc8f2e36471dfea5cc46707d498743c8a5e8d33a7dca9b9bee52855bee90fc311c09d332aa8fb9038274fc3024e17e1c600c1733d300e03b1d711493eddef7922fac1f425fddb11c9acbd17aa437c46d45db26e222d196073100000009000c466756813147805577900a47b7b68e1981f910a4bcbf22ef20efad654690f0c38b7629b978de9dce089160b69974412a2ac28f04ba10e011491521f161ead41217dc9cabe44393b124c0e519fe3671bdc0cd78cdeccf79f1c37b2c4ebfbb0333baced74951728023d81d0686fd69c0d694828d259512ad1ab777221882d4418f9dd07dfb908c3e0b1b6e7c4dad6a300000090ddc13ce3ba498d21585870b3c61325bf1a7a87e8419e8c6e004ebd20b66ef9429b4eabfe15997dfefa62957308e9a00a31dce73e6cb27ad47935c1a62a61a8787bc8fe589294527b804a3ba6ac6ad5dd0723c81f4b91ca436ccd3227b3e45e26e42773843c0f362314b49a21bbd335180b101e51ee52025997db8e55e9d3b7847b4d11097a78589a851a3d9b6fdddc9d000001bc000000901ceda53769be01bd467f63bfa826d55f48d9a47d7625677f07094e7991007b211eac524839e49f419b72d59287d91f0c872ca95dd3731d27da36e2c3fe0d702ce4b1ee87cde7adbcb45d7013d9acff9012f0f24253a5cc60978aa8fb1e362a058242ff3cc3927098600359aa452f02e82c15a5f90ae4af063615fcb460593d1bc0feecc22274f2d447ca870980b971fb00000090e9cdb8f041b21739b639479fb03fc74a9a5447b810ae54084c694f4e49269e2b258417e064ec92a24ca4ca9e814136111482d1b99d9353d5c18256d6ffcaf54ad52be43abe636072b3bd483e0645f29809fb20bf29753dd50db879852b2d2aeb0238c7040fc8d75e3133ae953ca030cb20588a133a938313033a50d5775898fa6247468afb18e414da9ddd3005eb3df60000009031159e5dbcb7d50902eff93c01ecb80cbb99a1a92c7e80d85d7ce6cab3d3bb983ca42434f5f74a020487e62a6facb0f0d988565876f7b63149e8281cfe436e7453cfd29e23ad9bfa9e6405a7da8da5832692e108aed9e2c1590dd17fe781f9111fead1b4b8a80ed1e680c3c87e7040c215bc9b4bd49689171035ba14c77efce5f6d191d2662f0be4ea94e4bfb405c5e1000001bc0000009012b217930f30f5926537288c4b899470bbe26c03813c8ec3ad6806ca82008489ad5f35e0a8c67b059897f87afc7b1e5d13ee6d7d6937b22bf409562af5990511743c04891409e9968b1b83c5f68a257b174717c2c488f705c66c904eb60525628688876aa30fd286ec3f99d100fe19ea2eec8832547f15dc8d4777eeb410c7c8d973d346893e550ae8cc8dcc67c7062b000000905fccb9483fd10ddc553d5166f1505b80f5614bbedc7e8e1c54919eed72960ae891d9296f16334b3d76b51bccdc6112b98bb7155993d8ce452c2aa0968a79d9cb8bc3fdca1ee3e7b825279954cfa177711540c7ba68396091a456549c517bbe0dea6d74fe54e86c4f041df4eeb7b34d691454cb7592e5c5c00e79c16645bffd97c785a72e5f808186b6988f5e38022548000000904f4728104fff0481452d7388ab6d9e85a19504e0c2e165e86b257faa44a7b57d5e5931d03fc12e042ee061117ae5014219e31eba6463ec1c79f13ad4ddedeb989b4ade4c0a7d34dd4a586c5c5f71cebb2f1219615516b76e4535e4e37e443f0ff253dfd4157998e5f79613d077bfbe4d23d07b72bb43bb9e3ed88a249e0ae4fda1f9c97f33df20e1a65da7efae3561a1000001bc000000909745a54e79c9e09d3922083e503b351894a1495d38e52affe4a964b42d85cf2cd8fae8e9bc78c8687da6d1688ca25c2c66467a2ac7544ddedc63a281870c0c7764f983a33ac07ca328f017d639102c06249a08e6940240663fc34086438188cdac7f8ddc80ceb9fed683fcf973520d632b31be78e875c454df7ea74e6279351db4dbadafc107d0c6224c0de216387fdd00000090f69029d7247c39353ea89643aaf9fe47b35c221a8fdac9d594ec4deb8c56c4adac784e3129c18fed8c221fb7ac718771e648e01933941abd6a3917f4e7e603240e1732a3139d53665f12ee33f193575614de4d0b9d1e93dd372def246e5b9682e1083896bd92d95c6d49b5594df371a103cdaf1e32e7f8ebcce450ce75dc09a2a800dd168041c49a24457c94ad8374770000009012a5dedbc21146adc8b435d691080e64b0e0fca7bb4c3b4f1a119f8734bad6df1072bfa82fada3a052b465d6b481f37c49aaefa1513e9727ea222282c7483bcb5b94b632caa945f943504bad4bbda5a625e175f3f076a3ecd7f9e25895aeb93d92f009c7c0b1a3fb9c94210ce77b6f6e2537d4dceec259fc08a394d45f35c75f1a27fbc662dedeaf8d3d90f57773d9a9000001bc000000902085a56d0e3c6ee94cce4af5b9005c1f69fc25b7fd571496d55d7f359b5c7e0a0d56b7fb8acd05960d242906dd6401825a22ba0e28f5c7ad97b8a2a238c077a94524af187609bf470a09a93cbe74cbb116b6e28a379c1eba451b455adb9256af831163a6a6a9b58125b386a1844a0b12197910bcbdecd4c0a1042472c41314da1602aa4b8d002c00b57147c616dc00dd000000903c5d1210643d017fc9d6d026a36c76ef5dcd8fe17d03d749a66d1050787a519fae4066390f97af054762bb7e4539308fc4e39409685b4e6eb5044079e113fe42be7c582620f0bf53ed552f5e80b7bf9b22dbbd1527ca0e57d69c19c5b2134d5d719491a0e4926da16b05f0c06a82c9c602fda89270bbe506451864389ecfecfd17a3d4ee0bd7be11788eab109a54243d000000909c7062e7335b19ecc5ae37b5fb24babe0c45ca746e4e0578b21134188082995e80789a4c1f8487570f67a969363e66c4f719f751fc55e9b64559e32953deb3a97f0e1da06c28f1460ae2645d76d527992ac9e7c7dcd31ba49288991339e25448867ccb92513d5def96f94b9b087575621dac0b5dd4a82922fde213934f429dc103ff0a9e36e7efeefbd8cf124e79067700000e00000001bc000000900283bd6f4e21a1039e81fdd4f5f28543e111e085e2778afc9bf3f6eb1526e931f69c7634024466b76379901e6817cdc73c3482fb63034408351ad77d52bec3a6d9cdb412114b5354927b1063a6ab44d929dfcde8670621966de41755969a811d3833e571c3c98322e5a06db040abf2672940e0fcc7ead81a5ee84cdbb909db19827ff0b6cd836d23ff4fa094ea94fceb00000090e878214ba59ac2d1fd34c845e8453e1357fd7449965a8ebe1c7145186b25fb9b26c008be35bfd1aba0c643209e6a4b066fa380442f90b0ea0559bddc4814f6afa96ac5b3d5318d53de332c50407ddf6602c4c3d02af2a869ba331d18497eddd55f6986404b0b5a006bacdce32423b4ca2107c15ca974c31940793955928c3aa20b89f55bd720fcffa88797412b74e3660000009091f3ac2fcd9252f704480a95555a56efb26bf88574ce18f1e2c67940ac1d47952fe2da4e93670944763bc3164d4eccc6327f3e34328375fbbc7747303b84ab1f6ec1ed4e27859b0022d45a59d42c59b52f54139aae93bc06df93a4a693d08b89cc49721ea40e3480d40f4e154dee2cab00882a3d503fd9c259ee23ceccc0b9ae940fab0fa593050dc611e51146d91e0f000001bc000000905dd5bfb194a2f857ba3f5b479017960684e5548126a5ed96edbda7e209b46c456dab072c793ed1f307566b1adfd97580db5519373a607b3408a2d53f84569734f6388375c249890da7c7f108d4d9babb0dda16ce84dff169bbdfc3f6283c654dd72531c4a6adedc08c421c168ee991df1a325ab9da1a91c0905955a9281954f437616e952efdbbfeb1cf4df486d421d300000090a8b86cb3158fb83781c059abb61cff9b7b77a6300c8025edd78c04056c985503a6e402ec59e799905b72c36345dcf98b7ce385560d93b2c5a2572dd4f18226c1e7f1c84c9fb34ffe6ff5b138503c1cef1fe9073b20d56cce201b729ba3f3dcbc4bcc0d4d66a349d9a2a1cb89d46150c629da894063b52dfe9428eb02640caad56214f9415f42d0f092eaea62aabf062500000090269e01d9c03013e4ee8af1d031d25acc97355c317b4f1f7410211cb80fbdf4adb7e91491a2122f09ccdf7a6aafac61dc00a2ffd4bceb2633ac871b81b28fc713b9f8f9620de7199c7ffd39db7f32d7a31ef017873b36d730842d46e944aee2dcc01adfcf03ede3bffba178bcb4a5ef792403124010affb0d88ed98ac33211887e599cf17d928199fda4f7aef11ee5abc000001bc00000090a510ad1a54c757bdb7857f34d29256be27bd50a277c8a885281c8c1f53b10e147ab9acb49f84a1c8619e05a78bda8b663b6def8cf969856ed542d6807818e05bdb6e19921943fe29f476faf8621e012810ca27a4b36a61700f97f265dc97ebfd67d48f8845e739c5c5313c0baa9b74b01e37211a1c355b9610859bf85c972aaa60c512d120c6456eff468f0382d3a1a4000000907c228b91a884a13b3222b3fcfe8cf880c53af2a2462463f4dfa761ba5530fadc7c64cc44674c91d2e47256b8de3add0d6bdf4acf64a5856bbaf59ffff3b0cc6b974dbc8025779112c38af1e7e34a8271144041c8c7d304f2858f9b39b1f3ed5c97bdc3f8f77db3c0540ab0858e439b861b3108c4f3c264da9d2dec04b5f9474e693d4765ceb9851e19002fd91a02dafc000000909a2fe0ba3fee1ec88ca7c9395810058fcac37d4a59cabc7911e44ac28f528d8bbde59198b1c21914724278be6ed00f819a0b4e028e4d84e461280e82d542dd8e687bb3d8ed8b7153757793e7f29fb06919ad304f9d82d1de6cd53ecb514ebbd57ad7f3e405f2dc7e8b2485f99bb7c4092477b766bbc89f903f7b0f517b20adfb1507c63b4193808c127df92cc468b6ab000001bc00000090004d36660cb1c57b0f246e85a1615129356fc928ba92cd07536fa661d77586eaa4e39daf40cb278295fccc7915820992c51ea8c272aa58eed721e5d91e57a94cded1249d3a1b962147c7b3d2c6f65cfb074be80cd5ed1dad9636a9d122ee019af62db0c42be7942c25c139413288be180fdf155815d166ab14b81abc6bc77e860397368f9db444c5fa67ba352a31f7bc00000090c3d8733f94dfd0a39ccaf3e7bf21a2ef20e452f3700b47aa40bb023a12ff2d61ccb3f3c8e6551828526579b197071648d7b65b48f3cdfe228903d522b30a4a25b491a3ed11e48dcfece3003083de34942bd4fa57bacb4fcc811974961c06ae0c5ab802858fecb039e770d2b43eac91f92d643d51357a9fece8165cb3bb151b8744f10cb220d37b70a7ca7595a54f6a3900000090ad220f5be9ea4cc4cfe07840f00221a41653a3791a7cf659597a79ecfd2471d82647cb7c08f03318afc15bc03a885dbcf7943f258e8d72fa976af8c82f97a8d66c914b8593035fac5e672c6a25abd401197a3961072647c1f733e8a0d8dcd6b7700e02c60d733e5800ae1e983049188f15daa92f974f37e6a6d2aad332f4067b522f1b34343d719acfaa8fe33735b7ab000001bc00000090ea27fa1b5f7031c5b34f3809994d6a76d489bffa01bb09b628fd6b6beaa79938310b3fc0dad58564265bc5d2c1cf8a7aaa37848ebec724351a7e85de290b94b026b5ae07a574575cca1a68c2c6023b9c1ff5607215464eb9058af00dc83fb90491584d5d8f0448d749f6ed16050e0aa01766cbd47b09d80f31a686d5069a284f74c177107f230d1c1804265f677a549400000090f1ad61527802ce61f426f226ede17625ab77437261467326c3b16bc19fcf5ece8caaa160ef987f30fe27c877c0963ee05afb2553fce2acce32a8364ba420bd79f087477b2179b85ebd4880dcb462cf050e577e146f44cf696ea4f43cc08298702f93b991aed6fbc75608d536a991c3a613b55cf0ed7120327d8746f4aecdc1bd41afc5a7af68263b9635fa27cee7766b00000090b35816f8f6a2c83e74082b2cb0922dfabd1852f00adf68cd3aa975efb66844c5928ebbfc454923a73c29da53de60d926ed705cdc02c74c06e84fabd66acb0d33ecee9c73b49b4a538637eda9c32d75ff26df3dcf5b3438044fac26066b07e7fc9b86ecf9549e82d05c1cef16c07a18701453a19f99a4c14a7d181cd64e8c7af89ed5559d0d6e6655f6bc2cfc6f13438f000001bc0000009093ad833e66c5bbe870be7f8d0eb8bc3b8a5a1f81e67427da096814942f43963a8066c2732c99f1ada58f6c4229facfe8d643ee01a9b1995c41462a1a12b88215d83c7c3edd091ed33a1d6c709a1e025b305e69c3bd564e51174d94b39da490b52d2add5325b45e5f51014f8233a7ce5126c2ccead435749c2a545665fe713edb3ccd5c84623d2774fb0b49c3aa64a69a000000908661add249b6e038fcdb2116012b621d239d0241aec17b770ff8f171d436f761988f933dcbb7f9ffa7a5f07d4ebd7ad5e500dc59d7cb24028fccb06efdc1e360ef76b64c577da7e76250c4c1374bd9960d8b0c7a86f2eea8d9de6aa5b05ec0befcadbd01eee591aafb4892fb554787810f0116030f1df558156600895ad2fb18ee10c70fc7c80d19757cf78a0c9ab15b00000090118551b5e76e7947060692f8b16488156b0e36c808a8003b199c107508b5a1238652af999c7aa96819c5115acbca954c91c4453fa8151bb017576f3ca2be46baca5f51e9236db94bfad37268877a05061f35d7527ece6f554535356be70bb79ba07b101f65d17cf2d9eec186c6e2a49d03d5c9b23ba265bf8cfe5e7551121829b142dc5755c89250e48977bcf6cf1a60000001bc00000090e2b103cbae8d11647ba0ac669d7d241f9b8807ed63e7cf84d90bda9b802722ea7d614a7e604d32a28e171aed51b6c454e1bd4559aa4621aa859666506ddd00b1f7854168edda95efbd22c7ecd126720a04859b37a428db909cedf96dfac926c6282752fd394adce120ea37017fa1cbd01fcad546468d60ecb8fcb50e9b8ec4a3fed6c3218d48865b38f17e8ee8e0f34f00000090b1965115b0da685d028a3079878b23a165f0ce1f540883f5b31fcae9a13385964d32244570da2591920905709197b67a6d73186a82ba5943fff1a75b4291a82e53b37ddade175cf93f60a419cfb19fb319eb481ada8d2bdb9f31ee4e6aaf49f785d0e5d15edea1be2a27ad06340b33ff164f48bf06a5f6e1bbfdd4b8491b7d65e45ac25079255375a499ca3c31013fd0000000909c9e70ce2b526b78cc24bb8d1efb367ba559505a0fe9a2c5e1e6c41c9149d7ab26f20a5fc60f5acb0cb261644dc22575e2f71890d1cb0e92b8cf7af1c46327ea95d2ea2f7b0d2c50331bdfbf35cfa08017eb1986d5e8034970eb5e9bd5ae6672eb89e7587feb8a34dd658c674ad5684e305512a9c7a3e3209599a840f4aaafe8665cbe12858ffe80b31a55f6cf33e6c6000001bc000000900e74eb0f5f92ad03d3bb9073977c0a86c036c32c6f7337f0dc555cfd3b8d3af0a07231d7620edb7b141326c6311e8116e4504022371423c400a2df3d61f46333459fe983a62d579afe1f32568d60c2f72038e786a8069b5f9f70ba4e056c57c6da2954ed2d6e91fd78ef56bcb3b962d023e6bb20d7feeeab330e326d985671685669668c42073d239f66b235aff8019f00000090884cb2573f2d4870f1753b2e075f774b291a361ae0f7ffaa13a63c7c880937419b378d940a7fd42ec496d3b81763c7ccf5cfc70fe57fbc0e7f4b3ca8a2cdfd503bfc533728c55ad92925e6b110db2b5a25d6b9452b67427b3e784455a60e52dbcf20612d9f99f69f09cef5a3003151c607ae6222e7711619683460acf15fd1e3b5843db842bd254235cef67a00d933be000000904da49a0fd5f6998141398e4c15a31218907592acda383bdffdf78f5b1651f59cb3ab849d0a43bde2d0f9f85a1feae707f24af11a5c82f1a5d7bed479107a9f9b2d8712d9ea45977b16326b5ec7232056263a2044b72853330076132dade721cc6a52ca8accfcc9d77f3ac3623627b209254ca4e7bf283dc1b6139755a3930b0a35de9b7b867bf9bab0b1dbe4673fec8f00000e00000001bc000000903dddaf263e1ff69863499ecb64f981b760e968e9a51c8fa17448eab90f296bd478a3c6adbee1d08084ad35edeef76e00541b1ad593fb8eaae0eee97768bd8853f14404d67732359858130dff8e6542f91c573a9ce8947a7332acd40183f49c959067fda171008296a6ab58e528070a84139ff13c022db3b653543e8d84d0a70d07ed23482ecfaa1f9121ec1edb7f2d65000000905def14ea824e0eeaf52033cec44da6ffea02928ef62d7165662ffcd329129ecd226403320e2a99110f6d0e0d653cbf2d1f3bf4d3cbe37fbc56e37dc1024d4f03209ef00775dd299bca8beb1f6ecce155104cb20539e49a00460bee1d764dcf3170cee8d541f1c92d0a1059878af73b75243ff91fcd4f476041d4a620c052e52b599a0478b71f34942a34a3b7eff2108900000090537817854658f837132647d5e2dba1be5123c210d6bf695d4fe7589a081a7794375120d435f054e71b1e8ec159e43b1ae276bf547db1d0d79ae51e5f10ab80d84f6e03306c0e7967170f791807dd2d011ee51c6964d36cdb4e78db065f92248ad0da71a11a3540ee9f2f68a5008907a10ec8eb8de2ac49da569620b72fc30fe518f04e241e3c32f34d408c8643cbf7e1000001bc00000090e121e59911bf5caf003ec5143d52e8defd82f0ce04c4ba6d29b6a7c228f6d39b1a0357029239d04c12450e20478f18c076e7aba988b6f47e3bff7ab6f5aaa365def884263d51c72d881e2258132633382f328a908ff38c9e49edbccf50fd611035dc8a564dfd27ba97ff971f7d4ca8030b3974fe31c6c8f82c553c3cccc5220ff765bc27dec47237e6556b899549978200000090293de6fd6e1dc7070b443a402271067014217e7195bd52c0f8dbe15fed3a49e440f6bc59479f0c9841d02ba21bfcddb1e685eee096a0ada6f7c9139e0a44f68a1c868188976afbb60572e94349bfd14f13440c03792cba01ca349ad82d13ff5e9c2c1dcf5623b9a29d08011b163db0a71f525a0280f83674a2579b8e2cfa8dcf019ea13f5b8f8b84bbfc1853f8aa286d0000009016dcc061d764ffb223b7eaf795fc544628dbf3c0b6fd2a09c957d11e84c4525f8a89371e293153a86d2c358bee7eea5c047da96f410d842b84520754f647bcc3f289eb9e54759692a817d8d35a7539531f9813d1a4cfd87e167940de78305ef21385880041d94c0192fd13892db515e627eb4272a1297e33c7d621980e33f11894b266954a3bfe2a87deb0cf0384e608000001bc000000909c863092c14f576e1b25303159b3670e37f9977f080193899bf75dfdf8e8b76121abec713604481443cf8df5bf8ab961abc6a20eefc36c7545a3a43ec7f3e27156ff94e23d20de1f9f9c96330589d6be2e26910072932addbe5f70926f9251f0cdb50b8bf587b0235df023dfdbccab1d0b55def707661ac87b447e677b63d0469bccaca204ccdeff9fb0e9f811f2bc730000009052938c32916098845bb8236cb69ec25b2141df66e9f610d5ad822e0278b370da9aa38e7c2d7a65a3cd7e7638003011820969c043da9a8b0fefc5dee471a0ccc594a3cb4ae39665e37e49441eeccf6da027a575ba10de110f3a21d2805ccb6eef4931a4e7106d5fb12d8e40647d7dccea18ce252be11742eed1f6b02b02a5a07f98fe9291abfb8c593214c3013ba07eb8000000905eacd5f8140cc77c95cbd61d4bba29e2829b37d3e003e3fbd85dcec16f5adc413532da6bfb511539e35d0c7ad6fac2ec0292923570211fe90861756c28eda15d54e48b88a31af84de9d894cfa321b5ce25e58245e78aa5e9fd4d061a86469995055e5fdbe240ed37dc0e7975282b6a32150549cd848c134dcd40b9f831b69c7f8db16edf7de234a8dff26a7f1562c1d0000001bc00000090c62c6090f6088168a866f718292ccc20be71500981aaf3f08d0623314b9f048088994316566f160919107574c8836d218cb855c5879b2650bbeb29c8ce6979f8299310aa1c04189205181247a43bab392a634f4aa2e148d83c54c08ddf20defefa6ed648897f0d8854fefc05838dd50126c6366559f7bd2bcf426f149cf0635daa42cd7f133628573810eb4d12cdfef100000090963e00ef51bb6311a6d600aaf4750fac033ea806493aae447ddfb7e0ea97eddd294143be20279398b50600902e3c3e3136296c7ff50b1397e3fb35e098c06952b7938d0e45bd78b77e149737d06883ab0ea2e423db7748e8bbdaecef7895a2a774aaa2d6e20b76a147881fcdaf10e70200d27e2e3d9f27025c34579f6b625201c3a124781567f42526cdf84fdb44864c00000090054d3076468dc4929c25f40a2d198673b5aca36aefd5243d8e862dfd7f513c949f21594888181e18c4fab12a719fc4e18cd94d4cf2561b1961c168e552b8d131f3ca9dbe79c6cb3d0ea58bec229aa55d1e39e604308d92850d915504b82358a851030a728c5a1d7a615dfdd2ccbf21201f442a0ca940a8216d1539adc9d9cb793e376b756416deba434a8b8875ff8c06000001bc00000090da200079d0b6802722baec203eb2c1d74820ee4cab049e919be213b68b4291d273150eefd632ce262c22774e5b36ddac18ca159e32ac1f2d9eebaaba3a9c9976aa2204e70a761566228de3a0a9c482cb14dbe23e1555a9e8e4d2da32da4ec235645efae686c90a32dd6992afe02e910e04a8f3b01b93ba8f6ca8d7ecb10fd6b6205ae8afcd1e635141a3ab8c27944a0b000000901154567cf8725e235fb9ea18db8b9aaacf56a069cfe98be63cd4a273965d2e1a4b8cb21e444d7635aee2ccfe9d32b4dc1da833f3993c1656a8e0a96100f01d764b4f2640441202d33c9eaafe82cd212215c181702cd788e9ba09a7802c56130f08779d42f37973a1504d66c8f95a820a0d49fa9a8e202c02e2aa0690690fa34e998e639370d2028aceb8fade69bc8a9d00000090cbbe52a7b1e83d6ca31646559c7bf9dc8ccc3413cb241e34944786e807e150048263d6db01f259ef2d7f39d97a9da228055a8c8d88f1b797cbd6fb1b20aefda50411ec3c1c3ff0d6fddc255a1f38c9491a346a70a7e54fb112f7af6c34b795f71ae204a35f32c7761f20d84ac91e361e11aa8816923786c786e103b30cd4c8003c8a4edbd9d5275ee950843e37abc594000001bc0000009044898dfd487eb42c5582b15f06cad653d3720af0fe04c0c3754ae074dd2f7d3fff2e5eeaad8fb61faddc1281c28558031764ee4e8226e19679b7e83d9f06fc91aa6e92c033a833d95691c92ffde00365081009388fcd80467d748a0cf456cad312f4f965cc4ab65353dc307e55d5adf101f2411f8abff5ef890f8292b93fbd2880b426acd2eff8c594631f3f169edfc400000090b231f97d7c1dc9b8cd1efd295bf71f4255af53d6d66824bcc9fb84babcb84e6e8829036b725c8ab239a088e56f8a81863bab3ea5eb71a2c8cf4c686428aad63716c8703ec4bbf7848af300750d7f05e01e3cf6355182e2282eaa363aab307d7561bc44f866ea058a5222d1b521d3d56429f743eade5fe312a7727dea048b8addc808c5df534228dca0b5e0e8bec2ab410000009069bbcdfddbb332bef5fb899df0bcc57b4097819f2fce290742204754857d6019aebcb86e24a214a8507bf445483414d08b5439664f733ce8cb3d40d15f14768a98f6d6cd3cfe301445296179fdd7c3ab28dba33a4d4f9964754faee53f031e999ccb087c5acf1d86c8761f88a80c72391d0612b930ae54e0e99807324c40c74f9e6d852829f4fa44c035ed68c750fa6b000001bc0000009006e3d7298231e1bd88cad3da296f9695b48051596b3e7aa6182aacd453f0afb9169915107ba13e1291340a41063e9e329f145764cc3fc91e593dc7aef2dfe1dfa98ae9828c6fa110b442f5bdfa589046241fc27ecafefb1e9f23d9c77a53fdf9cb9bb4851323344ced29928de8a91d5f0214b30cd74e5b9ca05630e38d0f3e76cd244a9ecd414376e92c63bad4bad3440000009058d750569fdea73f153b92dd5d6b5437c7f73bfdc876398184e87b47dff51be3d2329be57524fd0634edf3ef1458c5e28db7c99c2bd9b87dac167b12d40264b3920e88b0ead3dc469e8de7cfa501d53c28202d314fa790549624c60452d7f689b87db4e773a1c40addd83ed8284db29c0952d1fe5afeec6165037f7294f472479589ae6063429cb3244789e096de8f8e0000009069d2ee734461b4fdbeda2f4dd897c9e437bfa09df130029a5e78ed44734592e96ca1867daf9a5ac05e99ace25ae57c0e4eecbfeca2c8564523ab63b6469659095f93431a212f2e06a2052b7a157fa0e4159a48a422ae1ce63d5d5c87133c53d6e39ab7c18f5da562cc05e9f44509091d28f062359288bdd67f5a445fc87367d58eb0cdd3cc5f3a8b0aa83e657f5f26f3000001bc00000090ab0ffb93f341de484a39da29e32f55a41f711f57c75fa0f0fe1129704caac1f07aaaf0f90ffe297d378def37017b31a830a3a620306e22a943fe7c1ccfea3a7ec7c8bde0dccc46136d3d6fceae942e5d1e7fe9d6e796306bf7dab1cc5eb804b3fe0ac38017c3ab3d79608bf04b30c1672e86f5488c78c6b13718dd6a0bcd8e6dd4f191ef947e4d5e5891651947df678700000090844447ed79c296b401790820ef53aa7538bdf9d728976df9dfbeb8364c657b7efec7c687d547a78226690a0522f11e9c19b13e01ec3e05c73f711a8c3ed00be79bf2895544e7da381a1ae786b12ea28411b0b77cb0edb34a49617192bfa24ea2375427d2951ba60a7b759c34645d99410eb50d997044c048f20ac29c5505a67666467bcf7e802de144c77104f14f99fb000000904701efc1f29247742d14d6114c780445753a96afa9b019c2340b408e98c037767db8c992dd7e009ac93f96219e0253f9a05b5d9c8cf93e8b2c0d2857ca1a54884734c3ee14fdd3da7e08a4ae776c6b9f1df532b7f5965817e5a4dc8355315406997fb05c206dffe2f5613607962af58d26f33734ad46fc0ca566c7b9c9eb776018ceb91912e62f4b7226860130e8c0c500000e00000001bc0000009005c35193a5be3c9bb62a5d4cb7cf65c76f8475dd96fb772124cf36cb4c91ec89ca6ebcb6b7337ec44d730b3d75945538afaacd60f15013f0a0a5dbe984b07a346cf5f653ffc6a47e1aa694097a0bb36d260e3a379e98a7288b706bad10d8f32111a402de58a48e178224e9b231281777172ff8d0bc40d1cfd1a2080c6b16be62d619973dc89cdd51fd341270326f5a8800000090abe8118a97a04e01e77afd9bf98d3800b19daaadf7535c99bcbecd3217a8b9aec0b7c842eb5757d6fb5be24ea77881d9967e8cb96227f317e537aec38b6101c9683bb45eda508c3c66d34d8cb4a9c7340e154831b30d96f5e3b33b80028324276ece9377e282eb960617147a31d4a9251612bfb7fe8b92481cf280fe0abb5ed7812b563b65f1a14a025ae20688f1e93a000000904918c080f121b38b8caac5077cbf743186fab7f80cfd37d25b9e31e059a4f63cd98207a03df01c65d1a213a131edd0b2d33f9a661d1e06612d889e28c3c6d78a8b458e167618a038da5a5ba8d1ddef5f0ed340496eb32983bb514be8866bbe0a1e99c0b9c953d381bc0fc2d139233ac7005e8e8198bcd9b5c51406ddd2a8f596daf09a744318b4d3fb43f2d331f57d32000001bc0000009028771a54042dd31adcd2089389dd7d308a80470b365d289cee30db863cea8e25292984c83f67e277957e2d56261aaab1c23b4e5dc595f8f4498a536b01e390852f8871cc9b85c76de0ce31e290ed0317006063f808e3f2aa849711d3fe085cdcfc88bdfb7076f7119d2abfe3c7f9acf02f9f5b3b1aaefb3e9ae95505bd79a2b8ce08a521c61fcc8b6c5314e61ee25dad0000009021a55c30a7f2f1d8f133e40ddeef012552df1e8b236c9d1e781d5a1b9567ae8240a114fc0b65db2aa2291f430b91d7089a0b4e82329e85c1e620a7f77efb3a2866c65d870804eeb9e95e241a8c3d725109319530fa0d03c2c71d4618bbbfa7c4d03d92653f23cc5cb041a0b3a9fbdbdc26ea98d18f283e40751c35708145915e78bc14aa32ffd5c20ef85992c8fcd6ce0000009017d7ad058785efe41741578ab1d881c9943d9914d75419d2e53f21a0d0e0475bc1b0821dbeb00d5f5ab87ad37bd7c4c1758540b2f1a92730854deded08e4f002bb6e1969559f119d263328c56d26003d0ec03569fe8d16ce3fa72991d39d86a1f9eaf3346b7b6a7a325c99bb59af6e341577b3137754f694d765a4f498ea89ebeeb336143137d0d08c8eb13ef7aa436d000001bc00000090c06d4f31b0028c97119ee119644e8b83a0e3d6c04943881897428f75efa664fffa57b261f37f7e41315056be882ffbd505e4c90b53528ab29e5d8021c3a3ea99b6b77bde898f1954ba38463da4a0b8e7113581278d1ae3a4e3b6cbc8a189e87878bc9fe37d6acac9d0cf7c0c6a65df5301aa80f19da64db37515699c8180c3dc6b051fa1b782d027ddcb058ef121c18000000090c0b2d0515134bd91303e321a23992afecbace5400b9595de9562b2a632fd93901599f486fced1999717ebd3f0f268f3c2c8444848c643005785d38c88a61a21549c2c0e3f176992922215a8c80b6b1030e82bb089992455637ce666fc732ff1019510ca5b816e9d73625e56be9ccedfd25e4f65f60a570d16231fe78d09273fc30cea7ca030c7886e02c870f3858b46b00000090ff954af9246e34582970ba696413c31d93f430b97dec527a593eec9a6d23f6929e7444c848abfc08bb57d2d35eaa4d0789fcccf5ee3c3dca8b353d35ef54a318bc1f03b6de479a83ae8e78afa1aaefaa2b407c7e0e7a324297fb76637bcfdd88a7c9c1f4366fdd61004523648cae6b6c0d6d0a1ef1f8f0bbd6d52ffa34d75dc5b4fcf925836ca64dde9ee0d15b4634a4000001bc0000009063d6d9f2e54a19efbdde2769354d45d0350aff1bc837173aa69b5c85a780d4ea1652cb1490356d38401ff831cca3c467dfc813d7a9d200463f4939e27b96159c0bbc55d573778326b7ca768e1a685003258b296e0b6de102c48a6f6e4211847a8d481c13861d61f9ce3b018e75324b9127d85b1b5f44c1386c943a7fe4e362109852d9514e24b072db950fc884cc743d0000009068fbc5b3a978da992eb2b5440ebd094349e640fb361aa4437dcbf7e9333360bacd5623b649ec3d624914a21fd53da3b17275c381fc9441b01d81043a7f0fcbd6f2a146070395d524bacfefb4b2161e931af0f9d81de971346472382d5a3fb988cf6cf0a5af40666c8b4e7c73b9c73faf210a6b807fdfb2e8c89f02a7c61128d83ab002a7c04afcb54ae7ab9a4791a8e700000090d9719516a3db0da03fcea0f5b95a2a63822986bf4e8f5b066ba84510435885c1ae9dfd73ddbb6516270b3b8dcedfa908dca6ce8ed45edc8954f49439406f0bfca195e532a345dec338a335e63d3e8efb1c0bdcbaad9ebddd156e59da0a88d582455783fd0ec94f316b224903e84e88a5138427ab9551c85331a8ddc2d8611f815ef4a1b45ebdef5a02fe46b29b2ad03a000001bc0000009024787a231fe56f3450703d8149f5ce3feecbf8d4b41b33410933459e68d07bbeaf999bf2cc3c75ae2cb8f083785ea0073c207afb58268771c87d255190c2cebd90c1fc49e0ac89a320b64280564ff0ee0049f8241a08905eec26e94f08d95da33facfb481fecebf6c08c4173f5f9c2ad0a533a8112500d71f12ffe685e4a334d6bb03ff86b871d8a21b3975e5d45ff9600000090999154a60d34acd1c2734df1e64cfa0a3337d9d5fcfaf9681c184983fc760b8b485f9f89ba1623e3ed4548ddd2f68071028ce2475adb7e3538bf2fc13bf276560db5602116f4330d8fecb871d0c6b47a11e0b8c5575f4fc67ee1e50706f227ab80447eb7e48d0447c29bb6f85ad00d59244bc5c5c0d30a8913fa33cc3d77ad3c1474ced301ddc6534aebb26aa9f51f5300000090cefccd65e704817f1fb742e0f446385be9a76385fb18359a980e39b5aff74a7d334dadb4997c0338a3b59d1f520ebbd84388dcb4942e16c6edb52c16cd15f21c3b742a26eaf5c1c93d6011c6e5b5fd032c65effa7ca60525902234a73ee74dbd182e1d6a69e753a2fdbe9a97944ea04f1ddb4813dfb1e50f24f3c087526520dfa5deeb73ce3a1440b8e085e61f85928a000001bc00000090b068376b8e381f2f5328b64ed5f050d1cfd04ccfbf3dfce557d8a5da3718f48637a7a79b0b912d84f894ca35a43b72fb2b6ea4e14d64dc5583d7390e4511d43e2fa07c93d40d863f85995e78ce15c6bc0530a5db11a312fa8a8193598912720a8b84fc340d528c1b7f1b59c1dd3904c721e14e709bead1a9c87c3a07a2acd58219113c86c6de754adfc5d363ab9ad2df000000902e61bd8191b991de14f3f9fb63bccbbe7c6602e41e86176ad9f704410c0cbeb5e122b0790e0bdf067fd13bba15f05ddbcd46563d9fc9de6ae79302de3cb3beda2227a6e42bf3ff62aa1354b5ac74cd130aa1b4a2428299b3df27828e349bc9600a099efdbb555257d148c5e2c3bf70b91d2cbb29f72e49276c0c60b1dfe2b5846212b3b1475f1d5d359aec6960b4783100000090745864834806d5d3af1382ef68aaf7726f3635c6882a21dd7b6d8d8d32e9790a6a5199dc81046ace01f815d4e162c1be8a9257a4263c46755c0a8b20847d158a9f451cfc7e33cc62af82f890089fe894200be7e9ea86dff5b6092ff52312c7296e65d98e720fafadbc4cfebc47df33bf2a322d3dcfa63ca036f3abb0039875bd46fa5e0666f4c5d5e53e0a72c8003e02000001bc000000900b2c6fea0480d9ef20d8a250e78e94ae5a696881a8bcf26ea63ac3eddd33adf899faed5d07e4555be1a41cd0b924b2ee290a28a8a3bfa3a58ac90edbc4390f638b6520c30c1d11f3316bca5dca8d8602107cf842600dad075719a6e8ce0ddc9814fc08568cc6674e46f0fac009842348117d89012704711fd48f7cce086193eeb70a5488672e91caeeafb2850e340ac0000000907612d482782f28ab347981169e91e687f26612bb77c0258f4c8dcca086143c8cc24ed08d6bc6460e7263f1670710899ba99d8bece4fb0746f0b6a33c2667087d46825e939d6a5d93f48d6099f020670c09e2ba17c6c82d5562dc8fc19b32e941caf333ffe556d769e1db2b6bc297e3542d106e5f2e210b2d1e32da01f23a67901b936bbc73eafb37591ae24391fcd5d10000009057d72d98c75d5cc058ec745465b291331a51686e43e0311d0d2a48a33b62ed65902d8a51f7f122f381e436ee0ce3ecf6a659a67a556a8249eff694bdbb8d257acce45e91441693325ed73d6a34a4c964220f1e4191fadb3a4943e977061dfe7cf6b305eef268662bf8755db75f03e9fd2aad4e34d5cabef53d58660a6478b5c5b7e6b637413bc978c69f521bd328e340000001bc000000904b20f113305e699a0cb5140468f7e2c63bf0ac12ef905e6e49e0c8d20c56cf6ed595dd4e58df780c620bbe3080a411d12db033d16e2472c604eadb8b19aaa3e126e86c1ebcd7cb9578e6c0450a8d5576249e7416f63edf9c0bc3f09cc1565ba0c2ac7dd65b645e5908b4df79d22d30fd144649e1340fb6e3775d2e88ba0e199fbb5c8db3434092d3b6554f9d897883e600000090ad523c735f75dfad61a2ba937cd03dfcaf1f9920825510431ddbde02ace7097dc2a2f01081017d2dcb4b6f7e396c7cf7e1a27a7ca63fb37037cfab9f560bbd42db89f34ecd004929b02b673489264a511bf86a4f8a503556d035aeb3aff9f392ac1054c065bef3632070393f8f4258d50f446d493b9c6baf6b26db2516b2f6f4a376a44dc4506eaa563bdc11e131cb4300000090e2dc8fc73a7448085e3e3af9cf66c50f70dd680bd3054cd6e74f10badfe02365832acb6cbec6d971a99f75ffe461696e4adc40551eada160d3b19872a7be123082d3ac8c768bc979de57b3ced05725e715542980094d422e979ae4f8047264da5611327ec5d16076556dd61e96ceed6a289db2e271a0a333ddf7fd5ead7ddf1f13f60b697df404692af86ca64900cc82000033a000000ce400000128000000909fd76054bf49b83e94c64dacc5320c6b029e1416b54d640e0bd0ce33dec6be4abd53763db4a34e887b4169157abafca30a7e613bcdfac55d2d8afe0649d4d8e5173144140df964227ec124b31b40418c1ffc0dd0263f89c1e8cee056ba71aef619fc235845c4f1c484d3dddea73427ea2aaab56123f3df938abd13cfbc8be102def990ac27febb17b99970c84841b10b0000009012991997db27bdbf84f3c63d0d2e1f9318da9dc94895b7d1ff789c972ec6b70a28ec3693cefa702f64f4b1bf7863b07d8413c914357a62010aea2273d13b28588deb74bf4f1061c2b5fb4195edc1143f07a0f93a02ce8b3b56fea4b843fd08b379eb83e417769f53d575152067962356098200df293d360425b5dbc8cda5d51b921287f4d695f54cebea811f92815abd0000012800000090889a3cf0e73c859ec871e4da00561dac08cd21c66fe9f1a1ce3bb7a6f1276c13108c9acde5fef2bf2849569e67160bfafd9caad78a883beeb0e3482cd59727c667602fd8a89d2598fde2e06d8b0fa4fd151b1cd99a7426a8565d1a2f414c193a8ee7a3b7522ddfb58d0b10f691b7143f24f6c8ee6f7b378c2aa057edb067e4bb93ef1f0d021e07954d0fd23946b495080000009003b53e2e39e00e68c7da9d99f32fd695bb8b0c8f64857f5bacddaafeb63cf985a676c1523270b07f4740916a3002d7def142651f726a3cda4be9bc499a665f91aea2adde7f4f56a6fafa37f40cbf138123eff9e52105cc5393f2e6e622d2d830e6bfefeab08f8ea50269839514fc2d9515055ed3b390d273c56cd56776c0b4938c752fc3568382dffa820fb3e952e68400000128000000905b078133c6fe8869d18df969a14e3c31cdafbcb098ac6425b41f920f39dad924d66db3ca975d5350ba906ec5aa5dcba4d5ed8ee1b1ecfc132ea280f9f75cbabf6e52f407402d3cda145f754594e280722b5311251e8a8457cb86f831b11863246376f401561c5fb82347c0902ecc715a14313d3b7c9d3c78fac17bee68845c3c62056b2c749be2f675785b2219898b900000009089b26038fb7dae790692854c4d534e3017b526cfcc73c6b088baa80fd9045e1ea9f4ccee5d33c2fbe42cf0ad0efe9c03e17a0176a0ec36af309469f3a291ae8cbfc76dd00c5db07ae3e4fbc7e136d28d2bbddcd237c06d99966020fff68ba10b474b1a28cd3dc9e2ad5c6470b411a891159f890958eeafad2233977d5a224835a102ff0a830cf6e091ef4010fb3a77fd00000128000000904f775ac0472305ba9219295a0820316a8379b4d22a20ab97f89e3d6dfe4f1696222802811a43c148b300d8b37b2fa51cc5fea05a1e939258dd4c2ae01cec28bb3d4f229392fe9ec98f8f75a0667fa40026bde99836ace7c01a4b929df6f8ec7cd3f9f9e9303f0228647d0367bf1eb2fe114d58bfb74131ea4a590db0458179374faf16691e3f2d5134dfcccb3971be8e00000090a833520a643b0d756c898be60668afa83a9a2b46b6c07b828c456326795e06dfb4dd3f1bb55a4c41b9ecffee13b53b7284fc163498b992b43757ab22d1fdfbd5d838183e19e77cad46365673abd706ff10aaf03687a6e4c86629d482f0a3629e72d11b39b9e31db2e70db398f2a6c54e1bedb70ab896f15a50d3dea6fffe032c3a7d2cb87ed05cc4f399140e0e58509f0000012800000090653b80ced54762878a7bf1cc9902e9fa8843aa78f72df341214b0898a9c2e7b61c9e29e4c98239ef907e6e157f39644a5825d487a1807f181ac44b67d4f6144e7882ebb7e882160d3eec6187cfeba523035aec654b7d4bcb68c090526cd1e0d6230d4b868274e29db9c0229aa16c00841aaf93c35f53fd02dfe8967c2e53df3af6dc643d7d9b87b2f046831bb6250d760000009050d15e76f1c4f7ab37b9b5fc055643ed16b62a130149e8cf34b736f6bc68c45054aed9850e6ca127c8307b683e6935f7f8ee2c62b9812006e77741e354f6d388116c1fa56a5e362a12d397dd20ccd46b1290186acf49da7ffab4223c3b80b480c51ce1515f75e3c6e849d265e14b45a42e18108070ac195d0d295402bb27611f477e90b4e59f3935fa1b7090fbeb2722000001280000009074564f0e383799471e19339167f23531eab7c40a0de589223d9a582f44d22b0855ea2aed1c27b494bae446897e037e7c2cb09d3caf2884f3e44f9d62133b243d3f02ac46112f13826317e6013e8b36280d821badb4cd0daebb6991498170ca9f5e69460b07d3f2c52704e35d8eef1b06273fa13ea9b556e19c3238196f7de9da10b7b241cca4465a508def17ed65378a00000090da5c2fbd386d2da844fa2e6c0e527672a5614f90f9cc5b1fa776fb06617d0fa5bbfb4d225fd4dae445e2f1d70a70ee3691b8a40dcc2279ae89ebe26171ba43d01b6928bc6f63e82216795422271b66d51f3deffba2fdd87cb7ee02a5094a43cb0ecdc0d23d386ba36fe7faf3da6dab3f0b859af165d212a2d4ad524b8c4311ab9626b9c8b0343c38aba36f0d52ed52610000012800000090f2147a59bc227e3ba13cb2f433e63d578c43bc8825d1decef06b00d035ba6e4c11b2179f63f57983b0221eb10ea9730c284585a96cf92c43a93f448f2fae7ed1262e014aff7f302bbe1ff6f2b6099be3226d943949112adf7aec0aeb8e3a6aecfb7cb24957ab8d61b32264f12a1586f10c06cb30605097a04943f6095dff0e609f6d3174857774ae65a5191f0e0b81f100000090d402c489465a623489a79922169f55e858fa0f9acfcd7fc358d3b281beea8489e0212d0edeb4515a09ad8a18837b16cb358ca930b17c8167026f218257b3c6f30d28e29811892290d55111bb1f1d62702fb52fceba76b71f9e27ae0bb35c63ece69481143f922eea2ae2ea6604fd08501d282a8f9cbd2e7c1182c0800f26488db641bb29953d32bdb601aac57286cff00000012800000090b8455f5c2c484bc86a80233a8e1c44966ec4c9c864e793f0c85f94040314183d3716e26be0922a1c38ad8226e4d762ed0c78fa597d158b2eee77471ccdc3c364717a07dee5fb37f85622f249c59dea6502375a04f0960b1c0e0a8441da5b76790069804622df111b02150e9e2588ce9b0c1efa927df4588e029a76121599f7a778255fe0603212565839ae43dc0a235d0000009007c1e7d5246c6c1b4e367314f99610a6684ee39d814161cc0cc86aa41cf830b9efe98762926c068064016c442811aa905f62515978a15da812bd4ce0fced34f867708e29ba7f2f72931a4a8c7b6b2ad825adca528d3f72896462510725f607eba7d2e2a6529de2f5e5041c29d17538aa27d4b585e21c70a9259997ef59205304dc646ecb4815f9f5a4b32930dec6bda10000012800000090fc483235f5ba461eb126ca8dea49474be62451ea58b40f75c9f16666309d92e18bcc496c0a670465c94d2dad8da5ec180ea0048c00ad250e82813b331927f9d428a1146b3f1d238e526bfcb4e5e40a90229492571dab6892cff444c63c979aef3721c6b5afac55fe2685147c8c07fd142e0ab23e8bc7e6ed80849b868aaee1c2ed6be18ede3135c85f95bcb0b6451a44000000904d876b2824cb5f0a8202c2bee49c83e6d26ab1cfca66a57364639b4e967b3d07fa6e9d9dad3f471fd2a8fe4a04f78c2ee38f8da8954487078aa39393052505b936ff0e08fd859d857f5866f496bcf53b16e8c79c5b2852d63c60f66ce2b095d49812b9c887d3894bf12a3dc825f7db9b04d9002028de0305a831c293c5cd9d5d4c61d79dc10a6acf50d6bd38ad7719ed00000128000000900be4d039e2da44041e40e1bf23a13461a6480dbd3e3bb2f28a9d88f8c89a2da4f13fd8a7c084725caf2c81f2945d531ad4a2a04b5f282c9567c1286f5c25908ea82dc5cb21036f82c3af3342a6ac22281b7d5acc1a97c22ef10caf47788540af27b367f116dca0604826885139d22ccb17e86060d099d4a4e55d8cdfab428fd6f809537d7c82b2e92696edc5a72957c800000090852a3e51f008717089808d3c410c7271dd71a894c7998a6a01404bcd92a91f0106700195aadff75c1ea1e5b94bbf15eed64ac8ab157d97f6473e5260f003e40e54a443561f3064622f2974216a370a8d08757c587295e2ce5f83dcb2d2cb7288ffb1a5079577ccc68ca5a11728d163a92f1bac048d8a49f311fbb6a8701f50b1afecc39d4c65c6199b874c5ccec21aa30000012800000090e513d04aefd24f6fa9431f9451fa2d8312d4d07d48c9319763ce12816a6c85b545fda1595ba0f68fa5f2a6a290f18ee783ddf21db19f2c9df2c1d37940c599f033d46c3abb3dc4341f10f9c8aa9b976029f8d1ac808c1ed9976d413cb8c8b3311f72f215ec4c6d7f0f9b20672d08c3310a75ffb4bf0dfad69ca2cbba596a0db96a15273d7d63e00402f075ca793a86a6000000906ff7bbd6b8ba7ac937bfca3c621f982fb721128f3b6ead3d5ed5c1972e8c3b1e00f0cbb17abd0794b3397ecd95bb1dfcfefb1a6c7777776d666e34f8615e5c29c022a42c1b8496f1d55a5b54a35bf7391be3b7193bc7ef984c5b74c07b0e832cc5984da39f2b2dc7e3af37ea499ad44300ac656513ce3a2258ec07dc9cc8e6a453fe83ee3cc404902eeeb07c93d7968b00000ce40000012800000090294757b3309fb40884554e0dbab49a579418f11cb735a33551abfd52e89ef0819a73d8acc2a112a50469e9a82aa8f2bfc70475eb7f81500457d9e5658265ecd44be80f1cbdb93d1ed677f0c9a04c71e108bb97dfbd0ed91ff86a7bbe8d5acda36bd40b9f8347897ab9f625d8749c33a91e3c5cbe54b8450294e65ef6c252965f8290972c9ebe6160bc95cc2d38227c7b000000900731279295441c1fa493a5c8900dd2496b80e0d731304f5973c66e30e48869717b958ce1d2e76e67c2451a9937b7198c4693ad7f79bbbb16bda160b702fb528690d6fe823ca1dacbe843d8dd8e0f4da42cb94229d67f2ab089d46bf7e0f2a401696aacbb52d9c28f3f2f1bfbb3654bed188fe12880dd55a22d2b0cbe324822978f6537f9fbdfa746863922bd5597fd350000012800000090366514e5d0bbe663dc19a2d5bacd4d29d546f0116ef61d17e0d7a5b64434a75f8b13d26dcd390b47e271a8701a1e571925d13c4359d96a93fc8da32195288653db3fc27ef74fdd768d84fe5460e4a45f2837da16a9c2903df1138986f888e300e3340fcb373993e631da29728f5ad53828911831b3a7e0db2046602feefd175438b11a1f2baea63620dfc5d34c535a6500000090e3cbbded8350e75e6cbe4f43c1f88534ed11d0f78c8e85a74b9227a25280733b55253f3ec392e36ca29319d1a3e9853c7e43fb45d1d29565d9578a83646315f8482d62893c59c7c596baa7e53791c3a21fda45dad09096b6e0ccc88ae7181622e75ee4260baca3c15e94faf040288ce30b84ba8d3ebe946d387914dfd76156a2737cbfc56bd8454bcd9ed5069a65f306000001280000009005d4ef864524eb31515d56a99a1dabd75c2cf11af4ab73d1aaa7c58c4f3be6b8af2cabb91b7c86626a5585c380471d904236a0d6fcad9c435fc53934041b420663c8832f8115d809bd26aa1ad5d3768614d9703e1d3a70375355da540a63fa79c7df134fa4efda2da3abcd02bc31ecdd089ffe96d0baeba1e37cff244ec592b04c534281568ce16462877dc6ad0beb80000000909df8aeed342862781037cd4c0449583f95b67b0f17f9917f361c2dcfddef06554da76102106be10da23b103ac6772c1ab113f0216f82704f26607fcc891363a46fa12c41a30096f8d3a6ad4a826eb69c29482199f915d88a9b8d6329ab2e0f1607d9b02629aa13be0ef2e5d7c7d33ef921a2e7d4d116680d84f77740a25d98afe4f659d6fff240b6c96579d2c351b1230000012800000090fa7068aa07d421395de3ae91ebf9e33b53dd985978007513b647a0dba6566eb828c1d86a99dfd0bdbe5cb78890a4dbd89e5953cd24067dc895d7ab7338eccb2609f8d17b20740ca5d33f45b411e4fbd709c25eebda4fca4cc6cddd491d561cbf8db32c63852ed241ba3f6e6c7b138a4d0a558a1b400c8f2fa246ca8754a025bd682ecfc3920d338b4233336fa0cc4a27000000909b99404a6e40fce399426ff91dee12bb00aad8acf9e50f4837c632c0f8b72fc1305d239a41c49dc45ab5354a202167efc7e10bd524443be9ae24827ae78d186805dfea4560569f84f14a0ea9156cda872c7c488d7093afe26dbba52f5a1a896cbe514a510e9ed8517cc35003ffb4839e1a1a24c54fef1f73edb554c552c0222ade0e7a428933abfa909b8fa54d53d0cf00000128000000907daf20effb4ec1baa7d58213b56d8e2e37b81bee94f7b93fb0c84d3dda6e2ac2d77aa08c0e4a67f89c925e67c50020f0d505a0cf61f4badb73fa369615dedf12fac114b386c49ac3b47a2152eea72693023ff8bfdbdd11cfe8481876fc9e38eeac93d4d5d75ca149ee94d72d8174d51f1c767f009ca71df542da320837a7a1aab855b03c5af39cc4ce04d7e501260fd50000009040f994a5353b9b132fecbe005b0b11fd3134c72d7e4696edcb86e07c9ebd74dcbdd7939a73c23fefa0d45fe22272b716ce0db730828999b24271575cf87f063528acc731abd89cf3b6c15ec116b5c3c2049ac70502cadd313ca9e50a1d1af9bae136d0652b9c813bb73148349775fdd12c81e9d0b1c683501298b233ba9d234fba6facb3bc3c967dde62eddb941ac2bb0000012800000090659d7f84001350c17d3b7f560d26e139040defaa0d8f16512b6f4a368e24972bd7bd20480ed1ca43f71553ea3d0d50b69374268ee8874d4bf39055835c0e72d5fc781263a371983687f1d8399311b75a1ee860f559ff5ccdd3970c9067ebfb1d7a9b21005bee957683982b5a435bfc600854ef290d7736009d2ccdad21648c45f05051058a7db92a26e62e4c259ffbdc000000901edcc7073279262b1e7200dcc78ee4a62c982c4d235cd837648f3e8161ec16f2568069b16e903e69344d69b8437ba5053d044dcaf64d503830eae6704fe0e99bcbfc3cffb2cb3473297a4622091c5c0126b6190a9473ef4ce1baffb304a7a21a94151b3b6c3488b53ecee277ec91d43206188344920a5301bdbd4925aa941e4db12a626f2e55492115b0131caf41c373000001280000009015924ac6235640118ffe4fe511630ac31921073d184c0225d885a8b9a7b9c3e0acaae2d27315269ba650d1c3046202c68b14c63351a25c6b3ed9ab0a0a8776a65252b5043ee1d7fcb0f64214154b479b1c0158147d1bfd74c0698b605243dc60e975c3209fb8f4cda0db4a23ee2e16e525651f8ff4eb7648faceeee676de36835ade2c08a2022a9f6f41fbf7f09b220100000090c65aa4107825dc2e606192e07d07db3aa395e8a0ecf49721b49e8a3d7b3313063c7f25dce5c9f56993181e98ca63ae1e8399a16ce55201f17a300cea872cc95e802819b7e9cf55041310bb80f3ddd111019f04162ee97155a6ee401af692740201a04e5e09988f4eb09486e0d74e42cb1a37126f5654296df1215050de450ad96b4914a8488f05196156f6b4ed385c620000012800000090034b4065619988893a3e3b290ff25d59fcf7269aafa5527838612a84e2f96564313c298f1c317a423a2341484db237b4436d909a5a36a568bbd97023aadcecf62d9146bd25f89d467c882d0194ff110705b6f988b60fb4e3924685fbee5d8e054fe17c05ee3b8d6a6321dcc6a8e1adfa2e2e222d9bca8518a587049cedde031eff18c2aca701142dd09fd18be7f81beb00000090574ab829920b34f88cc9eda91d9e2ea5bcabf6f7d54f54db6ca6f12b12f4d827e19fcc8e48525820cc67302090bfef1cb8e286a5510202dcbb734d4ab17e8870e41792393a5a578b60d80ecd9d60e622263a0b74c649d860dc1fe8dd434f9e80539883992219f2e74d6cdc2308cc7fd402905ef7de1ba5967aa80dee1328f51f5de1d603d7f563e58332293b43a6c4eb0000012800000090ce65727e0984a5819fc7f07cedd0478f647bc493d598108d18ba4282b92f0a263411df5b652d3fb37d8df2e62583f601e9a66118c19cd36fc9985f75c2bfce534277a0869171e54306f6c64d0cec9ce228c4f1126405d24feaef9c9838be17bc7b525d2b1d3bb362f9d8da86b782226426684c00c21cd6d59be277bf8d08f5e337386f12a09534b9736a5b1e734baf3f000000904b3c1eea75a6c0d6217cbeb72b876ecca682a1f7c0de0d4ed44ca534da3d5b6fc95db81d33c9225fdc95e30fa4d1ab35b672d002f8e47269d9b5105bf5c7d22505fe03d787b6f186e59c447d3d80709716707248c752985bfba46005b3443df51b96794a4f9da304e188222e580f78b8302321d6a51e212956736d71d693aec9c2c9c22037aa83eaf6f3c85baa19704a0000012800000090adf058004d321c07461728fca0f7a9a47aa60d66bc8c828e9b9e9b03a836d6a96c043e20615b01cc8e02543bb60abdaf6a277807b527dc8759e333233dff1a0f7480e2a10f06a5fb8ec0d3e79228778410f24365ecf43ddd4e75d0a55e5fb62553decfa61abcdd10a3101927420e55be22d5417a5fdea1248fcfdad8b7a1d44fac4b461b2c0c01d3c230da0979011d2300000090d4317869bce769764079823629ed4c9dbe2c2f2faaa79d4a73bbbeb6caf7381e5d2548d4cad69ff119978adb93aea4e4cc1db3b9f9ea9e57c6aefd93cfc45396cd155652c6bd35b8fcfe53832f85bf581b1386b61e402c14435726cdbba9d1959d33c3bdac8f28faba0f302141d8dc0e03bdac70865fdcb884c651561bdd72cb74cbde86ae6ea47ec8266793bbf01af3000001280000009048aeb89d3ce161c7c79711a0ee3b1e4553c6e8187989f91c36dc714404962f5fb3ba34b2112ba533debd6b11eafd6b59102207c4c1c564a32cdc5c89b1229523a3bb6bf9199048b77946be09ef4a32281758d9e4b46bdd2fc58db64d84dd1ba15fcda1c8fc5d3309117d65ddb5c629940a1b5e8d6486ef7b6c256ed41e291e221f4d86e43eaf9212db4b7faed4a26cd000000090a349454c3aa0a3fade604170849a1870393c786817218d66a53a4440c4e56bc10f78816a19187f0f2be0ff7444c59b0804687db41afce4b95f5f8ad6894524064e288b2d1e448dd9a6a037e9639c7ec227a5a7155e763d4e169794cfa87d08623ad9fa7473553688efb0422269aa54290c1334dd8931da7ad60b3b4b66f2b91748bad01cab38a61847dd4a781be62c9b00000ce4000001280000009062f3789eb4093a536e7db9819f6cb259082be16e7384226de8bec9a856c32661159804ca52bd27789fce24bb6574948bc858696f88f9a017c5d4b5a17041df9f98e1fbfc88e1a1667ee3a39830326d7418f413f6e175a648fd1ee31e219ed585c896e557e73c16c740d187b19e3ac8b029960c8eb4d4204d49921ad5e6b8be03e91f05b6985c2be31cbc6356535b3926000000900ceb76d2b33dd727c87910bfd56591bca9b56775f056bdf5554a989b78caa1492a631b9bc727fc6a71a84487dd44ff686ae51c426ea4a4e4611b649ab7d7cd1f6a1fbfa79ed4b097ccab0df84583c93a0aee70b909dbd586beada30f6dbaccb9ade5d373f77b7079b841b6dd9e83a689298fc1396d1ee74e6e12238252084442fafe0034f2aff73a20b39f09a9cf9eb20000012800000090472044f3e1acda280c663af7f6bcb6ab265a525f1ea9c5ff8e4f71f2d4695626117f9c2789dd466394d3a3c745a3c495b2f74bdc9d427f7f82433f5cb1fa677be6823c528f40bfc0e169d1b8559530d1268b035db4865c08462c3f870fc113f63166245a01dbde683b39110379da3b0d28b064ceafca1f45dd07700ff30396105ff9d06214f626b4ac8439f40d98e375000000904100cf352081794d81cd0270d410bab1163639f4a8079df9ffe12d2de724e828f5c46f24867f70da7d7f56d0b4e2f4c0b7841c00e7f29d86c819101a47b5f6d722752cec613c9c9246eeb17e762676ad0259fda8f99ebb96a2ec3f8e47b1373c8f8da96ff06ad37527402811cd7af73d1974fe28a6012df39eacfaed1d887b7c31cfe6f8100e241e98603d49d04845510000012800000090494b6a5e6819c898d67f2a0263ebb616f0d3e14bb1976649706bf079cd2161928aab492675fcc4535c2ace9e604ed921c26b0bb78dc926e2101c59f12e9834d95840704a47b1d2a31835a1e3b872f85a0185e706be6a2a936d9ab2ca5fe569898f8d38a63eafa3f3eb747ae000d3428728e08a1efc752abc4bf1d7d09459cee6d40d4505b29589e98ef4cc3ff789bc4a00000090556ee72f89705a6420df4371ce116ac5911c1dfe614a1b8ff79b72b641d737bf5ee1d29b66658094135e0c0de5ec887c16b8ea6115c9ab3ec726b3a632f878f8bf07412ca3043d6b4ebd69f3bb39ae442be8422c5d8b6f01bb62cc0caedd1a582bbb829d02d2ab53be85be19287ecc530283847ac4575752df142008b63acd58a696fbd6d259871b502911ebde50376f0000012800000090be886fc35efbbfdf9672dd862f223674ad5e4b71f0b067247fbaf7ab5aa0f3bf0d26d1c05ad783c18e4ae87784b7c263776aecdc0b07c4465613a74b1cbaa4bc8e9afd94e4fb59fe73ba4ee4990d0e62244bf8cc47294568e1f1a3fb6b8759636c14f8b77c05a2b5dac2ca2562ba9ffb15150a93fd5ad0e582cca1f0e20569f11379cae8c1c3386a723e582f781d9b01000000904bbb91db5068023c2e0141e899ab769e44ecf2042ab60770a474514ed24019303183a4604e1366e4278e94e141781dc2a9ca262b634aad75952794cb32983a161c28a00b498f4343c20b10c62678bb4004a4666471d99e883aa7618ef77927698717a2739bde85396c129ffa4ef0063604a8eee5e3ecca18c6c020c7d2e5aff0e5c0276666c8f44d5caefe9334673eb30000012800000090468de736d4faead7bc9019896bbeaca1bab26f76e1c15286d11cffc5531770615a29235089d07e59d52d8d2202baa1d658ce9ff7cbbe23d94c6196ddbf6ce154f636f87f4f35863113e8227c2ef7e5f927ee6dabf135a507cd7e7326dee0314cd435706e00ca3c6b34ff43e992fc2a0201675aa4109ea16074482a190417e2f445f28a284f9e0b9f37f4ae258946537a0000009026de417bb6b70af004a2502c4f9c256615dbbffdcfb980a0afa86902ffe5cef318bd13fa5c0699fe90c9a6afcb46d11b0b889312da7cc63cbc39063a1e6071fcbdbb81dbbad6e1e1eda0b0bc508565df03a76116758b94a573cebd7a2d86d994c5982b37dd47ba882d72fd5d417f9bf51b2a842c8e6cebc163ed1c7c2b72d29c94dfec8637cb826f7c3db29e33903ac90000012800000090a7f509e97cc6df07d47241b7a908750a0e615f111b29e0abc937d18bf106c5dba6cc36418e1f7ace3daf10fe15d80ca8832489a15750abdf6163e0eb3d802e20c608c2c65ecd4faa5d1beb4c9498b284093b4da74261b5d7b6386a258c9551cf110d183f52f01f2eb09af9d3589a12152824404c2d3bc1542bc5b2f4d11b4d748cf5d0f190b24df2a7d9ae9e4d797acd000000906c1d6cfb9f1e7fa1f815d82126d6059b5022a5367e3f43df9af78db5ebdc60157c589b2fefcb07798581c07849483cbc2a6a7bff9fb1b52b3b944389f3751132d59d5b62b6b6877c18a78ed1fb84497502a64584fed738b165b9d2b87a013b7518b78df8013c4019ca92616b843fb92f1b1e0e94d92a49c38f31be6e8f448eb10b7b35480912b4ff33d55ea19e82ab3e00000128000000907368484efea7c73342422422fb9618cc8423285429cdc09e669b789f73e3f236c97401a30d0b1d1ea90b14f495830de021b12ee6b89c1aedf3860d0be1c8b1d5c7c1562b6ab7c0c6c0d18d6343b567c8158f35f0e332b951da687869d3c8b0140d8a19387d56735cabd582f3c0cfeedd1757919397ddae2dd4a0ce3b5793471f150f7e2718f3b78c6965a669b229e29000000090135ceb67e3a79df21d70b27234d1c60c1d72c972b00df776e81f193f59d7a7c31310d2dd6cd2f297ab733982902576afdef06c036b0ec15565e32db9c823cd0face8f569b7ca35e54c28dde491dd8d9512ae188b5c3089886c258557d10b59842f06314ff72579cc3edf3e2cd613338003a763683a537b88defd36be462a57261d04009c54029cf7f49bd6b29e76055c0000012800000090f184392bdb947e9f207321b2ca96a769e62d079176fdd8ca3596c94d954dbc91bd3244e6d6507f1c44a37586cecdb04261aed27f1bb648a4e4322a2ec8a25e57074d1975d3ac04f3270b9356212268f91bb653d0db9782f05e4cd683df7cd7bb290dd51508b703ab022d14e28a46f81703170ef33a8e6f833e91bf23c72aaeb408a54042eb1368c5f48127de7471a5bc000000908b576a784a020e6365a1632f796044bdf23bd3c2c4073ddff05835048a46de89aa9a76c58f48f419a94210990a761f3e6d18333100901083be547f2b91438fbd5dcbacba82887d6a1a44ff668910a9c42468696147730443e5ee2c876db2f319158acdc817905f8e8361de25d1fc19281f9c117dfffaa271952f156cbc993f773857f6eca71cdbd2d5222d6d9584fbd20000012800000090fa9f31a2f59b3dcfd23f3ee999b1fe3fa966e5c6e70469c0b34a1ddee0ae62511adab4b30b3d0e02bad20568102a0488cdb54239924741e03d04321494dcb2afd0dfdb3d0ee1858afc709de4e5bf14a81d8cb69f57288893097557650c297324e0ec0cc0851293260c3958e465003c9913102c26a4848af305503fbda7a058da0dad2793f13517f7eceadba2fc9ea54900000090964c4b62ff07c3565c56f45af7fc7721fb9fd2f630e611908a0e9e57578b7033e9a0251c0479873fe2db8bf7fa642d31974cefe284adad62882c1b3e9c4dfcde77e1bbd47a67a401fe0a612291e3126e117b53ec092929c3028a5d88b7ac83c23283b33c9dc30f2210a852192589759b208aeb90560da10a06f7d9cf2d04f6cd1ae61af67df04e36550cd8fb6961f62a000001280000009057db1d55f43fa96e02051fee6c87e21c6889f58d5461ed1130fb64bc2e35797cabbddbc993760ca9b62542dd2e7d9085e5bf55b2ca0adf99fc2009aaec3b52fca31e7b33a8514ab41f55a26cb9181e8f1931e0ff5a40fe919346f173c4f9866b1524f8f06a01853b7c145d15d6c3cdf421eb9b00be7d903ecb095f7f73b1ab622be9501e491d4420b45e3b762e84ed7e00000090ef4e920cd3a0437cda03026c89f1c05cb2ac96534314b92a44191180b70ca91b73036909b2d8aba744f5dece75b18ed473135ac719a00f38f4c8d307613590b4f58f97efccfb14d259bbb5782c7cb8860a2e77efde122c559d7493253472ed8a37e00e07f1c16ecb85215a13cd9ed6681b11e8c9209de59d774366425afeb0f3e6724ee34097e36ca7c0510e52b8ff50000001280000009021c5ac7e9032a161f7ed3455f2291f161720a09346855e6a12cf45a8bdc2e8a91f77302b765270dc1de29908bc12b35458c4b8fbbb0b100d2589e71cf59df7e2605e0e96956f9bbe5663b484cec278b12f78578d170adc01026ac7a6701e375c2c3d1fba997db41dd9e4e0fe76fc50bf119c375bedacb2dcca867050084fa2ee92a873e157aa2d4b2399c14726215c020000009097039712bf4a5b5be7efa151c15f17806bc907ffcc20d87f1930fdf144c69ed847927304430b7267b1343cca161750096f4e49348d646d9ddb5ef6ebfeb341fa5e88d29fdcb432fe74ab5c4cf9da51ad04d70481f624116946b26c418fe62459f84ff98beee25e57858c222f98d35a5d101f15de2b6b9ce46cfdc3319c796cdf7c603bff3f3189ae5ec0d48ee430eed300000ce400000128000000900a16d33ffba4b51c2bd2575dc312abef5940361b9ec494b126b38166c090f22af60136a0ee0306caa26215b776e8dd5055f09415af968f54cf5987170aa75bac81f6d801b40311324cca6fcb532ea8eb184431a1f993d451b5ebd1f85e31395289d09fa4ea523e997c4b6e14d945f0e31ca3154fb2712613c6f14d40ad3bd6d0f7dd90bcb86386672fa54d101305287a000000900c3fdd7261b10cb3cd1e3b4401b8d39c71595dd3e30aa26e5babd9a76c6166fa24bf761b191e15759e1e1f85028d5c2560e3f58c7201ebb78add370087da837f445a82a5c0f644ce05b06f6e7ffea6282422864ad3eec1a14972a7f980c894d8b89b1f3c9ea8e96b3bf6f2c7c99fce64028f44d8480ad466d39d9f12fed0b64f222d2bd020f434d618bbde1c002f6d360000012800000090bdeb945ffe20f941d91b84d40fc364180dba7c227f007f3bfbc03446e93332cc6efc673613173dbb22d06616908443b6f27ac7b284cc7c8d0eaa95cd7bafa294ee32e5d006ff514788d12ce481f1c65b0ea7a1782ab0848bf7861483680350ab6830066ac3cdbbc76d1811718868162f23ff9ec14f658853ea661de1709f6881565a0dbe8dacc2d7728c2047c0db805d00000090b2ebf999707175055a03bc96f1f65a11628df13b560ad0656fcf732ee2fceb29e123fb0252d4e939c2db4d69b7095d7a64a166bd3b09a74f4165706e1f80597673a0d222ecb26bc4909b12ec95e29e8125ac3c3891f884da90f3e6b2ce62a4e7801a95e44a1233d82c1fd37d07dda55e1aa6ef858c77270230bd8296fb4fa2cd0a8badffc7ba8baefd1392dca4f1042400000128000000901980953764f0bf53dffe6e48827f7fd7997907d76e391fcb5557b60ca6e76e203f4f8534e9e57d9a6f78718bf71802ec0c617bb55a24d17c5efd0a4a88f74a3b0717f1d707a558ee946e85fd258545110c21bfbb1c79b56cd70db8aac99caddfc5bf98754dd24e16fabc37741880a1cb2665bc0bb18d5d11ac7fb0968d963bec06ac500d62b9f4c3b5e7deb2d18c8b170000009012db71ec8040cc2b8f15660e7dec50ded8f1a1474dbac28ffefbd234215938a62ba3e76265c12a076e08aa744b3f88e011d61c04b7d1584c26cbdc6856b8b9db0e2dbd75366819d4bb59256171a127641bf6950415ba0ed0888beadbf75674fdf6cd994b75be0092f57f4499c6ccfbdd13f4f889006ef52fe13b71046c41b09bea8fb0b58c2fc318b3a472d5a64623f700000128000000901ae6ea55a2dd3c6cd5acdff99cb553005f491b280e86f7367b81149ff6ad8b8f1fd2ff1db2706d83ec3d58977255e3920c75566f9fb3f2ebe654211fb7c408ad53f7169323ea8b8dc19c61b28f59a6da10e8211b0271d1915727c3b84e9d729b0e4c10f375b810ddf5897804cbb30b80110ab2b5957ae0347543e4bf5fe58c28566f02f56e58fb2dbf4d249d9f141fa700000090ca324e0380c8950621d478da9548964f6ade3bdc4a974565da84b9ad425df63c4691174aaf39cd0738395b81b8cfcba295185c6295ce1b91e4f9c28aec76e994c9640f33f04cf4fec9a9b262a4c981281c24a6919d2cd243ed8d70b9b96a537ccadd2af0bd3eb21fefc29af4bb43f55525f7b9d9da6357bf24126ddf7698712e9ea83c9994d4277fb9fb476be7ce6e240000012800000090ad84ba3cd48f6132331f5854d0243e06c78c99001a8ad089bebac2db133ea9c83221dd58b1b1ef02d20b8cbf58d56646e612860da2523e775f7d2fb03dd6d36a421033b53ac9425365a224f74ce412b01fc47b2c4daf21104ef75c59197480ecb073c1f31fe9730ccc2171b1d12cac2e12037ed048f71ed69748571a4169e832228437547b07efac4c01dbf86ab523eb00000090434a01667777c8d0a8ba8c14a8dfe7c5d358a4b25b53b268c2866fc3686067fafb4ab2da89a2551bcdd91efc6145901154287f5185e5cfe0d4fe8199f869d4aa3ab10f0f4dfcc4ef9a5551780c7091d6204dc360e9780b03add0ebff1f8714cb5dd76ccb02bb4b1e7dcf77ed5c73219805cb1602c5fa9df8c479cbd9a0748b4a160b62aa5aed0f3a6b0a987ccfa38dba0000012800000090d4324f08a0e04d2235d74256160ebd46b95a222d41b4f6e4d1dbe105ad30d467a1d68ae1f26533b024c6ef4f3793ec7fdb0e13a5a14c3757bc66a89b7223a759f31cd3fecf77e9def87a78465c4255072cfb138fb63f1a862036bf4f16acac11d54fb742e88154db52e1f3ed005011571f80685d72dc2aa487c06d1126a35482ad6fbfc456eb4ccdff5840a14fc0850200000090a6fc7d2ececc9f6b38c7b3aaa6adb92574d1e47af5c7af74d0ab3812c3b0439082177ac1aeeb9dd41c62d43ede65f49a453fee0c230cf61cae7762bbc67d704fa65b42d39fe7264b6a24b73211b05e012fb66f42a50ec8b7af58d88f7c1426f26324ab4aebd246ba83615c48f6a965960fb5f8a2999dcbf292f7cf6d3c66be7c476562813f867bec060c6deb6ea3981f000001280000009061efa95ed2dbf72ff41a4380a6ee325c7ba8be59dfcddaf7bf86967f7291c349bf37072c6e202032b1ced040cffa0b063cd75a25523a749e764e84b7aeab10332441ce31c8f2099aca23a842e6d9f5a808ceb7901dbc6ffc3cdd6a63f026b2157ff5911aaf7eef2ed041eaf394f900bf046e0ba1c6e03c4dd9776abc410d0aadfefa30891cbed289bd43f36aae07bf42000000905d11fb0e867722efe168483288432135e72cc38546d875dc6763323cbd93e1cf6868579d3ae9ad7c7b4d46e98cfdcaafc6a93a40ae2a1ddfe815630f49728fbb39dffce31865dc4af001e649916010f11068095f8ecf212caa82d0fc15041116ad97a344a2a0e7fcf3df46b7ac585f922ef71643afd3b149258b0c1584a7f7171f6d12cf84b71e9e557870ea801f6987000001280000009075329ddb95900619aea3bd8067ff04eefad1e62f7f514d0fe883f9669ede10354b28b0e4e5c23872459f8ff3f67efd935f488be81875e0c4131e0a81147ded5e910e40b7efdc87038a7cee0da14b724c1892a3120977f758101b5a9a26c646438567e2fcb97554d33db0c19f91f9bfb81fdbaae6f1d2dd47a918398e33d93ebd9bb36a616d7d749180768dfd397af2bb000000901a84046750a0667911181eb634007be38478bda4a617f37fd241a3b67d0026fa46381277ddb2624081c18dff15299eea2020e44e5ec138c930b536c5dc64e567a783ad804a4ed2cccbf3f3630bf470f622c70a0396242eddfa627893104db66de92d8f55889604f457dfc92dc4ef193913ad02b8d553c2dcd3b3e6515924860938d529feeebbb95914ce2760231c80f00000012800000090c84345b4a4d3f6a6d5eb34328e5544c06f588cfd71cda5686df8e9728c504b556df5d18d73b6071669effbf1cbab56fea9c19349dda29e2eb368bffe83a0873e09614c99d7fac65aad36292cc322804b26b6f0616517c5b6b6fbfbfb81275884bd9a94b6ee6b9ca95e9ab794d962caef0f61b484529cf1d785c6a2a883635c1481695105e97bdb1a387c8aeba62a9bc2000000901c3fb76c848bf62a98ea888427d89507fee557c3782d762f85ade55fecc8c3ef0749c4d49404bfce8e73f29f637337beae6602acc314999f7338816637232bada99127c266b61a24cacabd0e5272957d2d767002247c5ef3c9287fb8d2e93d849c9bca86661d1460497fd8d5defd3a6c1b4271527e5bf9c4ff970a1885059f7914be8a31cfa9b936de2f88afd4dacc6900000128000000904cb538361bc8a4dd1e199e88c2f9b2d4370e3af557949726e89508c843e1dcfc3c5e249942c19b6f74b5b192032ec55e9aed28d5bf699497526cc91a9664c5766735427ad236ade32b051443dc021b3d2fef83e5556f46c6285147990a4b8e580f7a473d2b600c480a7eb86e0af68e1b2a9143e27f99c1953186737fecf1ce2938a6ace5e7eef843815288182d2be44700000090efeace60d0366c40df4a21e4d97ef9212e2771d5134f8d3c72c8e2c8a3f2483c0cd6305a8069a68c07a6bd0e990541f8a3197706d6ad9aef893411b57c95f46143dc146bfc00080ddd2946cb69347de92570ad7b3a8eb9b3590ad406b8a6dd38145217c1e19390ee649fcaa41a7226261f7141680999f4b03084718870a536ebbd61498c7c55e5b12c2cbd43033435b8000001280000009033bf0d15cbfc79c5b209c5f8f40a21bb4b5aee4b637c7e5eb3a74a0856aefba3f78a9404bd4b504ea8c0ff09716bd8abbcc0b4930b3171df6c9a2f01ca63fdac202f1c87d9eab109c9edec9eae528703172fafd498cb52f42245370a599e7df43bbae6d0f0bf56d90a30de805e18a3bb30588262443f4e9d172331e5ba9c32bb23c1e20903861cf15503abb553c92aaa00000090aa2dfcd452da28dfea7ab5fdb379d6ff1716dcfede6346129fcd10384388d5dd86c346c60983dfbf80aff38a32c8c849c5a02dafebeb64e0a2b810739c801058bf0f4feee7acdcded627d9c7bd864bee2f84c1c11b99f3519d4af8dab41fa4514b94846f83932b51afed57fe85bee4071379ddd8c15cbdac24b6a5fbc4d195e4564281febd20b24a134e02e5f7398d7c", + "calldataHash": "0xca07def1916e084cc36e8d61ff2d78a0091957db60fa8894f4df7a62d7b55d66", + "decodedHeader": { + "bodyHash": "0xca07def1916e084cc36e8d61ff2d78a0091957db60fa8894f4df7a62d7b55d66", + "globalVariables": { + "blockNumber": 1, + "chainId": 31337, + "timestamp": 0, + "version": 1 + }, + "lastArchiveNextAvailableLeafIndex": 1, + "lastArchiveRoot": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", + "stateReference": { + "l1ToL2MessageTreeNextAvailableLeafIndex": 16, + "l1ToL2MessageTreeRoot": "0x0a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51", + "partialStateReference": { + "contractTreeNextAvailableLeafIndex": 4, + "contractTreeRoot": "0x1a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb1", + "noteHashTreeNextAvailableLeafIndex": 256, + "noteHashTreeRoot": "0x0d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e", + "nullifierTreeNextAvailableLeafIndex": 384, + "nullifierTreeRoot": "0x01c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2", + "publicDataTreeNextAvailableLeafIndex": 96, + "publicDataTreeRoot": "0x160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2" + } + } + }, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000001ca07def1916e084cc36e8d61ff2d78a0091957db60fa8894f4df7a62d7b55d66", "l1ToL2MessagesHash": "0xb213c9c543fce2a66720d26a913fe0d018f72a47ccfe698baafcf4cced343cfd", - "lastArchive": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", - "timestamp": 0, - "version": 1 + "publicInputsHash": "0x29b4eeb123c4d4ebb68fcc64023553e53d27441f3935c4acaba4efc312fa1d76" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_1.json b/l1-contracts/test/fixtures/mixed_block_1.json index 781fa7f2e23..d128626da64 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -52,15 +52,36 @@ ] }, "block": { - "archive": "0x1e375c61ba0422a0da2ede46373a553ba043852169a597c40abdbdeeae01907e", - "blockNumber": 2, - "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000901f6b4cd3a6304da1e5081428953bbf95f8caeddbcad311da1a0636fc766d592b07120f151ed9e955659e1ebee6fb1a17d235cde8f02c3333d7257faf23ac07dd0191d83d771a5284fba516bfbf5a849f3017a502842b83874bb9ed8d986fc80c88467dd05382ea2e5076854a9e2ee34c1acd331b70044f2fa88e59c79552474bccd4c6b322c704a00d5b1d701d04ef1d00000090d6ac1dfd6fe88842e153cf1555e6262e9f7ce377f0bcfbd745bd543dfa526a450b430f60b485c14ae43da63d1c0d7f8352f10c4de856aeed7a64ed8bb35d52b223110e7f22a0b74faa2389f0d87a9c27254d43bab000d08cb828fb116d8e6a5608d119fd911af50dffe679c1e4e912f9083154f3e6a568d14541d68a98c5bd312ab7511e221043772f9a0ee72f983cde000000907daecc13576e25082c2c58958af7f44c68ae85afca62d2911f7355e832a1888567bd856d56a926e028e4ef145ca51074244652dca7b5549777a7aa157a8ec177047a9975c9e59d357b5a2a073b1f1c511c35edcac0bda6c9f6e337c180c54bf0e4d74d9612ae1401a9243180b30e19dd27fecc2e33fe9326d0c2a206db8db75984f619cbb608f9d035e18380a65188a7000001bc00000090f7cd623670fe8345ace8b09c6efad610804bbba0a985baf31e0a3517d1a1385dedc808dde80f95062e092f56f301ed60c00a405302f82c9a0f2262afa338b63a56d109a5c813db1bb8ec9bbc5b9deb212a198b201e781faede95585c21cca50e27ae60e74e03523b6833b3355f601d0d1a5e361cff7617088f544f2265778508a4e6e8ff5757e10bcbce6b55b247d50100000090a4e89c66360f9ebd32e6537f1f5de63eacd2bebe8feb2ded60f8f238c8fa366abbd00e08225547febd62e204bf52ae79507bbf2cca5d6006d1334e1db7e8c89a6f4fec1508e2c4d98aff5434b2e8014b09756c0440020ae3bf82af3afa6928a5875e214743a157827453a13b47bbaff004c2a5c0d950a5ba73f67b25e49190ec1e00533ef4216119b4cc8b6af70fd0630000009030c26e37485c44c90677e93806c5cc97f6a796cf1712d9325277d6730e4408a5e82948d27f9bdff3f25787cbe941f85c86050078f590200b6b0631f21413bb1ef7fe16b1d62d5ba1f1b48a05ce3fa4e5213e7e4f39745d86704767106bf7615df580ba01d59c2d8f24e1ef03d0681a7d187252e271b3150dc7fc291a54bf2f347858dd638d46c7bef49c3126204037e4000001bc00000090fd26b1107dc3623d6a8aaf5fef54d0fb291a6e7d8bb16a6e6e702f2674b7f21792c294e7f43c8f42be7b30f8367c2a5a0cd1761e5d13fff62e6da5a2353ea6d42b0002d47a15b8cfdcaa1dc958e3b48a22bc3d346e6822ae9875960737c5a064a85cdb4220f3e3786658f70aa9484c860c780593131e5211fb698302756c13bf193bb84188e5507b533cbcf96fa3391e000000900a1712a5bd5ec877c416c674ca29a690dfedf3482649e8fb00400177216bc1533dac566371e4489046a1d1f591c3abca98916aa51afa81caa85069ff66d6fe00580ad4e3b11bf2d4679d3e7c4b0e720f1a3030c146d844030d1b263e74a503396a3505248603467ebc7efef59c5e78a2161a24357e209831f1175498cbcd648434e4e4f01f4024f6ce4a61894f1d7bfc00000090d5b5bc1daa383033e4445a603210cfc075d1d283eb9ec9d6485e1dc8cdaf8c4998678485374e8b2d3a6dfaa35c498641ee32bfc9d527fe13fb82807d4abca238aac4ea23e7d2db4b20c804bdc224a55518aa9e5a447bf1ace058f39beabd0584f80778aae59fb7ff9d7d14dfdbd9645429d78a4d5046d7f74ee0d84e162f3b8372c63ced687a0b69e0918046a695eb60000001bc00000090db1361459999167bd5c9c11ace3e20429a863a97bae60fe9c712bfbe37129aa612ac141d0c9f4242d91454686720c86f00feaf4a8f5b22fdbee824f51099ad987b932461b7d83fa125c8778247d1577e0d9f606e3429059224e1dd3e1efeb8eaf22bcde6a35259e9e8958afb508d942e1f7bb605a073122a03c35a7277f4c9d8a8c04458d751cb975cb649f634979ceb000000909db56599d14c1894b36e049310fe48d6eda527bd47cf184dfc1344abac8298ce442fa10cfbd1818816b40683ada8b26b96df7f8d7a6387ad0b3a0d26a432f1595c444d5527614ee52ce81c186c29e28f183a9834311a4e53e98f498bcfda8f89ce9e23229bce82dc47f53d3414178676290c138312739539cc5265e70db2356ab8b8ca30f7eac974ae025544436fe3eb00000090b97a7526997795d908d4d793e5d08e92857892a94c103d790cc12765baca1234e6289e7d3e688953d6b79dbafac8d501ac3eb1daf0218c36ce2496a07a18f82a5dfa4bbb7dcd4e7f6d2a55c736bb2bb52ab6b9a77b91fbbd8cfd5ff92235ba06b521beb8881051644e0766e74f8038e9106c8ebcf533106a0e5c17d6e5c3ca29649a55adf8ce78c119feb5a20b6c253a000001bc000000906f166acc87984fdadad9421885a9008d2ad839849d9737ca950770a2953cca51a3578c0966d0935679e745e5c047a2cc3bb24db8c86ba23614f16f3704c25b1ef8d15e684a9f288d940b270cf4ff901506b93d0de9ef3bccec20eb996f747ba51f030ffdb693866373033cd1e58e5797099035c3db1b0bcea4fa1afac2657589718a37d12f65b5127ef15b04ef1901650000009045e0533ad6f080d707fab0fd994377efd1c79f6a9a8f29ac7b6f4865c9203f0535eaf53eec86aaeb179cdb286301d43e70283ce534d25c959bfb457b7487f2d96a19d1ed691f01e2f603eea8b0036fcc00b5a6b03bac423c7adb13256ba444e2822361698c1e68e3443b8c2f8b430e1a066441d0332a5249af5e19ec986e9910b4b545e89a373ad1f3647357004ab23d000000906f512aa5449fddd0663929b6c69ab4522ca3df6a91af6278084073487f84662408e3df716ff3a131f5570013615af2ca45bb9a14522646119fbc333c79048b5b077537e3f954abdb472b68b4fa18aa3f056c461e7ae24029b824a16a7508520a7e2a074916f44da968fa618240b499832f2bdc063d6d616d183e6de6a5dfa3d709af9380110f25f21007fe7338bd39ba000001bc00000090840f13247306bcad457026bd58acf54089710926d7c90000b5ec5e20eeaf7b9868fe6dfc9c1e8fd3156ea7578a402510f5dea52e9b693dd2f4f514ef2c9ef3af542b0703cfee0279806f04952d388ca202f15d83b569f1fa9b652737bb8b00d8eb793fb3bfa590ed08924fdbf938f86d1802e242126cce901e6cf918e42f1aff7a76a9acccaf2b368c6174cd7567e1c70000009009ed60ac272274117aa92e29cdc7a07fa392a66f6184fbcde0a053c02c3cc30a5fad8a48feda44636794070fdb5884b96123a071f84fcc12edfab90b5afaadbd84d1041301e5013fdfdedc3abac679680b2a00e6415d74be2f1b5791c68f39adb477420be4b7ae49578e3b14fd10bf871a19227547e15e8fba2c22c4ee7dbc0b98b5f21b6dc8e0c7d76a564b4632ecd100000090ef95a411a1aa536f4e79be780761466f823672f015ebad41f1cf5b1d780d7d65e31aa1f721ed2253032ee24cf424b8977b1a7581c4dc2282a20ad6ff39c86eeb774e2dbc0a4d8f9bd079a03a2d3ab5d90bcb6ec9c9b02965c6cffc233df256170d61f53990f634b6bbe353a6620b63ae02555645234b67e2cd731ab32542da32afc997dddde0c56bf40c223f86982c6d000001bc00000090ace691a81d0a395620eb6387df139048e396369693d8d902d65a3e895074c279360aca36f26a03504390ac7f386c9fc735686ea422c7367c0b58abfc1d954903e6c05a02e08972199e29d1606cff4b6700360b85d209a3f2ec157b48cf71235a9d018885d41026a66d9de00303f3a9a21df2facb29947e29e4e9febe28cff1cfa05a71ecf7f71ec0faefdecc253f4b140000009090e74abd5f16b601d94b892b1db386e3ed0cc964b8d4a40007a2a84d6cd752661a93838c5145a7e8a48c335e06f355408c61bedf61df12cbe17f2ba78257593e7a90c967cf1ebb0a3f6e72a5649c43980e2191cec30cf242865fccfe6baf59bd31791733691509290108c1b1b43d3bad1a47c5bf2f3a01a8a88fdaf95a8b58c7cf0b588b33bc596b066f564d7db0b17a0000009037aa5e129b115923fc9c5fdda6075d0d8ba87cf553800225c50dca40f4cac441b2d1ea70052c7ac119f3ac9cfc8cbb71909484444d25949e72675dfac75b5b2e8d0220ae71be5029db71ed954c9454c81f686aa5073a246c38e206ec28c23d08b17af98c617f7872b8792c8d20a7431f05f9907e94a59892b538f8990a5b56d25a5b39e62082708b6454833cf939ba8a000001bc00000090e963879f029469dc12a0bea7f6700f3491f18e9421735d7d883662c9d6dbbdb17ca856044a403b09ceb6bdf081c411a70b4e5f78ea2c36853f23174754ba740b4d132418f91202cc585160011b218ff013cb361f4dc7847a8a86df60f205bc69f928ab9c54065e9e0fa95b526f3ab91a23c5ee8557c3cf92bde37781b70589702a2c45707536d42a4a301aed6154f00000000090ee01f0f4b6098d40594dc4556065ea50e4c4ec9d06be848b061a4b73d3c1f606fb6b9a4704215a4bb8c76dfe47dfca4ed9aeab9c3d4536810bb9794d49e9c63806ff82dc6c2651ec152e362303bb35d807ee895286fe8ecd915621f30abc5fadfaacb9e0fdd0f8f7a699d68f4d5ea94d184c0c5fcda60ad000e111ce009552a02d89f495e226e9cdf1a39b2f86ddc82c000000904bbb24b22e181fa7fefc54818e8fff66fd78e3d3b8e94d66dd6bc6526e58d65edc43c172d4ebab33f1b278760adedb1e8e9745c019756bf8a0918a2f27a7b2e8ea5f6a3c995904f1992f5cfca65e344c1bd9f9755423441406937c8f79261b07060b63d646b1261453cebc4869329b091571bc84b1f80043547fac0c98806580b81e77bed0207dee283d4521d2ab59aa00000e00000001bc0000009031d9cb2c72491cb29f86abb1fbcce64dc97bb0300ac7c63367e6e9e2cdccc7d39ca3866f7961057a2d81d22810bb01ac2e0d5f56ad10b166dc53c56ebf987946e6c1ad5d175a8b5bb96ff7026deeaed607cd506dbced56251d06bbdb8d0b7fe763e8fd0875cf4fca5ccd021f4619f03202645d230d0afff256799fddb4fd275f550638ac5ceefb7f687bd4ce0164df70000000905b403e07a5a800d03bc92fb129e2e559b34bb4fbab04ee40673461dfae7eebc49be9e408e023f15462ff74ab56b3b5134b2146e2504a97c8c3e049aa80a9ba5712c14df12c25b75fb2489ec83d996a5604c3dd2c5c094c84787e6798019d0b49c6606717649b95c34a6ce153d7b6c4491af811437b121a89698f14740cc4311ba44cccc2a1523c8df02d898694fe8c200000009006b1f9afc8e1dedece6025cd1de1620062afdc9d912bba5bfff4354bfa19a5366f515d29601effaacfe23851198c674db88b5f4d146583fc70dd9b048013631ce6eea24be64ba58ee64fcafd0369ccf905dd58d0a32466bd831f12e06fa6dfc9a91566ac76ab6457f80b7470eaf9bb710246f28fb68fbee8357ca09eed5fb100cafb1d26165bc7f9558a802df5ec4122000001bc000000909fc876b803b02925f0732643f7a358b0558e8dd5066a693885f17c2523611b8063ac1e271c5d2bb53ae59aa11cce68b89a120f1714353e91bab03cb4010cc0fc85569fc09e49cd04eec3b1d20a7d1a9f2c4cbe34ebe86b6226ed6989f3de93b96f36f791e40172181000a5a6d9865d4009461c947dcba41ef8cfe4f78e7110e04e22f6242c973ea01949288bea37dc26000000900df4613a42c263ded0658c6b6fa9be7402da423dea5be2c8b3a2094e1d789bbb7864190477619d789b99f8a1dfe26d35b3c037c1ffcfc0b27b8e332533c5036e3b69bd836bdf948b28c8e276370c78b614abca5f5f2e8ffbda87d26ce31f0fb658a2d672bcf471ca407f79f94806b7cb038d91069ffc3b15a2d5d248e62e65f6d5271038eada3476fcda2878088f8b6d000000905b424d547d3fc1dfc16fdab1606ca74309b1b2ee0167042c75f3f8498786b77d9697fd28d0d3349f34a687d2df06b8e82770d282165b787ed36f5cdf4810db9535903a38d74aefcc482e1895cdc9b00a087c1072772bf24958e0e20419455c63ceb8ed868280104081c0ebf4b21f0f0a221e6d3fc4b2dd837cdc415d8cd0f35f6bffeafb6eb23a1688cdc25bc0ff203b000001bc00000090479c1cc4e8be6753145fed961e32dcbeb9b212dcb11efe6543a7a3c0bf56bb1ce8f5ab2a7fb67425ede7acf387f8883b20b2bc57405a5b7aaa23350b95603fcc084937e4173a81b84531ebe7ae1d33aa113125636fb28b2a8eefcb69f56fc0321c9acd7fa90e75d56dda0cd28812d54202a2871f8199e3c6c60c78e64751cc76a48ce3d2cf12d76c92ac6d4d2ae00049000000903d3744e1ede8e424a7c77d0b8dcecfe4986894dc8c3342637b77644828a9099d96c9834876bbe21b7704255b05db76a3f356d4b616e43cbf01b503c0def70ba213d5e950c86cd2aa76ef28bc4c9b65a02eb7c742883707d12a32d84a74bb116d5bc049b4179f42bde828d45f652b3f22019cb8d2201690af85f3827285ce33ba4cffa6a1582dd015f688cb007fd0bad300000090eef7e1aa5507df7ba6bb181a018134294268ebc192479967e5430d14768d16e2bacf081b66aec472b2dea0319a4a96a99a4c0b7ced96c6d5a4920449625404e971932d7f358e99a857369899cec481802a2d93b92768ce483adf47ea9f440825bc859542f53328346e38d67e93562dac0f16752b182a8553db195268e9f1f20306fae5cf2c3d34b162de97960fd3f037000001bc000000905b4738181849da9f92782732c9b31140ae1c09d0ee2332ffa8f855d64902a1182a812fb2370ff55e3a55c1eb5d0128c1b3180a2d2270714b05234dbfc3558e1340a6654d7112cfb2de8680a74643b507129f20cfdf99439e0266c59a1899831bacf8dbc976f00999fc0a468e653d2eb407a2d2140334cb9057406ca965b0556e946ff728aa63a6d9a39f80739a1a5046000000904114623211ba07a8df73883e4f90178aca2723740fb13291611aab18014a9beacce5a780d44fcc7877c2932304381ca68d16cedb0739182ce5e1a95d5aaad67adb72ca9041c5ba87884cd72d6b50d3f0079b727685b736b8cc4787f2404f62c76a1679174510ea3816a3dbc1c691b18e170617dd87cd67b6a7c7ccb3f18cbadf5481ce593580022cc6a72ee7e68cc665000000902f99e44318b735212e5f21f819b3e5b39eadf3f8bebd7c91a900da456bd217f124494d76714c94e6faa1fbae6f1586251d0dd1df1ca99d71006eae08a690a5e37c5cfc8a42702c896a5c6f2334e0837e1b87643f9446a6b59978ff8d71ee309b37d1cfb7a4cbc5aa6af9c53329bd40e1162153937fd2d4058b6a70d50e6b1e2160f875961fb91511232f85827e9c2858000001bc00000090bf46c0a256c4c246e6472143433ead3351a6d7a1dcd47c178c6892e02d273b3ada94157f4c99d14f9d0f586ce6e8ccd241d37dbeef1fc4abd9ae379da6d26f0e6207dca1c02bde7d81b5fb5be927004d1712ce474f07d6776fa6bd66a399c01d59da58ec6e93f56f78a5e90a2c2d078f00a36482c38e6adb1f2bedf37c703d3f2ce4643a59c3363f579583c10a1cec7b00000090275dd76f8e27728328276be5695ed40c306d39d7572909094525f4bb06ca70194d4fbc027f711545c8b0f8e133192ded895ada0e5d726868226b10fba187fd6c076f5d6eedc29359d74309e9c0487df50e51ed694b48c274cc891719a71c5573327498dff8c9c6b9020abaf61660849d18408a2b2484caf68f367174dd21ed66f4a2ae454570028b0a5de05653d60d85000000908e56f34a349e329df1f93ee0719913fe6791839f7427d793fbebe054c4bbab06106783a88b1c89a4fc50b827409c516858cc2686702106ae8e47fe77ca5bfd14b92872b815c5f84f18f6d1feffa0bbfe0dc0c6f78540878525d91c93ff0a2df4f1a25cad48d19041f735f300e3b6a7cc107386d10c3dbc7048131b236c1b37e81284a2a5adba7d114bfeef06ec46c2c9000001bc00000090cefd83ddad49d59a439a6d28a6beb5ea299975ddc8d22e690a813b726f6a24dae6c60c25416ac9a2233a99f83cd0f22cb300df2f49e9282262139a8585f28ef43b4c72a3829cb34f8924035b940a7c312443172799b336dd6a48f39be802cc188f64aceeb3a0317ffc80884632b2de430fb2c0a23f5a105126dc4c3af84c113a45b721c29bb31d18ca9bc3c348c659ce000000904f52486994d0f24a651bc5793f84c151f849d88c1982dad8cbfa351cdd733288e278b992ccbf5058cebb5d1a98aa273c635d4d65f853b9cbfbd044cd4b51ed301fcfc73883230b169897005a8a8205812171766883f96ecf0823cd230605bc1f9f0eafd0a3f59b204fbc441a1eab53e22ce48a3f495c46fbf325549ce895355d2e96a72e42af4bbfc42c239a1aec58aa000000902eb4603bd0953270327d783571f197eb0e017bb6815ef09f4760c3b9ca707ce529a321fcfe073e97ef998c94831500c16c5a0e87a8cc5339a2164c62ad69f9083399fef1ccbc712f5829fa1ba07c00c621cedfc2ad11220ac572fa2dad52999149936c3ed24e41efc72a6a6592e1be7326cc0e3b56efe912db790342a4427c0c2a44ee9d23316f6dd6462487c9df7dcb000001bc00000090e1297510dc0ff3f87b93afde09c5408c0bfda67bc47bba76e528f22ee936b7b8d259b90ef66d2ad9f808c456dbaa35b6e701c7c6895cf48ba46f8e533e890783886f0190aff6a1988745fec1fed42d650699239628ec35d6d269c55a9379ac1bb3907687f1a3826f3b29abb65cafecc3230caf6e9cdb60b1313c2f89bd529aa7f41a5a587033968e76322d1f6cd24f5a00000090e11ceb27c5ca106c80e456740877009c259516462a9f0f76bfb559beed1e9efef5aaba3fcb01d97306ad79b6d020b02d441cfd275177b80d31f0bc9baa8674f56b798f0b4315308c7e7972364510babd12794c32a74e4083a421ed3826de6042115f30a434ee8dcb6058de122c043b391f52c0ef5130871343b6f56b5d961a5dedba8b10a5d679cd3edc3b836ac0bdc80000009081c06356cc159e98eba4e90d17cfadfa454bdfadccf2efcf53b59ed62b813d011c66020d0c386f9dee1fd6a8a454459834141dd21b2a78d7c488a5d1fd1ce51ee5e9e4bfd7627b26ddb0d21af9c84bb118763f94891ee365313dd05fca8beada870fd7346d65c60b6e527a2308c7fdb52b6652017cb1b1919b56b5fe29144df679ace08f9d285b1d9ff1ecde8fafccd4000001bc0000009015d27d0c635886cc3039bb4fd72fd4dfa1cf7781985c2af996a42410b1ca0bbd75d128c09a7b8e33bc032e28c1f55cad3a7e8a1839352d976f20ca470648f0c0e683a07cf2be736d475b5e5ba7c9b4df1251e9e3aa9504dfa7edf788149647440b143f4d80746af81b2f4a57bfb4fa4700d0164f5d26cdb38dd14feb7207800c5e2d8329b4ba109f2dc2a4f7762897d0000000900e102a9aed3daa65dc7af1f45c733c96ea0fae31d90af3be7c47915f511553ec01896463867a2d5e5749f34d98e12f87a709325fe0287cc3f4020ae8ccdac2618e9b0bc97744add9761cc7785417788d114a9f8c33e53794201c3f994c437cf692ab9c60aa954bdb6491dd6c39c690c523afe3496015b3defcffbec09134eaa46a7a57b4e8a7b070b7a68726013586b800000090758ce78d418d80b1228ffac5638b27e159d3954b0b7b2f57e4baaefddb74e1837010d0bc405a3cfb7bfba3a411fe133f93269fb355e77bcffb0bedd555cc072dee92e10bdbe83534732cd5cb97c0c70907ecff01a0ab82b6f8b02577a121e60ecf16926375ca9994647cd5f42852dece1d3325c0db27a5917ee01823c48a9aac9e3d2d503309d217982d3b3cf1f34a7d00000e00000001bc00000090fa3f28ee26dbf08028371698a9bbca808d0d94a4cf4a1a5e23c2c4cfac0ef079f7f4f601908ae708aa4ca6a923a2c0fc241d1faca4fec6ca6e603590ead884916978d1bc6d77949f94977f43d1b23c8e1823fead71e716ee56c7d51b442ab2c6566fb9d923180f6c1c43f0d3f17ea35d2a10c3c223eed3ed8f3796aaaf3cbe5c2f3dca16fc34515b317150db822b6245000000901a18fcd8c3cebec8777d0449538a79fcfd5d1ffebeb0375eff9761797eb651b8f818d49a84b020f66c5a0d497ecda7dab70d2416ae6f76277bc74b3d079d11cd50bd1eeff737974427cd713d29a24ed1204c182db29dec045faddca5b3db38d8ddf620021687ae4f536643a0ad4356e720fbcd793ed82a7682ec0da0ffd0d5ae9e7a2beba71d3971c71ac23a204b48ee00000090990d70a46ac7f10ee8857bab7174aaafc5c4981986852608eb76e30d58d95b302b9d4e8f8df806d058486c2f81b59f9a4e33c3cc3ba25d0ffa5897c8f94c92459a2c75c9076a62da5970ef45b85516302f5bd8ff6373a6bab73bc2e1ce109a02aee57ad3b2a5e6759c05eab61c7d9303192466a8a8cecbc0801f630fee7ac7634dd84580b82fa5868fa149b046445c76000001bc00000090f8e625c27f0ea5ac912319952e8e6ae26f11d25e1c7b99e333d5546f1de7e0fc7ab396053876c616dd76c9b8ababb85d8632d8ee3987d68736153ef3a577e45dbfbd2032928e223aebc121117b689a9e263bd881d9a5e10547e1e3a032a60a2cff5f355f9ed6af3f100f0de91aba3dda297e3009ce0877fb0b754d39fb151365c6e3b2c2098c66f9a4384868b89b9dfa0000009087f5519ccc47d5bc478c41e85bc6e24e473c250e321603fbd5ee8aef9ec8a9d017de4e8e349dcef90bf92181544af461182afcf28f0b4fb10842efa18fc8059216655b6506993b1683b98685177dac2a09c215e3052c50c49050ee1945d5df3c42214b583907769477ae9e483825ecac14e732793de0a60f31102ebaf49f87664caf312bbf28bc04e9dce92ae57cc1a90000009031b18c2190fa9a51d9eefaaf41672f62d19b9b4b6944f178aa2158e0c1673f8c80187dda2af3e7e99a3266f4515bf6c6a9c1f8302d57c8fae8f611ce9e9b3abad926967ccc094b88cc3c6af059fcf16b0f55ecb3de539f39f1b10619e15405e6cb4c7feb2c80ead0b587ff34950c23292ed11bd9ae971871b6481a89dc9d1dba96a20aaa5a8da09120cab9c94bce6244000001bc00000090c158e9bdc1ba2452a1ec1177053b123da9ecd86103ac4d434e0565e173f94836181a7825aca153dc752c8bcc8295eb36ccea8ce1132e142eda9025f9773f5663b7d7ec2e68763df4e7d53f0bcd33002c189985041858887f58b181f385e7d3eae68dc4a6a322b05a0fdf671dfc41746014024e67a3193ac02c92ddbb54436068287c93c8dee3e61fed7fa770b025c30700000090c5192684a6db357dff5a0e9470f4cf5bb66b9f977deebe5bd1e52274cda82e5b008b28bec84df65bd15bc222a741b68aa0544b54cb90191b4bba109c54cfb4b8fce2197c8c3ed802aa57a14f1ba60cb80f21a2fdd12b6addbe24c00ba82fc1173515e43f5f6d71ece010b71db49ea40e113732815c44a09dae9c5c50776aa06a6e750ac6f2365f71267952b62c4dcdfd00000090106c0f7b8dc966747ee6543cadf1f5ae0fa5748f8f06c5335ec2b6ce33376501f656058255a8c6bf6a6e02e6a536b4f734b530e1c03bcd6a7b962f152aa4912babce1b6434bb2af7aee90932fca8680921e2ce90c79480df4802eb6e56c4c98dbe36476810fa232b44c665d0eac1c3c22100bfede9a0c26892dde711c162584c6d3877c7d11ec70c224b245b95f632b1000001bc00000090bdbf0894be5c0cd62c71d6b03b7194c5473f8d90323fd803129f83c1d071ee8734e9185089786aa4007af434e676a94805734cb93833bfa49cb2b47fd5b0c875d43b3c40bf96cbc777c27206f2aecc7d169b7ae5fb1f708295e3838a7931ea1f73f397e60f717a005c1b979a6ac0870c2527678d8f8f2a03929220098627aa39240746bb427b1557edd7286c7c98456e00000090227bbdadcf3ac6b8802319ed81c22cc6503b7c80b0a16f5b294b4f4a8dc087a3dd96d7a062ff531ef22fac632fc7bca35b069c892c8c2f174627375902b0bef7e7970a20774156af4bb76ec172f983ca066642a1e3a13428c426b506397ce967362ed6a5f93e7ec6a9a1e8d38621a24f0b62386eb9af3b97014279fc5ddd2a6df2c96befcbecf71c0fed0db0c8a7e21b00000090533310db684e52586da51b45fd1c3d78dd1358db9cc33d65a6362283a20e642fdbfd69a44c30dea5e3ac9f1afe5a90d53cdb6993bb0803435a2c8067c780e9e4b396fda4931fbfc85856fd196e68fff80245711e56890457c6c87133912ac99dc4dc95b127bd3a9d86ae78c2cac800312b241644dcd9d4bead2b59ac1face8edee6f3c59df01d600ebc336384f223fdf000001bc00000090b54513047e50017c9241d437a2f0bda50781f75e28c6b692bf0a94546dc0568513c1ef923c0790ec2464b0cc275da0447418cae16b8c9d6217597836501a2f516721046201886e445c6a2d231a1fa1792ac86b552847cce5d7bfaea7d1e05f8cbaa28dd1f2da5b78ffd7acabc0e589292069594044af1b687765a650c56248016f3f3733f9f21cd41adafbef3f03a489000000908be7b9fccfe04df0a89196704f4a12daff44ed90f8e8fc2d1c7083ca1bdcf65128422163314520ec057357096a5da93431ab954d691e819cd53c1e9eb74dc203f8e36f61a799779b0d998da8b652f13407beba8cc1a4825cba1ce3208aea5d821bbe4b4a6973e4402ac344ee7bf3c07a12bea44af3636cd54f2dfd9ca26cdc59621ab68aa163fb45af57378358ffd201000000900357a9cd16d8e002a43552ba4d8471434c4aa068340f52b42ab6c5eda58d1f89ad55cbbfe818368a3b08c34b45a5de3b03cefa71a690941b58ee3a3d27df6d16a5610dfebf88f18bebcc37c1f82919fd219d489d5567919b9e08b3a0f7631537e57bd823dd7dc78e41e8bcd8e3fa9816287e457ad5613a143dcfff22a2b5462ed34171188ff4997026539db3aeb8d588000001bc00000090db600c3ad6b91ca1e3f944798cc98e901dc633fe171a9090e1c484ec1ff1b69e31c35c6ec469e8bcb454192eb7a0a807023ed37f5cd6e732b098703244352103a3d85a40fc1ef6d15813e58fae2a1b3b23d7de03c127ef3d06adb6f5ceea929f5d69af1f5829cc31370c78c33a9e02f600ef33303f59847647d34f709c60ee1f1977fc8ff4f4ac995b8ca860a17ba6ca000000909f6f1433c3b65de557941780e5215c5edc0832e5e87e42ce0f7b2691f3dc75bb8dce777166ba0be1a3c04426105d1bd70d825baca848635ad9e185c99f4db5b05caaaf21f1b81eccff1dc11dab97b1522e49b951802b9ba64045f978fb600584981caa11fec00729908c606d6decaa7c09cc67f684670ad144f3263f663d38ce5623998a79bcab47d0fc18c19c3267d4000000909053b8bf2ef300479e59c500e2fe3d15217148d7b1d478777e57bb9e801a390045f558c4a5c50c5a86483efb8fa7379e4b67def8f72b080bb9f8c8c065dd19d733df8e1096e2fd69463f649c46d2f9d12b59d54d5ab2eeb038e3bb3cf9fd7e29a24c97b28c61cf19ef18992fa7c7de7302cee5587729b1e161fdccaa6116165e6e12675735b94739d070764526d62339000001bc0000009029a774baa556000734c5f96a24860488de9c9da645fbeb3142bdb7043a27d737158552949367a409e25d25af7ae98e6d55b5961270b6fba8b2a4d8f12552dcd45413a599df25ce8c6f405f68df4693bf04776bc1ab6f6b5d1d13169dcfd8447f219c83a7520bfcbcf558886c01445e6f2e5c128e3e814968971e6dc731fcc6df11259d0ca90fe3ac166220cce337db1e00000090f0494a817614d81320d746af1226690018596744506887414fe8548b96f8ab884f43c62b0dfb06af155b7b32f0400dadbb88def62837ae863c4636ccba3887b1c7530f4f0deee946c4fabdbd9c2e2d231a0da4ce3842b21f4df27728f679e9f0a4d5495c77a00924f8b19168981c5eda14ba51299c420bb249f59694520e9b2dd06fd7f2dfeb0faa2198b9dcda8514b9000000905e1733de43b9179b8ea4757bf3653dcc9a2a2fb20aef62a0dd49fcabe643c8f85f22a501c2ecac2c3aa13789da1a36359baebe40d403210475999fe43690106adc7ca8a6885fbe2273ab4526ca2ddba706ea4aded1f096bf9706e1dd00a20cac5006f8e6c299bb992400f085820d8395158ecbe51a9d7e5e6981f965f1bb1f59a89bbfe862241679f25a7603e6f7230a000001bc00000090819a74ac553985a35905d1cb9ba8099e68e842172303f8bb7f0587d73c28a75372964fba94393a605274f9fb3188886e569b2c0a9a73ddea156fe8c9490e5a68a767c8a86ba12fc8e1a86f92abb23d6315606fe0f49aa8373a8e6415f4936e498e2c22d25d494a0d5c08703fe5bfc71b1ea4dd0c1b5c08256f55fe5ec90212296b5c24df3f1e26b2a775eebd85a0aa8c0000009003fe00a821320dd9356c28c8b5474d972f9772af7c67e94e3c59316e4d24da1ead36e678857d3d5137f3d55a895f3b05bb6f34518d66d6feb16e824546cd26a302deb82c2272e86020c013a8ebd10d450d9cf49dfe8c0062d3b34adb03c293cf556cfa248bf9ae96b1de8cf91da30c1f09c504f94c704c68a4af43f6246ef4bd5596edea60d752bf4a48f3336c450af5000000900117724c41400a47d8639bb23920dd553583be5fd0b96f998970dcd099bb29299cb7d2d73351e8ec1a09f0394fdfb5e4bce293acc57da34b60cde2268c7974f27aeb0bea7c188c2c0893c76534cf9df227aede91f361028c6bc1c5351a690a6af312e656d2e54dfd6d62eab62ec97aa91ffba09319d0ebbb0917f53ef886b3203edba3d7f019662752c30427b7ae6fb000000e00000001bc0000009081f9d24e067d5f4fb0389c89104ecf20cc9d7258b071eb48bf54926873300226dc52b9a6cd11afbcf55552e4a896a6638954902e34eb3cd7a2cd8fe6a96bd531d70b14b09f1ea2bd689f1e1c85c56be40b1f8e01374ab4957194827d965acdb314c4ba0bb14c3af3b673069b150790392cf75cf827fa0520c3df6ace7ce8df4da720046da295e215274eaecf17c5c2f4000000904e34c0c0a048737e921b9305e266821997e3fb89186cce3f0e024d58669668d70b004fc0e20d2e5d4cd899d2b5b314b168b048ab92b69bc156c43841f64603f8763ee93a611991b330f901f7ea9b0f890f04da20798ae1a93f25446ad3735db5e4d52d4f3044a94c2f3f5fbedc5347201ee773475c892abdc851e3c5eceef76e37be94c9691208e7f5ee3d36cdddc9c9000000902ae0558330a148406d5db59415bf48296cd6b217d5e3285a13c9286843b08e574d33348624f2f93a18375dce8702663e7c4e890b9bc97c9867f2deecedc7ca3325a06b74fdc884f87dfb3e3ab74e512900fc39caf34efb1eabb1477454b1fb06bc40d21711d11dc09f9428a4162f4e11276b2b4c8558ba79d43767fdd2e16af5e36f747a682c712d6cac49821ee705f4000001bc00000090448e4fbbca04c080fd40b2c41a430f899a7abc3fa008bfa82eba2443a692092e3bcb9aaa4159b73b523a15ec82345c2d969571a661fe83b82a4eb0015b4a3e2fe7431e22f04198bf3718edb766f5361c29546889d4af3bcefa141b554971814bee598b241d144a2b4e91944fbdb53ca028703155e902d6978782824f224c66e81c0e527c8e1332039704cf2a00a2e82000000090ebb7246897d4d805f34699a79bf1e3c955744a36291fa62e6446222ccd414a6980eb18ddeeb44dea2b7f958fe4a28379ebb798ce84e0eaea8dcf9f01cc8d483127bae998b807b15976e9e025dadfa87f14d9487ff53463284a3522a583d702876d47831a966b04d2d2e8525c2d277f0f25dfce36790f7b55082c8a6d54bbd1526b96338a8ab1f87dd9b219955504b008000000908e25c976c0fd05bfd5d040caaee417179052a99570de2fd9922733c3f6b3e67381f7caf58c151ede5724f9121d0a47ce588f7fe96da9cf73536d260fdef5e5c591b6b5f2e709663360fbc81e86b40af0188bab1dcb168d81e17c4f1ab2621205b42a8b6a217eda6b6f95ecd35e6a14351679f76dae2ada5144a7bf09549debdedbc7dc4707145e80ebd653be9635d160000001bc0000009077a01ce9c4eb63b611b1d55c3aff4c29afcf7e116fac605366cda3540a07a5c8b573cb672b9101882c4039d78292259ae21b059f5a34b346cf0f7f06a260c5399e9d35429fefca4faaeed76de3fd772529087560d9c0991dcfa5b17d5f5974c442db1458785cb81438e00faf2be10c9d1031f516950bd08377f6333d4d129a651adba61791a90558b9de3245a7623f6900000090e41b0d67a8a72ab35d020402437bb0c47a613fae7484982232e6e0d6abad8deb6f4aacd4e8e0ef4d175277302ccd2ca04768888aebff71f204c255a4ebe79fd53a57a888e8f39263d26911569c55385b2d8c15b09235af94534c6ab94ab7e4de4bf2c8726dd5f297fef840add43477ed1d2243f79878c9587b0ee87f3ba735940076a3ca50f67a06a3aaa80b46396aec000000909d53427bd98a95226bf0e9607ed5a95f36b20642ec62dd5eca2a9821607c5bbfcd7b1d4e4d8310ae11705100f6da726486750a33c46787a380c9c35d6e30ab7183d74e22a7520c33966097144f35b9cf2ac247384b1fedad7461f6c6ddcecdbbd751ae339b62b26023cf1feda3f18687009336bd7b8a88f2d15087905e74e343731886989bfa0395bd85babcb8fa91a0000001bc00000090aa63094cea15318762db90e9d688dd063b9297a75c73a2d337d6ac07adc273e478385a50d1435fc4322d3e76d142c32ea4808f7a5a4a3796f1a6c8a125bd4b442c2becb597404e7ad6dbfeef08090659175f2ff9b31d1a37ba054c66058d7c75061c0c586e38ef1f0fcf71c80a80a55228308471dacd995a143316745c64097240ba819a8d2afe55a1e1c428832deb0f00000090d98251d93e4c3486b2f7e19781305d3c0fb245e2688a5a25d81d1f13db27b70ed42d088c421037fa51b454b6e4191681883ca777a5a84320b6af6d0cb1d18f85c831fbb3429cecdc172e0efd2672494f2cd3661e1ec4d81f7f1293fa3f49db06fc2b895063dc6701da81f5994685cc1725f23cedd64d5f340b82be1869bddac469dbbecd81becf607e6ed8c6e498dd7f00000090488e99f9edbcccd359da894eb5792483c316a4cbf8900364f6b0a08cc7fa55487f361c305d499ac45c4078a9ca186f267dde3583255ac1e0d166bb0408bf6c065e52642de9754edbc6b928cefb75039f05fcc2ea0159e6de81eed69c24b3381455114ead46694c9f84aa29e9930d64a0054037ebb39ccac551311b31081b31de38ef7d013af6cf96d2840dbf24c9b595000001bc000000908eb9765b98c24da9be1561c0a1209feff93c311fd604a585b0a72e584143a357cb3342dde8168302934982e534d22203373bca09580424726c035e5d5825a2137a6e82867450c5c9926611d02bd8f3352a2901542d8c6f8659b85174875e339ec8ca64f841e9235c5baa415888f6bf4c3009efb25b5b05c3d6bb854dda6094c1eb28dc6193e8d0a4401f36b575d8b69e000000901dc83e01313bfcdc0e5be49cea7add8a1034c075c51c4b0dc92cf0e767ee455424baba50cd69dc47a6d625bab4703a5d5c7cc2769a2721a2874c4565d154076a030403b7a5aadf093eac12400f12180328fa5d67847c44c61237f0f78b6f27ddd8c7b19841a175603a21395b932e449d06572b93b8398a7e8e7b67b1bf1856aaf11301eb2d349e19dee76320c72f435000000090d4dceb2e6ebc13131a19ed5f476104be4774a241f8024135c5ace4b10bd42f15c9ee6cfd66413943f1f2d20fa52bd78cb94d103d64cb6d1e93183f9678d42588012008b33c674d86dd79ce36022fa01f2f9820ffb0592157e82bdf182f762d7f633504f09215ed389c2261d951e7ad0d0037d503b10331edf0d3c0471f14f902faa9024c2053494766b64c4b7c917cde000001bc0000009094105ffa42e309f83696ce2673d89562048d19e551f9db802ee48939d4ccf36bdae97953a0a20bf67ead92dc1f9f32c4e3f61263d930a4ca01dbf8b94e212d51fef6e092d8de3f321075bc5ebd0b5f840eb061818f0cca9ac9c851927f1ffc9b545106e9d53d0e04171c88c93272db0e1a3df6d983a41d45762c800520d06193e909b86bae3a2bb70729ff3d458c2a400000009038e075004ffb6f2496351b6451b65d8d7b82d697d6759f33594642699492b215b0d60239a93d51406024b21fb926c4fe14fe84ac03f15e7a2eab9704fd0ac0505a329a74542874efb89ae53d1b61720129e7500739dc3fe9374dfdbe7673755a584a7c795be355708950ff6b2d8836b81a3efa4651a2b033d10a55006522831e7fc435135eabae91d3e11261953130fe0000009026cec1714b91a7fb5c2bd087678bb207bffbd171579f97c814ac65cf59252332f579ee5f81ec4dc3ed1899c1be8ef3d0c2f906c5cbe4e1da343dd2b9c890d5da0186261bc297ffaafc2507632f13f06e1bf8b774733568578c112501af6aed6e339e929370c365b97be53f717b4dcec21425828d56210e5d970ba52b2e2ca977257ca8d30d2cd8e32c34468827885d4c000001bc00000090c4a7602cc0b6d69cb013e41ccb86f1a189b685286a77a55312e6dcd3b270b6bee33e1b24c45abbcbab47523c545cb09d6f8e774362d88c1ab811a65fdabc6aa7e940bfd8465d0d765a51d84c806ae72a0f6b7a3adccae3d9c4027bf03651eaa081467e299ed8ba6b8f344b4ce573e5001294ff2e75f881a34e3258bff1a5102a4aa75b6b03b561bd32ff5445bc9750a700000090c103324393122c19b6416757a19e2893e6f82149811ad368ce94d082f5d88b8f1e5cdc377fd4452db9fe446a1ba14475fdcfda16799e1281e94de4a3b0f3f4a1ae16e8c8505a4f0ef4d03be726f2a74f2fdca85cae804f799dc7fc0267cd4cde87421ec535fdc42085f26983411a1f13104977f0a079a9bc0e01e9af5bcd0ca6ae79d1fb9f89b81e3a6e1b956ecf22ef000000909b66cc9b4ffb30456e09bad3657c6bfe571c291cedfec5dcb81084d2469155f963db8da2bcec625817108ccca6bcf455183ae4dad4bebe9f8bee1b508765e0b5dd31add5cb46e4fdb0070237faa48377254404f83656d1eb9917e8f36752baa0fb52200037fab4f35e528cf43734457b0d0023857a049081630b780e40d39f09536c2375d5eef6145c3fb50cdbf04ce1000001bc00000090613b06be592035c4124a3f05202ad0b82278e689ac5edfd239784592fa44b194cae93d16cfb28412042ea773d6bbeb55d1d502995488af2abb71a2979e9e0e3f384b55521de96a7d73f6e1f6c0aa1aa219bb5d9eb44e5501c77cd7b56e60be843ebedbd3e1eb4a7410a2ded36c7504cd21f35bf912bb4abbff9560e1a594a108bcf9c78f5a7c100fd9931b7bcc234d000000009013f898b19796142cb961f5d919d7783b6708f0519155e6f0fd028c2d4279a3eb20042a74a9a31485d5791d0bbbb8a34fc0e62a810fb72730f3504348533064e269facb8a7691863cc0060e8f05cb957829bdaac034880ce239f1da07ecb4b5fd3299d62ede8edad305d24d03291e54240fcfc9dbe3e853b390cf7394cdc52dd65db932b67164f4c438749078d96afc8d000000900c580b138aa0b469826f6411795d43fc63a263d27be7d4a95e94b6d0934271c86eb268bf09c8b6ea8d842aacb049b0f3f00718f9e9c36417f935072e6bb203ee943fdf4bba457dba5041a543ae82d7c32d4026102241ba6152d6190e869dccaa53b3f6dae3da6882892682aae5f31dfa2fb0e7172e5d4c9d542558d2258582ffb7e14f62211e5313520034749e1d4c60000033a000000ce400000128000000908e48891884cfec7657d80b910b97ef001c94f5bfc4d43fd9c164307a1a0a4bc8b6eadeca4bf6848d23b995f97c37148ed896b525b9aca066a476e74a7fd0f4d4ab607cadd621c7b83318aebc3eeddf3b0128cc37bcfdeac4043b510bbb09e1079a8dcbaf7af89eb1f552247626a814551d203e2b7f0b4badcb23f346168a5176789fcf68aa3fd2264ccade9132b85ea8000000905197029fc01e49fbbdc28725dd7e8588682d3bd6a45805c38d16f66f8e3e5050d8c08ff0076937e6eccd5ea431455cedbf5ebcc7d7d8f8ca9c9979683cdb092e632f721997b6ac7d4e646cf1ecb402b6206b19646eb390680f50beeccd34d81e30b71606c50e84ab8920bc6bd45e3c18257b5f4d786b30d948278fa811d49b83b3ccc9c53e6af2385387ad92d7c51f170000012800000090ea0a2aeb516176ca7e424f492fe8189eb71ad295387bd9aa01633b7228fd99857e6964108cacf9e14a44e9735f567e26b9379b53671d2a59ecfa808eba62ec39ab0dc49d5c10a732bbf298328b45881d15413e60170c56d682fa72a2f23376843e06cb0a33b846e36a88d03d855950a328017d4aea0be3427bafe74d912ded34a0cf8a50c809617fa6873e9b68c904e500000090e5af0c929842c7a60302108077210b10ed4dda5793532878982ae667d6616c07c9d3fd68a77720813c789b234dab39bbcddbbd9e3b736d225daca3908995c5ed12d043bb34d6c32fd73ebd7002d20f85277c3599379da9e30694349e164c3c6b059565df083fcd34cad2042d9890d10b1984922841197d2761bf618923957122018e83141b18a1f49ffc9c71ce6664e2000001280000009063b6f5e869249fa2e48f4d604fe0d8dd752af9709d1f7ffef9915abf574da164a8848580c07692017de0b74def9fdf88f05ce4e2f167eb6461f9656e0b88e1d202b425afc28912b07d2ab1916224d28c19818da33d71cc60bf8cbb0dce413ec868808e6aab3fe510cae51e12c1a0c2440d5c548e5dd5a36f365e742ce502379b6ce162fb23cc6ce9afd84bfbf74ed69800000090c7de50330028d827eee59ee6f1430e446852aef2ca126b736a422dd409087624dff6771a2cadfc5dd1214198e5944c3bbed081d8875b6c00aee9fd0cefe627873b6d7618706af438610ac35db20c47e8264bd7a6cbc22b8a3dc7c3f0adbc368fafae0276537f50e136a25499945bbacb23e432b2e6171744cb7bb5a4c999e5d85f242a69f982ec550de871cb992436570000012800000090fe8f09734956f02548cd8f63ce15f0c1ddde2cbac4dc201999e92ff4064819cad46ac3518c24df7d062fb6d35f762fb269c24b321b3c70886a64d4fb15d65e4ece0909a0d3debe0027b17f91c0474f6905a3396dd7d34674a5f0045c50cad0044ca5c662284b82aa3b5dffc61fbd51a11ca2837ce7756c140574e5898443f5fb4fe6963a487d1cccc7f6486377029f4e000000900b4afd56c60ef6c1070d169b3b132a34a66a418319ebf25eb2e6644d525c4e55f59286fe3edad40526c939e06e0171d0ff241e65e4917f1b5d103b1e6fce78fc223e5eafa93f2cf6231fa843eaf15e152accfd0fd72c3001ba993253041fdc113b11ca705089e84fda37707abf64176d1103ed74f87b170c491b322899d45e8206aa63baa4258e4f86aaab412b84926f0000012800000090ca8d8bd3844ff70db7599c6048f652a7ae75c307c5c330a8b4f26e2b42be1385c1b4711041b4de4ca23e1293f35ac8a57f44aa88c742bade393527004a35eeeb6e1e98bcfa918d5ce707f93b5bb498d20ac640394310ea72b54ab47647491aa983af2602cf28b9bd11045a4717ee3b8d16cd5f613c1f4d8e0946665a70afe272cb008776b047cbee52cb91655fbe0aea000000905388098a60a8885398d2e7801984afc45006a2d53882a73a31e8d79e35b65dbb92db7c9c52b3026af24f83b8e2981bc6ba95f3fdf5866e66f3e29797fcd8fa2df275557fc1a226850a9dabdbd54a704304db69faabe019bc43bbc8325a62f42de5df2efca41c411bd0e5599223b80015077a269b1f6ba9d291090b9c81c3d12193e1232b659fb463bbb0b0f4a8d93a620000012800000090a08a2aaaf6fa3927783cd4f7cbb315e44ece1be3c32a7615fff55c3674d3819f32d4f899c499d223cef09d342594b2d47a4b839e589b53d83ddaf1d28c9a99ee2c83d23bc21a813b3a57b8f8d4134fc515f1baf9fc134b62c01a17284e51263fb15955bd7595ec8cd04137904e4a81021db1e0eee945a5625858bb792e91066c3547012d9a4569f464dbf87e3d871c5c00000090e11f5ebb8c3d115ba5ce0f53f74503e6af530e9a8d0601dd287d4e985fd97789866006d25c48b0cf67965f87c57f006d89d874dd2a4d04f100cac979bd6e7d82707e326bc6955a4b0b7d9417193199042f0674c023b3f681df5f56a24ffd314ec17016c9bd43f139764ec054f8b135a11377bab9840a1e3b1c71e9c102f5743bae8d95e695415658c2d6be552d89874a00000128000000908aa41fe5d45dfda0f88901f50dc84fe1f0fc2d36480d8f4d547c7a35e5a0ef68b7347c84842682b2bf3f2b5bfaa25fd1c7b29a81642f99b92c070b6bfa341294281aa10fdad69cca1bb3b74afd4bd3110ce4ecb797792c7cf787869409607eb670923e7271cb48f10ccf673f0c8edd9a27f5ad5dc83955ef89d675a438040272924513a158e2c91d82bea11b6b0e5d37000000902afc6b2cd71fc4cb27e94f041bd70438b160443f024fde5b079009155dfe75832a3deb7f1f812ba842973ea9c85eed96dd7337445c786eab477969ed43764e44f609679360bed57dde8c0474caa5a84b300bdd05d2e74bec7726669db793bee1ad58f14104cb24ba222ee6b8b36bfd1601a64e08182f2aef0b84d331aae64760dd66c28d41f3d67c71e0f500c025ee20000001280000009057a4c22624f918ab13024489b6096c45f29314da9bfac5a65ec85ee69cb763ecbdc930c78a47952c796a66d56f1b3abdf4964b124abac56b29425f73b9aea80944055a6fba0c6df1f7b111259e6cc16e0a5b77679557d851384f31a7ad867fd503ad732f205f728976ad19d401651cc718f6788612bef09956470b3aa2da51a2612dd1b147bce12b4d168dc87d019c2500000090a4c227dc73c03e2968d77182189978ab017217dfdd5b426221f05c27ee97567fb34232084b65669a3a0852c250157fbdf4d026a6f2c476b8fb1e51313611a0a8a6971ef350165d6891bc3feef62cb511081c60d928e59108dfb82a99abb5421f40f1473638e32b962b0d770838cc6f5f10e96bfdb2c594ec6bd1b59d40f662f23e6269aaddafee14d543723976fa39f100000128000000900d30cb2dcb452db311a790dc687ca719363d231fb85307180a222864921453ae7507c3fba569fb30afecc6492b476bd05aceafd1452afd264eb366ba466d238875e138b6463ffcca805534e15dcbe0442922aea4b7fe19eb679c8a3599ce741111ff85e03ec7d0f5a0890156726b9a4821d08707c29200dfe48b561ee4878b7ac7ecea0c81d8bcf4503be7ee05a8f42e0000009057f564f5676db39b282a7238fb15ec4957d0283e20f11ee6384df64c399886ea482c980c8283688af123f223a2279745cb25c4363e6ac288a08b4294b8e2f8fc914cee8ca6e4af58d3e53c80704637ac2ce3a4beac7bb37f8018e45ccafd833cba4685e37d21437b3399a05ac912eb7c21c8cbcbbb7d88007eeadfd0d4e137cb540f668185484adbd9906486e7a9b52b0000012800000090486c65d6eb9db09052f96aa3659b5fc5eee2d893eec9673e236647d3fafa058a074669a5060495de19230021cbdf9df7a6411f7d85838ee497097acf77584e9096dbb85ca511a7aff2ae295832bc0ff316ae0ec708eb52d6e7883f1e040d3ec17e285c074f6da671a00c05366734566a103c4cab9c71a68b68c9694c6a66a5aa61363ce0cccc72fdc9e8d2412771c0e20000009062268cf85604e6fbff7a8b28b31dfbf524c3bb91191217c56ddc8878bc845483519fc61eb2118c3e192c87b7947542a7ae9ef62b858b62fcec93447c215f00345a2413ae3b271c2fe9bd88c6691393ee2366b10fef48b7a335d15fa842d9a681b1dab46131a29be13612ef992b45754c2dbe1b96b1ff4a39bd6924ac35e175ff634608fc18ddbcfe472ddf6b12957f7d000001280000009091ffb382e562df2860d463e5929d0dd386f52b65111f9e24ee48d1174b77b1fc20a1d9ba91ac555237c713e137aa439c26521bf2d66732cdc628546c7fa3e5f210c5b24eedfe48fb62bf1725e114ae710bcee995e3d34369dff77a85547594889bc844493a821a6b8168099a7d5699150cae7f5c77738f1126a36c5defc55b6389a0417511a13cb1a29915d579228700000000900019f2ae31d07e882c01e824e214bfcf81e0af175584abf73d3991ce7855ab35dba74d46f9010fc0b5c188168b9bc34c281ec206fcd2509501f8d581245595f914a10dd463dc8497694a3123465eea9a10486cccc086214c6817596ef0f5cd5b5045a95246db591e2895b8d82ecc2f0b0cc7684ece5aa2615dfdd19ceeb34fae3d036052bc1e84ef238656a40a00239700000ce40000012800000090ff9576db5c8f0cb4a1b3efb6c86ac616730c9da14834ef033dcf04b91e83499159623597754ecb21e72b3468780ff11f1e4aee29b7aa121963057cc401701b577ae15cb36dd89718c17e547b04d6935b1f626c27e1ab8382db8e5612c18ac99a21c599832132285e68e704901a50ce330ad6c3cd18c7ea2647af8ba3ef6092c2d41f5048af52fcdb2404cfbeec5b9751000000900f04e5656ff462af7e54445012c3f04f98cdc48f9a049290340f444ba0be156f3e4155357f30f09945e53d43a1c720ab093775a2d572d088a56db54463f71835bc9c880740939c918a1119bbe8e1f973208858951bff89561c9137b29247d5f13bdc2e696b3af963c61e339fb13731651eaa15f7005162f563ab71c16c1e356f543cd28f7b97061515b54dcaaab74a720000012800000090516fef0dc2bc7055ce2e6409d7fe8bbcfdc4352e7121caecc070d9c84408de76765accf815fe1b00385b7613076442dc45af350d30494d6b1cd477adaf80b1c3b6d70e107238342c594a6bc09ae6ab3d0bc0776028261540f3462148188b384c8d595eb2612d80cef88154d2814382052baaaca7e819e3432884633a07e5d12416594f72d18c0d104565ac16d6ed83fc00000090c9b0c52898a0faec2bdc818c438ac107c304a683d55d9c4a474c0ce74628977de26931a638659d8af47781a4d399b8c34a3a43d2e58bdeeb967e729fa973d414d751ae6a03ee77326e6d0d062f9d630f26dc1e34c25f72a3020af2c52bdcf3cae28ce1b12abdca9c48da1e6ec4a925c029d31227763b4cfc91da9bcbe8bad0a1a285ed8e92edf7542e11f5b8bafff233000001280000009001879f76edcdabda8505da4d1da7564edf80b687de98252c564a739bf504bfa3c9c5bb76737a0cd8f6dc56f7e8d4373cc914e01368de682ffd2715459a87d119bf4c80c7b7bb7ce634942736bfb2199126202160be57c73092d031d24d272f978c48da4886711719dc9d7f37ab7afaa21e2639112345ad2ef734b4df06b976b0f3c4938a62a12bc07128019876f807d500000090094c856a482c1a46791c6ab9798f7850b901aae2c0d7bc45c8512579f505bbe044a6064d25615902bb1745dc9478ddd8744347c29875ffc110c40cfdfbea2d900022a11f0650b6cc0838c1935da8c7cd2003488377fd931473e3b60476cfec044aa3455ea359358fa502a5f6523be23505aa398118bcc6cba1a90d095784d82c5d02f397cf079439fa64916d8b52ebf500000128000000909190d8a7d39141a908a3c2ba238a116f7a4f3b6874f36cab76becf091c82c758c77462aedbef7f4bdf9f100a9cd501b36ae803d8f39610dc460717a0df325c57544325da696345f6af3fdab58488977b1815e7451370c33d00d824fe5b02a636a68ae4bf65eca4c0bcacb109ac66d4d505f42581e608f811e05c936277f00baa0173fd073022b74073ba99edd5429b9c00000090d43c5d92bd7af690db3107bcd32f235bb11dae2488c46509916f060f2d5091d155f75ea21dd668e813c15a3f211158ec929bd4d12f4408ba3ca4e39d17b8600d16ac161751b81a7b47bb7ee43e09a854295562afa3a580f73119d975a77da58a6dd313418b186d91b8d3d1c0775f26411232385c60841d40ebcf0ab89661701e6e0e3292757aa5c1273a37a0d84658b90000012800000090176c26d4e39726f095cf0ecfc4540abe667343ab2b2bed0a7c0f3c606fb87f9abb981e15a4f7802e33b9922c55d7a7ecf61dfdcbd381c6c3e6b81ac2fa28433f2a8c83117b54d9b3c099e6823faffaa025967b084e9196eaf311f7db4d5532120d015ea5c480794d68afa41d61aff7bb085c4f68cc3ff1e0dcfa0dd0c7ed8ed4217923fbc35e5242a3801764c7abd31000000090087b646a49633169b33ba2d85fcad84e999491e6a186594d49a27541178ce451fb8e7a5cf3ff93cd13399411ea6ac49db9e8517386e86d4b71df794a22b6e55469253f584762af3c9e2756ac1d067851179dc9c061bf2b046f87acf976778e4903153cdb0c6107096d8f187e5b45f39209501a350da4b1ec49f577cdbb98999242ade2285f5332d019741984ba413c4800000128000000905704b5e18a8917ddc8e751f1feddfb879dc77a8cf9f02148d9262649c4db2c8dd51d4f65679c04719af674fe999fe560e7698b8cc591d124592f76a0f65c41074faa89b7f8bda5182a2f2136598399eb1a0e858b9c0bbe80aa078a779d39a57df8947e09e5180a88613a378149e3797c1246e31e3424826d668b736544770a475b0538e2b0a5d5a857577c45ecae408800000090b94aeff42f2f4645c053e8898c55207dfa2d6a02490ee7c6675a7776f84fc0d2e54d11c79240b66a7251bd270cc6cafda533cef1f0add2ebe7eb9f73bddd322fab959806deb7914fbcfdb2d24735f52d286cf545a2e3e306828743d8586fa4c5fda3d8d80aac932cdd1dc89e0a149b0e160b0ba32aacbd424bc00debc58ac10029565c9ee8995f28e13ef2d7913d85eb0000012800000090a902f042e0044851611fe0d69869a3a795cbf0a2299c42b22675bf9ee726ff9b75cce4c505b523eb00ab53adab756daeb2de2d034918595d7223b05075a72372279d59c933cb91b3803b7f95b92a53aa037797938220d479d592ac27099c81d0ebd659496e91f7b5ae6c5e27c462b61b0e0e501073b004109a9b6478bc866ab5eb80bc0ed62d484920785973d6b0ef03000000901c686f52b4fe4993a9a801bed3d869979b59edbc027041c5befd7933dfb18878b6767120c1086beba65b1463c1b8689ac9f4abb33bbbb5baeea3271d01e006f160481619d7e291fa4b74b34e98e837ee01dcbd5924797c971240609b533c32acb49251d5a15e35b6e5313195fcc40c292241a66b35916c6bae13bb199c3137db119e952061c071be4367eef26b4854af00000128000000903aee6f233ef26f5454c433359473cffcdf7802c1792d636a19f160c290810c25740c187421ac4a9be82168a564100606bbac43608446d73a3dc8e166f2145bbb885488c99a63b168d6f1f160b7e4166608fccd81388debe5082cde71e5a3cf137ac78b299a942c1ef08bbeb6fb10130117bf54b2ec88977aa57fe396ffd024876e52420e624a79f4e6c8b078eadd2cab00000090f51b156c60a1e9e333581dc07c23ca8f8b215e777d0c77ea0de3eea7ed19b243f3f994d5e683039728aa3d7a89e42a7c303ec9cbf0b1611d54f2a32ff70c971bf3272f7ef77e84a3fe7ee71ccb301fc70d3af64bf24ad0bc2efdf754ee001beeecc5172f93771558475301cc0255f9682e2f853534dc98fa23dad4e8be8833ad930b1f861f9c88f17822d03e51fe94330000012800000090cd157b7b9ab07558bcfc0c9bf6250441e6b8d6119927efda4493f5a998010861a1ef5a3f6f291b5372f3b5d1d08898c94d1eb40cc48610251725883ade207d079cb74cc6c486f821b82594e913ca221925dc1695f45bc90442bdc0964c35c77d3a2a960b1f54170e68b3d9b49d5ebd7f13489920600e6d04cefcb4a847ccb85de59f3622302dbd8e50c1c0cf9ccc470c00000090479cc7355250a06e89ace6a21fd2603a98c2059527c027c2be2bedbef5a228e4d6b9c1833d7cbcec77d717beab10f5abfe13b1d2231843bef2465749cfc81bc606cf2e1183de96605eb4422d2902e1f913481c405d900d9ee98bf0a4a56291ecabdce453ffed73915f79346532cc93f12e4d48483531dbf591691e4240e7519c7c36430cc9695658458b9560648f2a010000012800000090e2386e8290e6513f9109c40d38f0b67bbfca0615fff1b0fc7061ff8c3d0a9b20cecc1c054e5ad7effefdf3f20044e1532d8ad842691984ac2b2424a50b4ea94a24510f5a4628a1d3d8ee6141d54b6e0520bffdaacaa92e715210a5b12240c05fa32e82dfa3da7a59bedf2d62035309621d163f5c71a46f42ea6c300cb7deaf141a2750dd7d6bf17006b4651992b5de8700000090504056397e187b84dbc4ac1077b03c1a1778bba1fcd09121b7a76e09cc0396c9bb0e9b6110e7f8d43bbb5d6d83134a2efed5cf0c3735b59b442e6793be9e32205dcf0fa75d657132a015500d6ed3d45f0a6113c426b2c461091743f9d1971b8951a160322e977234dc72f5c0bd3dc2552014ee9c2e656c38b4a2600fa48886b80e4d09686983a387402ff0d8a10ce38a00000128000000906fdc43b503ae89ec379878d903695ffa30ccfbf73588360c44a19006141112bba26719f718f14879cbce1c0823264361b75582ef05365e4705d93ae543387d2b1a4cd6847a83d3cf5bca24fb0941d9ab211cea90ac6a4d6bd6a8b5eae1552c4bf8d85f07939a82d80a9b1582660b94e423038aa01a904c74a8945e06774ca520f5a78a756262e9d0a8b532980618381400000090d58544eef11204017b7904096ae8c9e415bbaea0e5ce75efc6ed2f4b8eaebb78835e5342ea5073acb2b15ed3e1fbc485b7f7d835923908e8e1fdad047e726a0d20c477e11a1d6a1d2fcbb54bafe24c641eee3719effa26513706a002a7d4ebc27fdf7fc92266cb9705e973a7294499260f4c26b683ac208df56f810c9d52931b64b7858dd349e60d4a26220da7fe472000000ce400000128000000904619e3da319c588d0c7e1c25c996015801c4a767e05b3667fdd54cb707c7c748eb796c9ba34c3e70ac9510e17df2ddb9d72cd7bd0f68e9c22594c01bec4d61447b6c8966bc2927dc70e914b591d234e6084fa29d91b4252e1fb9de9ced1e734bed4c4621087b6ec3eb2602212f341218077e9691ae6c2a583b3c3221890c9ad797585931b03c43966243c0b4f68297320000009021ce9b421a6c69953b5f7bf2b8078c97062e6f2bee21ef404de7a45f046c002053bdfefb898842c91c40d120e11553c0f73225a0669ad14d0fd53ba38885eec5a39fb5da97ce398398d93261e6e905952adb484e048b6b099b2ac1ec9d772cda8fc4e52669d70459204aca258a8d18182df4e2de568b3ced1adee8906d948792d1a4e5cf3219710b7b14b131bbfa596a0000012800000090e5272742cbde353fe3c31c39ab622390c0ffa30ba27329e902e99b8d5e49cce7cb66b509f4e916a971aa9db0c3d76a3d72badb8756a53fdbf3c7d27d9975c813976a48d2de3f30d25a500b55e8c128760697da5b40fd6189f96d592a0b2b3a139d49468746023b72a1562fdd59e980460928cb38de635e892bf7cb6d88af4e46bf588d9c0cdec8c55b02f8aec05fe27b00000090ddb0180a6ec7c82dc05b78f9f956b4e599f2fbcf99e2ac108458cd8df2fcce0b4e678736468fb76c2e2139ce458988edb0802e73aad294dd4eb7e6b005fb716e0cfbcebf26f19da2b3e08b1389515dd9248c0f04383b207c21987d087f02334b58a380ec0c53429a3ae33ef735cc9e0215ccb1271705ff59da563237195a708c19392fe0a3610d6d50050a6f7c41b26000000128000000903aca864e9d4691bc2294002f537931374f1cefdc9e653a632476173445c5787710022f78f82491dfcea73fb8cdd0fc82b00e7b6fdbb55f5898a392e76e7f4e978c0bc1d86d881f66d6dedd88f0d3048613f38b95862bc8d9bba957cfe6bee7c610958a1502e84f7c33e0a2345ed671eb1f8a7e499097ef2e4b7defce6425b7cdbfbe00de5c196a68b3dd266497b29714000000901ab5ca13f8c470d5c3c4ad526cd667073c3c014be3efdf50d65d2da55786d8001e361af8bfec4ec332c3c35386263bc3249fe6e836cbf777c612b45faa6b2aa177ba59550773617d1383f2b560f9d87c035254810ccdfeb446a28a9c036ee24b2dd9ed2c6fcda5577405a7e470ecdd3c2a9426942cf55eb1da96387ff9b7046ab58cb2e39f9eb046601070d432428d8c00000128000000902ab5fedb212a19447007f5393cc050c8ea91e9553dd0e3cace0cee68f3f536d225e1c32ff99d0e10f9fec031150e6d3a962d1ded8e21f8c14ad1c47c42e109b58e9d7c0bf9fd4837292448d617f5d1332e83c00c74828ec16808a4178069b02f503ae50fee013f1a467131e00d46d2eb03e23e00f6140fc2b75599ac84cf339905e16f024b8f6199b9d22004de9156fd00000090cb3c933ed3d89f7d502d0793cef1f84357e7d873bc40819d7dfcb7c9d7e44f7b9d35dc7e0e4d5385d45bb57bb3af930900682f15b6d804291dbb3d3eee3e16945f9267616c8f4bce3e0670f804e2185a0dda110c741be3ab9ec9e3deed7e1a9e11854d4dd16a80ce663d1cb9430db7c91fec78750ff21201402495a32f25e64044dfdb4fa056bf63bfade4de26da53110000012800000090ae5c1e1df141db587a332c3d8bd680381dedfa2bee7f2e498f8df062162f50d146b63764ad5687d8cd45c52671954125bda229cea0881236aa31aa801bb73dc0a595dd54f838b224085c79cfaab4f09f2669b6abe3386210e28448bb18b176177bcd66bd446ac159f0b4197773fd2b712c1f5ecb1156ac1bf426fd9af8c18275a0bef656367910b14ba72d60dc60312a00000090c12dc33b7bfe8dd92cf48fc1d747b9ffaa26feb00e7e85d7b29c3348443f9afcf3330a567384c96a1738359594999874deaa9338406fa2a87a16d28d138deebb4930dc59a24e8901fac05c6daf00b74219d31e2e3fc8a5f8bdc932ad32783528e6e93e23142a1ca6bb54593cf1c2d3f12034e76e05d6d15d59025d0ef092f5c1a0db3f79375c3a555160c7c0bcfbb2d60000012800000090c225b9114d44746790ac40d2d6d2d8517ec4f6536b617998b656f9a879b9e8e1de2258690ad4a0d5953c8b1e97ab237cf2f2ae61f0aa0a0956a5083c13b81abc6d785c022eddf40e5331f4747e5f6fdc1ba6258a26d6d64d25bb9ab5d779af0399412476fce95506df29d4392cbb4c7a02569048dcccd96728f537007cb0df15534bd1ae4b521e008c19a32739952cf50000009039bfdfe285009ab9b68e3164d29d7c9e7a1684b95015d4dcbbc74d75a2183507630b99dd6ab55d675d6a5805991c79ce741490b76adac3542514bbe596496c9aac56e05067afde228fddd84aa6c62d95208d4e733c5a9a3441126102a3b99ae6f5570810a30bdc01892a89fa2b7e8b6d26853a611c533c39c184a71ca31a85ca9d3d292d7b275a7133c1030fb403342f00000128000000905d7290cadd864629feff957596f596a9de94897adde6dc69f40f2bbfe691b348af800b19072caf1a62e59e2af661777ee92b07598580cf0ff8a3c2acbb349eaeea063141966c5fed0b2cb96695c200a1173b830773ba25bcf215f6d56b5438245078898e326857ed532be1dbad713c3e0c1cbe6ee34a48d283613ea1bec5d0c793aa8b8029684aa5aff98f7dba2a48070000009054eddf7204b270a603967c9d3b298fb61f6a0f738db5a36c541ab30f2d88b81edd98abfa5f823cf4be8fcc707bd621d5b96a12d73a1d3dc75fb2229e969ccd68ff7e77a1c6aa0989f0bcb1f7bf0fe3c52832bd21526b8fa92ea2405a9f84f7d6ec4e228cb01c4e6339a5cc01b3eadb0722d7323317a3742c4bc21d33c0b8003d5c5704176b0f0496d7f87dfc25a68106000001280000009042dd4e6490f3879a7aff4a9a97b614b2daa7a5a488858fdb387e59c3e27abe2656dc8d0671713b1daa197921cd93fd883d5946ac0811e7d4049b52518d55bed52d73cdaf2565766c726c9ae3c54b8fd607170a6db6811a3969a42a1676b82c07b9b1dc9bdafd98e7f0373f973daca93727262ed5d997db22ab57e2bc60308293297d36fb824d5a1645d7788ddff41df8000000903fce19e712fef4929577ba02d48dc3e919b1cfa74fb1afdb3ab635b5ab0356875614e33cc054b99268273ebff2fb0a5489db720cb496789d583e7e00f78758ea0b6aec810c37a69b3a6116dcaf918c0c1047231df796f8c9051bf8193897b84d39eedea5f6cc8df9057681cdc2dcd4701ee23a03b6e7152aa7af1c04542ffb0a2874666c14bf01ebdd723f195f448c9100000128000000907c2c17552eecc13111ec31339ec6b6d1b12c2e272b24b8ac5fc6acceeebd5615b628b7504a08f5a801c49f0da9ef19befb0716feaf9cd6be123793316a359d60ba343929756fbcb47c84173c6d3eeffd13320c417faf209fe01543c1274c1ef5d21d34e687904c4257218322040bfa7e2f443e8a14021ff71d40ced97adcdb3af994187d8af8fd98648221b78b17721f00000090ce99d741296de2abbfa5b3aa8bf2aab9a4d583e9f324c0c231df77ad562589afe681380d33631d9470f9412d729c0095dc0ebc544be845e9f1d40f20401d488df7dd6a3def03d43e2d48061cba8bf020055fea4ab4a8a316791b96e4e144685f3645d22b3fd9c748065f55f4694031190263fe8d8fe3a7d8181a5aa839e89c10fedea43c76dd5d40b2af12e45653b1da0000012800000090846f318a24b1f215c6d625c72aebf13e9c9a6ebe3d5c3a2448e6c5300e7031d5cde4a455f92c3d896a8adc7432b89631c399b8a32327fa7472a50e35644661c780d7b34cb8aa8077e4ea9e607bf7f74912e68fd0364bd02e82259616e76358af795cf16387396c52686be4e2acdda5e31889cd0980efb1c3544e0c52d76629ecbe472ea4688603d72556be1524f1087c00000090805bd40de3119eaf50f7093e74f52cc0693c3d0cc6f133c7dc17f1f66f753f39cc797d59aaf4e04796f763eb795ee0b17b5ee73efb92042f2304a1cc9701013029d79a6be88e375d118c911b723fd5d52c24fd0f7a990381d45c475827e3941c773a36367b6ebf719bec3294dde9710604edff508308d049a00412500343eaa717aafc038808df22917277927bcca6c000000128000000904f95efb3b6ec01bf8d702d8198eda7e675acb648127f8cd60985dcf6387b6e8bf4ed3e87013d7963d8d72939128ac3044bcee307d2b8adeddebb0b047fc4713f74f67a25bf26808c0d353f63b50dfe5712eec4c74f9740f92d2c083c16222b56cbfaaeabfd1cdcf3b3772652ab9510302818e5b356c2a48860eae5999dfc313a05810c2b3ad6e222d0ccc83a18e4459f000000908f045ceb9fc72e363f59c2e063e0e61e5926f9490d463e85b5596411f12fa4a4669676924b5869a55390be0f08867b43454ccc99a60b5fd6131a4a420664ed8a60ce858bf9a54c2c35379f7cd49e42d42e5f9e0cee59a07e6aa45d0842d418caf7fc70d2bfbfe5ed44434c9c96f3eaa50f506195df637caeff11304fb4f37fad4cffa436f736f14f080b0714299ae3bd00000ce4000001280000009074371bc6e501686729f51b605fada36b902763f8bd01875a079b278e474b39e2b7d01c4b6d10ba9d9496470f98777b1a68d50c2e493d2287d4122d581c0de4c36fe1f92c6f604303680cdac52261ddde28107101045dc414db647b09438ca1dd569c7352a2c52476408d838bb0bec55a2d2d1f8f38dac0ef6b1e7750eba48310ae919e66582dc3a45b38e6b35c16dade00000090f03086cc5faede7f087977599376c837ece24b03ff946d754b08898ec3093706e214ec83fb92ff844c117a23efe875c955b90e2c3e6ba03a6d83496223f6ba8898d5476a7caec16671e0a774b034456026f6b800f23bb8fa8924c16e7d3ae98e1b4321c84f17fe21eda9d4cb321695fe11108481abe4c28f0ae9876bd11f7f0cfeb211b8948293f06f436de14cd454600000012800000090ef48ea7af87327a2ba6427ad721d480e496348ef1959af7fb4da3a175eb1b6d51473419fa12bd69600ef28a4340ae3770b8f7f021470cf2acfc94994f4d2e11a1c7493f3c18b399d88ddfaf432305532046542c246961ed2d5beb60000548483030e0bf80bcfac2811024de6e7b9f88822d1de444210137c148b2a1550a87bd7b1ccf83652e189e36a4562c964c3fcf9000000903e34de30a1df088fe15ef89620ee4611d58e18e5aba841d90c923dd94e47b9ca9f872bfb4fa12c32421062b80ef889b5740a305f346c8396df848a31bbf093f577613b0ec2653ddd837fb793b8bbd1961297b94436013410b4ef487eb5d865cf27e335efe488bc3aed064f5f4889de1d0d44411c236205ac38f7a9d61c0ff29d91b069a85d1fd75969c121543e6b37ef000001280000009040f168d9ef58a85a6a0d74c05802660a2dedc37078a6edc0227fa2777cdef581973760696ab291f14627bf088650a451c40e62a9d2906dacb76c63e9196f9270eaf13e2b72f26e2944f698be9d232f852825e0ff6f348684e39e6387feb79b103b43a4276be4a266d9801b5e336f7c81095c6d2ed363efa3bd6880dd2fc5ccc5ed2fcf3dfac65be1b56ebbb38a3b363700000090a8b66602022c59e1a134da756df8b077badb05c0f254382ee348f2c1514f689bdd506c4735284691418b0f5932db0aa63daeb13766de36740b7d7da7171bc51edabf333fad158b6ab51c7c589cbf17cd2bc25883c30d4dd76b852cdca3fd96ce4bfebde5ada45ab22803b720db048b0902ebaf926ea6fe4bdaadd0c50b8483d3ba44916e6de82e1f8c71f352740242980000012800000090c26193dbe1a0947aedd442ad2aa1481e3178f50fa091c463688b62df55010349c4bae759d593c9bfa9057e2e8fe2549ca1becc46d3ac8ea8ee617a0fd5aaa54966eb0eae28af7142a73e901861243c6a291ec5bfbc1c4a9e7657f66c20b72b6ed4d71e2c18cc54e4ffb4500c272a63de03742bd1965c22f668e79304aa7ba42a8b91792dc01f615e251bfbc7a2c81488000000905430b47a0fb07e8209019090e9b8cde1527d073863fe22204c41502644410ea892532122f539e7934568d8d897e74e86f182ec167f6e63ea4cb7f31029a76b813cd749a2586fcaf6f12b9dfadf2cbd670ed6d7ca6d14b9785dbab8c387c069a3c1b8743fa140782ba7fe660444541b5a0a35352380eac4725dc8ada78d36afde494eae19944052f16cdab2d3c341c7f100000128000000905a60d042228451d3736befa4dba8f9cb5c35084f1de9933cbe72dd8c71bff3838a4ba068e783d46e297c6f98d0b7143d025baae9b1b9e111e71c8792de9c5b74bf1cb98f805c70180bdd5f3c27714fc31a3d14ea8eccef6f7dabe6a91a83e1a295017f89d83eb80597d36c121a27a46724cddbb87bbc4e86f236a7effae9909e3c960fa774cd06c64cbd2c393e69f91f00000090a82b2ecc53c185c7bb52768d11a005b8c1c32495be879741cdfb92266cb2b3ca9f88a8e38eac0498e3d488a537df7a5c21d336f38a2f0c1c184297179364472296a676212392ca4a89f3aea18d3922f30cd6b5ef3e663c4727d02643e1acfdc4d4ee40146430b5919b3ec1fe432c2f15099c88203be50a9ce7a2ad3317ca808140e51fb9f3ce52ee3b1031327a0709450000012800000090a1a01e5b1905b830d9d6a10ece7b2c475c8eab021b4c6c0edc4e2620a32bab38dc9e3f3ff013145c5f97d2fc2c76eb4e0c84133753ec4e6e1bb7993fb22c1c6e702af656f047e1c7ccca93fd47b7c33a2b007d94909541c549e6b401b062d08a3e9c99eb72a8640e36f443b0254e698d0a0c294cd61e6abed1a2c91425adaf759e6bf1da0b77874154c048ec2d671a7a000000901066ed14c5fc9b49e64aa439ae4021cd58e02d1fa6e712ab23d802b75a3fde4ffacdd124e388591c92616f7aee9ca702cbeaad2d9b1e9685c354f6ac1ac5670326655e1e4fb82a094ec3f6d1053d07a61cf95306cbe12b8e32cfeac8c304b28fc5f11181e1abf2985fa2f8b7a0853f6b0e955546abfd4f9a1dc7683b9d267d733faa8990ffc29521f3aaf3c85a2242580000012800000090a7272fc258a0326c748c0f4f37898c6a9e0914d9c643aaa9c25e102477835e97cb31ff263a1c28a4facb4af6984f2b65f6fff5a7c9f35db2699309929dbf4e5a42a6f4e846b9902c72a64280a211ff5022d9f9405c833eeddc0b6f67bea968a721e08f1946a92821a834eb86bd6bfab60a5a5ada6ccbe9301bce61d53d09c383a6975c11132b521d3af3db4c9d6c318e00000090ff3c7139b675681f3fc896f5bd6cbde547c3aa96d101bfc415ca305172e8f7fbc4e26d3da4f5315836824a5223cdd5ac7bdc2d0113244e1b4c367e460d3eac6c6a2bd7ba58463de7b0dbd7fd97b12c0c25e4056098e6633b0e93c7aae555308bc12282633e596233b79c203fe085f6fc042422b665416dba5fab20d766e9a50e7fe909f691fc7f97d6ec7bb089bdf7f500000128000000904bf829b13c8afd08d1b6555c4536404e92f2328fd2555e10ea70da2a3bdf3d378dce65cb96edb2715d3b56feecaad07fcfdd6bae58d4982e05c62aa1e878993342eac70298558c0f119a7dd086c45a3b0c2ec0b4371458f8968a2a9453b84124a0e66a8c355076697b75a0cda54b6c7e1d220e7f97c1d31df47a72ef7e1866c4e44dcc7d2c3ea8d24e54e596af744ccc00000090ebe8e58f563c94f17976ef75742578764596049630ea0d45c598e2d9407dc829e10681fa79ef239ffa8db12279e1393a3f5ad6acf9b9d9e95042d9e60683a296b26ffc8e1deed6cc2350e7dc01a465d12d4e4d67190baa513097564604aa9988b7399764eeb080a35f12f8bc26756280265cc383fd850a23dc3f8e13fdbdc36a3d728625a58f119bf110baafcefb1feb000001280000009095d76871e9855cfaa107b0c9d43681253aa7507284d9aafb7b6ef1ba0dd0b911a0a3332adb6b09d591218373d27c851e9a854e69b78032fc4ebe60ad87a250add67c9827abdc50e26764c83ee641c4e70b87a29aca2a7d84e90baa76cf73fd4059dfd7e2e36f6c182586def7e1651c4a1eb7178ddd4a7adf6edbe51b83295816fa6f6682aa8ea70937da2e18bd3637aa0000009043caf3f22e9f5fef393b8c1c249e152e2d5480c1ee53bb3bc5737b62a6faaa47c245da95e83f25321192b80e247395e65c5642e261139250d8c0c0296cea2d17f3584c3145b336d855214e1b67bfa7c4062dd9cbd380328cdfa97aaf40f7435b7a2fdfd5fda9123f2f9d9884821778dc0feca83aec4e90672da7bf7ce61fabbb0f28370a652670701f52efba553d0f5f0000012800000090bc5c02b0346c70ba02848f5d947bfb7534d62950b69854bbeaab3b00c117756eb70f68fd3a3096ee99f768e8bd27a71d94d420cabb595d845c8ccf67f1028ef50beccb95efb1e9ed631459993ce7596d22716e6c822faa8c1110df905a553bcc8984fcdd2c67998e5776985eed0ed9271868f42e0d141af534fb7157d4e60e3a23a1bbe025dbfe0db0fe05fcfcf4dafe000000907a6b69cdad05c3be52b6a6d750818ab190a1ff057915d796286971e5cfd38d67ce8ae4cb87cfed247518d130ea59c4342427d2b50d0a145c50240f11aaf61af5037f237a7d13cfbcd5f77faacc760d962e4cc8c72bcf73309a5040d39e8ac345c02a43b22333254b54a53dbcfc29bc800644a6cca50d33a86bf921f4090635bf73dcd01f4e66f50ac8cabf7b3012e20f0000012800000090b3c4606bdeec9bc8defb04498bf05af7234eae98fa3b413fdd657037951acd5b3b85d29877e4bdce0b29a6144f9d39f2ea8a1617412bf529703b5b7ceb406bf4588a913df4d7963ec02b829b71b403fa093d60e07c4c95588b36325c392b927f6baab0f44066a7bf4a521ba8835b619219f8b115a1da654a66e744e0e606f622b75500176ff21b97bdefab7128d78393000000902e2060078e2d60a59c0da00bc77ec317baf34e556ba13f248acfed9e6f0548964df6d4961454ffec894abde402b9acd7ca7e18cd57e60f305d746c194cd0eacfe9ac9704ff88433cb08f5f6bb7df40a703ff878dbc758744671296d3a5e45efebe5b063afad2f211444517624d2a14851fe635952a345221bf353f19da6eebc6b6b13f0dbc4ed929bb107ea655467992", - "calldataHash": "0x3e6fbbe5f3ecd10b87dd3685cfdda696001bca777b23423385caaf69e434f43c", - "chainId": 31337, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000006c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a01f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907000000023e6fbbe5f3ecd10b87dd3685cfdda696001bca777b23423385caaf69e434f43c", + "archive": "0x2b4a2765bd8dbed591e0d5c90db6e71204044e5e3d1ac91c69bc85a48b1fec51", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc00000090c09cc2e43c1ace60543a36841c7f6020e9906ce543f4be5299a9a8d91001049bd9d5d3fe0ea16d84de9d3db00dd27d6d523ed9687bb5cf84959b096849577beaec85ec3344a4c6e621b61a572471a004097bddb1e236528edfc8ca4ec4c97648bbbca00e89aed7a7041dbefb8d96f23e0347e736f0f6b5fe840b524a495e5e6910bb0adf488a4cb3871a66f53f70c04b00000090cb53c542a6259c0da2852e9a9bf6bfc698bbe8cc3f35561da3ac65276985b7981b387829fe26b8a467d40100481a96a1008145e600555ba07ff8588bccc6f0d906df33a1e5bfc04f9a8169ff117d01450bfb2966a9f1a4069b441de9e36e6dc9219698124f1ad8260e23f4f43949fec2203acd7aefef0d4c8328a848ee1cd9fc1148b7a799ea92e33aeeeb0432437ab300000090a191cb9a01b7c8f0493f1ef3a82b01ad80a003ff86f34d87e43ef94618b8277535be0724ce555917329f757e71c7aa1ed3f2f524343118c3d3799cb37abdf3d3108e08f6358c06f4443ba612244bc66711c28828dab54cc3269e0030d6ae7ceba5a7f0b4f39f59d32bbdf36bc0363e6b0ff51883f9174521d286a28d99b35f4e3cdc5e873cd076995b49837fe0d9c685000001bc0000009053a1cbabf996cef56ef0488ca6a60234e34e14f2efa8847aa1792095f0e5abb81e9fca18ba9bf185645ca74c054b4358fd3d7b32312d6f3a3ef1eb10fb75860ef54196a6d0f0d4baa3844b1ce4b847cb0c5f90717cf3e77161d47b947f2f047597aa68197b490891472cccedcfab8a5d1ef4c944abdd339b1f805f810ea3c65f8105b93ba4b98816165f23f1de07adf600000090908e72928581e924666f8fd64f67a768d8659d99d28e144f505f6bcf3801311f50661a4c4937c77c5ec18af7408ad32bc785c4e05b0b998bda64d3a173e36aa6c88ec4681fa3a6762c9657c181cd2f49138be16143d1dccd0373c8616820c80dc05c625534dd5c9981b206f5a8c0af5c0d0529b603685ee4c4bd657f3dd73a351a5f9790e0a1b162345d8f63986c032000000090106b814345cc19bab569d0772e3b0eedb2d4aa88861c8d7df24239a5ebbfacd716aed0be559c4cae1c101cb9fbcf30e30c38d9cc20c951a12f9570a0ad97dfd0c6928a5ca1d53adc1b5f92a50d6387cc1c74b59c0b0971141f74844ccf0c012d82b2c3bc7b14c76bc0ffbd87c889238306ae05ee609aec7b0d27da31d88c67f25d8a2a7148f39c284448c511f1eb4bb1000001bc0000009013ac815a63b37801491e4b207be284975febc33c0dfc9b200d1925d0494b54b1dfde6045f7c70d47f7eb0b4f1660c94d89a68a87b1437d69f995b5228f774ac774fd53f36734530d46a70999f6d90bc90977e22d5b13379184da990a52bb941154408f90c0b5daa2ff88d1eef9ad12ba01849ec2da8fe484f333529a55afe7dc810bf6f8ffda954d32382dbb3faf93f7000000900fae112c88fcb83a78b533c0c73aededb9bd01a3fd4f8cfdb16a6603c7f245ba33fc040aa054e4314925811e5f715c5849be2b96d8421b254d044a3034177fc4c87fd8590d3315f31bb23719553e1e2301fc26ebf0e7e693d440e441d49ac5f2a19686bcdeac479006e13b3772d8aee40bf8016845ce0367421ff5d45aa67820a9d97a86a02647dc2ad3cf1c7499f11b00000090258084f62ece17363337a70852ed2a3c9b8a6667d7fd1aa7cd1ad4612618baa5ae110a847733b5aa6cfa2cb87050de1a08fc5659303f6c8b489aeaeb21c9c241b851bbe16ebb32159cded9e227996b711fdaf2eadd8833943c35538803c4440743434953db5ab44ba4f3beb104b5a5112f8f16c2d8dd142a4a83e35fd0a444c25fcc149df0b00a4a0987c876b7f4a5cf000001bc000000905bf2e739e740267bbcaf85812da556f562384f9db767e92dac5c3b7dcc3f2812364c499be1faf165733bdbc2b134eb940b34f1ed94bfabb8e4fdf9809f5fbf9c207265c7d00ccf863ababee102a37d6207687120658d74a8226ab254f14d2a57978211ba1d41a667ed3323a48da35931145fb4c3f6e5777d218cd86e32ba50b66197f867d40aa55a4f25be1f5918694800000090414885f16a44be256a40ff52ff28db1625e36f7792b8a2cdf27d456105163f2cadcb9e7234ea6fc7b7392627f784c8a2fc22012509de72572779c0f45812b3f7607dbdedfce6985f439e43144eaa12432e893a76a6e88e55e301500a14b8a1c1e6291967a8bdc50118a028544c9e798d241f10631edf6e6a55cc319d523b0c5c247280e52b825a36c4080769bafebeeb0000009092e39122fa66d4f3ff0511f4e0cd87897a1763dd102ec414631e0250cc720feacbc5f07a1b103922b358ba68e8237ec22bfd240ed3604e024ef02a3633b1e49324afe914664e16f3f114b92e581af7090186b24d9a418e239f470256bac27b89ccbf9c87364ea589a4feeaf89ff8c2eb082cb66793ba42b6fe8f45f2287c9d65c5e5d90335a87014a5aa9296964639a6000001bc0000009099baf22ba2870b4078faaf3491dbb0664c066b030c5c0bcda58e9743c830b81749ba8511d170eb039a175d798d3d17d5f136e707d0c5ce3035599c426ef8d5672a14aac1fcd6dacf1d7843f719dffe712b5278ad201e8c16ab49ca1019f6a620000059ff9908a915a42567d89e86b9d023526fcf078d99338aee60e205ef84687592158382d4b3245c70d5e30885de5600000090d7a8c2d0e28c6908452024de333f36b58b301b11a583c29c084aed5f51d0bbbbafcce32d209b92423b266fd41b616c03fe8b8de1eb02e0713c78967d68eaae16a7bdfbcaca345305a5b221301c021b8f219915b14d55328da9dffbbc2d895ac2aa4d82e0c31f20fe489569b6054d2c7c08a48858a64cd51efbed4453f05c73e3607b60a56973d0b95a7edfae9ec9c9de000000900ca7c90b419757f474ce826a8be1f22c146d343789acfd75e575907355c51fe9d30f3714d227c6c8049b1f8c1669c2ecd1044367c9272f7bd796c47efd2c688704dd85948757deabdd30202a1ebd9a41016b4190341638bd0a5e7858c0a258f4e30f84db462ac508864e89e125c2d9c72f9137bfe35cdf29fb64fe57736d7203f29c077cc414916933bf14e9b1e7be27000001bc00000090661cefff40f3e27ede8be0f95121356e9bd2ec8fa045abfc59dc76c521a5434e388dc20f4e5dd6448a88d14ed5be12e403766cf1ab5af6913a7af5a0bbbdd9d0cd68ea214a715282c5006f50c01742bd120be81dce4fdc72e033727866267d4ed2330712f5ce0c2c3b119d277f86bcd216a10a138f8f0fd609288c488e43412aaf974bf6c1d77e4f41412540fefdbed90000009010b85fb878a41b540f6448a2edb58d8ae8799623bb61a02015b21e57471683bd0e737a4b2c07090baa0c452d451531905b49f0bd190d9ebf30982533012f8f381ff5b60d8d143a08ea525cc2e82bde600420e9fc9bb737889557b434cd5896de68fd3a3a65ff7461ed126502391691a62cadeeae079af8ab2f322907edcbfd73e06559dbeba773aa0ba137506d51ba150000009057fc8a7df34f37625adab477bf2277e26248fe2368c8d9d8e1b2b8cb0c8a9691e4831f9ace6b39061303d80167ba7127f0dd6b8347f52e21184a8a42d6f58f427449d13707d9d70d72ef0a80c431dbb8275043e24e6c5c09c871f6db684c5020d149b3dadcd7b2d196d7aa65a8033d6c055feedf009bd333270974b0b56c29572fd3a48d20d775d0a0cf5fd7bced54dd000001bc000000907099fe0d0764a4ebefd171c950ff9e20c009881f9fcf36e799c22319558e346418a25c3e86781da87aa07763be2f4ae54551d215b27cfd58c75de43f5e7a0c14ed43c14cb17de6fcd5f06c92bd1aab0a1d7141f6c825f48d5f2479a22c8a159e89532300a373f27ccb54009d813861f02f29c7eca8238fe3f3fe2e0d185558f1c7b46cdc77a4e6f37b79fa69fde073dd00000090e7eba0eaf0a05e824ed884425069d23d81eea91f56ada9c2354ce30588ee6fcd7a6952559539defcdbe73807a481ea81077631dd7cb294184f2167feebd970731def00d2d7374a6ba2280b7cd7fc4a5c13fbff83e7db77fafa4e13a76b670e5514f9c0cdc1506b54cfa5a690f151c6f70af897c324279f3c2dfe454755c7ac3f5ae6acff26c475ff67513c48675fe445000000904063dd478b9b8cfbc58034cb3e65ca60d2a47dac99b4d1dd0c49a558e61154ca939afd40c31cdbc4a64eebc83e4183a02531733d4feb16e76c67602d9ec4d35cc48573dfb53b420e29d92b0a0c724b4a25349732cb7735851488dda63aed66542163831df68518ef424f457140cc2311194f57d3781c65db6fa353b362c0a32bb3300714dd7b6098ef3fe798df6aca74000001bc00000090465520dadadb85c78b29090a6e6189524669ef1310a473ab1894d2e1705d2a8ee18620336cd8d5f3e232416f2bce4e3075058196309b97ad73a8a9becb81a3aeec3d5c4657bc8c9ea8bf00021fac39ed26db9dc5f33ee52a0ee7d50ede1d8b4542443b4eb1f29af7c32116eb7b0666e81eb0473e84f07448966f11542f1df4a5a7ae27881d8d2dc71b96ba9bd4ef125a000000902e26e2a97ca4c683d5b88801200b1f7c4e4970e9ae511af864349993163de4cae50ae59fec153cab0b7bf4b21c3dd0f6db23d998d86e68cd7ed80198c66a33d8ec6f5246439706c513c1b0e849fd8d64030a9184baac803265c5681506f3126f63118660a119d70182f3a272a8ae91270773888d7edd43b49ad94cca0ecda5316743d30311d172bd9818dd56d95541b200000090d78970643bfa8eac7ade40e1e8bf143ddb821f91f19f8ec4ce276b6017f1be4eb1bdf762f6557b15173419b64d1a28a4d66f22c38a96b400e0b75fb6c87f3adfaf58eb1b33ccfcd8c72a950446aef76a2a22ec940b940f790c0d9b50ecf35f2a219036ea156ffff3035dd91a0385dd9c1f2bb94ef6ea71744e48daf33496aa14114afa33af1f55739b411680f2fd5d9f00000e00000001bc0000009019c76c79218d3de2c08d937c7fd1190f9947acce7f654d504839b71bfbe840724f121a88a21028af90fa256879520c2755d4825366519e6635440b09f3d01eeda89663c8925a60d9e53553fbd25e66771b698e53d2cd7d77f511a4bca80800dcf5d62fc48a184f4454c0a5b86958b047053ee0cc59cb971fb15d58659f85eb09790f1ce41cd90efd9f4e1bc9b55cd4ca00000090b75d5ab0a40d4caa744175b803d006bf30e73c3a2709d9029da355b937c4eeac7172a8f524db094b97bf3c130263ac1adfe34393adf919dd80e630f2e3606d06a6eae53b238eff5aed523383536eebad21d12df2d1f6c613578496e422f9e495a81b54f98646c4a188ea2defe70a5fc329fdd1864b4e6f21dbef50fa7c6062f8b4c3c38d5354f271fc280bd4e3582ab600000090e60d1b90e4a5677c9dd7647f384805f94f74c885cf3aa34e3361666e8fb32caf68e5130077959117ed219b1bf1b9cfad7ee89d98f970d809880bb5135edfabf0dec9ff170bb8a52accb7b12d4fe0d5ca17c422e920cfdf081f97b804ed25b286cfd0cbc607e1ed975f15f6c4290cde1416075faa424416c4c1250a1659443ad57243df0f9c3bec50c5a4ee88d9398cef000001bc000000901a4d905fc72bfd4a79826820488377fe415dae67b7dcb36e89b29adc710dd5b86a22f752df61c4345d9712fe30a36a16b974c164d0cc5bab74391412f7ee51522f674fcff8fee7b82933fd901e9b1c49222e40431c7217587407d33c610bca375034da17e84f684f1197301dc1827f6f298402ac6e873f43973a4bd61c6f736b17df649fba910c3dfb816effa6a9ccdc00000090ca9d918f042ac24338a4f42ce25758f78dc71b477e9945b168a9cb8ddbe73fc368bcf0a836dd631e6ed43cc28bc07bfe3a9348f623af4da90717c8610e1b7623dc3f04c8418f559a47fa7833dae4a98d1188e1afb36620563ce0d387b901c1070e51ec8b68440486bb6f046944fbf7830043a43a5441865882ece2020487a28a1c2b887038b82e1d328d9a8862650a1e000000906dc607d87c802737a4218512411d32621a41b6e7f79ec7f1cd7a34da4d4a266ec6e3ef434a374d9204e47b3030c271b2adccf56ade356ba81fb95c688968df5e5887b40196f902c0aa0f4a2fec260b22023ac554551e319f2f31ab5ef75ce30e03086bfd13f6190963a8bb110286aafa03052444e0fb7fd24787a43a0fdfc482168a753e715ca481250a2ee3897f89b4000001bc00000090d1a185bc8d2ed908b7da210bd59c7def3cd0a32263f731bb665db5e1d67d5fa4bf478e0c1e9afb2845531b9fa288e2a242488739a8d12fb28467b2cac7b958ff147d69f5fae7a10028489b5776d657f12694366738af241a49705e90b2b9feb17db26a172da8c6b0c667331abe5a938c04737bdacfcb277129a5eda159b2a49bb3615f67a52854aa2b1fb61a58baaff9000000900654beb0000a56b5aa2c2c54343dd98a567f22a2001a21cd77838cec355515d6c3fe8346e9330b417b4f17eff6492217728eccc7e2b476229b4819efcea6408d44fb811df43617b7a5573e4b115175b6094d0167faabba5d0369fa276b51f7bd4e02e172817fb448bd66c649b5baf90e02b91be821bf4a9eb4e1ad729a9001fceed9269ca11fa840bc0e27211c7b461f00000090af9997db5dd5e2fb88e0801bb75dc5515b33140ea3b110a0c875245e0dfbac1a2a8d3e59b2706c16485a714a3f60de995d18d9209e9a8a022c3f06db43d8bbbef5f6557012f91e14d0c55e84e66c8d9b26175b1f2835644631b052cccade03c2662796265564e42f50fe6017d2bec9b72aaa1e580400c0b71d834badeeb0086c8adcc4fafcdd30123a1f425a156dda94000001bc000000902b6b249a65243e08accbb69634252a8e441e82fb7bba83b8a5e89ca9d921c3cf83321e51b30af1017ba3e7ad28e2db489b86745df11519b99dc4d8fee6cf7104137629951d13c668b8692eb54afadefe13b921f5933cda299d939e38932e9ea84eadeb847f0b089f20a85b432b83178005bd07c62382d21d5a23a174ba0d7b096acc6fb2bb9e4cbeb228638d35ac194a000000901080e5d8e44ac19b04d73b946998603197b987a426e0b12275951cf0b74096e0d62e0dcfafa52dd122a5c8db674e9c50f3f22022141a0eec9e02d3d5967dac59503bcd106984e5bc11b9605c3e1625a22d104501c7630854d92d5ac8bc4e530e94bf71d1c545c526c8e2467f941d9c0b029870fa3ce74ad4719e8f74d424fabe458e1657867243483f842e189bd5e90100000090419e09bbfb6b6b1274b19c1ce3837914bafc4cb2fc6b3a1ce30860a7d26fb27eb393dc6aae66089ff91098a195974349a7121907daa90fdcd18788043854d3df52dda06951b5eb0af2b60bb4e944d1d110bdec3f29a07740a383c7bfb4a2ef95d70244e65408fd4d602c3cbceeb25b12302bd6d2aafbe8339c2bf10fc4eaa8473a1a215d56200ff83eb988fc79c24953000001bc00000090c781f593c4aa1894cf7233694944cddd84c32e79ed9f607e1f8ec7132a138005ca7eb3052a9fcdfe4965c55c918bdd33522f670e008908a8f0a68b68b10fb281f60260d9a29e667bb1ff4f3d4aa3822020b17dd30fddb25d45377f7893c4458341365bb3b4897301fbf0caee62981aeb06da9de44f89caad34bf945636e61417c6a2056ce0cae3792ba6c169c1de43ea00000090990f77f49d6ae6ab786efb70328b23d6e2bab56bfdba1c8c4678969cef8771e1d753b9b39d7ebd90059947d5c4210fb1f70e3ec01f74c4ec5b5d7229843391a9c7a48fb7cd53bf941c308fd9c9c56772199b8f0c88df60c80f69f0b08f5d427c14c8a2ae21aeba6b5e446c8d23ef140d0b89431ba4a82bb9b84cc7d42c0e914ceada137cdbd79c708da78385c37210d600000090fb4e5000cc7f96bc94aaee52724984f9d771dcf5dbf51766a71a031ad2b079a909f6a7db232574ecfe585414f9f07bc1a8e0f778d99b795a1939aa4535ef8a15ab0a38aaf24ae331f5b4dd7db1a21986245634e062f742c11bb96e7610507bf5602a6f9c01bc1901b90aa16891e6b6ab264d4f75ed634991648da5e5ff5703d1ea077e399b594f17a2b6cf6a0f9e2a52000001bc000000909e4fd823ebdeea76f4ac9bdef276929ac8816777fe410de5ceb9ba2aef196fe8357eb207a0dd69aaf54e91e513fac5532bb713e5c85aa15b3cd6f24f5c6a65cbb031a942954b6d211b4ed133ce10866707b018dc3f0c09624a2b5ac0cc15e39a103baf9755320cf408ee5cd3c63167a529dcc08d0a3b497a991cf6dd6acbc5a02256962e56e8540462ce18392a3ed13500000090a5a50d28c8237671f2e9ba72b4c44a861e921516ecce397ab6550fc3b904ebd0dc8c17725d1c604031e39313eec3d1529105099138f57166f23d521e41f2c9fa693ce865e396a0e978bbf312b20c8a1c2ad3ba71312dcfcbe99281a8bd28cbcfb8ccd635ec9c9011a97ae189e7025d120563c1ea5f321ee949e060ff6eb2cbbc4d0402281450ce64237889b0ad844a38000000904b82beaa20715464b8af4c5d8f42dbc132dacd4a41c5098505a2532ee9400258904d7e01c1a23273d0e42439f760cb669e52862170fe1438f3c887305eb5048652eea85ed06caa76eb729ac99db4cc1205fe12be4d8eef99bcf22f2942eadc6c67c11d3452cfbb45756fe7c53eb1c3fe253569407575e58bbe6dd17bd0e255f4d066937bdf27a2c3e900672fd4c07031000001bc00000090506c796c3b2c1af151689b6f175b42536290887a7bb246dbda2d50956e5bf864c57b6658e5cd37e6ed0e845a4da386b829d70ae7d4c1d09c61cae6d389fe7487287548d0d3764f3fdc03d145d894fa5b0fb25b3db62e36184b9ccbcc6b8fef7a0933503a0c8bb6241a358aa94f4fda2719a6e1a7eb6a0be112e04eb914701733b012d8b107db66693d0d8eecf4f8f851000000909935939846a36f7b6b81cc67deb53f19241efc082312c694d428b75bdc7bc65b37d1754a9acdd5734d06eb063e58ef9f487b55d19bdc04624347336b1b6f7eafca49d92ce3b5d07c25ccfa692314b3871d3b6c530e9a6a4eecfc2ca4db29449ebc324ab13b13a7120c9e673078227f8d0432455bec43bdd2f9f95508ab554d732cac9003f76dce3c06e6c32fa55d94e7000000904923efb99ad9174df3eca5f5aeea31d99c8ffd652381f76621da614dfb3e6dfaa82ff1fb99827e464c0a495150b0d0bc366623c94b7da76389dea8dcd15845c5039a75d384819db71dbd3016e3c8a6be16b4994dffcb5f4168b4f88e3bc5387e509e2af895c7d3476724d2a0959c714811ce2b0214ace64c42648a1761d829bdedff093daddc36dcf77976e1bf6a9a9a000001bc0000009020cde63035138ab8ad402105d12d1732305c86faf7c580633368643c06dce21e1995b075bf216b68a288aa19c88ba4ebd0d44ed2c913408289e79d2a0ff08e1deeedaf86526d7b06a264661c07319f8f1961f26c8c093690ffffd4ef9a99c743c278672db62ec06baecb6b612c0855e70fd6f8cc956670948334db77713cffdbd98596d6180b1e6cc2b4f19ffb30b1da00000090b62a31df0bde2b151a18a1569d211464fc46076bef58246cb10109054ac4d4c9b6d579411218969aa3c42320590e7fe884852536cb3c5c767dd2cfcda58a51c9c55260285b0c308e600b773cd9fe96760cad87c7c8c61735ab6b69052761380f48cc7eaa599c9654385a0b8a5eded3b50be54ccd8a32e95240aa69460e41a5d28450fa9f826e1b9fb007b89dd99a079a0000009037899678e255fc45adb41f1738f8621660d1ee0739c9e188e388c1a149a768a569cd74be6bac00448c612ae57056b28d60da822ddd4d604511ee273d1a7ab3c88966ddc840177c13907943461a05aca31411209cb32291215dfa5ea4a7b018d6cab01f2e25d6ee482dfe7673c7a3bc9a2656d2f5708b76c0b3d960ff5594769c48dedca2ef5c14a3baf8625466637cd200000e00000001bc00000090a02a34437953cb184624ab20ba956a5cb66e7e7795e0608fbb65a1f45676a5a8a22d19896f804dfdd9fddf43c7a9826f306bac4044b931c81dd5e2692836ed06f8e813c58dfab0be46114070a158ce2d29a8ae30679ea499d25a2cf027fcc9f375a64bff1eb0d0e9d5e86bd88446463902fc4aeaf96511e154e13416aefd17aefe6bf80d407099d1be8279271ac7a54a00000090497d4c69aa4edd289e2612fdee582acfd94113a81adc9b926f182f90a67671b39e4a750eecb838bc361b24aa5aea61ef76b2e152010aa4f67a4f700f1fcaec159f8a178702848f4eae2083b13d8ce07b0c27b9bd0944047bd84539dc31a7a809db4f1896e8e848e5861275c451fdf3ea0087e8b2ac8c6b86f1ff18a7f9c9eacd29885202b83939d1ac4d7967daa26f77000000901becf8990777fade0cc66ca201d1210961c05d7be339a22d7b27f66c9509f64137e5d44ef0ffe346d083d058ace3087ac6404e9502b8908e443a9d4a2e6d7440dadecf745c3a723027a201c9172cf087124a71d51a03448149c5f0ec792730a0b1ffacf10d46fdc10cbd8944a5335b040df88ed2f9dae87ff60dd5d99289c21f3a88b01bceecb90fb7537902cc694ba6000001bc00000090467da652b98753e42a7e06225cdc53ff5b1c0d0df73824746be8b273ba8a892e073ad63d57448519cfcd18327213f18d34e41eb318a58619b862b769117c8a2371da14577e6e2eaf6c39755858c63ac922868b6bad9385916f2f36e98a1440304ddfa410183652b6a359cc5d921e643d032a97dd000502bc9022e071b9de4c6efe9e8e1c330e1a52138451d2147b98be000000904d75722cf3c1cfbee2bde7ad6beda59129fa02b605e29bb60f8e8fdf86d4b18a786751568039ea5860dff14172b309cb3be1c45c2805053bb4b9204bc909b71423d780090db751fe12084ffe8ee52cab2c3f3a234c1582d93f8aad1ee62b71cc783c5a1440bbc5f95f61f1ec20e6411f282145ca800f9118624569c2781cb1341e9ea9beefc198490fade24bc6788f9500000090e1105b4735934bf09e2fc132666fafe6b8c5f415325959cda3c8f2a2d5ad00239a5bf957491d4d17bc3d1be5fde76a6e7a6fd095877ad09e8c89c0b5d223440568fcdcc8d9f63deb504b44fd31b9bcc92b618bccf05598f7368a7e7d0ec17fc43f67324487cf25506b6d86bdbc9fa40b066527c8565cfe8f24d520330cd07f122593e42109c1e6a56280d6175b214b03000001bc000000905f53b38f3ff6524fed6744584b9de79f7994657d366dda7a44ef35e491bb47e4a6afb1d64914ef3c4c2cf80f4a3eec3f6a7be753951cccf5e74e3259fd107f52248906b3ce9a453df9eff53d378aad912e09bf2d9c51521d4baced0367d48d0d34aecd7079a1a0d6f7794c3a0eb2f3da0ec3da8e6768300d31ee7614ae6a7b1fcb33c0561c2eb495c3ee136999bff1bb00000090b0a43352a61b9440f89246b182820e06cfea5e5b76b92f82dc7a001af97e299d142693ee6342cba300aa49600b1a68b173b3e080a42e165084703c2cd78b658fbd76179479dee44b91f7d64dfb0b4654019169a038ac4f9278104ce9c86b73d73ab0618baf302840abe35680a96a73ad1cf698b39bc9434e3ec07234997161f6663e756de9dfe7cc18bce1fbd55efe49000000908768ed7fe59b799f72fcdb0a51678802d7d52c2f1ad3ce3e82cb55f9e13a2a2a7f0717cb3405b419fa70774185dba5559a6394597bff541afc9b9855ced3b2cffbceb321c61d79dcff8d16fe565e7bd829e8227a082cafe9a8c54e78abbe558399a8bd8c4554502d0c3533513e8e9092111c31617a558e1b80683ff853ec2fba5b0d0a6804c22277993ce30505ce7d6d000001bc000000900dfcc08ac932909fc5c53a0796ce2e57fab99a85473769ed8d6fef4a3a985fc9b67ea00b32b42112f2b385e03d12d6e82000046f7641fd20d5e023a62e59473484d3b27a88fd9155fb8348c0b5d3c256020f4196bc94772261d1cf2554dab00289856497515b02b5d64a969ff110389e2651434a673cfb93c4c8342245b14d12a3f2d4e04ac28c2a3cec4985aa60a11100000090090e3a8aab03fa9ff7378e6c046aa74645bc8934a7b32496c5c44e95b6e1c513e4cacd2e7a15bd60ad3a5da2d5079e62d2d6599d5002574c4a44848abe53725eb088a6bebb8be9c1d34f9d699faca46f00a0479d32a50089163a9ece3eabffdea84a6d750d970ac782f421fd9fe16d4a1d7011d993fbda0e0f6a686d467cb4f06a559af6b9a08d1808f8e0037ceb173a00000090883aff6d64db8e38971fabf8a9f9af6cf6507049d11bdafb6b6b2ce28977776c2efe0890c4e799b91431803b7b30986d6a02a9ebb84f906b528742e843e40e0c870abd9c92a4ba72f4871ba1a8dbdf01067e244a9cecc1c86368361a04d867e1a2e7c178e4b177d0919bdcaa977786f109c0e1ee1b67e4ebf569f6acddf79465c73f2f0f3aa272ae53eee1e7792a8f46000001bc000000900f51795533fd2b3237c030cde9534cea52e63609d3335ecce97cad136e5b46c61e08577e6d769bbc229d5daa3baaac2dd45315a4ff06c40f10ed079e31b7b7a29ab20de0875ac17293af3f0815d5fd7321bf9413885ab4dc65b95175cf3a56fb3d4c5a09e89d307239d71305c8a8eabe141309fa78263954f89615e1bcdb8da027f86993136ebf98954e3ca8c60d410100000090ffa2b02b48294042b03369ce58e5fe42ea02ff1179c95247d0650c0e11d84c37f39e9759cb1fabeec0a823ab5e13edcb348d95a6a6d289ce08566e5a4d70a73eeaa811dd27f516b0d2f24c0dbd588c4d282bdcc68e702b765460c71ca2f1ccb1e5d1eeba6c21b1d49d83ed90ace7b7b5182fd503f3cdfa8ba26aef66cd60c15294e99110e4853a6a40291737fd8973c1000000906127475a154cebad847ef4e13c47505d6dfe2710e78e0f7da0e54404d6dd5527f97b4be8faa26ed01ebf4539e907a0aaa36d50bea4e5070a3c7420cd69e75492171ea75c3cda0738992617c0b25d3a57134064e53b214c3c4a8e8ac8f65d01d11b8eb89a65b250b9618673758a7cf8a21dcdfc7862814739f914f4a8ea958fcbeaba3589a688d83a44372de8d4f43b57000001bc000000905f2423e4a34f170fea7ef6fab0afac86916f46cc63af2bafe4abac291ea22c70475293d9d3ff5cc9d3c289df53d2f89b98600c37bbd8c98e518ce6a57122c9c7fdb20d8b2a09e7589662935f49acab652b938fdc790744eea716490ddaed0c65cc1db72f6848968859166904e4d6a4be2fe5760c55f9cfbf9cf1dc777f135257443129ccee09af6f961016c6d9cc4670000000900a126314aa2898656775dc82c5c378fec8d3b0f288048803ebbbdd60af4f3582cb368c5630c21664ee52c267a0cf03b4e93bc868e3628b305b9222184e65d81edc83e6b70838e513081c3e20576a46142a8fce23ab1ded76a6ce6ee942536c18e0fbbeda52b52da9ea5e2ac74fde5ba417cc779e034accc8edb235d16df66ffa4baf7d09faa56f8e71ad8400101a19d300000090711a3eb20abe35ca2bf20ccb0565d8da9d8bcb3cfc0f25bcb102fcf991e623cb26fa3d5bdfe56c4be20f969a956fca22fbd98acb5cc3f6359ef89a190fc14ed488589d8df19968e33aa11f06f0c2886220d9e8c25c848e05aa2eb37d65700be60ddcf12b2e0dc68abda4ff1a0c1015a32eb24fb4063fa6b4bbcb67ea1a703a71dbf1ec539003be8b14305116a62815a0000001bc00000090f4a178b982417f2b8a84e417ebd97c6469c4636c6f0764e7dd218000b8cb98001f0c91b5941d32143e992f45a71f30476bf98de53ad0deaf20dba1e3b77336d4762ebe2d6de9a2d3fde420394bef0b1d0aaae4c8ecff1c7f954d499891dcf870d9233981fcc493bf5d2e82b9009a4a313006d7864053673999d7e76559726144001986f487f6373304b8faf62db6cf0f00000090014807ae73eb01af9f6571c18b32b4a0ebc8b7660e8fe2509146d8d091bd77ab93521749b48a8b3ca9758fcb8b3ac7a3cf2a6a4f2e0fb805788fc354ddac8bccea7e85f671a215bf91155627e8e82543272c06c27d51f0a004bf26c60c4ef2029e64cbb03b2f140f53e016fe5ec4585f06f0f3937fad030bbfd66c570fdcc1d8770ed62ff385190ea5d8737d2def55c70000009046abf304d47568ae48044fee0607842b067ddda0d7ce5f7f87f5615950e4b52f7b50f45594698eb31638295b85bdc3007b60579a1b2335902d2b2006d71af22b136b176c73d8ec3e3d0e6fad5aca6397209fe44a6d74b66d95a0385e92f449f633bb49d092b9841059e85ecc347dbcb0178688cac913a4f483ce6328662ee127da6a375b8dde64bcb73c51c99bf8372d000001bc00000090b6f3b606a3c93a294da09a362041ca83508268ace922cc0657f24e57876a918892bf0d4619838d8d8ab3a9f45f55f63f39fcf30e7e45287c4f10230944a882b849980b2d4f304f1f3149adf8f1e4600415636ec058e3df7e21c513d73f5af182599b55292fe3fdeac2a4164a76aefb4e091c444a989612291ace4b8d71eefe69bd0d23cfbb9f23021a428e085fc21dfa000000907e51519f07ab199e7bc391ebecf3997c4aded2f2fca4712bedf8e76487753e42e5ae8da66595ddd2c77d6b71d97728e1d064c875a1366888057837e56cc23cf0e4f75df87f4fc8e138f82933fb5d22a42af65a94e90dd995228efbba1238c70154a8512580ad3f40af51ad996f009097032e2a4ca6ee412c49c4b875688a0487cbb8802010faa8b057aa798e56b6028000000090f22fd7dc2d68e0615fa539f0df17cdf74866897e2b0bf64d95b3b10451656853cfa3aa4134739017341fb28f8307853e6c59bee33150deee13db9fdd1d5527a0248d9de073f78c012adfa794f38808792acb7b7a8367c3be00223d825810052372e5011050fc4b3fe3e7d3c6515bfebc3042a0e2958b437963501cfe890158011efbadbf16c559605ebc97d0e26b190a00000e00000001bc0000009084cb8ba3445d1e8eb691c9aa24cae6ec1cd2ac43958429fdbf3e433ad8c640961f549226124bf1da3e5dee1ccfa923cd50a041e54370488f5192180f8713689b1da7f98ac4ebbb7a93a782a2ef8529da1ad9f22d50de98511e5a67c24bbbcf0afa7f9305b3f99e575911bb4e0ef22bd00a534d57481ee7348c1b983ed0f72404f7dc9d74b65b4528fbe4ec45025ec9c100000090bf7fd0298b14f276a9d0993a6f34c3d276d7baf671108f95aff32dbe27b89780bb4e2b39bec7335473b58c1e95ae2ffed2034bbcb096b098813ec0cf98ca6359c41195be395b3a346e86752d64feb46b0f680e008c3ef914867c601058aa42b0d22adaff735e582b6d0c1ea4d683afc0297ff5809a4c6555dcbfb59fad6409929655b79dd7012f9c09c86abbe4034903000000904842effecad5bb236671050de6a76141c3b359d35038ed5585c7d1728ed03ce0f95d5d6aa503b03df25a0f5ae7b96a89694dfe4445378e873615570b1f4ebf97ce6e3197058da6184f88934780eda41c23d0d19f80aa9f2f1dd636f9ca3cf8b7b15cb9333be777d46ceb9aec938f1a9f14d401364df56823d755d64c250cae6f55f279503d84c034ddb45a60ee09c24a000001bc00000090b167b142a62756b45c3961c1403388434268acf09d30de46249b5e00c9fd825d8b3b9ca8bfb8ed3a0e9bec65bbe1bf83a90be2885c16de7416e0d3152e2dfd9cda876bf10a2dcf22a08c5c26f56ca4211d1d1720d6965e473825eef78c1467bbaeefdec81835b2a959f4cead2dfc4f8520b37a5d07f6e7f2fb7aed1640d05231055efd74c191cd42944dd52e118c335b000000907bc17de7a1580edf956285ecaf73deca33d440d4e3be36e03ff2a107a86a3c2be06109a7065f3d9ad923967f34bd8544b311fc7c1b8777cd33e0e1802ac2ceb85b2fa185e9cb750348fe89bc71d03ae01a70e416c23d15a73a4b637c4b12434668c05e016bd62f63016022d481712fc70e6d7c9ee508dc22795f4aedeec531b763329375afd6b4c9aaadc25f5924ebd800000090f1de5dc30e1f0f695e77cebc7937a91291cd59b46a6404b7fe37b03e933b90008bd2c30656bbf9f12f152998ac99f9f6e89bf58dba42f3d2e332d28b1402097e1e6309351b4ce25cbdb42d453b1b53a42cddaa1b3b5896a361e60ef098ec4274ac3589c770391498985f65eb6b2799ef2c50ab6a18548ec745ec2d5b57c681cc53bbfafaee5cb65c2b55d35c4fa12b27000001bc000000900f3bda02044028dd31dcebfe84fac7bd78fc6ae5144c6d57f574cbc0393101f84343a7749ea26734bcf61e05ae7f8510ce72d7635aa3ba6c3ea84050897ed70f19beb46639034d092c9246a69f2ded26224fe790a09d56729fbccacf9c97e085766ee8179ed4ce005a62adf9484811b91cdf455d0f492bc1f4e188e358aafe79fba28d1100917cb679d1e10ebbae5bf2000000905793d8d3ddf401259532e5445aaa20699c6db0748e4b0f7aa669865a885290809d68cd9999da66322249fd605f6fc4534b58f4bdde4dcf7c42b43fdaea354e5fab0bb2c075e76dfaa7ddd9f31919d8b02f6c1aaf92255fc94e7956632f931a9a05e860b46d6503f1c49a36ff2a728a3818540658a73fcba37b7b1e41ff3db076e3f2c56bbe3b2ad39c4b9313771733df000000908278ab7452e5b76ed2b4615f4876ab6b3ce5dc34143acc12ec339d38380703cfb0d7bac6c5439977d697fb42a1113bee1257de3d26d3812d50b7ab4b0e2a208f436a274a3f3fd3fb55162c3864ab482e08121ab852cba22fce34559b728f11185796e149d0098f7b8827771c8360ce9403fcd119989a18dbe11e93e3769bc9bcbb0017bfe5104d8512d08bce2df94faf000001bc00000090a714ea32fc0b6100d5a6ca587089226eb63900f812b8e3496fbb21683a1e3328fbe3dbf03d788c7abcab8daa2584cb25d3289444cfed8e8c11c8f92df6252474f150fd877d1c77c412d87992e052bb3c12311a42ae3c9146472aa6988a6a7bef0b745ae22365267aa31d8769b7440da20b862062b6468469ad04461d7e22042b1128fce0f74a48daafa86f3feb22481000000090126dda6415cf28d8c15918824056b73af8d2fe35e14621084ca747f3416807ff97712c4b0a47a8141b59e5ae6093abc590a1543b800f0afb15f6d15b98deaade581e10dbd8363004dff69d720b0c854c057712fe594a377070fd0b9fd5d99b280bcc65dab647525f0ca9ac29bf79bdc50a511079aa41386d66dbc484ae4ce3de36f02e1448e8055671c31a4edc1915dc000000906cf487ebacb644c73aa14c6f6efe906a0f3f3c51fc5b37fae4dc07a6dfc4e385e66e8c9b0ed97b254b95d68e9016c48d5d8a95823cc610b7dd2537d5edc8692e77b706286b2a42fe692f03cacc715f7a2cf0f95579be4b13643ec68c4dfbd1a27d443a2fa2be04152c91c6f9913cfed3250a6b76b62e842470992969f62e0c93e0125df2a2ea45bf3b34d4d03ff413b4000001bc000000907f6ce61f0481c04a8501e82f5b9b1f15b6ad02a29f11ef0144304afb07c74e948e2b303ccf02625080e07ade1b78a5e238ebcebfa8d6e5dbe8fbb8082f858c1571bfa2d7effef0f5eab4b4354fe4f86e1166f450ea65f4b7112f2834ad10b6610821ce59eeacbe6089b6b1efdd6312fd2d778d1a3c18b4161cfbc7848174775f1420f41065a6032574ee9cf3036a177800000090ebc98f13920448c918575bb3443c2ee695c299c885ac01427ccc0dca0d9c306d7d6414fbdd9e53ccb2bab77142521d319519f804f2cf7e4c635d069b0e2ececfddac01e6950187c57571fc4b0295ad9120c68ecddf5e1b8dc0574891e02bffb0fbfcd950e497d94ef1be197bb7a038772dbe336686b698af16be6d085fdae9ada7082f4eb0b8cbea45361fff7ab1abd700000090799f3bfd9941c13a30d8da5839fafc77dce3e790ee4534c5a8b59c53ef2549b5afcb7f10496f5f5f3869833aae09f9da0de4bef8dcbef9c9450ff29d44f2543a6ed6805022d364911c31c440c6932b722c31162f4252f67979b1fc43eed3bc03d4246b8be8ff0d81e9909ce9bf7ced3d286786648ca04b5b7fc961d7fcb0c4242bf1af06f2c0e5010178c667b19d1556000001bc00000090b7e47690bf8048a460722c62b9a2c8ed97e6836a601c3ecb3a15999e4ef01237617d2299c6be114e773abc4c3183cde0881fc936c1870ba7c6e4c17647d8c6b77e71da26dbfd4cc24ecd13a7e9d0b8e51ec7e06315a6c3d8fbbd10b8d7086427d7a9e77941de63fa871a9cdef830c73a01aa06c09ddcc05ee8b398ef7ae9e4b7c0aac1037e0e1dd0a17f761b3a7880ea00000090cfc2c09b3603f2953ed595a3e390546ff704d4ab9efacf9eac285181abeacd175ede168ceae3f612938600f1b746f982beff4b0d81061cead798174475fc8cfc3c4e0871f06c6cf298c163ab605e458a26f98243ca8113fc925d7785bc7f196ca1242c8ece47f294318799553375ea7923da3d384b32aae3654baf4ea226dad4a46743f80c51ed051ea670fef23c0c58000000901f9acdc7d2f7392a9824ffcb931a895f3c90736c4b6ba245a1f25820c95c409cc5cd0d066671a26c86ecbfccc11bf8a1e398c1ddec76a1a62fff3e635e9c7f1da2d1e9e4eae25adec724ef3afa2d592517714a42a6bee8b442d388ae251df657d673e7a00a4df2f8cd79ff30321034421fa008a0634dc94a7059fb24e3ec8d356a22818fbee273953ef204a1eae7f352000001bc00000090045ae564db9408a285d0e7bfb61764b2d2771a8b62be130363b46d02b1e4cfe0e100c629ea45f48258402811b23aa6fc8bb38f4ada5d7f1fd3eeefeb3659300e8f3d7dea33aabf09ca656a3f9538273d0bba2c484ca4afe7aacbb58e31ffd2e13f900a273f2cbbdfeb72d07c06787a441e26e4053ec648614c7eaa9fc9b4a3d45732d3ce894b8cc4be558373cc06b06b00000090edbb9629c4d785405c34715c64c224f614ccee4216b4d3d50adf3b8a9a60f4c5a09076425874ced5eaaa2394fdbebe82d473a184b0cc390fc45c6181fd5a7d0b75da058489b3e0be9b08d7757778075d220dbd1c50a8b3dcc8f3923d90ecb921d2003db451771782b5b22d14789d21e015cc71abf1bc5c12bcacf9bef8f139415c0656f00f8c616f9377cc736671b7ca000000902e6da3bd7444f788bb5f61cf7eb443bd18620e2a51dc20737b49fe2ae30073cce4ddc0e1d00c0647370daab89c163e8a9fbf2a60a5a9cb43da93b6179cedab64ba1b3b9ef32593125f3545967ffafc4a2cc49fb745f2285e7dd5843a6e867d779c96834ec0f51a7320b7bffcc8f1eb252dd7f62c5fbb9d7d363b8c45c9115a9e813728c2f40354765821eafa5ca4c187000001bc00000090f2c28cd4505f4e3e8c0281ba01003a7372dab291c27143a3ed4f6c0223cc2eba89cebc2b30ae54c75c8123f4d11becd8192117f24798dc428d43beeb9ccb53de1878aee07c143e68bcda1b7b94ac4c080f274c3565784621ed0a98df2be7cd2981ee4e96f0403333f62898d5725d37420aaf740f578346780ce46e4c73301377baf30e45a40e20932d46a3dcbba173f800000090840cc48dcb32068ddede051ec7519ec751f1299887d4b1445d3a342c055cb2a4e7e4c1aa01c3ba098eeaa4c797b771e79f8e5df2529db1880380f308b94c78fdeff620ae9717bf1df5f56799913d0b8f077cad842e3590119649b7c975c9f5f192c01a48ee441450888f72ad980cff99020d60d85a60e75b7f054768be27ae37597f63e0ee4ee4ba76bddc91ce4facdc00000090a508cd3e93ee71301389e4b6bf8f037880237cb9ea54fa0b5bd25dca05b6b82ea92fbcf43aa4f5167136c513d692a8694386437f04559fa3c45cdb97de8f6ab22a81285c51f17134ca4681613aa905960c12a72aa0f8acf9a893e30934c0ee51bb7cc8af1b65d2eae7cc1c81ec66f21225b56ade81b8fb28c12f3be6ad06bb43a013d9bc333fa297ec001769cf4f70bd000033a000000ce40000012800000090f2447cfe5d0e35dec0f538cdd4da061239c4148946a931342120ee13d3916fc45f89d07952cfb04ba3087e1c44203a263212b1dd63bac258e4699e6b2d8bdab5a66193be5d2a90b715f9aea4c98a48f7274751a680e17167cbdddcb5ec326dd917279faeb47100de5753cc160363932203ed202046e1d758c020fb98ad72c0c0c0cf0ad688e41e823176f25b528a130000000090e5cfeac85849340a565d00357244ec056b56f522cc36cb5934ef40816e764b9d460ad0e2e0f8b432a2d1c77de3d657ebe7ecc9a59591eafc838806d5c0b48089dfbb50e8d5a8758bca5a89a7ec6bc8ea04808f6123ac0b5d770af9e79556ef9402fa454bf8c647c0c4f57c3aa3de9f680366e1078d00701f0fabd38e5340ac4335206c4e664c3f59cdd8bf71a443202100000128000000908256a6b22ac69b10f1c88dbaa460858528a34014b4618eb94cb6d33b141991ce297662d564c7c7526076f04ae8fd18f398a7f95ea2846219211ad6d46a06bb9db06760ccff74ee98a14aeea318d79f730a702b35674eea92593df7e3cd0cfc7b5c03ef05651aa45e5d59cbe3d3444dbb08bc9d2345b06709d6c90fea96edc6a6767ae2485bff3a025183e49bbf4ec5e500000090ee68a29d7ff85ea8c764059aa124ae55e6c27cead54994c1710b5e2e338b9cb7b7e27e5cd24c4a010fdb9b88cd41118ea032471ed95389c549b00975f1a06b884248796227c233bec0f4c7dc5104645e237fbcde6b7a0b6ab91da4773ffc395cd9128584b55ce6ed87478120b351ee3d2aec5e851c084d7ab23e5bd14e0eb0a43ba8bbdb88707f6bd3fca877045dfbac00000128000000908769a8afa81b2be1f5ac34e86a792aeeb6cb920d1e8b676ac552c14149922c7308d56ead2c072a1363b7bd24bb9cf3068b809640fcead0f82df0e9af40b556b60f403b48d3ff79d118641a2017aa43351c0248a35b08c3b68058bb5fcf273c70632e795df0b756f941a914c295c6f0d422379a48256bd856b6917c47ee5d511fc0e3e96d831682a2d9bbb64d6f6f531c00000090c172d1ad5319ac113aa852791cf6c4c9adcf2d653e3b1d2c18c7bcf12244118f8f13bd75754f9925cab9d350e120719fe4f4b217d0840f7d0ad5aa4b03df59692cf9d6d7858ee76516c565398421d28600b286a23bfbdcf4753cb6c7d6b31c3663485455b3b1a77085db7c4855b9677025679a15e2c57fd556551a7f0546a17c39a71112abc02519740d17da534cfb0800000128000000905b332cf087d7a2eefccf2efd2ecb28b4f247ce3fc333fd127edbad79259d6950e11b89d3981966dca024e706392a8162c13399397f7b52e81627e2aa8c702e9d0a13cf3d6e845dadf5107f7c53ca72f31a14ae94cda096f17372b2d33c36a204fdc3a509da3ace4b9cf38d6fce449ed81e922bcc9df80fa48f9605f236e3ec49787232e9dc3c346b977e8d35a84cee3d00000090ea93aa776968377736c4c92426e3ba625574941bf493626eecacb474fe63117a9dbdebd60b1e7a9d04d2d1c699a661f793ab26d9b16984a8ddf489d2bb1a90997dfd2476d17a97fa909246fa950e9b562e65dd6e9f76c5f3966e489ec8b2d3fd006f266149397bf288271b0d0c48ecfc0521bdb13e104ba020e9882f84e95a079e912c350c965127954c5d2afa87c8c100000128000000908bb5d09ab3c465d6895e9820380d9ea481e0bd6b21c0a021a0afd5f5eb66db1d8e3e3cf2e453ddd14a64363636e65ae4a45b623f1b8c1be328b8243030308593b33c4a6ced5b6fb7ff59afc769523c71272c55fe926937fb80663045ba70be378ef7f447b512ae7321fd33d5015022e916625a8bb5b275bb2fb9789943c90da841764dd3cd6f78df85b16b76f2c0942400000090c45d5fdc5a24ed583703315fd66a17a30849490df120082df3d850c03b802de8bc298348ca6ee668944115003e488323267e74ca5e297e4596b0e4b14f15a784737b8e1396ecb32dce095646e271139a1fc91ceaef458ef3d4418fee00489596dfaa0655f68b6d09d6db0226dd677d85063f5c7a36950bfe4876cdf30f3ad44cc129ec5013a5f105799b9cb7665bd9420000012800000090125acdcbe56f3012f4c7bdad1498afab72426befde65485e12877aa279b0fc29d743e0d637369d88c57dd498e14ff722e8fd106874b17caeef977a5ac3dbbb16280e240f400101cb39c24ebcd890d5fa21912bde838e3aa3e2b988a5e995f240b5e3d4596f431269c27c3710eb3f211a20b5db12df06d93970de28b0f525d4ec762e14158059d1fec254d9c228d2044400000090ac05d3fafd40a18aabb9e05b4bee1a29dd2f966630ef0b4ed9cb751a1cd02ed11e16ce1085e482ef1b6b7c0c230b4676dab9e78df98d2ff53a39f16707d243c9fea8261c30256acd0d60318ae74f0378205c5329d6f74f429618c2653cc22a3c98fcd87b8dbe5136929486b6298094c91d2994483a41c75856187a58355361119e589ffcf53fbc3adda3d28377d3dba20000012800000090ed18002f39de0046b084b4c5c1a24c93803f8c254b01cb25081a91137589529cadba2a0a1468e590562e5ddfd7fee95302b9ba5dc999d81544414955bf9de1db0ece6880a63a54729b78fc00f37295d610d10911c93e9055577f9d1c54ed67a38e51fe69d7239ee1a6d2d272120918bb0f9fb9e0bc067c3798ff890c6666b7ade2cf3e9f6a278d74011aab37c541c516000000907b5fec4bcef780b5add5aec8c8d01592bda3cb02df5000fcd81b54386af7e5c3200a84af0a5e5777ed90b692d8e321448ced8cda058ea875c80312e30fcd5fe6ded73be5a118a9f1bd8d01415e32ad95119662be5b4af2adde91d0954cc459b2948507f6586f42043a46c4ad86e7178b08669a12b5604777b666f2a6295432dc7d6d26d1ecf1a6759224fa4a76952834000001280000009047d951481717aef06e32f97425a78cd76bac7e11825e410f58427b851a4353679061b03e54925e84a2e68d749b7b913b79f5f2dd57b421c6291a92b6fbb7e381e76a5d2e13385a74fc4be8f3996b6faf281297c9a8b4bcf2797a9283f20f38a018372847cc141435a4c9a0d25faa0eef1a0df45fb05e8e53ad117338cc34076badfd0bed5e40bbff2b400c180930508d0000009034b7587d8bb008360dd4da268628e54e028827ec4ab0eb07601890f247e8bff34ebaec8c23bb3112fdc7342ac8c39e79bc72377bf40909c2defb06c5df3bf928abe8e8cc758c6a49ed9bc8be39a827b1199061f212870f238c03d98eb903df36ff1bb41ac1756412dffda965bbd9bbc1199839f66042bba370a96bf42a42a88cebd48f28cc4e3a56055724b06cc92d0900000128000000908e0b114eb3e10fc23f096a4609b2622197ce3de9b430b4889da65136a37a90918aacc957a7b948789ed2a1d54772988c3e1c0126a2af3feff334e48c92360768c4d5815b9fe90da414cb768be27fed8a222b7bdebbbc800dc718b332b5e6fbd3044f979f24e793b5f0d1d250a9a9804711f051008fd44d36b9915a45aaaf45f43973c643c5ecff08d6ab1c501710ac4300000090a81e5275e7adab5899efedc5f9cc9f1c1ad18d1ab3109a981e6edf3f28f8f5c94af30dd0d967f5bf87aa204c67e4049908ac5f5342387dde6b2123066119867452eb3bc1392b15d9eb5853421b3842e50f3c1a18f8f91aeb746a2dd97d47022e0540796ae98e8b196f61d61df339da42253895df9f5575fc24416e3b36fce142c6361d7e00c118e5b67a15dcd45c3dfb0000012800000090fafd730ef37dd867dd28d0a395f2fa2dbd9ef7839c879ead19c26523b44f3e9e97f6eb2d670b9c1bd9e5082cfab4cfd796ceeeee8f8cf6b7d2919919456fb2fd57ceb87af342250a27a4e9765a9f0ddf211e82e5c8d39ecce90ea11f785d188e1e4684fc621297fa942d4150a447ff461f853e7f3daa205e10509b197c5841ad7ff18886bcf373c4314beae83fc4c1b500000090f36aff09645fdea0f2ff84ba3fd5185b792b91769a3d122a52e7e1ed2851c961083829315c24c0a71987b69b3de40c1434d1e7726d7c463a1aa9a1513c08f434797005e41465a41e40664cf6027bb36013465e99f05e165003e1240598a4a8b939314b74c592e23a8778230e5923154022807292f1253da4463f906b7a18f8f730f66bad1c864cba79699dac0f805be20000012800000090cfea606454e37ac1d74f741b44d978dff135c3ceb3ca93fbf27ea489e4e63dcd97de05db4ba2b3fc89bbb11c51c881af2d00c5feb0fff5052b66b3d91fc83f66cdcd99fcd214c71a3893a49b8dc1888a2fa9aaede00519d559b234dcc21649a4bfd17bba0d016fca889a80e7451208c31dcc12611b6e5e2a035e5fd6fda2ac28b6ba5887f4ccd1a99e534b57e67964140000009050874cd15380e8a8857c99fd2228b908afd3a55501585aa96636248ca4002172e24bb639b63c980edc7be2911e9058368887661596385d46116d884e198d77886a591345cca473f90b5e9cd03a7b35890fd29f500e823bb29896909ede12ee25e8ef0b8a498811f5a4d9348bdd5f64502b7c054fd9fa2c8474a8693150441bb5f1d8aa1e7833c1ad0925d60791c7bb0600000ce40000012800000090f68706640c49b89d76bce2e855c1cb6ed3c88bafca65e8e2c3c1318cf69026f5403162faca9effe0ad59dce88d803d15a55a2a50eed6838c194c499db466480873baa2cc492f6f07d45140ee7f92cbda168832ca89f0adee709631aa2edf3b2dc3eb6276b009f309e181eeff1160952c17a45aa4e317262067dfaa4d7caabff6a2d186441c12f0377b81e81e1b0c09cf00000090a98d2000036b63533f9d4d74802929ee5295e058aca5b4d9f3c717f4220555379f261771d83bb43a73fd2da49418d6ecab713734c84634be3ecadb5899bf3a1b1de489298c94bef282113d2a155a27d218f065d2225e4b45fd85d5b5577d0a1d4401dc39246fbdb11656a1a54db52b9d09963ffed95947449fe2d6606dcd941fe7331508c67e2dfec0cea736891491a30000012800000090a34788f05ec5464a5d160d224b94956dfdf2fe79a917dec1103db373a4edfcc35de3ed39587ba71b48db9b3cb6b588141e7a643c891b83bd282e4fadc98eff5938237885aa4f566a7f0f1c25495178d00d28efdf4840d821e9de9ab6902760eecb18718c70ef1d8f483742b5b5958eb5054b32d6baa3cf3c1dc0de02269112d73b6a9e097337b30fa8b8f79f5de754d600000090b700e46c79745e2c690ee72cf15e2479acae687cafc753f34117a31753856e84e8e551405cd88aaf38a415bcd3d907d734942f8863e905ff5f1b6e44d41a34e637d5922c54451e8dac9ebcaa2451ea3c0f0d23af28eff0f06210739fca63e6595f355b68c28e59d43905a9971b2e8ed806f05d846ac1a2b576f859e034b6dc7a2ab9735ba25dba270bbbeee354a1113a00000128000000909c2801cd886b2aeb8c9b3d05009b367857eedc0894b4201bd7b19e62487156b3f9c66fa9ed555e6d905267dfdb0c42c81553519b0657685dcc26d23e203e5a83b11c6469b20367146e0da01a52f8be7403c24621a210e1cfa4307ada7a3c0e566fb0db0205f22ae31f99dcdc6cb6da781edaf33a3e585c0f3f18ba8a50654f42d4e347680c2852b07e836ed926a4f2e10000009022d4632365df1c05c6bd6ff79a3a5834e96a6be12250e145ab3b220fd289776f046387750dc1eea9bda2d1b9ebe8a6998315cd4af34efabf8e9fbafaac66ed1f7336007bd32cdf3ce3f4536206533671119a68c327413f64c7938fd02c4cd172aedf8d9fee3290ee862dc9975240300e0d29b68b81648bc450915dea6acf2ad4e3cfe51c5c5a69dcff7bdd6bd6c5ad3c000001280000009055287120f5d0d90e546d33e0315b97b8daf0531dbb53e335744e3b6c71806bd0363cb3960038eae8e6a81a9ae82d6a5042645185977708ea215e74dbf5442fe75abdc1d63686a27e598d038b446d5d87120f5cc2d89f99ab486c22b498642d54b35bcd98f97d0505aac155d9f0999a600383d086caefdd02a0b61b0ec486c5715951c921a8860a925acacc3b6f09034b00000090a3ff7ecb284c46456ee2f1c848d23eb818b76348333978d2b9ad38e68f147e33c938a62955627b1d5c8bd7b3c833f49db6397e7dd6182c13fac83b16474c75e9250c66f2b33a4df056097bc85f82a1082de9575552c108f3be52d4627b6300ff4f0835cc59264bdc2e6ba76668c45c4d2cf2d4f6ec361d55a567500f7df25210bd0358b907127bbc2227e7dd6e11aedd00000128000000900768ae6cdcb2874623bd888dff2840c24c432962385936d4121fa1cbe25c729637ada228cf68bc4ba653a5eeec50457773de7f2f8c01354f4a8fad08c13b8a35483cd86f42dc2f8365d41e4aaef7b971101adf6bc962c4eb7ca8a75fc014000be505475d5486356f3ee6ed18780f3d040d35c34918cd7446abb9b29b42e1220c8c8ca606497230074065bc6f0c8ca1950000009043e49b9b9bf698ac5833b4f2c793381d24d783a88b05624c65fb40daf033cbdc4ed3396d1570e41d7b59c74c2dac8909c30dd82ada7298ab15bfdb468a28b7cb3625ab0359fff06a9176717882afdf8223f08bbbf3cf6846983e823e9aef041ebc500c3338cfb5fc13a59e771e971f130630cd2391f3a27d202363c5e6e45a238726e1daaaff38fa94ed911a71b5d91b0000012800000090866b39af31e948c8c79362a1da49e464cdb850ba83afda7225d9a17bce36cb5fac6b565feac9036fc5c7658b0b97b99ffb91f8347922b7fc2f02979f1c9e62cecf34f0be43a0167f34563601280ccdef2a682a3f66f9ea5ccf60753b2c5de48c2e93839ff3d9e4dc6435122bf64adc6d0dc8db9115597adda56af9aa5c2f55f143dd631420dfdbafe570fb4e3cae8ffc0000009009974f39a9c957b9e8ab9529a94a889d2707d2707bacaf091f1423c8849433f43a7342e9ad9e82962de035238f36622cb66de975ecf8f76be25d3992549f7701ff9489c79e192ad395498c562f32f51e27cd337800aab570910213c0cc07c29b6e6296880be5e5b2b3d07c69a69c89a003d9a76f7024fd5cd10e8348572a45f56b4e056f0f94ddb2dc6e05d4b776b88e000001280000009045cf7c5eacf9ba09e9c95d527d36bd3cadcd6dfd02a14fc7f02db04d4e7925a736135ba8ddee53fc573ae4421782065e59b78dc25c070f30611f09b4b129c82eeea7e22ca9ba38dd0246f400ae0a90501344db57c4164f32355a14b907a644e0d6ea8ff9a39d8c43469d3293df34e78a02c7d55f2ba3fc81edd5204358b03689176373fdd485eec5568dc09bbfabf03c00000090b31aa46739d14c827c83db8165832e99eb6ed140e4370c82bab3691e40d4b27bf6244d1f2f0fe3c4cfe48811d6ac3f2682f0163ae2aa135e88cc03d57b6a57c47becb22dfe5aa098912f6c32925644d10e8c3ad291297b05fa7a7cc8d14b07b02c82f733853fb5d67fee3b82bb69d23e2cffc279850d00197dd519f1069f520453ee19aafc60be0f24dcc0d2ef29fb650000012800000090ab69617446f4e8a101fb6dae0891e546fb3626941dca4b6a6f1cd8bf3d4eb6c5d24446030eb2d3464f1a1b2be55e229743acd3af5ee14736e9754db2b6a71a25c28ec87cf91f4aafa69ae1de25c38f730b13031c49ef76cca0c031ea608feb8b96fd2964b2794e578600d9fac6cdeb490883befc85a8bcfd25a5c4058a32a1b4c0dd777011f9d279649c79ed3297e3c100000090ea285c344ebda47e95fdba0c8a4f21c0deaecd429062fb8512a93f5b1798946bc11dac47a8d02e83f24c018da7c78e5ec75ab7c50d4bf07c8f751b33c93c47993b204aa5893b18275357ad4f4f275a5405b63c3763b9014034b24d6bf060362e59049ad69149832b6f41d1529ce547f12d11e988aff6d6a9cda613ae822f96862277bd67a70c7eaa8ec843d405e3c33500000128000000907b1e4391fa6826662c470af0269440928d964230d61af0e35efa58badfdbd7b9fe1c04c3aad996ce1211a368bfd2704138945a75d973560c10c04aaa07b876af3d0b4cec2852087624214492393a2efc2b125b26233c7934dcafb79c15bb6ec8547e9babbed53d81dd1b343d560ad9ca08f265b3387ff63b4248905d2ac7f34a426f7887417ae4a97b8c98ac69c2dfba0000009010384017a94cf281dde3657960b5b555386cb32a2861b95c5c98855f835d66d42cfa189a5a8869477f4cdf2dbd9a47c9dcf60aeabcdd91fcb155aef06ffed98c98d21921a554ceece46e2b4d7deca6432aa3f29968496aa0152dcaec602a0414a1c41e4dc20427551a6377f15c9db1c6186cf38fb7c558d31ef4d7101aa760376d9f7cecb8333555c53944b697c407960000012800000090150a4d398d44c85eb2192fbd0e1eb57799212de34824f75b620634383703b0e5ae5e8c6124fa58695f1a7cea166da23520df2c44dd29395112b956dc7ee818266826fe09bbb0d91e4d36a8c68784d969274b652769a541a0d315f0ff9d3c2c940b42b80edd8b827aca183c2926edc1cc10dd5bcdcce73c40f6ad11f4961d2ce95b0361d9d42f8dd063765070bd6e36f40000009010cf6c733850623c150d632c84725455b338295678fe05d0aba28466d576982520bac1197bcfc443b533faa7c18c300e3fb0f8161dd8b8055bb2e920a1ec299384fd60a7677dc9bf56718f9d160761bf1d1e8e9bff9eebd56b1e42a60267356e5095fd9a69add763c505ade6ab99fa1c0156380b913f1866879ff497155eec58267df7a528a7174a28c11c84eeb6b04500000128000000906d8b7b1a9461943b5118b2fc1a706d871931069a321e78b6a8f69052c6d9f8cc935b6dc8a8af94caae89457d97c7948c25f21ffcc922aae712292da420bd7fb2978e1255babe6bd4d27a1110544de2fc0906ac04b08ddc482d88ddabbc10f019db28b2ad1b23a9fb515c32efae33623b1743fa96d1fa6b86fd2051068776f64c6938c4800c70f3e36bffde7434a66af9000000905a9ef16db860856dc5ed1552d9fbf3b5516e5f3eb4820774863d45a6b01d4f35a6900ffb4f9b2a51731d22ea807b7e94fed61c98d8b5caaa1309598532bb9f3bd7a73b302c6773c69fe6cb9ab8f056990978ea5483f968603748b3097b5e0551ef6b06ddcb4123a32bda9dec0c9ab8461855050450bfe19b2f836127563b14374b090b3d0f5a4f24c9cd1a853a6eb5e700000ce40000012800000090eaa98380bac812c5965243449a6205d824084b18f4614e2467fbc9123c19eddc120fa1ae624d36e492bcc11590e739201d6a9538c7496d11583c8807e86fae81b7a9ccc0b5f257496c263febd113fbdb2293f7d4c8fd1a30c7a6944025432563bf98ae676b310a43347689e2bbd3067910e4d88b31609b3768f008945fca2cb5221bb87b8d30e1d16e0caaf0357430e600000090f4d6e9a62bc14c1e9cd9ccf8f604bd9a92481425b5cb00b3586f6d92b5c0bab0dd34a5354dd9c201c5bb7d680447d4fec152656c734fcf839802d1b443ad2d81f271e0d3474d78b56c397270a31ad8900dc0aa32d3b07bd825d6523b4ffdae487ca7f2238b0d794bb17d62c4d92ae94f031e69786f7e393eedcaedde54bc4b34852b97163525b813feb995de9e6f3fa8000001280000009039f4ffdb6e64218f76e800def294851a699d6ff96550a63b4d525d014b6d17c1488757e76e77da807dd2944cbecbe6fc1f517d49a6c6b8ffb475b8b47b046704b7542f98226c8510bd477977696f01eb2bc53085a65604394130d8afbc973d91fde88a1edd23a493b9f499e0f2d1e6d51705fc085bf7b521c97eec831d5a52b5bc8dae5f68cbf528b05c2a0bf497cd960000009049c7b8b63e3e8d133c6270865b1c3da678ab77a2de6d3d1fdd4dc8086e3b2e7c1c8644d7a9fbe79a4011375b5f4edfc71c51e0d08e6cb0273f9217e542e237d334ef4fcb57120f35f7155b014e5424a10212a48b207d9f3db1982d7af64b40a363de967200168e550cdde2ac759d97bf2f72b243e41964ec339f108c3252e2d6b387b92f6597f9956dc741e6cc45fcaf00000128000000907126a2fc23c6f6f8843520f1cd55ba823d729a1e4f2b8de9c9f2443629c7d459fff1ef5088c90d178584e6b6c6ee55c1fa2d4d4fdb0b4212280d742b38b335858edf0ff990e9dd44053594ebd3a9097415550811c6ccffcddf5194f097795a03577e80a7d974c0b2e6dcc5362ab172320c26e4d02df8b59b54ddbaa546cc7a681641982efb9c90afafb2a3c8d1f05db10000009034a7dc313908628c8483d1130f9ef81d50598cc8230ed0e09bda33d77d804bf5a702456af0e75b8a795f33cfe1d142f9be4930ed268983266e5e0c12c2fbac46c6ea9a20c9e9dd8300dc5b9d624811b70e78f6f7623639d843c8eb26c2a5d06a6e6867c3e0002aa6fa4c54ce4d8ffb620b1eb037d73cb3c09965f5157e5f2fc163da01702d6832d9234016a38d3239eb000001280000009022616129b9800cab030ed60a2007785756df743af8fcb6fceec43b779124bc9e431212a28ef87827a937c94baaeaff97bd3a5f6d10f4746b3270a143fea2e8848ad2fdea8a9a2af6b4c7e787f34ce2d615684db3113f0669b2abc78370332aaebcaec4f322e8194ed3fddaa3684723f721aaf2061e34d7a5a01254d0ee606457869fcaaad0e72ce63a18faabc76e98c10000009033fb3ca47d881a18d7c2b723761ba01f13ce3a3d73efe75282d8e71ea929bcef784ebdbff93f2d61febe271d3f19a7d78d7d8b5c39f3fe9c7c2825d1a8b0a36083e7bfe60394c95fe999a6eeab4c8eb21e588ca6c3647100ffa622afee45c6c96f0c42317657934a76f99020fb262e78151836bcb43effb2413ee501f8d558b8ec3e2795cd9b76b97f57516641f1c4660000012800000090fd4f4eb40f0b8db8495d7b9d0069291ad89eaa0693567f479661cd978fe793a2e6c0417a6997bb670a47233534d2ed5d8e476b47a598c67e9e9ac9b6f3ff7aa23474c8bbec472465ab78313947b2e5a716619563c4ee05ae41b13aa632f58e71a55ebb83c67d7254850b009fd50a12260bb99ae434d8d2df2f2e4dc427d7d2464ee80b4615f52f19cd248acee583c8030000009068eff9d90d3a8ca6fc7124158b83ac7f75754dc515363f6db452967ec72e381153bcece655c8948baf6448eeda4e967d446a07f0c5aacfaaa229ce8c631b5a9887b4e1e18fd74ac47558d4917c3e06e22e5ffe8160154e24ba6705254acf7c808a508f1dde35e75dc4f00af21e98073e0f3b7c842bc29bc9bbeb81044facd0900f3601a7ca78c48fde3e43b03956632200000128000000903e001bc092581a5b5e06e1aee39846c369d3255f2320e17944755c69c1173f999919888efc2c3fbdab4fccc9c06ec0c40a609dcda19b7a87f5dc8aeeb638de15386f4ccdcdb4e5f129bf0c53dc0988f22c95c23270e52147fb2575e47d9786a47ede4a1c059abe303a05405c2aecce46110aefacebe4e00f5d2b0d8506a405b9927e37c18935d4573c799b2ef812ad8b00000090a9555388e14c6ab1ce7abe2e7daebb1cafc28202fdd81e5bbc4f0e5b0ad1dd28d1f099feaea93e32cad2c35f5574c0948f99ac5e537c868b2506c4fdb3bf0bd441f02d1cb7eeddf3ace554a0411aff63163619ed80d2a84bc56f0f202e6749328ce4cdabf66e71e17672a3f416dd1d1f17a103e75479e4c39f53047d5b6c2b781e1011835bb8b127e933e86474ab1ce400000128000000905cfebe5d529f95e0fe8504f40cbd6255cbf2bb21badef24a746b0e6d460cf14fd23bb265a67d6f021704c4c7a439205b218c9e524742191cc1c9846d9fb2575b5fbbcd2e3bfc64e45e35460b6accdcbd0904ac5784041694424f4ed0394e1d56277645172aefa91fb0df1aba5c9806720aead3b891b7a31e9853c0d4c9c895abd3ad881a6850573a12d0d099cb86a49c000000907d0bb090d824de262e766dcf249879a984398fb20f08d85c3ab3b2352f7656d1a02d5b6a6544f6f9779d6efdc3c47e2d873722f17f34ede8a8be4ad7d3e849f78f57e93948330e2c1b0ddd3aaedddd152205982bf11f1efefd3bb9d395d401a888ee58fa29217252ff3b995e4f603435032f3ce93524a572bd52ac39b817207b33114a2677285ebac425da12ba8b66f400000128000000909989a961ebea763228462ff2632c95c5222a35dca1e15f7f3a098f306ffa51a6bd1d2ff8f9354325766243ffb61cd97c6b349b14eff90fa4681ff4dd966f712cf1f14a5cd56e85cc33b22544521096371d428d6dae7283f47c2fe0515c563803f6060054f0b18170a00246f9dfc0a7461d4ed1a4fc1f09eef91e38117851915201d1dcccba8bb49b599cc421973ee75500000090e8bf4c38bfe85fab095512268ad8936dd4ed63f8f744a926a714cb6a4489d601bba6879dc4445316bb12e69aadb63d15810384dbcf8724b5b0243f1c4c39b922af990922e5563cd90d449ff4d07208380b30d93e1ff5f2b84d1396ec7714a3d4eec026e4df9d2411de05a4b35487060c2da43796603247d5c91e936311fe15a08365a33a57898ac70dfabb55965d72ef0000012800000090ccdec7b99705037a1b7b382b011afd9dd8e92339d96f094bb5ac211ccb25b10e0e5000fd7141ffc0a0372e0d7dc5837924134828c682fe55cd6a1b49d8863a717e89f9ce02fc5f5a242d310999b4cb7b1a884a1e47d0e516215d724643c09a2edf14bc451bdea3e8c15a2c92186b59c01bcb357dde64ef51689b70b04c822b6f255ac3d59bd4000470796c8321d11ac0000000908254cf2d43e1954a2153c19ea8dbe684da575471258a201216ee89b6e9a73fbb8e9e42c31570a85e6ce8e34617d2f13529db0e8fc2eb4b382c9245650049e21f4c5817bc5c1a8740e487a71fdc7f5d642cd57057822853d3b9930ecda53bc023e91ec10b975737bcd521484a03051dc61bd9802854648a70372d417e6b3fb59d2401e19bb80296c30b416b02216a2f45000001280000009060e7384d72e95c6067c890048481720f18cb94b94964c972c4031aaaf20cd444f5ce421d42c3a703e08f667a158e89a14824f35a29521138ed605f3c5d18a5bb5bb4388de21145b70843b502d110b4ac100486c8f93d53072578f3f3945a2327e91f85092d094dab725f214e430439ea10a782c9f907ba9adf47a1ce1e6fcc0ae289065dd0db4648df5950c8ef0c054f000000908fd21b3f160e4c36c283dcf9899050c7c87619027ed38f322b6d6a80e53d3cb346798a80ca319f13f3cc57d3a64fafb7fbd238c7a40ec78a22340e6c5a3ed878c1786220f8509745f245db2ba530123908f57276f09c4b3c05147d9928898790588aae3bb822e3b62679e5bb1f1331da1ab4a52358010ace984d4c53d190d1dcd5b8aee3c01e851df62c5700531217f900000128000000908716562d9b07509540250502da1eafb0147023cfacc85730546524888e9fda4adc3e1c01fe7179c775c569beece30e23da2442b83d0b1181dc80fe1c5d5528dbecf7bb6e22a1d52377f6b7288adbecd912dcd491d000ef35ca29e160d17afc0144de84985a6deb2f9cda06620c09de3a2619769656f764783a6b4909883441f29255769440c51ca922507991b413376f00000090df72eb574937a11b27cbf96a97d9abd807dbc3a5362a705af2f23d3d1b279ff68ed4430066ffab9136226764f92c4bc2fe0d657f92bd415a08e46ed7650d80a4353d2832a71ca2b27f96d84e0af31f370b98ff04cf989c39c3036947db6efa6fcbc88850bfd17da03be4abb5d2ad26f41b3d78198622b260a14bb0ebcff790adc5f3189c61d8f947f25cf24e920b75a000000ce400000128000000906a79dac1b04a0d18300d242c4bc6f41f23c97f15ea1ce8db45bafe6241635f53abdb7e7dfd13e3218b8a915edf66b1dff0a92824a1c4f912292d8dfcb232260797ccb7a9f3847e8e233ad15d3cb41ffa2c45de74d571659083213b4acb57d18c8d0975a95cafc5e60522fe4ada63a3502eeb74c6594167fab4659e9673965885354085ce6560f5504e3d5845c0b6fe8800000090a19da5fc8623293d667c5eed3ac6aa8f2cbd5e9be8d7820807dcea2cbc7dedc90e6765716f4200d1cb4b667882df78deaf87a7551bdd149c4f0da49c30ccee56951d6274475e5747d60720f8b378afb019da31138fdf91a01164bd2d1408937346de32f7b515df534b11280a57da99621cb680055a92f6f35ca19ae5098bde7778b9b25ea15711dcf540a53fea047ddb000001280000009020e294a163a47d41849bc43ca48510a376237e02789ac6198dd0869925a8e69835ea8f69362860ad33e09ab7e45c6b329a31227ba9f52c32da0a62ee747c82f83950110a088ef0ed443d2b09cfade6dd1215ee931fde4bdccc031969262f078565bcfa9d672e65bcc3a187274966cb0203bd40abfc59e054565fff275c3de8f2652afd4925d192494e6def8fe025b43e0000009031ea5f55650cd551140e95a5d197d474b7e328e2f334c351832944a1d97f2f00e82c3aed263c1241919427b8689966c789dcb14e6965740d828454b111f5d33dcbb567cb48c0202883bd82e79828553c2c4b4130c81e3ef71d5f5862abc872b96c26b91198391140e2dacd744a22221b1f8b89a4d08a06bc04fb41db02775b235aa1dae989e9ff8be2a85f21ab212c5a000001280000009025bff79707a5eacd148e6bc0f32a78335f8a208b9e26570e45acb1152454ed0ac8022b2683b0131d08053bb8d5cd7319e1e385bfd3730b9c90aa72b322832d63c23a1cb97c3186f66089c330277868e60855b74bc341845a97eba448a28a355f6b27ea09b134ba259a5472ba53ff9f7d06dc861160094a0b7f4193530c4b69d329ae9797e22a6d47fa8b398f447ed18a00000090e17fc76cff9a3cbf6884f32629fc1179322368f08aeaca5898f5d42a8c0a9abdba456e54161fbe1674b3262a8076c3ce3f37ed98aa1a9ccbe56327e99798a6f5441f9c066283c6afd022be77e2161e3d29aef17a0bd6bab2fc890cfca94281494c15068e06a4299b1a3a1aada324e48b1b773b7cadafd56c2a3a33e80dc3552dfd8debeb3a87fc4865b3e6820f3e4ffb0000012800000090aead4a44b0e13d77603d12a65b0c7bf987e31ae980a51680a470577a5707325878644f037410adf5bae48469f8e41b20f9d2133188ba4b69be65a08b07516071afca21f1d04f01698c7327320076df1a2a8da0f9c12ff7665b6a2628c739445754565b8bb2faa1a78c082a920dfb4b68083d17fbd483c23fca8e77c016ffa1ce84ad8d4a014b2d6fb09cab59b5c2343b000000905ca798d325828ad18b9c18d93050c011128744a15807bcaf63b19a1156a98e9747b50a49768a529f96f0a555df25bdb8cf19f815a6bc2cef82f741623f977864ce84c2b72f952bd3f3db4889c1896a29297e73cb1de7e13ab3275bdd5d0d7ff830a99fa1704e0b22c3c9df813801c9202701b7bb0af2ec955f81ecf0b562bc6efe35225c354545c1b43c3b5e2a68d56200000128000000903d24667437bed25cdeb31c2115005bfa41c6f6e7d92b124e7f1871712fe5e7e6d3b684dac172e3b7bc01e65ef936098ae5a2e15da3707d69ff6b7124621a715f252050410c4119b2152f375f48cf432617702fe4677a41e5ce981737f04b916497649eb9e7013952812362b3716141b5283f28b6a16d078c497047d78cfa862fa9b2089f634b32c6947468bc66e7f5b50000009087dbd1f9de2264e5999b5970735e37571b18fc731df23f7bd93f37f556d6db554d44acc52f2a6e4594e1a2b0fc8eec5865cc585ece4e4095490e5b137548b5634d574fef60e9cc51a2ab7ed451f5c1fa1ed22bf011fff9ba947ed54ac5628496a7c6752ea8e507ce40d793691c2330201634f8d4a06ec93721ac04ae82080d9dcd4c630e3f34f518cbd29d2f63f5ab0700000128000000901ce609e5f5b00c6026bd02058b3df8960dd555c122bf7ce576ca858b3846695e7cf8b28ceb0b79cc0ebe4a4a3e508531f69868308a4e538a57bb6b8810bb336ade807f3631519034ac8eeb83d598dd810cd153fca57a12477a5aa91fdf6f82ff32c86958cc08f69ec0dfe5d3d924d85501a55913b44026f39f88fd72204d76e9b1903cda9b69e8fc201f3a6ac035522d00000090e6e7185316bc794aa33e76d646ac93f636e659ae63457b4d2f7a13f009e3cfafbb258a8eaac8e39f45bb62dd5f3805fdddfd71fa86999372e0f82a06017045b27baffe285ef228cd627f2324adad160d0fcc9da97316bcc112f73afcac8f82ee16d693f45256d75a1ff4f2ff87eef5281c77a9d8e64ae1a4e5cd6bfd6f984436c5428fe749cf05061d3cdfcda7d76b55000001280000009031066ec34e193b0e9f520433a47c85e03cc5cd6663e22e8b860305ab3b5ea1a2db74f076c989df24fb6a2ef238a80be3dac4f8de6f01daba28ddb3063924e14bf0abf184d57418239e9c974ec45aba6104393b5eb30ed7b59ec6310faf5346fb3fdae1182fc06461eb700a878bd251841bcab22aded2bc58ce36af92bdac9536c3ad0619c0715877fc574802b31ef47c0000009092e80a10598fb4c692fd7cf3c393c138897609cc1a7e6d39c496a7a3d29c4bee078b4992a67d6a2e3202423eca0bf163a21f45394856f9df574cdcf7b589386c33cfe2fc5a9bde527466679c9b64860e0963bc3c3c84af1602ebbac3ee6ac719e9c0f48296a5a04fd6a6ee7991591a3c1800244823f2bf812dc10338bc5b92f535a4fd4964a5933864912937b0918f7f0000012800000090451a7194de5bacd358431758fe82bed36a3410f524950092e1ea797bf1d27133c986bdf9eddf9928e289bb3c8b1076cd8461bf7d4d985c9222e3e579038018a86b77e0867eba3b6179ea0a2f0f34b2ce2af049eeb5b432b20d21131b7357bca79623b2c1cc46617e6b35fa06f27e6daa13879d8479a9d96b03ae2cc73621c9734f1dc2e98cefcbb082cb5459951290900000009033d0eca61f979895aa98755a8585be234d68d7643e076ee34dc028517db598cd7c1d719bc70e4b28e82335b87b82c72de9a05b9c0c5da7180dd3cc1a6416d8e7db6063fbde227f471b798516148a6f40078820fb9b7b84be1c8edb017e2c1e132ec2c13ee81c9555e1179e815816428e0a2a070777db1f9f863eca3b3b1e0f396448d24192af88d164be44d96213b7690000012800000090aad733e80575e8f697c0f380ec2b61abd5c8463e74571daae44d9b5ec44dc5db3a36a8f3c1c681d341f60523315a9d1c2b82a9124c88565622b6ff07fbe31b18c68a8f9da8384d966b4aa6b5a84c6e4b2db60b9f1b4d707feaa399981c962c93a08369ff37fe340c0f49345441d1bb58294e7b59cee5cb88ef24b5423c4c59667f2e33c08d599673d8b4efc6bfb6f8ba00000090975d9a22f24af1a7d41e323ec33e398472d42a54fd376f370e39d89a5063429b5feba0bb1c62cf951251e413666f374f034469a78c34e3ec9fa4606e7eb9c08a26be813860d440222e2d49e61da0b46610fe22c2689a83aba6f0ba759bfa0d1c735e7651b4c7f7f8907864f9a09402520805c784da08949d0f7dc667880669ddb5405ccfb7013c73c6e3b08461909d2400000128000000903f364b651558359ee11ed7840bc2b8b1cf5b978a381edcf3112ac1ec2938708755808958b8d0ca03abc96f1d29c8189e78e5ffb072baa3bc988ff560a3898835e489e9ac3e0a8726f8df183022e75d7c2c7efec4fb45f06597fe1cdc2256887b0b4fc8954530ae2b5b88939390a542a82051a38587e08f6acfbe3e3f449b76a4ed1b9e3aa411ab7b5f5016ab6d571fc0000000908101b9fe4cae52542053c7d88eecb0d51c74b156463d3e1494ecb46e427f52e3cea3c55cb4d451a6a0c54ef212463fb93a91131225f99dc3e253b0fb02bb77356b54d8cf87275cdf85f42e4a9b4338cd296d71d905516b72cf06708b74bd0d9d608e3fba3beeed1cb4adba0377bf67fa1ebc9daa595cfa1462a537017acf7d6aa6b487c2af710234abe361596084c7f50000012800000090321832e394d3b0047b40780f88daf18642a0f697166f9f2cd5c61398dfd0f413fe82a4834dc78e0d95dcb4652d31beaa3f5606e690161ff63bf8130c64b69606f096e147a9cbb03e9df9ac69fb22d0842d6774bd8c1ac41adb983737bce65a355d2805057375da80bf6e31ecf91944bb0fd6f47e978f00d2de3cc4cb77dacd80489d72ebbb123b2ccec4c9f4014f5b3800000090aff1c84287775f5ae5758cb49cc2d02f70b6ec574786b362983bf775d7884f60367ca173f010eddb05ab8755569f3bf8cd4b5bfdcecca0eff1f736260070e97d38a0bd8f46c3208a813f8e8a127f5ab9139506c469b46f02045462b3143d4af14664659d011ff0800e940cb6e78275380163b73117d46f38e72ff364edc77e1b5d8390d6630a1019c108ab91275752ed", + "calldataHash": "0x2ecef12d484fe78e41e47ec27a8d2d29c48a9b810aa0391ef1bd11c522eb5ab9", + "decodedHeader": { + "bodyHash": "0x2ecef12d484fe78e41e47ec27a8d2d29c48a9b810aa0391ef1bd11c522eb5ab9", + "globalVariables": { + "blockNumber": 2, + "chainId": 31337, + "timestamp": 1705497358, + "version": 1 + }, + "lastArchiveNextAvailableLeafIndex": 2, + "lastArchiveRoot": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", + "stateReference": { + "l1ToL2MessageTreeNextAvailableLeafIndex": 32, + "l1ToL2MessageTreeRoot": "0x06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b", + "partialStateReference": { + "contractTreeNextAvailableLeafIndex": 8, + "contractTreeRoot": "0x022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb0", + "noteHashTreeNextAvailableLeafIndex": 512, + "noteHashTreeRoot": "0x24c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f96", + "nullifierTreeNextAvailableLeafIndex": 640, + "nullifierTreeRoot": "0x268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e", + "publicDataTreeNextAvailableLeafIndex": 160, + "publicDataTreeRoot": "0x039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a" + } + } + }, + "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7d30e06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a01f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907000000022ecef12d484fe78e41e47ec27a8d2d29c48a9b810aa0391ef1bd11c522eb5ab9", "l1ToL2MessagesHash": "0xa10cc8559615be5a44cfb608374b1f84fd11cdb5844ebffafd92a77c068350f1", - "lastArchive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", - "timestamp": 0, - "version": 1 + "publicInputsHash": "0x2252558c6fbf4985ca1045ddc5cca020d6ae5533ac2f1bc7f5f4f5d57394348b" } } \ No newline at end of file diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index ca84dda33e6..915869de926 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -104,7 +104,7 @@ describe('L1Publisher integration', () => { const chainId = createEthereumChain(config.rpcUrl, config.apiKey).chainInfo.id; // To overwrite the test data, set this to true and run the tests. - const OVERWRITE_TEST_DATA = false; + const OVERWRITE_TEST_DATA = true; beforeEach(async () => { deployerAccount = privateKeyToAccount(deployerPK); @@ -277,20 +277,36 @@ describe('L1Publisher integration', () => { // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values bellow. // This should not be a problem for testing as long as the values are not larger than u32. archive: `0x${block.archive.root.toBuffer().toString('hex').padStart(64, '0')}`, - blockNumber: block.number, body: `0x${block.bodyToBuffer().toString('hex')}`, calldataHash: `0x${block.getCalldataHash().toString('hex').padStart(64, '0')}`, - chainId: Number(block.header.globalVariables.chainId.toBigInt()), + decodedHeader: { + bodyHash: `0x${block.header.bodyHash.toString('hex').padStart(64, '0')}`, + globalVariables: { + blockNumber: block.number, + chainId: Number(block.header.globalVariables.chainId.toBigInt()), + timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), + version: Number(block.header.globalVariables.version.toBigInt()), + }, + lastArchiveNextAvailableLeafIndex: block.header.lastArchive.nextAvailableLeafIndex, + lastArchiveRoot: `0x${block.header.lastArchive.root.toBuffer().toString('hex').padStart(64, '0')}`, + stateReference: { + l1ToL2MessageTreeNextAvailableLeafIndex: block.header.state.l1ToL2MessageTree.nextAvailableLeafIndex, + l1ToL2MessageTreeRoot: `0x${block.header.state.l1ToL2MessageTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + partialStateReference: { + contractTreeNextAvailableLeafIndex: block.header.state.partial.contractTree.nextAvailableLeafIndex, + contractTreeRoot: `0x${block.header.state.partial.contractTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + noteHashTreeNextAvailableLeafIndex: block.header.state.partial.noteHashTree.nextAvailableLeafIndex, + noteHashTreeRoot: `0x${block.header.state.partial.noteHashTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + nullifierTreeNextAvailableLeafIndex: block.header.state.partial.nullifierTree.nextAvailableLeafIndex, + nullifierTreeRoot: `0x${block.header.state.partial.nullifierTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + publicDataTreeNextAvailableLeafIndex: block.header.state.partial.publicDataTree.nextAvailableLeafIndex, + publicDataTreeRoot: `0x${block.header.state.partial.publicDataTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + }, + }, header: `0x${block.header.toBuffer().toString('hex')}`, l1ToL2MessagesHash: `0x${block.getL1ToL2MessagesHash().toString('hex').padStart(64, '0')}`, - lastArchive: `0x${block.header.lastArchive.root.toBuffer().toString('hex').padStart(64, '0')}`, - timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), - version: Number(block.header.globalVariables.version.toBigInt()), - - // TODO(#4031): Extract these again once the solidity contract is updated. - // startStateHash: `0x${block.getStartStateHash().toString('hex').padStart(64, '0')}`, - // endStateHash: `0x${block.getEndStateHash().toString('hex').padStart(64, '0')}`, - // publicInputsHash: `0x${block.getPublicInputsHash().toBuffer().toString('hex').padStart(64, '0')}`, + publicInputsHash: `0x${block.getPublicInputsHash().toBuffer().toString('hex').padStart(64, '0')}`, }, }; @@ -542,3 +558,4 @@ function hexStringToBuffer(hex: string): Buffer { } return Buffer.from(hex.replace(/^0x/, ''), 'hex'); } + From 0b54c490f356f2a3dec07e5a0fe21948cf7364c7 Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 13:37:08 +0000 Subject: [PATCH 16/23] removed unnecessary comment --- yarn-project/end-to-end/src/integration_l1_publisher.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 915869de926..07797caed69 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -262,7 +262,6 @@ describe('L1Publisher integration', () => { // Path relative to the package.json in the end-to-end folder const path = `../../l1-contracts/test/fixtures/${fileName}.json`; - // NOTE: Members of the struct (and substructs) have to be in ALPHABETICAL order! const jsonObject = { populate: { l1ToL2Content: l1ToL2Content.map(c => `0x${c.toBuffer().toString('hex').padStart(64, '0')}`), From 528b05bef816c1e8e89bdb2df8c4adb5d46c791e Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 13:50:37 +0000 Subject: [PATCH 17/23] nuked stale comments --- .../src/integration_l1_publisher.test.ts | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 07797caed69..7d69b5a0bcb 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -290,16 +290,31 @@ describe('L1Publisher integration', () => { lastArchiveRoot: `0x${block.header.lastArchive.root.toBuffer().toString('hex').padStart(64, '0')}`, stateReference: { l1ToL2MessageTreeNextAvailableLeafIndex: block.header.state.l1ToL2MessageTree.nextAvailableLeafIndex, - l1ToL2MessageTreeRoot: `0x${block.header.state.l1ToL2MessageTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + l1ToL2MessageTreeRoot: `0x${block.header.state.l1ToL2MessageTree.root + .toBuffer() + .toString('hex') + .padStart(64, '0')}`, partialStateReference: { contractTreeNextAvailableLeafIndex: block.header.state.partial.contractTree.nextAvailableLeafIndex, - contractTreeRoot: `0x${block.header.state.partial.contractTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + contractTreeRoot: `0x${block.header.state.partial.contractTree.root + .toBuffer() + .toString('hex') + .padStart(64, '0')}`, noteHashTreeNextAvailableLeafIndex: block.header.state.partial.noteHashTree.nextAvailableLeafIndex, - noteHashTreeRoot: `0x${block.header.state.partial.noteHashTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + noteHashTreeRoot: `0x${block.header.state.partial.noteHashTree.root + .toBuffer() + .toString('hex') + .padStart(64, '0')}`, nullifierTreeNextAvailableLeafIndex: block.header.state.partial.nullifierTree.nextAvailableLeafIndex, - nullifierTreeRoot: `0x${block.header.state.partial.nullifierTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + nullifierTreeRoot: `0x${block.header.state.partial.nullifierTree.root + .toBuffer() + .toString('hex') + .padStart(64, '0')}`, publicDataTreeNextAvailableLeafIndex: block.header.state.partial.publicDataTree.nextAvailableLeafIndex, - publicDataTreeRoot: `0x${block.header.state.partial.publicDataTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + publicDataTreeRoot: `0x${block.header.state.partial.publicDataTree.root + .toBuffer() + .toString('hex') + .padStart(64, '0')}`, }, }, }, @@ -428,7 +443,6 @@ describe('L1Publisher integration', () => { Number(decodedHeader.globalVariables.timestamp), ); - // TODO(benesjan): this ugly. Unify how the archive value is represented. const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchiveRoot); const expectedLastArchiveRoot = block.header.lastArchive.root; expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); @@ -526,7 +540,6 @@ describe('L1Publisher integration', () => { Number(decodedHeader.globalVariables.timestamp), ); - // TODO(benesjan): this ugly. Unify how the archive value is represented. const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchiveRoot); const expectedLastArchiveRoot = block.header.lastArchive.root; expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); @@ -557,4 +570,3 @@ function hexStringToBuffer(hex: string): Buffer { } return Buffer.from(hex.replace(/^0x/, ''), 'hex'); } - From afe90652b97b4af5aacfba1cf385c28e88a7345a Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 14:47:42 +0000 Subject: [PATCH 18/23] using AppendOnlyTreeSnapshot struct --- l1-contracts/src/core/Rollup.sol | 4 +- .../core/libraries/decoders/HeaderDecoder.sol | 53 +++++++-------- l1-contracts/test/decoders/Base.sol | 23 +++---- l1-contracts/test/decoders/Decoder.t.sol | 67 ++++++++++--------- l1-contracts/test/fixtures/empty_block_0.json | 36 ++++++---- l1-contracts/test/fixtures/empty_block_1.json | 44 +++++++----- l1-contracts/test/fixtures/mixed_block_0.json | 46 ++++++++----- l1-contracts/test/fixtures/mixed_block_1.json | 50 ++++++++------ .../src/integration_l1_publisher.test.ts | 56 ++++++++-------- 9 files changed, 213 insertions(+), 166 deletions(-) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index a0f5722d28d..6accbb836f5 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -123,8 +123,8 @@ contract Rollup is IRollup { } // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. - if (archive != bytes32(0) && archive != header.lastArchiveRoot) { - revert Errors.Rollup__InvalidArchive(archive, header.lastArchiveRoot); + if (archive != bytes32(0) && archive != header.lastArchive.root) { + revert Errors.Rollup__InvalidArchive(archive, header.lastArchive.root); } } diff --git a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol b/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol index c0881f3eff8..5839dca1462 100644 --- a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol +++ b/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol @@ -48,6 +48,11 @@ import {Hash} from "../Hash.sol"; * | --- | --- | --- */ library HeaderDecoder { + struct AppendOnlyTreeSnapshot { + bytes32 root; + uint32 nextAvailableLeafIndex; + } + struct GlobalVariables { uint256 chainId; uint256 version; @@ -56,19 +61,14 @@ library HeaderDecoder { } struct PartialStateReference { - bytes32 noteHashTreeRoot; - uint32 noteHashTreeNextAvailableLeafIndex; - bytes32 nullifierTreeRoot; - uint32 nullifierTreeNextAvailableLeafIndex; - bytes32 contractTreeRoot; - uint32 contractTreeNextAvailableLeafIndex; - bytes32 publicDataTreeRoot; - uint32 publicDataTreeNextAvailableLeafIndex; + AppendOnlyTreeSnapshot noteHashTree; + AppendOnlyTreeSnapshot nullifierTree; + AppendOnlyTreeSnapshot contractTree; + AppendOnlyTreeSnapshot publicDataTree; } struct StateReference { - bytes32 l1ToL2MessageTreeRoot; - uint32 l1ToL2MessageTreeNextAvailableLeafIndex; + AppendOnlyTreeSnapshot l1ToL2MessageTree; // Note: Can't use "partial" name here as in yellow paper because it is a reserved solidity keyword PartialStateReference partialStateReference; } @@ -76,8 +76,7 @@ library HeaderDecoder { struct Header { GlobalVariables globalVariables; StateReference stateReference; - bytes32 lastArchiveRoot; - uint32 lastArchiveNextAvailableLeafIndex; + AppendOnlyTreeSnapshot lastArchive; bytes32 bodyHash; } @@ -94,23 +93,19 @@ library HeaderDecoder { header.globalVariables.version = uint256(bytes32(_header[0x20:0x40])); header.globalVariables.blockNumber = uint256(bytes32(_header[0x40:0x60])); header.globalVariables.timestamp = uint256(bytes32(_header[0x60:0x80])); - header.stateReference.l1ToL2MessageTreeRoot = bytes32(_header[0x80:0xa0]); - header.stateReference.l1ToL2MessageTreeNextAvailableLeafIndex = - uint32(bytes4(_header[0xa0:0xa4])); - header.stateReference.partialStateReference.noteHashTreeRoot = bytes32(_header[0xa4:0xc4]); - header.stateReference.partialStateReference.noteHashTreeNextAvailableLeafIndex = - uint32(bytes4(_header[0xc4:0xc8])); - header.stateReference.partialStateReference.nullifierTreeRoot = bytes32(_header[0xc8:0xe8]); - header.stateReference.partialStateReference.nullifierTreeNextAvailableLeafIndex = - uint32(bytes4(_header[0xe8:0xec])); - header.stateReference.partialStateReference.contractTreeRoot = bytes32(_header[0xec:0x10c]); - header.stateReference.partialStateReference.contractTreeNextAvailableLeafIndex = - uint32(bytes4(_header[0x10c:0x110])); - header.stateReference.partialStateReference.publicDataTreeRoot = bytes32(_header[0x110:0x130]); - header.stateReference.partialStateReference.publicDataTreeNextAvailableLeafIndex = - uint32(bytes4(_header[0x130:0x134])); - header.lastArchiveRoot = bytes32(_header[0x134:0x154]); - header.lastArchiveNextAvailableLeafIndex = uint32(bytes4(_header[0x154:0x158])); + header.stateReference.l1ToL2MessageTree = + AppendOnlyTreeSnapshot(bytes32(_header[0x80:0xa0]), uint32(bytes4(_header[0xa0:0xa4]))); + header.stateReference.partialStateReference.noteHashTree = + AppendOnlyTreeSnapshot(bytes32(_header[0xa4:0xc4]), uint32(bytes4(_header[0xc4:0xc8]))); + header.stateReference.partialStateReference.nullifierTree = + AppendOnlyTreeSnapshot(bytes32(_header[0xc8:0xe8]), uint32(bytes4(_header[0xe8:0xec]))); + header.stateReference.partialStateReference.contractTree = + AppendOnlyTreeSnapshot(bytes32(_header[0xec:0x10c]), uint32(bytes4(_header[0x10c:0x110]))); + header.stateReference.partialStateReference.publicDataTree = + AppendOnlyTreeSnapshot(bytes32(_header[0x110:0x130]), uint32(bytes4(_header[0x130:0x134]))); + header.lastArchive = + AppendOnlyTreeSnapshot(bytes32(_header[0x134:0x154]), uint32(bytes4(_header[0x154:0x158]))); + header.bodyHash = bytes32(_header[0x158:0x178]); return header; diff --git a/l1-contracts/test/decoders/Base.sol b/l1-contracts/test/decoders/Base.sol index 7a253c4b2f5..c891194014d 100644 --- a/l1-contracts/test/decoders/Base.sol +++ b/l1-contracts/test/decoders/Base.sol @@ -5,6 +5,11 @@ pragma solidity >=0.8.18; import {Test} from "forge-std/Test.sol"; contract DecoderBase is Test { + struct AppendOnlyTreeSnapshot { + uint32 nextAvailableLeafIndex; + bytes32 root; + } + // When I had data and messages as one combined struct it failed, but I can have this top-layer and it works :shrug: // Note: Members of the struct (and substructs) have to be in ALPHABETICAL order! struct Full { @@ -37,8 +42,7 @@ contract DecoderBase is Test { struct DecodedHeader { bytes32 bodyHash; GlobalVariables globalVariables; - uint256 lastArchiveNextAvailableLeafIndex; - bytes32 lastArchiveRoot; + AppendOnlyTreeSnapshot lastArchive; StateReference stateReference; } @@ -50,20 +54,15 @@ contract DecoderBase is Test { } struct StateReference { - uint256 l1ToL2MessageTreeNextAvailableLeafIndex; - bytes32 l1ToL2MessageTreeRoot; + AppendOnlyTreeSnapshot l1ToL2MessageTree; PartialStateReference partialStateReference; } struct PartialStateReference { - uint256 contractTreeNextAvailableLeafIndex; - bytes32 contractTreeRoot; - uint256 noteHashTreeNextAvailableLeafIndex; - bytes32 noteHashTreeRoot; - uint256 nullifierTreeNextAvailableLeafIndex; - bytes32 nullifierTreeRoot; - uint256 publicDataTreeNextAvailableLeafIndex; - bytes32 publicDataTreeRoot; + AppendOnlyTreeSnapshot contractTree; + AppendOnlyTreeSnapshot noteHashTree; + AppendOnlyTreeSnapshot nullifierTree; + AppendOnlyTreeSnapshot publicDataTree; } function load(string memory name) public view returns (Full memory) { diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index 710ec5c7ec6..1c0742947ac 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -79,14 +79,14 @@ contract DecoderTest is DecoderBase { // L1 -> L2 messages assertEq( - header.stateReference.l1ToL2MessageTreeNextAvailableLeafIndex, - stateReference.l1ToL2MessageTreeNextAvailableLeafIndex, - "Invalid l1ToL2MessageTreeNextAvailableLeafIndex" + header.stateReference.l1ToL2MessageTree.nextAvailableLeafIndex, + stateReference.l1ToL2MessageTree.nextAvailableLeafIndex, + "Invalid l1ToL2MessageTree.nextAvailableLeafIndex" ); assertEq( - header.stateReference.l1ToL2MessageTreeRoot, - stateReference.l1ToL2MessageTreeRoot, - "Invalid l1ToL2MessageTreeRoot" + header.stateReference.l1ToL2MessageTree.root, + stateReference.l1ToL2MessageTree.root, + "Invalid l1ToL2MessageTree.root" ); // PartialStateReference @@ -96,55 +96,60 @@ contract DecoderTest is DecoderBase { // NoteHashTree assertEq( - header.stateReference.partialStateReference.noteHashTreeNextAvailableLeafIndex, - partialStateReference.noteHashTreeNextAvailableLeafIndex, - "Invalid noteHashTreeNextAvailableLeafIndex" + header.stateReference.partialStateReference.noteHashTree.nextAvailableLeafIndex, + partialStateReference.noteHashTree.nextAvailableLeafIndex, + "Invalid noteHashTree.nextAvailableLeafIndex" ); assertEq( - header.stateReference.partialStateReference.noteHashTreeRoot, - partialStateReference.noteHashTreeRoot, - "Invalid noteHashTreeRoot" + header.stateReference.partialStateReference.noteHashTree.root, + partialStateReference.noteHashTree.root, + "Invalid noteHashTree.root" ); // NullifierTree assertEq( - header.stateReference.partialStateReference.nullifierTreeNextAvailableLeafIndex, - partialStateReference.nullifierTreeNextAvailableLeafIndex, - "Invalid nullifierTreeNextAvailableLeafIndex" + header.stateReference.partialStateReference.nullifierTree.nextAvailableLeafIndex, + partialStateReference.nullifierTree.nextAvailableLeafIndex, + "Invalid nullifierTree.nextAvailableLeafIndex" ); assertEq( - header.stateReference.partialStateReference.nullifierTreeRoot, - partialStateReference.nullifierTreeRoot, - "Invalid nullifierTreeRoot" + header.stateReference.partialStateReference.nullifierTree.root, + partialStateReference.nullifierTree.root, + "Invalid nullifierTree.root" ); // ContractTree assertEq( - header.stateReference.partialStateReference.contractTreeNextAvailableLeafIndex, - partialStateReference.contractTreeNextAvailableLeafIndex, - "Invalid contractTreeNextAvailableLeafIndex" + header.stateReference.partialStateReference.contractTree.nextAvailableLeafIndex, + partialStateReference.contractTree.nextAvailableLeafIndex, + "Invalid contractTree.nextAvailableLeafIndex" ); assertEq( - header.stateReference.partialStateReference.contractTreeRoot, - partialStateReference.contractTreeRoot, - "Invalid contractTreeRoot" + header.stateReference.partialStateReference.contractTree.root, + partialStateReference.contractTree.root, + "Invalid contractTree.root" ); // PublicDataTree assertEq( - header.stateReference.partialStateReference.publicDataTreeNextAvailableLeafIndex, - partialStateReference.publicDataTreeNextAvailableLeafIndex, - "Invalid publicDataTreeNextAvailableLeafIndex" + header.stateReference.partialStateReference.publicDataTree.nextAvailableLeafIndex, + partialStateReference.publicDataTree.nextAvailableLeafIndex, + "Invalid publicDataTree.nextAvailableLeafIndex" ); assertEq( - header.stateReference.partialStateReference.publicDataTreeRoot, - partialStateReference.publicDataTreeRoot, - "Invalid publicDataTreeRoot" + header.stateReference.partialStateReference.publicDataTree.root, + partialStateReference.publicDataTree.root, + "Invalid publicDataTree.root" ); } } - assertEq(header.lastArchiveRoot, referenceHeader.lastArchiveRoot, "Invalid last archive"); + assertEq( + header.lastArchive.nextAvailableLeafIndex, + referenceHeader.lastArchive.nextAvailableLeafIndex, + "Invalid lastArchive.nextAvailableLeafIndex" + ); + assertEq(header.lastArchive.root, referenceHeader.lastArchive.root, "Invalid lastArchive.root"); assertEq(header.bodyHash, referenceHeader.bodyHash, "Invalid body hash"); } diff --git a/l1-contracts/test/fixtures/empty_block_0.json b/l1-contracts/test/fixtures/empty_block_0.json index b24d9e400af..69a1059fe90 100644 --- a/l1-contracts/test/fixtures/empty_block_0.json +++ b/l1-contracts/test/fixtures/empty_block_0.json @@ -46,20 +46,32 @@ "timestamp": 0, "version": 1 }, - "lastArchiveNextAvailableLeafIndex": 1, - "lastArchiveRoot": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", + "lastArchive": { + "nextAvailableLeafIndex": 1, + "root": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02" + }, "stateReference": { - "l1ToL2MessageTreeNextAvailableLeafIndex": 16, - "l1ToL2MessageTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 16, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, "partialStateReference": { - "contractTreeNextAvailableLeafIndex": 4, - "contractTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", - "noteHashTreeNextAvailableLeafIndex": 256, - "noteHashTreeRoot": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb", - "nullifierTreeNextAvailableLeafIndex": 384, - "nullifierTreeRoot": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278", - "publicDataTreeNextAvailableLeafIndex": 96, - "publicDataTreeRoot": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + "contractTree": { + "nextAvailableLeafIndex": 4, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 256, + "root": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 384, + "root": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 96, + "root": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + } } } }, diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index 58656cc47b0..006b03407f5 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -35,7 +35,7 @@ ] }, "block": { - "archive": "0x28322d94cbe9e2bb3911926ed22b94db6f9bab7f5ac63c4c4a495d745750a170", + "archive": "0x01a7192428c21e1c55be4d35e253b2f30a48c4d7fdb3f4048d208986707b7906", "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "decodedHeader": { @@ -43,28 +43,40 @@ "globalVariables": { "blockNumber": 2, "chainId": 31337, - "timestamp": 1705497412, + "timestamp": 1705501940, "version": 1 }, - "lastArchiveNextAvailableLeafIndex": 2, - "lastArchiveRoot": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11", + "lastArchive": { + "nextAvailableLeafIndex": 2, + "root": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11" + }, "stateReference": { - "l1ToL2MessageTreeNextAvailableLeafIndex": 32, - "l1ToL2MessageTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 32, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, "partialStateReference": { - "contractTreeNextAvailableLeafIndex": 8, - "contractTreeRoot": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80", - "noteHashTreeNextAvailableLeafIndex": 512, - "noteHashTreeRoot": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb", - "nullifierTreeNextAvailableLeafIndex": 640, - "nullifierTreeRoot": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278", - "publicDataTreeNextAvailableLeafIndex": 160, - "publicDataTreeRoot": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + "contractTree": { + "nextAvailableLeafIndex": 8, + "root": "0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 512, + "root": "0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 640, + "root": "0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 160, + "root": "0x1ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0" + } } } }, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7d3441864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7e4f41864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "publicInputsHash": "0x2426bb0bc26f117b60f9c5c68cbaa56925660d6304f6ee8a29361e07f8271b02" + "publicInputsHash": "0x0730fec86325dbb2c6cb108f50628cf32f22f526411f8ef8e48fd8be5f43f536" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_0.json b/l1-contracts/test/fixtures/mixed_block_0.json index 201a88d1547..b9e7aea554e 100644 --- a/l1-contracts/test/fixtures/mixed_block_0.json +++ b/l1-contracts/test/fixtures/mixed_block_0.json @@ -53,35 +53,47 @@ }, "block": { "archive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", - "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090c82ce217acd65867d051bdfae07e4d67488fb51fbecfed8bb2341e1558683008637541e4f4b767df34b656a0b2c4e868076b64b9da03dac125950bcbae0fc482ca8a9cad593253b50cf89ce0cd40f4042ca203c5ad6996fe30e7319a5ae549a9eb2fdb9224a3cdc56fb3f2d2813ed0b31b62a7a018ba882a208c53ba1be895a291562227da578c63dd90b9be383005e20000009022caacf080b1431cc66e549a0a568650f9f08a8345ca3fba2489837c69be5047c05a3cab25513ede13a04e71e8101498b3991ad0b8a734ab1ffe11d8413a67ed9237a4d32b6ac56004ba3af472427ec52f03d19f9d96beefde24e9ed40290f6f23404d37f15edcc8920fd0c944f8003d289de5c535b0c01adc05527257ecc0562e475c1acf01bb8d6d9272b8a08d4f3000000090091b8f38586b476b48939e1400957c637e01d0cc089055a01c7e06ef989a1c71bb8154f22b985ea6fc01e7a1d1cc0151e2c20c114ba924d2d1a5b399de693748d4de080048fdf410fb053f9f1404985a046dcb0ac18a2101930945b55245311341feda2bf8165b9fcb03acf4ac13e38e12a6b76fc1cb73fff549dedcb082feebaf508679695240a0ede0b50db7e14769000001bc00000090c69827acd9d0d42472f9065d746722ed013168b59cceec5adab279c1be3990650f9599501696c530d37d044a08d35ea3490c34566be93febac8eb60eb5c067d69b9f88cac06ee6fac33ecb99da6dbcf011e5533bc26469aa1085169acf7797958754651b85dc0b8cfe84b8c4e270173e1fca23d1f0afc39f600573bee1ad008d3efe59de92635f894a7ece86e7cd62db00000090585c797c9027ac23f31c5f60797bfc5fecd58678e6fb3f31b780b362cac6ad777be68a741980b1580ca9a66a586af80e00ba6a1f57a6668de4e05e6556f8caa17f358ab2b28fcb6a3a581028c4e428202f22bbbca1fcdba1e524935414f4caccc23f5ea9d6505e76aa62975096ea3df7261ebbb4d1488ef761efb9709bb1939d33824538796f6fbb7775345f0da2f0190000009079a78523baa9e9ddfc828c895bbc14205562cf85b1c33d39dd0f466c0bb93315a3bdf8a0dbf1edda20d4f5dac94c6a5e4f4d32352a0d80dd00d061679fca2e749c64c99a1ae70e4bd7ee9bafa42504c707b5122a24ec5261fd0f60020fb422e48a290bd5a995f220481280f1cb2372f123324b556c2a96d5e4cf4a2f536e64c9e464f14632a7d68cc591b9f132bcfc0c000001bc00000090c503e9499e4f1b5f36a89b1b20a262de732c59b5203ccdbef69fbdefa50d67a971d124b4d330287b39b03b814871a19a69b42170b3013fb1cd5fc5fa1636837f09e99e981c0f3a15967d10859d852b1b2b2b17f8a9a191e9e5b09db478a12f650df21515d41fa41a209644eca728061c0aee02f82cf09c100694325c16c7b7d99c06a8db2ed5827fcd84a4f4902b58c100000090e13c6553502f9432a4d3ab9b16cd684e7b852a8d612d2bafb34de68414d753a3a5fb00649442be37fbf08d09c7cf657cef1b949daaa7e8f6aa38afbb600fcc552e88ed4f9cec78fa8d42e88896298522206af8a346be06fc799965c42df7356885987af6514890a83fc69baf09a0c8d400db4858f9ee56509390d868f40f8fa781d3bdc04c08958684b9645a6f9791d5000000906e0146d95aa8373dca53797e33aff593a77f2a1c3efdf8f567e39aca7f50ad49546dc14e986fdeb938e04afa2059259bc51f044dfde7f19d6ff7289dac89ac789fc2c8e2301f5031b3833a91b63c088726f8546c8a2b73cc53b39d6cfb88af18c1fe2d08850b723a47e18710e8fab33b07110cda4b7f48a604c613358ed425f5a712e780a67bd61002cdd4f00453a7a2000001bc00000090f99228e609a05612bb886f35e6b779a92b7503f879a318d04e6eed55977939c73e11c61a86dfc0180fbb7f388d9bb5b57344d588698e9fc8f2e36471dfea5cc46707d498743c8a5e8d33a7dca9b9bee52855bee90fc311c09d332aa8fb9038274fc3024e17e1c600c1733d300e03b1d711493eddef7922fac1f425fddb11c9acbd17aa437c46d45db26e222d196073100000009000c466756813147805577900a47b7b68e1981f910a4bcbf22ef20efad654690f0c38b7629b978de9dce089160b69974412a2ac28f04ba10e011491521f161ead41217dc9cabe44393b124c0e519fe3671bdc0cd78cdeccf79f1c37b2c4ebfbb0333baced74951728023d81d0686fd69c0d694828d259512ad1ab777221882d4418f9dd07dfb908c3e0b1b6e7c4dad6a300000090ddc13ce3ba498d21585870b3c61325bf1a7a87e8419e8c6e004ebd20b66ef9429b4eabfe15997dfefa62957308e9a00a31dce73e6cb27ad47935c1a62a61a8787bc8fe589294527b804a3ba6ac6ad5dd0723c81f4b91ca436ccd3227b3e45e26e42773843c0f362314b49a21bbd335180b101e51ee52025997db8e55e9d3b7847b4d11097a78589a851a3d9b6fdddc9d000001bc000000901ceda53769be01bd467f63bfa826d55f48d9a47d7625677f07094e7991007b211eac524839e49f419b72d59287d91f0c872ca95dd3731d27da36e2c3fe0d702ce4b1ee87cde7adbcb45d7013d9acff9012f0f24253a5cc60978aa8fb1e362a058242ff3cc3927098600359aa452f02e82c15a5f90ae4af063615fcb460593d1bc0feecc22274f2d447ca870980b971fb00000090e9cdb8f041b21739b639479fb03fc74a9a5447b810ae54084c694f4e49269e2b258417e064ec92a24ca4ca9e814136111482d1b99d9353d5c18256d6ffcaf54ad52be43abe636072b3bd483e0645f29809fb20bf29753dd50db879852b2d2aeb0238c7040fc8d75e3133ae953ca030cb20588a133a938313033a50d5775898fa6247468afb18e414da9ddd3005eb3df60000009031159e5dbcb7d50902eff93c01ecb80cbb99a1a92c7e80d85d7ce6cab3d3bb983ca42434f5f74a020487e62a6facb0f0d988565876f7b63149e8281cfe436e7453cfd29e23ad9bfa9e6405a7da8da5832692e108aed9e2c1590dd17fe781f9111fead1b4b8a80ed1e680c3c87e7040c215bc9b4bd49689171035ba14c77efce5f6d191d2662f0be4ea94e4bfb405c5e1000001bc0000009012b217930f30f5926537288c4b899470bbe26c03813c8ec3ad6806ca82008489ad5f35e0a8c67b059897f87afc7b1e5d13ee6d7d6937b22bf409562af5990511743c04891409e9968b1b83c5f68a257b174717c2c488f705c66c904eb60525628688876aa30fd286ec3f99d100fe19ea2eec8832547f15dc8d4777eeb410c7c8d973d346893e550ae8cc8dcc67c7062b000000905fccb9483fd10ddc553d5166f1505b80f5614bbedc7e8e1c54919eed72960ae891d9296f16334b3d76b51bccdc6112b98bb7155993d8ce452c2aa0968a79d9cb8bc3fdca1ee3e7b825279954cfa177711540c7ba68396091a456549c517bbe0dea6d74fe54e86c4f041df4eeb7b34d691454cb7592e5c5c00e79c16645bffd97c785a72e5f808186b6988f5e38022548000000904f4728104fff0481452d7388ab6d9e85a19504e0c2e165e86b257faa44a7b57d5e5931d03fc12e042ee061117ae5014219e31eba6463ec1c79f13ad4ddedeb989b4ade4c0a7d34dd4a586c5c5f71cebb2f1219615516b76e4535e4e37e443f0ff253dfd4157998e5f79613d077bfbe4d23d07b72bb43bb9e3ed88a249e0ae4fda1f9c97f33df20e1a65da7efae3561a1000001bc000000909745a54e79c9e09d3922083e503b351894a1495d38e52affe4a964b42d85cf2cd8fae8e9bc78c8687da6d1688ca25c2c66467a2ac7544ddedc63a281870c0c7764f983a33ac07ca328f017d639102c06249a08e6940240663fc34086438188cdac7f8ddc80ceb9fed683fcf973520d632b31be78e875c454df7ea74e6279351db4dbadafc107d0c6224c0de216387fdd00000090f69029d7247c39353ea89643aaf9fe47b35c221a8fdac9d594ec4deb8c56c4adac784e3129c18fed8c221fb7ac718771e648e01933941abd6a3917f4e7e603240e1732a3139d53665f12ee33f193575614de4d0b9d1e93dd372def246e5b9682e1083896bd92d95c6d49b5594df371a103cdaf1e32e7f8ebcce450ce75dc09a2a800dd168041c49a24457c94ad8374770000009012a5dedbc21146adc8b435d691080e64b0e0fca7bb4c3b4f1a119f8734bad6df1072bfa82fada3a052b465d6b481f37c49aaefa1513e9727ea222282c7483bcb5b94b632caa945f943504bad4bbda5a625e175f3f076a3ecd7f9e25895aeb93d92f009c7c0b1a3fb9c94210ce77b6f6e2537d4dceec259fc08a394d45f35c75f1a27fbc662dedeaf8d3d90f57773d9a9000001bc000000902085a56d0e3c6ee94cce4af5b9005c1f69fc25b7fd571496d55d7f359b5c7e0a0d56b7fb8acd05960d242906dd6401825a22ba0e28f5c7ad97b8a2a238c077a94524af187609bf470a09a93cbe74cbb116b6e28a379c1eba451b455adb9256af831163a6a6a9b58125b386a1844a0b12197910bcbdecd4c0a1042472c41314da1602aa4b8d002c00b57147c616dc00dd000000903c5d1210643d017fc9d6d026a36c76ef5dcd8fe17d03d749a66d1050787a519fae4066390f97af054762bb7e4539308fc4e39409685b4e6eb5044079e113fe42be7c582620f0bf53ed552f5e80b7bf9b22dbbd1527ca0e57d69c19c5b2134d5d719491a0e4926da16b05f0c06a82c9c602fda89270bbe506451864389ecfecfd17a3d4ee0bd7be11788eab109a54243d000000909c7062e7335b19ecc5ae37b5fb24babe0c45ca746e4e0578b21134188082995e80789a4c1f8487570f67a969363e66c4f719f751fc55e9b64559e32953deb3a97f0e1da06c28f1460ae2645d76d527992ac9e7c7dcd31ba49288991339e25448867ccb92513d5def96f94b9b087575621dac0b5dd4a82922fde213934f429dc103ff0a9e36e7efeefbd8cf124e79067700000e00000001bc000000900283bd6f4e21a1039e81fdd4f5f28543e111e085e2778afc9bf3f6eb1526e931f69c7634024466b76379901e6817cdc73c3482fb63034408351ad77d52bec3a6d9cdb412114b5354927b1063a6ab44d929dfcde8670621966de41755969a811d3833e571c3c98322e5a06db040abf2672940e0fcc7ead81a5ee84cdbb909db19827ff0b6cd836d23ff4fa094ea94fceb00000090e878214ba59ac2d1fd34c845e8453e1357fd7449965a8ebe1c7145186b25fb9b26c008be35bfd1aba0c643209e6a4b066fa380442f90b0ea0559bddc4814f6afa96ac5b3d5318d53de332c50407ddf6602c4c3d02af2a869ba331d18497eddd55f6986404b0b5a006bacdce32423b4ca2107c15ca974c31940793955928c3aa20b89f55bd720fcffa88797412b74e3660000009091f3ac2fcd9252f704480a95555a56efb26bf88574ce18f1e2c67940ac1d47952fe2da4e93670944763bc3164d4eccc6327f3e34328375fbbc7747303b84ab1f6ec1ed4e27859b0022d45a59d42c59b52f54139aae93bc06df93a4a693d08b89cc49721ea40e3480d40f4e154dee2cab00882a3d503fd9c259ee23ceccc0b9ae940fab0fa593050dc611e51146d91e0f000001bc000000905dd5bfb194a2f857ba3f5b479017960684e5548126a5ed96edbda7e209b46c456dab072c793ed1f307566b1adfd97580db5519373a607b3408a2d53f84569734f6388375c249890da7c7f108d4d9babb0dda16ce84dff169bbdfc3f6283c654dd72531c4a6adedc08c421c168ee991df1a325ab9da1a91c0905955a9281954f437616e952efdbbfeb1cf4df486d421d300000090a8b86cb3158fb83781c059abb61cff9b7b77a6300c8025edd78c04056c985503a6e402ec59e799905b72c36345dcf98b7ce385560d93b2c5a2572dd4f18226c1e7f1c84c9fb34ffe6ff5b138503c1cef1fe9073b20d56cce201b729ba3f3dcbc4bcc0d4d66a349d9a2a1cb89d46150c629da894063b52dfe9428eb02640caad56214f9415f42d0f092eaea62aabf062500000090269e01d9c03013e4ee8af1d031d25acc97355c317b4f1f7410211cb80fbdf4adb7e91491a2122f09ccdf7a6aafac61dc00a2ffd4bceb2633ac871b81b28fc713b9f8f9620de7199c7ffd39db7f32d7a31ef017873b36d730842d46e944aee2dcc01adfcf03ede3bffba178bcb4a5ef792403124010affb0d88ed98ac33211887e599cf17d928199fda4f7aef11ee5abc000001bc00000090a510ad1a54c757bdb7857f34d29256be27bd50a277c8a885281c8c1f53b10e147ab9acb49f84a1c8619e05a78bda8b663b6def8cf969856ed542d6807818e05bdb6e19921943fe29f476faf8621e012810ca27a4b36a61700f97f265dc97ebfd67d48f8845e739c5c5313c0baa9b74b01e37211a1c355b9610859bf85c972aaa60c512d120c6456eff468f0382d3a1a4000000907c228b91a884a13b3222b3fcfe8cf880c53af2a2462463f4dfa761ba5530fadc7c64cc44674c91d2e47256b8de3add0d6bdf4acf64a5856bbaf59ffff3b0cc6b974dbc8025779112c38af1e7e34a8271144041c8c7d304f2858f9b39b1f3ed5c97bdc3f8f77db3c0540ab0858e439b861b3108c4f3c264da9d2dec04b5f9474e693d4765ceb9851e19002fd91a02dafc000000909a2fe0ba3fee1ec88ca7c9395810058fcac37d4a59cabc7911e44ac28f528d8bbde59198b1c21914724278be6ed00f819a0b4e028e4d84e461280e82d542dd8e687bb3d8ed8b7153757793e7f29fb06919ad304f9d82d1de6cd53ecb514ebbd57ad7f3e405f2dc7e8b2485f99bb7c4092477b766bbc89f903f7b0f517b20adfb1507c63b4193808c127df92cc468b6ab000001bc00000090004d36660cb1c57b0f246e85a1615129356fc928ba92cd07536fa661d77586eaa4e39daf40cb278295fccc7915820992c51ea8c272aa58eed721e5d91e57a94cded1249d3a1b962147c7b3d2c6f65cfb074be80cd5ed1dad9636a9d122ee019af62db0c42be7942c25c139413288be180fdf155815d166ab14b81abc6bc77e860397368f9db444c5fa67ba352a31f7bc00000090c3d8733f94dfd0a39ccaf3e7bf21a2ef20e452f3700b47aa40bb023a12ff2d61ccb3f3c8e6551828526579b197071648d7b65b48f3cdfe228903d522b30a4a25b491a3ed11e48dcfece3003083de34942bd4fa57bacb4fcc811974961c06ae0c5ab802858fecb039e770d2b43eac91f92d643d51357a9fece8165cb3bb151b8744f10cb220d37b70a7ca7595a54f6a3900000090ad220f5be9ea4cc4cfe07840f00221a41653a3791a7cf659597a79ecfd2471d82647cb7c08f03318afc15bc03a885dbcf7943f258e8d72fa976af8c82f97a8d66c914b8593035fac5e672c6a25abd401197a3961072647c1f733e8a0d8dcd6b7700e02c60d733e5800ae1e983049188f15daa92f974f37e6a6d2aad332f4067b522f1b34343d719acfaa8fe33735b7ab000001bc00000090ea27fa1b5f7031c5b34f3809994d6a76d489bffa01bb09b628fd6b6beaa79938310b3fc0dad58564265bc5d2c1cf8a7aaa37848ebec724351a7e85de290b94b026b5ae07a574575cca1a68c2c6023b9c1ff5607215464eb9058af00dc83fb90491584d5d8f0448d749f6ed16050e0aa01766cbd47b09d80f31a686d5069a284f74c177107f230d1c1804265f677a549400000090f1ad61527802ce61f426f226ede17625ab77437261467326c3b16bc19fcf5ece8caaa160ef987f30fe27c877c0963ee05afb2553fce2acce32a8364ba420bd79f087477b2179b85ebd4880dcb462cf050e577e146f44cf696ea4f43cc08298702f93b991aed6fbc75608d536a991c3a613b55cf0ed7120327d8746f4aecdc1bd41afc5a7af68263b9635fa27cee7766b00000090b35816f8f6a2c83e74082b2cb0922dfabd1852f00adf68cd3aa975efb66844c5928ebbfc454923a73c29da53de60d926ed705cdc02c74c06e84fabd66acb0d33ecee9c73b49b4a538637eda9c32d75ff26df3dcf5b3438044fac26066b07e7fc9b86ecf9549e82d05c1cef16c07a18701453a19f99a4c14a7d181cd64e8c7af89ed5559d0d6e6655f6bc2cfc6f13438f000001bc0000009093ad833e66c5bbe870be7f8d0eb8bc3b8a5a1f81e67427da096814942f43963a8066c2732c99f1ada58f6c4229facfe8d643ee01a9b1995c41462a1a12b88215d83c7c3edd091ed33a1d6c709a1e025b305e69c3bd564e51174d94b39da490b52d2add5325b45e5f51014f8233a7ce5126c2ccead435749c2a545665fe713edb3ccd5c84623d2774fb0b49c3aa64a69a000000908661add249b6e038fcdb2116012b621d239d0241aec17b770ff8f171d436f761988f933dcbb7f9ffa7a5f07d4ebd7ad5e500dc59d7cb24028fccb06efdc1e360ef76b64c577da7e76250c4c1374bd9960d8b0c7a86f2eea8d9de6aa5b05ec0befcadbd01eee591aafb4892fb554787810f0116030f1df558156600895ad2fb18ee10c70fc7c80d19757cf78a0c9ab15b00000090118551b5e76e7947060692f8b16488156b0e36c808a8003b199c107508b5a1238652af999c7aa96819c5115acbca954c91c4453fa8151bb017576f3ca2be46baca5f51e9236db94bfad37268877a05061f35d7527ece6f554535356be70bb79ba07b101f65d17cf2d9eec186c6e2a49d03d5c9b23ba265bf8cfe5e7551121829b142dc5755c89250e48977bcf6cf1a60000001bc00000090e2b103cbae8d11647ba0ac669d7d241f9b8807ed63e7cf84d90bda9b802722ea7d614a7e604d32a28e171aed51b6c454e1bd4559aa4621aa859666506ddd00b1f7854168edda95efbd22c7ecd126720a04859b37a428db909cedf96dfac926c6282752fd394adce120ea37017fa1cbd01fcad546468d60ecb8fcb50e9b8ec4a3fed6c3218d48865b38f17e8ee8e0f34f00000090b1965115b0da685d028a3079878b23a165f0ce1f540883f5b31fcae9a13385964d32244570da2591920905709197b67a6d73186a82ba5943fff1a75b4291a82e53b37ddade175cf93f60a419cfb19fb319eb481ada8d2bdb9f31ee4e6aaf49f785d0e5d15edea1be2a27ad06340b33ff164f48bf06a5f6e1bbfdd4b8491b7d65e45ac25079255375a499ca3c31013fd0000000909c9e70ce2b526b78cc24bb8d1efb367ba559505a0fe9a2c5e1e6c41c9149d7ab26f20a5fc60f5acb0cb261644dc22575e2f71890d1cb0e92b8cf7af1c46327ea95d2ea2f7b0d2c50331bdfbf35cfa08017eb1986d5e8034970eb5e9bd5ae6672eb89e7587feb8a34dd658c674ad5684e305512a9c7a3e3209599a840f4aaafe8665cbe12858ffe80b31a55f6cf33e6c6000001bc000000900e74eb0f5f92ad03d3bb9073977c0a86c036c32c6f7337f0dc555cfd3b8d3af0a07231d7620edb7b141326c6311e8116e4504022371423c400a2df3d61f46333459fe983a62d579afe1f32568d60c2f72038e786a8069b5f9f70ba4e056c57c6da2954ed2d6e91fd78ef56bcb3b962d023e6bb20d7feeeab330e326d985671685669668c42073d239f66b235aff8019f00000090884cb2573f2d4870f1753b2e075f774b291a361ae0f7ffaa13a63c7c880937419b378d940a7fd42ec496d3b81763c7ccf5cfc70fe57fbc0e7f4b3ca8a2cdfd503bfc533728c55ad92925e6b110db2b5a25d6b9452b67427b3e784455a60e52dbcf20612d9f99f69f09cef5a3003151c607ae6222e7711619683460acf15fd1e3b5843db842bd254235cef67a00d933be000000904da49a0fd5f6998141398e4c15a31218907592acda383bdffdf78f5b1651f59cb3ab849d0a43bde2d0f9f85a1feae707f24af11a5c82f1a5d7bed479107a9f9b2d8712d9ea45977b16326b5ec7232056263a2044b72853330076132dade721cc6a52ca8accfcc9d77f3ac3623627b209254ca4e7bf283dc1b6139755a3930b0a35de9b7b867bf9bab0b1dbe4673fec8f00000e00000001bc000000903dddaf263e1ff69863499ecb64f981b760e968e9a51c8fa17448eab90f296bd478a3c6adbee1d08084ad35edeef76e00541b1ad593fb8eaae0eee97768bd8853f14404d67732359858130dff8e6542f91c573a9ce8947a7332acd40183f49c959067fda171008296a6ab58e528070a84139ff13c022db3b653543e8d84d0a70d07ed23482ecfaa1f9121ec1edb7f2d65000000905def14ea824e0eeaf52033cec44da6ffea02928ef62d7165662ffcd329129ecd226403320e2a99110f6d0e0d653cbf2d1f3bf4d3cbe37fbc56e37dc1024d4f03209ef00775dd299bca8beb1f6ecce155104cb20539e49a00460bee1d764dcf3170cee8d541f1c92d0a1059878af73b75243ff91fcd4f476041d4a620c052e52b599a0478b71f34942a34a3b7eff2108900000090537817854658f837132647d5e2dba1be5123c210d6bf695d4fe7589a081a7794375120d435f054e71b1e8ec159e43b1ae276bf547db1d0d79ae51e5f10ab80d84f6e03306c0e7967170f791807dd2d011ee51c6964d36cdb4e78db065f92248ad0da71a11a3540ee9f2f68a5008907a10ec8eb8de2ac49da569620b72fc30fe518f04e241e3c32f34d408c8643cbf7e1000001bc00000090e121e59911bf5caf003ec5143d52e8defd82f0ce04c4ba6d29b6a7c228f6d39b1a0357029239d04c12450e20478f18c076e7aba988b6f47e3bff7ab6f5aaa365def884263d51c72d881e2258132633382f328a908ff38c9e49edbccf50fd611035dc8a564dfd27ba97ff971f7d4ca8030b3974fe31c6c8f82c553c3cccc5220ff765bc27dec47237e6556b899549978200000090293de6fd6e1dc7070b443a402271067014217e7195bd52c0f8dbe15fed3a49e440f6bc59479f0c9841d02ba21bfcddb1e685eee096a0ada6f7c9139e0a44f68a1c868188976afbb60572e94349bfd14f13440c03792cba01ca349ad82d13ff5e9c2c1dcf5623b9a29d08011b163db0a71f525a0280f83674a2579b8e2cfa8dcf019ea13f5b8f8b84bbfc1853f8aa286d0000009016dcc061d764ffb223b7eaf795fc544628dbf3c0b6fd2a09c957d11e84c4525f8a89371e293153a86d2c358bee7eea5c047da96f410d842b84520754f647bcc3f289eb9e54759692a817d8d35a7539531f9813d1a4cfd87e167940de78305ef21385880041d94c0192fd13892db515e627eb4272a1297e33c7d621980e33f11894b266954a3bfe2a87deb0cf0384e608000001bc000000909c863092c14f576e1b25303159b3670e37f9977f080193899bf75dfdf8e8b76121abec713604481443cf8df5bf8ab961abc6a20eefc36c7545a3a43ec7f3e27156ff94e23d20de1f9f9c96330589d6be2e26910072932addbe5f70926f9251f0cdb50b8bf587b0235df023dfdbccab1d0b55def707661ac87b447e677b63d0469bccaca204ccdeff9fb0e9f811f2bc730000009052938c32916098845bb8236cb69ec25b2141df66e9f610d5ad822e0278b370da9aa38e7c2d7a65a3cd7e7638003011820969c043da9a8b0fefc5dee471a0ccc594a3cb4ae39665e37e49441eeccf6da027a575ba10de110f3a21d2805ccb6eef4931a4e7106d5fb12d8e40647d7dccea18ce252be11742eed1f6b02b02a5a07f98fe9291abfb8c593214c3013ba07eb8000000905eacd5f8140cc77c95cbd61d4bba29e2829b37d3e003e3fbd85dcec16f5adc413532da6bfb511539e35d0c7ad6fac2ec0292923570211fe90861756c28eda15d54e48b88a31af84de9d894cfa321b5ce25e58245e78aa5e9fd4d061a86469995055e5fdbe240ed37dc0e7975282b6a32150549cd848c134dcd40b9f831b69c7f8db16edf7de234a8dff26a7f1562c1d0000001bc00000090c62c6090f6088168a866f718292ccc20be71500981aaf3f08d0623314b9f048088994316566f160919107574c8836d218cb855c5879b2650bbeb29c8ce6979f8299310aa1c04189205181247a43bab392a634f4aa2e148d83c54c08ddf20defefa6ed648897f0d8854fefc05838dd50126c6366559f7bd2bcf426f149cf0635daa42cd7f133628573810eb4d12cdfef100000090963e00ef51bb6311a6d600aaf4750fac033ea806493aae447ddfb7e0ea97eddd294143be20279398b50600902e3c3e3136296c7ff50b1397e3fb35e098c06952b7938d0e45bd78b77e149737d06883ab0ea2e423db7748e8bbdaecef7895a2a774aaa2d6e20b76a147881fcdaf10e70200d27e2e3d9f27025c34579f6b625201c3a124781567f42526cdf84fdb44864c00000090054d3076468dc4929c25f40a2d198673b5aca36aefd5243d8e862dfd7f513c949f21594888181e18c4fab12a719fc4e18cd94d4cf2561b1961c168e552b8d131f3ca9dbe79c6cb3d0ea58bec229aa55d1e39e604308d92850d915504b82358a851030a728c5a1d7a615dfdd2ccbf21201f442a0ca940a8216d1539adc9d9cb793e376b756416deba434a8b8875ff8c06000001bc00000090da200079d0b6802722baec203eb2c1d74820ee4cab049e919be213b68b4291d273150eefd632ce262c22774e5b36ddac18ca159e32ac1f2d9eebaaba3a9c9976aa2204e70a761566228de3a0a9c482cb14dbe23e1555a9e8e4d2da32da4ec235645efae686c90a32dd6992afe02e910e04a8f3b01b93ba8f6ca8d7ecb10fd6b6205ae8afcd1e635141a3ab8c27944a0b000000901154567cf8725e235fb9ea18db8b9aaacf56a069cfe98be63cd4a273965d2e1a4b8cb21e444d7635aee2ccfe9d32b4dc1da833f3993c1656a8e0a96100f01d764b4f2640441202d33c9eaafe82cd212215c181702cd788e9ba09a7802c56130f08779d42f37973a1504d66c8f95a820a0d49fa9a8e202c02e2aa0690690fa34e998e639370d2028aceb8fade69bc8a9d00000090cbbe52a7b1e83d6ca31646559c7bf9dc8ccc3413cb241e34944786e807e150048263d6db01f259ef2d7f39d97a9da228055a8c8d88f1b797cbd6fb1b20aefda50411ec3c1c3ff0d6fddc255a1f38c9491a346a70a7e54fb112f7af6c34b795f71ae204a35f32c7761f20d84ac91e361e11aa8816923786c786e103b30cd4c8003c8a4edbd9d5275ee950843e37abc594000001bc0000009044898dfd487eb42c5582b15f06cad653d3720af0fe04c0c3754ae074dd2f7d3fff2e5eeaad8fb61faddc1281c28558031764ee4e8226e19679b7e83d9f06fc91aa6e92c033a833d95691c92ffde00365081009388fcd80467d748a0cf456cad312f4f965cc4ab65353dc307e55d5adf101f2411f8abff5ef890f8292b93fbd2880b426acd2eff8c594631f3f169edfc400000090b231f97d7c1dc9b8cd1efd295bf71f4255af53d6d66824bcc9fb84babcb84e6e8829036b725c8ab239a088e56f8a81863bab3ea5eb71a2c8cf4c686428aad63716c8703ec4bbf7848af300750d7f05e01e3cf6355182e2282eaa363aab307d7561bc44f866ea058a5222d1b521d3d56429f743eade5fe312a7727dea048b8addc808c5df534228dca0b5e0e8bec2ab410000009069bbcdfddbb332bef5fb899df0bcc57b4097819f2fce290742204754857d6019aebcb86e24a214a8507bf445483414d08b5439664f733ce8cb3d40d15f14768a98f6d6cd3cfe301445296179fdd7c3ab28dba33a4d4f9964754faee53f031e999ccb087c5acf1d86c8761f88a80c72391d0612b930ae54e0e99807324c40c74f9e6d852829f4fa44c035ed68c750fa6b000001bc0000009006e3d7298231e1bd88cad3da296f9695b48051596b3e7aa6182aacd453f0afb9169915107ba13e1291340a41063e9e329f145764cc3fc91e593dc7aef2dfe1dfa98ae9828c6fa110b442f5bdfa589046241fc27ecafefb1e9f23d9c77a53fdf9cb9bb4851323344ced29928de8a91d5f0214b30cd74e5b9ca05630e38d0f3e76cd244a9ecd414376e92c63bad4bad3440000009058d750569fdea73f153b92dd5d6b5437c7f73bfdc876398184e87b47dff51be3d2329be57524fd0634edf3ef1458c5e28db7c99c2bd9b87dac167b12d40264b3920e88b0ead3dc469e8de7cfa501d53c28202d314fa790549624c60452d7f689b87db4e773a1c40addd83ed8284db29c0952d1fe5afeec6165037f7294f472479589ae6063429cb3244789e096de8f8e0000009069d2ee734461b4fdbeda2f4dd897c9e437bfa09df130029a5e78ed44734592e96ca1867daf9a5ac05e99ace25ae57c0e4eecbfeca2c8564523ab63b6469659095f93431a212f2e06a2052b7a157fa0e4159a48a422ae1ce63d5d5c87133c53d6e39ab7c18f5da562cc05e9f44509091d28f062359288bdd67f5a445fc87367d58eb0cdd3cc5f3a8b0aa83e657f5f26f3000001bc00000090ab0ffb93f341de484a39da29e32f55a41f711f57c75fa0f0fe1129704caac1f07aaaf0f90ffe297d378def37017b31a830a3a620306e22a943fe7c1ccfea3a7ec7c8bde0dccc46136d3d6fceae942e5d1e7fe9d6e796306bf7dab1cc5eb804b3fe0ac38017c3ab3d79608bf04b30c1672e86f5488c78c6b13718dd6a0bcd8e6dd4f191ef947e4d5e5891651947df678700000090844447ed79c296b401790820ef53aa7538bdf9d728976df9dfbeb8364c657b7efec7c687d547a78226690a0522f11e9c19b13e01ec3e05c73f711a8c3ed00be79bf2895544e7da381a1ae786b12ea28411b0b77cb0edb34a49617192bfa24ea2375427d2951ba60a7b759c34645d99410eb50d997044c048f20ac29c5505a67666467bcf7e802de144c77104f14f99fb000000904701efc1f29247742d14d6114c780445753a96afa9b019c2340b408e98c037767db8c992dd7e009ac93f96219e0253f9a05b5d9c8cf93e8b2c0d2857ca1a54884734c3ee14fdd3da7e08a4ae776c6b9f1df532b7f5965817e5a4dc8355315406997fb05c206dffe2f5613607962af58d26f33734ad46fc0ca566c7b9c9eb776018ceb91912e62f4b7226860130e8c0c500000e00000001bc0000009005c35193a5be3c9bb62a5d4cb7cf65c76f8475dd96fb772124cf36cb4c91ec89ca6ebcb6b7337ec44d730b3d75945538afaacd60f15013f0a0a5dbe984b07a346cf5f653ffc6a47e1aa694097a0bb36d260e3a379e98a7288b706bad10d8f32111a402de58a48e178224e9b231281777172ff8d0bc40d1cfd1a2080c6b16be62d619973dc89cdd51fd341270326f5a8800000090abe8118a97a04e01e77afd9bf98d3800b19daaadf7535c99bcbecd3217a8b9aec0b7c842eb5757d6fb5be24ea77881d9967e8cb96227f317e537aec38b6101c9683bb45eda508c3c66d34d8cb4a9c7340e154831b30d96f5e3b33b80028324276ece9377e282eb960617147a31d4a9251612bfb7fe8b92481cf280fe0abb5ed7812b563b65f1a14a025ae20688f1e93a000000904918c080f121b38b8caac5077cbf743186fab7f80cfd37d25b9e31e059a4f63cd98207a03df01c65d1a213a131edd0b2d33f9a661d1e06612d889e28c3c6d78a8b458e167618a038da5a5ba8d1ddef5f0ed340496eb32983bb514be8866bbe0a1e99c0b9c953d381bc0fc2d139233ac7005e8e8198bcd9b5c51406ddd2a8f596daf09a744318b4d3fb43f2d331f57d32000001bc0000009028771a54042dd31adcd2089389dd7d308a80470b365d289cee30db863cea8e25292984c83f67e277957e2d56261aaab1c23b4e5dc595f8f4498a536b01e390852f8871cc9b85c76de0ce31e290ed0317006063f808e3f2aa849711d3fe085cdcfc88bdfb7076f7119d2abfe3c7f9acf02f9f5b3b1aaefb3e9ae95505bd79a2b8ce08a521c61fcc8b6c5314e61ee25dad0000009021a55c30a7f2f1d8f133e40ddeef012552df1e8b236c9d1e781d5a1b9567ae8240a114fc0b65db2aa2291f430b91d7089a0b4e82329e85c1e620a7f77efb3a2866c65d870804eeb9e95e241a8c3d725109319530fa0d03c2c71d4618bbbfa7c4d03d92653f23cc5cb041a0b3a9fbdbdc26ea98d18f283e40751c35708145915e78bc14aa32ffd5c20ef85992c8fcd6ce0000009017d7ad058785efe41741578ab1d881c9943d9914d75419d2e53f21a0d0e0475bc1b0821dbeb00d5f5ab87ad37bd7c4c1758540b2f1a92730854deded08e4f002bb6e1969559f119d263328c56d26003d0ec03569fe8d16ce3fa72991d39d86a1f9eaf3346b7b6a7a325c99bb59af6e341577b3137754f694d765a4f498ea89ebeeb336143137d0d08c8eb13ef7aa436d000001bc00000090c06d4f31b0028c97119ee119644e8b83a0e3d6c04943881897428f75efa664fffa57b261f37f7e41315056be882ffbd505e4c90b53528ab29e5d8021c3a3ea99b6b77bde898f1954ba38463da4a0b8e7113581278d1ae3a4e3b6cbc8a189e87878bc9fe37d6acac9d0cf7c0c6a65df5301aa80f19da64db37515699c8180c3dc6b051fa1b782d027ddcb058ef121c18000000090c0b2d0515134bd91303e321a23992afecbace5400b9595de9562b2a632fd93901599f486fced1999717ebd3f0f268f3c2c8444848c643005785d38c88a61a21549c2c0e3f176992922215a8c80b6b1030e82bb089992455637ce666fc732ff1019510ca5b816e9d73625e56be9ccedfd25e4f65f60a570d16231fe78d09273fc30cea7ca030c7886e02c870f3858b46b00000090ff954af9246e34582970ba696413c31d93f430b97dec527a593eec9a6d23f6929e7444c848abfc08bb57d2d35eaa4d0789fcccf5ee3c3dca8b353d35ef54a318bc1f03b6de479a83ae8e78afa1aaefaa2b407c7e0e7a324297fb76637bcfdd88a7c9c1f4366fdd61004523648cae6b6c0d6d0a1ef1f8f0bbd6d52ffa34d75dc5b4fcf925836ca64dde9ee0d15b4634a4000001bc0000009063d6d9f2e54a19efbdde2769354d45d0350aff1bc837173aa69b5c85a780d4ea1652cb1490356d38401ff831cca3c467dfc813d7a9d200463f4939e27b96159c0bbc55d573778326b7ca768e1a685003258b296e0b6de102c48a6f6e4211847a8d481c13861d61f9ce3b018e75324b9127d85b1b5f44c1386c943a7fe4e362109852d9514e24b072db950fc884cc743d0000009068fbc5b3a978da992eb2b5440ebd094349e640fb361aa4437dcbf7e9333360bacd5623b649ec3d624914a21fd53da3b17275c381fc9441b01d81043a7f0fcbd6f2a146070395d524bacfefb4b2161e931af0f9d81de971346472382d5a3fb988cf6cf0a5af40666c8b4e7c73b9c73faf210a6b807fdfb2e8c89f02a7c61128d83ab002a7c04afcb54ae7ab9a4791a8e700000090d9719516a3db0da03fcea0f5b95a2a63822986bf4e8f5b066ba84510435885c1ae9dfd73ddbb6516270b3b8dcedfa908dca6ce8ed45edc8954f49439406f0bfca195e532a345dec338a335e63d3e8efb1c0bdcbaad9ebddd156e59da0a88d582455783fd0ec94f316b224903e84e88a5138427ab9551c85331a8ddc2d8611f815ef4a1b45ebdef5a02fe46b29b2ad03a000001bc0000009024787a231fe56f3450703d8149f5ce3feecbf8d4b41b33410933459e68d07bbeaf999bf2cc3c75ae2cb8f083785ea0073c207afb58268771c87d255190c2cebd90c1fc49e0ac89a320b64280564ff0ee0049f8241a08905eec26e94f08d95da33facfb481fecebf6c08c4173f5f9c2ad0a533a8112500d71f12ffe685e4a334d6bb03ff86b871d8a21b3975e5d45ff9600000090999154a60d34acd1c2734df1e64cfa0a3337d9d5fcfaf9681c184983fc760b8b485f9f89ba1623e3ed4548ddd2f68071028ce2475adb7e3538bf2fc13bf276560db5602116f4330d8fecb871d0c6b47a11e0b8c5575f4fc67ee1e50706f227ab80447eb7e48d0447c29bb6f85ad00d59244bc5c5c0d30a8913fa33cc3d77ad3c1474ced301ddc6534aebb26aa9f51f5300000090cefccd65e704817f1fb742e0f446385be9a76385fb18359a980e39b5aff74a7d334dadb4997c0338a3b59d1f520ebbd84388dcb4942e16c6edb52c16cd15f21c3b742a26eaf5c1c93d6011c6e5b5fd032c65effa7ca60525902234a73ee74dbd182e1d6a69e753a2fdbe9a97944ea04f1ddb4813dfb1e50f24f3c087526520dfa5deeb73ce3a1440b8e085e61f85928a000001bc00000090b068376b8e381f2f5328b64ed5f050d1cfd04ccfbf3dfce557d8a5da3718f48637a7a79b0b912d84f894ca35a43b72fb2b6ea4e14d64dc5583d7390e4511d43e2fa07c93d40d863f85995e78ce15c6bc0530a5db11a312fa8a8193598912720a8b84fc340d528c1b7f1b59c1dd3904c721e14e709bead1a9c87c3a07a2acd58219113c86c6de754adfc5d363ab9ad2df000000902e61bd8191b991de14f3f9fb63bccbbe7c6602e41e86176ad9f704410c0cbeb5e122b0790e0bdf067fd13bba15f05ddbcd46563d9fc9de6ae79302de3cb3beda2227a6e42bf3ff62aa1354b5ac74cd130aa1b4a2428299b3df27828e349bc9600a099efdbb555257d148c5e2c3bf70b91d2cbb29f72e49276c0c60b1dfe2b5846212b3b1475f1d5d359aec6960b4783100000090745864834806d5d3af1382ef68aaf7726f3635c6882a21dd7b6d8d8d32e9790a6a5199dc81046ace01f815d4e162c1be8a9257a4263c46755c0a8b20847d158a9f451cfc7e33cc62af82f890089fe894200be7e9ea86dff5b6092ff52312c7296e65d98e720fafadbc4cfebc47df33bf2a322d3dcfa63ca036f3abb0039875bd46fa5e0666f4c5d5e53e0a72c8003e02000001bc000000900b2c6fea0480d9ef20d8a250e78e94ae5a696881a8bcf26ea63ac3eddd33adf899faed5d07e4555be1a41cd0b924b2ee290a28a8a3bfa3a58ac90edbc4390f638b6520c30c1d11f3316bca5dca8d8602107cf842600dad075719a6e8ce0ddc9814fc08568cc6674e46f0fac009842348117d89012704711fd48f7cce086193eeb70a5488672e91caeeafb2850e340ac0000000907612d482782f28ab347981169e91e687f26612bb77c0258f4c8dcca086143c8cc24ed08d6bc6460e7263f1670710899ba99d8bece4fb0746f0b6a33c2667087d46825e939d6a5d93f48d6099f020670c09e2ba17c6c82d5562dc8fc19b32e941caf333ffe556d769e1db2b6bc297e3542d106e5f2e210b2d1e32da01f23a67901b936bbc73eafb37591ae24391fcd5d10000009057d72d98c75d5cc058ec745465b291331a51686e43e0311d0d2a48a33b62ed65902d8a51f7f122f381e436ee0ce3ecf6a659a67a556a8249eff694bdbb8d257acce45e91441693325ed73d6a34a4c964220f1e4191fadb3a4943e977061dfe7cf6b305eef268662bf8755db75f03e9fd2aad4e34d5cabef53d58660a6478b5c5b7e6b637413bc978c69f521bd328e340000001bc000000904b20f113305e699a0cb5140468f7e2c63bf0ac12ef905e6e49e0c8d20c56cf6ed595dd4e58df780c620bbe3080a411d12db033d16e2472c604eadb8b19aaa3e126e86c1ebcd7cb9578e6c0450a8d5576249e7416f63edf9c0bc3f09cc1565ba0c2ac7dd65b645e5908b4df79d22d30fd144649e1340fb6e3775d2e88ba0e199fbb5c8db3434092d3b6554f9d897883e600000090ad523c735f75dfad61a2ba937cd03dfcaf1f9920825510431ddbde02ace7097dc2a2f01081017d2dcb4b6f7e396c7cf7e1a27a7ca63fb37037cfab9f560bbd42db89f34ecd004929b02b673489264a511bf86a4f8a503556d035aeb3aff9f392ac1054c065bef3632070393f8f4258d50f446d493b9c6baf6b26db2516b2f6f4a376a44dc4506eaa563bdc11e131cb4300000090e2dc8fc73a7448085e3e3af9cf66c50f70dd680bd3054cd6e74f10badfe02365832acb6cbec6d971a99f75ffe461696e4adc40551eada160d3b19872a7be123082d3ac8c768bc979de57b3ced05725e715542980094d422e979ae4f8047264da5611327ec5d16076556dd61e96ceed6a289db2e271a0a333ddf7fd5ead7ddf1f13f60b697df404692af86ca64900cc82000033a000000ce400000128000000909fd76054bf49b83e94c64dacc5320c6b029e1416b54d640e0bd0ce33dec6be4abd53763db4a34e887b4169157abafca30a7e613bcdfac55d2d8afe0649d4d8e5173144140df964227ec124b31b40418c1ffc0dd0263f89c1e8cee056ba71aef619fc235845c4f1c484d3dddea73427ea2aaab56123f3df938abd13cfbc8be102def990ac27febb17b99970c84841b10b0000009012991997db27bdbf84f3c63d0d2e1f9318da9dc94895b7d1ff789c972ec6b70a28ec3693cefa702f64f4b1bf7863b07d8413c914357a62010aea2273d13b28588deb74bf4f1061c2b5fb4195edc1143f07a0f93a02ce8b3b56fea4b843fd08b379eb83e417769f53d575152067962356098200df293d360425b5dbc8cda5d51b921287f4d695f54cebea811f92815abd0000012800000090889a3cf0e73c859ec871e4da00561dac08cd21c66fe9f1a1ce3bb7a6f1276c13108c9acde5fef2bf2849569e67160bfafd9caad78a883beeb0e3482cd59727c667602fd8a89d2598fde2e06d8b0fa4fd151b1cd99a7426a8565d1a2f414c193a8ee7a3b7522ddfb58d0b10f691b7143f24f6c8ee6f7b378c2aa057edb067e4bb93ef1f0d021e07954d0fd23946b495080000009003b53e2e39e00e68c7da9d99f32fd695bb8b0c8f64857f5bacddaafeb63cf985a676c1523270b07f4740916a3002d7def142651f726a3cda4be9bc499a665f91aea2adde7f4f56a6fafa37f40cbf138123eff9e52105cc5393f2e6e622d2d830e6bfefeab08f8ea50269839514fc2d9515055ed3b390d273c56cd56776c0b4938c752fc3568382dffa820fb3e952e68400000128000000905b078133c6fe8869d18df969a14e3c31cdafbcb098ac6425b41f920f39dad924d66db3ca975d5350ba906ec5aa5dcba4d5ed8ee1b1ecfc132ea280f9f75cbabf6e52f407402d3cda145f754594e280722b5311251e8a8457cb86f831b11863246376f401561c5fb82347c0902ecc715a14313d3b7c9d3c78fac17bee68845c3c62056b2c749be2f675785b2219898b900000009089b26038fb7dae790692854c4d534e3017b526cfcc73c6b088baa80fd9045e1ea9f4ccee5d33c2fbe42cf0ad0efe9c03e17a0176a0ec36af309469f3a291ae8cbfc76dd00c5db07ae3e4fbc7e136d28d2bbddcd237c06d99966020fff68ba10b474b1a28cd3dc9e2ad5c6470b411a891159f890958eeafad2233977d5a224835a102ff0a830cf6e091ef4010fb3a77fd00000128000000904f775ac0472305ba9219295a0820316a8379b4d22a20ab97f89e3d6dfe4f1696222802811a43c148b300d8b37b2fa51cc5fea05a1e939258dd4c2ae01cec28bb3d4f229392fe9ec98f8f75a0667fa40026bde99836ace7c01a4b929df6f8ec7cd3f9f9e9303f0228647d0367bf1eb2fe114d58bfb74131ea4a590db0458179374faf16691e3f2d5134dfcccb3971be8e00000090a833520a643b0d756c898be60668afa83a9a2b46b6c07b828c456326795e06dfb4dd3f1bb55a4c41b9ecffee13b53b7284fc163498b992b43757ab22d1fdfbd5d838183e19e77cad46365673abd706ff10aaf03687a6e4c86629d482f0a3629e72d11b39b9e31db2e70db398f2a6c54e1bedb70ab896f15a50d3dea6fffe032c3a7d2cb87ed05cc4f399140e0e58509f0000012800000090653b80ced54762878a7bf1cc9902e9fa8843aa78f72df341214b0898a9c2e7b61c9e29e4c98239ef907e6e157f39644a5825d487a1807f181ac44b67d4f6144e7882ebb7e882160d3eec6187cfeba523035aec654b7d4bcb68c090526cd1e0d6230d4b868274e29db9c0229aa16c00841aaf93c35f53fd02dfe8967c2e53df3af6dc643d7d9b87b2f046831bb6250d760000009050d15e76f1c4f7ab37b9b5fc055643ed16b62a130149e8cf34b736f6bc68c45054aed9850e6ca127c8307b683e6935f7f8ee2c62b9812006e77741e354f6d388116c1fa56a5e362a12d397dd20ccd46b1290186acf49da7ffab4223c3b80b480c51ce1515f75e3c6e849d265e14b45a42e18108070ac195d0d295402bb27611f477e90b4e59f3935fa1b7090fbeb2722000001280000009074564f0e383799471e19339167f23531eab7c40a0de589223d9a582f44d22b0855ea2aed1c27b494bae446897e037e7c2cb09d3caf2884f3e44f9d62133b243d3f02ac46112f13826317e6013e8b36280d821badb4cd0daebb6991498170ca9f5e69460b07d3f2c52704e35d8eef1b06273fa13ea9b556e19c3238196f7de9da10b7b241cca4465a508def17ed65378a00000090da5c2fbd386d2da844fa2e6c0e527672a5614f90f9cc5b1fa776fb06617d0fa5bbfb4d225fd4dae445e2f1d70a70ee3691b8a40dcc2279ae89ebe26171ba43d01b6928bc6f63e82216795422271b66d51f3deffba2fdd87cb7ee02a5094a43cb0ecdc0d23d386ba36fe7faf3da6dab3f0b859af165d212a2d4ad524b8c4311ab9626b9c8b0343c38aba36f0d52ed52610000012800000090f2147a59bc227e3ba13cb2f433e63d578c43bc8825d1decef06b00d035ba6e4c11b2179f63f57983b0221eb10ea9730c284585a96cf92c43a93f448f2fae7ed1262e014aff7f302bbe1ff6f2b6099be3226d943949112adf7aec0aeb8e3a6aecfb7cb24957ab8d61b32264f12a1586f10c06cb30605097a04943f6095dff0e609f6d3174857774ae65a5191f0e0b81f100000090d402c489465a623489a79922169f55e858fa0f9acfcd7fc358d3b281beea8489e0212d0edeb4515a09ad8a18837b16cb358ca930b17c8167026f218257b3c6f30d28e29811892290d55111bb1f1d62702fb52fceba76b71f9e27ae0bb35c63ece69481143f922eea2ae2ea6604fd08501d282a8f9cbd2e7c1182c0800f26488db641bb29953d32bdb601aac57286cff00000012800000090b8455f5c2c484bc86a80233a8e1c44966ec4c9c864e793f0c85f94040314183d3716e26be0922a1c38ad8226e4d762ed0c78fa597d158b2eee77471ccdc3c364717a07dee5fb37f85622f249c59dea6502375a04f0960b1c0e0a8441da5b76790069804622df111b02150e9e2588ce9b0c1efa927df4588e029a76121599f7a778255fe0603212565839ae43dc0a235d0000009007c1e7d5246c6c1b4e367314f99610a6684ee39d814161cc0cc86aa41cf830b9efe98762926c068064016c442811aa905f62515978a15da812bd4ce0fced34f867708e29ba7f2f72931a4a8c7b6b2ad825adca528d3f72896462510725f607eba7d2e2a6529de2f5e5041c29d17538aa27d4b585e21c70a9259997ef59205304dc646ecb4815f9f5a4b32930dec6bda10000012800000090fc483235f5ba461eb126ca8dea49474be62451ea58b40f75c9f16666309d92e18bcc496c0a670465c94d2dad8da5ec180ea0048c00ad250e82813b331927f9d428a1146b3f1d238e526bfcb4e5e40a90229492571dab6892cff444c63c979aef3721c6b5afac55fe2685147c8c07fd142e0ab23e8bc7e6ed80849b868aaee1c2ed6be18ede3135c85f95bcb0b6451a44000000904d876b2824cb5f0a8202c2bee49c83e6d26ab1cfca66a57364639b4e967b3d07fa6e9d9dad3f471fd2a8fe4a04f78c2ee38f8da8954487078aa39393052505b936ff0e08fd859d857f5866f496bcf53b16e8c79c5b2852d63c60f66ce2b095d49812b9c887d3894bf12a3dc825f7db9b04d9002028de0305a831c293c5cd9d5d4c61d79dc10a6acf50d6bd38ad7719ed00000128000000900be4d039e2da44041e40e1bf23a13461a6480dbd3e3bb2f28a9d88f8c89a2da4f13fd8a7c084725caf2c81f2945d531ad4a2a04b5f282c9567c1286f5c25908ea82dc5cb21036f82c3af3342a6ac22281b7d5acc1a97c22ef10caf47788540af27b367f116dca0604826885139d22ccb17e86060d099d4a4e55d8cdfab428fd6f809537d7c82b2e92696edc5a72957c800000090852a3e51f008717089808d3c410c7271dd71a894c7998a6a01404bcd92a91f0106700195aadff75c1ea1e5b94bbf15eed64ac8ab157d97f6473e5260f003e40e54a443561f3064622f2974216a370a8d08757c587295e2ce5f83dcb2d2cb7288ffb1a5079577ccc68ca5a11728d163a92f1bac048d8a49f311fbb6a8701f50b1afecc39d4c65c6199b874c5ccec21aa30000012800000090e513d04aefd24f6fa9431f9451fa2d8312d4d07d48c9319763ce12816a6c85b545fda1595ba0f68fa5f2a6a290f18ee783ddf21db19f2c9df2c1d37940c599f033d46c3abb3dc4341f10f9c8aa9b976029f8d1ac808c1ed9976d413cb8c8b3311f72f215ec4c6d7f0f9b20672d08c3310a75ffb4bf0dfad69ca2cbba596a0db96a15273d7d63e00402f075ca793a86a6000000906ff7bbd6b8ba7ac937bfca3c621f982fb721128f3b6ead3d5ed5c1972e8c3b1e00f0cbb17abd0794b3397ecd95bb1dfcfefb1a6c7777776d666e34f8615e5c29c022a42c1b8496f1d55a5b54a35bf7391be3b7193bc7ef984c5b74c07b0e832cc5984da39f2b2dc7e3af37ea499ad44300ac656513ce3a2258ec07dc9cc8e6a453fe83ee3cc404902eeeb07c93d7968b00000ce40000012800000090294757b3309fb40884554e0dbab49a579418f11cb735a33551abfd52e89ef0819a73d8acc2a112a50469e9a82aa8f2bfc70475eb7f81500457d9e5658265ecd44be80f1cbdb93d1ed677f0c9a04c71e108bb97dfbd0ed91ff86a7bbe8d5acda36bd40b9f8347897ab9f625d8749c33a91e3c5cbe54b8450294e65ef6c252965f8290972c9ebe6160bc95cc2d38227c7b000000900731279295441c1fa493a5c8900dd2496b80e0d731304f5973c66e30e48869717b958ce1d2e76e67c2451a9937b7198c4693ad7f79bbbb16bda160b702fb528690d6fe823ca1dacbe843d8dd8e0f4da42cb94229d67f2ab089d46bf7e0f2a401696aacbb52d9c28f3f2f1bfbb3654bed188fe12880dd55a22d2b0cbe324822978f6537f9fbdfa746863922bd5597fd350000012800000090366514e5d0bbe663dc19a2d5bacd4d29d546f0116ef61d17e0d7a5b64434a75f8b13d26dcd390b47e271a8701a1e571925d13c4359d96a93fc8da32195288653db3fc27ef74fdd768d84fe5460e4a45f2837da16a9c2903df1138986f888e300e3340fcb373993e631da29728f5ad53828911831b3a7e0db2046602feefd175438b11a1f2baea63620dfc5d34c535a6500000090e3cbbded8350e75e6cbe4f43c1f88534ed11d0f78c8e85a74b9227a25280733b55253f3ec392e36ca29319d1a3e9853c7e43fb45d1d29565d9578a83646315f8482d62893c59c7c596baa7e53791c3a21fda45dad09096b6e0ccc88ae7181622e75ee4260baca3c15e94faf040288ce30b84ba8d3ebe946d387914dfd76156a2737cbfc56bd8454bcd9ed5069a65f306000001280000009005d4ef864524eb31515d56a99a1dabd75c2cf11af4ab73d1aaa7c58c4f3be6b8af2cabb91b7c86626a5585c380471d904236a0d6fcad9c435fc53934041b420663c8832f8115d809bd26aa1ad5d3768614d9703e1d3a70375355da540a63fa79c7df134fa4efda2da3abcd02bc31ecdd089ffe96d0baeba1e37cff244ec592b04c534281568ce16462877dc6ad0beb80000000909df8aeed342862781037cd4c0449583f95b67b0f17f9917f361c2dcfddef06554da76102106be10da23b103ac6772c1ab113f0216f82704f26607fcc891363a46fa12c41a30096f8d3a6ad4a826eb69c29482199f915d88a9b8d6329ab2e0f1607d9b02629aa13be0ef2e5d7c7d33ef921a2e7d4d116680d84f77740a25d98afe4f659d6fff240b6c96579d2c351b1230000012800000090fa7068aa07d421395de3ae91ebf9e33b53dd985978007513b647a0dba6566eb828c1d86a99dfd0bdbe5cb78890a4dbd89e5953cd24067dc895d7ab7338eccb2609f8d17b20740ca5d33f45b411e4fbd709c25eebda4fca4cc6cddd491d561cbf8db32c63852ed241ba3f6e6c7b138a4d0a558a1b400c8f2fa246ca8754a025bd682ecfc3920d338b4233336fa0cc4a27000000909b99404a6e40fce399426ff91dee12bb00aad8acf9e50f4837c632c0f8b72fc1305d239a41c49dc45ab5354a202167efc7e10bd524443be9ae24827ae78d186805dfea4560569f84f14a0ea9156cda872c7c488d7093afe26dbba52f5a1a896cbe514a510e9ed8517cc35003ffb4839e1a1a24c54fef1f73edb554c552c0222ade0e7a428933abfa909b8fa54d53d0cf00000128000000907daf20effb4ec1baa7d58213b56d8e2e37b81bee94f7b93fb0c84d3dda6e2ac2d77aa08c0e4a67f89c925e67c50020f0d505a0cf61f4badb73fa369615dedf12fac114b386c49ac3b47a2152eea72693023ff8bfdbdd11cfe8481876fc9e38eeac93d4d5d75ca149ee94d72d8174d51f1c767f009ca71df542da320837a7a1aab855b03c5af39cc4ce04d7e501260fd50000009040f994a5353b9b132fecbe005b0b11fd3134c72d7e4696edcb86e07c9ebd74dcbdd7939a73c23fefa0d45fe22272b716ce0db730828999b24271575cf87f063528acc731abd89cf3b6c15ec116b5c3c2049ac70502cadd313ca9e50a1d1af9bae136d0652b9c813bb73148349775fdd12c81e9d0b1c683501298b233ba9d234fba6facb3bc3c967dde62eddb941ac2bb0000012800000090659d7f84001350c17d3b7f560d26e139040defaa0d8f16512b6f4a368e24972bd7bd20480ed1ca43f71553ea3d0d50b69374268ee8874d4bf39055835c0e72d5fc781263a371983687f1d8399311b75a1ee860f559ff5ccdd3970c9067ebfb1d7a9b21005bee957683982b5a435bfc600854ef290d7736009d2ccdad21648c45f05051058a7db92a26e62e4c259ffbdc000000901edcc7073279262b1e7200dcc78ee4a62c982c4d235cd837648f3e8161ec16f2568069b16e903e69344d69b8437ba5053d044dcaf64d503830eae6704fe0e99bcbfc3cffb2cb3473297a4622091c5c0126b6190a9473ef4ce1baffb304a7a21a94151b3b6c3488b53ecee277ec91d43206188344920a5301bdbd4925aa941e4db12a626f2e55492115b0131caf41c373000001280000009015924ac6235640118ffe4fe511630ac31921073d184c0225d885a8b9a7b9c3e0acaae2d27315269ba650d1c3046202c68b14c63351a25c6b3ed9ab0a0a8776a65252b5043ee1d7fcb0f64214154b479b1c0158147d1bfd74c0698b605243dc60e975c3209fb8f4cda0db4a23ee2e16e525651f8ff4eb7648faceeee676de36835ade2c08a2022a9f6f41fbf7f09b220100000090c65aa4107825dc2e606192e07d07db3aa395e8a0ecf49721b49e8a3d7b3313063c7f25dce5c9f56993181e98ca63ae1e8399a16ce55201f17a300cea872cc95e802819b7e9cf55041310bb80f3ddd111019f04162ee97155a6ee401af692740201a04e5e09988f4eb09486e0d74e42cb1a37126f5654296df1215050de450ad96b4914a8488f05196156f6b4ed385c620000012800000090034b4065619988893a3e3b290ff25d59fcf7269aafa5527838612a84e2f96564313c298f1c317a423a2341484db237b4436d909a5a36a568bbd97023aadcecf62d9146bd25f89d467c882d0194ff110705b6f988b60fb4e3924685fbee5d8e054fe17c05ee3b8d6a6321dcc6a8e1adfa2e2e222d9bca8518a587049cedde031eff18c2aca701142dd09fd18be7f81beb00000090574ab829920b34f88cc9eda91d9e2ea5bcabf6f7d54f54db6ca6f12b12f4d827e19fcc8e48525820cc67302090bfef1cb8e286a5510202dcbb734d4ab17e8870e41792393a5a578b60d80ecd9d60e622263a0b74c649d860dc1fe8dd434f9e80539883992219f2e74d6cdc2308cc7fd402905ef7de1ba5967aa80dee1328f51f5de1d603d7f563e58332293b43a6c4eb0000012800000090ce65727e0984a5819fc7f07cedd0478f647bc493d598108d18ba4282b92f0a263411df5b652d3fb37d8df2e62583f601e9a66118c19cd36fc9985f75c2bfce534277a0869171e54306f6c64d0cec9ce228c4f1126405d24feaef9c9838be17bc7b525d2b1d3bb362f9d8da86b782226426684c00c21cd6d59be277bf8d08f5e337386f12a09534b9736a5b1e734baf3f000000904b3c1eea75a6c0d6217cbeb72b876ecca682a1f7c0de0d4ed44ca534da3d5b6fc95db81d33c9225fdc95e30fa4d1ab35b672d002f8e47269d9b5105bf5c7d22505fe03d787b6f186e59c447d3d80709716707248c752985bfba46005b3443df51b96794a4f9da304e188222e580f78b8302321d6a51e212956736d71d693aec9c2c9c22037aa83eaf6f3c85baa19704a0000012800000090adf058004d321c07461728fca0f7a9a47aa60d66bc8c828e9b9e9b03a836d6a96c043e20615b01cc8e02543bb60abdaf6a277807b527dc8759e333233dff1a0f7480e2a10f06a5fb8ec0d3e79228778410f24365ecf43ddd4e75d0a55e5fb62553decfa61abcdd10a3101927420e55be22d5417a5fdea1248fcfdad8b7a1d44fac4b461b2c0c01d3c230da0979011d2300000090d4317869bce769764079823629ed4c9dbe2c2f2faaa79d4a73bbbeb6caf7381e5d2548d4cad69ff119978adb93aea4e4cc1db3b9f9ea9e57c6aefd93cfc45396cd155652c6bd35b8fcfe53832f85bf581b1386b61e402c14435726cdbba9d1959d33c3bdac8f28faba0f302141d8dc0e03bdac70865fdcb884c651561bdd72cb74cbde86ae6ea47ec8266793bbf01af3000001280000009048aeb89d3ce161c7c79711a0ee3b1e4553c6e8187989f91c36dc714404962f5fb3ba34b2112ba533debd6b11eafd6b59102207c4c1c564a32cdc5c89b1229523a3bb6bf9199048b77946be09ef4a32281758d9e4b46bdd2fc58db64d84dd1ba15fcda1c8fc5d3309117d65ddb5c629940a1b5e8d6486ef7b6c256ed41e291e221f4d86e43eaf9212db4b7faed4a26cd000000090a349454c3aa0a3fade604170849a1870393c786817218d66a53a4440c4e56bc10f78816a19187f0f2be0ff7444c59b0804687db41afce4b95f5f8ad6894524064e288b2d1e448dd9a6a037e9639c7ec227a5a7155e763d4e169794cfa87d08623ad9fa7473553688efb0422269aa54290c1334dd8931da7ad60b3b4b66f2b91748bad01cab38a61847dd4a781be62c9b00000ce4000001280000009062f3789eb4093a536e7db9819f6cb259082be16e7384226de8bec9a856c32661159804ca52bd27789fce24bb6574948bc858696f88f9a017c5d4b5a17041df9f98e1fbfc88e1a1667ee3a39830326d7418f413f6e175a648fd1ee31e219ed585c896e557e73c16c740d187b19e3ac8b029960c8eb4d4204d49921ad5e6b8be03e91f05b6985c2be31cbc6356535b3926000000900ceb76d2b33dd727c87910bfd56591bca9b56775f056bdf5554a989b78caa1492a631b9bc727fc6a71a84487dd44ff686ae51c426ea4a4e4611b649ab7d7cd1f6a1fbfa79ed4b097ccab0df84583c93a0aee70b909dbd586beada30f6dbaccb9ade5d373f77b7079b841b6dd9e83a689298fc1396d1ee74e6e12238252084442fafe0034f2aff73a20b39f09a9cf9eb20000012800000090472044f3e1acda280c663af7f6bcb6ab265a525f1ea9c5ff8e4f71f2d4695626117f9c2789dd466394d3a3c745a3c495b2f74bdc9d427f7f82433f5cb1fa677be6823c528f40bfc0e169d1b8559530d1268b035db4865c08462c3f870fc113f63166245a01dbde683b39110379da3b0d28b064ceafca1f45dd07700ff30396105ff9d06214f626b4ac8439f40d98e375000000904100cf352081794d81cd0270d410bab1163639f4a8079df9ffe12d2de724e828f5c46f24867f70da7d7f56d0b4e2f4c0b7841c00e7f29d86c819101a47b5f6d722752cec613c9c9246eeb17e762676ad0259fda8f99ebb96a2ec3f8e47b1373c8f8da96ff06ad37527402811cd7af73d1974fe28a6012df39eacfaed1d887b7c31cfe6f8100e241e98603d49d04845510000012800000090494b6a5e6819c898d67f2a0263ebb616f0d3e14bb1976649706bf079cd2161928aab492675fcc4535c2ace9e604ed921c26b0bb78dc926e2101c59f12e9834d95840704a47b1d2a31835a1e3b872f85a0185e706be6a2a936d9ab2ca5fe569898f8d38a63eafa3f3eb747ae000d3428728e08a1efc752abc4bf1d7d09459cee6d40d4505b29589e98ef4cc3ff789bc4a00000090556ee72f89705a6420df4371ce116ac5911c1dfe614a1b8ff79b72b641d737bf5ee1d29b66658094135e0c0de5ec887c16b8ea6115c9ab3ec726b3a632f878f8bf07412ca3043d6b4ebd69f3bb39ae442be8422c5d8b6f01bb62cc0caedd1a582bbb829d02d2ab53be85be19287ecc530283847ac4575752df142008b63acd58a696fbd6d259871b502911ebde50376f0000012800000090be886fc35efbbfdf9672dd862f223674ad5e4b71f0b067247fbaf7ab5aa0f3bf0d26d1c05ad783c18e4ae87784b7c263776aecdc0b07c4465613a74b1cbaa4bc8e9afd94e4fb59fe73ba4ee4990d0e62244bf8cc47294568e1f1a3fb6b8759636c14f8b77c05a2b5dac2ca2562ba9ffb15150a93fd5ad0e582cca1f0e20569f11379cae8c1c3386a723e582f781d9b01000000904bbb91db5068023c2e0141e899ab769e44ecf2042ab60770a474514ed24019303183a4604e1366e4278e94e141781dc2a9ca262b634aad75952794cb32983a161c28a00b498f4343c20b10c62678bb4004a4666471d99e883aa7618ef77927698717a2739bde85396c129ffa4ef0063604a8eee5e3ecca18c6c020c7d2e5aff0e5c0276666c8f44d5caefe9334673eb30000012800000090468de736d4faead7bc9019896bbeaca1bab26f76e1c15286d11cffc5531770615a29235089d07e59d52d8d2202baa1d658ce9ff7cbbe23d94c6196ddbf6ce154f636f87f4f35863113e8227c2ef7e5f927ee6dabf135a507cd7e7326dee0314cd435706e00ca3c6b34ff43e992fc2a0201675aa4109ea16074482a190417e2f445f28a284f9e0b9f37f4ae258946537a0000009026de417bb6b70af004a2502c4f9c256615dbbffdcfb980a0afa86902ffe5cef318bd13fa5c0699fe90c9a6afcb46d11b0b889312da7cc63cbc39063a1e6071fcbdbb81dbbad6e1e1eda0b0bc508565df03a76116758b94a573cebd7a2d86d994c5982b37dd47ba882d72fd5d417f9bf51b2a842c8e6cebc163ed1c7c2b72d29c94dfec8637cb826f7c3db29e33903ac90000012800000090a7f509e97cc6df07d47241b7a908750a0e615f111b29e0abc937d18bf106c5dba6cc36418e1f7ace3daf10fe15d80ca8832489a15750abdf6163e0eb3d802e20c608c2c65ecd4faa5d1beb4c9498b284093b4da74261b5d7b6386a258c9551cf110d183f52f01f2eb09af9d3589a12152824404c2d3bc1542bc5b2f4d11b4d748cf5d0f190b24df2a7d9ae9e4d797acd000000906c1d6cfb9f1e7fa1f815d82126d6059b5022a5367e3f43df9af78db5ebdc60157c589b2fefcb07798581c07849483cbc2a6a7bff9fb1b52b3b944389f3751132d59d5b62b6b6877c18a78ed1fb84497502a64584fed738b165b9d2b87a013b7518b78df8013c4019ca92616b843fb92f1b1e0e94d92a49c38f31be6e8f448eb10b7b35480912b4ff33d55ea19e82ab3e00000128000000907368484efea7c73342422422fb9618cc8423285429cdc09e669b789f73e3f236c97401a30d0b1d1ea90b14f495830de021b12ee6b89c1aedf3860d0be1c8b1d5c7c1562b6ab7c0c6c0d18d6343b567c8158f35f0e332b951da687869d3c8b0140d8a19387d56735cabd582f3c0cfeedd1757919397ddae2dd4a0ce3b5793471f150f7e2718f3b78c6965a669b229e29000000090135ceb67e3a79df21d70b27234d1c60c1d72c972b00df776e81f193f59d7a7c31310d2dd6cd2f297ab733982902576afdef06c036b0ec15565e32db9c823cd0face8f569b7ca35e54c28dde491dd8d9512ae188b5c3089886c258557d10b59842f06314ff72579cc3edf3e2cd613338003a763683a537b88defd36be462a57261d04009c54029cf7f49bd6b29e76055c0000012800000090f184392bdb947e9f207321b2ca96a769e62d079176fdd8ca3596c94d954dbc91bd3244e6d6507f1c44a37586cecdb04261aed27f1bb648a4e4322a2ec8a25e57074d1975d3ac04f3270b9356212268f91bb653d0db9782f05e4cd683df7cd7bb290dd51508b703ab022d14e28a46f81703170ef33a8e6f833e91bf23c72aaeb408a54042eb1368c5f48127de7471a5bc000000908b576a784a020e6365a1632f796044bdf23bd3c2c4073ddff05835048a46de89aa9a76c58f48f419a94210990a761f3e6d18333100901083be547f2b91438fbd5dcbacba82887d6a1a44ff668910a9c42468696147730443e5ee2c876db2f319158acdc817905f8e8361de25d1fc19281f9c117dfffaa271952f156cbc993f773857f6eca71cdbd2d5222d6d9584fbd20000012800000090fa9f31a2f59b3dcfd23f3ee999b1fe3fa966e5c6e70469c0b34a1ddee0ae62511adab4b30b3d0e02bad20568102a0488cdb54239924741e03d04321494dcb2afd0dfdb3d0ee1858afc709de4e5bf14a81d8cb69f57288893097557650c297324e0ec0cc0851293260c3958e465003c9913102c26a4848af305503fbda7a058da0dad2793f13517f7eceadba2fc9ea54900000090964c4b62ff07c3565c56f45af7fc7721fb9fd2f630e611908a0e9e57578b7033e9a0251c0479873fe2db8bf7fa642d31974cefe284adad62882c1b3e9c4dfcde77e1bbd47a67a401fe0a612291e3126e117b53ec092929c3028a5d88b7ac83c23283b33c9dc30f2210a852192589759b208aeb90560da10a06f7d9cf2d04f6cd1ae61af67df04e36550cd8fb6961f62a000001280000009057db1d55f43fa96e02051fee6c87e21c6889f58d5461ed1130fb64bc2e35797cabbddbc993760ca9b62542dd2e7d9085e5bf55b2ca0adf99fc2009aaec3b52fca31e7b33a8514ab41f55a26cb9181e8f1931e0ff5a40fe919346f173c4f9866b1524f8f06a01853b7c145d15d6c3cdf421eb9b00be7d903ecb095f7f73b1ab622be9501e491d4420b45e3b762e84ed7e00000090ef4e920cd3a0437cda03026c89f1c05cb2ac96534314b92a44191180b70ca91b73036909b2d8aba744f5dece75b18ed473135ac719a00f38f4c8d307613590b4f58f97efccfb14d259bbb5782c7cb8860a2e77efde122c559d7493253472ed8a37e00e07f1c16ecb85215a13cd9ed6681b11e8c9209de59d774366425afeb0f3e6724ee34097e36ca7c0510e52b8ff50000001280000009021c5ac7e9032a161f7ed3455f2291f161720a09346855e6a12cf45a8bdc2e8a91f77302b765270dc1de29908bc12b35458c4b8fbbb0b100d2589e71cf59df7e2605e0e96956f9bbe5663b484cec278b12f78578d170adc01026ac7a6701e375c2c3d1fba997db41dd9e4e0fe76fc50bf119c375bedacb2dcca867050084fa2ee92a873e157aa2d4b2399c14726215c020000009097039712bf4a5b5be7efa151c15f17806bc907ffcc20d87f1930fdf144c69ed847927304430b7267b1343cca161750096f4e49348d646d9ddb5ef6ebfeb341fa5e88d29fdcb432fe74ab5c4cf9da51ad04d70481f624116946b26c418fe62459f84ff98beee25e57858c222f98d35a5d101f15de2b6b9ce46cfdc3319c796cdf7c603bff3f3189ae5ec0d48ee430eed300000ce400000128000000900a16d33ffba4b51c2bd2575dc312abef5940361b9ec494b126b38166c090f22af60136a0ee0306caa26215b776e8dd5055f09415af968f54cf5987170aa75bac81f6d801b40311324cca6fcb532ea8eb184431a1f993d451b5ebd1f85e31395289d09fa4ea523e997c4b6e14d945f0e31ca3154fb2712613c6f14d40ad3bd6d0f7dd90bcb86386672fa54d101305287a000000900c3fdd7261b10cb3cd1e3b4401b8d39c71595dd3e30aa26e5babd9a76c6166fa24bf761b191e15759e1e1f85028d5c2560e3f58c7201ebb78add370087da837f445a82a5c0f644ce05b06f6e7ffea6282422864ad3eec1a14972a7f980c894d8b89b1f3c9ea8e96b3bf6f2c7c99fce64028f44d8480ad466d39d9f12fed0b64f222d2bd020f434d618bbde1c002f6d360000012800000090bdeb945ffe20f941d91b84d40fc364180dba7c227f007f3bfbc03446e93332cc6efc673613173dbb22d06616908443b6f27ac7b284cc7c8d0eaa95cd7bafa294ee32e5d006ff514788d12ce481f1c65b0ea7a1782ab0848bf7861483680350ab6830066ac3cdbbc76d1811718868162f23ff9ec14f658853ea661de1709f6881565a0dbe8dacc2d7728c2047c0db805d00000090b2ebf999707175055a03bc96f1f65a11628df13b560ad0656fcf732ee2fceb29e123fb0252d4e939c2db4d69b7095d7a64a166bd3b09a74f4165706e1f80597673a0d222ecb26bc4909b12ec95e29e8125ac3c3891f884da90f3e6b2ce62a4e7801a95e44a1233d82c1fd37d07dda55e1aa6ef858c77270230bd8296fb4fa2cd0a8badffc7ba8baefd1392dca4f1042400000128000000901980953764f0bf53dffe6e48827f7fd7997907d76e391fcb5557b60ca6e76e203f4f8534e9e57d9a6f78718bf71802ec0c617bb55a24d17c5efd0a4a88f74a3b0717f1d707a558ee946e85fd258545110c21bfbb1c79b56cd70db8aac99caddfc5bf98754dd24e16fabc37741880a1cb2665bc0bb18d5d11ac7fb0968d963bec06ac500d62b9f4c3b5e7deb2d18c8b170000009012db71ec8040cc2b8f15660e7dec50ded8f1a1474dbac28ffefbd234215938a62ba3e76265c12a076e08aa744b3f88e011d61c04b7d1584c26cbdc6856b8b9db0e2dbd75366819d4bb59256171a127641bf6950415ba0ed0888beadbf75674fdf6cd994b75be0092f57f4499c6ccfbdd13f4f889006ef52fe13b71046c41b09bea8fb0b58c2fc318b3a472d5a64623f700000128000000901ae6ea55a2dd3c6cd5acdff99cb553005f491b280e86f7367b81149ff6ad8b8f1fd2ff1db2706d83ec3d58977255e3920c75566f9fb3f2ebe654211fb7c408ad53f7169323ea8b8dc19c61b28f59a6da10e8211b0271d1915727c3b84e9d729b0e4c10f375b810ddf5897804cbb30b80110ab2b5957ae0347543e4bf5fe58c28566f02f56e58fb2dbf4d249d9f141fa700000090ca324e0380c8950621d478da9548964f6ade3bdc4a974565da84b9ad425df63c4691174aaf39cd0738395b81b8cfcba295185c6295ce1b91e4f9c28aec76e994c9640f33f04cf4fec9a9b262a4c981281c24a6919d2cd243ed8d70b9b96a537ccadd2af0bd3eb21fefc29af4bb43f55525f7b9d9da6357bf24126ddf7698712e9ea83c9994d4277fb9fb476be7ce6e240000012800000090ad84ba3cd48f6132331f5854d0243e06c78c99001a8ad089bebac2db133ea9c83221dd58b1b1ef02d20b8cbf58d56646e612860da2523e775f7d2fb03dd6d36a421033b53ac9425365a224f74ce412b01fc47b2c4daf21104ef75c59197480ecb073c1f31fe9730ccc2171b1d12cac2e12037ed048f71ed69748571a4169e832228437547b07efac4c01dbf86ab523eb00000090434a01667777c8d0a8ba8c14a8dfe7c5d358a4b25b53b268c2866fc3686067fafb4ab2da89a2551bcdd91efc6145901154287f5185e5cfe0d4fe8199f869d4aa3ab10f0f4dfcc4ef9a5551780c7091d6204dc360e9780b03add0ebff1f8714cb5dd76ccb02bb4b1e7dcf77ed5c73219805cb1602c5fa9df8c479cbd9a0748b4a160b62aa5aed0f3a6b0a987ccfa38dba0000012800000090d4324f08a0e04d2235d74256160ebd46b95a222d41b4f6e4d1dbe105ad30d467a1d68ae1f26533b024c6ef4f3793ec7fdb0e13a5a14c3757bc66a89b7223a759f31cd3fecf77e9def87a78465c4255072cfb138fb63f1a862036bf4f16acac11d54fb742e88154db52e1f3ed005011571f80685d72dc2aa487c06d1126a35482ad6fbfc456eb4ccdff5840a14fc0850200000090a6fc7d2ececc9f6b38c7b3aaa6adb92574d1e47af5c7af74d0ab3812c3b0439082177ac1aeeb9dd41c62d43ede65f49a453fee0c230cf61cae7762bbc67d704fa65b42d39fe7264b6a24b73211b05e012fb66f42a50ec8b7af58d88f7c1426f26324ab4aebd246ba83615c48f6a965960fb5f8a2999dcbf292f7cf6d3c66be7c476562813f867bec060c6deb6ea3981f000001280000009061efa95ed2dbf72ff41a4380a6ee325c7ba8be59dfcddaf7bf86967f7291c349bf37072c6e202032b1ced040cffa0b063cd75a25523a749e764e84b7aeab10332441ce31c8f2099aca23a842e6d9f5a808ceb7901dbc6ffc3cdd6a63f026b2157ff5911aaf7eef2ed041eaf394f900bf046e0ba1c6e03c4dd9776abc410d0aadfefa30891cbed289bd43f36aae07bf42000000905d11fb0e867722efe168483288432135e72cc38546d875dc6763323cbd93e1cf6868579d3ae9ad7c7b4d46e98cfdcaafc6a93a40ae2a1ddfe815630f49728fbb39dffce31865dc4af001e649916010f11068095f8ecf212caa82d0fc15041116ad97a344a2a0e7fcf3df46b7ac585f922ef71643afd3b149258b0c1584a7f7171f6d12cf84b71e9e557870ea801f6987000001280000009075329ddb95900619aea3bd8067ff04eefad1e62f7f514d0fe883f9669ede10354b28b0e4e5c23872459f8ff3f67efd935f488be81875e0c4131e0a81147ded5e910e40b7efdc87038a7cee0da14b724c1892a3120977f758101b5a9a26c646438567e2fcb97554d33db0c19f91f9bfb81fdbaae6f1d2dd47a918398e33d93ebd9bb36a616d7d749180768dfd397af2bb000000901a84046750a0667911181eb634007be38478bda4a617f37fd241a3b67d0026fa46381277ddb2624081c18dff15299eea2020e44e5ec138c930b536c5dc64e567a783ad804a4ed2cccbf3f3630bf470f622c70a0396242eddfa627893104db66de92d8f55889604f457dfc92dc4ef193913ad02b8d553c2dcd3b3e6515924860938d529feeebbb95914ce2760231c80f00000012800000090c84345b4a4d3f6a6d5eb34328e5544c06f588cfd71cda5686df8e9728c504b556df5d18d73b6071669effbf1cbab56fea9c19349dda29e2eb368bffe83a0873e09614c99d7fac65aad36292cc322804b26b6f0616517c5b6b6fbfbfb81275884bd9a94b6ee6b9ca95e9ab794d962caef0f61b484529cf1d785c6a2a883635c1481695105e97bdb1a387c8aeba62a9bc2000000901c3fb76c848bf62a98ea888427d89507fee557c3782d762f85ade55fecc8c3ef0749c4d49404bfce8e73f29f637337beae6602acc314999f7338816637232bada99127c266b61a24cacabd0e5272957d2d767002247c5ef3c9287fb8d2e93d849c9bca86661d1460497fd8d5defd3a6c1b4271527e5bf9c4ff970a1885059f7914be8a31cfa9b936de2f88afd4dacc6900000128000000904cb538361bc8a4dd1e199e88c2f9b2d4370e3af557949726e89508c843e1dcfc3c5e249942c19b6f74b5b192032ec55e9aed28d5bf699497526cc91a9664c5766735427ad236ade32b051443dc021b3d2fef83e5556f46c6285147990a4b8e580f7a473d2b600c480a7eb86e0af68e1b2a9143e27f99c1953186737fecf1ce2938a6ace5e7eef843815288182d2be44700000090efeace60d0366c40df4a21e4d97ef9212e2771d5134f8d3c72c8e2c8a3f2483c0cd6305a8069a68c07a6bd0e990541f8a3197706d6ad9aef893411b57c95f46143dc146bfc00080ddd2946cb69347de92570ad7b3a8eb9b3590ad406b8a6dd38145217c1e19390ee649fcaa41a7226261f7141680999f4b03084718870a536ebbd61498c7c55e5b12c2cbd43033435b8000001280000009033bf0d15cbfc79c5b209c5f8f40a21bb4b5aee4b637c7e5eb3a74a0856aefba3f78a9404bd4b504ea8c0ff09716bd8abbcc0b4930b3171df6c9a2f01ca63fdac202f1c87d9eab109c9edec9eae528703172fafd498cb52f42245370a599e7df43bbae6d0f0bf56d90a30de805e18a3bb30588262443f4e9d172331e5ba9c32bb23c1e20903861cf15503abb553c92aaa00000090aa2dfcd452da28dfea7ab5fdb379d6ff1716dcfede6346129fcd10384388d5dd86c346c60983dfbf80aff38a32c8c849c5a02dafebeb64e0a2b810739c801058bf0f4feee7acdcded627d9c7bd864bee2f84c1c11b99f3519d4af8dab41fa4514b94846f83932b51afed57fe85bee4071379ddd8c15cbdac24b6a5fbc4d195e4564281febd20b24a134e02e5f7398d7c", - "calldataHash": "0xca07def1916e084cc36e8d61ff2d78a0091957db60fa8894f4df7a62d7b55d66", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090083367367613e6307621401e0b943e65d00d94f7edba399d403da5d93b1a260922e76adec1b929ab590c851320486c68244084a7f9ea21e5ece1e5dfe99ed6069d12051b95f1210b468eb7a029d2b437107a5a246cc1ba5c8f590f4db407e035a353dc7913b80b52296e05af286de4e002586c55a0c4914e946268a214e0caa1f040bd17a9a93471faffd36dc9835a0e00000090ead4b0c12eaa3254338bbcb40631f1f09b696da71b404cbf7415a1ee3b767d9943920b1dc8deeafa855a44f74bc38c4a74537b01cbb09f8612e4256575c2931a98ec9fcc5892ec9da59eb4807ad5fc0613222acb0c141fe55ec8bca4afdef1de719ac262d7ffea40a4d8d5bfe4ca69c10f624cd3f2f922fd8f5a10a7f212bec0c876327251624bfd7d777ac8884b62ee000000908cd0590d2d18f1214ff5b03b6a1d4cfebfd3e463e1b8e98b81fef46a5ba1b0204686f7c57a65f0bc5ce8bbdfc658c1f6bf4e52b5494ea72f193706883d6f1e5949ecd47315b3e2d1e75208e1c1ac3ba2079c257743ca4a9a4fc96389cd96ec0116a35814f15543843d383818637698392b5d5c5e3851162f2f53df7777c1c45c48b8899ac511d2a97c4faa87b25d98c8000001bc000000903ef97e0c57a6f5834dd84e80e8140c989a97a42ceee35be251dbf29ca3b9f1d4ec53f628312fb024fb1fabf2fdae3c222cc6f52957adaf9197fc22aa824e9afd66b58f53765e2edfcaa1e09bea5d09822c7d1ab1c0cdcbc2839c0ddd4eec2435989bf25e9f105380068b77674cd555da0d171b7673337a53fc13bd94d037cb898889a1690494f98997d6ad6f7cc9395000000090a66537d78ef99d64dcbbc8ac804c985b57d0a15f66dc4e0718252c967ba90161684073a50b2de36c358c3b2d7695af8128ae6fa3b5de2ba491f0f33c4b79256ae780a6b2fa2b8985fcaf46f51b0fe08c1f0be001e5faf07671f50d5d3f3cce0a2b14d8e600356c2190c919f7d5e95826223e80c90c4a715ab25286ec0a8d7fa958a0921ea9df290fb3bd39d9bd779abd000000903b40d81778940a1fbf4b631c6ca7f3f36db907262f5b7c9dbf7ed4677be6b459fd5aa18aa47d58a769fbc70cefd0a14d95d33dc980cff26b234154eaa53ba2e3a301af3d81881091d9c478670d47d98e2b6d37e7a5f4c5fe019363217b64d95782a5619e4eb81582b1798faa5764b58405bed270e597925e8e6b29101e97594231cd55747be6725f19e7faa830aa719b000001bc000000903cabd8fd2d8cc1b863fd474708974e9a086456a8c87bb553bc3b2249a6e6d35cea1bd6cefe1469e8d0505d496da0ba43fa23d5f95c1c9ceacee8d86bc37408bf788a77cd803aee3e8e9ca6be0d5c94f228565b5fe9635fdaf5cb935db1c32ba2eb22e34967322d150bbbd7418be5b47d0214392be8237a660118ab42a43436e5ee08e251d72da69b1e79b1682ec7dc110000009073b2ff420af305f8d6e8877c931a27e634e0e02ad27bd07a221ad29898bd955d5110432c2d520e3e608d73f71db60a877a0cdac7023fe16e14894242fc69a6630ad88e96ed3d9d9076850ea7f2da60302a5103978eb03a24aeaa3ea100b61250b98b8430a42fa3b40d9835841dd01a160597bfd46679cb40dc21fe48f5bfd0d457b4d857ffa793eb3931b23b5a5575e000000090cae03a08acbe94f7daa500858bac74ee45668f7d8b8699c05d15b6c8e3a7cb8e68caa3b92fca659e8b2ff5e0a459d10de2d9faf8d23e5e7e52e7bb3ce821a8d1b23eb3e68b93f2792385210f1c7900e910f6892d878b639348529c87faa00be2522c1084fb1f660ade21c84b7193003e0742f05a45a89b327fad6d6d8c8c8d6d77a0721e688149b63867f7930eba8342000001bc000000909a9712eb2ca308f32883b79151fca031a8e418d19df5dd397ca5ea709cefe8a36855686415423dc2afa0115c7987cce0d69612d7b485e7350a63b4d83f9e2f227e0422dcc23e1f2322b8df45ec7a8853147f0a8ea06fea5cdab7b07659ee18c036b4decfcb5be193e05fda85b194f10f1725eb65e156b30c5a39806822af3fe584cf9d541723131a22a23d1400ec9df9000000901cc8c637db22248cb9ed2e7ed8b7818f01b2af67c16ec9d9808bfcdf8b3bd4e8e750f54a84f646cad8f17eabc164de05f97fd66eee2495a419762ce946f40feb5f703bf8a5f1df0c2f4ba03f641b79160b234176a75d19d6e8a48b4ddd7e03c1289b3ec09a79220ee291370d2113bdc504924683165fc5d275305e79c7cd7a99a36537b9cc94befe1a2373b55e3460f600000090b8bd36129be0f622298f580af1ce6cd694052bda2e07761d1260b253b9b58206071b8329586dee5c5acbeeb94eb02a3753ea4c9614f7f9b9a6345451df3e7fae190b6c494514aed8c7fb7af6145072ae192a9f383c5d48e6cdcad12db87adbace3e736819ce046fda81bbad9b08c0946070798e6b179878937fcd611638e83637ee32c0260e48e372d621c3424b0c66f000001bc00000090c1e5c80e7841d56f2fdc2e22252561986ac0bde8583467b7b7cee85533dd4e82db0023a4aa1280e62e82f1208c465d378c09fe6f571a5d6f540ce1575db5a430eea826342e1b3eb17edaeaba692b3b3c1a9b142508381f48759935787a260b1360cbeb6a3d6f84faf868faaabe86f9831cb84a0def9afcae01d13019e2f20fb0d7fd57755bf8cf337ebd61c5d8e2e2d1000000908e7f1fd37c67d43076831de6f05532cff7fdfb2e2f57e1a3a51bcd9192a40bed6bfaa130ce8cc5d174a14e78f3f269baf7afc9a54b07e71f87d9fade5b0b2c8bd1973b0660b2c0ea5c1323fce5b40eba1fffb76ec613395d3a59e1588c5ebd8fb0f6ab9758df61d991c68b94ea2374a120a570858b479f0603c36e2b9d71bf2e85275fb3bdfb8919ad81f34d106fff6500000090110542aebfe9f65c67402024cb573c20c15d4835724350ba9c4389777e540ed6046da159569ee140da387a7628e7bd71359b470625cfd22a2ef99b2bc9e3dbb60f92b901a1bd8cc7dd325010cd83dd2d2704a4a0e660466faac7a416bce77d91c55b9d2ecb1f8d9d9c627832be30f4312bf94f8a074a7f94a363430d73571d5436dd9ea9bb13d907965b62686edbc8c0000001bc00000090b1b087d7329b0e3a4eb671fde2368893708b601576f3229943a86385ce556707b1f3838287448c58240ce1053b0fc102928723780612640d14a06993d3cef135803ca465102ba0ce7b0180c1a2a5f86e167c4a9c29f4a1783f93e36e5da3246f2117272dd6ff9a2388c6e78bc68e79951b3b844bd1c9a08ee529a5d851df7571c8698b37674d4bdbebf416422b5b1b5d00000090adf29bb0ad8c624adc804c04eea5fcb04d0d9e1b1eb3dc13f09adf0af446ee7d63f60f79423311a40926cf93f4652f306ff72b0e1fdfb0fd2f9d40a278eb076fd4dcbdc2455eff29f08388609213113e17e430c2a54f0d542b2ed1e8bb4b3a66d1bd8dec420e19feba9c40a94d2fabec22e9e452ff8e1e062f4f6b3d71a71798edef1aabd9bc34cdfc86d357bfbc03300000009046114b8c401cb7a062546f00d9506462e8c59a34cbadbedee505f9964f0c00f91e76f232fb6d1fd6b23ac668095ffa7cbbe69eec9a1683483d117a18bd478c50d95cf7db543b69b47398a9d882cc043a2ce5032191bcb02027b0e1a588c0a78d89a09b56337027f328a9f37dac01b66d1d4f45d56e66a2d8909cd8907d5f538ea8be3e635885bd5cc5e018bead3c16f4000001bc00000090174d1d04ca93c9ca135a32a723bb8967a20200bbb988465a446ff902b77675377c405ef506bb6a52daa0caa3b92333d2d9ccf16c130455e0499af88f64ffa855fe93d68d285f3aa916a96e92f33dda572b67c99a667585f74f8cbed06a7baf5aa1891caaee8594d5ac241331a4a12db61d59c1418591a4b8e553d37f38ea41dd4f3af725857dd679a9ce2540a608b17600000090d51e3b5514ee11b26f48094e98382d9552ec78b1eb2a9ac3bf24c87050f31350bf027db86146b05b78fa04582e8e0f943cb18005e9bef42f5a26b27ac45ec5c186170367d36d64a1a15ae4ac30f960112934d6f501914dc3f8fe2081ac4a8be04649a8a23b1ce48a2e1e80d58ce1b67114fcc3214860532b0873915328c140ad663ea2a4c69225afe369c736ef6731df000000901a0614eebea2300dcd77bff3171ac89dbf10245ab35b0f66a6fbea6af09024d465895f491da812ce7b116ba1be3590d1b6ebb2650444187876eb87f9acae4344a12c9f26fef7b619512a82cc5e87392627172f181e622b76ad3c6eac337fbdaade012e6ce8ab235e9d7c457503f216961890422725c67cd84b0319edfefd35dd60d9d88a0c52cd76508cc077bf65c425000001bc0000009020daeae685b4a7d525fa9e7322887a1da77d1379c01593d06367e695e044247a30bc981149f091016a4fd7b65016c2d4dfb8d9356cd33cd741c1df7f139acddbdc94573f89a76f4f2884436d22eb69361a5f09304639dcb02feb179b2f1128f7336824922f4639d03a1227a7a60f55512d03ec183fa21321d4fa61963ba2c2e191d37f25e88eed06291961c155656641000000907745a1f472feba9a29b326cb944fe0478c26c54b6423025ebf12a03925bb30d949f46c0c6fa5ee8c58d86ee0d210f0c397bbd41fc5b1cf46147fbed121631e3dee48473eb6ea01ff20cbeac67c5489f10ce126c6c4e735d5c40e16f674941015e0ae8d94f896ae0d4cd703ec8d2a9b0f105422e72324726e8277939f7f59d1b4a77f17de58303017608e60747567da6e0000009019216981b066c88ed0b3b6f2df84132b0d272d72597ef14bb385b81685909118c95d3d92a73f4ba6af2dcec7c94ccd6ab630209146343d808060fed0df2efd837f54cb06c78bf253fa1b8b8a5d4d7a902218c7234feec00a4e7b214b06a598b4caa2649745402606220865f338d0db2408404192c99dcc6a7c2c06a4e10ac8c625e008aac57d9426770dc24a2c1d20cb00000e00000001bc0000009082d76487e6d930f670dd8294a3ff896e675b59871ddad13511d9452de5b45ffb84f14b9b13c30aa0a0e7a2e6c9104db67fabfefeb577d70b31b3c815903784d22857c61d6fdfb68b8ffb698d19b8b2573005f3cc1d8fc31d65e44e50ab9e5215e3afaac2f83077deea42491ceeb354be10fb78ba40256771f5bc72402ac5d4b95714b5cf2648c85e3e10ae89b7b9f90000000090bb455f351a243a89123ce2b0a85fc2b0d711f7cc0f2292d0d2a1244429b2c3a982fb23fcd8deddfca3feb7ff27f394eb53b99309a1c510314edfdc9df4c2fc3db95ea67739c2ebee9989354c7252b6271b6ca0c3f3fd42e89c43684e31a94631dd0c57d049f8447cea033c05ac25cd021cab485baf707fcbcabb7210161ed846e3ba40efa3fb4cbe746a1d5b446cc7be000000904a9c85c97e0d4c935ebc0fda0fd70e4fe7ba903bfe904e6b71be94b512c7d61c05945d369e0a354935013d1840c07e272f4f967e9da05693169c04a01d9c677b30e2c399e57415cd33f4703be42ce44d093d5355d2f3cd6545583eb4b716865564986ec13253b5d93bc537a0d8aef806031481898708631063bfbd047cc701e354bff464bbd7d936bb53e73f234f8a00000001bc0000009014068b8ada80fa69e69589488779f7c44a6996e8ac9b6d6a317eb1693f1d4e094e11b24717028489585be7ab499453c89138fadaf6ab6f0f571dfaff11355fb748cf3d829b36c5b972c698d2bca1d7c02b9acc9c15ff9e5666d7b37e627e590a4d8f1bb24109c7b44936ef647a72b4921b2fa2bfaf9714a3e51999d1e590dfc46ead80c91cebe32784ab654874f9ccb200000090139f1dd54b92b5547d2c96e6018cfc3db4cd7859058e4d041123221c165a25ee3bc757ebc93503777b5d42f01eae0869fca95ee005728e2613bc7c94d734bb49a1c349a8815b3f4161ade33090ac86b12431f06f0dde369efdbda3de50c7ba09a345e652984fe5bc561a96e4a9f53997163bd7f642a409dad474891b58100829aa3663d048dc8cac3598e9525044266c00000090cf0c8c78576cd3295e717b4e5f05a419b3b005ec6731ee5c9d2bf97aac15c9ad3e3d2a56da176bf638374539c02ab70fd4db47cf3d89747cc938490aca465a78421b773c7459e71210c785c9a5811cde2ad310b81aba16885cb3b5e0d976536f92dca42cd55128833f6488e8094141150ba86c4bd92381553af54a040a82e41ea12c9549f51975d49db10fdbed1e6b92000001bc00000090869ad8cac952854ed14124129718d6e67d0aef1434bc70a6f523c781db164fdeaf9ef954b4b994923752445d704b459614eb332b76cb1f4401ad3d9a92773640236b9c96bd671fd81e3ac76cddc49e5727524cc35190286d82784dafa03e4f5690d6ddb5bcd7de9cd0429b924959c327049ff8df11b688432454877b5300f2ccb1d2c4166845b4bfdbb1e8015088985c00000090764b4562eda203759b8b174aebe4238efa1cf2a3ec1768ef3ef7d929a31eda380ae130c452455f036b34ecffab440be6e961241c12d24fcf15ba47756302ae12270ca1cb3c6e2a23d21c280fba5bb5c20a89a3deb175ddc55662a85f0941034841b81e9573af1355bfb08f161c4a886209dde8bfc2be93463163c57f7fbf92d7817304992ec94aedfcd43c744db0f66700000090435820bd150fc3779fccdb6cacac156f434bc441728b17ae0eb9fb9bbadb141cd24f050f1a5311375c82114434ee817c375195e929d4411ac94b0e5f7022e2a09e37b8dade0019025709e19cc035a3100266e6e0900c661e8db4e2e70ab508242eb478fc07f5f0e9983d1c3aedcb5431055c9543450fe8915345472673b7afc4f61e856770030f0a00c3587d3400e4c5000001bc000000905cd2b1954b0b81b07042b62e868d1f803fa824c21c24f9ff64b38a74c6e023aab51893ed2f1919cdfdfef53c741bd7a3d97d4cfaff2bf9a4776a18ecf5c94972aff3b1373ba6fc9ab6855ac00a49584f15c065b44f611fcfe69a1a06e1b2e833e8a8ab6f2f3febde83a3f02e263c266b00062b01f9222887fce55e9c2f5e35f024e566da0f0edeebf252f5a6aa30e28300000090077def0c3f50b0b47c9eb48a6b9708044029c535f4b742f75df046315c8b526751863017e899cad6696ecbe1fb3fefb7490af911029372b3a5dd8e04ecc073264d1ae633b48619177d4b1db17ddb7ebc016982aceb8e234406b2609f32c96088b591224ecd84ac0b49eb013bff1d8d5b291f671a1d584d9a5fc1fc86c27358cc1e63a52bf6e2e3087ba362b90a8a092a000000907b5ad8c10d405a4b6d0dc2bceefc087363be47cc13fe5b70d847ece64c9b8fa6c9d2e2d87f0d3452f6be6e1b5195088a732c38f1c127b18ef1c3888e6dda60fe73d4701f6763e764b0fc9bc984c9ec3a1f30df8ce2d7da272b7a20478311e5cdb3d3e2cf782ccfc8fe24c004decb2a7426e6d5cf19e5721f943de5c6f775c7e3a3257ce201bad3a1e279c18e56a0c23c000001bc00000090758e63051bbb20bfa45a1d6f0cba49e3d77c527acc4c969b17681b95330155439f1461314934ed0a76e838cbe30c38ff040dd1b5c786649b5a517ee3fd2cf0526aaa05c171d6fcdd75625d816836abd50f9d14c4b76b00a4e4ec57f3d934d31ed81ef8796c250614fafef5e5110d4b3210bbd4ca38ef2d2a82d835c158e7b419282a6139393e4bd502799986a28f216600000090f0822b26f5f8593d654f9377df02f4d66fc3109e08c6972cd2d0b9a4502361768fc07cd12c3f7d9e01237a31e7eae18227f1330fbff7f21ab933d81787818fe2bb8c1c79aeed32572534bad3a38aa22e12b85f9e9561af15d644b48f3ba832886868a01ccbc1298bd746adc9f213bd0d29ca03ea706ebd3cd5265fcc4d06491974320235bbc43d71208378f376b4fec400000090ab54fe26c2aea2182626d92a98a27670005516c8043202d1802da90008c2cbd61b9d0196b091be8d8605189bbbc5539dcbc4624f4058cb1404091a0437c1870eb160b02a3e57857e850a1c28e34555e21bd4f7fe7cdecb230dd935647c8c3d446b57e65d7f67b2b208953ef2367734380a15526b29102a6aa922a3525d471403a51ac6eb08e1fdfd8679549128879a69000001bc000000905cc031b130a4e6e45e8ce9d099c29f465014f2bc45a18f4dcf79f0ddcfc715db888f9975780c5a716611e8f25b66fb2f9a7a312a4953b9c1f2d3b63f38c5d5c8353de7033cf40b691310617c130142542f59730adba1d58ba4a553df2a009de247673bbbdbd72182e094ae020b503cac044fca8434a01a10648174a643a28b7105c34b2e7e55115b1c63960cb0a79800000000901de3bfad3720f2c15f008e4a346d27ac6812c0af159d93142eef63722a1451bd0bc02c635ccb07d4fdaa341922ebb11628a53fac21606763dfbb7f42448a042973009752036499cf913554f3e7ff82bb0bc082e28ef31fb2ff685c7a6bfeff67e5863ab2aeaf0a5e62f95e36c42a50b70817798e1089cd140dc0a6c817a9c4294925e8cf6af4977fef8a27bfe3774e74000000909d3eb8dda8a7ca6c61442bb4314d7bdd4be33ff477a9cee2db9373648e3d45a3f19ecf8e875caa25358b24db34795ebbd20481ee4eba712572ee7b88d8b345b0c9b6f7795ebcc246c601aad9eea60ceb131b7cbd50c6abccf73ce8dc958b52230df1916828896785b5f9f2a4b994fc0b20b752bc028fd96f880ff96d0239dca3f27c2790a1efb3748db4beecbe9ecf40000001bc00000090abb3bd5e78230fbbdef5e44ff963d2ee5bb5481807d8ab24468db6c0b34afe6191a513d9fd3ce22327464d7d8f1df5d5f1d28a8c8dea8b121aceb6bb693b4b7c92f626038d83f7c850f8e24ca8f2baa30f728e519ff0afcfe0142b8b6c0a26853fbb3ed9a852b5ab5ba7c5ffc0fe2d210c595d34d74ca38dd455f4264e64c9a5bf10fd8fb6d04ea46f7c0fafa6fb726600000090c6058b3d921006949f8ea3925de7a5272a5d0f8b9623ff4d648896e377da63ce69d0107a9c9d5e6cf286859699e32997120d4365e8cad02ce48de0b7a6e1036bf7488f54a2e7ff4cb1c8f904725f03342891db41bb8bee35200212f942c1e2d891b112c9e356328e68101c24c255ab4a1ddfe14afa6679960eda155b3f4e748fba771b4cd4cfec51b13ab41a01441be800000090407a6f231eebc95b1fb372695287319677ad9c009c273b06c3bf083d312b38a478d64ba7502b00644d1300362d7b102b6361f4e79b42e100ca70226c16da7a3d8651cb4c6a5810b137e439496c6b88d00963eaba8e28200569e81317825b7680479af46afc14cc4835dcfd5f1bd1f1ce095018666da971e6824e9c161135939f8260f4869cfcb42321b5952a97845894000001bc000000902a2093271e5d9e426ca48258777ea1c9d9f4d529e8f66f017ab2f7606fe17873efaab862e6cdfe6bdb06b568546371bd19cc9deda883327fc3bb47b5051c564924b2324633d7d354922fc46b8d88fa9711d7d02d5026e036a46a8e15842b0000cf357fe04e93407514976c6e24fc77381537bb76946a6f83207d426683daf202a0dc88370208c44c039b9223a27ed54d00000090f3af40d79ef111be5c885f6e4ce6a5f39aab3dba6721b387f7c0e7ec51f04e0c52219bafe83d29ef4977936827f17ea5c7db377184f3c07f0964e02bea83b1bd4b5aed48e755b48c46aabb0e802e431f0dd313d1c7f55d62d6996e3865770291774110087ef643ad13ee2b0fc80ee30f29ba6c2563a69f4c62e092346f03b20dac17b845455065432cb0f86f4e8fed4d00000090e2feb74514cbc15cbbd4960c3c31c2c8b89f658742235547af39388a2dd4d1b8383cc3a59bfec0ae7416275726dbc85967b1bd89eb45167b0a983558f057c5b6cd12d793661c9763c4aee5f086523d951413571b25824c9dc659ee1dd0390a717306a72fd4372d07bc9bf00fe6a092fb2175106fb6df9581444b794fd86dcffe7b79b82256bf3ced5f46ed9391431f7b00000e00000001bc00000090d25e818b83b533e096a3defeb73fadfba836517df1b920df53e966d82e384cd71fcba7799a3eb1b3e89eee9d99983b3eee97a525e8ed6722ab1113178d97cbef9b71de73a4db75571bb8a0750d1379ab2b674cd571fa1cffdba43f4c3c087dccf894f758be2877070da819381290f7dc0b3fb34c35fe2dc4ac82a9b758d764bfd171578ff07f263de4bf0668fb99faa000000090c910ad0b7cb33399478c81403d65f247bd70bc2de4cd1a400cb789a080a5814050ca36bcda892be9191fe589893aa3cf769c45d17dc9bb2ae20c6c6e8ad4410be0b47c87a4ae9a4d254d6c9454bd39f80acc01d59dcb13bade04106012e4364de822e00028f194bc9445e678b5051d02001ea661773999576ecf326e520e9490f79cafadd121c7de3486ce095923b21300000090ee0f1163ee24e3082804800407605a7ff98a7e3fff5eb530931ca1c29bb90a2127e46c103ed2ba423f55819d97e3b8b7ae7c98b9246c3fa0edcee4f7f4dc752c7861629d7bfaed003b609edfa779b8c80dffadec2e3a8e1fb967d32760a160bec97c15c640303316887a3f4fc927cdc90129f6f2658826ab3281a930ab23726a41699ef2a9b9ada3616f9a09e330e43f000001bc00000090c162bc6a922d0a9677d94e12ef9d0fe3f23f904c40a302ae96691c70abda3f4bad695623640fee23a35e536ddeca6a424c4a910ab4f06566ab833e65b2a56567b118f2dba34dc1639d242349e1e26ebb008681d4393efc63b2fc03a5c9c349740248057f2e7e2954e143baf97d7fc28d2414463f0ccda16435554fc0b96ddec693f64631f8de020a860e823c03e4a95f000000901a4c06bc51205497c73afc915e848da896ccb3e5ba6d0a01e22ab7e90d7ec9e359b99944e6cef34eb776a36f8bfc89a937c00dda7aa3292e877bd2b0949055f224c995a4e3f36c21da9d5336d43b43d512e2fe707d0597dcb3f61dcbe5ace1856adb5735905df6290a1e97e7b3f56f68160afa94767c419399635df90ac7630be9ca9f2be7a08d47a796433e2fe69d0500000090e971760c54c672a7b46b18e36bb1f53e4458e05f8e8e831775a41da37fdc11b57ffe7a5b1cca585f1af6ee11ae31927aaa30305976134acc7686b180bc94f0669ac4536c2f1bd42e988fe2ab15206e411ab8eaf7bd290eedd0aa07d3a96c31f6f59a43e73a17ec768a58765db5cfb4e21a0b1c6ccbc23701ac6fe4e5bade56d8d185c19055e290f091bb8a83d7a103d0000001bc0000009064d04bc457031d3da99682e91f14951b019cee11f426459c1e0bd3a6cb760ad8f6990029ddc57c255ebf32f0b66a9b4861702c4d62af67177a3ce64185a938d80a000ac15fcf090ac0d353635b3b69700e88eae07b1cf387db29491ea0b26bdfddfe728e5742b16707cb9c3cecd374230ade489c5f5714a04fb6077eb065322cba1029c6cba5d519931cc6869b2a613a00000090607f54712a73cf264d806c1db0440bc36dfcdf33a637efbfa41ce7a184e1837cccb43a5ac09872684f960448c6176eb614f0b9332e71d654edcb400dfd823e026abecdd096e445294510c7ffa77e52b21063632c55f7b907fd2dad33e1008f18c18fea3240507d4438e52a59f873a50e0e6840de615959b9dfe9228457bf09db81b97714d1b9e378e23b16179a7aaffb000000905713c015fab8d31dfb3cce41c788026931fe246f12b4c6c52c039006225596edf9ae9e3f9ecb3ae1462c12b431c7451437de202ceaf85cd58749077fed1d2a1dd41aa4a8072e304084c64dd8f04033f7173882fbcf5dd1ed380f3a0b6cc2ae99c7e1ed3d3bc625e9f881678a77cef7762cf6029df8ac6d0ad629c871e7b2a5cbae474c1e3ec458f61a982a3ed305b4c0000001bc00000090c74e13893e14c051d1c4b0e63d962d6790b8d5b3221254396ce134865a88d2a78ab9462e03635c6f12246dda72a5daffd7e47302b4da183fffb6c6e416edf2d45759e90bea5d320dbf3848a2ddb921c20109c2c82f61d2d57d00d9e6b63d5d6f6191a71492d121ce32fabb01f1892e061403e7c92390f2f321d582fb543b6252fbd6bcd4c81fe99f6970a6bd2219b11e00000090f465624b9784a4a376a2bd668f0654e08538e17bcdd05dfd97f4a1e20541dcb5bcdc377794d0fa79d6a2e1734f1271dd6294473ac6396c21f93be03196931cf71fd9c6e2910465b909c91f14437e9bc92586d6a20aa42e5b0e2bfdb3a9dc831ed60f0901977a7a572bf9719164bf265616a1ef37492fa6624392a171f816c33cf8a6516f966f3efe7cb1b343dd4828f3000000908f18852bed214009ed57daf66d3d85ea2eadb39cb1fb37ce940841774fe966a3ea108b0d39c66bb821186fcb321582e69bdfe18e4a36fb684635060a0992dde083c2b0848a99af0c12421c13bb23a8c401092f5a8571708d7096255112c28c544f33e9dac7234da2cd1e84d6f632134e101487ba4bbfe2556902c61e2a569409e749997aba4b89e8fd7af8285e556bf9000001bc0000009011239b4be51760bd69b2219fb45593d6fc0fcb5559b9fe6ec804297b700a677591419ea725d3f521630ad34909b40eb7774927b6b7a5be63c95cac83c04100f07355ac23aa1dd18add27e82fb9abc8412f8b8117f97f579fd48fe738ffb520ab784e721a28b16acd13d9899f9fe9140c29b379f0b1e8f4f632f3b8ed59adea573af784e12d894cd8343d8a527547d744000000905ad7963a5a5863511f5bc0734bf79941f50f2c71cd0082bd957649599719396cb7ed0f6e63ed1b18f541ddcac71ca4e6d4fd1a802acadea6772e76fadc323f7a74c710bcfbd26fa6ef55f6b17d8a187f034e8b77a4ef4467264ae76ee333bd8d3c2de0de95b7a837dd5efde225c3892e2cfdb16f38a7b6430f047a1a3d14a1b25345dcb3b5470676a8eb6b719b555cb000000090f8e203401a6080ec384e8eda1d3f804aeca07981eba58134ed2cff57729e418586df1fa8efa3096d090a219ae521491c878c4247b0ad36c6c11b3d424b2aede8b97b27bbf497c86b2b93239793aac9d61a9c91fdd02a53fdf50cb8a6352f54fa2cf7024b6cc68d57fee4b95fd8e8d15c276a66b4c0111673dc1bb105ab2ca5813cfc9ead215177cdc3d78731b101a39a000001bc000000907427eefc8c32594e8c7a42ab96bb1fe860ea78fb6146bc1d2a73a1e8ff9c6991acc4d9a463ef73ff781c61368fb7aae00631940143d0d53203189392d82b26a576728336a42fe55bafc656d729212b9d07efaaf20bad1e66200b7b80b29c094c858128ea68f3ab9d3885a207417ac1700a223c722d62b480ad3d1793f05579691edabd5f0d873104b257245ee9083c870000009036f06594a53af8ffd4c69460aa230c8f42cfc808e661b74954492215d41af00a7904d4b103347162c8e73762f27bc659fbcdfb35dafd2ecb3d1adae51091de4f455b086b8239ee229c60fdff690df1620d2aaf0f30c9975c519119112bbefadc8123c10f6b1a9c49c4debb0bd7df203114490acdf70dd8dd6f8583dfd250e869a3035549607fc847b663de3b0aeabd8400000090bd0c1f7e5dab2d0cfa161cc54823cfd5f67bae6dc39ad643a094f7172768f234c760fa9d1610c894d255eb0c773abfc023a46b2a8c8eb1f889bf14303c184e065430426e862b1cc1147d2d12cca898f9100dc0c65470adccc7810f657ee6958c952c9a9df0630d717d0281e7a94d4a4b156fe400fbb4fb617ad65dea278490af66f573cb1f720c1ad6f131dc61db2c03000001bc00000090e668492f7d870f241143adc81620eb1174ea8cce9e28ae6e14f1b26864eb39fc4bb4870a0e53b9d244a0743c8ba9d7c8b7399293c41d3b4b6f5ccf0500b2d328ea2e95147f22c1e2477b547d4fb60951140f90f1987a319217467ab516b7b125b4a8cdcc414527263686e37fda2c2dd92c9eb14fe690ab3846f47f6c5558d4ef7ff71e65a1fca7d93b14868c7ef7decb000000909602d909cb30ba815ad08cedb8e5384092dcdacc76dffd3913f78076539cb24c63bd541d0365c94d523a3b999a8a22719719537dd7b5db9e2f9fc4f0a0eec725be2d0e3fbf03a27c9843eb7d43b376bc03f00892cd118a31db431634c3c88bf2af5d33021a2ae9f4f22350398900bbd30841f4f269178d18bf284f8400da53abffa6ef966954397133b84a7e4c4f60900000009044c029f4795c4eee24224ad795237e3e09e2a8ea64e27f5bdbcdbf32883355a5956a96a7f72bc092991dc90d1edbbeee20aee7a1eafeb032627dfee5cdfd9cd0443bb21ea956927600ee6f7e3451c962013baa93ea18c786700354bec36b38343c9bb35dd239dc06466f515b0470c5811d3616246a801b6f2963b965625d955fc87a3d9fb4ed8e1552b38e1aee41b8db000001bc000000900b3bc15271008bd69ba48695c6e6a808a21cd66b6eb861453158751d9eab45b78a1b8f11ab3c5d989ee68b8f3e1f51e1da4f19e3546341ba88d19665da99d06c618d0ef988f558e281a3c97c6c04bde50479198ec6735b58f738a2cab5f45950b770cb5f9d34ea4099872464ff342fea2865375e7e7bbbe5acd490670b759f74d4c66304543a5d0621bd345dd6b9a09b000000906450d9162ac8175e4061c9266bba9ab6593b92b04b863aa0a08c08be535ddf2993e2d2b541701b62f79954e26e9b832aa246566e55e3ee6b1af856484d659c4ea486f0ccf6cf564260fe2bcd2a6a804d2e49472e9871afe13083a141b541dfd434904556033db3806322f7bd5aa3cc5b1a4dc9311ea57e048418d1c36a8fb231bd9821303d29d30a29cc0389d5474ea60000009022988ca796fc0b91f78b4f4535869997b9017a5d6bb9bab63ec708ec270ec6afae9799c358f478dca2b537239a35e9f78aa260e764beb9d361592a5df720dac67916fd799e37bb36d93e0699df5b07b808dccab7c57bceb538a337bcc68cc8b536f2f8b50566acada0b67ea7eb632d54165bf73805460e1b5bb24200bea8ed8dc15f308b233678f053180ca8bc9996bd00000e00000001bc000000904fc89fc6be0e30f05d6f9f1f86ced7feaf57415a3edd0e487c271d504e0a6d10eaea3c02c5733ba7556e33dc3adc695899a576ae2aa5579d41bfd701f91a479cd72e191d26b55bf6fbb032e3b33bc4842a0aa44cebdefaa8579aff992dc220a3a0a32f84f1ef0f3cbe62b37f413ff8441b4e857d847d8560416e3c8394f9969ae23d8b82e3f86ad33359f5f425f5c7ac00000090a37467afea6c4cc97ee51691ef457d7492c7ed5a24502da13c29ef84ec446b88a3c7bd5e6fc66804208adb01299dbe84a9a1b6cbd17bef87fbd0fe0e1808f7e919dd9703e551951b52ca192d9cffff3317a33dc570b5e04f5aba1d43b2e1997ac5f000e28213956be344a50c4c2990d81197a51d8df67a8c9014672c8efaa8507e8d790953cc222a530daf446fd8c94d00000090ed2da66258960faee567fca3f48339c58fc1849f9ed6084a338ad10c69a03b3d5c8528b56dcb54ad2ff53b9e8de77c73d5278ba02a607d8687b94b439b705f798a8f5af5826be2768623bfbaa53fc330046cd30f364e74e2e1afca74a76e4958172cd3f48806044001939affd2cf387f2d21abaa6b077c4818bfe38178995c90021b3861963ce32c34441ab0c2711d53000001bc000000905778f813c2556620961d546a7fdf739f69a15c0f3d27e12a640b7b8e2450ba0c27bffa2ec747b18a73dec69e8fcdf2847b9536fbf843e13a3f2bc495b3f4e036a1f6e52d7d5de6ed92990db981383d792cd6ec169d75d02d70e427aded56ac741223ff81866f4cc71ff0dbe79189d42c108e7e77f8c6845752e5f92e3dfe9b0142c1bc367b7fc03849e74b4169034bfc000000902053096a3ac009b9625b26d351821fe95f33c92111c691e9f526b5441e63a51a7a56bc43a07d6a8d411968ce7f8cbd7071b4392cb5b8a578172dce794ba5022d0eb31706de647545e373f6ee847c0c1c1c542de88666b01e90f664188ca9aadb0d26958d6071b96488ee11ef7c4756b3223d713a0c0e006f4f7c4c5c90c648666f962e245b7c6bc249193cb6af0bb95f00000090d70e906e51410fa1baa9d2b96e43f8a3b88e3571595cd86413376e1b70eab33d3b6b4a2b37842c653e6a7f40d811eee11ee842a0417f0d1f98e2dfee81d9b0fb9ccd0d94c96c09c419e9485012d8e20c0c6a123eb6e1664a2fe3357bdd09b53bf71102b0014877ec5290018d9b3291ab14fe9217b28dad3f0a5ba42aba7001225de17a38be745d4dfee261d3fd70be02000001bc000000901a8a8b3a10b4ef755a584850b202ae137405e8b021d75f806e660d9f747f2ff22cf6e45472b475d431829838c2b28e59361b4c98efb3180cfb7bb9fe638fbef23531160fa1946aef0d243ddfdf8fd66105e05bc9bdccd6fa6e5abba6fbb161859a073bc4eb89dd1f89b7a9879f1bf60a08a4d3be53e4bab4a27bf94e67ef11eea454177537748f0dc2d0029a09cfce9a00000090458256074deb2432ebccca8774904b3d1f2ee4624ae1eb16b0650324c6e055247a0b7630c353507cd8778c19a74981019d8f07f700aa03cff73ffb9bbe2579ecfaf28a8b457c8ddd0dcb7cb821d2bc6b1f8c99301801c3cca6cce6c27d9b451fef4f66221f6fa7c97e53d41e09e2680228643905b2ef882a09f0b77ce6e15bb898ad015b4f7ca5798b11ecb5be57d81a000000901bd4801913d9124efe31cad632fa74842d90821b2fe9f8fec40586e634d8bfdd3b8bac35675795d5adba61418295439168e7df438eb9ef80cc0f394b49e3297c8b4763fb0e7fc473fbf48a8a58e580021c8857152729f39dcf184443da12567a8ebc9b08030d1b9bf19275d6dec49ad71e75202c608f21a387d18f20c5f97572ac8905d1cb373088ce1175b144fbbff7000001bc00000090cc857f9a85db1c472f109527d0abdf1eff9bcf0e020763f0f6dfcb45dfd089ee1a588e1625c0938210a0947cdf78e983dc0c76f58dbba18245df17d4139802530fbd43cdff064d771c411328ed27f6b314b5f0df2516820e61532d5752fee09a6a46d2dc6d851eebacb495e7522de8b2203583f680d03c44ec9b37ea8ce5f8562466e0d19d222240dd728561f7d5c64e000000903babe76f53fdf6bd620f7ce82713adc6390d32939d113075daf95374cf07964c3a6fb30975853f14cc02fb654326c397e560b3d93c56f286572a9221257030b55369b406d752c06901aa937b8a43ffc90fc03fe346168e874dfb5c5b871bac5b2f6ee285e71c7be70d666e630a5f8fc605f87b550eb6b634d98821aa218263eac28c1aae4bff00bee6fac0ba87b3a5fe0000009044ef97d041bb817cf165c54bdfceafe5b3e375456be5a60a20ebf4c0ebc775d19e3b6a05602fe0702205ac3bdad9fee5733dec31985a830d52d934d80f4c26de543ebbc35ce43f58d7effad1a5e2f1632fbdd7f09de729fbcd9c1e420234edc3e11a9fe07bacd69c9bbfbeb95b2926eb109265132a50e27802b43af6ea5007e60c18f2b9f196982942336596486d7b08000001bc0000009078caf7c571dbed7201223e0edf3a9df03b5a286408591b32aaa538b5183e2811ca60a01da9625a016598952794377029c3577b9c5150612a92fc18c8e278e9c3ff7e831c66027ba31121f404c6cc34680f705e4cc64f09e1b5677d8239852b252d5beb89f9b831ab52164f268f5563de26a79d31cf827cc8d665e00f9136de728218f6c52a27ffafc4230b18dd42ccc30000009000811d22230c9c813d548215837b76afeb757179f8353d6907a6651c52d93a20deb6397944d199ffd1f2fd09002f8ee736c8823b748147db1a3182eebe82b840efb49cd9dcf389883e7adb67130065a209457e1a541ae4169fc17c1da29999e55f62143ccb007e6d34dd718321b61d28280ba790996b51f19e7a9697e6032f0c999e9777f6fb1ece70904f4a5f2b776200000090fe245eda1c2973b1f88513a37daacb8d5f35f35893dd5eb250d1442ffd0ab34d9c41dd3cfe6a7926ff1ce27988b8609ffa0c8de6dc9baebd017b7319fbe9abd7f4227dc04aba4d161f31274bcd20193f20fc7cfe85e4b4bb5a724aef57f265c62d737844a517823404a13148abcbec4f08dbb0bfca4e69efd460fec8558024078cdfbc05a42bcd9bf5e971fdefd08d54000001bc000000900bd4a31bbaf363cf3fa57aca5f04adae8f5213a7694b99c466d3fd41fa6ff4935fd74b4ea26ddaa049ce4361475eb92ada4ea3a828da1e80c29eb7ac684239088ead4a38e2271ab5e719612e80f3a25426580088f7d3501ad3876a82b672f5908cc84d06322e5dc6b244bd5bba1b95fd16dd281ae9e19ea36ce6c401f1575cc588b83e498386a711db916626da44415700000090f0dcb0f94e77f9d78ac41eeb40a50a955b4109bbe410ff70224b742f3fe1254447aa7386f653bc98610a67a95ce8919f78514c4a4bf00097084f0cf3d7c1d2d33122b5722bcca75484ab7952fd55e5ba2a20b78242c1e4d2af3333d8cf40e73151e0946821ce53efa736b9a3c22c6a2e21ae0d781bb4d13cde7018868a29285e9fd659bfdb9149e6296addcb396d407700000090ef341d88ea4e7fd9fe6e4a22e4d5dc505d065110899400bcf7cc54766a7127d2c48e47d156d6cb12d20cd0314d9544be558999261a88f269ab19e5ca7270380658bd36a443c55f097783c769c53c6f4016515b5ab04e4bcdb7f6c4cf920e722ae83ae986a67eb316f3114db6b8af057c28659cdff4c0f7597c43c1a80b453d6dd57ce6970ff28a5277998451724f3f7e000001bc00000090a865c2a5ef808bf3a41075b24637dedb1b5e14a0175b6524bf7e6dea4a73bac95984aad6571e030ade342508e58288746e74ccef9a41db44feb83e74c6bc920a2cef3a46eb8e4699019f6b006b5715bd0fb7711ad7933cbcfea5081657135e6faa64852810ade19b319163c1f7bc5a52120cd34e23191db2caf0e3147e4620adbd9c65bb19f60850cbe2bb27b3226fa00000009040a53797ae7569bde81f43f32b91e826343bc0f14316c46c3a767c9a76f3c6f18a5f43883aab511608ed0def297a253745ebc8efcde6f17aad8b894bb8f2c56bb7a0311b86f7a77acf1d5905f1391aef189601ada92d92ee4831fd2f3f6587ab231751c127d25a790e71caadc150f9fe2da2329b5993f4557c85702e1d3f76350008198b0a53e5659b385013256521bc000000908359cabe7b56b8b199554d07c08ac7780ad87048b1c8517a32fc474dc2d77203ec99a1eba9c192a238479e651e0b5b822f750b92523e7f3cb0265a0ddc5adc0c52839067eae0ee372bd1077bb528a5d81e3728b0d47ecd7e359e89144b1ce2e11da0363cbec6d502ce996791d87876311714c6383edc8595bf0fb0ab115f8265dd47c0f13b2d277237fca8c303c25cd1000001bc0000009014d50b10091b00692c84ca9d89b378281586b784b97e31c635ee2f240f7fbfda52caa18d2ed45b30d8c57b9bdf0e90c17cfbf7cfd766fb6ef05cc6b0e9536010dc1f3c570a1e805fe295077a49074d2629f8e3aa398ad0017f483cb595eac860c94524a59cd99f8d6100eaa2880c37af10d95ecff8e7662fd1675a6b699e368b2becb6381b60245955daaef513eda493000000902fe053e6aebc719b33dc8f0484d6ae3b36da92f490fac91bc44457b10a10f05880ccdd4a02ad43595b08769bfd36d6c8ca6b56ddd3639fee1891606c98ef93aa4174ea438c200f742b7b9cdf0eab75f22086c2b7e9c56a469f8fe4778281ae5dcacfcff7c5e928d12b7286346e50994d1a0f76ef0d2ffd1b281aad6cd3dcbbe8a0ff597104cefc4861e35a8dbabe9ed100000090b9e43908601821a6c6af1e8f68f955a0222223622c949747ca6258e843759a02031bfe8181c7354bb6e4cffc40feb6b0ae8ac4c930727f95c3dd1255f72aecfc7f0145cbda6958e8943722c88cdc172d2ab4e685c0f94fe29a92d8eca001d07945fa654f115d67a6ad1bd9a9d11bc8e02b6764d5427b15702eba437a7379d05a34ba6353af0b3c9eda58949a5d744c75000033a000000ce40000012800000090d1267be4f9d271fef7ef72206cd0e9ea08c2a867ea83347a247a3db18c95a3de4d5d19b44a8847af1994aec028371d91817ea93be421bc88de0f7b9ae628440b5a401cd7fef4bdf68ec9cefdf5a61c43305a51e1aa4cc53cecaefad9c8627ef285ab0a648361206ad649249a976fae7814f39800949bef3ed19e7d9b21eb2c673ea392624f1d670d20f8d9065f201217000000902645822c672907e4d8c0829357baac264aefb6b4308489fe113b1ff1ab965e34ef829446287b3002bab3bafaa32ef13e2eafabcc5801bb482d5bd79d5df0ccb9df3ebd126dcfff9d99499f3b22ce9003016efe2dd628279f15a73a50ca7734617b45328cff2ed111388be15bb328b15a012c4e23c527c16343d5f1aa009ce9ebeed9d4d9953a56a5bed7e5d50e9ecac600000128000000903ec8e194dc39e13100ae37743d4261517845da492d394d40d0cc71520111f86e5a1e2f7c1873ba53a8ad917adcf7bd893d82168c00e6317d2aaffe02edb038e3a91cf667cacc0356411f24eebf401e11148eef7900cd61c234127c9938bd1368f2b794fc12e58707e1882cc3f4d21a0c1df957e9bc5b63c528b707f685dddbfdf84643d155b06eafadf2ac436e5fe997000000902605a31b9297ce4f4e026cd62b1f99e8ebee58d4275eb401f67d9d109b2b8b925a942f34d80a0844c74542fad7d28a0c01483f9a26311961ee99e574f7a03781d749d68e46d2634ee3f2f86cda4b9d5c080a3c309d16833d104081e3186f25e8c36fbff25cea36baec6d85359ba8c5ff282403cb327daf376cd0a757807ef376475b9aa8c5b4afd5ee35af3908066a530000012800000090f01ed56f5ce1b851ea8242e8f2b54b3a470b33bef4a3f98e90e57a1efa1d066af51ed76a646cb0569643f75e371ddde0e4bac9f097f48ebeee3408a9e1524cbdaf08400cb29cf8baf0f1c495c040075526e507f551aa7247610b4374115a9cc36d55d17cc2513f34b294b6b57ebb63f811df0b8c164061b559447fea1bbbee0cde3c15837b4866984ae8e1cf7e91848000000090f48beedcc6a7a73c5dbe0f65a08901e8912e17b53430708ec55f8ebd94ef63cdd8d1ac2ff75c07849e92fa721d62c429769b2f9735c357a275929093d05211c63b36b72c38139554d705aa77ba77153c1810eb74a7055565d2b38898c1c7f68b2b6ff3a892051417bb67677dcb606d80210bcc0e3dcdf034dd98cae6b17708ad15c843e1625300b780d7dec624a6158e0000012800000090e3d8bbf1a03a6ec99d18debe60451df0f74b08613bc7df42072ffc0c63658e3f7a4a4ee218d29f7dee54fb3743b47a9a22a62067a43992ecde88fd0d5a4363d620c54a4f8794f23412e64d8a579d8e2614d2d47afc37c92f2b455c010d741cd477a38f3c53d9fc2a5ef75539347954c30dc480c9350557bd2ccc1d6ec3d93c917d0668cf00efbbd5ac9db2c69a35408e000000903490e166050c8c9a7ced51be3e57b99ae8d4de9e3ae3d7872d7cabfad63305c36e97214768219f502f11e081b6b1ecc4731c9d21e7857a48c39f700f2de1a1e690fdb2640bcd80de3495f5626d2624b81da3a8a2dc731da13a8f75335eb636aae5517433afbf8e02b1bfb63735eafd61122ade87e69376243405e78e1e3730cd0293ee37e4471eda1eed0f0c45c3842800000128000000909fd83cf44626806bbe7824895282b806c8aeda0f138dcd314cb32aefe75c2b692ee9113b1f9236e0789edb9ef55000d8ad3fc9610808e1f8ba10ec5c2066489f8891d029ca88be20c24625c68e66f39918b12237680f30254c3ecd75fbd881791255075b70bd58da59e9994242e2599617011050da58374af5bcb35f4cda80377a8a187dbd733ccf3a97e703dbcc5602000000902dc70eb32d4fb884d0b430b16c7ff97d5b88f35550034ed6841f85aa8dd2bf3b31e316b75c107bbeb05296995c4372b1808268a7e4f2e0f9624de9e95ecb47087753746334c65615578c9e9feebb3a51241fc894f0c95bae803c4f4fac8caf11447f290321247bf7761efa4e84d3453c16e0efd9024dde101546a4a4ef8e473e464a605b56613a3199ad3b629c042e880000012800000090b35df4a8e4fe3d9ba9a45a24b72bc3af314b174a2159cba62864c91c495848f8b11fce0c649922e5c957b88e4357965efe8f95eb96b290509b8dbdac4da7db9eb7f54116c9ab5367335037d89b946c5307f6f9e11fe03737543c46355427cb8c3d0253d78de7d89a97ee51b8a0d125350999bef16260798f2b1eec194a736ecf5c1d58e17ceb37bfb51e0c7396de39ef00000090f6b68d8dad58b1f726721ebfe0ad5547ee026f110e6fd2fdb139116ea2a3a3e808c682b2e43e47718e13d67502a9291b39c3796c3dc6c31b55ff7df469ba1408e1c1db38518a10e9a88235e430d1bcfc01c80d1f0ad3567bc6f3f36ee8242b44ef0b765a5130d8a4131b0759aa1ba3c32d20a24010618542cb216f00fda8b7186bba33dea148e9909b4d4114d273733e0000012800000090eba1cabbf010fc7c52c12227c7cc1bff001f549f020a7181c2b1ea71549f4e8c73c2a3b8a1ac6cfc09ed85ed820a479ec25d2f3e23d0f0807c9052827f4da196122928d3ddbace54cc179a5dc8a29799297e2a199d7074c84cc0696b822b40ccc1a1821fcec621ad646721d0914ec7932fe1b6ac2f70ea89c890f1261e55a09eb95eae781cb719f08c28c1be6e4117f400000090fbbd8ae5ed706962d244022184001121b2bed70fd7c5f24a77747014d9d118a13e8e3e83e5f0f613e51765e55b0cb9e2db954e9d3413b0453fc7166e69288cf6a775c7db07488b1e21fb2b24f1f3cb0023c61ac84d0fcd2b205765fcc3f9fba7bb5486441c07b1cd58ca4176cd410ac80899096c50546c8385b037b01abee2ad4b1fe28353e9713ccf291c29adfa392d0000012800000090f9a33174474e431d81d35dbdb9bffdac406b33d2c6f50ec30f40a501f9019fab188fae220ccc7a12de6ec060712c95add30a769ba5b4679125216799709c7b3fea4ad16b3b2f61beac2140a77bdb27d40cf50eac4c456057fce6aed3886a363443a56a4a4d5ef904d5d037831af022da01cb2f68f559ea4c571058cb175f2a5422f65301b7b24298916e2a7e5d8e8b4e0000009005dd3985388842b02e60a086ad305688dba8c73acaba8804464dd9b3650af21656d86f7dbbacbb344d6380351cf99f5298bef1cf20a917860cf962899c23274f05cde33a985834dd53eaf93aa6043fa72ca9f8ec3d4d394cdae9fffc49896a885c15c4efee1c3823c69f74cad0c19fd517babcc3125db46fc01a444e8725778eb0db0906db46fbd5cb4dbad9439716de00000128000000902bdab506bd3624299973bf33ae4fa16aba0e407b246e8061a437523b59b8bdac5d99d7dc63aa3d15b3c4bc7eaeef86469965d03ad3e9208d349d9f0fa987a789f309f0a847926337207b6f88479438b71c35b3c79aa2eadb871586be85ff3fad85f5c69b1ee4703889c555b242304ee7178997b71733c8f33fa78b9ea722e701ba79f0388c1f76acf7d5d777cde50d2f0000009048b5454d5350c10d5970abd7223e34b714bdbc791b4c65b14b58bae6a87959e9b8d2028cbab36e92b7d96c496613e1a4fffddb3296f28f28218231531aa50db7b5bcd04a24b200191498aa893862559922bd03d09dd727f797a75561ff4bc9ac01c0295aee978cc3487b08de3c5e77e028dc877f80f4baa2c748bf4e6b7fddc9af3c750691e88463670907dc89ae366a0000012800000090839be5d7c52676e753c8a94fc7012fee0c33e0ba824ef37cdf0e4ea1ba7d378161d29e54ea55823565c2fc5b91326b4a99a72ccd98595424e5751381143578bc2ef5f8fc5abfe87eda3951806f9f7ea20d2e867704f0c4f1a7458f33ff54764e2a64ce090b66e306b0f0a9e27f36e6a72828f812d9cbea202ce0ed288be99c5da3b8c032afa35c82906ed622f5a3603b0000009074878a57a2fbf52e6b1096fce33c7f83f2c7425ba6d150f48be26ac01966ca1f5b603a3d3bcca9f1524c4dfed85117c8b8ece60461d5974836189771a9fb700a44c92f648ebdd97770d1526fab8e5dc9301100a2a7804fedabd6d86f2fbbe46e3fe24603a00063db5b42c4848083a3580d1cb7b2386c037a8de0a9c6055ebe5edc17d18440ac6719ed98734f92ae5527000001280000009093e36780cca35dada87cabee15291ba8c3f3b51e28aa2b2f36f9a02f5a19eb21c6ac03f389843056a84b3fb4b2acc9f476266fb480fd7f99bf036d492324f168139db1e31dd27cdfb1b4e8dbf09185411c4de97982b74e636bdf6f7048c4cbf4d1b2149904cff0d5a187b3e3428485692df3c284b29771c96edbed7ac3a915c57377ebbdec271352157053c10369c2b0000000907c664c1d087d8642d85f3394f66f4bed378f77c1d9d7c128b164fec745a018176acb3c666635487d07ef39a9a7443cddfbe690dd2d90f249189a3621281c4d8cee6b8af4c22b18c6ed258b0cd1b5852128eea188949ab62e174d2a5e35ac77b2ecb10424b1d49a956eaae6d453e0843422e843b77ee88004fd697ce4ddfe4e032890c1021ac3d0b33b993d2cc260dadb00000ce400000128000000905998d03244f645698ff7cfc4dd1ba37cbd375b94a94005ad980a9ee1389965347b34b4732bacd868f2d46ba76059f07a9612b8841b00795d1899f4d9e35f14f628361a9d6db9d1cafe334768894eabce246ba1dac13af0fac1bda97683d7cb5789c83c8bca06e4797e2ed46bc518c3ca15d4bf801942721b74175d2034e86b3269d17d92ccf0ae1be0974c478678ccd9000000905d04d09462ee4c6e28988b59218779dc628362c3c8d61b0080506b506232c8dd8f5a8c914e19cc2734646ec283ef984d3a86bc15dbd8de783a4e17308e94db25428c59e05e9012c8b44da233efc49adc0c029e9962b7596fd6466cf39135c96e3aa7ca27556fcd2bb99a520e3468216b2a1294542a597a110476ed26bb8dcbb17162dc138d1b68aa5eb8ef962fc703f900000128000000903c8238f40ee0e3f9e925671432e84c067595931998373096731dd118da4f6acdb427febefa4ead8cc0b2757f651a35607ec45c65669983704f3c1c5696617db0a43dc3f6895691796b92d1586e2d62ac2783413610f60d5d6626eaec0cf5489b56a67fff21145d422bac59bc396dccf3025a8fa94d115c7c3a59681352149f1245f9703ebde50c5ede736cac50e802fb000000905e4e8b0e7d92d0db9288b2b0053965ac7f99b674c782135b7ad9ed8b2f444a70df394aef47fb8058895a0e1095154e2b7ab1783b5a3f0a39d0a497ba8d39bb2d35b812cd7da132646264393f75bb2a050ed19615dca0bfe3e31a947e1cff38a5648ad99b3148841c526abb8ef5130f6a0d1548c4d345bdc0e485e8f001927902345548007d66bc6040ff4d9c5d63b5ef0000012800000090490bd4103feca675238fe7fb4c16fc04b41f260da6ebcece76f632ba3f88c45c041e24553ce95a540d0fd48949d652bc7900b8c7a6eb8b2b687e00349bc9d832e0dd7cd4a4fb6dd73970b40e0156a9112de6af792a7d99bc6dcfd7a322f3ea87f4a5bea253e284ad2c26a523aeca62a32ef78b5c436a4e8dd5e6e12614d04e2cfe468a0ce89df5bb2638156ffbe85c5900000090c152b7aeaaf6f66ba3606d5272e2de83c2ec413ee7adf1c043500c433cf35527fb29f203028e547446779ed475dadb346b8b210c39de239685e9716aefe5d38655d9179c01d89100967ec7936bd59efe0be12e855ab54331d40fb17e7c2c4c4d0d93f3ee108c9cc9e871cf8019878d9517a9cb987489f85c9dbb343ae729094658d51a0c76ecc8f97f711e88aa09f25f0000012800000090ce845ee33b8828c450d0f2cf2e901790e918bf0c8d809e81113f1e829b219df0cee5fd00af7f89613a56b120115c72f98809c06cf525f4926f0c44d2d89916979f11100ea3adceade2c3fdcfd7902c8a203f3f68962dfcfd5d469c0f44b89113b35c8fbb3bd00f35e9c869325c6d56fa1d3a582441db19937f1131d6c57069293c0291c4c5497b62f9e253cd1fa17a3900000090dc2b6f7a95ac2f9b02608236b9d001c25d4bd46c1c299c6d2c5d888d4f6cda24fa0d7eeb717e173ee675f7f1f6a891a65c76d5137d5d8536525ef77268125445bd2a79a87e6dd03ad7fa682ecb6bdb1024cc7ef89dd5d28d3d83a0cfb8d6ac2c84823ce8d2b23da74ab19cb739352166002bb6a64ab8ba6219020940c1868aaf9098599b0536295a152d76376aae54490000012800000090382c4148126f8968b857162ec8fd930d573a41ae07df55b075fa4a90341342a75507d57fb3accd1b145f651562b68172a16d01822fd8fe19b8d74371c935229126d7a3cef7f0ef69c263389096ae3a9221e0676c9bd4d0604f00b6953347bf10af9bf823cad27dbc1f7356dd17fa9c0f12e5e2d085ddc1b4a345e9bffb549e5db1c045c210dbedb30dea67a2ddbb2bec000000905d60495979e9949a319ee7765f6d3f07956e97cb076538f3931c0f4572dfe7c2c9ac2afa11daf65b43b6aa44efd5e3b26672b3d0e3c714f5667fecbed230ef70b0f1c7cf6e739b3f35959a55c46423cf232f6fdd1fc069652903d19451c7870a33ce63d016a2ae702455b5e899f4483f02be42174f5af4eab43fb9c68a1473ed7a51e89c519da6a0073c96bb9cfbd4270000012800000090346bc85326b32dda7ce8f0212fbff1092a4141ae7452adc2c667782ed03aca9b9fefd2d5740b0dfb5919c2ab9a5d4a7ba4118797df233952f68458d346ac573406de9db783d5f3e97d911af1331508312056a292d09b43d071621a945152ad287b75c8a4d790c2e91561e04407be1aea0c81f8af7657704175e1b0aad580ba4564cd3d6ec6f36c55f5e74afeaa2855f800000090b77a26c6b8dd4c4dfe3aa1da8ea966522275687a8f7596662270fc760493b8fbf1e563fa0b307a00bf6e478fcc4eb3666369b67e5273afb4a02bf42374fa193fb0d0813fa243aeaba6d683d4049dd6422166b0ecdba3db4b79df7b0c1fc8a935aa7d48fb5a550fee0541e69d76015e63009ec5223365534bcbb376a2539e42bd129a9c457be332616dc5efaf44bd30aa000001280000009018aea5bc1ca8f0df49da8a42c192a4b8cc0aa96737fcb379804441c19b2a74e9320e84fddc1a23787216e5cf2909c0030145853cb165993dfd87cbc6d422ef21fb6cca7f7825a3f7b6adf36e06e6bb162b4eba544dc40b453b24b4fea13c643a8dbc0bae7729bf40cd78b9bebc4ac7b80495138415b64412bf67b0cdf88d7b4ae8798c4ede2fbf763deec962a29be47500000090142795b3ab49aa436c60b2a711f4c19339e4a3801a70876f143ebff42950fa11687fff7563af84d6f2a2b8c9313cc2f82818a201d4e258d979f61ad4b4ab14a8b8309f17c44bb414b3d74faac4e345cc16bb64c83ec01479fc0c993bf957ecbfb486fd5a4e6c1d3d1274914d5727c22f1917b87c903dd1881df82801e91cc83306bf990f0d55e63891ddb7fc7b8aef4c0000012800000090dcfeef5d43ffa92d2424c452b997f50133e3bb19581f58d007e3129bccb19388e395d25eb5bb852c71700150d709b93871a61b543439e5e0f75f174724f0d7ef9e61c335ff95c337e9929a7219ed1af1263a222029e7a033ff8e7f0ef7ab74af7d85cedad791f2825976d375f17636a80132c3034754ad9ae550bdff011feb1be1c172b2207f98239ae4349019ee465d00000090ac3204228825a74c55b968672f4d63d1e2dc40b9f41659ceb3d5dd63197f826e8d77898eb5e6120313c5ef4ce754d4ba89adc624fe368bb493b5c142b635a2a930339e8da2bca2d4e07b7ae451fe95ae2837128baacb9756033334a5d63609289cbd69f559036c422ce03dc91971424901cf9e1f28c35fda2e46fc7ee1239be8d474913be51cc5a2ca432f6b48684f840000012800000090cd23db296e01fd2dc8da08863075927f5a60a7907f3d265769f8d0f5081cd8fc218766160527828a87715ce58f6d7416114a9c1ef77ec93781a8aca5da4d3aa8aa16fe1a09eee2af3994eedba49718ba28be0537fb39986aa2e1f3ff5bd18f41e9ecd437e6db73e4cada5cd5639935e30756bf0b2d3d0a9ce69a6aa4c2e7d330be077532e4bd5e0a309eb5d3d5e1f94900000090f065bcc6ebb2303fd9c98b22d0e78378302d69307f498fe65e81c146d1001f1fc58423db36003c66425bd288cb7ed234dcf6e6c5cd03f6cf7f3b317b88d2a37767c6e36caa7c0997c0977252397dbad80997a6ec34730acc421489e3b118dac6f17cd6b4d816a0092b3e30477bb51c62219452973b63d9fe92bc2e93b6a0887c8d2a938a00f5cc40ae3d35b71ba74d0b00000128000000901f4117b0387cbd69904faf5afa7e0994ee94179caeaa45f3b3eb2f2aff67481e0da701c4ae66051bf316dfa30304b550add8512230122fccb457af9f61ea3522d0a16255a26d403e080182c27b5ae25e21973829fb3679da8193c631fc7f48bf0d8a789dbf2b42cb39ed2c57dadcf431129cb742a98965cb927e16285bec36e576ad810e799ed4089b1dd1b13ff07d5e00000090fbdf9e199bc0623a1fe2d32c0a4cfc814af0f22450bc538fe3acbd84a8e16e9244e44b25c59dcc3c566b71ec2c5ecce2730680427b55a9fe31c3c2725a347ba742c628693edf2d5644c6a94970588ba916c139b768b3c44cf618f2ce88546aaf413f3803f30bd9e0b66777e5d655f4831cdad9a00f7ca7b8549dbe5d0c579f3f0fb929853a5e836bfd1856efdc4fe20f000001280000009019dd6fed398d5a1ec6d9b90c21f72066191e977de4aaa552a27e8749d1e320081e7fbcba1d65f56c6ce845ba3218213ed8a07c4072dc271d5228b5cc58997ed670d120e96c92d1dac8ce47f856319246167c6d2d5c0c304aeba71d923efd25f9bed2c8112cdad624a3211d9692814fb9029f1f04fa904b76b473fea9e6f83dfabf214caf5ffcf0c5827a34731b31e40000000090e65cb233571c73e4fa6c182120793001a990fa27b961e18ce833933d48bb801382308a6d3c615ead2f098dc4b7631f4101d559a2a2bd2908e41ce82bdb5edb27173450739eb2368b5444822d1ecfcd912c8628008c9433d1c4fc475e73d486032ea9e075da8a2b4f2f9159cc6b68a9e6147432868e71b7093fd7af04a9e50f5188b6d7ed57cb7627ccb31670df5db32d00000ce4000001280000009055715488a08c638d410ac1c3ecd21ae332880fc42105b976c6fb07d698c1b39faa8d9b12934b08bdcc693d3ec0128051cf80c4e9f86c5973eb6d40d03cec36dfb7c971d734262ccffa3dcdae15ea22750efebba45ac81f517d39f8659cfb7734733128e7a96775491393889c73de2e55067fa9a986af3a69d33cae41ca15f2bdca098c58a97d91dab3199c93d04f570e00000090b6dd3736805e84ea003952a85327a4e528da04d3b158b8f9242fd8024ed02a5adc297de3d2ee0ff3f63d4adcfac256d843cbafee96ade152809332a8547682ed599c1c0e91498f3994ba461857d4b8ec037262da4a92fe480505db09fb5bff17bf9eab8daee32e909fdb846a34388c9516fd376daed2955220b85798bc7b740014edc73ffea1a5f7fa15368d582c965600000128000000900a8ce8c6a86aca7ab9f6ea3fd6a2f6535f672840674ab498f9f5ae781b925f2b8e5a0b6ce75cc08e9241452c57590936b61bfdecfef41ce881ec548b0b5a0ecb0abd8405cb28b38d04c8c7f0df097cb424f19bc9257e5fccb7c90a57e15e5d92d6e2eb60ef12956afe176d524faf5fc418725146da3b7c57bb187f7e83046c8898b46713888b536f5ab431d808e4a52900000090891c999fb6f5f2736c46f3d6699cb9869d6e022a61931bbc521008bf3e3d57f048b7bf300a346cf384f2e73260b6796889c7e6416fea936b69dd330e5828ed21b7fee287d1cabd0c1ce21e2676a9ce451bd960aefee87efcf907e8433e3f986ca0d46a4c1c6074b37a1c444c4fd8447d12cc44a788108c3c25de23c9d5a50ee77d1e64d8f5c3c8533abf5df125140d320000012800000090fe755ae0c22e8a61cdada5c298ff8cee16a776607e29d4c7cef27e0de9880dafa71b65c64005522859505870fbef0636ac3066b6b7c7d61941b8a0448b7bf9b2f6f1385ded2e353b329f5bc5a87c2d82088ebe3fbf9907f30caf2c3b649bace27ea96165beeb06bde6c1727b19b6487b2508fa3dca2918a1c35bccd7eaae5e195ee06fdc2953d546542535d3a55c9d0b00000090abe888fd7163369618f463f6d33563db49f7ee9316b35662863a60378ae0312d1f1599d9c2a967ca597d2a6512577dfec7ad1a75364664b29bf2311db1edffb4d059048d653a950c4d7222a53cf069731a7edb0aea3e2d066e760eedc1ace79d8c826e5c2e001790d8c5b99571c174720a03e33f332858a22d1d217591bb4902d161fc4ad5cb987a08c4ed291960400d000001280000009031046819fce63a7102b44aac4c5f8c7a61a3509eb5689cdf977d59cd27c2ae4d1ce799c3c87ac8c8e009f16f8e668574eb7390c74dc034a69f6b3ed1791ae3e8ad9cb378051a96b03e146071515dab32042bc3e5a0144771e4350cf9e97843324a00afce01dbfdaacb9d7973ffc92a92087c71040899508ac6ed22f98cbbc28a326e5450a4d45fe6b3a647b50a41e56400000090094b3b1bba5ee496fc26c68a807f8ded13c145d68ba578d7344525cf8eda77c26cec928f2637327ddbc66ed7a010164adcac03c64a9fa60378d8ebb4d4ef6dc8a0abd085daf104110f5427e737d11dcf0f81eb371c02344fdab811faaa2c3f6848969da8dcff13706be21add66cbeb7a1af501f16c59213bb5ff15fb5622c77b4230bf65f7f99b506dab2da006c5685b0000012800000090ee8c783eec420a1c1645d48a5629cf8ce95d1fa8949367a9da12a9ede842d00b13110aee316cb020d0179e109d17c2bdd9ffdf4a5bc64fc72a5cd07458a7ef79c6724c251fb28c7cc17dce89e99d45d31469f8b4ff96a5cae2822972e78debb1e975944e56522f467d32fcb387c2fcb517125a849697ae7c264e80cf0aebdd9e8fd047d3f48a8ca181ddf60a21a4847800000090c21131eace51e663aa5ddf47fac03e4b8c1b3a386f11d0c4d4a75b8989b6176daedcda7cd3bf8250b611569ba72caaa70aa03db71feea8d09e5a4d8abd3d2094a5137aa8c52af5548d8a8fabb5bbcf0c17b6b9196a1dda2389ee4c780831b684ebb6cb86eaeade5d02c3cb5c9c09b5270e2aac6566015226bfaaa7bb1edb01a88c5583cb0a415ceaa8b0031cbce9c4e10000012800000090618ac49800cfa73d6833d7c6b8382e3409e91435c9901b6b0e6fa5de9c09f065853cb0829b9301e3ade7c1b3c01f0cde7b99086205021fc578bdc51e7aa843849c8ef00fb43a30f9a3c5e3f85ffade7b29e73fd40371222f8d668c62863d9235f3b8adb1ac115b5febddc0e305bc7e1c006902c3cdf60732133e0803abd9fd2d509dfb2fbe7742a9f44d82dba0ffd27900000090a184c9e0eefea15471bab69b8f0a6500c5442f6f042110173c5ad0827e5cd1932d38ea76f0aa40cba967adbb9e97e07db74301806f696d0d177cde9fa0ba61f086b206b98b564157ac24a5dedabd82792bbe9a051cd6b48514c3296d6c54cb8647df72025211ad123ee1cca0291ca03a245dcf0768cab5fa534d148c587ee66f5f36b89fa50df893637f0a2aa8db180000000128000000903b09966390159024f0c642e5d657b0635bc31168923f0a3e0736823d1efa7e48a642a25fb718221062383683fb84e2b64619ea07f026297b445f5bd02451f631087fad7617b2d16bb585866593009db0094d06fdcf120b60e1f4b1b4de7601be84406b9a5373ab0ae7a1793773567d1d20e39cc64e8fcd3e65b33d226a559f87e3029f022c545a449c6fe85bbffa7b0000000090c9f21a34cb2673ab1fec1f94b8b54e3829ad11becca8b51a924f18796eb5d6704d2770518fdb1fdd84c65b40fbc68a5a6c8a535d4ee2e118c851439db8b78ed4c57b8e3d11da1562164de0f87396911525a9e502bbb33d46d38cf863102c2f2e74fbd56811eee530baad35810faddca80326e3d63d9799ca7069f6797d294242373b5a58e6f1ed7330d0060939cb48ee0000012800000090367e9fc1b4a260ea686ac8ad04f2e2ed0761c35a27e3108e16f321d20c8acb40b641a4cd1f1c71d2c5e42b59995ea7d47080e33bef859bff011b38a8ef6b043f236f976c0c39a13f192db7011a5831f807013ac9d1c3a9b88810b0e6ded72f02265be72de608b63c06af3375a1e2daf8168bbf4ad7c401d160b6b36bbaf33cd7542211745a0d0d0abc709d284853ae3a00000090d644726cd54c87ea3ce66c7a5af8ec080a8e8a9cb8db41300b151a2c338e7f9f14ac0e231043934a7ed7bb837be46c7d187e90dd38298e904499932add5d825fd22ba4824609f4c54c3db28fc99507a916a8efbec6336f0b8e8390f5a5106612c428a0adc434d9320f9b9d390a4829e5079a5432b99e97699daf0d728421bf8011cb6bf401f53eb0c1beef6b85d8241f0000012800000090bf4cfcc3fbbd79ba831951aa02d8cf650e7d462d4f1c7cd2a5df1a7ebc6eaa87cd66782af865070338a0a76a66096528ad11288bdb1d9016c1e38e2bf1beadf952896e570071c57f7ac313ad813ac1d90b3d76e851416bd1ccb2dba2d128d6e8203cd39ca8b9d50955970c007b7dad4d104e291a8f5df57bdee6008fe68f0d8163da7984dd6509e2a58655ac2d5e74290000009081d736b83b29f9b0611c05a0dda2490330a97ea2ad65e48c042a3c8b0ad80daa2b6d51f6b19fffe03b50afa87da3262e80378f6248cf5efd1cedd041692aec4573d0e1fd5207c8b281825e76225765dc1f37ae1ba00845d72156077c6533826b991f5f788dd1a10cbcd72ea73f6515812b1ee78954d349355a2a5b9c1232eef4c83d94e20649dec3ab24760cda75e10f0000012800000090a3a61d404a07f45cd49966ed22bf3b4e9c9c5878f58915e0472dc8dd2eb594075d8efa7eb429d7ca61a6c9f79fbea29405f228e03d0bd978971e7f2a42856a89c8aaf4cc565f922b9f832af1c22d365c303bd283c6a1e7b378c5179620165d78bbd8700d4a2900e525236299768dff561ca13cbb25aaf32dd350f51521143a7bd81be6834983052b343e95102f69060300000090304e9b7a5f4670f2fcf132a631b18090cf542bd22bb0a45fbcaa1a2f4ff290e8eaf041592ce1d0e0873e0db3a5943d6ae92ea857d2321859ee87f48324df9198b44e02996ca66db592142f89cf938d6b2e98e9558fcf3af3bfd2ef38ae3506a31f4fe45d907853c60dd998a0ad5bef3f2a620064f2facce42d62d5a2506aea0aea0685b21c7558ff45f122aac0e91c8a00000128000000902640abd81a3da57efeb903fb7ee0e5b7f953a7002ec47e3a9abdf3305a41530e7eeea0371df3533bfaa215b6c987be3a6598e20caffdb7723fda7c5af5fac93d62973c5a86a6411304310f4c0d4da8af14e9d113f7df86b49d60342920cc20dbee12dd8f418d11b0842821684e87feda01fc946ef7c05ce56a9b98f19178f8de758e2af5f786b1fb8b004cc85cb23ec70000009013ec1d98f9636f93ead41ab3140fc2a411f5f2e021bbc9f72d95df91ca55084768d93d2ccebf83fa26cae9e8fa83c2b118fe1cdc46eb9daa30b2d011c40849f0fed65cfadc92fbef62d3630dd676c583125d62403618c5c88c41f689de97c1d75082ddcbc95339e74b677eb2d1318c620d0cc8c82f44736c9bdda24e8b0d706003fba7d4b23237920273970abb93545f00000ce40000012800000090d56eeaf9b6fc69437806e1be871c1ec2a0c23aa64a1d82bac9a7429ef2270bd2765c33c91f82598c1f68ddde7699a285cb64bd409502b8e83b42f1e28207a4e874f8a0b1444f2886da4755d73c7863da004d0689e149f89c368d424e5cd74fdacad44ac7584c9a300a1fc9cba944be581dadbe8d6dd1dc5f96fc4c4cccfa300fd2e787e80e7618e9c5be43003ce3d95f00000090f572e6184890cd783a2c867345f8bf18fe1461a046376de7473fb34c2fc2f1862f6b769d98e88f737eca890f5f5cc48db20571ed6660cec27ce064692abf5cb5a26e5202ff3e0e1fb703499d5fda828800f8b556e4c1224f985a8e2ed75c66b12aed838d942929590121f8983bdc5b7517f746adc73b0c09047e69b64eefbe0340c78aeb25efaf3c0912f93b4f98a0ee000001280000009044b6e3ad790cc71cd6c47f871fb2a86629693ec8472f30df83c8cb4f6001e0e78dbd947a4ada49b87a2dcff150b6735851336062fb4c3ba6a3a74bf35c3aead1860d1cbd5c3507e60a2ddf30ae898cc5018d40e135b8e5c7146e5b2864e91c23da095ef0d6ae535b7d9c6817babacd5313112b1fe26b533d29d413a52391cfa119c12eab0515970954c029ffe1f87b5b00000090870a1f0bae78d421ee6c9ac89c1d95a1b18a31d2b7c86ef2af7e568103d612834985339e8c33c7a5d24f90681edee45a8ece287a949c6f25427b8d26fcd5cf0b774dec6d70cbe0f1688c77266f78e72f1d8418bd3266b95e010d48d53cf30031328f6712893c9eaf368695f43f55f6132a50a634471b990ca9754480d43e87116a1df5bf3b91fdd2a639fb96215472b400000128000000900d2bc0b76f2e7fe9b1143b40fddf59fb274426ef2d5f01d7ed24ac9cd6c3b5ca1279f0216fd765c65be395648debc9082c5826acdd804dc1985826a6d30d9bae86783cd9a9b05a178e8bd613985f0cd71dd6a8dc8dde4fe04fc55f5b391456e02bd685d6a9ea14fd36c38d355d62673e2cfc54c674dce7da0b12c50c093f3ab559b8adbbf2b9cc3b4e3ea52509715b0f0000009012d6e407a368b98961a98fccb0ceb799977f6babcc11d9de75203f9b73dbbc2c141c38bbb43b4d3dff3ac3fba44c348fc35edebf22f3bff9af985e67e2dbdef73c0dcac8c368964f0257a5ce18e5e32a2efed8a3befc81d87c130698efd0a7e6a24a430448b702852988840630cbf639164d104f77092c2e2b5118a6e4be061e6143a9b70ebac3a15ac1a5bf9d5a65c60000012800000090aa1fcd5d082096320617c0e66f2b830a5c7c0548be3cefec89c8d5efc2361c6f0b95119c85d64121f78fcd7317e7c3481c4cc26ca0ff51ce151b8e891b3acd558b0d269645cfd61ec41c6e0a390090882a5e9f8e69af9d41543ab3be93a4a765675fe193213864305b82179cfffd52500039937fc63b2efc64a515492970bbb4a62a476c962bfb03626448e49f478437000000903283ac07cf03f2b74193fd9c1a16ff330ebfba1d6a8d4726cc6f39049af672c17930ab4ce63180b24922c18c43c01b4ac0172b5aafd299476b53e5ba1be50f7e877313fb34ee31354f0378b33b0cb9d4116b9298a40ed296d2b23696b6cd3a50986c0bdfd2bbb5439c58af6b351f9cce0103ab28a09841aebfacf6598c0ec25873088139ce3306e3bbf1a8b84993242f00000128000000903f890ff13d5bb64a96df89deceb505ae3bd968054cb6b354bf39a73e0d3908950a0d9aa8c2d5ee6e2b4fc0188a69c9acc5991f91e4d321b865264765c1de168d83c85ba1ac616ce4801017e5e4c34cf009a7f9f287f676bd11c67d9390ab116e7cb9dd8aa6b468a04dd31f5d78f9666322e6b4b017677a7ce3888a6618558310a0a6ac3fa061782f3c8c77d60f493b03000000900fdef5192501a6583cc3cb04a11f34997f3676a0d31183d87fb7e6255f8bfbd22dc5ca480c264ca60e894727271a00cdbab0b96de88c43e699961e0315f60675fff533af703b944fab3e2900cad022f4207fa960b0d7465156700dbb6587a95ef99dbfb10201d98a4064d1172feacf8430312b5dca5204b1ad73cc3599e01f077a070a39dcda3ea7edd272694debcc49000001280000009015560ec3cb3d4cb1a245fd268fb1c81831d317249ab55981783db915eee39b58771efa13b81e2c90852d5c3e7e74580bc8952a487c10f96b953ca1d86ec62284219910fa213d4a028db2cb3b9883685f209ccd6054af646b530afb5951dc48bc61facf9562420135f161a98d6dc78cb2206f2d4869841f67d3275e541e9f9d66e356d27a06bdaa61448c0afbacc8ad3700000090d445aa4041263de462b276c145ab0bddd25aa0c5f875e429c323e3f58d2d5e84a1aaa46e9297e5313840f3a6fdd600e68453e822744e24500eed099c27de245c542afd148c20548ed106ac2c4286641c0d73fb1acf582d06be8c11439786115b3c634b1be76843622d2b14785d6259e12b8f67d232257b9c837a590b2e69259495c3f9966f5dac6b9a7e7773003aced30000012800000090cec753f8114fcc724810c5123315bfbf96dad76dcab51ba41652b10426b9fd65d7a48cfb2784484e0cf61b8b65b20afc8ad669fa2c879d19028338017df945614e3ffe7c7a5a5f7e7bca84473ac862f403832ca2dbe679bbe6d0e1fb7ea7e21930afe46894c13b48446e6005ab935d841d5494ed8e72009c651dca2ac7eea7d33ec5dd615d818fbda959ef598a230c28000000905a08792b87fedc1a668185e3acee53c5144ac408216f98c9b819a648d5c146ba0499a9af83e36ca91c3f6cda0a225e01cd1e41f3ead0c4f4057c8cb6a7b4ed51911ce4b24ac648c3cd180666b4b74377126825d1ae86b7502e11ea18cd1c8d55156a8b7a1f25c21a92ac80e007c41335182b160006561e7773143e3c9a5dfeacf0e8496c2e2c6ddfd321c04d4673047300000128000000904be201a9ffda34daaf047d5b528835dd61911db450880b1bd3a2b7fc8298600159788b7e47f83dc625b8b9c2636b6ce78c5d2a6fae8c0d1d44009d0610dd2c6f82024a4b23afc49164de7c944b5e4d5f0e20f06069ce3ca7fe2f76c21918796142314525e4546f1e83888970e68dca682f51584adf3fd22f76ad10d759867c52cb7197f1649572c342d970b08729725500000090aeb1109cb748d04bf154bb94546157475bac2113d36e8d584e953a57a7fc212355f8fcd186697882282d6dded2e55b85abf920a5c57e756e7545faa36bce08dca2faa5429086a6976b8c4366e45311d41740d1c95e322047f5b5e96262040c69a166a68d6eff9e5e3ae83b261c0aedd61f830bd4c0a38e1f45c720774e902b7550012b2ba038c9d3710d851830b7c0c50000012800000090a492671e46d035652bae1de1e2d3f409c9391c7ad1315f32d2b686121a75c96756d4dd16f0ac1d666cff578f352b4569fbcba5a153ef82c7611c12421ae9027434bfec9260033fcc0267f44e5a3c4b4f1c2f31f6321a58b8f0ab6b7887cfc7107a2bdb59346fbdae29f343c62e2a5f1102f383e52f679f3d9757f3207cea70f06927d9526edf9b33ff2089f899f2825b00000090148bd8adb33b112b1aec51d508591ff6a3a960056bba4697b89ba23edb1e95b995fa9c1f96b530d117488c56b3351ea5990fcc431ad21c67acadab7ead8ec87ddaafdca660fad163ae6e35d3be395dfc14560cada59209dde10b230d7d4c662e3e7cfcaeb7a9a7a340dcaf6fb8fc15442b58edf35c4c02594f1bf3e5ea3e899f0b26ad62f036718681b829dbb55703670000012800000090e8cfe16147cbfbcede698b9c100dd416212652230a29d79d9716fbd8fa08514837c9644e182460c8eb5bdd694a89195e2365eebcd3996c4af7a1c8d3f887450a0d597a12cef9bda224caaab8a8ecbd982aa923fee4ef4f07e28bd74b4e2c8b0a5ef49674b749513e30b1a039186a3e35269a78b9f7207db380eda629301d79a07b27cf70748aca38a1a0b79dad0aa75200000090655afa7a84fdf37709cc9c7a283cb30c178a5446e7d6f18c54607be8526282f15985a92beaa8ae01cd798f9e4cffc106d86021e65154cfb1a47bbcccf2086f6a89226570e73ec7e47a8c842abfafeace2f3c6fdc480aff2705484a3fc91f494dcf5c427290aba416a052de63ecc50fef164919d1aeed69286f215447f69fca971e4a19421952128bd7bd133ba3a3e8a50000012800000090b00d676b1075c815808ac19b9d44e1b76010750dd21adb26c7a8519eb4c197de00b568d2593c1a4c21779ca05f86f074c7a46fdedd80c67185d13a86ce2d524835b8fa30c9b61dac3596b8717214dab4005681bbbdb96dffbccb423a2bd9178ba7075084be235f11da12d99caf6759a52e106f8e5e7d0f016240f1a9654c4750d34452a01d73afebd928384b0a95c0df00000090b770118ade6cba6553985ccb76698268a91a7e59537762d62cb83b5e2fbd6c78fea043ebb9a51314b8588ff85d7afe03837cccdc4f6518e4e51f28d22374f5814e7c6b5648c0d06563333f8926d162932a7f3a03443f27b002a613ba3efd51e22527ac9fa9fa7dd1234244612ce6b8430a02bd9ea02b7e86c7c9591d9086fdb8a986c8fe164fe57189995af4fb8fe3c9", + "calldataHash": "0xcd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", "decodedHeader": { - "bodyHash": "0xca07def1916e084cc36e8d61ff2d78a0091957db60fa8894f4df7a62d7b55d66", + "bodyHash": "0xcd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", "globalVariables": { "blockNumber": 1, "chainId": 31337, "timestamp": 0, "version": 1 }, - "lastArchiveNextAvailableLeafIndex": 1, - "lastArchiveRoot": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02", + "lastArchive": { + "nextAvailableLeafIndex": 1, + "root": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02" + }, "stateReference": { - "l1ToL2MessageTreeNextAvailableLeafIndex": 16, - "l1ToL2MessageTreeRoot": "0x0a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51", + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 16, + "root": "0x0a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51" + }, "partialStateReference": { - "contractTreeNextAvailableLeafIndex": 4, - "contractTreeRoot": "0x1a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb1", - "noteHashTreeNextAvailableLeafIndex": 256, - "noteHashTreeRoot": "0x0d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e", - "nullifierTreeNextAvailableLeafIndex": 384, - "nullifierTreeRoot": "0x01c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2", - "publicDataTreeNextAvailableLeafIndex": 96, - "publicDataTreeRoot": "0x160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2" + "contractTree": { + "nextAvailableLeafIndex": 4, + "root": "0x1a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb1" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 256, + "root": "0x0d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 384, + "root": "0x01c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 96, + "root": "0x160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2" + } } } }, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000001ca07def1916e084cc36e8d61ff2d78a0091957db60fa8894f4df7a62d7b55d66", + "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000001cd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", "l1ToL2MessagesHash": "0xb213c9c543fce2a66720d26a913fe0d018f72a47ccfe698baafcf4cced343cfd", - "publicInputsHash": "0x29b4eeb123c4d4ebb68fcc64023553e53d27441f3935c4acaba4efc312fa1d76" + "publicInputsHash": "0x124b48fbfadbbd213feab5c7dda66f6908f55c3c899d88d0db822527dcbc34b1" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_1.json b/l1-contracts/test/fixtures/mixed_block_1.json index d128626da64..f0147e8c6cc 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -52,36 +52,48 @@ ] }, "block": { - "archive": "0x2b4a2765bd8dbed591e0d5c90db6e71204044e5e3d1ac91c69bc85a48b1fec51", - "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc00000090c09cc2e43c1ace60543a36841c7f6020e9906ce543f4be5299a9a8d91001049bd9d5d3fe0ea16d84de9d3db00dd27d6d523ed9687bb5cf84959b096849577beaec85ec3344a4c6e621b61a572471a004097bddb1e236528edfc8ca4ec4c97648bbbca00e89aed7a7041dbefb8d96f23e0347e736f0f6b5fe840b524a495e5e6910bb0adf488a4cb3871a66f53f70c04b00000090cb53c542a6259c0da2852e9a9bf6bfc698bbe8cc3f35561da3ac65276985b7981b387829fe26b8a467d40100481a96a1008145e600555ba07ff8588bccc6f0d906df33a1e5bfc04f9a8169ff117d01450bfb2966a9f1a4069b441de9e36e6dc9219698124f1ad8260e23f4f43949fec2203acd7aefef0d4c8328a848ee1cd9fc1148b7a799ea92e33aeeeb0432437ab300000090a191cb9a01b7c8f0493f1ef3a82b01ad80a003ff86f34d87e43ef94618b8277535be0724ce555917329f757e71c7aa1ed3f2f524343118c3d3799cb37abdf3d3108e08f6358c06f4443ba612244bc66711c28828dab54cc3269e0030d6ae7ceba5a7f0b4f39f59d32bbdf36bc0363e6b0ff51883f9174521d286a28d99b35f4e3cdc5e873cd076995b49837fe0d9c685000001bc0000009053a1cbabf996cef56ef0488ca6a60234e34e14f2efa8847aa1792095f0e5abb81e9fca18ba9bf185645ca74c054b4358fd3d7b32312d6f3a3ef1eb10fb75860ef54196a6d0f0d4baa3844b1ce4b847cb0c5f90717cf3e77161d47b947f2f047597aa68197b490891472cccedcfab8a5d1ef4c944abdd339b1f805f810ea3c65f8105b93ba4b98816165f23f1de07adf600000090908e72928581e924666f8fd64f67a768d8659d99d28e144f505f6bcf3801311f50661a4c4937c77c5ec18af7408ad32bc785c4e05b0b998bda64d3a173e36aa6c88ec4681fa3a6762c9657c181cd2f49138be16143d1dccd0373c8616820c80dc05c625534dd5c9981b206f5a8c0af5c0d0529b603685ee4c4bd657f3dd73a351a5f9790e0a1b162345d8f63986c032000000090106b814345cc19bab569d0772e3b0eedb2d4aa88861c8d7df24239a5ebbfacd716aed0be559c4cae1c101cb9fbcf30e30c38d9cc20c951a12f9570a0ad97dfd0c6928a5ca1d53adc1b5f92a50d6387cc1c74b59c0b0971141f74844ccf0c012d82b2c3bc7b14c76bc0ffbd87c889238306ae05ee609aec7b0d27da31d88c67f25d8a2a7148f39c284448c511f1eb4bb1000001bc0000009013ac815a63b37801491e4b207be284975febc33c0dfc9b200d1925d0494b54b1dfde6045f7c70d47f7eb0b4f1660c94d89a68a87b1437d69f995b5228f774ac774fd53f36734530d46a70999f6d90bc90977e22d5b13379184da990a52bb941154408f90c0b5daa2ff88d1eef9ad12ba01849ec2da8fe484f333529a55afe7dc810bf6f8ffda954d32382dbb3faf93f7000000900fae112c88fcb83a78b533c0c73aededb9bd01a3fd4f8cfdb16a6603c7f245ba33fc040aa054e4314925811e5f715c5849be2b96d8421b254d044a3034177fc4c87fd8590d3315f31bb23719553e1e2301fc26ebf0e7e693d440e441d49ac5f2a19686bcdeac479006e13b3772d8aee40bf8016845ce0367421ff5d45aa67820a9d97a86a02647dc2ad3cf1c7499f11b00000090258084f62ece17363337a70852ed2a3c9b8a6667d7fd1aa7cd1ad4612618baa5ae110a847733b5aa6cfa2cb87050de1a08fc5659303f6c8b489aeaeb21c9c241b851bbe16ebb32159cded9e227996b711fdaf2eadd8833943c35538803c4440743434953db5ab44ba4f3beb104b5a5112f8f16c2d8dd142a4a83e35fd0a444c25fcc149df0b00a4a0987c876b7f4a5cf000001bc000000905bf2e739e740267bbcaf85812da556f562384f9db767e92dac5c3b7dcc3f2812364c499be1faf165733bdbc2b134eb940b34f1ed94bfabb8e4fdf9809f5fbf9c207265c7d00ccf863ababee102a37d6207687120658d74a8226ab254f14d2a57978211ba1d41a667ed3323a48da35931145fb4c3f6e5777d218cd86e32ba50b66197f867d40aa55a4f25be1f5918694800000090414885f16a44be256a40ff52ff28db1625e36f7792b8a2cdf27d456105163f2cadcb9e7234ea6fc7b7392627f784c8a2fc22012509de72572779c0f45812b3f7607dbdedfce6985f439e43144eaa12432e893a76a6e88e55e301500a14b8a1c1e6291967a8bdc50118a028544c9e798d241f10631edf6e6a55cc319d523b0c5c247280e52b825a36c4080769bafebeeb0000009092e39122fa66d4f3ff0511f4e0cd87897a1763dd102ec414631e0250cc720feacbc5f07a1b103922b358ba68e8237ec22bfd240ed3604e024ef02a3633b1e49324afe914664e16f3f114b92e581af7090186b24d9a418e239f470256bac27b89ccbf9c87364ea589a4feeaf89ff8c2eb082cb66793ba42b6fe8f45f2287c9d65c5e5d90335a87014a5aa9296964639a6000001bc0000009099baf22ba2870b4078faaf3491dbb0664c066b030c5c0bcda58e9743c830b81749ba8511d170eb039a175d798d3d17d5f136e707d0c5ce3035599c426ef8d5672a14aac1fcd6dacf1d7843f719dffe712b5278ad201e8c16ab49ca1019f6a620000059ff9908a915a42567d89e86b9d023526fcf078d99338aee60e205ef84687592158382d4b3245c70d5e30885de5600000090d7a8c2d0e28c6908452024de333f36b58b301b11a583c29c084aed5f51d0bbbbafcce32d209b92423b266fd41b616c03fe8b8de1eb02e0713c78967d68eaae16a7bdfbcaca345305a5b221301c021b8f219915b14d55328da9dffbbc2d895ac2aa4d82e0c31f20fe489569b6054d2c7c08a48858a64cd51efbed4453f05c73e3607b60a56973d0b95a7edfae9ec9c9de000000900ca7c90b419757f474ce826a8be1f22c146d343789acfd75e575907355c51fe9d30f3714d227c6c8049b1f8c1669c2ecd1044367c9272f7bd796c47efd2c688704dd85948757deabdd30202a1ebd9a41016b4190341638bd0a5e7858c0a258f4e30f84db462ac508864e89e125c2d9c72f9137bfe35cdf29fb64fe57736d7203f29c077cc414916933bf14e9b1e7be27000001bc00000090661cefff40f3e27ede8be0f95121356e9bd2ec8fa045abfc59dc76c521a5434e388dc20f4e5dd6448a88d14ed5be12e403766cf1ab5af6913a7af5a0bbbdd9d0cd68ea214a715282c5006f50c01742bd120be81dce4fdc72e033727866267d4ed2330712f5ce0c2c3b119d277f86bcd216a10a138f8f0fd609288c488e43412aaf974bf6c1d77e4f41412540fefdbed90000009010b85fb878a41b540f6448a2edb58d8ae8799623bb61a02015b21e57471683bd0e737a4b2c07090baa0c452d451531905b49f0bd190d9ebf30982533012f8f381ff5b60d8d143a08ea525cc2e82bde600420e9fc9bb737889557b434cd5896de68fd3a3a65ff7461ed126502391691a62cadeeae079af8ab2f322907edcbfd73e06559dbeba773aa0ba137506d51ba150000009057fc8a7df34f37625adab477bf2277e26248fe2368c8d9d8e1b2b8cb0c8a9691e4831f9ace6b39061303d80167ba7127f0dd6b8347f52e21184a8a42d6f58f427449d13707d9d70d72ef0a80c431dbb8275043e24e6c5c09c871f6db684c5020d149b3dadcd7b2d196d7aa65a8033d6c055feedf009bd333270974b0b56c29572fd3a48d20d775d0a0cf5fd7bced54dd000001bc000000907099fe0d0764a4ebefd171c950ff9e20c009881f9fcf36e799c22319558e346418a25c3e86781da87aa07763be2f4ae54551d215b27cfd58c75de43f5e7a0c14ed43c14cb17de6fcd5f06c92bd1aab0a1d7141f6c825f48d5f2479a22c8a159e89532300a373f27ccb54009d813861f02f29c7eca8238fe3f3fe2e0d185558f1c7b46cdc77a4e6f37b79fa69fde073dd00000090e7eba0eaf0a05e824ed884425069d23d81eea91f56ada9c2354ce30588ee6fcd7a6952559539defcdbe73807a481ea81077631dd7cb294184f2167feebd970731def00d2d7374a6ba2280b7cd7fc4a5c13fbff83e7db77fafa4e13a76b670e5514f9c0cdc1506b54cfa5a690f151c6f70af897c324279f3c2dfe454755c7ac3f5ae6acff26c475ff67513c48675fe445000000904063dd478b9b8cfbc58034cb3e65ca60d2a47dac99b4d1dd0c49a558e61154ca939afd40c31cdbc4a64eebc83e4183a02531733d4feb16e76c67602d9ec4d35cc48573dfb53b420e29d92b0a0c724b4a25349732cb7735851488dda63aed66542163831df68518ef424f457140cc2311194f57d3781c65db6fa353b362c0a32bb3300714dd7b6098ef3fe798df6aca74000001bc00000090465520dadadb85c78b29090a6e6189524669ef1310a473ab1894d2e1705d2a8ee18620336cd8d5f3e232416f2bce4e3075058196309b97ad73a8a9becb81a3aeec3d5c4657bc8c9ea8bf00021fac39ed26db9dc5f33ee52a0ee7d50ede1d8b4542443b4eb1f29af7c32116eb7b0666e81eb0473e84f07448966f11542f1df4a5a7ae27881d8d2dc71b96ba9bd4ef125a000000902e26e2a97ca4c683d5b88801200b1f7c4e4970e9ae511af864349993163de4cae50ae59fec153cab0b7bf4b21c3dd0f6db23d998d86e68cd7ed80198c66a33d8ec6f5246439706c513c1b0e849fd8d64030a9184baac803265c5681506f3126f63118660a119d70182f3a272a8ae91270773888d7edd43b49ad94cca0ecda5316743d30311d172bd9818dd56d95541b200000090d78970643bfa8eac7ade40e1e8bf143ddb821f91f19f8ec4ce276b6017f1be4eb1bdf762f6557b15173419b64d1a28a4d66f22c38a96b400e0b75fb6c87f3adfaf58eb1b33ccfcd8c72a950446aef76a2a22ec940b940f790c0d9b50ecf35f2a219036ea156ffff3035dd91a0385dd9c1f2bb94ef6ea71744e48daf33496aa14114afa33af1f55739b411680f2fd5d9f00000e00000001bc0000009019c76c79218d3de2c08d937c7fd1190f9947acce7f654d504839b71bfbe840724f121a88a21028af90fa256879520c2755d4825366519e6635440b09f3d01eeda89663c8925a60d9e53553fbd25e66771b698e53d2cd7d77f511a4bca80800dcf5d62fc48a184f4454c0a5b86958b047053ee0cc59cb971fb15d58659f85eb09790f1ce41cd90efd9f4e1bc9b55cd4ca00000090b75d5ab0a40d4caa744175b803d006bf30e73c3a2709d9029da355b937c4eeac7172a8f524db094b97bf3c130263ac1adfe34393adf919dd80e630f2e3606d06a6eae53b238eff5aed523383536eebad21d12df2d1f6c613578496e422f9e495a81b54f98646c4a188ea2defe70a5fc329fdd1864b4e6f21dbef50fa7c6062f8b4c3c38d5354f271fc280bd4e3582ab600000090e60d1b90e4a5677c9dd7647f384805f94f74c885cf3aa34e3361666e8fb32caf68e5130077959117ed219b1bf1b9cfad7ee89d98f970d809880bb5135edfabf0dec9ff170bb8a52accb7b12d4fe0d5ca17c422e920cfdf081f97b804ed25b286cfd0cbc607e1ed975f15f6c4290cde1416075faa424416c4c1250a1659443ad57243df0f9c3bec50c5a4ee88d9398cef000001bc000000901a4d905fc72bfd4a79826820488377fe415dae67b7dcb36e89b29adc710dd5b86a22f752df61c4345d9712fe30a36a16b974c164d0cc5bab74391412f7ee51522f674fcff8fee7b82933fd901e9b1c49222e40431c7217587407d33c610bca375034da17e84f684f1197301dc1827f6f298402ac6e873f43973a4bd61c6f736b17df649fba910c3dfb816effa6a9ccdc00000090ca9d918f042ac24338a4f42ce25758f78dc71b477e9945b168a9cb8ddbe73fc368bcf0a836dd631e6ed43cc28bc07bfe3a9348f623af4da90717c8610e1b7623dc3f04c8418f559a47fa7833dae4a98d1188e1afb36620563ce0d387b901c1070e51ec8b68440486bb6f046944fbf7830043a43a5441865882ece2020487a28a1c2b887038b82e1d328d9a8862650a1e000000906dc607d87c802737a4218512411d32621a41b6e7f79ec7f1cd7a34da4d4a266ec6e3ef434a374d9204e47b3030c271b2adccf56ade356ba81fb95c688968df5e5887b40196f902c0aa0f4a2fec260b22023ac554551e319f2f31ab5ef75ce30e03086bfd13f6190963a8bb110286aafa03052444e0fb7fd24787a43a0fdfc482168a753e715ca481250a2ee3897f89b4000001bc00000090d1a185bc8d2ed908b7da210bd59c7def3cd0a32263f731bb665db5e1d67d5fa4bf478e0c1e9afb2845531b9fa288e2a242488739a8d12fb28467b2cac7b958ff147d69f5fae7a10028489b5776d657f12694366738af241a49705e90b2b9feb17db26a172da8c6b0c667331abe5a938c04737bdacfcb277129a5eda159b2a49bb3615f67a52854aa2b1fb61a58baaff9000000900654beb0000a56b5aa2c2c54343dd98a567f22a2001a21cd77838cec355515d6c3fe8346e9330b417b4f17eff6492217728eccc7e2b476229b4819efcea6408d44fb811df43617b7a5573e4b115175b6094d0167faabba5d0369fa276b51f7bd4e02e172817fb448bd66c649b5baf90e02b91be821bf4a9eb4e1ad729a9001fceed9269ca11fa840bc0e27211c7b461f00000090af9997db5dd5e2fb88e0801bb75dc5515b33140ea3b110a0c875245e0dfbac1a2a8d3e59b2706c16485a714a3f60de995d18d9209e9a8a022c3f06db43d8bbbef5f6557012f91e14d0c55e84e66c8d9b26175b1f2835644631b052cccade03c2662796265564e42f50fe6017d2bec9b72aaa1e580400c0b71d834badeeb0086c8adcc4fafcdd30123a1f425a156dda94000001bc000000902b6b249a65243e08accbb69634252a8e441e82fb7bba83b8a5e89ca9d921c3cf83321e51b30af1017ba3e7ad28e2db489b86745df11519b99dc4d8fee6cf7104137629951d13c668b8692eb54afadefe13b921f5933cda299d939e38932e9ea84eadeb847f0b089f20a85b432b83178005bd07c62382d21d5a23a174ba0d7b096acc6fb2bb9e4cbeb228638d35ac194a000000901080e5d8e44ac19b04d73b946998603197b987a426e0b12275951cf0b74096e0d62e0dcfafa52dd122a5c8db674e9c50f3f22022141a0eec9e02d3d5967dac59503bcd106984e5bc11b9605c3e1625a22d104501c7630854d92d5ac8bc4e530e94bf71d1c545c526c8e2467f941d9c0b029870fa3ce74ad4719e8f74d424fabe458e1657867243483f842e189bd5e90100000090419e09bbfb6b6b1274b19c1ce3837914bafc4cb2fc6b3a1ce30860a7d26fb27eb393dc6aae66089ff91098a195974349a7121907daa90fdcd18788043854d3df52dda06951b5eb0af2b60bb4e944d1d110bdec3f29a07740a383c7bfb4a2ef95d70244e65408fd4d602c3cbceeb25b12302bd6d2aafbe8339c2bf10fc4eaa8473a1a215d56200ff83eb988fc79c24953000001bc00000090c781f593c4aa1894cf7233694944cddd84c32e79ed9f607e1f8ec7132a138005ca7eb3052a9fcdfe4965c55c918bdd33522f670e008908a8f0a68b68b10fb281f60260d9a29e667bb1ff4f3d4aa3822020b17dd30fddb25d45377f7893c4458341365bb3b4897301fbf0caee62981aeb06da9de44f89caad34bf945636e61417c6a2056ce0cae3792ba6c169c1de43ea00000090990f77f49d6ae6ab786efb70328b23d6e2bab56bfdba1c8c4678969cef8771e1d753b9b39d7ebd90059947d5c4210fb1f70e3ec01f74c4ec5b5d7229843391a9c7a48fb7cd53bf941c308fd9c9c56772199b8f0c88df60c80f69f0b08f5d427c14c8a2ae21aeba6b5e446c8d23ef140d0b89431ba4a82bb9b84cc7d42c0e914ceada137cdbd79c708da78385c37210d600000090fb4e5000cc7f96bc94aaee52724984f9d771dcf5dbf51766a71a031ad2b079a909f6a7db232574ecfe585414f9f07bc1a8e0f778d99b795a1939aa4535ef8a15ab0a38aaf24ae331f5b4dd7db1a21986245634e062f742c11bb96e7610507bf5602a6f9c01bc1901b90aa16891e6b6ab264d4f75ed634991648da5e5ff5703d1ea077e399b594f17a2b6cf6a0f9e2a52000001bc000000909e4fd823ebdeea76f4ac9bdef276929ac8816777fe410de5ceb9ba2aef196fe8357eb207a0dd69aaf54e91e513fac5532bb713e5c85aa15b3cd6f24f5c6a65cbb031a942954b6d211b4ed133ce10866707b018dc3f0c09624a2b5ac0cc15e39a103baf9755320cf408ee5cd3c63167a529dcc08d0a3b497a991cf6dd6acbc5a02256962e56e8540462ce18392a3ed13500000090a5a50d28c8237671f2e9ba72b4c44a861e921516ecce397ab6550fc3b904ebd0dc8c17725d1c604031e39313eec3d1529105099138f57166f23d521e41f2c9fa693ce865e396a0e978bbf312b20c8a1c2ad3ba71312dcfcbe99281a8bd28cbcfb8ccd635ec9c9011a97ae189e7025d120563c1ea5f321ee949e060ff6eb2cbbc4d0402281450ce64237889b0ad844a38000000904b82beaa20715464b8af4c5d8f42dbc132dacd4a41c5098505a2532ee9400258904d7e01c1a23273d0e42439f760cb669e52862170fe1438f3c887305eb5048652eea85ed06caa76eb729ac99db4cc1205fe12be4d8eef99bcf22f2942eadc6c67c11d3452cfbb45756fe7c53eb1c3fe253569407575e58bbe6dd17bd0e255f4d066937bdf27a2c3e900672fd4c07031000001bc00000090506c796c3b2c1af151689b6f175b42536290887a7bb246dbda2d50956e5bf864c57b6658e5cd37e6ed0e845a4da386b829d70ae7d4c1d09c61cae6d389fe7487287548d0d3764f3fdc03d145d894fa5b0fb25b3db62e36184b9ccbcc6b8fef7a0933503a0c8bb6241a358aa94f4fda2719a6e1a7eb6a0be112e04eb914701733b012d8b107db66693d0d8eecf4f8f851000000909935939846a36f7b6b81cc67deb53f19241efc082312c694d428b75bdc7bc65b37d1754a9acdd5734d06eb063e58ef9f487b55d19bdc04624347336b1b6f7eafca49d92ce3b5d07c25ccfa692314b3871d3b6c530e9a6a4eecfc2ca4db29449ebc324ab13b13a7120c9e673078227f8d0432455bec43bdd2f9f95508ab554d732cac9003f76dce3c06e6c32fa55d94e7000000904923efb99ad9174df3eca5f5aeea31d99c8ffd652381f76621da614dfb3e6dfaa82ff1fb99827e464c0a495150b0d0bc366623c94b7da76389dea8dcd15845c5039a75d384819db71dbd3016e3c8a6be16b4994dffcb5f4168b4f88e3bc5387e509e2af895c7d3476724d2a0959c714811ce2b0214ace64c42648a1761d829bdedff093daddc36dcf77976e1bf6a9a9a000001bc0000009020cde63035138ab8ad402105d12d1732305c86faf7c580633368643c06dce21e1995b075bf216b68a288aa19c88ba4ebd0d44ed2c913408289e79d2a0ff08e1deeedaf86526d7b06a264661c07319f8f1961f26c8c093690ffffd4ef9a99c743c278672db62ec06baecb6b612c0855e70fd6f8cc956670948334db77713cffdbd98596d6180b1e6cc2b4f19ffb30b1da00000090b62a31df0bde2b151a18a1569d211464fc46076bef58246cb10109054ac4d4c9b6d579411218969aa3c42320590e7fe884852536cb3c5c767dd2cfcda58a51c9c55260285b0c308e600b773cd9fe96760cad87c7c8c61735ab6b69052761380f48cc7eaa599c9654385a0b8a5eded3b50be54ccd8a32e95240aa69460e41a5d28450fa9f826e1b9fb007b89dd99a079a0000009037899678e255fc45adb41f1738f8621660d1ee0739c9e188e388c1a149a768a569cd74be6bac00448c612ae57056b28d60da822ddd4d604511ee273d1a7ab3c88966ddc840177c13907943461a05aca31411209cb32291215dfa5ea4a7b018d6cab01f2e25d6ee482dfe7673c7a3bc9a2656d2f5708b76c0b3d960ff5594769c48dedca2ef5c14a3baf8625466637cd200000e00000001bc00000090a02a34437953cb184624ab20ba956a5cb66e7e7795e0608fbb65a1f45676a5a8a22d19896f804dfdd9fddf43c7a9826f306bac4044b931c81dd5e2692836ed06f8e813c58dfab0be46114070a158ce2d29a8ae30679ea499d25a2cf027fcc9f375a64bff1eb0d0e9d5e86bd88446463902fc4aeaf96511e154e13416aefd17aefe6bf80d407099d1be8279271ac7a54a00000090497d4c69aa4edd289e2612fdee582acfd94113a81adc9b926f182f90a67671b39e4a750eecb838bc361b24aa5aea61ef76b2e152010aa4f67a4f700f1fcaec159f8a178702848f4eae2083b13d8ce07b0c27b9bd0944047bd84539dc31a7a809db4f1896e8e848e5861275c451fdf3ea0087e8b2ac8c6b86f1ff18a7f9c9eacd29885202b83939d1ac4d7967daa26f77000000901becf8990777fade0cc66ca201d1210961c05d7be339a22d7b27f66c9509f64137e5d44ef0ffe346d083d058ace3087ac6404e9502b8908e443a9d4a2e6d7440dadecf745c3a723027a201c9172cf087124a71d51a03448149c5f0ec792730a0b1ffacf10d46fdc10cbd8944a5335b040df88ed2f9dae87ff60dd5d99289c21f3a88b01bceecb90fb7537902cc694ba6000001bc00000090467da652b98753e42a7e06225cdc53ff5b1c0d0df73824746be8b273ba8a892e073ad63d57448519cfcd18327213f18d34e41eb318a58619b862b769117c8a2371da14577e6e2eaf6c39755858c63ac922868b6bad9385916f2f36e98a1440304ddfa410183652b6a359cc5d921e643d032a97dd000502bc9022e071b9de4c6efe9e8e1c330e1a52138451d2147b98be000000904d75722cf3c1cfbee2bde7ad6beda59129fa02b605e29bb60f8e8fdf86d4b18a786751568039ea5860dff14172b309cb3be1c45c2805053bb4b9204bc909b71423d780090db751fe12084ffe8ee52cab2c3f3a234c1582d93f8aad1ee62b71cc783c5a1440bbc5f95f61f1ec20e6411f282145ca800f9118624569c2781cb1341e9ea9beefc198490fade24bc6788f9500000090e1105b4735934bf09e2fc132666fafe6b8c5f415325959cda3c8f2a2d5ad00239a5bf957491d4d17bc3d1be5fde76a6e7a6fd095877ad09e8c89c0b5d223440568fcdcc8d9f63deb504b44fd31b9bcc92b618bccf05598f7368a7e7d0ec17fc43f67324487cf25506b6d86bdbc9fa40b066527c8565cfe8f24d520330cd07f122593e42109c1e6a56280d6175b214b03000001bc000000905f53b38f3ff6524fed6744584b9de79f7994657d366dda7a44ef35e491bb47e4a6afb1d64914ef3c4c2cf80f4a3eec3f6a7be753951cccf5e74e3259fd107f52248906b3ce9a453df9eff53d378aad912e09bf2d9c51521d4baced0367d48d0d34aecd7079a1a0d6f7794c3a0eb2f3da0ec3da8e6768300d31ee7614ae6a7b1fcb33c0561c2eb495c3ee136999bff1bb00000090b0a43352a61b9440f89246b182820e06cfea5e5b76b92f82dc7a001af97e299d142693ee6342cba300aa49600b1a68b173b3e080a42e165084703c2cd78b658fbd76179479dee44b91f7d64dfb0b4654019169a038ac4f9278104ce9c86b73d73ab0618baf302840abe35680a96a73ad1cf698b39bc9434e3ec07234997161f6663e756de9dfe7cc18bce1fbd55efe49000000908768ed7fe59b799f72fcdb0a51678802d7d52c2f1ad3ce3e82cb55f9e13a2a2a7f0717cb3405b419fa70774185dba5559a6394597bff541afc9b9855ced3b2cffbceb321c61d79dcff8d16fe565e7bd829e8227a082cafe9a8c54e78abbe558399a8bd8c4554502d0c3533513e8e9092111c31617a558e1b80683ff853ec2fba5b0d0a6804c22277993ce30505ce7d6d000001bc000000900dfcc08ac932909fc5c53a0796ce2e57fab99a85473769ed8d6fef4a3a985fc9b67ea00b32b42112f2b385e03d12d6e82000046f7641fd20d5e023a62e59473484d3b27a88fd9155fb8348c0b5d3c256020f4196bc94772261d1cf2554dab00289856497515b02b5d64a969ff110389e2651434a673cfb93c4c8342245b14d12a3f2d4e04ac28c2a3cec4985aa60a11100000090090e3a8aab03fa9ff7378e6c046aa74645bc8934a7b32496c5c44e95b6e1c513e4cacd2e7a15bd60ad3a5da2d5079e62d2d6599d5002574c4a44848abe53725eb088a6bebb8be9c1d34f9d699faca46f00a0479d32a50089163a9ece3eabffdea84a6d750d970ac782f421fd9fe16d4a1d7011d993fbda0e0f6a686d467cb4f06a559af6b9a08d1808f8e0037ceb173a00000090883aff6d64db8e38971fabf8a9f9af6cf6507049d11bdafb6b6b2ce28977776c2efe0890c4e799b91431803b7b30986d6a02a9ebb84f906b528742e843e40e0c870abd9c92a4ba72f4871ba1a8dbdf01067e244a9cecc1c86368361a04d867e1a2e7c178e4b177d0919bdcaa977786f109c0e1ee1b67e4ebf569f6acddf79465c73f2f0f3aa272ae53eee1e7792a8f46000001bc000000900f51795533fd2b3237c030cde9534cea52e63609d3335ecce97cad136e5b46c61e08577e6d769bbc229d5daa3baaac2dd45315a4ff06c40f10ed079e31b7b7a29ab20de0875ac17293af3f0815d5fd7321bf9413885ab4dc65b95175cf3a56fb3d4c5a09e89d307239d71305c8a8eabe141309fa78263954f89615e1bcdb8da027f86993136ebf98954e3ca8c60d410100000090ffa2b02b48294042b03369ce58e5fe42ea02ff1179c95247d0650c0e11d84c37f39e9759cb1fabeec0a823ab5e13edcb348d95a6a6d289ce08566e5a4d70a73eeaa811dd27f516b0d2f24c0dbd588c4d282bdcc68e702b765460c71ca2f1ccb1e5d1eeba6c21b1d49d83ed90ace7b7b5182fd503f3cdfa8ba26aef66cd60c15294e99110e4853a6a40291737fd8973c1000000906127475a154cebad847ef4e13c47505d6dfe2710e78e0f7da0e54404d6dd5527f97b4be8faa26ed01ebf4539e907a0aaa36d50bea4e5070a3c7420cd69e75492171ea75c3cda0738992617c0b25d3a57134064e53b214c3c4a8e8ac8f65d01d11b8eb89a65b250b9618673758a7cf8a21dcdfc7862814739f914f4a8ea958fcbeaba3589a688d83a44372de8d4f43b57000001bc000000905f2423e4a34f170fea7ef6fab0afac86916f46cc63af2bafe4abac291ea22c70475293d9d3ff5cc9d3c289df53d2f89b98600c37bbd8c98e518ce6a57122c9c7fdb20d8b2a09e7589662935f49acab652b938fdc790744eea716490ddaed0c65cc1db72f6848968859166904e4d6a4be2fe5760c55f9cfbf9cf1dc777f135257443129ccee09af6f961016c6d9cc4670000000900a126314aa2898656775dc82c5c378fec8d3b0f288048803ebbbdd60af4f3582cb368c5630c21664ee52c267a0cf03b4e93bc868e3628b305b9222184e65d81edc83e6b70838e513081c3e20576a46142a8fce23ab1ded76a6ce6ee942536c18e0fbbeda52b52da9ea5e2ac74fde5ba417cc779e034accc8edb235d16df66ffa4baf7d09faa56f8e71ad8400101a19d300000090711a3eb20abe35ca2bf20ccb0565d8da9d8bcb3cfc0f25bcb102fcf991e623cb26fa3d5bdfe56c4be20f969a956fca22fbd98acb5cc3f6359ef89a190fc14ed488589d8df19968e33aa11f06f0c2886220d9e8c25c848e05aa2eb37d65700be60ddcf12b2e0dc68abda4ff1a0c1015a32eb24fb4063fa6b4bbcb67ea1a703a71dbf1ec539003be8b14305116a62815a0000001bc00000090f4a178b982417f2b8a84e417ebd97c6469c4636c6f0764e7dd218000b8cb98001f0c91b5941d32143e992f45a71f30476bf98de53ad0deaf20dba1e3b77336d4762ebe2d6de9a2d3fde420394bef0b1d0aaae4c8ecff1c7f954d499891dcf870d9233981fcc493bf5d2e82b9009a4a313006d7864053673999d7e76559726144001986f487f6373304b8faf62db6cf0f00000090014807ae73eb01af9f6571c18b32b4a0ebc8b7660e8fe2509146d8d091bd77ab93521749b48a8b3ca9758fcb8b3ac7a3cf2a6a4f2e0fb805788fc354ddac8bccea7e85f671a215bf91155627e8e82543272c06c27d51f0a004bf26c60c4ef2029e64cbb03b2f140f53e016fe5ec4585f06f0f3937fad030bbfd66c570fdcc1d8770ed62ff385190ea5d8737d2def55c70000009046abf304d47568ae48044fee0607842b067ddda0d7ce5f7f87f5615950e4b52f7b50f45594698eb31638295b85bdc3007b60579a1b2335902d2b2006d71af22b136b176c73d8ec3e3d0e6fad5aca6397209fe44a6d74b66d95a0385e92f449f633bb49d092b9841059e85ecc347dbcb0178688cac913a4f483ce6328662ee127da6a375b8dde64bcb73c51c99bf8372d000001bc00000090b6f3b606a3c93a294da09a362041ca83508268ace922cc0657f24e57876a918892bf0d4619838d8d8ab3a9f45f55f63f39fcf30e7e45287c4f10230944a882b849980b2d4f304f1f3149adf8f1e4600415636ec058e3df7e21c513d73f5af182599b55292fe3fdeac2a4164a76aefb4e091c444a989612291ace4b8d71eefe69bd0d23cfbb9f23021a428e085fc21dfa000000907e51519f07ab199e7bc391ebecf3997c4aded2f2fca4712bedf8e76487753e42e5ae8da66595ddd2c77d6b71d97728e1d064c875a1366888057837e56cc23cf0e4f75df87f4fc8e138f82933fb5d22a42af65a94e90dd995228efbba1238c70154a8512580ad3f40af51ad996f009097032e2a4ca6ee412c49c4b875688a0487cbb8802010faa8b057aa798e56b6028000000090f22fd7dc2d68e0615fa539f0df17cdf74866897e2b0bf64d95b3b10451656853cfa3aa4134739017341fb28f8307853e6c59bee33150deee13db9fdd1d5527a0248d9de073f78c012adfa794f38808792acb7b7a8367c3be00223d825810052372e5011050fc4b3fe3e7d3c6515bfebc3042a0e2958b437963501cfe890158011efbadbf16c559605ebc97d0e26b190a00000e00000001bc0000009084cb8ba3445d1e8eb691c9aa24cae6ec1cd2ac43958429fdbf3e433ad8c640961f549226124bf1da3e5dee1ccfa923cd50a041e54370488f5192180f8713689b1da7f98ac4ebbb7a93a782a2ef8529da1ad9f22d50de98511e5a67c24bbbcf0afa7f9305b3f99e575911bb4e0ef22bd00a534d57481ee7348c1b983ed0f72404f7dc9d74b65b4528fbe4ec45025ec9c100000090bf7fd0298b14f276a9d0993a6f34c3d276d7baf671108f95aff32dbe27b89780bb4e2b39bec7335473b58c1e95ae2ffed2034bbcb096b098813ec0cf98ca6359c41195be395b3a346e86752d64feb46b0f680e008c3ef914867c601058aa42b0d22adaff735e582b6d0c1ea4d683afc0297ff5809a4c6555dcbfb59fad6409929655b79dd7012f9c09c86abbe4034903000000904842effecad5bb236671050de6a76141c3b359d35038ed5585c7d1728ed03ce0f95d5d6aa503b03df25a0f5ae7b96a89694dfe4445378e873615570b1f4ebf97ce6e3197058da6184f88934780eda41c23d0d19f80aa9f2f1dd636f9ca3cf8b7b15cb9333be777d46ceb9aec938f1a9f14d401364df56823d755d64c250cae6f55f279503d84c034ddb45a60ee09c24a000001bc00000090b167b142a62756b45c3961c1403388434268acf09d30de46249b5e00c9fd825d8b3b9ca8bfb8ed3a0e9bec65bbe1bf83a90be2885c16de7416e0d3152e2dfd9cda876bf10a2dcf22a08c5c26f56ca4211d1d1720d6965e473825eef78c1467bbaeefdec81835b2a959f4cead2dfc4f8520b37a5d07f6e7f2fb7aed1640d05231055efd74c191cd42944dd52e118c335b000000907bc17de7a1580edf956285ecaf73deca33d440d4e3be36e03ff2a107a86a3c2be06109a7065f3d9ad923967f34bd8544b311fc7c1b8777cd33e0e1802ac2ceb85b2fa185e9cb750348fe89bc71d03ae01a70e416c23d15a73a4b637c4b12434668c05e016bd62f63016022d481712fc70e6d7c9ee508dc22795f4aedeec531b763329375afd6b4c9aaadc25f5924ebd800000090f1de5dc30e1f0f695e77cebc7937a91291cd59b46a6404b7fe37b03e933b90008bd2c30656bbf9f12f152998ac99f9f6e89bf58dba42f3d2e332d28b1402097e1e6309351b4ce25cbdb42d453b1b53a42cddaa1b3b5896a361e60ef098ec4274ac3589c770391498985f65eb6b2799ef2c50ab6a18548ec745ec2d5b57c681cc53bbfafaee5cb65c2b55d35c4fa12b27000001bc000000900f3bda02044028dd31dcebfe84fac7bd78fc6ae5144c6d57f574cbc0393101f84343a7749ea26734bcf61e05ae7f8510ce72d7635aa3ba6c3ea84050897ed70f19beb46639034d092c9246a69f2ded26224fe790a09d56729fbccacf9c97e085766ee8179ed4ce005a62adf9484811b91cdf455d0f492bc1f4e188e358aafe79fba28d1100917cb679d1e10ebbae5bf2000000905793d8d3ddf401259532e5445aaa20699c6db0748e4b0f7aa669865a885290809d68cd9999da66322249fd605f6fc4534b58f4bdde4dcf7c42b43fdaea354e5fab0bb2c075e76dfaa7ddd9f31919d8b02f6c1aaf92255fc94e7956632f931a9a05e860b46d6503f1c49a36ff2a728a3818540658a73fcba37b7b1e41ff3db076e3f2c56bbe3b2ad39c4b9313771733df000000908278ab7452e5b76ed2b4615f4876ab6b3ce5dc34143acc12ec339d38380703cfb0d7bac6c5439977d697fb42a1113bee1257de3d26d3812d50b7ab4b0e2a208f436a274a3f3fd3fb55162c3864ab482e08121ab852cba22fce34559b728f11185796e149d0098f7b8827771c8360ce9403fcd119989a18dbe11e93e3769bc9bcbb0017bfe5104d8512d08bce2df94faf000001bc00000090a714ea32fc0b6100d5a6ca587089226eb63900f812b8e3496fbb21683a1e3328fbe3dbf03d788c7abcab8daa2584cb25d3289444cfed8e8c11c8f92df6252474f150fd877d1c77c412d87992e052bb3c12311a42ae3c9146472aa6988a6a7bef0b745ae22365267aa31d8769b7440da20b862062b6468469ad04461d7e22042b1128fce0f74a48daafa86f3feb22481000000090126dda6415cf28d8c15918824056b73af8d2fe35e14621084ca747f3416807ff97712c4b0a47a8141b59e5ae6093abc590a1543b800f0afb15f6d15b98deaade581e10dbd8363004dff69d720b0c854c057712fe594a377070fd0b9fd5d99b280bcc65dab647525f0ca9ac29bf79bdc50a511079aa41386d66dbc484ae4ce3de36f02e1448e8055671c31a4edc1915dc000000906cf487ebacb644c73aa14c6f6efe906a0f3f3c51fc5b37fae4dc07a6dfc4e385e66e8c9b0ed97b254b95d68e9016c48d5d8a95823cc610b7dd2537d5edc8692e77b706286b2a42fe692f03cacc715f7a2cf0f95579be4b13643ec68c4dfbd1a27d443a2fa2be04152c91c6f9913cfed3250a6b76b62e842470992969f62e0c93e0125df2a2ea45bf3b34d4d03ff413b4000001bc000000907f6ce61f0481c04a8501e82f5b9b1f15b6ad02a29f11ef0144304afb07c74e948e2b303ccf02625080e07ade1b78a5e238ebcebfa8d6e5dbe8fbb8082f858c1571bfa2d7effef0f5eab4b4354fe4f86e1166f450ea65f4b7112f2834ad10b6610821ce59eeacbe6089b6b1efdd6312fd2d778d1a3c18b4161cfbc7848174775f1420f41065a6032574ee9cf3036a177800000090ebc98f13920448c918575bb3443c2ee695c299c885ac01427ccc0dca0d9c306d7d6414fbdd9e53ccb2bab77142521d319519f804f2cf7e4c635d069b0e2ececfddac01e6950187c57571fc4b0295ad9120c68ecddf5e1b8dc0574891e02bffb0fbfcd950e497d94ef1be197bb7a038772dbe336686b698af16be6d085fdae9ada7082f4eb0b8cbea45361fff7ab1abd700000090799f3bfd9941c13a30d8da5839fafc77dce3e790ee4534c5a8b59c53ef2549b5afcb7f10496f5f5f3869833aae09f9da0de4bef8dcbef9c9450ff29d44f2543a6ed6805022d364911c31c440c6932b722c31162f4252f67979b1fc43eed3bc03d4246b8be8ff0d81e9909ce9bf7ced3d286786648ca04b5b7fc961d7fcb0c4242bf1af06f2c0e5010178c667b19d1556000001bc00000090b7e47690bf8048a460722c62b9a2c8ed97e6836a601c3ecb3a15999e4ef01237617d2299c6be114e773abc4c3183cde0881fc936c1870ba7c6e4c17647d8c6b77e71da26dbfd4cc24ecd13a7e9d0b8e51ec7e06315a6c3d8fbbd10b8d7086427d7a9e77941de63fa871a9cdef830c73a01aa06c09ddcc05ee8b398ef7ae9e4b7c0aac1037e0e1dd0a17f761b3a7880ea00000090cfc2c09b3603f2953ed595a3e390546ff704d4ab9efacf9eac285181abeacd175ede168ceae3f612938600f1b746f982beff4b0d81061cead798174475fc8cfc3c4e0871f06c6cf298c163ab605e458a26f98243ca8113fc925d7785bc7f196ca1242c8ece47f294318799553375ea7923da3d384b32aae3654baf4ea226dad4a46743f80c51ed051ea670fef23c0c58000000901f9acdc7d2f7392a9824ffcb931a895f3c90736c4b6ba245a1f25820c95c409cc5cd0d066671a26c86ecbfccc11bf8a1e398c1ddec76a1a62fff3e635e9c7f1da2d1e9e4eae25adec724ef3afa2d592517714a42a6bee8b442d388ae251df657d673e7a00a4df2f8cd79ff30321034421fa008a0634dc94a7059fb24e3ec8d356a22818fbee273953ef204a1eae7f352000001bc00000090045ae564db9408a285d0e7bfb61764b2d2771a8b62be130363b46d02b1e4cfe0e100c629ea45f48258402811b23aa6fc8bb38f4ada5d7f1fd3eeefeb3659300e8f3d7dea33aabf09ca656a3f9538273d0bba2c484ca4afe7aacbb58e31ffd2e13f900a273f2cbbdfeb72d07c06787a441e26e4053ec648614c7eaa9fc9b4a3d45732d3ce894b8cc4be558373cc06b06b00000090edbb9629c4d785405c34715c64c224f614ccee4216b4d3d50adf3b8a9a60f4c5a09076425874ced5eaaa2394fdbebe82d473a184b0cc390fc45c6181fd5a7d0b75da058489b3e0be9b08d7757778075d220dbd1c50a8b3dcc8f3923d90ecb921d2003db451771782b5b22d14789d21e015cc71abf1bc5c12bcacf9bef8f139415c0656f00f8c616f9377cc736671b7ca000000902e6da3bd7444f788bb5f61cf7eb443bd18620e2a51dc20737b49fe2ae30073cce4ddc0e1d00c0647370daab89c163e8a9fbf2a60a5a9cb43da93b6179cedab64ba1b3b9ef32593125f3545967ffafc4a2cc49fb745f2285e7dd5843a6e867d779c96834ec0f51a7320b7bffcc8f1eb252dd7f62c5fbb9d7d363b8c45c9115a9e813728c2f40354765821eafa5ca4c187000001bc00000090f2c28cd4505f4e3e8c0281ba01003a7372dab291c27143a3ed4f6c0223cc2eba89cebc2b30ae54c75c8123f4d11becd8192117f24798dc428d43beeb9ccb53de1878aee07c143e68bcda1b7b94ac4c080f274c3565784621ed0a98df2be7cd2981ee4e96f0403333f62898d5725d37420aaf740f578346780ce46e4c73301377baf30e45a40e20932d46a3dcbba173f800000090840cc48dcb32068ddede051ec7519ec751f1299887d4b1445d3a342c055cb2a4e7e4c1aa01c3ba098eeaa4c797b771e79f8e5df2529db1880380f308b94c78fdeff620ae9717bf1df5f56799913d0b8f077cad842e3590119649b7c975c9f5f192c01a48ee441450888f72ad980cff99020d60d85a60e75b7f054768be27ae37597f63e0ee4ee4ba76bddc91ce4facdc00000090a508cd3e93ee71301389e4b6bf8f037880237cb9ea54fa0b5bd25dca05b6b82ea92fbcf43aa4f5167136c513d692a8694386437f04559fa3c45cdb97de8f6ab22a81285c51f17134ca4681613aa905960c12a72aa0f8acf9a893e30934c0ee51bb7cc8af1b65d2eae7cc1c81ec66f21225b56ade81b8fb28c12f3be6ad06bb43a013d9bc333fa297ec001769cf4f70bd000033a000000ce40000012800000090f2447cfe5d0e35dec0f538cdd4da061239c4148946a931342120ee13d3916fc45f89d07952cfb04ba3087e1c44203a263212b1dd63bac258e4699e6b2d8bdab5a66193be5d2a90b715f9aea4c98a48f7274751a680e17167cbdddcb5ec326dd917279faeb47100de5753cc160363932203ed202046e1d758c020fb98ad72c0c0c0cf0ad688e41e823176f25b528a130000000090e5cfeac85849340a565d00357244ec056b56f522cc36cb5934ef40816e764b9d460ad0e2e0f8b432a2d1c77de3d657ebe7ecc9a59591eafc838806d5c0b48089dfbb50e8d5a8758bca5a89a7ec6bc8ea04808f6123ac0b5d770af9e79556ef9402fa454bf8c647c0c4f57c3aa3de9f680366e1078d00701f0fabd38e5340ac4335206c4e664c3f59cdd8bf71a443202100000128000000908256a6b22ac69b10f1c88dbaa460858528a34014b4618eb94cb6d33b141991ce297662d564c7c7526076f04ae8fd18f398a7f95ea2846219211ad6d46a06bb9db06760ccff74ee98a14aeea318d79f730a702b35674eea92593df7e3cd0cfc7b5c03ef05651aa45e5d59cbe3d3444dbb08bc9d2345b06709d6c90fea96edc6a6767ae2485bff3a025183e49bbf4ec5e500000090ee68a29d7ff85ea8c764059aa124ae55e6c27cead54994c1710b5e2e338b9cb7b7e27e5cd24c4a010fdb9b88cd41118ea032471ed95389c549b00975f1a06b884248796227c233bec0f4c7dc5104645e237fbcde6b7a0b6ab91da4773ffc395cd9128584b55ce6ed87478120b351ee3d2aec5e851c084d7ab23e5bd14e0eb0a43ba8bbdb88707f6bd3fca877045dfbac00000128000000908769a8afa81b2be1f5ac34e86a792aeeb6cb920d1e8b676ac552c14149922c7308d56ead2c072a1363b7bd24bb9cf3068b809640fcead0f82df0e9af40b556b60f403b48d3ff79d118641a2017aa43351c0248a35b08c3b68058bb5fcf273c70632e795df0b756f941a914c295c6f0d422379a48256bd856b6917c47ee5d511fc0e3e96d831682a2d9bbb64d6f6f531c00000090c172d1ad5319ac113aa852791cf6c4c9adcf2d653e3b1d2c18c7bcf12244118f8f13bd75754f9925cab9d350e120719fe4f4b217d0840f7d0ad5aa4b03df59692cf9d6d7858ee76516c565398421d28600b286a23bfbdcf4753cb6c7d6b31c3663485455b3b1a77085db7c4855b9677025679a15e2c57fd556551a7f0546a17c39a71112abc02519740d17da534cfb0800000128000000905b332cf087d7a2eefccf2efd2ecb28b4f247ce3fc333fd127edbad79259d6950e11b89d3981966dca024e706392a8162c13399397f7b52e81627e2aa8c702e9d0a13cf3d6e845dadf5107f7c53ca72f31a14ae94cda096f17372b2d33c36a204fdc3a509da3ace4b9cf38d6fce449ed81e922bcc9df80fa48f9605f236e3ec49787232e9dc3c346b977e8d35a84cee3d00000090ea93aa776968377736c4c92426e3ba625574941bf493626eecacb474fe63117a9dbdebd60b1e7a9d04d2d1c699a661f793ab26d9b16984a8ddf489d2bb1a90997dfd2476d17a97fa909246fa950e9b562e65dd6e9f76c5f3966e489ec8b2d3fd006f266149397bf288271b0d0c48ecfc0521bdb13e104ba020e9882f84e95a079e912c350c965127954c5d2afa87c8c100000128000000908bb5d09ab3c465d6895e9820380d9ea481e0bd6b21c0a021a0afd5f5eb66db1d8e3e3cf2e453ddd14a64363636e65ae4a45b623f1b8c1be328b8243030308593b33c4a6ced5b6fb7ff59afc769523c71272c55fe926937fb80663045ba70be378ef7f447b512ae7321fd33d5015022e916625a8bb5b275bb2fb9789943c90da841764dd3cd6f78df85b16b76f2c0942400000090c45d5fdc5a24ed583703315fd66a17a30849490df120082df3d850c03b802de8bc298348ca6ee668944115003e488323267e74ca5e297e4596b0e4b14f15a784737b8e1396ecb32dce095646e271139a1fc91ceaef458ef3d4418fee00489596dfaa0655f68b6d09d6db0226dd677d85063f5c7a36950bfe4876cdf30f3ad44cc129ec5013a5f105799b9cb7665bd9420000012800000090125acdcbe56f3012f4c7bdad1498afab72426befde65485e12877aa279b0fc29d743e0d637369d88c57dd498e14ff722e8fd106874b17caeef977a5ac3dbbb16280e240f400101cb39c24ebcd890d5fa21912bde838e3aa3e2b988a5e995f240b5e3d4596f431269c27c3710eb3f211a20b5db12df06d93970de28b0f525d4ec762e14158059d1fec254d9c228d2044400000090ac05d3fafd40a18aabb9e05b4bee1a29dd2f966630ef0b4ed9cb751a1cd02ed11e16ce1085e482ef1b6b7c0c230b4676dab9e78df98d2ff53a39f16707d243c9fea8261c30256acd0d60318ae74f0378205c5329d6f74f429618c2653cc22a3c98fcd87b8dbe5136929486b6298094c91d2994483a41c75856187a58355361119e589ffcf53fbc3adda3d28377d3dba20000012800000090ed18002f39de0046b084b4c5c1a24c93803f8c254b01cb25081a91137589529cadba2a0a1468e590562e5ddfd7fee95302b9ba5dc999d81544414955bf9de1db0ece6880a63a54729b78fc00f37295d610d10911c93e9055577f9d1c54ed67a38e51fe69d7239ee1a6d2d272120918bb0f9fb9e0bc067c3798ff890c6666b7ade2cf3e9f6a278d74011aab37c541c516000000907b5fec4bcef780b5add5aec8c8d01592bda3cb02df5000fcd81b54386af7e5c3200a84af0a5e5777ed90b692d8e321448ced8cda058ea875c80312e30fcd5fe6ded73be5a118a9f1bd8d01415e32ad95119662be5b4af2adde91d0954cc459b2948507f6586f42043a46c4ad86e7178b08669a12b5604777b666f2a6295432dc7d6d26d1ecf1a6759224fa4a76952834000001280000009047d951481717aef06e32f97425a78cd76bac7e11825e410f58427b851a4353679061b03e54925e84a2e68d749b7b913b79f5f2dd57b421c6291a92b6fbb7e381e76a5d2e13385a74fc4be8f3996b6faf281297c9a8b4bcf2797a9283f20f38a018372847cc141435a4c9a0d25faa0eef1a0df45fb05e8e53ad117338cc34076badfd0bed5e40bbff2b400c180930508d0000009034b7587d8bb008360dd4da268628e54e028827ec4ab0eb07601890f247e8bff34ebaec8c23bb3112fdc7342ac8c39e79bc72377bf40909c2defb06c5df3bf928abe8e8cc758c6a49ed9bc8be39a827b1199061f212870f238c03d98eb903df36ff1bb41ac1756412dffda965bbd9bbc1199839f66042bba370a96bf42a42a88cebd48f28cc4e3a56055724b06cc92d0900000128000000908e0b114eb3e10fc23f096a4609b2622197ce3de9b430b4889da65136a37a90918aacc957a7b948789ed2a1d54772988c3e1c0126a2af3feff334e48c92360768c4d5815b9fe90da414cb768be27fed8a222b7bdebbbc800dc718b332b5e6fbd3044f979f24e793b5f0d1d250a9a9804711f051008fd44d36b9915a45aaaf45f43973c643c5ecff08d6ab1c501710ac4300000090a81e5275e7adab5899efedc5f9cc9f1c1ad18d1ab3109a981e6edf3f28f8f5c94af30dd0d967f5bf87aa204c67e4049908ac5f5342387dde6b2123066119867452eb3bc1392b15d9eb5853421b3842e50f3c1a18f8f91aeb746a2dd97d47022e0540796ae98e8b196f61d61df339da42253895df9f5575fc24416e3b36fce142c6361d7e00c118e5b67a15dcd45c3dfb0000012800000090fafd730ef37dd867dd28d0a395f2fa2dbd9ef7839c879ead19c26523b44f3e9e97f6eb2d670b9c1bd9e5082cfab4cfd796ceeeee8f8cf6b7d2919919456fb2fd57ceb87af342250a27a4e9765a9f0ddf211e82e5c8d39ecce90ea11f785d188e1e4684fc621297fa942d4150a447ff461f853e7f3daa205e10509b197c5841ad7ff18886bcf373c4314beae83fc4c1b500000090f36aff09645fdea0f2ff84ba3fd5185b792b91769a3d122a52e7e1ed2851c961083829315c24c0a71987b69b3de40c1434d1e7726d7c463a1aa9a1513c08f434797005e41465a41e40664cf6027bb36013465e99f05e165003e1240598a4a8b939314b74c592e23a8778230e5923154022807292f1253da4463f906b7a18f8f730f66bad1c864cba79699dac0f805be20000012800000090cfea606454e37ac1d74f741b44d978dff135c3ceb3ca93fbf27ea489e4e63dcd97de05db4ba2b3fc89bbb11c51c881af2d00c5feb0fff5052b66b3d91fc83f66cdcd99fcd214c71a3893a49b8dc1888a2fa9aaede00519d559b234dcc21649a4bfd17bba0d016fca889a80e7451208c31dcc12611b6e5e2a035e5fd6fda2ac28b6ba5887f4ccd1a99e534b57e67964140000009050874cd15380e8a8857c99fd2228b908afd3a55501585aa96636248ca4002172e24bb639b63c980edc7be2911e9058368887661596385d46116d884e198d77886a591345cca473f90b5e9cd03a7b35890fd29f500e823bb29896909ede12ee25e8ef0b8a498811f5a4d9348bdd5f64502b7c054fd9fa2c8474a8693150441bb5f1d8aa1e7833c1ad0925d60791c7bb0600000ce40000012800000090f68706640c49b89d76bce2e855c1cb6ed3c88bafca65e8e2c3c1318cf69026f5403162faca9effe0ad59dce88d803d15a55a2a50eed6838c194c499db466480873baa2cc492f6f07d45140ee7f92cbda168832ca89f0adee709631aa2edf3b2dc3eb6276b009f309e181eeff1160952c17a45aa4e317262067dfaa4d7caabff6a2d186441c12f0377b81e81e1b0c09cf00000090a98d2000036b63533f9d4d74802929ee5295e058aca5b4d9f3c717f4220555379f261771d83bb43a73fd2da49418d6ecab713734c84634be3ecadb5899bf3a1b1de489298c94bef282113d2a155a27d218f065d2225e4b45fd85d5b5577d0a1d4401dc39246fbdb11656a1a54db52b9d09963ffed95947449fe2d6606dcd941fe7331508c67e2dfec0cea736891491a30000012800000090a34788f05ec5464a5d160d224b94956dfdf2fe79a917dec1103db373a4edfcc35de3ed39587ba71b48db9b3cb6b588141e7a643c891b83bd282e4fadc98eff5938237885aa4f566a7f0f1c25495178d00d28efdf4840d821e9de9ab6902760eecb18718c70ef1d8f483742b5b5958eb5054b32d6baa3cf3c1dc0de02269112d73b6a9e097337b30fa8b8f79f5de754d600000090b700e46c79745e2c690ee72cf15e2479acae687cafc753f34117a31753856e84e8e551405cd88aaf38a415bcd3d907d734942f8863e905ff5f1b6e44d41a34e637d5922c54451e8dac9ebcaa2451ea3c0f0d23af28eff0f06210739fca63e6595f355b68c28e59d43905a9971b2e8ed806f05d846ac1a2b576f859e034b6dc7a2ab9735ba25dba270bbbeee354a1113a00000128000000909c2801cd886b2aeb8c9b3d05009b367857eedc0894b4201bd7b19e62487156b3f9c66fa9ed555e6d905267dfdb0c42c81553519b0657685dcc26d23e203e5a83b11c6469b20367146e0da01a52f8be7403c24621a210e1cfa4307ada7a3c0e566fb0db0205f22ae31f99dcdc6cb6da781edaf33a3e585c0f3f18ba8a50654f42d4e347680c2852b07e836ed926a4f2e10000009022d4632365df1c05c6bd6ff79a3a5834e96a6be12250e145ab3b220fd289776f046387750dc1eea9bda2d1b9ebe8a6998315cd4af34efabf8e9fbafaac66ed1f7336007bd32cdf3ce3f4536206533671119a68c327413f64c7938fd02c4cd172aedf8d9fee3290ee862dc9975240300e0d29b68b81648bc450915dea6acf2ad4e3cfe51c5c5a69dcff7bdd6bd6c5ad3c000001280000009055287120f5d0d90e546d33e0315b97b8daf0531dbb53e335744e3b6c71806bd0363cb3960038eae8e6a81a9ae82d6a5042645185977708ea215e74dbf5442fe75abdc1d63686a27e598d038b446d5d87120f5cc2d89f99ab486c22b498642d54b35bcd98f97d0505aac155d9f0999a600383d086caefdd02a0b61b0ec486c5715951c921a8860a925acacc3b6f09034b00000090a3ff7ecb284c46456ee2f1c848d23eb818b76348333978d2b9ad38e68f147e33c938a62955627b1d5c8bd7b3c833f49db6397e7dd6182c13fac83b16474c75e9250c66f2b33a4df056097bc85f82a1082de9575552c108f3be52d4627b6300ff4f0835cc59264bdc2e6ba76668c45c4d2cf2d4f6ec361d55a567500f7df25210bd0358b907127bbc2227e7dd6e11aedd00000128000000900768ae6cdcb2874623bd888dff2840c24c432962385936d4121fa1cbe25c729637ada228cf68bc4ba653a5eeec50457773de7f2f8c01354f4a8fad08c13b8a35483cd86f42dc2f8365d41e4aaef7b971101adf6bc962c4eb7ca8a75fc014000be505475d5486356f3ee6ed18780f3d040d35c34918cd7446abb9b29b42e1220c8c8ca606497230074065bc6f0c8ca1950000009043e49b9b9bf698ac5833b4f2c793381d24d783a88b05624c65fb40daf033cbdc4ed3396d1570e41d7b59c74c2dac8909c30dd82ada7298ab15bfdb468a28b7cb3625ab0359fff06a9176717882afdf8223f08bbbf3cf6846983e823e9aef041ebc500c3338cfb5fc13a59e771e971f130630cd2391f3a27d202363c5e6e45a238726e1daaaff38fa94ed911a71b5d91b0000012800000090866b39af31e948c8c79362a1da49e464cdb850ba83afda7225d9a17bce36cb5fac6b565feac9036fc5c7658b0b97b99ffb91f8347922b7fc2f02979f1c9e62cecf34f0be43a0167f34563601280ccdef2a682a3f66f9ea5ccf60753b2c5de48c2e93839ff3d9e4dc6435122bf64adc6d0dc8db9115597adda56af9aa5c2f55f143dd631420dfdbafe570fb4e3cae8ffc0000009009974f39a9c957b9e8ab9529a94a889d2707d2707bacaf091f1423c8849433f43a7342e9ad9e82962de035238f36622cb66de975ecf8f76be25d3992549f7701ff9489c79e192ad395498c562f32f51e27cd337800aab570910213c0cc07c29b6e6296880be5e5b2b3d07c69a69c89a003d9a76f7024fd5cd10e8348572a45f56b4e056f0f94ddb2dc6e05d4b776b88e000001280000009045cf7c5eacf9ba09e9c95d527d36bd3cadcd6dfd02a14fc7f02db04d4e7925a736135ba8ddee53fc573ae4421782065e59b78dc25c070f30611f09b4b129c82eeea7e22ca9ba38dd0246f400ae0a90501344db57c4164f32355a14b907a644e0d6ea8ff9a39d8c43469d3293df34e78a02c7d55f2ba3fc81edd5204358b03689176373fdd485eec5568dc09bbfabf03c00000090b31aa46739d14c827c83db8165832e99eb6ed140e4370c82bab3691e40d4b27bf6244d1f2f0fe3c4cfe48811d6ac3f2682f0163ae2aa135e88cc03d57b6a57c47becb22dfe5aa098912f6c32925644d10e8c3ad291297b05fa7a7cc8d14b07b02c82f733853fb5d67fee3b82bb69d23e2cffc279850d00197dd519f1069f520453ee19aafc60be0f24dcc0d2ef29fb650000012800000090ab69617446f4e8a101fb6dae0891e546fb3626941dca4b6a6f1cd8bf3d4eb6c5d24446030eb2d3464f1a1b2be55e229743acd3af5ee14736e9754db2b6a71a25c28ec87cf91f4aafa69ae1de25c38f730b13031c49ef76cca0c031ea608feb8b96fd2964b2794e578600d9fac6cdeb490883befc85a8bcfd25a5c4058a32a1b4c0dd777011f9d279649c79ed3297e3c100000090ea285c344ebda47e95fdba0c8a4f21c0deaecd429062fb8512a93f5b1798946bc11dac47a8d02e83f24c018da7c78e5ec75ab7c50d4bf07c8f751b33c93c47993b204aa5893b18275357ad4f4f275a5405b63c3763b9014034b24d6bf060362e59049ad69149832b6f41d1529ce547f12d11e988aff6d6a9cda613ae822f96862277bd67a70c7eaa8ec843d405e3c33500000128000000907b1e4391fa6826662c470af0269440928d964230d61af0e35efa58badfdbd7b9fe1c04c3aad996ce1211a368bfd2704138945a75d973560c10c04aaa07b876af3d0b4cec2852087624214492393a2efc2b125b26233c7934dcafb79c15bb6ec8547e9babbed53d81dd1b343d560ad9ca08f265b3387ff63b4248905d2ac7f34a426f7887417ae4a97b8c98ac69c2dfba0000009010384017a94cf281dde3657960b5b555386cb32a2861b95c5c98855f835d66d42cfa189a5a8869477f4cdf2dbd9a47c9dcf60aeabcdd91fcb155aef06ffed98c98d21921a554ceece46e2b4d7deca6432aa3f29968496aa0152dcaec602a0414a1c41e4dc20427551a6377f15c9db1c6186cf38fb7c558d31ef4d7101aa760376d9f7cecb8333555c53944b697c407960000012800000090150a4d398d44c85eb2192fbd0e1eb57799212de34824f75b620634383703b0e5ae5e8c6124fa58695f1a7cea166da23520df2c44dd29395112b956dc7ee818266826fe09bbb0d91e4d36a8c68784d969274b652769a541a0d315f0ff9d3c2c940b42b80edd8b827aca183c2926edc1cc10dd5bcdcce73c40f6ad11f4961d2ce95b0361d9d42f8dd063765070bd6e36f40000009010cf6c733850623c150d632c84725455b338295678fe05d0aba28466d576982520bac1197bcfc443b533faa7c18c300e3fb0f8161dd8b8055bb2e920a1ec299384fd60a7677dc9bf56718f9d160761bf1d1e8e9bff9eebd56b1e42a60267356e5095fd9a69add763c505ade6ab99fa1c0156380b913f1866879ff497155eec58267df7a528a7174a28c11c84eeb6b04500000128000000906d8b7b1a9461943b5118b2fc1a706d871931069a321e78b6a8f69052c6d9f8cc935b6dc8a8af94caae89457d97c7948c25f21ffcc922aae712292da420bd7fb2978e1255babe6bd4d27a1110544de2fc0906ac04b08ddc482d88ddabbc10f019db28b2ad1b23a9fb515c32efae33623b1743fa96d1fa6b86fd2051068776f64c6938c4800c70f3e36bffde7434a66af9000000905a9ef16db860856dc5ed1552d9fbf3b5516e5f3eb4820774863d45a6b01d4f35a6900ffb4f9b2a51731d22ea807b7e94fed61c98d8b5caaa1309598532bb9f3bd7a73b302c6773c69fe6cb9ab8f056990978ea5483f968603748b3097b5e0551ef6b06ddcb4123a32bda9dec0c9ab8461855050450bfe19b2f836127563b14374b090b3d0f5a4f24c9cd1a853a6eb5e700000ce40000012800000090eaa98380bac812c5965243449a6205d824084b18f4614e2467fbc9123c19eddc120fa1ae624d36e492bcc11590e739201d6a9538c7496d11583c8807e86fae81b7a9ccc0b5f257496c263febd113fbdb2293f7d4c8fd1a30c7a6944025432563bf98ae676b310a43347689e2bbd3067910e4d88b31609b3768f008945fca2cb5221bb87b8d30e1d16e0caaf0357430e600000090f4d6e9a62bc14c1e9cd9ccf8f604bd9a92481425b5cb00b3586f6d92b5c0bab0dd34a5354dd9c201c5bb7d680447d4fec152656c734fcf839802d1b443ad2d81f271e0d3474d78b56c397270a31ad8900dc0aa32d3b07bd825d6523b4ffdae487ca7f2238b0d794bb17d62c4d92ae94f031e69786f7e393eedcaedde54bc4b34852b97163525b813feb995de9e6f3fa8000001280000009039f4ffdb6e64218f76e800def294851a699d6ff96550a63b4d525d014b6d17c1488757e76e77da807dd2944cbecbe6fc1f517d49a6c6b8ffb475b8b47b046704b7542f98226c8510bd477977696f01eb2bc53085a65604394130d8afbc973d91fde88a1edd23a493b9f499e0f2d1e6d51705fc085bf7b521c97eec831d5a52b5bc8dae5f68cbf528b05c2a0bf497cd960000009049c7b8b63e3e8d133c6270865b1c3da678ab77a2de6d3d1fdd4dc8086e3b2e7c1c8644d7a9fbe79a4011375b5f4edfc71c51e0d08e6cb0273f9217e542e237d334ef4fcb57120f35f7155b014e5424a10212a48b207d9f3db1982d7af64b40a363de967200168e550cdde2ac759d97bf2f72b243e41964ec339f108c3252e2d6b387b92f6597f9956dc741e6cc45fcaf00000128000000907126a2fc23c6f6f8843520f1cd55ba823d729a1e4f2b8de9c9f2443629c7d459fff1ef5088c90d178584e6b6c6ee55c1fa2d4d4fdb0b4212280d742b38b335858edf0ff990e9dd44053594ebd3a9097415550811c6ccffcddf5194f097795a03577e80a7d974c0b2e6dcc5362ab172320c26e4d02df8b59b54ddbaa546cc7a681641982efb9c90afafb2a3c8d1f05db10000009034a7dc313908628c8483d1130f9ef81d50598cc8230ed0e09bda33d77d804bf5a702456af0e75b8a795f33cfe1d142f9be4930ed268983266e5e0c12c2fbac46c6ea9a20c9e9dd8300dc5b9d624811b70e78f6f7623639d843c8eb26c2a5d06a6e6867c3e0002aa6fa4c54ce4d8ffb620b1eb037d73cb3c09965f5157e5f2fc163da01702d6832d9234016a38d3239eb000001280000009022616129b9800cab030ed60a2007785756df743af8fcb6fceec43b779124bc9e431212a28ef87827a937c94baaeaff97bd3a5f6d10f4746b3270a143fea2e8848ad2fdea8a9a2af6b4c7e787f34ce2d615684db3113f0669b2abc78370332aaebcaec4f322e8194ed3fddaa3684723f721aaf2061e34d7a5a01254d0ee606457869fcaaad0e72ce63a18faabc76e98c10000009033fb3ca47d881a18d7c2b723761ba01f13ce3a3d73efe75282d8e71ea929bcef784ebdbff93f2d61febe271d3f19a7d78d7d8b5c39f3fe9c7c2825d1a8b0a36083e7bfe60394c95fe999a6eeab4c8eb21e588ca6c3647100ffa622afee45c6c96f0c42317657934a76f99020fb262e78151836bcb43effb2413ee501f8d558b8ec3e2795cd9b76b97f57516641f1c4660000012800000090fd4f4eb40f0b8db8495d7b9d0069291ad89eaa0693567f479661cd978fe793a2e6c0417a6997bb670a47233534d2ed5d8e476b47a598c67e9e9ac9b6f3ff7aa23474c8bbec472465ab78313947b2e5a716619563c4ee05ae41b13aa632f58e71a55ebb83c67d7254850b009fd50a12260bb99ae434d8d2df2f2e4dc427d7d2464ee80b4615f52f19cd248acee583c8030000009068eff9d90d3a8ca6fc7124158b83ac7f75754dc515363f6db452967ec72e381153bcece655c8948baf6448eeda4e967d446a07f0c5aacfaaa229ce8c631b5a9887b4e1e18fd74ac47558d4917c3e06e22e5ffe8160154e24ba6705254acf7c808a508f1dde35e75dc4f00af21e98073e0f3b7c842bc29bc9bbeb81044facd0900f3601a7ca78c48fde3e43b03956632200000128000000903e001bc092581a5b5e06e1aee39846c369d3255f2320e17944755c69c1173f999919888efc2c3fbdab4fccc9c06ec0c40a609dcda19b7a87f5dc8aeeb638de15386f4ccdcdb4e5f129bf0c53dc0988f22c95c23270e52147fb2575e47d9786a47ede4a1c059abe303a05405c2aecce46110aefacebe4e00f5d2b0d8506a405b9927e37c18935d4573c799b2ef812ad8b00000090a9555388e14c6ab1ce7abe2e7daebb1cafc28202fdd81e5bbc4f0e5b0ad1dd28d1f099feaea93e32cad2c35f5574c0948f99ac5e537c868b2506c4fdb3bf0bd441f02d1cb7eeddf3ace554a0411aff63163619ed80d2a84bc56f0f202e6749328ce4cdabf66e71e17672a3f416dd1d1f17a103e75479e4c39f53047d5b6c2b781e1011835bb8b127e933e86474ab1ce400000128000000905cfebe5d529f95e0fe8504f40cbd6255cbf2bb21badef24a746b0e6d460cf14fd23bb265a67d6f021704c4c7a439205b218c9e524742191cc1c9846d9fb2575b5fbbcd2e3bfc64e45e35460b6accdcbd0904ac5784041694424f4ed0394e1d56277645172aefa91fb0df1aba5c9806720aead3b891b7a31e9853c0d4c9c895abd3ad881a6850573a12d0d099cb86a49c000000907d0bb090d824de262e766dcf249879a984398fb20f08d85c3ab3b2352f7656d1a02d5b6a6544f6f9779d6efdc3c47e2d873722f17f34ede8a8be4ad7d3e849f78f57e93948330e2c1b0ddd3aaedddd152205982bf11f1efefd3bb9d395d401a888ee58fa29217252ff3b995e4f603435032f3ce93524a572bd52ac39b817207b33114a2677285ebac425da12ba8b66f400000128000000909989a961ebea763228462ff2632c95c5222a35dca1e15f7f3a098f306ffa51a6bd1d2ff8f9354325766243ffb61cd97c6b349b14eff90fa4681ff4dd966f712cf1f14a5cd56e85cc33b22544521096371d428d6dae7283f47c2fe0515c563803f6060054f0b18170a00246f9dfc0a7461d4ed1a4fc1f09eef91e38117851915201d1dcccba8bb49b599cc421973ee75500000090e8bf4c38bfe85fab095512268ad8936dd4ed63f8f744a926a714cb6a4489d601bba6879dc4445316bb12e69aadb63d15810384dbcf8724b5b0243f1c4c39b922af990922e5563cd90d449ff4d07208380b30d93e1ff5f2b84d1396ec7714a3d4eec026e4df9d2411de05a4b35487060c2da43796603247d5c91e936311fe15a08365a33a57898ac70dfabb55965d72ef0000012800000090ccdec7b99705037a1b7b382b011afd9dd8e92339d96f094bb5ac211ccb25b10e0e5000fd7141ffc0a0372e0d7dc5837924134828c682fe55cd6a1b49d8863a717e89f9ce02fc5f5a242d310999b4cb7b1a884a1e47d0e516215d724643c09a2edf14bc451bdea3e8c15a2c92186b59c01bcb357dde64ef51689b70b04c822b6f255ac3d59bd4000470796c8321d11ac0000000908254cf2d43e1954a2153c19ea8dbe684da575471258a201216ee89b6e9a73fbb8e9e42c31570a85e6ce8e34617d2f13529db0e8fc2eb4b382c9245650049e21f4c5817bc5c1a8740e487a71fdc7f5d642cd57057822853d3b9930ecda53bc023e91ec10b975737bcd521484a03051dc61bd9802854648a70372d417e6b3fb59d2401e19bb80296c30b416b02216a2f45000001280000009060e7384d72e95c6067c890048481720f18cb94b94964c972c4031aaaf20cd444f5ce421d42c3a703e08f667a158e89a14824f35a29521138ed605f3c5d18a5bb5bb4388de21145b70843b502d110b4ac100486c8f93d53072578f3f3945a2327e91f85092d094dab725f214e430439ea10a782c9f907ba9adf47a1ce1e6fcc0ae289065dd0db4648df5950c8ef0c054f000000908fd21b3f160e4c36c283dcf9899050c7c87619027ed38f322b6d6a80e53d3cb346798a80ca319f13f3cc57d3a64fafb7fbd238c7a40ec78a22340e6c5a3ed878c1786220f8509745f245db2ba530123908f57276f09c4b3c05147d9928898790588aae3bb822e3b62679e5bb1f1331da1ab4a52358010ace984d4c53d190d1dcd5b8aee3c01e851df62c5700531217f900000128000000908716562d9b07509540250502da1eafb0147023cfacc85730546524888e9fda4adc3e1c01fe7179c775c569beece30e23da2442b83d0b1181dc80fe1c5d5528dbecf7bb6e22a1d52377f6b7288adbecd912dcd491d000ef35ca29e160d17afc0144de84985a6deb2f9cda06620c09de3a2619769656f764783a6b4909883441f29255769440c51ca922507991b413376f00000090df72eb574937a11b27cbf96a97d9abd807dbc3a5362a705af2f23d3d1b279ff68ed4430066ffab9136226764f92c4bc2fe0d657f92bd415a08e46ed7650d80a4353d2832a71ca2b27f96d84e0af31f370b98ff04cf989c39c3036947db6efa6fcbc88850bfd17da03be4abb5d2ad26f41b3d78198622b260a14bb0ebcff790adc5f3189c61d8f947f25cf24e920b75a000000ce400000128000000906a79dac1b04a0d18300d242c4bc6f41f23c97f15ea1ce8db45bafe6241635f53abdb7e7dfd13e3218b8a915edf66b1dff0a92824a1c4f912292d8dfcb232260797ccb7a9f3847e8e233ad15d3cb41ffa2c45de74d571659083213b4acb57d18c8d0975a95cafc5e60522fe4ada63a3502eeb74c6594167fab4659e9673965885354085ce6560f5504e3d5845c0b6fe8800000090a19da5fc8623293d667c5eed3ac6aa8f2cbd5e9be8d7820807dcea2cbc7dedc90e6765716f4200d1cb4b667882df78deaf87a7551bdd149c4f0da49c30ccee56951d6274475e5747d60720f8b378afb019da31138fdf91a01164bd2d1408937346de32f7b515df534b11280a57da99621cb680055a92f6f35ca19ae5098bde7778b9b25ea15711dcf540a53fea047ddb000001280000009020e294a163a47d41849bc43ca48510a376237e02789ac6198dd0869925a8e69835ea8f69362860ad33e09ab7e45c6b329a31227ba9f52c32da0a62ee747c82f83950110a088ef0ed443d2b09cfade6dd1215ee931fde4bdccc031969262f078565bcfa9d672e65bcc3a187274966cb0203bd40abfc59e054565fff275c3de8f2652afd4925d192494e6def8fe025b43e0000009031ea5f55650cd551140e95a5d197d474b7e328e2f334c351832944a1d97f2f00e82c3aed263c1241919427b8689966c789dcb14e6965740d828454b111f5d33dcbb567cb48c0202883bd82e79828553c2c4b4130c81e3ef71d5f5862abc872b96c26b91198391140e2dacd744a22221b1f8b89a4d08a06bc04fb41db02775b235aa1dae989e9ff8be2a85f21ab212c5a000001280000009025bff79707a5eacd148e6bc0f32a78335f8a208b9e26570e45acb1152454ed0ac8022b2683b0131d08053bb8d5cd7319e1e385bfd3730b9c90aa72b322832d63c23a1cb97c3186f66089c330277868e60855b74bc341845a97eba448a28a355f6b27ea09b134ba259a5472ba53ff9f7d06dc861160094a0b7f4193530c4b69d329ae9797e22a6d47fa8b398f447ed18a00000090e17fc76cff9a3cbf6884f32629fc1179322368f08aeaca5898f5d42a8c0a9abdba456e54161fbe1674b3262a8076c3ce3f37ed98aa1a9ccbe56327e99798a6f5441f9c066283c6afd022be77e2161e3d29aef17a0bd6bab2fc890cfca94281494c15068e06a4299b1a3a1aada324e48b1b773b7cadafd56c2a3a33e80dc3552dfd8debeb3a87fc4865b3e6820f3e4ffb0000012800000090aead4a44b0e13d77603d12a65b0c7bf987e31ae980a51680a470577a5707325878644f037410adf5bae48469f8e41b20f9d2133188ba4b69be65a08b07516071afca21f1d04f01698c7327320076df1a2a8da0f9c12ff7665b6a2628c739445754565b8bb2faa1a78c082a920dfb4b68083d17fbd483c23fca8e77c016ffa1ce84ad8d4a014b2d6fb09cab59b5c2343b000000905ca798d325828ad18b9c18d93050c011128744a15807bcaf63b19a1156a98e9747b50a49768a529f96f0a555df25bdb8cf19f815a6bc2cef82f741623f977864ce84c2b72f952bd3f3db4889c1896a29297e73cb1de7e13ab3275bdd5d0d7ff830a99fa1704e0b22c3c9df813801c9202701b7bb0af2ec955f81ecf0b562bc6efe35225c354545c1b43c3b5e2a68d56200000128000000903d24667437bed25cdeb31c2115005bfa41c6f6e7d92b124e7f1871712fe5e7e6d3b684dac172e3b7bc01e65ef936098ae5a2e15da3707d69ff6b7124621a715f252050410c4119b2152f375f48cf432617702fe4677a41e5ce981737f04b916497649eb9e7013952812362b3716141b5283f28b6a16d078c497047d78cfa862fa9b2089f634b32c6947468bc66e7f5b50000009087dbd1f9de2264e5999b5970735e37571b18fc731df23f7bd93f37f556d6db554d44acc52f2a6e4594e1a2b0fc8eec5865cc585ece4e4095490e5b137548b5634d574fef60e9cc51a2ab7ed451f5c1fa1ed22bf011fff9ba947ed54ac5628496a7c6752ea8e507ce40d793691c2330201634f8d4a06ec93721ac04ae82080d9dcd4c630e3f34f518cbd29d2f63f5ab0700000128000000901ce609e5f5b00c6026bd02058b3df8960dd555c122bf7ce576ca858b3846695e7cf8b28ceb0b79cc0ebe4a4a3e508531f69868308a4e538a57bb6b8810bb336ade807f3631519034ac8eeb83d598dd810cd153fca57a12477a5aa91fdf6f82ff32c86958cc08f69ec0dfe5d3d924d85501a55913b44026f39f88fd72204d76e9b1903cda9b69e8fc201f3a6ac035522d00000090e6e7185316bc794aa33e76d646ac93f636e659ae63457b4d2f7a13f009e3cfafbb258a8eaac8e39f45bb62dd5f3805fdddfd71fa86999372e0f82a06017045b27baffe285ef228cd627f2324adad160d0fcc9da97316bcc112f73afcac8f82ee16d693f45256d75a1ff4f2ff87eef5281c77a9d8e64ae1a4e5cd6bfd6f984436c5428fe749cf05061d3cdfcda7d76b55000001280000009031066ec34e193b0e9f520433a47c85e03cc5cd6663e22e8b860305ab3b5ea1a2db74f076c989df24fb6a2ef238a80be3dac4f8de6f01daba28ddb3063924e14bf0abf184d57418239e9c974ec45aba6104393b5eb30ed7b59ec6310faf5346fb3fdae1182fc06461eb700a878bd251841bcab22aded2bc58ce36af92bdac9536c3ad0619c0715877fc574802b31ef47c0000009092e80a10598fb4c692fd7cf3c393c138897609cc1a7e6d39c496a7a3d29c4bee078b4992a67d6a2e3202423eca0bf163a21f45394856f9df574cdcf7b589386c33cfe2fc5a9bde527466679c9b64860e0963bc3c3c84af1602ebbac3ee6ac719e9c0f48296a5a04fd6a6ee7991591a3c1800244823f2bf812dc10338bc5b92f535a4fd4964a5933864912937b0918f7f0000012800000090451a7194de5bacd358431758fe82bed36a3410f524950092e1ea797bf1d27133c986bdf9eddf9928e289bb3c8b1076cd8461bf7d4d985c9222e3e579038018a86b77e0867eba3b6179ea0a2f0f34b2ce2af049eeb5b432b20d21131b7357bca79623b2c1cc46617e6b35fa06f27e6daa13879d8479a9d96b03ae2cc73621c9734f1dc2e98cefcbb082cb5459951290900000009033d0eca61f979895aa98755a8585be234d68d7643e076ee34dc028517db598cd7c1d719bc70e4b28e82335b87b82c72de9a05b9c0c5da7180dd3cc1a6416d8e7db6063fbde227f471b798516148a6f40078820fb9b7b84be1c8edb017e2c1e132ec2c13ee81c9555e1179e815816428e0a2a070777db1f9f863eca3b3b1e0f396448d24192af88d164be44d96213b7690000012800000090aad733e80575e8f697c0f380ec2b61abd5c8463e74571daae44d9b5ec44dc5db3a36a8f3c1c681d341f60523315a9d1c2b82a9124c88565622b6ff07fbe31b18c68a8f9da8384d966b4aa6b5a84c6e4b2db60b9f1b4d707feaa399981c962c93a08369ff37fe340c0f49345441d1bb58294e7b59cee5cb88ef24b5423c4c59667f2e33c08d599673d8b4efc6bfb6f8ba00000090975d9a22f24af1a7d41e323ec33e398472d42a54fd376f370e39d89a5063429b5feba0bb1c62cf951251e413666f374f034469a78c34e3ec9fa4606e7eb9c08a26be813860d440222e2d49e61da0b46610fe22c2689a83aba6f0ba759bfa0d1c735e7651b4c7f7f8907864f9a09402520805c784da08949d0f7dc667880669ddb5405ccfb7013c73c6e3b08461909d2400000128000000903f364b651558359ee11ed7840bc2b8b1cf5b978a381edcf3112ac1ec2938708755808958b8d0ca03abc96f1d29c8189e78e5ffb072baa3bc988ff560a3898835e489e9ac3e0a8726f8df183022e75d7c2c7efec4fb45f06597fe1cdc2256887b0b4fc8954530ae2b5b88939390a542a82051a38587e08f6acfbe3e3f449b76a4ed1b9e3aa411ab7b5f5016ab6d571fc0000000908101b9fe4cae52542053c7d88eecb0d51c74b156463d3e1494ecb46e427f52e3cea3c55cb4d451a6a0c54ef212463fb93a91131225f99dc3e253b0fb02bb77356b54d8cf87275cdf85f42e4a9b4338cd296d71d905516b72cf06708b74bd0d9d608e3fba3beeed1cb4adba0377bf67fa1ebc9daa595cfa1462a537017acf7d6aa6b487c2af710234abe361596084c7f50000012800000090321832e394d3b0047b40780f88daf18642a0f697166f9f2cd5c61398dfd0f413fe82a4834dc78e0d95dcb4652d31beaa3f5606e690161ff63bf8130c64b69606f096e147a9cbb03e9df9ac69fb22d0842d6774bd8c1ac41adb983737bce65a355d2805057375da80bf6e31ecf91944bb0fd6f47e978f00d2de3cc4cb77dacd80489d72ebbb123b2ccec4c9f4014f5b3800000090aff1c84287775f5ae5758cb49cc2d02f70b6ec574786b362983bf775d7884f60367ca173f010eddb05ab8755569f3bf8cd4b5bfdcecca0eff1f736260070e97d38a0bd8f46c3208a813f8e8a127f5ab9139506c469b46f02045462b3143d4af14664659d011ff0800e940cb6e78275380163b73117d46f38e72ff364edc77e1b5d8390d6630a1019c108ab91275752ed", - "calldataHash": "0x2ecef12d484fe78e41e47ec27a8d2d29c48a9b810aa0391ef1bd11c522eb5ab9", + "archive": "0x2f3fb377fd6181826fcbfda86813263509bceeeb8c606e61a03386a5bb6d0be1", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000907c1b3a08a2cb8683fcf76e45ae9de5c9d696408c53a9939f5064e661500cac4a2964e0e00a2d6c71f958321068266a0ad7706eac1a5183572be5c3d53ba45ff1734d012091c1faa4caf66c00b6a0b4252ba53f2ae331779ec2b332e67f3b10a097f4c74d6bbcc69fabdbfc1a07956b820a762eec034f3519c6615c7ab60a150c811c029efe9b594f2412a29b64105003000000906bab5e23dbfe7a7696c7090aff4201627797929ea89bec9d6a17ec930fbf0f3d42708d82717dd5dbba0e06b724470f6a9ecf06918af478b4d92ba01a3bf5cc97e531181c10128934d4f2a58760f863381de408544e4b35200214e5bfbb7d191f689934289a36948459656b72b025f2590cf71cfd94c6c0b479f85ae74bab0f42384de7051fa4405e3e1663e0cadec48e00000090b9d3e39d91ad008916bef1383e0a7a18314b2b778569b1bc650be76cbaa70defca5db3dba7234ee8c0c1ae77caadbe6e4d44aefc9016a6ebcb43a30ef76e614ef6072bbf1282ac465c0a7d8f1ad081c523aa58f64bb496593f493c5e18084cbc343f9cce765f11cebbb9f08aa524aaa0107fbe4f10f8fc4d5ebd6f34cc5b6a718b93b35c3cb971b033d51dbf3d71a1e0000001bc00000090d65b1026d291257fb639ab3bd2bef618b0b48a8a0011f78b66ef61da931d3e98d7476e5b783cd04fd256c2ee48e50e6609423babd46f0d4128e062251f200f5efebd8874fbe9803428ace9441ad6be73024d04270212a21b1e315671fd50cecf657008784a40e6a945d0c9933b0b751e0e4270bdf3d96f5660bc332deb55c1d69efee98575540775b0bfeb1795ab0b6800000090c428df8558124ebad08202b4e9df93e9aba73daf792c1c5778d7db24eae062d1f96e40068f382c241371fe92222fe65d6079aef71144a6b5200b640fda76576707df17436b91e16e3702b234bc3b5db2148e9b10bde68adae03ec7397db66e9f38d9b6dad770ed9a4cedd10af990193d010d7ee63c3673e7d19a1a86c85b812a77a27960a061d34b6d3603e9be4fd68b000000900dd0a2f23deaec926322cf81653b6af17ba64cf0771512f67cc6254d5b2655c57ff8bb485ea8b7800db96eae65f0a7c88bfc2106b9bf899dad80284afef5030402d374526f89145f851b824fb54289e50964cc0cfa74628f766fc485bd77b2fd8d991243ca4df56a0d2961c62bcfc8b0143b56669c4243ba4b8a1b23eb6d47baa02a5018715df1ba04c901c8c8bd0177000001bc00000090a90243f2ec68e4f6e6b21048876e4a1312cdb3af73a5cfc0dbcc269d26985fa2055897a67459ebb74f3ac45aa0d6ff3f63dcb9e71f0884497c858f0ae15cca019fe6e93e9baafcaf945bd069a3a5c98e0865700131bef16cc4c47e389f5e0f8c5222696be1a1c09029c7e1ddcf643fa617304820537e972a15547cd43dbc826304a85d5a9fdd345f4033f326fd8b317e00000090a6f785621cd1f8bd394ce02ecd3bf72e1652b7dac8434e0f36be19f5067923427af900b9d89d75e0693d121c4ee41ea5c7b3c3768c2aec19c6db0476c0290e50028b11d31ae04ecd702125a29fd857db05a3826a0ce0a9d720f46e24e33f95c1ffc966b90a1d2d83c7ae9f28e538cacf0cec4bf0ef40d262f77360406230b9456a7c14321fac15cd4dbeaac0672954d500000090ced89c13be6d034f1f3ed73c871c41bf79e2b6f9c03652ea3562484101d06c0fe592debbdea9ff08a4a8e242c3e31b3a39b0b503bcc29f1f3da8c90fad9240b701258f7cd3dc750418cdb045d6f89070259677559b050bf6652a4b3c88edfd90a208d80286a3a627432fbe2bca3d07e5196c31f8e14d2443ed9eb8a12ccf2f2d3f90af296c346adf5e874042f50b8e58000001bc0000009036b8114db5d25a74f20c28ec8fa372279d3de9bf48e22a1466a0e02283af96257e863f638359ea3f4d5626af79ffb9c3755f0201f31deeb9082c5d4bf708589e66edf6386bc795ba50d50a23daee25eb1492ce5b5ea7bc5b2692bce3fcc4d75ce59f4ff60a1925b26288230a41a085d7192a0d71649842bfd019e17062a1b606dd09abbaad2ca4f2d8e19c591583814900000090f448cf92adc1a09fe6a43d3532627994990b9eb5aaa76a43d547045d73c4311a476773a0642db295b91823296cc8eebedf1c9fd738e612e2c07b2b5770618e696f6c4f97e6714ace745c013e68ea1a7317b03ca9059b14736059b181ea3d2d4b35b02525ce4127e892259748c01a81912e694361b8f22c0484b545ec4e2bae6b6b9a04727ccfc5976597374e891ff50e00000090a422ede5cb0a1ee27d05be320b90bcadcaf47b31ff2723625145666809a67f3c2757ee3d5e56ec08fcea4ccf9cd345e2281dd362935cc246680a3115f8b9df3301c3b1e9b8c6a8eb2cb869f8e029b8462a2cbd9f5b38a69ceaedb87e7777e8edcc0c6bdeee33ef17b3fc5dd8d74fb097010b54bc3509deef732f49927ca924a212fa97c5ae076dd285e9f5001bb3755b000001bc000000902388e4f77b866464924fb5d3eb9bb1f4cf8aeee2327dbb5ca6c94d7469a8a4cf955d66341ca63cd8b74b1b81c87fe727cc79d4c52dfc33b8336a6ab5e88e5460d3fea2d8af8ef176c91ee898a1ea3b501af82247408797c0e1b3d309a271ad98109038e1fd88da421de1be702af1c94a2868d845580151b770a3af1ab2ba4ffa38e4696d1174792ceb8169c0e3a40d3f00000090eb7def151cd9a4004475ad0ce963e7e34cc75ddc8689fb9466c4e9ced59197dc3fb3c25a43fa9c62bba236f989e38bfcdef819eba5dcf89d17f6c4025beba3f988497c0b9639b765867338d4b096dc811f1f35b19829cea2a0999d2bcb28db6d3204ed4b7acde9785129e72af98439d31035fe030458a481ce33a27dff24a1ae4796b041643c0c80afcccb1b03e9916e000000906968b696d07368fb5400ea065d9602b3043800c1440c79689952ffd7797d5c614568420845cbc63e9d741e1f5fffa1d9851d30c01c29b1927611f795cf88d2237e7d4ec9037aa9d0d2bfcaf4b5a9355c0c8e9cf86b1c2957799bed4517fd6e7678a52789de5e7d7bbc50b1c4819f7d452f2d0fa9ab1862b6e086fdaf8870a4b1a0720cc10f545d8b1a80d2f7bbd4a03f000001bc00000090c66e589493203da5dc904131056f39a754308b74116ab5ff61fbe83ec2eaf2029b6b617bdae1462ac1c00ce5411ec65c0c5234d7def6a7e8ad98a15b73e2a9c02f50fcb32dc91952a1256a7c0cfe7f9821e175d48758ac9aba3cdca31f3c6fcaa0c616c8fd0736a1930ef29ec83d40c800e48f95794a82dc3f8ea3fd2a823bfb297e541d1b88783cbb52046a5c0f562300000090768193236ad2763b5873968cf429dd9904fbd0e566984a93df8d19b31fa6c7d97b685669fa571770d1104e49deae20e878a40c0836bdb779b82935926c6fbdd1d0a5a0313eee67f020ece80df5e81dc42246e9f9a36c8515a4d80eabc793bcbbefcd84bf5d10711f35971580e81c41280037c6d6da5cfa8c3eed023f32d55c48d0d4294ad7c030781aff4f77b94fcfea00000090c912532e7c09e0a8dab5f7a0c0e3f8364025505f36dd512d2ba05909f99b04cfddfeef1175f65eeaec313c4eae48323611d7b40b7f52bcb507d0c4c80563c66bf52949b1496b5fbb65265a62e7b6843f02e21de4e1dda3aead13660ee9e5b2cb5aa9e614f2bc9c086a0eed7cbaa710b42edf80e0159819eaaf21d15dcfd2f94efeb9525fa6a0f99828876e91682585b1000001bc00000090ef1b83a2fe15a224b3cb05418b3497e13856d86ec0def188a4cf0ced86edae1002081453f26b97ac1691c20788d6c4746f19f06e29c5b23b0e887777b6e30208971d0f2cbd0ed8d91521f4a3c7045e34076df337e47e9fa507516ef13f03ada0c285b92fb61d70e9a0db40d3e163c45e2ee3a7b9f4f6ca902e3a7e98f18b0299031970689089bb5f21c08d2fc94603da000000903b62fbc69c73bfbb0c0443bcf4624f807b1ef4acec60db08a8bccef7f0833e1944cd2ee8644678af13f82e7014c4c728d36bc689b93d5856cd21d4c005bae82d726d64da49fb830601b511e9cef791b62e54ec2d95817842163e2f417ff9cada18ffce9e4588208fecc05500ad078f09057b40278ee50de377d0a121b23a928ecf36c42d1e609261fd79c6c853cf304000000090570872564617956e481624ece8f9f8fa7bc63eba53e28fe4c3c06dc594cb0672e9530b3214c8983cafe960bc97fa3536e3ef44132d8721b793efedb3a17578de05a354348a2c25e83357c4682a39df3206d44fc44579a5ca0920f4196fe08e2d00377513e7ed4145e51de3836faaaa4e181002382bf3915f558af58266a43b2801a97c127dbc10b2840c2e0df5949bac000001bc0000009094212cd20c5afb93ea77dc91e6ad2ecd5dd55ea4e8e7de7ce66c2f7d496f9af69d07f2ffa402f093d6bd3c2d5d246c7763de341e81e5b654b1c29714e79b02ed8aabce6892903ec40e05e0bdac20c8c2237a47816a3cdc1fc64fb4052c9192e2493e19c8a6f2c639aec710ef74b5ad2727850860db08e994d6dadc8f773a7487cc99b29f65b78e76874842e18c59cbc100000090d22273ab92a64992204949d374718bce467241f4eaba3dd635a3b03469b2cbec16e5c37e80258e9b1985cb4675450f19dc8c2b3c3576da96c4ce51a08aa4e3bb3c8015777e3300fe7e2eeb1f57b8675f01a998d4256eb12fbacf0157cab4dbb9f4ccc9d15d5786f2c14d5b453cad59a828312c4bde964f8bf3224a34d5da9c65652b754d3e9db14d985923114c3ae8a70000009016e64044ce8bc509083bb3a8bbd4546a349850ac8c4c2a4e3c1f2b6bb12f46a2069c4bc6fcf80e208fded4592feef5da5448609bec68fbf7e1314b3eb76e5cde198af34a03a051e92b586452758582a11ccdf709902a39cc8940dc42e3ef4e0afc2ad07b53337028ac9dca172b7f475421b2eff3b6c4da731453539197b2d016903d4d1ff7361ad5c5c2fc35ecdc6a2000000e00000001bc000000908f5f5305fbf3044e058b0694519238796f9e67dcc6927252965c4792d1642bfd740e05eccc60eeaa8e4a5b6a085385b2947b7e9f0ef5de46869ad4136e88fbf07123f9570b54623787cefc24533b49ac0e01c777811bd9cac13a289698765bcdf90d8e965689cef3e2faee319c3eb9cc1242762410d2041e045715375e0e060dd857fb744e324b653250e850ff35845b000000906ed36c1c9b2d8c7c394f5c0024cb8510f8558c17d6c83111ee0d4077bb0fc10033c45319684f00450424e3d77369f15eec6a65156daf316522cf5795f0d21c326640da47834e04eb9987af73772f864027aea09f7d3a5e79d39ac7e44f7e2a83ddc472d7ad4d6ac4cd2b235e660eef9115773b7394dcd03632821701533dda5be844f897845e7781985fb961279153f5000000901d10a151dd0b0aa3b5b8d6463174260fdcf462d9a53031d828c4a6e2268c05500373e6a19654b0196fad986d4a1a5fb508596b86081143487d11a8914c16c8a3be4b5ff912f227619cbcd5f0fa9bb3472d659391f8ab820070814fdf2008597dc2feb5a180ff856cd705506219e6ae8512684f4a8fbc073f5cd556bdc28b514a728ad6643d63d0b2a73132e333cda1c6000001bc00000090bf18211d1bf13578fd2bf01072f7331e7f1fac3e4082875ae7e7e7b3ff0b4b37164425b976bc4938a6cf59086ceaf55cfad4d17745bbd7667939b438ac95cbf03c6d7363567a153cd37df714ba7e304004128e90f1076177cf7021df6819fd1fa05e4fc477ef5448abbed7425d02d5cd2120ea74f76498b5771de72eaa6062c4739be7bdbcb945bf50f923295bb84110000000909e92a40e2d7c0803a9c1c2acd2fd309d5dc6a664ed8d8a19520fce1cb1c04a70e77b37e5ab8b86d510dc91d20c590f27e8695f14e3e6280fca591b91fad636e6e0017662a77908d614963b89692a5b2509a593a79f44e6195f385ecf367583615e5e57cb0e0a64e94eca0feb06ebfff40a570a8b8ada1ce1ec4ec1d41816ad5a0e0eb5f5ff60424a342b692e3e00003200000090a488ba549f733799ed5bb466cbaeee0cb5f92530d0fba69ed7d64857893c162834bff5636267fced644542d9ce29cd01c422a9bb136580b369a4b807323f3b3358438e5148fb094a70eecd217f515dd12a94a17a4220490b31e7de13113830cca9a36e7be60e304e53f94ea4a4345a7427cff8058fb4b484e0bc5f4c4593ff22c4329d33d5bf96d2bdf9a152dab4f2c1000001bc00000090b2df28904b5b72cfd178670ecc399d16dd3da01f4afe6d735a7ba5de51d5aa826355206ecde69e6dcbe87e4aff2629ecc23fe3c69166ea1171572fb172f2245e063b0e46dc59e49996cedd02283942ca192a166d30c3418197da6c907f2cf2bf423e066f0fd68c1018af6dfcea86c04e2217a1fb08251948cbdf4b26ad27a5a47fb634267f5f1d06715a41ad3031b31e0000009096c5ddba66f37c8e7761c5cf195c140c6edf6235facb9dd07674edd48b646119a11e05e3addaad9949704f7942d246391fd7743bcf17bcd5e6ef5afdbcc60b5ea13a3605d200be3922f68f84c879d56318a1306cdfa7aaa518661fe032ff2d043113e594bb512552705b20024f7b4f070071db291994809f527f91d79aa40b18046c265b12165cac3b5bde0214220683000000905bb6629675b1d01997f6f33a8bf669e30540b49d31e4895c3369cd810ce5645e5a3e585ddb29382ab9209dac3e68f954423c52cd148ed3969d7e7ab819063070a6dfa3c135a45a1d080f47c428bd69d50b6630d5d2bda9730c9fa5f32cf8c81c03b1be6b30b7de3669b050423c7e132925f6b0bbcb1d5bb0af2c29d8ae2574b196e6e8da740293747f5e20d6f51585fc000001bc000000900e9b1b8cf0d0175eaf2276c35dc87b99a330902503b3bf88a756b750f4eaea3609a401968cf175a77454836cbbc5525ca5ed14edb753b54524dce85926933d149322a31e37102aa8fc1ae44103757be91643d3161252446bf073978f1bdfe311bea78257d05fbba0b263c842474b9da812eded30907e614d95d53856099346a65bc21b56324f01dc9e3bcd98f6220f8b0000009039d7912fc0239dcf903b219c27cdf364c33cd37a30a94afbe18f2778cf2d0e3d892976206e2ebcc2e6d55673d978e65b76461e49ad281d58da534a83c2e3a4f99ffc1848da89a8d25f3fc43775ba84f00baecdc0fff6867148dcffbf9db34bbcd6c1365182d56429f775b70633023e761c2dab8f1069db54ee02ad670457b2d5363d0c7f1408f8b7241e9cd9637da5cb00000090bfcb048a04b754ed6499c538a5e7f5171a93009747e879c6107841670f8ba2effd3ee5a443701ab6ec7f7cca7f1b903e647b64c1d23283fc7ac21aa2e0248576e759e58a8092d866d9c6af7932761c6708b38158792e6eec7fe194f4867bbfaf9bce9e7b31736646bd6b75bfdf57caa21ed0cc1a5ed3cf23e49680957e6ccfe145bca1532019a9ba465af64f12b9b1c8000001bc000000902f2439e3ebb2b14781fad9616f31013916786861336cdf02d81ea1a2d0f82fed8e1a0352b7b5f76699e8a0429c874560b857915338d03c98eea3ce383e048a072b4b030fe128f64184d6b11747be25bb1822e95d9487ac8d32b34a772a4504b3e98dbcea2661ae9c4c7209647d10a4481aef78c9e5a2f06dba8b8f1fcd22868b3918ea74d2181d61798f10fc9391fe000000009038ca3a37a4f433486ca51033d317a37be014d1a960b33bb16b54c6418f2df1a55573ca9e052da45402f3b7bc1b1718073c581eaa6de90161f9de1359763046fa9eba5872f0559d3a40df31678b93605d102029a421b8e9c0cdf8b9aeb79a56694ef916396329000996a10af3551edb4a04887cea168a15ea8fcf8b9b3693d34f34744c6cda7ab63c2cf0f74f04a8660200000090d9f3ff5b9412956db9a6a98a8536aa08f13b2cfd675a0d1de26d311a31ee234d25daf3ac9332e20838e735225908efe42dd6391b8671380b73941fc6428e3ea61f24f9b56365ed89320e72c1a7c3dfeb05b0cace2b85c028619e40c413599155a9fd882caec77f4af38fb56e608ff88d02881fef1658f1a55f6dc1c0db724e6b3930ae928311c7da07db238923a7ab3d000001bc00000090e81f94ae53f3cefc91e9e1dd0daf188e8cd3c9ef1c6e78f9216ab5ed80c48b5546fc5e13048f64bbc159b0c621dcc73048f6dc215e09e00242fb5fc5c5adba821bfb38f7e48706be200ac8ed2e045cf608e7001683439e7575ebd3fbe2744886c97e980f3b76890c32221b8e15b4fe1204b5abb50c5c40526fc850e99deac16d0996bce31e412039eb4e5e41409c5eed000000902e07a04fe6a351dd0f4885901e4c964d58d4b90c041ca27768e0fb352ea7a92cef1ce4b7b78a4c3fd04c78df3741b9a393631b7f305b850d3b4684adede74540cc36ebf64be5be1a2b7aaf858a7abdad1cf71dd2625503f41b2aa6cd8bbb02ce8fc975f6073c56a7d5665d57dcf67f2612dfc622493b15fa2ae49735c9d77eed90b069ce10f26dc7a56be0e27b5dc72b00000090b63ec5dced5d374975f1268fb76ebe294fe413110af5861f3d874c4e2159d712b53d44d7bb594e5e06bb20805a0b83a718451784acf8fe7e2a488f77eb0e5fb232059daea041fbe8c260e772b1786a7120792b5d421cf88206fc781a212554ecb4dce9d3d0ce86ae6a0c3370242062cc0f71c72149897b6c3d023351104fc338f0730b8ed899ec4e9478495e50a79165000001bc000000902a45feef1f690573b1adab340aefcc3718aa5f5da6246496e3a27c0ec30cc19a4c296667a0bda271c960cee763d5c50a79cf2db8680f6fd6b153b557642f2561d92e1a983154177fc3dd576dfce6484c3060e2cff23d56b5400e981ab57bb10f086c8ac4c4b16be77f4a8df2b71e125e02949b090f32a9d2325cc0512c3a29fe917d6532287377c1c95c88ef0c992fac00000090a20f6fc346c15e7e890959858476a0f15f2b3fc318de61e12ba8c5c8aaebd6c1cf9702548b6b930b3a32d37ae19ba0274d11434aac08208618ccf457f457a8e986c5922cf5d9499167fb5bd2125387800f2f9a04f1d5310185d5cc420a9485852747a5c8966ef1fc2998a2363f6219812f0beb7e70c8b49f7fc10b88ddf8cd4e9ac9e6e0891b13e645116069560eef3500000090784818f1d8648c12d54a9c59fcd7be95532ab8af2845f6d3ffc9ad6784dfc7c34468905e2f2a58ff4979401d25309aa43ec338c3648e151cc091800ba72dd541e8e57566a59e0c44bb929591834b91202aea218ad2dde451ce9fc17969662765fae79213a63910b819cb298ae208a25301ddcce3170069482b8253e649daed00e6bf05c2dcb2b55b9410a51187a503ec000001bc0000009004690b61c90265eb3a91db5fbdfa7c7eee1f4b4f359b16e803f41e57a10ae17287feea5c17910a75d7408849bbf6480ced31bc122abfc20571586db97b1610ee5d0fcb287e6975b142cf38b0cef96d3c2e1abd49e8bb69f93f3b49930deb05635be1a971c3fcf56d072964531f803d540e97cd9e5ed3a4c6ac2699e8a0e898b67cf78733ca44d1be440818826562b8d90000009012624585c036d5a50bfeca21aa095b1a7912126044130f201e7a9a68af5ccbf48980797ebdbc0e25324ff6a4b30001836a9ac34087da23c0cf54d97ac2303ea36e4641a3085a017748a1b16a2c31ce8b23f4ea5eef22964dede68b25d97993af88af796df8f3ca9d08c237245bc386430114e431f45c18b7d6cd2679d4b0c39d4ea21a422f0d65698f826bfa12828d8300000090efd36a1245df2761f370ac183478511343d07cbf7c3e48c25bf0974f5bcca31957c2f9ba1ec709cb88d86ba8b73c5a7fb159e1fa87f200dfd7d177fe5fb644b230e9d16d2d9fe530b3195333abfca4241f8a1960a844bcc46abd9e916998086bb5b61dff2a49841f390b4124aec67ade1fcbd225e21183957ff1233fa7bc0ab65f5e6b923bae64a17d85d3780295900d00000e00000001bc00000090947684198f65397ba252f9dbc1f8af99c32aeb32284f3de49c547b0b3114f328502977ca818a2b4a264a487456ce29d0f1418a548e71ca58240a97ff5011de799d72cd0ec3a48f3a4ce6403399c37f330e55917691e8414f521d38f3ee63ba5c24e191e871b406a7a112ab11fd79623106d026049fc195d5f6d13db61db27ce7275f50c6db01e2f6e827950602a835760000009091249f549962d71734d4226ca3442ebd1be20ec7a8ebd8ac4127005879d6b5b692feca8335583a4ae0a6a9ca2ef890337f89de3b0d0d9cbabdea11713f3ee8f44843e8bf98a36c958158456ef9bec22314433d304114fccd775dd84f937283a904c9e34cbb00f1b045894ed2690a29f3094814b960bb88ccfd8fa201627dd9e6dbe1113b92f6ad611721075c318a94bb00000090d07c621e6271708621a319478d0795bef45f713b6de2c471196685c0594594a609db8d5db559a1649a8d1758fea1467283fb6c01daf08762858b48bf0615c1e116f73f8bfdee730c72c56af959018e2a02acb10d80458b041ed34e3022e2b3b398ca07a4650e3201f16b7a03e4ed316e2b8c100851e08a74e8a44bef8292271bb70a527e7493107c7f6137a1eace849d000001bc00000090cf7ad5c44a117719a906954ba9babc0edb51738770b4ee763b16786eaf24fb49faa32760f99342e1b5b5bf14985ce6fae0a7de2e3220f6f11fd89dd1191daeb109fe74b046ff913a6256e0368b26c15b0353414edeea5052ccc39ef500f69baee2a4d866ff0687d450a3dfebda4dd16a2488dad669abb84abcb8304e791a0123943c62be536dcd139543693e23b8f92900000090ca8eadddacf1b9634370e2f35e4041b50fdb7bc6509d633274e89c9f20e46cdc7839f39b7bdf1c86eaaad5adeaf2cf4fbce53e28622234e28b0a7c29d925009a5d95a3e552b90504d2cb2ce48599be7623d6957f71a06e48789c3405c17319c231e5d13059c74e2046cfcb01b195d15e15aa436d9b166a7ec1bdc4c5f80e3d9dc70580b20514c9630b65a71fa4c2b2c600000090ab0d42c3fce474d24597ee47c7f10a98c9f68bfebb211d2a352e84ab938d45bd69759f2a76690f029be1aa30730d0284941de3f796dccdfa1f0529c95e4b6679354dab63ab48ecc79a5e91b3d7d3f95d1e07799e9397ea5d2a6776fbeeaa4ff79c65c4b06810e20ecc2686de6c256bfb00531e2689364b7b81f7692432290d757e4caa95775d586da6d24d9f0fd460b1000001bc00000090d2a6f20ae66b3c42770388248911cc2b69569ec915e4ab4fe8a6c7e1d4aa0262bbe1367360a2c8d201e445d361f4311bfee4871f95b4ceeafac0bd20d229c523ebbe060cd13835e5904e0bb4cce865aa283dfe8dafa40181f02a5ca81541b4e170efb21a66ab761cd4943d42947657c927fe1d12ad7c2a5ddee85c8363d3edba175c87e2682bbdfffe993c9fcd2577eb00000090f14f756111656f5896f07909a24f208168a7175dfd7236ee3d50a11d6aaca5f4e02b0ea1348bd834db882a10dea0aa5bdcd78cad15d555f4f7ae29d79e188a9b0e82264b2018c2cdafa2787a29c4b12b2b7af03f94b35cd827d0745732ec211061a26c6b73eff0bc3e492c1910f4c4dc0295ab73daf1af831b407be133c243c12f7faeb13cc54c177cfee8e2ec1d9eaa00000090221009bdc1b35d2c1f8f98e9c88ed6272c09fe0a5050b71b11600da54e262c86892616e7117ae08df212206b1645442a179796d63c3babb16178a0c64a18daa1d09573cb0035bd68971b00de5d5570a000c90626fed9dfa6f56a30c8983abbc55f791cacc21a91eafd0d4d0f26553f8c253f58e1313862b32be1d830116757b4de42fc122e76367b8bca06b524d1a2d7000001bc000000909f812138b9e775dfd5969502abea67268af1cc21c9bbf14c24618f74e8bf66cbc3ffc22659bda2b6f286ebaf0ec4dcad2160910cf444b5ec4162d4e69a6fb8eec2331c41ad0b10177b2e8e4c2ac98a180a72bdca115a8f467ae53bc69b561f37f3415376076097b186e62c24e2977d630b40c1e975642f810d232937964ab2149babecd8c39b9faa9b946b14638a4918000000903fda1fa8f291baec2fba11067cdf4e363a1f0ae6d2e168fe8445b614ca3e8669ff1872d7d774e11fcac97f48cff4b199c047661b22af335c2027539859262c0feb865fea60aeb493c07bd72459caf3820e170c456d91f8fb70f1097807f76a1d3c3552dcea437dde4b4336d117de2fe6084425c996aecf3bece7742325e4ab116a23526edeb91451923b40769ce07b4700000090d49dfc5cecfbef724d97e87b5024a1057ff0b853835ee0931170970b6ef0afe3630fd198020f91a75de23bfe72621fcb1112e1e315d32cdee93656c96b0463240b988f392e210d8d1235dc76e652308420900759e115b20af866c93192f6bb025c35f9ce5f8e9d607a2918d70aa231b32c7211be4ecd9ebb31b223dba5eee9cffb2c14d002bf4e6c8cd2617c52f92209000001bc0000009052cd51b86e05a112185fcee59644c7868239beeadfecbcca4d334a1546904f4cfb3b16391cf17aa1fd543fca15681a8494500c1b341277b96bee5a43feddea9f5b5b968f46374dd616e74b96c20173410d3ffba84290c2230696ff06819e6cddd55a76a44a710c31ca5bd9e95a5f215314d88ec363fcce41e0556b5f5037cb9ba663626ddde3fba5ca49a18397d2861c00000090195a187ee83284094d52b6597b76a9de1950c68a4a20bc0e1a958b84f3dedd893db8d68af7abf948c04cc946fee7dfd3e98df98cd435c7c0616097c2ebd550f7c3e98a7341315f53468c3a4f7516ff8d23c160006fe19e7637c2258444e080e9c54753dfac170b7c991d734659748c4a09328f81b03ce897fbc6dd4bf283093f526a65e24cfcaf5532756a85e3f0980e0000009057f70fedc5778b142232a47726cd35c4623e7f440ee98e92d918491d17e1ef9ac8de9c6c9d2dfe5d0b38181b709172fae1e9970808ecf061d7a8dba520905d2f8dde99cfa9b6a527596aa783c7d21dd5282708cefb592cf2c17cae26eab29728101185f515f6033731b1e0c050b6b0cf0bfef40ce87ef4ee0412bee0503b16995cf7a5bb5c4100d6a502f80596c1f7ac000001bc00000090a87159ed5a28b9d2876ca81908a405c4d4ce69b04f5c585c787cca6e4e444c7389b1d8f9bee61c6cc5d40a65cb1c66235ef5bb36e274cd24b8b8be107759787935eeaebd7e4f7bf42e1d9e4d1b2cff8215e079b4c27c1bdff61b19ee1e7455df02e2b9d44e6d0113cab1018e8ffc2fd00079cf8c0af9a2d431f1ad14ad1d45a7dfef8080515f3506d0d7123fac6957a7000000903ede5c1517d46f450f68002c97d595f5a35fa49189a8346927926a4be396470ab70757159ac64fb5d215ce07384e3bd7af352c7d63b3bec10627f7072345d365bcd313cfe82b1f6b11088492bf9ff62d27b752571d6a5adbb01f290bb70a267ced42ac421070fea792f6963d2faa1f46112903aacd31f3c8239648fd9a308ab493ebcba7813ee3c1fd85b234bd293464000000904dba3f8d5253847e0410880b0e94de490bfd7b274fb8ff1a1d19da50ca4ac756885cee121f54bd05d4098b6139f0429bb44f8e9298125c7ec4936565ab5ee625503acd59ba4fb8384fecb1faa487ff332444b78ee8b1770ca6e7d8d4a5033c5a841e0bd137dfe66fea79921d8be63d3c17046aa6b02de3ea263e784a01331ab59390396006610ef6249ca469b3b256e5000001bc00000090a318178fd7c767175f9a386439bd1753d04b8cd05fc9ee599f2b3b8b6f4d49509e588d27ae0143272f13f60649625c2cf65e7c60b707f155a1f2d7adeb4523541aceaeda83869188a240ae6f96626bba134792fc15db82bd296c98781fa4187cc2235b9a81683c51719cc7089a62e249191486dffd24778d0d42b360f53320d1396a4535a21c67dabfb7ebab6829429600000090ceebb89ab853d54b103f12d65f145dca0b50e079974b3bffda72918d65ffbf2b6f56773816504aac7d18f645c7a810c2ab27755209342bd1a3d3c7bdb4a0a9f3bef70768fbfe0048f19599382100791a2d3ead79c839dca4469a8e1ab7efad9b49c9c921d5d06ec688c38290cfaf41212dfd1fa3f876165e9e2e4501fea39515129b1920d61deaff829d5c8fd632e40800000090dc880c0a8b4345e819c34e4d4cee8f9b655bbe54ab1fc7086dd2dcdbb92c0abe931df0b7259782b8ea3db0cfffa341a43fef48d99532e19947e67d7a99d1964f7dca4b077387ef4dda2556ecd948f5da2b420825296ac7e697f327e031c600826ef2085458e49c20e39d4abc647f5a642ccfcec29b3e8aeda89451df3bee503b9a4185b54516d68b8c393102242e7d82000001bc000000906c7c882a148444a9b4d95ccd067d18b3b7f3976ee606456437dd3503fcfd8e65a3a0b7149716d3178ebb574a3579a56337ae43b55cd8f89e7c1d1cfc076e28fe3628f2f91ccf6092de236aa93432029e00321c0b18fd00222b7218c0c6974321b5dfb7b9a37be815e77d0ea4559a2f60178cdb0a2cae0e4c6ad3b7eba520b09f74cfbc559826e3499f49918e6da231f90000009081ffb2cb3bbdcda534d9c100bf64d41c630244fb248f255da994c977ea3e7a2591398362d4f8a70860460d5d65ba17aa0e312e47a22f6d6e0e96667ba1ab2b02b898bcea8a5f991e25878b70392514950e237cd9ef6b504942ba6ee37e97de35b072e92afc0071f3362e4f6d7667330c1060da0b1b6d98e5c0873c1a0b8725d85017415cd2ffe4b018d77ee46eaad29300000090fde71d5101f8606e5bd8be1402cae1c9f6fb500d1f6eda8144878cb10f44c93171bb2e96ded3a1d1a6320349a6d5ca84677773742dc57459a772dbabbef35a96eab54f7ed1b4353bfb02ca53c68c1e3d144c6a1cf3e56a76c46213c589008be1dea90938d6e2e20f47f4cfc852ca294d0fea1bc5c52eba75821c70d98a6f6dab13de0624bff4f75974ec7d7f4860e3b100000e00000001bc00000090d9f207c2e4ab524fd2e7b51dca4f4fb421bbbdaa372793c766077aa8545d83bbb6fd42dc13cb1faa91900c92b683bb527414a8ee06ca3bab0ce9f935885198a88bc1ab065be3c41dc936685c6cc8fd6f102711ae2888d2391ceb7391d2773f1f22642b3b8bba7b356734ee0cd13a3d5a095bed4c7a18b005c895b25092a1281879a77e5876af1a56965934f1b01ea01100000090f6e66e9ab940c2d660abd12bf1ac581e825989598ec0617bad0c61fb54fd1a23546d7eb7e47c65389a32b86a7636532255b7567d19551b31451ab28c53665e122b88fbcc80ec0b06f26508ae1bbb82082b2690761b9151ded3f00c3534d4966bb79bd49c193757793604d75d837b3393023b9ad219829bff8798bd903a86bac85d4b6ffe1a4a7e68997248a4121df0ca00000090d4b4c16da25ec69b67ad5075f5f4caad48d49d2fe1dc9588f5809e4266176873d373ff68d6aafaa419693dc8a5f8347f25191b6b0e1aea68caed8331ed5f20d4cb46e7f35f714c7d8750ba404abd768e03f3f2394ed30368b968112e6ef4de0f98d860637b91067f9ea3a1ba95ae459b126db09c405009c60e1ef968e4d359d801d672b8450bcc13e5e58130412995cb000001bc00000090996af5176d961e74e0317c4d426c39f03f1155e8a4ea71df264f7e2765cff15853370c2d324c5cda0ed4fec33210036ef8c6afc30d98bc2fd62a4b42c20babccf769231bd8014508a1417d05bb1110fa21e542a26c0c88d844b9dd00f65989f74c02230087c7941dfd80e33aeb099d522b144046133c21ae3abd46b750220083a524cc0b83791c496beea3433564241700000090bc0474d57f12eb0063ef2c63b1d9e2c29b1927305b109cdda2e344633db5ac45d6642a9f9cb07bd4ea10c7864b9063e886cfda45f4951a8716bdc3d9287d3e524ea82281d2e1463a473d3bbc9a22810617003f5fc24cd8c7b3fb385dccae36562c8495e1daee1241ba6795e6ac98658d23c5fc5aadb784c29bf11e6e3d16801ec2f73bdc6c3e502de4fd1d51243a03990000009013675fab13dacd1fd805c4666d09775c253a761a9279d9d7831289bd7ffefd5ff6f1d6717efe15829aa86cf17451755f48ae5f68bc5f04800d65348993d20e2af9a173b4d67836f70b8f99e9072669b608373b2fd442a610ed78abe40f31b2e835984fe9bc1229293f202f0571a8d9831d43f087d6bfab4471697a8fd1a7df7dfd7beff70b02d5eb70f6f447fc5f0a49000001bc000000903956dcadee164f892e2ce17f5c3350cae9856d708aa761bc58732afab746b49f220021fc0c58a0a4ba9e8d9969b084b9082bb1c8fe2e65fd36620145e208cdbe7a8e1ef4409c40a810934f8508744eef2f838d08c309b3f07a8af4401388000b6e69ea45b326abb2573202de67e5cf4c064e4b9ca1a8514e0dffc98b69c493a195b918f70f79461f692eb8831a6dfb900000009070d9aefb3da2dfe00a7d2af651e2acb69df180cf66eed166bed5d1faf3e3b656517e22142737d2ac36e9ab812f04df082873328d44b77390f183f326f0cc8d2b3b15c6e4f2c29ecff7ca4a43b155e48828e284e51f6521becfa95f55252575b19111b30ab145fb1c7a6502bc59e829c706782348094f0c0c7b163839133d319f784e2d3303aeaed7ddd331faf711f951000000909743d75d6ec72d4297dd828d0f52dfe07f0091facbce0228271033dde57511a839a22ae30cd7c4f6609a2de0e871a581b2e528b0a90db8ff871af2475b8985d3a04afd894c356187f386219610b7fb180670a3a20f5b04af6c5a765462a6844cbbf7d0c72eb5da66321f3311fa95d99d045f2bbed604cf948545266c1f296b4bddfa1d487c780c58d8e71953e645cfc9000001bc000000901eea6f04d80babe64b4795ad61a35c08d32f67378d2380b7bfa04f46d06e6208c1f28d2303ea2c4e8171f3bc2d2c1a9910508baddf162dd9af42c8f7604f886fb7317b025f273ad78773b639af1958180989fefa2599b70c68a028ef4e31ea067b38444a98cc276aa404dc52fffb57712670d1f19e7b7a0238caf85ece99752ef1b36898775eec4bdab128fa10181266000000904e0b81d40cfe9d1b4c3315dc46394adb1a409d447202e106f372d091d481425800026683cc05cd01a4ec5152c44965954bb81cb66463fc61018c549226fcef6d5ba402fa203aa353a965ff9e2feadb7125b0a6d0f5f17552ba90bae6be27efa386db8d807bb07eb388bd1a981f4c9f392f030f279d5e557c7d6051ac0bbfe1868e91541eac030abdc009967c3a6724050000009013041cded588c50538a529d282842e54ae057463f35f2b4844e5dc77761c1920ca5a41ba99b836a664f5214e7fbb4b9f4f06a794dd726f133edffd80623de4077acfa0887865d9cc6d89a1e79bd22e500b4b39c12bd5127dbe36d7153da668274613a31e8ab0683947fc67dffd8e720002e46517bac2a598f2712fb8f529bf6eea93c4772660bef673845e7e756339ce000001bc000000907d2b78935e99681c27d68d2d196425afc040eae419fb3efff2498070d1376a24708f657d887e88e493243bc1012016866572433d3525ab42ed3c69d51336bc1b62ba508a0fabeead6a0fdcd6615d1b011aeb54bf48d725c6c938abc9340863821f656fed760468c8b24b87ce84f908211507b8b4f819af0e73a81d9e3f8ab9ef52394fb3f2a84ecb50004356347ea40f0000009040c20a9d2ae8cc24816017c41a22d9da9c2135d2c3a5b71c82383a8d7f61ba080a6d666d12d5cfe8032a6acd35835a1f03bada40df38cb0419ae80bf2ee0c9efa4b02863f10e37e9c441a359d29dc3130297260327f43b962afb5b6406dd3456b260a5b1b58ee80b9381b17050b63e042a86d67555af1bb334a8d2a6f825a17039e93e8d620afabd5ce9e0aa6412da1d00000090063df44adda8384565dfa07941d978435cf1ad2072ec9b9d79fe5b39a947b7ad68ea617daf9471dd0d1d225d7a544b69c9b38cb894d2a6976ce42bedcc8d3c82c3d177922139ee8103dd4113cfc40018043ee6a9b3d18e56a679f4070799a3cd94fc90063be7efbd85f7fa76e1b5bca92125f9f881b6626b43cdf2bd607a43ad57e83149979332407a32c9bf27f81cfe000001bc00000090f89605945dde7a518c2aab34b78f0831a346c0ddc0bb9734b4437b2ec319093f3bb754fbdce71e62b9f0cdfaa5e1589dee6ff2e9e124f8b4bdd39765dd4a1a4480ea4a792f4665c858c5d9624ded3ccb25eccf8fb852d32a08b9e1e5050bfca43e25bdb2129b1047df887b35ff08d64b165fc2ecf4c27d7825ea8df02f0bf9283ba66366a61de12245bc49116aef6b9600000090068f8311a118ca829a61ce3b443cd79567b12c93cb950c9222f039b112242dc3410f9cddbb555faa0ba3ec6f534690b824a5af190ffbe772162152a7cef290bc6e198ef04d40d6fc6962f3bbe5ff8cfd1bd6447d7ac68ebaadff48ce3296b68fb5c0ace2b42e8649d900ef4bdab307a30b00850ecde2e9ca4e903e32adf86c723393f658e5f45f5dc4d5f703720abd5e000000900d493c43f1f52ab642a486391dc8c7fe4d182e21519865e5cdbd0923bbfba771cb7e271e516167f0918e279b860073fa0c1eb283767d4e159591db2f23bf49d67f93534adac491be319ba9d480eabf0107e9d63c30be1c587c2419b4f3a1f941660b0893528246ba701a6a657daa4837272aa3f90a36648b1c756f19beb3e681b75310fb5e5d8abaa5739dc87d8b8a13000001bc0000009001ffb46e21b01f52ebdbdafc158f4361ef390c0da5615e39dbd15ced8be78d182733e22100b6b14d244a05a332645c7a53f67c814bfc1d8bb246e4f3030ea00d282590fd36a5e104bf2095907cb84cf2157eecc218512df1cabfef1d42218ef2f9ebdcf2ffb79029d050bbcc0103a6b607d7407b4b1902d34e0e53113b4d0c6d360b9231a1f3676ae6ecf09d2c2362e50000009024e6af36bbd2e462b9555cf380fc687a902fcb6d9ff57ee70f3b588132193cf8632b0b6c74b83d14528ebc550c2cd35b19e6ce58bf9993a499fff20d5c7f74e6f340eac36d50d100fb2b9218ba5627b72fb1579edeae78cf2f7c216dbd4358c08cd1a0a295e971c35d798e12c194a05a0f88e844ec1bc1b9452396b91cee2df848bcae4e0b36fbe51725c7b1ebd386e800000090476b0c2836ba8ad84b96a276a398824d54c077b7fbb306013b4f295eb903e467caf963c475ced241d1c32da91d0c0d583896d5e09f46be5959b84deb56a40271e19792b469a402559b816e3ff005dc8b1b57e5db0fb7828f0b17fa47ca36bf2232ec8bece5d8793c7fb0f4e13afc66ad2eded52dece2313bc725d4645105380e4af3309ecd66fef12a76bf674553190d000001bc00000090019a48c420d89ee53949b8e920fb200e169e70536b51adb238dc6f0e2f855073c070690a87908f41d85bf5f2967759fd4fd6a047788274fb75d2dc4484d207ecd19f30819ad59a851be85e5f48cdfa21071f7e89ec63f62dd9e814a8e75b069979e4a8c8f28c26a8e20b95c2008a8c482a565dc01359dfa71490371251c73efe5f2f99c088daaa10066222a71c4d42ef00000090a88a455036b68ab135640510b8e39395977e1ce20588bb0cc84037673b254e35e4792c9c8610337a9486878c6de8bb3528b218d34ea04ab333528e98dcf7f9360f50a1ce0ed54f9f86ade5f2037d7ee12d996dba01634e24558444b31a5ac15c6ea414016b37eb469c40322bb1c7334a087821b940a9de22ffb729f513bc66c20220ea52d8c0be1f5be1c08008dfe7e6000000904308c6b8eb3cc92e54434416aa52413594869ed558f1e02efca0e0ec84a48f04985e3e1d92b88252a680da4e857e4328be9350d3c874c451f5d1e5cf181f9f31bcb1f81656b9591cb07d4f3dbb0d22ea095066a9f9d506cc030ea7cf13c43c3d615d6abbef1708501532e4ee54d3e6d01ef61a694f3c83eb9701ada874b1b43bab8647d05284e030acf7dda064d5c14a000033a000000ce4000001280000009058a11dbbaa33dc29ada68385fb562e19c0248be7a5018a1b7913fe9301989e23e6d3d6159da6a7cfd14d379230c553f4a5fcbacafbc829ac0476e63aed34a81e3d5df51d2a443ce47f18002d149136690c5c1d7b2e5ba79717fc2c3e88f11397d1b5204ee11a5ae3ac773539e81f11a80a57e67bdf5c61472bfdd0d19f46e6a8d5b4bd09fd82938be8d3c67e5f8419b90000009061c505cc43b343b64c6ae23d2d3a7f178f86fa4de2616658fd7444b7ad6d36ca7529cada529342f81ca222781671e52f6da1177d40ad92eb10c1e151e2e70b0942113e8f9f1d80050e9f5968e7098f2d26c8bc433ce063dd5fe37502aaae904a361878356c3dba2440ec803d7efe09d72b3030657aa269d9b0a2fd32f98515cea47fb936be2dcfb05330fd28c27eabef0000012800000090aab3fd20f1c2b74c0a98e44ec5b6d5871a39d7bde3be7c9e305a1b78b5b69e34e96ad2e54bea7bb7b4f1d1fd330b98f057e3e051bac002b6e049d665b7ac853e44b6e85d3c47edeb7ab8e0694b414d572bd4f6798af4632bca1763303a0adbdcb67e80025861638b989bf69b3cdba19704d8b2640c678e6d77f322609349d859e1d079f9592f82d7366bfc8fa1e3d09d0000009051172e8e627c51843f09fbeb88d348b86f71074cb76bae310e8ae139e94693ec0b768827676738a93145102913069cb19fce5739f39cc708f054297a4a11e392f08278baee64ccc7e7ff0ee2767ab3e9010fd066e5e2f91cacb7242a93e0d0cd216f47e0aa346caadbc266d5f5a3e1f909778820fa4fcdd4afe02c26fc232b1b65bc33e8b6ba41012be34e65dc9bc1c50000012800000090dd000b6fc17ef00318e1d655346368f29e0f3f017da41b43666f6e3802396ea1258a57f78f0fd4dea34b23950c0b5330b80109242d9202f0c9ac050fd8a8b481e8edbf4a450dbfd9676cda4323eb146f0a5ac92f52bf8bcc5a0d6f70ec69af45c4fdca41d5591e751f6576c5dd6769930b9b31c156cb0136cc17ad3bf71cb45f1e0c4fcf2deb699303c1b63f330efdc200000090a1c653fc27ccdab5f3a45dfd0b36f5e6015f6c33d709d1bdbf443e656bbd8d359f90d6631eb6ce489d6c25cd8696259add18e66e255c6af271fb4a4eef70a7bd0f1a2ba52dd0c8a818abb615ba1ad868047a84dc3537a251faf4435c25cffe516de034cc5f8300654ddbcf2fb5c688991e988f9a2dda3167b3af648a94690998d49d3f616c337cbc64b5efd9615b44fb000001280000009015839b2123bdc678bad7544bba6605575db0b4f73bd769765ab09ba984346acdbdd66e1e99faa7f104cf9913257398a18bd539f603331e3e4dc10496588a2754e30c56a9baa525429e9d171f2477dbfd08e003a672a180bc75a44bcc92e41bfd9f0165769d969c641ad670cf0b92959708f4365b90cf35ef1039e27a6df2e8c40965e77393d71c5b98c3c54f4cf7c109000000900683e98ef9cd8964ec56a6ed2682b8e94a85f0304cce4072ed7a00a6983c056039ce8f68de1f51e7daf63948cc4b633798ea0cacf136f0b2f56beac7938e3b2dd58c98caa99d99f7f5252b50209aa5e806bb3faede475cf356767c3dfea7fd3c931067b6a0232e864d194371d9582c7009127ac2a0db5a8a0e66ad47a0cdd8006623f63740877f3481139ba407f47c200000012800000090c7d794b31669d4c78c5d77312e2785573675e7b6bab6a54853d89a9d1e08af640c405a361288910a105df8f8c8a8a4afc1cb34237a43c761f05d63af042d9cedac42ce82d683ace0b573e5088f67948a03082cd6b4a4ba24469e8a8932db27390f3c34691288a561e305240a1d71db922bce51b4cb6b3e574317c31c0d465c10a4236a2de41776bf2ca2c28e8c5e4ce7000000906083258d6acc362cb3461027e3300318c10bbf85acc9f3488e8209376f9d0d65c6f07e4a65d1850b76e3f9326d6a87b9ca8902deedf3a66646778d7dd8b0a67ca55aaa1f0ffe24a4f54c415ff1ec9ce62a7c4ff1514a7ea00bf463ec7d54ec35227c15dc583badb708ed54fe42e2155202b3534c0679ee1e923658d3f7995f4a17feac263b60690bcc5d2a2d78f8b1500000012800000090814726dd7bb5c4b5c44f1217c622441ea0ea38db88ef24d7b031c4b207ca5bbb41d1520c63e4f2c34a6f317a32c5ff1585c3b5454fbafb074b13583c90e3f864e668acfdd4fb66df11d6a71e940d41861e5626cd5f7ab0feec7e6cb4887cbc40043efb49b3e15ebd7d5a7a612960e6bb0f01c6e536c9148595d9a52d0d5ec59f2d17920d31d98808e0c1d4bfb7d8cded000000904e81077dd43d002a7e940609558b0e6f63f491162b0612d799c48dad8139f3f06e596dbe2211ba8d3623348a5288fd719e87e37261a8a4c46ccb50483e7fafedcb6f823fff16850e6689488975b49ea91a7742d6c3966ad8956755114b54dbcb8d1cc01534c20611b2b1606ac0892e252050a63ce91a7ab7f6da691306f7599819a877c8a5dcd214127bfba43750ca4d000001280000009043d8e87f88881efbdf9fe3d6d981a79321c69201d1a001f9227724d2385f94402fc30f40d6bb5f5abaccf737e096bec2aa8d808a991c3457529968e6c2d686a2314a187ceb581cc75b57b53e66c8c6843040c55f61701fada588be2f69340cf3443772c2b81327d61849e4f59830898f2ee53f7c840277a979de5db5df84ae770836b68606eeb89114c3b88ff56922ba000000906f8ea16cc4c640c6b5b86f7c2754cefd623cd7789bcbad86951053e0b2bc355a4a79ac7ea269aefc8044a72022a3904be1a842feee01570f0a0be83ac9b81f04a7471051b7a20a197ad893e3f5eec0cc2adca5d6f09e10809238c3de4363c2af7c8c0f54b30f085d04626af86ccaf2bc2d751f44645e44cacdf9eb4305354aadedd930f69a6557d6a2a60d347e37f1b20000012800000090b848f0e992cff482ca897f00e436b6bccc99e4c7ed3e0875c737ce9aaf7bcd96699ecc648ec9fcd724fea3de7943e5653a34cadef91645ee312e75a116d742a1d85de2d7738759acdba78c58650a3b1c094d522339cbc97d4d01620f8c9b5c8e6650072657643becd21e6232ccc23ac617b0ebcdce3425019be128107fa1ba7ce245c0c2f8507f8394c36d365044b6a8000000903f57984eecc6c4bb21f3c97e7d6398215743f197c2c0e5a79fd044f349a0f955a18b7274ba74625c7b5472a02c2c1f0f64d5aeb1b5fed2f64db05f04c0b35fc228160ea7f1d19b7a00365d5af17c2c270287411d24dbe078e4b21dc38be0cb9a8f6465ea8e5b200bbb3bdfa71bce73981d05895cf5b95c3f932df37d8edb80e4c69a49def556bc977f968ec3eae505ee0000012800000090550d964357f7687a3b6d9126f765b4ea42887294396a2741fd0c759ce74376c33d54f5e4f221f0bd939d3281edabe62df3afd9fd8b4ecff170126b26c35a505b4f5915e0bdc91a138dcece72d6667afc2250a85061d63741d069a5f3f91b5608a2385b1e8c6248761b83c5bb65e4229e000e324222e3e295e8305f19bb9d462bcb3a216c8c61de6110f0b1460abcf68500000090d49a1c992f5162de4a3ee22df00939240ee88891919c65994bec0c949de8142c24269151e4ff4eef30b0a287c8a3f5a74e4d7abb215f442c2b21bc223b37830ba243b155663e5b15a39cff7dd3bd025017e80b3fac8e23f64cf2fa43a33a8bdeaed4680c346d79bd2ff1e57df284a09d049003c94c6d25743ed0d5c4fd89a0052f71db7d4d78232f2b8cb92e3234900b00000128000000905be3d7ffc8c42048601533ac19ac6c8efc11c857eac4f58b4b87dce507507e317c4bb5c2c3f1220f8922ac42ebfc321ed7dc23980abffb3c8389aa43e97525b4f559fa4e125120b8cb7679965ecea3dd113303b002d5cb07ec622e8fa17e4fa66f9f8e6b18c24189913715c30e17f06115246c45f34962c0c71310bbbb90f10b08e061746dc165cb8ab5536a0e9b4b6100000090ea8bb348900aaab0c7f4b6cb5afc2b2e6564e55ec4a12465de7aaf174d19f9daadefc949bb6a61634f0c14c804255861e505c8592e96a3790a016081ce3f92c434ad76883f68a1198eb83f93beda89741e85a95cac80c9db098828b23727635780285d94da0caf2e27f37edd1db7fda00f82b9577108c38230e8ce249e51f6898f5324f8ae3a708a464a68658eed3fea0000012800000090d69d3884d9fa8db5d9a0aafdd14096fa5f5e07f0fc2f471eb7ceb7e63c843450b314280aa0b6f3f1bb394aa5253ff8f9e61dd0604ddc6dbccbb9b232b83ea6a921c60ee49a5461d9dbe51efacd0437fd1b6f66bc78f6c35e513bd1dc3250759f138ff632e86034ebe805b5e40cf97afd208ebf9aaa5b079ad436957ff87faf48effd6f806ad31992fd597607e549f95400000090077660556e07674cac5a4eef3bba09ac0121d6aa597c2bfaee86d5c1939f02e9a08ae03d6b3833d03246d9a60965316c6b7350c5025ac2ddde4b5f8a3909894868fceb23008fc3c6bb9607e22e3ccd93137f2d16027be26d718852a0fe5da7875d0aa4e1461c25b29167ba4fa8cdd8fc29fab5f6e55c0e67321b9ca5fa5cab0c4f915046a3a29c1b8d3d943a2a54493000000ce400000128000000901f717e16576c5c10bd8a10c564904c84b046fdca1cb8c83da1be094a9434f747ab51918108f291b53d01c7e48c6c50eda1057710ffaa765a18dfa1d3823575f1c4d21238d44a11f6e112394c7d3e8cfe139c215a641c10ac6ab6c4fef72b5905e62c334e733cfea1d33d2de4fdb79c110b9306b1497909d2f89047de58cf661f86bff436b80ce3e9036cb5593358587c00000090c61c80377b209c6da5a831b2c525a59a14a13cf6cd6e50341fb5f2c21a70da9162847b9f6502d7a51d345ce3098d47f6462273f834ed8a3d19996e1b0c436185e5b4815e43a784eae77bd52cc413fa5d0725d5ca61384ae1abb0462d86e1d71f4f929ac8985c83ca42b0c7350b569d70081e486464fb1503638a53bece15315d1e4132d647ea6cf7f140fb0a2c02dd340000012800000090c860d8efce5b43084983049738c12c4781991242f0e564fbb21d010bc036fd088ea2ba31b627d30279553c74c1c93e84e9abe6fa76c126353bc608ff2b66d76cd376891b6813191ad758ce5f1d5d706d1bc21253d7bc9037b6aba329c82182d5c2046bb20f69c483dd1425ab7386ffd72b1ca2d72a4d8ff1b1e1357d5a00f62023bf7dac6782d3563e5005bd375484280000009020766effa4d23acb703176dc21bd6d2bbda2418176cdf4d14998c6fa6085fbe58a4f7663892dc8863a45cd364ff06413185b383ccc8d4b8e5ab4e0186cc125e420de3fba775a2e7ce19a8fc581949522046c5371b418f9c60180329e473d4f1bebea901360501c27b58c010bfb47fc5a04e855250450a084c00e39b848fce60eb149869d44f5139c86ec19643e503f7f000001280000009068003d2e207fe1f4f0e2903c7f12a889cd97360cea337b73dcefdb3de788919e6975714dfaae6b68977271313cca2bcbecc7b036cf479b846fd7e3a528b8b90aac856589fbead14d91f63b8754c27df11d33331e2930c3a7cbc1bb32e6a349b853fd9d484c27f9d8dd02e390bb4ce2a20bcbabd186e62e3737fe3c9a51011a3a5920b47ed0fa7a563dffffb65dffd77000000090f609f0c7359598df6953914fe57a31e020154b26b4aa28204896e3528a95120740b072bee852be432f772d671bf9f92515192aee0dfc5a5856321c21233c8d7002a03833146cba22d0a4190a08d1a47208fb071c276dafa999649d42b307cf5d86771e8490e452bbefb1baefb573d3762c742280580d7376e9f4ea1d1486bd0c541e3fd46c0b1ee0d09888557bf6d6b00000012800000090e5136e1c5018bdeaebc8a84386131425b551ed9376acde8199f5c48ecc2cef6852185999d2485763ac1b1f53967a90c700bb9aee823b4c656b595edfffbbe1d6d353b587f3054b59a0c3dd5372eb3e370acda847a9d561e15226a15dc9d0f9a5255426e4228b79daf88d5e0e2548760623073a3a3e5177ae05f1197981f452c6190759a1bb1418adf90b13003b95b8210000009031fdb894dad83f81f86c6a179c564c34e8ecfd8b22afc9514c129b9dd58e0c0a9d758063fe7225cdf04075a8323cf1551ab0c2d5304703b053e150e5924eb9679f1279b3b5144a6d9273cd879023ca6806442973f54405ed8cbcf285c3978b5e6510d3cc3c3a08efe916086c23be14c116e0a7a779e86bb9b5f4669e3167ba095bc41b7402ba61931555be1506a892b600000128000000900ef862406629a92c15574c89727bbb7ac1cf45d987b905923dd49a9523cda2f6af918410c959402239a323d54ad02c049dc3ebbcaf8b75a7a6f56946a5bdb39c2762855a72a91df2f9ff850549940cf81333d8e138c20de0899285dc5051a3935384a2190ba786082974296f78b662c114b4f6915fd5a5617de5f05f922bfeb56ba57eedf2d97ec6241f0289dae7df0c0000009090484c79b1e0b61a92ec61ce4ef2c51f480b28b7e2aa87d1b2c1391fd8bd4a4b8aa64f562dc6d35882348fb1e10d76fee3cbf2b4cb1c4480f95a617e7b6347223aea6b44eb532a69e880d288eab281c914debf1a6d0dca7fc5393bae0e930d5425ec17d97b030c3d67fdb23f68ed602f15e95682c5a1eb2088dc7e82a8ddbb589175af124909e9a2d0d4b0769b9c881d0000012800000090d3284c9c659d8b0707267e8b10bd9789f2556c96260eb05798809991c94ab291e727e73ca8f4477b830202315f99233b99c68951eeeaa94899c60f9c6dac4b3f52f436d80945839b3ef755216a37b7aa156c509162c1f88541f78e4e56805ef8a29d564423b719ae3a0a50307ae7f1cb2aef790844732fd1936c27b0f541114364b54dcb737faa15a175652950032c5a0000009017f42abe31639bdc24dc7d9f212ca97c6443784871925f35b8f4a6fa43d4989898fd33ba5275c61e4a2d5bc55cdc335f96e4070bcb8ee5b4107b72886a3932ea89ee9e94d556566e0b0af98388ebfb380e029ebf47e9a00680b51363b3e3a864e1674fcab446cf3d1d01b628f9546b890618779bcdf57db5b499e46b6c00ef69ea56efdebf94e34d594407387111556f0000012800000090b132e62183ded1c670bc4bd895899cd38f06bad9b8bdd4cfd672e20c12c8afc5839ac380c6fb6e68fd0dfdf19cde8d342ca01b34d947b83c652ad8c69a70786fa828c9e9cf21006d30c0de6c72ac6dda0eaf6f4f39fdf3029652ed4eeefb4d8ce2bdb445bef9a446d0c39b88a124bcaa2f03b5fbbee509abacf7cb4b7422575e3682ca5634e496432abd48f5d19c512c000000907c87d96d0d9394843d242f5cc6c163c061fda2dae63e3f659ec53a6216fcfc27767fc426053b1267a6faf53ca8d95cc2efa72eed3f33e215cd499a5c2e75fd5e6931349ae1fc12300ce47e8cf1ab8e9a0629c6a0147758df2b1205878553869afa05c2236f039d0b8a97c0010bfb8827210fd1d69d077d5766a4f7744d48c05a6c70ea1cb5bc73df0701fb54f5e06dd30000012800000090e47e5d22930f7723ca2ed676f15853713f5305623ff0b379bdb579995e997c8cb75cc6d38b20265238ae77728f50ae219e3ea94e91d61cc8ce975cb2401ccf2651ae0d90b7469dc7cd4728befd0a6e860c629dc959061804615987f4fc99c2cd054f02fdb523bb61d90b20d4d551b9561f1ffaa28c3670545c1cb04b86d800066127c64abad06333b7f2910c6150988700000090bcee3f930412919544bcb8eea41b6d5cbc811e0f859575723836ab710f3dfa7dc2336b8c587f63cf549c7199e1274e83e4342bb679a4a310c2d8eee33807f49d1e1d9b71686e031dab782ed97714d981149d1abeb4cb01b550ddf6230d282aa12dde65a87a4db8c851158d88c961418411ed1479306291de7392a48fb0993e96564c9279aedfac6d7b0cfa4ae8c8d0c90000012800000090cc95253f57e1e449d799d9ae88f705d44fe26e4b5bebd668c618424ba0ea1768d44dc1a7b3cd7990561e78e69f056b8e19264ea97f446a7d4fb009616a5b255ecd6d191fda872fd8b9f674f442d890c92448f12b249e081cebdde579134dc7a48874aa64dffed480906145a7c1113cf3189daa1781874bee162ec5f16ee312bf976cab53d24c04016f4dac5b4480f9bc000000904776d02d6cee37a71ec4453e2952e311d9bf36f0348edd0d5b4a3730400525aee6ee5e68029348e088e7c175ecd3bbd673b6a812a7b696c6971d62beb98077b63a32e244fe8c3751bcb8d659c935b75229c50e1735b182fde7ebcc6c9fe25471c50f2f3f95842a6d37dda83bf61c766112c570fe6cc0680ad71d79bd43e90d22e9b1619077c717fb591a9754692996100000012800000090a26e57830438298dd3838384705cf18b35e3a15039693890c52c431e51448366de6cf815d9d04165e37eb33cdfc4273ef58c12398cdd2ce7b9908b2658413862300518f285306a63ab1e9d27442106b320cccdec81c096e7810ee198bc79085f9e92167998213d3217735b229da0034b15d50665a1f0f1928674ccaa57aad3e56aacfd7bbc6e8903f8d2fc56e58df8580000009091aaf6da56e346e06bc185ae1b4707ab118e17c44e837dc7898902e3513b75e47f08a4bbff9c4946fcdf9d9695958740f705c0dcf714dc386d694052e491009611ba3654c18c650bde72c4b0e9588aaa1ee848824c4047be7d47f194fb3ee26e9effc349936f6de348155eabf208f10822bab739e4ed52d9ecf749c133a17cf892b6ea460ab9d1c2d141353553ca7b420000012800000090542778661ad1536265596e9b9acb62c924daa7d39bc9708f161cc30a193d1c26e48de678cd62b96a7adba0eaff03892c3c769a5d3afbe98504326b0218355bce4d8097f73a443c30f674ea9d16b96e7826908b96d258a3db1ca1d7d3e1014acd9233deae60afe89e7d34ccc4be8a23ff1b6cadf34bd65a361fc9ea082dd9ee0fd3fc3295d7250cd31260362ef41b9bea00000090b71c893fc2dfd27bb72055bf2b5da1f092a8b28c7cef6d5c0daa9a535e038fcc9ec51b6c6e7f4b5aa65a8813d75fc186d99b6d2714cec0fd39b4dfe8d9063d314b39950a7fadcd993df3cf226955274216a0aa1a50d95862ace4750bacfdcf95d8a1b11fe38bcce3d27a8419643e3ffa278f5c4ae4597fe9ed6214c05b6559913b06b19737467b977d9c04e6354fde9d00000ce40000012800000090df814d37251e81d9529dbb210309f4a0b4fe9917300bc980db42af0eebd1b708f3911ce74a3b2cd0fcf258894d04382c48d47268ce668a558f54459347c0a0c1bf0359727d927f928010952c0d611cca1cdd23b76143e5305a250be2f3f54929a3a18759ff59046597a6c9d877076fe10aeb57b23c9c454b9bc26ad78796618fb619bc361f38aefc899eea4a187cce6e00000090a8a060ef4b5f61dd86ebc67dec1726c3096d06d6879a2474e055de985cdb00ed0c0af11506162f21d39199bcd886bc17a23df10142d4575c7820d889de0ef15580ad003192010d261c38646a1344368f2a9dff1ae5b23072b70871cd2b7588fd65bd8bd44ed7719eec4e088334e5986021484946bd90786fd4fc39dc52fa86ed7886d001d3ee64206f0c5de7e517dd560000012800000090093af15fdd24dc60a17c63743a008945caf76d4fecfb8b973db7864fa2d23bb18a75df0d7d0c27bb3e8241363f4c2b252264173e1c6478617f1513528342001d4cdc6bafb17ab9799d0aef54910fbf3f07dc8e8f7fbb24b2422fbdf5dcff71a3104d34ab492e30ae6e229fbe3b2a18f510e28ce2d665f568c14f67b707526eb6c5423057221c87e57364d4f929d92a3800000090ea6bcb48020f5d194f522ec07220f2859e160a4def93c50d9b2e3838d744402cc902a12fb836458aa3724d521fbdab0f7ce5f2cad792baa06d37d9b880a3c3a6f39b760c0e6386b2ece755b0b70709af2e6fd20503219361878ca733d0846970bc36fd66c2d65a115d05c9be0f1895a5068551f353629807bb187b328dcb93610d1676470ff6692f37aa2c7a1aa78277000001280000009045fd3ab0ac586a55781d3ad84b47bdd448d4312c21b58756bd6e866d6a3aa459c8c08b3751a69d4ed7dad3494b61cfd4c40af77d69d0f4b74480b1674d47b5c052b0c823d8c6e270dc548de8994cba06135c22ec535e8fd699da3dbb013c8104c07b036013b9733ec7999a99908fb6af14c649a5f2fdef651151524f247f4cc868ff54c895683c6c06af0ecc5352f0cd000000900221be3ec7a77ac0c02a89f5f6afc7ce0d400af4c7f3c9e8f333db0f814453bfbc72cdbcb802cc6dd87b7d2402a70f0750355f7dc44bb5638a71b8484bebc29d26855821bf0bd5752717205f44b6083220e091cd96d0aae102d13623770b3694efcada6486d31e271be9f6ed184dc138007521e86396c8167bf1e0769292d6eb44205a4e7b8d7b14882975f8c852b8ac0000012800000090f621215cbf07f263742ddf8bcf10c81af2a3ba85c2b830458573aa064b63146cc865e2bfa6ece775548f16918f922ed4267fa6c5875fccc25077f561f75b6da876e4dbfbd32a4b10af407180a73c1d04081ca4c9efdd437e2db28e2d4611bcbac333710462cbea53c2481b75bb04e95128499f0e8799df086708db8234819064cf51c67888896ba7bc0d0e89f763439400000090293e6dbdfc2c738098231b4f1c8f0d739be756ad24dfc1bab7245ce3cab2cee0293f34adfc6b2b8545cc225caaf19ed3298dc00bedae7dc5de5516804661b960984916f9b978e6700b002dcb201ccf471e22f3ff617c4874ef51397c30dde547818a89b211f9dbdf3dfd8fd0d8d3a21a09da1a1161f46869d65008c3a039637cfe18c39a19df1374483b42b6cf9767b80000012800000090985d646180b524e4b49ad555323bedfc082613c7d6979162b43fc3c7719c15c801685bcebc7e855b18aaa215f014fb290812dbe0c720ce24fdbd0f4b4953c8a9bc8bf4c2f9ca4bcf73afdbb7430fe659282277f19c72e657c3dfeb0492e55caa22ab062f983eb417eb74fa6e518e6a30150854eb71d0a8aa344b1de99ed6afefdadcca0b97bc7c1c2a9d41997fe83530000000905d1e0305028278eef7df7c8df1d39a9945c64a925cdac4b7247a7724175b3b1cee30168ca5234b6efc50c2d23e7877924e2497d6b7e4ed826686e1a8093aec5ab08ad36cd2e04ef235cf7a30a08ef19c23fb2add0dd306fa4ae8881e91ea81b7db90bd32e28829b96075805fa1cab6900d9e963ff5232efc60f516bd73a5158cfa7a29a9bb07ba3a6c20be2e8315c5c0000001280000009007faeb8e333cced938005055ae4a104329ae809af5e6dcf92c13d351487c87d3915868c20b87e59cbaa6eccb9174d56f1ad6a4922be01d2671f5cc1d1d160d9c03611572b49bde324538fb7dd8e24687297e6490ee16de68a15f0f3db95955d8bf104cdbc6c90c5c76aa1ce1b27109552f0b09ed4e193f5cb47b3f68c5b9aad2e59b3995420e3bc6540d2fcf26d30af700000090ddf990e84cca0077f0d8c4ec255c2eab76c668e84cf5ae5ce39e06aa31ea6bebafea2fc22bbdbd2f227327cdaac2118731b620882606e69069db26b1773eb2d4f245227c34ee85ce7b87f19bc235e58723aac9fda228bf5260b1e9d8c64b1e4ac89f788b294e2a800ec83824e152379a1408b5e850966e49836a51af8ce92c211b3ea936557152c88fdcc16f3e398dbf000001280000009010002d75ba1ff4554ad77a06af2fac51123649ec050a90597c7bbf478b34983b6f7b15944b5efdcd8d54e4ebcf40a56026345a578bb526cff840fd54f335c002673717bc46c72a97dcd059a2d611985e1a19a8367b402f52524385a5ec56e6207a9e7c4a10e84fac572d70e9b3cd1dbb1fa7fe1e39bb6415bbaed8f6303a99a23ec054507ad79c9bc29d0dfc0bd9447b00000090f7ccb463266a4ff7c273e9c0a136956b7c6c429e2ab773a18576ba75a23b8f8f543493d5adc9e49ad9d30b0d3f23932d60020d2f2847ee8357fbc6533eedc9be6b55d81d87500628aa400d331de9d83d2a3fda76c9bdfc820d094625a4596e02db3e604da144fb834934a4e2d93d133e0d404301278631650b7b68bed665cb50e03f214684d822e14a300a71457778e5000001280000009080b451e6c9a2c420625c89eecda47b21b03a949e5315c38d9b1c39e59f5009deade992bfd878ae2397bac5d4bf2d0284aa9f860a70e6f41ac3b1dc5c0349c2b5585f550a5fe67b70b817657c92579da82ab5ea0d7f61481f802c65bd54b3c87f52dae10c80db0c79d9fa1cf9b45b7da51fce4e7fc0463b489c0512b1165f3f42c75ce5eb050843318907374e280d31fa00000090b217fdc174010515389583c88d932d0f285943bd9c3357335e36caee6b9730f391e6f34c191f74f64d501bbc72d370e08cf50504dc2ccef5073ce027c9ab057da6338d64db7891f135a8033c395e9e53206e12f5ebe3796201c8c5fb6d0953641c5a2e89efd038aebcf9a0c4f50d1efe2464346e02ae75c843c6b11a1cd84a1b996417e45d4b9632e9dbff6b8db094650000012800000090e93cdb4a85f24cd964586f1e9702d831f03a265294325040cb2d5510d18d4a5186074cba2d5a70a0a862590867842de3baa87c6ca244fa5e18445f78d21fdc092b3c65a21f34c04f69e10c201013efa12b63b34d3a5f84f6ed2ceedc99608fbc6877950e61e5c971e5d0d70a8a6c65440c083a8218ba4687f3c1c60a94a5a5fd312276373e45a4685282a59c347a5cb200000090e2b0dc32f29f76e093c78c03bd76fa41ff202875dfd2d4dc7b699c2bc3faf4bf2456d6c69ecb03c27f23e8a08f6234f58aa364dc86f829db03509e4076a1f2aa9937c64cec202f020616b3afb1808acb154ae4da1dba87bb1f7ef9ec18b4f81c93699422fbf92201ebb8d6a9051da20d09fd65e6a5dd210d275d2ce5812a6938fe864ddb6b2f2eda2f97eccc7e270cb90000012800000090dc850cdd754d5562d2cd0a79a93dbeaa8073e8c59be2570e7baa1fb1c4708bf5d247b4c48f47da5504112331264d08219e885e7fa72af442e567b79cb2e47bb074f50ff258252ed089b52d73999ad1c6016079807c678fde5d22a5882e20e8444b3bdac43c815022ad11918c83b982cc23b269e045508b459b0147df499459b9cf406fc80a366fe92eb48fae1ef2f020000000901d1f47c4c1cb18a284d574eb6dac526160fce963527d2762b13f81e4410969a6fddcc1f847fc435907806060857bddd7798b4b04001edcfab63ccb41ec96fa3ba28f8ecae989f85a444f4dbbc226a69a24c309b920b961ba352e9ebe153e51137ff5afe88a0c6e1b1e1044d51904c31305b4180fcf006cdeae8184dc4b5e2e0f1fbfeefb57d3309d45ee8d924f0438e50000012800000090c00446a7e4204241776d5234a2bea9ed935e437d9ff8d31cff62c072c294cd709336c171c4d2008a18633174e321640679b645b4cabafc5702f8936605d9825eddd72a4aa53b6899d22642e58486ead90e7f35b24a3beaa472dd3f8be3c8b65c001b10252457d252120c8273f645f52c2a2cd4485def46cf3368fb5e4703f130cf1b6ede3df24c3cba58ccfbfb5c1d710000009022a8ef23801ff2e837f3e5db3361c6897db0cebaebfff4bc19fe2de194ae245718259c23897359d07e8594d4086da22c0969b3cdafdfb20b6df113841c3e2520b776025831c68c0a2a1dd4bc581df7631d6a743a468d357ea936317efca7f6ed04c1be2dc7e6a1b829e3c9fbb423224c0813db64b88a639a1e2bb0d28c118f29d9aea07e5f7eb68c0e6c044d92e6c5a200000ce40000012800000090e2bc3a48af462e994976367fde39209c31d47fe41a4f37fb644f56fe6421a805cdc7cab167dda0238e4b2d6fe9ff7190d5b00977da7d3bbff603adc831d7b5c2991bf9b8fa11f7b0cea097d0f2f4437401198ba8112a0bd4bc1f536d844648050559ba594e2221f41ff991b831afc04c16d1e2987434b415a200227d598641301debed676bc98f6fac8dd6b00ec3d5ef0000009090adc3bdfc913e1e8f6fdd10fd6e3b62f9a64220c762fa0e0074c2b6fc4f61c91fded0e9f550dd1fba9ae651f1ac0450a72f1b41be401fbf02f969d1a3358514748f32d4093cc1c301db661942c58b49274dba34e513a07634442e055dc224fdd4954bc4f5ec39b56f263ef83ce6d81105dfbcf76b28810a08b23399c067c0730cd643ca0a71c14dfd7fe6a7ca4c7cb80000012800000090cbd5b3d8671123dc24f039239bcb164750d2b94f9e10b011bfad3231ea137b6ca803f15a5adddac120f372364e74f8fe2503f3ae41e6e159d22e02e86eff74db1af028b4d491ab8dd8ef1b712c9454291d8e74b1faa3a9a3a2897661d52b5d38c879f0ee6c25d9a4cbb334b344e0c4d724c3310ad42fc29094d89c434ea332abc10a1b59469f892b4fd60b01bdb4fa9200000090183be88ab1402a8105ce14826e74cfd26ac966dd9c06b2fa1cdf0f92d2837637cb37826e4c05c5207220d0eff1a8efc95d161de351749daffdffc974d40d50412fe80440ad1f03fbeeca8b4169086efd1710aedff6957061c9a814b7c86fab671102290d3e28786784e925f5fec867cf1c64cb4e4d2d7e9719ee7ef0ed4b1cc0e4de0a4d6372de36162ba9cd661436370000012800000090492b1ab03ad6554322c047f02efbdd83ed97509f1820395508471b0df7ed58d463e3b73735051b72d82c513eea1b98d4d51cb7b8ca4fe23651f3f5155f18e4555c093b1eb6c2a98171b714c6601f440224e4f0a5e1cfe404f51d314024cf5c4b1424a7dff3597204720623c0d03b83552ff2b3f159e3764f400465a9637d4d5ecd540df7f378b00858927e1df1c029be000000901943fd9faf476880c444febbdb07802a24dd21a945512a7f86560d1acaf786801b297ee3fdad4d14db06afad27c5181aa8c3ed4db540f4f819866471204e2a7efb9903839e71df18c998f3bba2a5c6e504f43bc05c038d0e7301a6f57bb73e9b3d346dd24bfad2cd28024666d7aea47d0a6edac531b795820968adb825f07da1aa3da448e6bf57880f81d830698f1f0d00000128000000901f0b90e626f010f5f9b965348175df86cad98ee79276e02f5a8ab74d96ddfdb75f1da24e300f6252ddfc53c30b7d57c58977a242c8bef37ecf77e7afc8527172780ff4b8bc2e1b52696dd1c6b79faa1e243e88c996d3cf7306f4e3f0062a6c5ddf4d1e0efbc34adb2bea97f1904944270fc64104193d0210726362ad9fe624bd2953651ca3ba77247afbc581b35df64800000090e7ce6a2a5ec7cc4b32e12ba70c1c491206a85c6bf637dbf7ea3e9ef5c52fec6b421e71eb44fc46950137dc8f780d2bec886dc91616afdd2c700c24832cd53fc692a92a3aec923e85eb8a1421877347cf1678ef20365b09bee2f356edeb6066db70c6eaccf4e1afc436136c5acc6ef42f0a64e5fa94a66f3c7ee8fb08debbe7950b0d0307dbc49ebdd86d5295f53bd58d00000128000000905eed1effd49b3c182fd72fc371f22360fafbc935c94329bbea121b76c3f47c10d7a24852dffbece757558a2a906fccf152698cdcff1368c5ffb433e3b9a16135ca0058af88ca48bdcdc00b6e7dd0532511783b35ee2e85bcb2b5c2a2a0178b8bed4b7dce99d2ed823e9ce610b19b8cc62684e4c14c6085508b7e2cb240fa6efd4ea0e755a720a019e47a1b9ead8ebef0000000909861d898f71affefaa9c24629753b3e6988263567d48672571bc46f69b65f35e0371c72a53ab087fede69bcc9bff623055ee1426ab173447a6cf84ec2fdbc151daa772f1c24de647d606fe99bacff8f000b17c743ed65e5abf0d5f7eba1b53adf37c43c6dcbfa399fea776af3842eb2620fe73dd99bde3c733b7966b9da121511e389985f51368d69dddb05d8ca4a45b00000128000000904f4079d8a2b1fef6ab268d17e10f748d360790081658a4dfaf52931efffe7c2f041923dd29a8a0b5ae7c0a16b1915d68921698d3c99351d8325f4da2422360df766a7bf49fab1b29b7d873951f21d3840f521987c97272fc20d483ed63f6a461273ce23bc3aa6dab2976243655248c0b2923163e782dfb8bf27c3171be7f86da6231fb2992e539dd1f4743558826d2e100000090a98c0b3206e0ef65c45ed93069c78aad33e45aa2bfb121a7e5a45313cb5758c6cd78dc20411fab5ce6cfb52413a4593a8afd3b8198cb753cde0a4d96d3839b66fafc974611b39fb9aa04a640c4e251800fa3ceac5567b9421a19ed92da33ec3a9b145ed09ed058837cb8d51da7bbc879052258bdaa60e493eea98e24bbb556d300eb0206ad4a2b336f3ecb818534533000000128000000908aa7ae30702c869425bde7798ed24dadb39c459ff83ea139d9f6ac6e06a984475cf323d7d45e95c240e346e393174c3d5e91ed9a4f05f497bfbb68a6168fb83d82903c1a5bd9513253a2049abd087d5a297db4b7a90452627a890a7fb5b914af3733951cd13229e60c4c72b7f8be532021cc9049bbe19b38a40ca1f5c1921060814928dc8383345821e4fe686c3d30b6000000904811797f420982fbafd20c05b67a7ba97ad472240e24b1539f533fd790c8b31559ba3b593391ce329096c708d20cd8104e7c834b646ce963c5f634cc4c97b85d2a923fca24d6282c01eb098c33c81f8829c69b93ba28f54c7d0bf2bdb9fa695ad3e2fce86f02adb1aa053ac1848fc01e04776495af37c4115237a3fb0e833cfb47032ba8ab4686a7796d23d5e36f9fba000001280000009026dd418e127c509cdb836ab92258ff19b76bd5e36ff73901eb16b3a6bd3a84df61b3657d3f317f95852e0d723ccf96f19b7fc91655a6a597755164266cf8b99becda4a71d594a7469349cc0bc34e3f10062716c1c60b10662c4cfe78d21248409ec50eebca288509c0a0dbf5f320a21b28dec7530b02753f920944d3efdc7d7e59c0a4204ca900e22aa59e04c5c5a6f20000009097ec2bfba0e6dc44f0c7fde2a6b8c08da93af4b60313d597ea441cac361dae66799037a1fc9328b37850cd730a6b2895d111bc7a80c7d94ed8dbed022736042e579a8a0c96e40abb5f61abb1536718f51d87b83c4d69ab74c99be50aee9ceb67d2951a16b265e9356e264c200dcfbf2000967f66bf7f490bba839a2f4a73fd5c15677f6cf311b65672e708eaa2503d5400000128000000903d05177da328f50a6b1735b7f3c7ee275b145e2effcc456a0c5a2b6b85366acdaebac9801eb0510cd1823bd01139ab5d3db0f38d2cec64e653a14a0c5461c5e2a904f640d4ca3bafbb0b0f4be9739cf80bffbee46f92294abe5558926bab3118826687aac02ffbf1d68424fe9af65b2916ed9211d0d3d2d6917c658545188720424ac98fc35342de7cd07429def9422900000090e1d45e36164240913087d829bb92535b93c0ffd41386ba5c3d276dd57611f6e68b3244f1cf5f75764992c8c456850c135e3aed4486dc85eddafd4921cccfaacda04c274181cebe2ed0e580d1350d8a3e1b4777640a7126168ce8772f7ad20463a3d5b9c05dad1c26afd2e9cf762c3e6304f289ac1d13c4edcdae63f8277af15e80590889a55337e81b118ffcdd9982180000012800000090f0f12e1fa0945b93a198c6631fb878417b46cb176a2bbf347eea9ef4d1729d28e940a208f2a1132325f403a3d4661da1e1d0b2544ac39ab2c6023e5fcb2ca1737e0a545703bfa9c4ef3f90dae7cb42151e25fcbd5964fdb9002517105469c59b5482528fcee58c786344c30cde4caee9040346581b540d44d1287d963b5889a0066dcba50ad62940317292d9794cfd530000009078dc1348b125a76fee5aebd336661e4d0214c5cbd94fcddd08c1526f67da9b789cf7bb879f6296647396073b4036b462e0d66e6b45c3e602494b8c99024ba54090fa7d6cf9726b49b6d22aa7bee4cc33096bdd8e3015a9561d352e009dde3a772739291878b2b17e96ee8c415bbb6cad1ceea85f24360cafe7a28cbe08d8074605a72facccd92bb307fcc855d413f8ec00000128000000908d2a8d2e41f9d850def8241eeb22d8fe08c2555c618b155b75d95e96bdb0b0b377cd0ca2376eee3307cb50328931faf5767ff80eddb2ce21f184b7942aa019bd8e60a881715e6c382433e77761296bbd025dbf23d1b00f9d25dbcfda67f9b4ae86a387fb7bdf3c5241e0b78c839b90322a7e03779942b0dbdf47c34b13c7d671358b008a96827396b695f0ac3e32894000000090df5748605961a0e6be2ff2e92b6280110752d8a76a8ec69bf9b7f4d916ca4a5dfede149be73b24e6426e993ded9af3dae9ca39f2e43363dbd1b36a9ec44d2b7736a4936a16096c151be8f8a3f907ac33116b667bba9a8297de6a994b2b7e34ff897749999724668a3753d5caa80d571b0bedc76486de3d07973636e9ee1897e7e62f94352d22ec90a956a16db6d36027", + "calldataHash": "0xf4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", "decodedHeader": { - "bodyHash": "0x2ecef12d484fe78e41e47ec27a8d2d29c48a9b810aa0391ef1bd11c522eb5ab9", + "bodyHash": "0xf4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", "globalVariables": { "blockNumber": 2, "chainId": 31337, - "timestamp": 1705497358, + "timestamp": 1705501882, "version": 1 }, - "lastArchiveNextAvailableLeafIndex": 2, - "lastArchiveRoot": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", + "lastArchive": { + "nextAvailableLeafIndex": 2, + "root": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907" + }, "stateReference": { - "l1ToL2MessageTreeNextAvailableLeafIndex": 32, - "l1ToL2MessageTreeRoot": "0x06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b", + "l1ToL2MessageTree": { + "nextAvailableLeafIndex": 32, + "root": "0x06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b" + }, "partialStateReference": { - "contractTreeNextAvailableLeafIndex": 8, - "contractTreeRoot": "0x022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb0", - "noteHashTreeNextAvailableLeafIndex": 512, - "noteHashTreeRoot": "0x24c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f96", - "nullifierTreeNextAvailableLeafIndex": 640, - "nullifierTreeRoot": "0x268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e", - "publicDataTreeNextAvailableLeafIndex": 160, - "publicDataTreeRoot": "0x039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a" + "contractTree": { + "nextAvailableLeafIndex": 8, + "root": "0x022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb0" + }, + "noteHashTree": { + "nextAvailableLeafIndex": 512, + "root": "0x24c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f96" + }, + "nullifierTree": { + "nextAvailableLeafIndex": 640, + "root": "0x268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e" + }, + "publicDataTree": { + "nextAvailableLeafIndex": 160, + "root": "0x039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a" + } } } }, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7d30e06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a01f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907000000022ecef12d484fe78e41e47ec27a8d2d29c48a9b810aa0391ef1bd11c522eb5ab9", + "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7e4ba06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a01f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002f4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", "l1ToL2MessagesHash": "0xa10cc8559615be5a44cfb608374b1f84fd11cdb5844ebffafd92a77c068350f1", - "publicInputsHash": "0x2252558c6fbf4985ca1045ddc5cca020d6ae5533ac2f1bc7f5f4f5d57394348b" + "publicInputsHash": "0x280997cb13c04842e88c31fb0d4db23d591c48aea40d9a5aa2e18fd4c72a0358" } } \ No newline at end of file diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 7d69b5a0bcb..65aa168a7c8 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -104,7 +104,7 @@ describe('L1Publisher integration', () => { const chainId = createEthereumChain(config.rpcUrl, config.apiKey).chainInfo.id; // To overwrite the test data, set this to true and run the tests. - const OVERWRITE_TEST_DATA = true; + const OVERWRITE_TEST_DATA = false; beforeEach(async () => { deployerAccount = privateKeyToAccount(deployerPK); @@ -286,35 +286,35 @@ describe('L1Publisher integration', () => { timestamp: Number(block.header.globalVariables.timestamp.toBigInt()), version: Number(block.header.globalVariables.version.toBigInt()), }, - lastArchiveNextAvailableLeafIndex: block.header.lastArchive.nextAvailableLeafIndex, - lastArchiveRoot: `0x${block.header.lastArchive.root.toBuffer().toString('hex').padStart(64, '0')}`, + lastArchive: { + nextAvailableLeafIndex: block.header.lastArchive.nextAvailableLeafIndex, + root: `0x${block.header.lastArchive.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, stateReference: { - l1ToL2MessageTreeNextAvailableLeafIndex: block.header.state.l1ToL2MessageTree.nextAvailableLeafIndex, - l1ToL2MessageTreeRoot: `0x${block.header.state.l1ToL2MessageTree.root - .toBuffer() - .toString('hex') - .padStart(64, '0')}`, + l1ToL2MessageTree: { + nextAvailableLeafIndex: block.header.state.l1ToL2MessageTree.nextAvailableLeafIndex, + root: `0x${block.header.state.l1ToL2MessageTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, partialStateReference: { - contractTreeNextAvailableLeafIndex: block.header.state.partial.contractTree.nextAvailableLeafIndex, - contractTreeRoot: `0x${block.header.state.partial.contractTree.root - .toBuffer() - .toString('hex') - .padStart(64, '0')}`, - noteHashTreeNextAvailableLeafIndex: block.header.state.partial.noteHashTree.nextAvailableLeafIndex, - noteHashTreeRoot: `0x${block.header.state.partial.noteHashTree.root - .toBuffer() - .toString('hex') - .padStart(64, '0')}`, - nullifierTreeNextAvailableLeafIndex: block.header.state.partial.nullifierTree.nextAvailableLeafIndex, - nullifierTreeRoot: `0x${block.header.state.partial.nullifierTree.root - .toBuffer() - .toString('hex') - .padStart(64, '0')}`, - publicDataTreeNextAvailableLeafIndex: block.header.state.partial.publicDataTree.nextAvailableLeafIndex, - publicDataTreeRoot: `0x${block.header.state.partial.publicDataTree.root - .toBuffer() - .toString('hex') - .padStart(64, '0')}`, + contractTree: { + nextAvailableLeafIndex: block.header.state.partial.contractTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.contractTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + noteHashTree: { + nextAvailableLeafIndex: block.header.state.partial.noteHashTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.noteHashTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + nullifierTree: { + nextAvailableLeafIndex: block.header.state.partial.nullifierTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.nullifierTree.root.toBuffer().toString('hex').padStart(64, '0')}`, + }, + publicDataTree: { + nextAvailableLeafIndex: block.header.state.partial.publicDataTree.nextAvailableLeafIndex, + root: `0x${block.header.state.partial.publicDataTree.root + .toBuffer() + .toString('hex') + .padStart(64, '0')}`, + }, }, }, }, From 1008ac1fe9dddcf6e2fe10f4ba2ff8182beeff73 Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 15:12:22 +0000 Subject: [PATCH 19/23] formatting --- l1-contracts/test/decoders/Decoder.t.sol | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index 1c0742947ac..008b1494a4f 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -149,7 +149,9 @@ contract DecoderTest is DecoderBase { referenceHeader.lastArchive.nextAvailableLeafIndex, "Invalid lastArchive.nextAvailableLeafIndex" ); - assertEq(header.lastArchive.root, referenceHeader.lastArchive.root, "Invalid lastArchive.root"); + assertEq( + header.lastArchive.root, referenceHeader.lastArchive.root, "Invalid lastArchive.root" + ); assertEq(header.bodyHash, referenceHeader.bodyHash, "Invalid body hash"); } From 273f241c35a607d6ecfe14a542a598427cbaeb0a Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 15:36:01 +0000 Subject: [PATCH 20/23] HeaderLib --- l1-contracts/src/core/Rollup.sol | 37 ++----------- .../HeaderDecoder.sol => HeaderLib.sol} | 53 ++++++++++++++++--- l1-contracts/test/decoders/Decoder.t.sol | 4 +- .../decoders/helpers/HeaderDecoderHelper.sol | 6 +-- 4 files changed, 56 insertions(+), 44 deletions(-) rename l1-contracts/src/core/libraries/{decoders/HeaderDecoder.sol => HeaderLib.sol} (77%) diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index 6accbb836f5..fbced8300d8 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -9,7 +9,7 @@ import {IOutbox} from "./interfaces/messagebridge/IOutbox.sol"; import {IRegistry} from "./interfaces/messagebridge/IRegistry.sol"; // Libraries -import {HeaderDecoder} from "./libraries/decoders/HeaderDecoder.sol"; +import {HeaderLib} from "./libraries/HeaderLib.sol"; import {MessagesDecoder} from "./libraries/decoders/MessagesDecoder.sol"; import {Hash} from "./libraries/Hash.sol"; import {Errors} from "./libraries/Errors.sol"; @@ -56,9 +56,9 @@ contract Rollup is IRollup { bytes calldata _body, // TODO(#3944): this will be replaced with _txsHash once the separation is finished. bytes memory _proof ) external override(IRollup) { - HeaderDecoder.Header memory header = HeaderDecoder.decode(_header); - - _validateHeader(header); + // Decode and validate header + HeaderLib.Header memory header = HeaderLib.decode(_header); + HeaderLib.validate(header, VERSION, lastBlockTs, archive); // Check if the data is available using availability oracle (change availability oracle if you want a different DA layer) bytes32 txsHash; @@ -99,35 +99,6 @@ contract Rollup is IRollup { emit L2BlockProcessed(header.globalVariables.blockNumber); } - function _validateHeader(HeaderDecoder.Header memory header) internal view { - if (block.chainid != header.globalVariables.chainId) { - revert Errors.Rollup__InvalidChainId(header.globalVariables.chainId, block.chainid); - } - - if (header.globalVariables.version != VERSION) { - revert Errors.Rollup__InvalidVersion(header.globalVariables.version, VERSION); - } - - // block number already constrained by archive root check - - if (header.globalVariables.timestamp > block.timestamp) { - revert Errors.Rollup__TimestampInFuture(); - } - - // @todo @LHerskind consider if this is too strict - // This will make multiple l2 blocks in the same l1 block impractical. - // e.g., the first block will update timestamp which will make the second fail. - // Could possibly allow multiple blocks if in same l1 block - if (header.globalVariables.timestamp < lastBlockTs) { - revert Errors.Rollup__TimestampTooOld(); - } - - // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. - if (archive != bytes32(0) && archive != header.lastArchive.root) { - revert Errors.Rollup__InvalidArchive(archive, header.lastArchive.root); - } - } - function _computePublicInputHash(bytes calldata _header, bytes32 _txsHash, bytes32 _inHash) internal pure diff --git a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol b/l1-contracts/src/core/libraries/HeaderLib.sol similarity index 77% rename from l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol rename to l1-contracts/src/core/libraries/HeaderLib.sol index 5839dca1462..c6481f53ee0 100644 --- a/l1-contracts/src/core/libraries/decoders/HeaderDecoder.sol +++ b/l1-contracts/src/core/libraries/HeaderLib.sol @@ -3,13 +3,14 @@ pragma solidity >=0.8.18; // Libraries -import {Constants} from "../ConstantsGen.sol"; -import {Hash} from "../Hash.sol"; +import {Errors} from "./Errors.sol"; +import {Constants} from "./ConstantsGen.sol"; +import {Hash} from "./Hash.sol"; /** - * @title Header Decoder Library + * @title Header Library * @author Aztec Labs - * @notice Decoding a L2 header + * @notice Decoding and validating an L2 block header * Concerned with readability and velocity of development not giving a damn about gas costs. * * ------------------- @@ -47,7 +48,7 @@ import {Hash} from "../Hash.sol"; * | | | } * | --- | --- | --- */ -library HeaderDecoder { +library HeaderLib { struct AppendOnlyTreeSnapshot { bytes32 root; uint32 nextAvailableLeafIndex; @@ -82,7 +83,8 @@ library HeaderDecoder { /** * @notice Decodes the header - * @param _header - The header calldata. + * @param _header - The header calldata + * @return The decoded header */ function decode(bytes calldata _header) internal pure returns (Header memory) { require(_header.length == 376, "Invalid header length"); @@ -110,4 +112,43 @@ library HeaderDecoder { return header; } + + /** + * @notice Validates the header + * @param _header - The decoded header + * @param _version - The expected version + * @param _lastBlockTs - The timestamp of the last block + * @param _archive - The expected archive root + */ + function validate(Header memory _header, uint256 _version, uint256 _lastBlockTs, bytes32 _archive) + internal + view + { + if (block.chainid != _header.globalVariables.chainId) { + revert Errors.Rollup__InvalidChainId(_header.globalVariables.chainId, block.chainid); + } + + if (_header.globalVariables.version != _version) { + revert Errors.Rollup__InvalidVersion(_header.globalVariables.version, _version); + } + + // block number already constrained by archive root check + + if (_header.globalVariables.timestamp > block.timestamp) { + revert Errors.Rollup__TimestampInFuture(); + } + + // @todo @LHerskind consider if this is too strict + // This will make multiple l2 blocks in the same l1 block impractical. + // e.g., the first block will update timestamp which will make the second fail. + // Could possibly allow multiple blocks if in same l1 block + if (_header.globalVariables.timestamp < _lastBlockTs) { + revert Errors.Rollup__TimestampTooOld(); + } + + // @todo @LHerskind Proper genesis state. If the state is empty, we allow anything for now. + if (_archive != bytes32(0) && _archive != _header.lastArchive.root) { + revert Errors.Rollup__InvalidArchive(_archive, _header.lastArchive.root); + } + } } diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index 008b1494a4f..e11586d30b4 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -11,9 +11,9 @@ import {DecoderHelper} from "./helpers/DecoderHelper.sol"; import {HeaderDecoderHelper} from "./helpers/HeaderDecoderHelper.sol"; import {MessagesDecoderHelper} from "./helpers/MessagesDecoderHelper.sol"; import {TxsDecoderHelper} from "./helpers/TxsDecoderHelper.sol"; +import {HeaderLib} from "../../src/core/libraries/HeaderLib.sol"; import {Decoder} from "../../src/core/libraries/decoders/Decoder.sol"; -import {HeaderDecoder} from "../../src/core/libraries/decoders/HeaderDecoder.sol"; import {MessagesDecoder} from "../../src/core/libraries/decoders/MessagesDecoder.sol"; import {TxsDecoder} from "../../src/core/libraries/decoders/TxsDecoder.sol"; @@ -59,7 +59,7 @@ contract DecoderTest is DecoderBase { // Header { DecoderBase.DecodedHeader memory referenceHeader = data.block.decodedHeader; - HeaderDecoder.Header memory header = headerHelper.decode(data.block.header); + HeaderLib.Header memory header = headerHelper.decode(data.block.header); // GlobalVariables { diff --git a/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol b/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol index 19908904c94..5d78b620b2a 100644 --- a/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol +++ b/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol @@ -2,11 +2,11 @@ // Copyright 2023 Aztec Labs. pragma solidity >=0.8.18; -import {HeaderDecoder} from "../../../src/core/libraries/decoders/HeaderDecoder.sol"; +import {HeaderLib} from "../../../src/core/libraries/HeaderLib.sol"; contract HeaderDecoderHelper { // A wrapper used such that we get "calldata" and not memory - function decode(bytes calldata _header) public pure returns (HeaderDecoder.Header memory) { - return HeaderDecoder.decode(_header); + function decode(bytes calldata _header) public pure returns (HeaderLib.Header memory) { + return HeaderLib.decode(_header); } } From 47f53a0b58ff80155a69b20ee98fa7ef8f5135a8 Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 15:51:09 +0000 Subject: [PATCH 21/23] not exposing helpers in yarn-project --- .../aztecjs-getting-started.md | 15 ---- yarn-project/archiver/src/archiver/config.ts | 2 - .../aztec.js/src/contract/contract.test.ts | 2 - yarn-project/end-to-end/src/fixtures/utils.ts | 17 +---- .../src/integration_l1_publisher.test.ts | 76 +------------------ .../ethereum/src/deploy_l1_contracts.ts | 32 -------- .../ethereum/src/l1_contract_addresses.ts | 8 -- .../scripts/generate-artifacts.sh | 4 - .../src/pxe_service/test/pxe_service.test.ts | 2 - yarn-project/sequencer-client/src/config.ts | 2 - 10 files changed, 2 insertions(+), 158 deletions(-) diff --git a/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md b/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md index db038a69592..f71af8aa883 100644 --- a/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md +++ b/docs/docs/dev_docs/getting_started/aztecjs-getting-started.md @@ -140,9 +140,6 @@ A successful run should show something like this: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -189,9 +186,6 @@ Now that we have our accounts loaded, let's move on to deploy our pre-compiled t token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -244,9 +238,6 @@ Running now should yield output: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -309,9 +300,6 @@ Our output should now look like this: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms @@ -369,9 +357,6 @@ Our complete output should now be something like: token }, token contractDeploymentEmitterAddress: EthAddress { token buffer: - token }, - token decoderHelperAddress: EthAddress { - token buffer: token } token } token } +0ms diff --git a/yarn-project/archiver/src/archiver/config.ts b/yarn-project/archiver/src/archiver/config.ts index 29f9731063a..6ec2e2fa994 100644 --- a/yarn-project/archiver/src/archiver/config.ts +++ b/yarn-project/archiver/src/archiver/config.ts @@ -73,8 +73,6 @@ export function getConfigEnvVars(): ArchiverConfig { contractDeploymentEmitterAddress: CONTRACT_DEPLOYMENT_EMITTER_ADDRESS ? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS) : EthAddress.ZERO, - decoderHelperAddress: EthAddress.ZERO, - headerDecoderHelperAddress: EthAddress.ZERO, }; return { rpcUrl: ETHEREUM_HOST || 'http://127.0.0.1:8545/', diff --git a/yarn-project/aztec.js/src/contract/contract.test.ts b/yarn-project/aztec.js/src/contract/contract.test.ts index 87ce41999c2..8f05d08a139 100644 --- a/yarn-project/aztec.js/src/contract/contract.test.ts +++ b/yarn-project/aztec.js/src/contract/contract.test.ts @@ -26,8 +26,6 @@ describe('Contract Class', () => { inboxAddress: EthAddress.random(), outboxAddress: EthAddress.random(), contractDeploymentEmitterAddress: EthAddress.random(), - decoderHelperAddress: EthAddress.random(), - headerDecoderHelperAddress: EthAddress.random(), }; const mockNodeInfo: NodeInfo = { nodeVersion: 'vx.x.x', diff --git a/yarn-project/end-to-end/src/fixtures/utils.ts b/yarn-project/end-to-end/src/fixtures/utils.ts index efa8afd4610..949f8c46034 100644 --- a/yarn-project/end-to-end/src/fixtures/utils.ts +++ b/yarn-project/end-to-end/src/fixtures/utils.ts @@ -22,10 +22,6 @@ import { import { ContractDeploymentEmitterAbi, ContractDeploymentEmitterBytecode, - DecoderHelperAbi, - DecoderHelperBytecode, - HeaderDecoderHelperAbi, - HeaderDecoderHelperBytecode, InboxAbi, InboxBytecode, OutboxAbi, @@ -33,7 +29,7 @@ import { RegistryAbi, RegistryBytecode, RollupAbi, - RollupBytecode, + RollupBytecode } from '@aztec/l1-artifacts'; import { PXEService, PXEServiceConfig, createPXEService, getPXEServiceConfig } from '@aztec/pxe'; import { SequencerClient } from '@aztec/sequencer-client'; @@ -73,7 +69,6 @@ export const setupL1Contracts = async ( l1RpcUrl: string, account: HDAccount | PrivateKeyAccount, logger: DebugLogger, - deployDecoderHelpers = false, ) => { const l1Artifacts: L1ContractArtifactsForDeployment = { contractDeploymentEmitter: { @@ -97,16 +92,6 @@ export const setupL1Contracts = async ( contractBytecode: RollupBytecode, }, }; - if (deployDecoderHelpers) { - l1Artifacts.decoderHelper = { - contractAbi: DecoderHelperAbi, - contractBytecode: DecoderHelperBytecode, - }; - l1Artifacts.headerDecoderHelper = { - contractAbi: HeaderDecoderHelperAbi, - contractBytecode: HeaderDecoderHelperBytecode, - }; - } return await deployL1Contracts(l1RpcUrl, account, localAnvil, logger, l1Artifacts); }; diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 65aa168a7c8..8d294a3ab95 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -28,7 +28,7 @@ import { } from '@aztec/circuits.js/factories'; import { createEthereumChain } from '@aztec/ethereum'; import { makeTuple, range } from '@aztec/foundation/array'; -import { DecoderHelperAbi, HeaderDecoderHelperAbi, InboxAbi, OutboxAbi, RollupAbi } from '@aztec/l1-artifacts'; +import { InboxAbi, OutboxAbi, RollupAbi } from '@aztec/l1-artifacts'; import { EmptyRollupProver, L1Publisher, @@ -79,8 +79,6 @@ describe('L1Publisher integration', () => { let rollupAddress: Address; let inboxAddress: Address; let outboxAddress: Address; - let decoderHelperAddress: Address; - let headerDecoderHelperAddress: Address; let rollup: GetContractReturnType>; let inbox: GetContractReturnType< @@ -89,8 +87,6 @@ describe('L1Publisher integration', () => { WalletClient >; let outbox: GetContractReturnType>; - let decoderHelper: GetContractReturnType>; - let headerDecoderHelper: GetContractReturnType>; let publisher: L1Publisher; let l2Proof: Buffer; @@ -118,8 +114,6 @@ describe('L1Publisher integration', () => { rollupAddress = getAddress(l1ContractAddresses.rollupAddress.toString()); inboxAddress = getAddress(l1ContractAddresses.inboxAddress.toString()); outboxAddress = getAddress(l1ContractAddresses.outboxAddress.toString()); - decoderHelperAddress = getAddress(l1ContractAddresses.decoderHelperAddress.toString()); - headerDecoderHelperAddress = getAddress(l1ContractAddresses.headerDecoderHelperAddress.toString()); // Set up contract instances rollup = getContract({ @@ -138,16 +132,6 @@ describe('L1Publisher integration', () => { abi: OutboxAbi, publicClient, }); - decoderHelper = getContract({ - address: decoderHelperAddress!, - abi: DecoderHelperAbi, - publicClient, - }); - headerDecoderHelper = getContract({ - address: headerDecoderHelperAddress!, - abi: HeaderDecoderHelperAbi, - publicClient, - }); builderDb = await MerkleTrees.new(levelup((memdown as any)())).then(t => t.asLatest()); const vks = getVerificationKeys(); @@ -429,35 +413,6 @@ describe('L1Publisher integration', () => { }); expect(ethTx.input).toEqual(expectedData); - const headerDecoderArgs = [`0x${block.header.toBuffer().toString('hex')}`] as const; - const decodedHeader = await headerDecoderHelper.read.decode(headerDecoderArgs); - - expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual( - Number(decodedHeader.globalVariables.chainId), - ); - expect(Number(block.header.globalVariables.version.toBigInt())).toEqual( - Number(decodedHeader.globalVariables.version), - ); - expect(block.number).toEqual(Number(decodedHeader.globalVariables.blockNumber)); - expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual( - Number(decodedHeader.globalVariables.timestamp), - ); - - const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchiveRoot); - const expectedLastArchiveRoot = block.header.lastArchive.root; - expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); - - const archiveInRollup = Fr.fromString(await rollup.read.archive()); - expect(block.archive.root).toEqual(archiveInRollup); - - const decoderArgs = [`0x${block.bodyToBuffer().toString('hex')}`] as const; - const decodedConsumables = await decoderHelper.read.computeConsumables(decoderArgs); - - // TODO(#4031): Re-enable these checks - // expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); - // expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedConsumables[1].toString())); - // check that values have been consumed from the inbox for (let j = 0; j < l1ToL2Messages.length; j++) { if (l1ToL2Messages[j].isZero()) { @@ -525,35 +480,6 @@ describe('L1Publisher integration', () => { ], }); expect(ethTx.input).toEqual(expectedData); - - const headerDecoderArgs = [`0x${block.header.toBuffer().toString('hex')}`] as const; - const decodedHeader = await headerDecoderHelper.read.decode(headerDecoderArgs); - - expect(Number(block.header.globalVariables.chainId.toBigInt())).toEqual( - Number(decodedHeader.globalVariables.chainId), - ); - expect(Number(block.header.globalVariables.version.toBigInt())).toEqual( - Number(decodedHeader.globalVariables.version), - ); - expect(block.number).toEqual(Number(decodedHeader.globalVariables.blockNumber)); - expect(Number(block.header.globalVariables.timestamp.toBigInt())).toEqual( - Number(decodedHeader.globalVariables.timestamp), - ); - - const receivedLastArchiveRoot = Fr.fromString(decodedHeader.lastArchiveRoot); - const expectedLastArchiveRoot = block.header.lastArchive.root; - expect(expectedLastArchiveRoot).toEqual(receivedLastArchiveRoot); - - const archiveInRollup = Fr.fromString(await rollup.read.archive()); - expect(block.archive.root).toEqual(archiveInRollup); - - const decoderArgs = [`0x${block.bodyToBuffer().toString('hex')}`] as const; - const decodedConsumables = await decoderHelper.read.computeConsumables(decoderArgs); - - // TODO(#4031): Re-enable these checks - // expect(block.getPublicInputsHash().toBuffer()).toEqual(hexStringToBuffer(decodedRes[3].toString())); - // expect(block.getCalldataHash()).toEqual(hexStringToBuffer(decodedHashes[0].toString())); - expect(block.getL1ToL2MessagesHash()).toEqual(hexStringToBuffer(decodedConsumables[1].toString())); } }, 60_000); }); diff --git a/yarn-project/ethereum/src/deploy_l1_contracts.ts b/yarn-project/ethereum/src/deploy_l1_contracts.ts index 0fdeb6339ac..319243b3c12 100644 --- a/yarn-project/ethereum/src/deploy_l1_contracts.ts +++ b/yarn-project/ethereum/src/deploy_l1_contracts.ts @@ -60,14 +60,6 @@ export interface L1ContractArtifactsForDeployment { * Contract deployment emitter artifacts */ contractDeploymentEmitter: ContractArtifacts; - /** - * Decoder contract artifacts - */ - decoderHelper?: ContractArtifacts; - /** - * Header decoder contract artifacts - */ - headerDecoderHelper?: ContractArtifacts; /** * Inbox contract artifacts */ @@ -169,36 +161,12 @@ export const deployL1Contracts = async ( ); logger(`Deployed contract deployment emitter at ${contractDeploymentEmitterAddress}`); - let decoderHelperAddress: EthAddress | undefined; - if (contractsToDeploy.decoderHelper) { - decoderHelperAddress = await deployL1Contract( - walletClient, - publicClient, - contractsToDeploy.decoderHelper.contractAbi, - contractsToDeploy.decoderHelper.contractBytecode, - ); - logger(`Deployed DecoderHelper at ${decoderHelperAddress}`); - } - - let headerDecoderHelperAddress: EthAddress | undefined; - if (contractsToDeploy.headerDecoderHelper) { - headerDecoderHelperAddress = await deployL1Contract( - walletClient, - publicClient, - contractsToDeploy.headerDecoderHelper.contractAbi, - contractsToDeploy.headerDecoderHelper.contractBytecode, - ); - logger(`Deployed HeaderDecoderHelper at ${headerDecoderHelperAddress}`); - } - const l1Contracts: L1ContractAddresses = { rollupAddress, registryAddress, inboxAddress, outboxAddress, contractDeploymentEmitterAddress, - decoderHelperAddress: decoderHelperAddress ?? EthAddress.ZERO, - headerDecoderHelperAddress: headerDecoderHelperAddress ?? EthAddress.ZERO, }; return { diff --git a/yarn-project/ethereum/src/l1_contract_addresses.ts b/yarn-project/ethereum/src/l1_contract_addresses.ts index 8b46c7c60d6..19fdc4a4e0b 100644 --- a/yarn-project/ethereum/src/l1_contract_addresses.ts +++ b/yarn-project/ethereum/src/l1_contract_addresses.ts @@ -24,12 +24,4 @@ export interface L1ContractAddresses { * Data Emitter Address. */ contractDeploymentEmitterAddress: EthAddress; - /** - * Decoder Helper Address. - */ - decoderHelperAddress: EthAddress; - /** - * Header Decoder Helper Address. - */ - headerDecoderHelperAddress: EthAddress; } diff --git a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh index 6c485e056e9..eae121bdcd3 100755 --- a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh +++ b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh @@ -10,10 +10,6 @@ target_dir=./generated # - a .{CONTRACT_NAME}Abi.ts containing the contract ABI. CONTRACTS=( - "l1-contracts:DecoderHelper" - "l1-contracts:HeaderDecoderHelper" - "l1-contracts:TxsDecoderHelper" - "l1-contracts:MessagesDecoderHelper" "l1-contracts:Registry" "l1-contracts:Inbox" "l1-contracts:Outbox" diff --git a/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts b/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts index 5363c6008b6..b365c03f3ad 100644 --- a/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts +++ b/yarn-project/pxe/src/pxe_service/test/pxe_service.test.ts @@ -30,8 +30,6 @@ async function createPXEService(): Promise { inboxAddress: EthAddress.random(), outboxAddress: EthAddress.random(), contractDeploymentEmitterAddress: EthAddress.random(), - decoderHelperAddress: EthAddress.random(), - headerDecoderHelperAddress: EthAddress.random(), }; node.getL1ContractAddresses.mockResolvedValue(mockedContracts); diff --git a/yarn-project/sequencer-client/src/config.ts b/yarn-project/sequencer-client/src/config.ts index 6b14f491923..bccbe1e6231 100644 --- a/yarn-project/sequencer-client/src/config.ts +++ b/yarn-project/sequencer-client/src/config.ts @@ -58,8 +58,6 @@ export function getConfigEnvVars(): SequencerClientConfig { contractDeploymentEmitterAddress: CONTRACT_DEPLOYMENT_EMITTER_ADDRESS ? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS) : EthAddress.ZERO, - decoderHelperAddress: EthAddress.ZERO, - headerDecoderHelperAddress: EthAddress.ZERO, }; return { From 2b077442d3d7cf2136180804cca8a521a0e51323 Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 15:59:18 +0000 Subject: [PATCH 22/23] fix --- yarn-project/end-to-end/src/integration_l1_publisher.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 8d294a3ab95..df7f9416369 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -108,7 +108,7 @@ describe('L1Publisher integration', () => { l1ContractAddresses, walletClient, publicClient: publicClient_, - } = await setupL1Contracts(config.rpcUrl, deployerAccount, logger, true); + } = await setupL1Contracts(config.rpcUrl, deployerAccount, logger); publicClient = publicClient_; rollupAddress = getAddress(l1ContractAddresses.rollupAddress.toString()); From 61efb54dd8ddab213188001edf2d405d7e58a4d2 Mon Sep 17 00:00:00 2001 From: benesjan Date: Wed, 17 Jan 2024 18:23:01 +0000 Subject: [PATCH 23/23] formatting fix --- yarn-project/end-to-end/src/fixtures/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn-project/end-to-end/src/fixtures/utils.ts b/yarn-project/end-to-end/src/fixtures/utils.ts index 949f8c46034..eb79f56f9a9 100644 --- a/yarn-project/end-to-end/src/fixtures/utils.ts +++ b/yarn-project/end-to-end/src/fixtures/utils.ts @@ -29,7 +29,7 @@ import { RegistryAbi, RegistryBytecode, RollupAbi, - RollupBytecode + RollupBytecode, } from '@aztec/l1-artifacts'; import { PXEService, PXEServiceConfig, createPXEService, getPXEServiceConfig } from '@aztec/pxe'; import { SequencerClient } from '@aztec/sequencer-client';