diff --git a/l1-contracts/src/core/Rollup.sol b/l1-contracts/src/core/Rollup.sol index d1dd91f60fb3..530da5d37d0b 100644 --- a/l1-contracts/src/core/Rollup.sol +++ b/l1-contracts/src/core/Rollup.sol @@ -316,7 +316,7 @@ contract Rollup is IStaking, IValidatorSelection, IRollup, RollupCore { external view override(IRollup) - returns (bytes32[] memory, bytes32, bytes32) + returns (bytes32[] memory, bytes32, bytes[] memory) { return ExtRollupLib.validateBlobs(_blobsInput, checkBlob); } @@ -357,13 +357,18 @@ contract Rollup is IStaking, IValidatorSelection, IRollup, RollupCore { return FeeHeaderLib.decompress(FeeLib.getStorage().feeHeaders[_blockNumber]); } - function getBlobPublicInputsHash(uint256 _blockNumber) + function getBlobCommitmentsHash(uint256 _blockNumber) external view override(IRollup) returns (bytes32) { - return STFLib.getStorage().blobPublicInputsHashes[_blockNumber]; + return STFLib.getStorage().blobCommitmentsHash[_blockNumber]; + } + + function getCurrentBlobCommitmentsHash() external view override(IRollup) returns (bytes32) { + RollupStore storage rollupStore = STFLib.getStorage(); + return rollupStore.blobCommitmentsHash[rollupStore.tips.pendingBlockNumber]; } function getConfig(address _attester) diff --git a/l1-contracts/src/core/interfaces/IRollup.sol b/l1-contracts/src/core/interfaces/IRollup.sol index 67f3ad643218..cfa59546c026 100644 --- a/l1-contracts/src/core/interfaces/IRollup.sol +++ b/l1-contracts/src/core/interfaces/IRollup.sol @@ -27,7 +27,7 @@ struct SubmitEpochRootProofArgs { uint256 end; // inclusive PublicInputArgs args; bytes32[] fees; - bytes blobPublicInputs; + bytes blobInputs; bytes proof; } @@ -93,18 +93,18 @@ struct RollupConfig { uint256 version; } -// The below blobPublicInputsHashes are filled when proposing a block, then used to verify an epoch proof. -// TODO(#8955): When implementing batched kzg proofs, store one instance per epoch rather than block struct RollupStore { ChainTips tips; // put first such that the struct slot structure is easy to follow for cheatcodes mapping(uint256 blockNumber => BlockLog log) blocks; - mapping(uint256 blockNumber => bytes32) blobPublicInputsHashes; mapping(address => uint256) sequencerRewards; mapping(Epoch => EpochRewards) epochRewards; // @todo Below can be optimised with a bitmap as we can benefit from provers likely proving for epochs close // to one another. mapping(address prover => mapping(Epoch epoch => bool claimed)) proverClaimed; RollupConfig config; + // TODO(#14646): We only ever need to store AZTEC_MAX_EPOCH_DURATION values below => make fixed length and overwrite once we start a new epoch + // Requires us to clear values on successful proven epoch and check when a block starts a new epoch. + mapping(uint256 blockNumber => bytes32) blobCommitmentsHash; // = H(...H(H(commitment_0), commitment_1).... commitment_n) - used to validate we are using the same blob commitments on L1 and in the rollup circuit } interface ITestRollup { @@ -184,7 +184,7 @@ interface IRollup is IRollupCore { function validateBlobs(bytes calldata _blobsInputs) external view - returns (bytes32[] memory, bytes32, bytes32); + returns (bytes32[] memory, bytes32, bytes[] memory); function getManaBaseFeeComponentsAt(Timestamp _timestamp, bool _inFeeAsset) external @@ -203,7 +203,8 @@ interface IRollup is IRollupCore { function getPendingBlockNumber() external view returns (uint256); function getBlock(uint256 _blockNumber) external view returns (BlockLog memory); function getFeeHeader(uint256 _blockNumber) external view returns (FeeHeader memory); - function getBlobPublicInputsHash(uint256 _blockNumber) external view returns (bytes32); + function getBlobCommitmentsHash(uint256 _blockNumber) external view returns (bytes32); + function getCurrentBlobCommitmentsHash() external view returns (bytes32); function getSequencerRewards(address _sequencer) external view returns (uint256); function getCollectiveProverRewardsForEpoch(Epoch _epoch) external view returns (uint256); diff --git a/l1-contracts/src/core/libraries/ConstantsGen.sol b/l1-contracts/src/core/libraries/ConstantsGen.sol index be744be97214..25e457e2cf86 100644 --- a/l1-contracts/src/core/libraries/ConstantsGen.sol +++ b/l1-contracts/src/core/libraries/ConstantsGen.sol @@ -23,10 +23,9 @@ library Constants { uint256 internal constant GENESIS_ARCHIVE_ROOT = 1002640778211850180189505934749257244705296832326768971348723156503780793518; uint256 internal constant FEE_JUICE_ADDRESS = 5; - uint256 internal constant BLOB_PUBLIC_INPUTS = 6; - uint256 internal constant BLOB_PUBLIC_INPUTS_BYTES = 112; + uint256 internal constant BLS12_POINT_COMPRESSED_BYTES = 48; uint256 internal constant PROPOSED_BLOCK_HEADER_LENGTH_BYTES = 348; - uint256 internal constant ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 1015; + uint256 internal constant ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 158; uint256 internal constant NUM_MSGS_PER_BASE_PARITY = 4; uint256 internal constant NUM_BASE_PARITY_PER_ROOT_PARITY = 4; } diff --git a/l1-contracts/src/core/libraries/Errors.sol b/l1-contracts/src/core/libraries/Errors.sol index 1687f2560eb1..74b321d48220 100644 --- a/l1-contracts/src/core/libraries/Errors.sol +++ b/l1-contracts/src/core/libraries/Errors.sol @@ -57,9 +57,8 @@ library Errors { error Rollup__InvalidProof(); // 0xa5b2ba17 error Rollup__InvalidProposedArchive(bytes32 expected, bytes32 actual); // 0x32532e73 error Rollup__InvalidTimestamp(Timestamp expected, Timestamp actual); // 0x3132e895 - error Rollup__InvalidBlobHash(bytes32 blobHash); // 0xc4a168c6 + error Rollup__InvalidBlobHash(bytes32 expected, bytes32 actual); // 0x13031e6a error Rollup__InvalidBlobProof(bytes32 blobHash); // 0x5ca17bef - error Rollup__InvalidBlobPublicInputsHash(bytes32 expected, bytes32 actual); // 0xfe6b4994 error Rollup__NoEpochToProve(); // 0xcbaa3951 error Rollup__NonSequentialProving(); // 0x1e5be132 error Rollup__NothingToPrune(); // 0x850defd3 @@ -71,9 +70,10 @@ library Errors { error Rollup__NonZeroDaFee(); // 0xd9c75f52 error Rollup__InvalidBasisPointFee(uint256 basisPointFee); // 0x4292d136 error Rollup__InvalidManaBaseFee(uint256 expected, uint256 actual); // 0x73b6d896 - error Rollup__StartAndEndNotSameEpoch(Epoch start, Epoch end); - error Rollup__StartIsNotFirstBlockOfEpoch(); - error Rollup__StartIsNotBuildingOnProven(); + error Rollup__StartAndEndNotSameEpoch(Epoch start, Epoch end); // 0xb64ec33e + error Rollup__StartIsNotFirstBlockOfEpoch(); // 0x4ef11e0d + error Rollup__StartIsNotBuildingOnProven(); // 0x4a59f42e + error Rollup__TooManyBlocksInEpoch(uint256 expected, uint256 actual); // 0x7d5b1408 error Rollup__AlreadyClaimed(address prover, Epoch epoch); error Rollup__NotPastDeadline(Slot deadline, Slot currentSlot); error Rollup__PastDeadline(Slot deadline, Slot currentSlot); diff --git a/l1-contracts/src/core/libraries/rollup/BlobLib.sol b/l1-contracts/src/core/libraries/rollup/BlobLib.sol index 4e48e4878eed..e87c0a3331d9 100644 --- a/l1-contracts/src/core/libraries/rollup/BlobLib.sol +++ b/l1-contracts/src/core/libraries/rollup/BlobLib.sol @@ -29,74 +29,134 @@ library BlobLib { * @notice Validate an L2 block's blobs and return the hashed blobHashes and public inputs. * Input bytes: * input[:1] - num blobs in block - * input[1:] - 192 * num blobs of the above _blobInput - * @param _blobsInput - The above bytes to verify a blob + * input[1:] - blob commitments (48 bytes * num blobs in block) + * @param _blobsInput - The above bytes to verify our input blob commitments match real blobs + * @param _checkBlob - Whether to skip blob related checks. Hardcoded to true (See RollupCore.sol -> checkBlob), exists only to be overriden in tests. */ function validateBlobs(bytes calldata _blobsInput, bool _checkBlob) internal view returns ( - // All of the blob hashes included in this blob + // All of the blob hashes included in this block bytes32[] memory blobHashes, bytes32 blobsHashesCommitment, - bytes32 blobPublicInputsHash + bytes[] memory blobCommitments ) { // We cannot input the incorrect number of blobs below, as the blobsHash // and epoch proof verification will fail. uint8 numBlobs = uint8(_blobsInput[0]); blobHashes = new bytes32[](numBlobs); - bytes memory blobPublicInputs; + blobCommitments = new bytes[](numBlobs); + bytes32 blobHash; + // Add 1 for the numBlobs prefix + uint256 blobInputStart = 1; for (uint256 i = 0; i < numBlobs; i++) { - // Add 1 for the numBlobs prefix - uint256 blobInputStart = i * 192 + 1; - // Since an invalid blob hash here would fail the consensus checks of - // the header, the `blobInput` is implicitly accepted by consensus as well. - blobHashes[i] = validateBlob(_blobsInput[blobInputStart:blobInputStart + 192], i, _checkBlob); - // We want to extract the 112 bytes we use for public inputs: - // * input[32:64] - z - // * input[64:96] - y - // * input[96:144] - commitment C - // Out of 192 bytes per blob. - blobPublicInputs = abi.encodePacked( - blobPublicInputs, - _blobsInput[blobInputStart + 32:blobInputStart + 32 + Constants.BLOB_PUBLIC_INPUTS_BYTES] + // Commitments = arrays of bytes48 compressed points + blobCommitments[i] = abi.encodePacked( + _blobsInput[blobInputStart:blobInputStart + Constants.BLS12_POINT_COMPRESSED_BYTES] ); + blobInputStart += Constants.BLS12_POINT_COMPRESSED_BYTES; + + // TODO(#14646): Use kzg_to_versioned_hash & VERSIONED_HASH_VERSION_KZG + // Using bytes32 array to force bytes into memory + bytes32[1] memory blobHashCheck = [sha256(blobCommitments[i])]; + // Until we use an external kzg_to_versioned_hash(), calculating it here: + // EIP-4844 spec blobhash is 32 bytes: [version, ...sha256(commitment)[1:32]] + // The version = VERSIONED_HASH_VERSION_KZG, currently 0x01. + assembly { + mstore8(blobHashCheck, 0x01) + } + if (_checkBlob) { + assembly { + blobHash := blobhash(i) + } + // The below check ensures that our injected blobCommitments indeed match the real + // blobs submitted with this block. They are then used in the blobCommitmentsHash (see below). + require( + blobHash == blobHashCheck[0], Errors.Rollup__InvalidBlobHash(blobHash, blobHashCheck[0]) + ); + } else { + blobHash = blobHashCheck[0]; + } + blobHashes[i] = blobHash; } - // Return the hash of all z, y, and Cs, so we can use them in proof verification later - blobPublicInputsHash = sha256(blobPublicInputs); // Hash the EVM blob hashes for the block header + // TODO(#13430): The below blobsHashesCommitment known as blobsHash elsewhere in the code. The name blobsHashesCommitment is confusingly similar to blobCommitmentsHash + // which are different values: + // - blobsHash := sha256([blobhash_0, ..., blobhash_m]) = a hash of all blob hashes in a block with m+1 blobs inserted into the header, exists so a user can cross check blobs. + // - blobCommitmentsHash := sha256( ...sha256(sha256(C_0), C_1) ... C_n) = iteratively calculated hash of all blob commitments in an epoch with n+1 blobs (see calculateBlobCommitmentsHash()), + // exists so we can validate injected commitments to the rollup circuits correspond to the correct real blobs. + // We may be able to combine these values e.g. blobCommitmentsHash := sha256( ...sha256(sha256(blobshash_0), blobshash_1) ... blobshash_l) for an epoch with l+1 blocks. blobsHashesCommitment = Hash.sha256ToField(abi.encodePacked(blobHashes)); } /** - * @notice Validate a blob. + * @notice Validate a batched blob. * Input bytes: - * input[:32] - versioned_hash - * input[32:64] - z - * input[64:96] - y - * input[96:144] - commitment C - * input[144:192] - proof (a commitment to the quotient polynomial q(X)) - * - This can be relaxed to happen at the time of `submitProof` instead - * @notice Apparently there is no guarantee that the blobs will be processed in the order sent - * so the use of blobhash(_blobNumber) may fail in production - * @param _blobInput - The above bytes to verify a blob + * input[:32] - versioned_hash - NB for a batched blob, this is simply the versioned hash of the batched commitment + * input[32:64] - z = poseidon2( ...poseidon2(poseidon2(z_0, z_1), z_2) ... z_n) + * input[64:96] - y = y_0 + gamma * y_1 + gamma^2 * y_2 + ... + gamma^n * y_n + * input[96:144] - commitment C = C_0 + gamma * C_1 + gamma^2 * C_2 + ... + gamma^n * C_n + * input[144:192] - proof (a commitment to the quotient polynomial q(X)) = Q_0 + gamma * Q_1 + gamma^2 * Q_2 + ... + gamma^n * Q_n + * @param _blobInput - The above bytes to verify a batched blob + * + * If this function passes where the values of z, y, and C are valid public inputs to the final epoch root proof, then + * we know that the data in each blob of the epoch corresponds to the tx effects of all our proven txs in the epoch. + * + * The rollup circuits calculate each z_i and y_i as above, so if this function passes but they do not match the values from the + * circuit, then proof verification will fail. + * + * Each commitment C_i is injected into the circuits and their correctness is validated using the blobCommitmentsHash, as + * explained below in calculateBlobCommitmentsHash(). + * */ - function validateBlob(bytes calldata _blobInput, uint256 _blobNumber, bool _checkBlob) - internal - view - returns (bytes32 blobHash) - { - if (!_checkBlob) { - return bytes32(_blobInput[0:32]); + function validateBatchedBlob(bytes calldata _blobInput) internal view returns (bool success) { + // Staticcall the point eval precompile https://eips.ethereum.org/EIPS/eip-4844#point-evaluation-precompile : + (success,) = address(0x0a).staticcall(_blobInput); + require(success, Errors.Rollup__InvalidBlobProof(bytes32(_blobInput[0:32]))); + } + + /** + * @notice Calculate the current state of the blobCommitmentsHash. Called for each new proposed block. + * @param _previousblobCommitmentsHash - The previous block's blobCommitmentsHash. + * @param _blobCommitments - The commitments corresponding to this block's blobs. + * @param _isFirstBlockOfEpoch - Whether this block is the first of an epoch (see below). + * + * The blobCommitmentsHash is an accumulated value calculated in the rollup circuits as: + * blobCommitmentsHash_i := sha256(blobCommitmentsHash_(i - 1), C_i) + * for each blob commitment C_i in an epoch. For the first blob in the epoch (i = 0): + * blobCommitmentsHash_i := sha256(C_0) + * which is why we require _isFirstBlockOfEpoch here. + * + * Each blob commitment is injected into the rollup circuits and we rely on the L1 contracts to validate + * these commitments correspond to real blobs. The input _blobCommitments below come from validateBlobs() + * so we know they are valid commitments here. + * + * We recalculate the same blobCommitmentsHash (which encompasses all claimed blobs in the epoch) + * as in the rollup circuits, then use the final value as a public input to the root rollup proof + * verification in EpochProofLib.sol. + * + * If the proof verifies, we know that the injected commitments used in the rollup circuits match + * the real commitments to L1 blobs. + * + */ + function calculateBlobCommitmentsHash( + bytes32 _previousblobCommitmentsHash, + bytes[] memory _blobCommitments, + bool _isFirstBlockOfEpoch + ) internal pure returns (bytes32 currentblobCommitmentsHash) { + uint256 i = 0; + currentblobCommitmentsHash = _previousblobCommitmentsHash; + // If we are at the first block of an epoch, we reinitialise the blobCommitmentsHash. + // Blob commitments are collected and proven per root rollup proof => per epoch. + if (_isFirstBlockOfEpoch) { + // Initialise the blobCommitmentsHash + currentblobCommitmentsHash = Hash.sha256ToField(abi.encodePacked(_blobCommitments[i++])); } - assembly { - blobHash := blobhash(_blobNumber) + for (i; i < _blobCommitments.length; i++) { + currentblobCommitmentsHash = + Hash.sha256ToField(abi.encodePacked(currentblobCommitmentsHash, _blobCommitments[i])); } - require(blobHash == bytes32(_blobInput[0:32]), Errors.Rollup__InvalidBlobHash(blobHash)); - - // Staticcall the point eval precompile https://eips.ethereum.org/EIPS/eip-4844#point-evaluation-precompile : - (bool success,) = address(0x0a).staticcall(_blobInput); - require(success, Errors.Rollup__InvalidBlobProof(blobHash)); } } diff --git a/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol b/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol index 1ef239d2b1af..9e17d1304601 100644 --- a/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol +++ b/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol @@ -12,6 +12,7 @@ import { import {RollupStore, SubmitEpochRootProofArgs} from "@aztec/core/interfaces/IRollup.sol"; import {Constants} from "@aztec/core/libraries/ConstantsGen.sol"; import {Errors} from "@aztec/core/libraries/Errors.sol"; +import {BlobLib} from "@aztec/core/libraries/rollup/BlobLib.sol"; import { CompressedFeeHeader, FeeHeaderLib, @@ -66,16 +67,19 @@ library EpochProofLib { * - The block number is past the pending chain * - The last archive root of the header does not match the archive root of parent block * - The archive root of the header does not match the archive root of the proposed block + * - The batched blob proof is invalid + * - The batched blob proof does not correspond to the rollup data * - The proof is invalid * * @dev We provide the `_archive` even if it could be read from storage itself because it allow for better error * messages. Without passing it, we would just have a proof verification failure. * * @param _args - The arguments to submit the epoch root proof: - * _epochSize - The size of the epoch (to be promoted to a constant) + * _start - The block number at the start of the epoch + * _end - The block number at the end of the epoch * _args - Array of public inputs to the proof (previousArchive, endArchive, endTimestamp, outHash, proverId) * _fees - Array of recipient-value pairs with fees to be distributed for the epoch - * _blobPublicInputs - The blob public inputs for the proof + * _blobInputs - The batched blob inputs for the EVM point evaluation precompile and as public inputs for the proof * _proof - The proof to verify */ function submitEpochRootProof(SubmitEpochRootProofArgs calldata _args) internal { @@ -152,7 +156,7 @@ library EpochProofLib { // vk_tree_root: Field, // protocol_contract_tree_root: Field, // prover_id: Field, - // blob_public_inputs: [BlockBlobPublicInputs; Constants.AZTEC_MAX_EPOCH_DURATION], // <--This will be reduced to 1 if/when we implement multi-opening for blob verification + // blob_public_inputs: FinalBlobAccumulatorPublicInputs, // } { // previous_archive.root: the previous archive tree root @@ -195,36 +199,33 @@ library EpochProofLib { publicInputs[offset] = addressToField(_args.proverId); offset += 1; - { - BlobVarsTemp memory tmp = BlobVarsTemp({blobOffset: 0, offset: offset, i: 0}); - // blob_public_inputs - for (; tmp.i < numBlocks; tmp.i++) { - uint8 blobsInBlock = uint8(_blobPublicInputs[tmp.blobOffset++]); - for (uint256 j = 0; j < Constants.BLOBS_PER_BLOCK; j++) { - if (j < blobsInBlock) { - // z - publicInputs[tmp.offset++] = - bytes32(_blobPublicInputs[tmp.blobOffset:tmp.blobOffset += 32]); - // y - (publicInputs[tmp.offset++], publicInputs[tmp.offset++], publicInputs[tmp.offset++]) = - bytes32ToBigNum(bytes32(_blobPublicInputs[tmp.blobOffset:tmp.blobOffset += 32])); - // To fit into 2 fields, the commitment is split into 31 and 17 byte numbers - // See yarn-project/foundation/src/blob/index.ts -> commitmentToFields() - // TODO: The below left pads, possibly inefficiently - // c[0] - publicInputs[tmp.offset++] = bytes32( - uint256(uint248(bytes31(_blobPublicInputs[tmp.blobOffset:tmp.blobOffset += 31]))) - ); - // c[1] - publicInputs[tmp.offset++] = bytes32( - uint256(uint136(bytes17(_blobPublicInputs[tmp.blobOffset:tmp.blobOffset += 17]))) - ); - } else { - tmp.offset += Constants.BLOB_PUBLIC_INPUTS; - } - } - } - } + // FinalBlobAccumulatorPublicInputs: + // The blob public inputs do not require the versioned hash of the batched commitment, which is stored in _blobPublicInputs[0:32] + // or the KZG opening 'proof' (commitment Q) stored in _blobPublicInputs[144:]. They are used in validateBatchedBlob(). + // See BlobLib.sol -> validateBatchedBlob() and calculateBlobCommitmentsHash() for documentation on the below blob related inputs. + + // blobCommitmentsHash + publicInputs[offset] = rollupStore.blobCommitmentsHash[_end]; + offset += 1; + + // z + publicInputs[offset] = bytes32(_blobPublicInputs[32:64]); + offset += 1; + + // y + (publicInputs[offset], publicInputs[offset + 1], publicInputs[offset + 2]) = + bytes32ToBigNum(bytes32(_blobPublicInputs[64:96])); + offset += 3; + + // To fit into 2 fields, the commitment is split into 31 and 17 byte numbers + // See yarn-project/foundation/src/blob/index.ts -> commitmentToFields() + // TODO: The below left pads, possibly inefficiently + // c[0] + publicInputs[offset] = bytes32(uint256(uint248(bytes31((_blobPublicInputs[96:127]))))); + // c[1] + publicInputs[offset + 1] = bytes32(uint256(uint136(bytes17((_blobPublicInputs[127:144]))))); + offset += 2; + return publicInputs; } @@ -326,6 +327,12 @@ library EpochProofLib { bool isStartBuildingOnProven = _start - 1 <= rollupStore.tips.provenBlockNumber; require(isStartBuildingOnProven, Errors.Rollup__StartIsNotBuildingOnProven()); + bool claimedNumBlocksInEpoch = _end - _start + 1 <= Constants.AZTEC_MAX_EPOCH_DURATION; + require( + claimedNumBlocksInEpoch, + Errors.Rollup__TooManyBlocksInEpoch(Constants.AZTEC_MAX_EPOCH_DURATION, _end - _start) + ); + return endEpoch; } @@ -336,22 +343,10 @@ library EpochProofLib { { RollupStore storage rollupStore = STFLib.getStorage(); - uint256 size = _args.end - _args.start + 1; - - for (uint256 i = 0; i < size; i++) { - uint256 blobOffset = i * Constants.BLOB_PUBLIC_INPUTS_BYTES + i; - uint8 blobsInBlock = uint8(_args.blobPublicInputs[blobOffset++]); - checkBlobPublicInputsHashes( - _args.blobPublicInputs, - rollupStore.blobPublicInputsHashes[_args.start + i], - blobOffset, - blobsInBlock - ); - } + BlobLib.validateBatchedBlob(_args.blobInputs); - bytes32[] memory publicInputs = getEpochProofPublicInputs( - _args.start, _args.end, _args.args, _args.fees, _args.blobPublicInputs - ); + bytes32[] memory publicInputs = + getEpochProofPublicInputs(_args.start, _args.end, _args.args, _args.fees, _args.blobInputs); require( rollupStore.config.epochProofVerifier.verify(_args.proof, publicInputs), @@ -361,30 +356,6 @@ library EpochProofLib { return true; } - /** - * Helper fn to prevent stack too deep. Checks blob public input hashes match for a block: - * @param _blobPublicInputs - The provided blob public inputs bytes array - * @param _blobPublicInputsHash - The stored blob public inputs hash - * @param _index - The index to start in _blobPublicInputs - * @param _blobsInBlock - The number of blobs in this block - */ - function checkBlobPublicInputsHashes( - bytes calldata _blobPublicInputs, - bytes32 _blobPublicInputsHash, - uint256 _index, - uint8 _blobsInBlock - ) private pure { - bytes32 calcBlobPublicInputsHash = sha256( - abi.encodePacked( - _blobPublicInputs[_index:_index + Constants.BLOB_PUBLIC_INPUTS_BYTES * _blobsInBlock] - ) - ); - require( - calcBlobPublicInputsHash == _blobPublicInputsHash, - Errors.Rollup__InvalidBlobPublicInputsHash(_blobPublicInputsHash, calcBlobPublicInputsHash) - ); - } - /** * @notice Converts a BLS12 field element from bytes32 to a nr BigNum type * The nr bignum type for BLS12 fields is encoded as 3 nr fields - see blob_public_inputs.ts: diff --git a/l1-contracts/src/core/libraries/rollup/ExtRollupLib.sol b/l1-contracts/src/core/libraries/rollup/ExtRollupLib.sol index a95280f8fbd0..7fac9be63ef5 100644 --- a/l1-contracts/src/core/libraries/rollup/ExtRollupLib.sol +++ b/l1-contracts/src/core/libraries/rollup/ExtRollupLib.sol @@ -87,7 +87,7 @@ library ExtRollupLib { returns ( bytes32[] memory blobHashes, bytes32 blobsHashesCommitment, - bytes32 blobPublicInputsHash + bytes[] memory blobCommitments ) { return BlobLib.validateBlobs(_blobsInput, _checkBlob); diff --git a/l1-contracts/src/core/libraries/rollup/ProposeLib.sol b/l1-contracts/src/core/libraries/rollup/ProposeLib.sol index 2dd006175b19..a97d8955807c 100644 --- a/l1-contracts/src/core/libraries/rollup/ProposeLib.sol +++ b/l1-contracts/src/core/libraries/rollup/ProposeLib.sol @@ -43,7 +43,7 @@ struct ProposePayload { struct InterimProposeValues { bytes32[] blobHashes; bytes32 blobsHashesCommitment; - bytes32 blobPublicInputsHash; + bytes[] blobCommitments; bytes32 inHash; uint256 outboxMinsize; bytes32 headerHash; @@ -78,12 +78,16 @@ library ProposeLib { * * @param _args - The arguments to propose the block * @param _attestations - Signatures (or empty) from the validators - * @param _blobInput - The blob evaluation KZG proof, challenge, and opening required for the precompile. + * Input _blobsInput bytes: + * input[:1] - num blobs in block + * input[1:] - blob commitments (48 bytes * num blobs in block) + * @param _blobsInput - The above bytes to verify our input blob commitments match real blobs + * @param _checkBlob - Whether to skip blob related checks. Hardcoded to true (See RollupCore.sol -> checkBlob), exists only to be overriden in tests. */ function propose( ProposeArgs calldata _args, CommitteeAttestation[] memory _attestations, - bytes calldata _blobInput, + bytes calldata _blobsInput, bool _checkBlob ) internal { if (STFLib.canPruneAtTime(Timestamp.wrap(block.timestamp))) { @@ -92,10 +96,11 @@ library ProposeLib { FeeLib.updateL1GasFeeOracle(); InterimProposeValues memory v; - // Since an invalid blob hash here would fail the consensus checks of - // the header, the `blobInput` is implicitly accepted by consensus as well. - (v.blobHashes, v.blobsHashesCommitment, v.blobPublicInputsHash) = - BlobLib.validateBlobs(_blobInput, _checkBlob); + + // TODO(#13430): The below blobsHashesCommitment known as blobsHash elsewhere in the code. The name is confusingly similar to blobCommitmentsHash, + // see comment in BlobLib.sol -> validateBlobs(). + (v.blobHashes, v.blobsHashesCommitment, v.blobCommitments) = + BlobLib.validateBlobs(_blobsInput, _checkBlob); Header memory header = HeaderLib.decode(_args.header); v.headerHash = HeaderLib.hash(_args.header); @@ -140,7 +145,12 @@ library ProposeLib { components.proverCost ); - rollupStore.blobPublicInputsHashes[blockNumber] = v.blobPublicInputsHash; + // Blob commitments are collected and proven per root rollup proof (=> per epoch), so we need to know whether we are at the epoch start: + bool isFirstBlockOfEpoch = + currentEpoch > STFLib.getEpochForBlock(blockNumber - 1) || blockNumber == 1; + rollupStore.blobCommitmentsHash[blockNumber] = BlobLib.calculateBlobCommitmentsHash( + rollupStore.blobCommitmentsHash[blockNumber - 1], v.blobCommitments, isFirstBlockOfEpoch + ); // @note The block number here will always be >=1 as the genesis block is at 0 v.inHash = rollupStore.config.inbox.consume(blockNumber); diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 85bea5bf3b6c..08cfe00eb4df 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -208,36 +208,11 @@ contract RollupTest is RollupBase { oracleInput: OracleInput(0), txHashes: new bytes32[](0) }); - vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidBlobHash.selector, blobHashes[0])); - rollup.propose(args, attestations, data.blobInputs); - } - - function testInvalidBlobProof() public setUpFor("mixed_block_1") { - DecoderBase.Data memory data = load("mixed_block_1").block; - bytes memory header = data.header; - bytes memory blobInput = data.blobInputs; - - // We set the blobHash to the correct value - bytes32[] memory blobHashes = new bytes32[](1); - // The below is the blob hash == bytes [1:33] of _blobInput - bytes32 blobHash; - assembly { - blobHash := mload(add(blobInput, 0x21)) - } - blobHashes[0] = blobHash; - vm.blobhashes(blobHashes); - - // We mess with the blob input bytes - blobInput[100] = 0x01; - ProposeArgs memory args = ProposeArgs({ - header: header, - archive: data.archive, - stateReference: new bytes(0), - oracleInput: OracleInput(0), - txHashes: new bytes32[](0) - }); - vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidBlobProof.selector, blobHashes[0])); - rollup.propose(args, attestations, blobInput); + bytes32 realBlobHash = this.getBlobHashes(data.blobCommitments)[0]; + vm.expectRevert( + abi.encodeWithSelector(Errors.Rollup__InvalidBlobHash.selector, blobHashes[0], realBlobHash) + ); + rollup.propose(args, attestations, data.blobCommitments); } function testRevertPrune() public setUpFor("mixed_block_1") { @@ -301,7 +276,7 @@ contract RollupTest is RollupBase { oracleInput: OracleInput(0), txHashes: txHashes }); - rollup.propose(args, attestations, data.blobInputs); + rollup.propose(args, attestations, data.blobCommitments); } function testInvalidL2Fee() public setUpFor("mixed_block_1") { @@ -331,7 +306,7 @@ contract RollupTest is RollupBase { oracleInput: OracleInput(0), txHashes: txHashes }); - rollup.propose(args, attestations, data.blobInputs); + rollup.propose(args, attestations, data.blobCommitments); } function testProvingFeeUpdates() public setUpFor("mixed_block_1") { @@ -440,7 +415,7 @@ contract RollupTest is RollupBase { oracleInput: OracleInput(0), txHashes: new bytes32[](0) }); - rollup.propose(args, attestations, data.blobInputs); + rollup.propose(args, attestations, data.blobCommitments); assertEq(testERC20.balanceOf(data.decodedHeader.coinbase), 0, "invalid coinbase balance"); } @@ -450,7 +425,6 @@ contract RollupTest is RollupBase { address prover = address(0x1234); { - bytes memory blobPublicInputs = this.getBlobPublicInputs(data.blobInputs); vm.expectRevert( abi.encodeWithSelector( IERC20Errors.ERC20InsufficientBalance.selector, @@ -464,7 +438,7 @@ contract RollupTest is RollupBase { 1, blockLog.archive, data.archive, - blobPublicInputs, + data.batchedBlobInputs, prover, data.decodedHeader.coinbase, interim.feeAmount @@ -486,7 +460,7 @@ contract RollupTest is RollupBase { 1, blockLog.archive, data.archive, - this.getBlobPublicInputs(data.blobInputs), + data.batchedBlobInputs, address(42), data.decodedHeader.coinbase, interim.feeAmount @@ -601,8 +575,6 @@ contract RollupTest is RollupBase { bytes memory proof = ""; - bytes memory blobPublicInputs = this.getBlobPublicInputs(data.blobInputs); - vm.expectRevert( abi.encodeWithSelector( Errors.Rollup__StartAndEndNotSameEpoch.selector, Epoch.wrap(0), Epoch.wrap(1) @@ -615,7 +587,7 @@ contract RollupTest is RollupBase { end: 2, args: args, fees: fees, - blobPublicInputs: blobPublicInputs, + blobInputs: data.batchedBlobInputs, proof: proof }) ); @@ -632,11 +604,7 @@ contract RollupTest is RollupBase { assertEq(rollup.getProvenBlockNumber(), 0, "Invalid initial proven block number"); BlockLog memory blockLog = rollup.getBlock(0); - bytes memory blobPublicInputs = abi.encodePacked( - this.getBlobPublicInputs(load("mixed_block_1").block.blobInputs), - this.getBlobPublicInputs(data.blobInputs) - ); - _submitEpochProof(1, 2, blockLog.archive, data.archive, blobPublicInputs, address(0)); + _submitEpochProof(1, 2, blockLog.archive, data.archive, data.batchedBlobInputs, address(0)); assertEq(rollup.getPendingBlockNumber(), 2, "Invalid pending block number"); assertEq(rollup.getProvenBlockNumber(), 2, "Invalid proven block number"); @@ -712,7 +680,6 @@ contract RollupTest is RollupBase { function testSubmitProofNonExistentBlock() public setUpFor("empty_block_1") { _proposeBlock("empty_block_1", 1); DecoderBase.Data memory data = load("empty_block_1").block; - bytes memory blobPublicInputs = this.getBlobPublicInputs(data.blobInputs); BlockLog memory blockLog = rollup.getBlock(0); bytes32 wrong = bytes32(uint256(0xdeadbeef)); @@ -721,42 +688,65 @@ contract RollupTest is RollupBase { Errors.Rollup__InvalidPreviousArchive.selector, blockLog.archive, wrong ) ); - _submitEpochProof(1, 1, wrong, data.archive, blobPublicInputs, address(0)); + _submitEpochProof(1, 1, wrong, data.archive, data.batchedBlobInputs, address(0)); } function testSubmitProofInvalidArchive() public setUpFor("empty_block_1") { _proposeBlock("empty_block_1", 1); DecoderBase.Data memory data = load("empty_block_1").block; - bytes memory blobPublicInputs = this.getBlobPublicInputs(data.blobInputs); bytes32 wrongArchive = bytes32(uint256(0xdeadbeef)); BlockLog memory blockLog = rollup.getBlock(0); vm.expectRevert( abi.encodeWithSelector(Errors.Rollup__InvalidArchive.selector, data.archive, 0xdeadbeef) ); - _submitEpochProof(1, 1, blockLog.archive, wrongArchive, blobPublicInputs, address(0)); + _submitEpochProof(1, 1, blockLog.archive, wrongArchive, data.batchedBlobInputs, address(0)); } - function _testSubmitProofInvalidBlobPublicInput() public setUpFor("empty_block_1") { - _proposeBlock({_name: "empty_block_1", _slotNumber: 0}); + function testInvalidBlobProof() public setUpFor("mixed_block_1") { + _proposeBlock({_name: "mixed_block_1", _slotNumber: 0}); - DecoderBase.Data memory data = load("empty_block_1").block; - bytes memory blobPublicInputs = this.getBlobPublicInputs(data.blobInputs); + DecoderBase.Data memory data = load("mixed_block_1").block; + bytes memory blobProofInputs = data.batchedBlobInputs; // mess with the data - blobPublicInputs[100] = 0x01; + blobProofInputs[100] = 0x01; + // The below is the "blob hash" == bytes [0:32] of batchedBlobInputs = VERSIONED_HASH_VERSION_KZG + sha256(batchedBlobCommitment)[1:] + bytes32 blobHash; + assembly { + blobHash := mload(add(blobProofInputs, 0x20)) + } + + BlockLog memory blockLog = rollup.getBlock(0); + vm.expectRevert(abi.encodeWithSelector(Errors.Rollup__InvalidBlobProof.selector, blobHash)); + _submitEpochProof(1, 1, blockLog.archive, data.archive, blobProofInputs, address(0)); + } + + function testTooManyBlocks() public setUpFor("mixed_block_1") { + _proposeBlock("mixed_block_1", 1); + DecoderBase.Data memory data = load("mixed_block_1").block; + + // Set the pending block number to be Constants.AZTEC_MAX_EPOCH_DURATION + 2, so we don't revert early with a different case + stdstore.target(address(rollup)).sig("getPendingBlockNumber()").checked_write( + Constants.AZTEC_MAX_EPOCH_DURATION + 2 + ); BlockLog memory blockLog = rollup.getBlock(0); - bytes32 actualBlobPublicInputsHash = rollup.getBlobPublicInputsHash(data.blockNumber); - bytes32 wrongBlobPublicInputsHash = this.getBlobPublicInputsHash(blobPublicInputs); vm.expectRevert( abi.encodeWithSelector( - Errors.Rollup__InvalidBlobPublicInputsHash.selector, - actualBlobPublicInputsHash, - wrongBlobPublicInputsHash + Errors.Rollup__TooManyBlocksInEpoch.selector, + Constants.AZTEC_MAX_EPOCH_DURATION, + Constants.AZTEC_MAX_EPOCH_DURATION + 1 ) ); - _submitEpochProof(1, 1, blockLog.archive, data.archive, blobPublicInputs, address(0)); + _submitEpochProof( + 1, + Constants.AZTEC_MAX_EPOCH_DURATION + 2, + blockLog.archive, + data.archive, + data.batchedBlobInputs, + address(0) + ); } function _submitEpochProof( @@ -764,11 +754,11 @@ contract RollupTest is RollupBase { uint256 _end, bytes32 _prevArchive, bytes32 _archive, - bytes memory _blobPublicInputs, + bytes memory _blobInputs, address _prover ) internal { _submitEpochProofWithFee( - _start, _end, _prevArchive, _archive, _blobPublicInputs, _prover, address(0), 0 + _start, _end, _prevArchive, _archive, _blobInputs, _prover, address(0), 0 ); } @@ -777,7 +767,7 @@ contract RollupTest is RollupBase { uint256 _end, bytes32 _prevArchive, bytes32 _archive, - bytes memory _blobPublicInputs, + bytes memory _blobInputs, address _prover, address _coinbase, uint256 _fee @@ -795,7 +785,7 @@ contract RollupTest is RollupBase { end: _end, args: args, fees: fees, - blobPublicInputs: _blobPublicInputs, + blobInputs: _blobInputs, proof: "" }) ); diff --git a/l1-contracts/test/base/DecoderBase.sol b/l1-contracts/test/base/DecoderBase.sol index 35a68b3fee69..3bd373fa295d 100644 --- a/l1-contracts/test/base/DecoderBase.sol +++ b/l1-contracts/test/base/DecoderBase.sol @@ -30,7 +30,12 @@ contract DecoderBase is TestBase { struct Data { bytes32 archive; - bytes blobInputs; + // Note: batchedBlobInputs is usually per epoch, rather than per block. For testing, these batchedBlobInputs assume that + // an epoch contains blobs including and up to the 'current' block. + // e.g. mixed_block_2's batchedBlobInputs assumes that the epoch consists of 2 blocks, mixed_block_1 and mixed_block_2, and their blobs. + // e.g. mixed_block_1's batchedBlobInputs assumes the epoch contains only mixed_block_1 and its blob(s). + bytes batchedBlobInputs; // EVM point evaluation precompile inputs for verifying an epoch's batch of blobs + bytes blobCommitments; // [numBlobs, ...blobCommitments], used in proposing blocks uint256 blockNumber; bytes body; DecodedHeader decodedHeader; diff --git a/l1-contracts/test/base/RollupBase.sol b/l1-contracts/test/base/RollupBase.sol index 773d32a34171..0048168cfd47 100644 --- a/l1-contracts/test/base/RollupBase.sol +++ b/l1-contracts/test/base/RollupBase.sol @@ -68,6 +68,7 @@ contract RollupBase is DecoderBase { BlockLog memory parentBlockLog = rollup.getBlock(startBlockNumber - 1); // What are these even? + // ^ public inputs to the root proof? PublicInputArgs memory args = PublicInputArgs({ previousArchive: parentBlockLog.archive, endArchive: endFull.block.archive, @@ -75,17 +76,11 @@ contract RollupBase is DecoderBase { }); bytes32[] memory fees = new bytes32[](Constants.AZTEC_MAX_EPOCH_DURATION * 2); - bytes memory blobPublicInputs; uint256 size = endBlockNumber - startBlockNumber + 1; for (uint256 i = 0; i < size; i++) { fees[i * 2] = bytes32(uint256(uint160(bytes20(("sequencer"))))); // Need the address to be left padded within the bytes32 fees[i * 2 + 1] = bytes32(uint256(blockFees[startBlockNumber + i])); - - string memory blockName = string.concat(_name, Strings.toString(startBlockNumber + i)); - DecoderBase.Full memory blockFull = load(blockName); - blobPublicInputs = - abi.encodePacked(blobPublicInputs, this.getBlobPublicInputs(blockFull.block.blobInputs)); } // All the way down here if reverting. @@ -100,7 +95,7 @@ contract RollupBase is DecoderBase { end: endBlockNumber, args: args, fees: fees, - blobPublicInputs: blobPublicInputs, + blobInputs: endFull.block.batchedBlobInputs, proof: "" }) ); @@ -131,7 +126,7 @@ contract RollupBase is DecoderBase { ) private { DecoderBase.Full memory full = load(_name); bytes memory header = full.block.header; - bytes memory blobInputs = full.block.blobInputs; + bytes memory blobCommitments = full.block.blobCommitments; Slot slotNumber = Slot.wrap(_slotNumber); @@ -161,13 +156,7 @@ contract RollupBase is DecoderBase { DecoderBase.updateHeaderInboxRoot(header, rollup.getInbox().getRoot(full.block.blockNumber)); { - bytes32[] memory blobHashes = new bytes32[](1); - // The below is the blob hash == bytes [1:33] of _blobInput - bytes32 blobHash; - assembly { - blobHash := mload(add(blobInputs, 0x21)) - } - blobHashes[0] = blobHash; + bytes32[] memory blobHashes = this.getBlobHashes(blobCommitments); // https://github.com/foundry-rs/foundry/issues/10074 // don't add blob hashes if forge gas report is true if (!vm.envOr("FORGE_GAS_REPORT", false)) { @@ -189,7 +178,7 @@ contract RollupBase is DecoderBase { if (_revertMsg.length > 0) { vm.expectRevert(_revertMsg); } - rollup.propose(args, attestations, blobInputs); + rollup.propose(args, attestations, blobCommitments); if (_revertMsg.length > 0) { return; @@ -250,32 +239,30 @@ contract RollupBase is DecoderBase { } } - function getBlobPublicInputs(bytes calldata _blobsInput) + function getBlobHashes(bytes calldata _blobCommitments) public pure - returns (bytes memory blobPublicInputs) + returns (bytes32[] memory blobHashes) { - uint8 numBlobs = uint8(_blobsInput[0]); - blobPublicInputs = abi.encodePacked(numBlobs, blobPublicInputs); + uint8 numBlobs = uint8(_blobCommitments[0]); + blobHashes = new bytes32[](numBlobs); + // Add 1 for the numBlobs prefix + uint256 blobInputStart = 1; for (uint256 i = 0; i < numBlobs; i++) { - // Add 1 for the numBlobs prefix - uint256 blobInputStart = i * 192 + 1; - // We want to extract the bytes we use for public inputs: - // * input[32:64] - z - // * input[64:96] - y - // * input[96:144] - commitment C - // Out of 192 bytes per blob. - blobPublicInputs = - abi.encodePacked(blobPublicInputs, _blobsInput[blobInputStart + 32:blobInputStart + 144]); + // blobInputs = [numBlobs, ...blobCommitments], numBlobs is one byte, each commitment is 48 + bytes32[1] memory blobHash = [ + sha256( + abi.encodePacked( + _blobCommitments[blobInputStart:blobInputStart + Constants.BLS12_POINT_COMPRESSED_BYTES] + ) + ) + ]; + blobInputStart += Constants.BLS12_POINT_COMPRESSED_BYTES; + // EVM blobHash = VERSIONED_HASH_VERSION_KZG + sha256(blobCommitment)[1:] => hash the commitment and replace first byte with version + assembly { + mstore8(blobHash, 0x01) + } + blobHashes[i] = blobHash[0]; } } - - function getBlobPublicInputsHash(bytes calldata _blobPublicInputs) - public - pure - returns (bytes32 publicInputsHash) - { - uint8 numBlobs = uint8(_blobPublicInputs[0]); - publicInputsHash = sha256(abi.encodePacked(_blobPublicInputs[1:1 + numBlobs * 112])); - } } diff --git a/l1-contracts/test/benchmark/happy.t.sol b/l1-contracts/test/benchmark/happy.t.sol index 4836b01baba4..88e9dc58963d 100644 --- a/l1-contracts/test/benchmark/happy.t.sol +++ b/l1-contracts/test/benchmark/happy.t.sol @@ -263,7 +263,7 @@ contract BenchmarkRollupTest is FeeModelTestPoints, DecoderBase { return Block({ proposeArgs: proposeArgs, - blobInputs: full.block.blobInputs, + blobInputs: full.block.blobCommitments, attestations: attestations }); } @@ -357,14 +357,6 @@ contract BenchmarkRollupTest is FeeModelTestPoints, DecoderBase { proverId: address(0) }); - bytes memory blobPublicInputs; - for (uint256 j = 0; j < epochSize; j++) { - // For each block in the epoch, add its blob public inputs - // Since we are reusing the same block, they are the same - blobPublicInputs = - abi.encodePacked(blobPublicInputs, this.getBlobPublicInputs(full.block.blobInputs)); - } - { rollup.submitEpochRootProof( SubmitEpochRootProofArgs({ @@ -372,7 +364,7 @@ contract BenchmarkRollupTest is FeeModelTestPoints, DecoderBase { end: start + epochSize - 1, args: args, fees: fees, - blobPublicInputs: blobPublicInputs, + blobInputs: full.block.batchedBlobInputs, proof: "" }) ); @@ -380,26 +372,4 @@ contract BenchmarkRollupTest is FeeModelTestPoints, DecoderBase { } } } - - // This is duplicated from Rollup.t.sol because we need to call it as this.getBlobPublicInputs - // so it accepts the input as calldata - function getBlobPublicInputs(bytes calldata _blobsInput) - public - pure - returns (bytes memory blobPublicInputs) - { - uint8 numBlobs = uint8(_blobsInput[0]); - blobPublicInputs = abi.encodePacked(numBlobs, blobPublicInputs); - for (uint256 i = 0; i < numBlobs; i++) { - // Add 1 for the numBlobs prefix - uint256 blobInputStart = i * 192 + 1; - // We want to extract the bytes we use for public inputs: - // * input[32:64] - z - // * input[64:96] - y - // * input[96:144] - commitment C - // Out of 192 bytes per blob. - blobPublicInputs = - abi.encodePacked(blobPublicInputs, _blobsInput[blobInputStart + 32:blobInputStart + 144]); - } - } } diff --git a/l1-contracts/test/fees/FeeRollup.t.sol b/l1-contracts/test/fees/FeeRollup.t.sol index 73d7c656922c..1fb4f75aecf7 100644 --- a/l1-contracts/test/fees/FeeRollup.t.sol +++ b/l1-contracts/test/fees/FeeRollup.t.sol @@ -178,7 +178,7 @@ contract FeeRollupTest is FeeModelTestPoints, DecoderBase { archive: archiveRoot, header: header, body: body, - blobInputs: full.block.blobInputs, + blobInputs: full.block.blobCommitments, txHashes: txHashes, attestations: attestations }); @@ -390,14 +390,6 @@ contract FeeRollupTest is FeeModelTestPoints, DecoderBase { proverId: address(0) }); - bytes memory blobPublicInputs; - for (uint256 j = 0; j < epochSize; j++) { - // For each block in the epoch, add its blob public inputs - // Since we are reusing the same block, they are the same - blobPublicInputs = - abi.encodePacked(blobPublicInputs, this.getBlobPublicInputs(full.block.blobInputs)); - } - { rollup.submitEpochRootProof( SubmitEpochRootProofArgs({ @@ -405,7 +397,7 @@ contract FeeRollupTest is FeeModelTestPoints, DecoderBase { end: start + epochSize - 1, args: args, fees: fees, - blobPublicInputs: blobPublicInputs, + blobInputs: full.block.batchedBlobInputs, proof: "" }) ); @@ -456,26 +448,4 @@ contract FeeRollupTest is FeeModelTestPoints, DecoderBase { }); assertEq(a, bModel, _message); } - - // This is duplicated from Rollup.t.sol because we need to call it as this.getBlobPublicInputs - // so it accepts the input as calldata - function getBlobPublicInputs(bytes calldata _blobsInput) - public - pure - returns (bytes memory blobPublicInputs) - { - uint8 numBlobs = uint8(_blobsInput[0]); - blobPublicInputs = abi.encodePacked(numBlobs, blobPublicInputs); - for (uint256 i = 0; i < numBlobs; i++) { - // Add 1 for the numBlobs prefix - uint256 blobInputStart = i * 192 + 1; - // We want to extract the bytes we use for public inputs: - // * input[32:64] - z - // * input[64:96] - y - // * input[96:144] - commitment C - // Out of 192 bytes per blob. - blobPublicInputs = - abi.encodePacked(blobPublicInputs, _blobsInput[blobInputStart + 32:blobInputStart + 144]); - } - } } diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index f0db851aa352..69a4ac646f92 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -25,8 +25,9 @@ "l2ToL1Messages": [] }, "block": { - "archive": "0x1cb8af4798ed0056677247fd42b30e27f78c84a771a30eb34373b299da21c6d6", - "blobInputs": "0x01010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440140ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "archive": "0x22c4066e013ee12c4e9c599c9ceb3de851239295e3c0dfa5a25a9c6e69419c1b", + "blobCommitments": "0x01c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "batchedBlobInputs": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440140ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "blockNumber": 1, "body": "0x00000000", "decodedHeader": { @@ -38,16 +39,16 @@ "numTxs": 0 }, "slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000029", - "timestamp": 1747162376, - "coinbase": "0xa2c2db99e9117560e8681c4758d984502475ed31", - "feeRecipient": "0x0c47cfb3f382551854b7b1928bbd27c539c85d92b2b875b5686539eec84c1b57", + "timestamp": 1747749884, + "coinbase": "0x0610759295fcc7f3cca7b05b0d9045362e3a1a3d", + "feeRecipient": "0x20ea5d85b31f45a87b24c0a7f19d4e4f544d40c13afd387b8ef857e92ccd8149", "gasFees": { "feePerDaGas": 0, - "feePerL2Gas": 55380 + "feePerL2Gas": 55370 }, "totalManaUsed": "0x0000000000000000000000000000000000000000000000000000000000000000" }, - "header": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae0000000000000000000000000000000000000000000000000000000000000000001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000290000000068239508a2c2db99e9117560e8681c4758d984502475ed310c47cfb3f382551854b7b1928bbd27c539c85d92b2b875b5686539eec84c1b570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d8540000000000000000000000000000000000000000000000000000000000000000", + "header": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae0000000000000000000000000000000000000000000000000000000000000000001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002900000000682c8bfc0610759295fcc7f3cca7b05b0d9045362e3a1a3d20ea5d85b31f45a87b24c0a7f19d4e4f544d40c13afd387b8ef857e92ccd81490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d84a0000000000000000000000000000000000000000000000000000000000000000", "numTxs": 0 } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/empty_block_2.json b/l1-contracts/test/fixtures/empty_block_2.json index 1df0fa454fd5..f32a6d85ea96 100644 --- a/l1-contracts/test/fixtures/empty_block_2.json +++ b/l1-contracts/test/fixtures/empty_block_2.json @@ -25,29 +25,30 @@ "l2ToL1Messages": [] }, "block": { - "archive": "0x1f165b25870a916f930d519739bf38f650e9238468065b6db11ff33823fb584f", - "blobInputs": "0x01010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440140ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "archive": "0x14d2d05e9937165d44e6bf9655aed67e8394e7abad8fc7f22a5306110a7a7851", + "blobCommitments": "0x01c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "batchedBlobInputs": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401416743433c1b3d551429cfbc09ab7899d4e14d2b5786a3243e29bc9c6c0d76bf10000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "blockNumber": 2, "body": "0x00000000", "decodedHeader": { - "lastArchiveRoot": "0x1cb8af4798ed0056677247fd42b30e27f78c84a771a30eb34373b299da21c6d6", + "lastArchiveRoot": "0x22c4066e013ee12c4e9c599c9ceb3de851239295e3c0dfa5a25a9c6e69419c1b", "contentCommitment": { "blobsHash": "0x001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d9", - "inHash": "0x00e3c1a33b58c239649ea50665923a8555797c8cb824c97aacd50630767ba6a3", + "inHash": "0x00f23cf98c8ccc17366198350a879640eb86c05254cb11dd721e456ba55d5af2", "outHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "numTxs": 0 }, "slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000032", - "timestamp": 1747162592, - "coinbase": "0xa2c2db99e9117560e8681c4758d984502475ed31", - "feeRecipient": "0x0c47cfb3f382551854b7b1928bbd27c539c85d92b2b875b5686539eec84c1b57", + "timestamp": 1747750100, + "coinbase": "0x0610759295fcc7f3cca7b05b0d9045362e3a1a3d", + "feeRecipient": "0x20ea5d85b31f45a87b24c0a7f19d4e4f544d40c13afd387b8ef857e92ccd8149", "gasFees": { "feePerDaGas": 0, "feePerL2Gas": 4640 }, "totalManaUsed": "0x0000000000000000000000000000000000000000000000000000000000000000" }, - "header": "0x1cb8af4798ed0056677247fd42b30e27f78c84a771a30eb34373b299da21c6d60000000000000000000000000000000000000000000000000000000000000000001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900e3c1a33b58c239649ea50665923a8555797c8cb824c97aacd50630767ba6a30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003200000000682395e0a2c2db99e9117560e8681c4758d984502475ed310c47cfb3f382551854b7b1928bbd27c539c85d92b2b875b5686539eec84c1b57000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012200000000000000000000000000000000000000000000000000000000000000000", + "header": "0x22c4066e013ee12c4e9c599c9ceb3de851239295e3c0dfa5a25a9c6e69419c1b0000000000000000000000000000000000000000000000000000000000000000001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d900f23cf98c8ccc17366198350a879640eb86c05254cb11dd721e456ba55d5af20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003200000000682c8cd40610759295fcc7f3cca7b05b0d9045362e3a1a3d20ea5d85b31f45a87b24c0a7f19d4e4f544d40c13afd387b8ef857e92ccd8149000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012200000000000000000000000000000000000000000000000000000000000000000", "numTxs": 0 } } \ 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 bcfdbf989d64..f593e0309b89 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -23,64 +23,65 @@ }, "messages": { "l2ToL1Messages": [ - "0x005860caa2d2b8155d2bf8f5549621471ca4fb51e953c64ef4845abfe60998e2", - "0x00d207bc18f0928fc52bd4f0174ecc592fdfd9cdf4dfc282896a5ee95adf58dd", - "0x0050e35cdaec062d7fdefcc6c0c18fdc8a811289800ef9db5b5e5f765ab1781d", - "0x00431abd026e5dac6ce36783ea014a6d80321b717749df2721d4e8fb7185be96", - "0x0024077694424433548f7d3a543938eda465af764f7fa1b065e8a4d5734946ac", - "0x00e38ee8589859f3d234afb783aae64240d3c28a6e31b27d53baaaca625fab3c", - "0x008c255c197b75165f6ac0209731c48c5417e04ec2cb2d02487e546544ec65f5", - "0x00473e6b16019fc126e0b36d4924931308969de7f3748e7402bc9af1933e29f1", - "0x00729302aa1a70a4a20b6599d3212f46b61aad2a5dde193943a2319b073a3607", - "0x008e49816f26ee0fdc1f504816896b9a965a4be867157e0acb760131d6c5a1d7", - "0x009a36528a17f4bf9aeda0e94a76421751a92e647175d5f52c8a398c4333e4d9", - "0x00cc0036017affc18d139bfda6d81de9633fda58779067888e1b7cc19ef5c3ac", - "0x00e08b96ca0a4aeafe68a167ed4764e11a49f92a0bbcece24f818e12764543ae", - "0x00f7ba1cca9813bbc921172cf7743be25f9d6eff6efacddb231dc74ba32e11a4", - "0x00aebe279996b2a84257b9c0d87eaacf4dec9b2c5f9d705ec21738f1c912182e", - "0x009b32132ce2781e97c91c3eef74e3fe31421e0ea69eb66214624e74853a6dbc", - "0x007a5978eb3d80c3029a8fb8b6ee4ad3fbfdce6650c441e6fe38ac22064ae897", - "0x00ff996d440fbed85efc21ba0c456dd2a6befa391194afbfb6d5fdbbbae73bee", - "0x00c407bfd60e2adcbde2db119eee625e7217075d79b97e685e59cf1aa10c0156", - "0x0027e9164324cd6cce62b1408164734adc74e39afaa538183141477a363acf9f", - "0x001149e00896c4362f8bfd9a64c2d9916b2b8dac3634d8e203a9a71e151f1f68", - "0x000e8beddd5a0b5237f3df2c74acd61938f8a16dcabf77843421a527ac62b52c", - "0x0037942d4a37e47229960b4908fe7f0512ae7f6247d2f56cac7511da83bb42a9", - "0x004689ee134ddb281550e35792402558d47bb723e834d2f6c51c0cc7f2d3fcbc", - "0x00f4a974f3931439eadaa2a1c750da0bfcdbd8cdae40cc85302f4bfa048b0e81", - "0x002743145542725410ab84636e9fa37693e003a4009c1f37a93cbbb0156ed924", - "0x00187c49180dd97e6638e77aabfd88805881cfaad27d64522e9c9c1bf81d01d3", - "0x00f83fa82e09ea043e854906a36a5b1f034a5fdcd614791889429b60f6a58a0c", - "0x00ec6b3bb81422913e5cfbe9741b8ed9aaf03ceb7c2023708e0b220f91cc416c", - "0x00e0422f0ec1fd258ae99565b09ac74c8a59fbdc3436e5083ad04aad4a0f4c94", - "0x00725f0533c2d23afdbdde95fb77b5043a83b60138e2f23ce2f2eb17f77582e7", - "0x009defaf28a0f96fe6bb2acd2d82649d34af40e1aeda9397625dc30c3e2f49da" + "0x00a5aa1166625896bde633744d5cb9fd4d7327067ffbf2c0268f34e6c3731c6d", + "0x001bf2a9a2f21fdde703e72f206e0714a4bd685407082051a124ef5c331af491", + "0x0028584be9cb0d013a5b68ae702bc08e0e4fb7cf6e44ce1eeb545dac10da46d8", + "0x00e6fd2d980ee9441a8394f7e862bde18255df154c5f6ed20b051fd1b3beec14", + "0x0056abfa9fe2771224cfd85025652d500229a359f87a796f47a9dd276f67b204", + "0x00ba66a1d2671ae53581211bc2f3aea1d0a5ca6a42adc329e58df7a7e0ce4861", + "0x00de146f925270c90f18e7dc52ae68f729e6795d2bf4fa7f4054ebc0105a5fcc", + "0x002de9e4377b5c483ac40477ec4c8225adf25c79a1a320dca74a02943fd1e37f", + "0x0026263fabd0ba476199c8814cb50dacb2a65367e5fa9bde3157c1ba9e5f065e", + "0x00b3a7b6a97b0c45beaed0951a33765ea09973fc5528a38843bebc4143cbf831", + "0x00a84fd7f22c19d59a4d178e223afbbf220dfa116a82e8ba96f6fc12d627381b", + "0x007105dddf62c37312e69ca06498d97ed350e711f79b1bfe358198e36eb61d55", + "0x0089cf3d139051b33b0fa6da6d5b3366970f751633fe3900461fa2bbb2e4e8fd", + "0x003e03dc400491b42b76f7eac90e77a5c6b8537954b20f984f02123299f55fa2", + "0x00bff8d90ea0b1ccd122972ff0eb4196d3e16da93f4bbcb460b057045a1e23d0", + "0x0029feadaffced0a58260f45999ea272e816717b2f7e6165bab42ca8629be727", + "0x00d6b6e3620fae6081f4af4a50285062b6e33ac35e33a88336fa5678914f97da", + "0x00f8b54b211db3b65028282b9e519e8e0aa5f45c0e18fbae5533bdd33878d85f", + "0x00f6f4623b109f8550bb3e8cc0e473a0dc17fc3da5b3a1bf6380d960bafd765f", + "0x00b5c6f0cadbde2a1036c1585259b56c72e4918828cfe926a8ebc20c821f3939", + "0x0034a1edde0a6682e163fdc2063dac05febe176380a835c628661ba6787d945d", + "0x00e71944a2ecaf60c4d863388e61a63ebe4680e378ca0ff510b81dd26ee045c3", + "0x00c329c93ffe8f3b05f57665b581cb4556d358c0aaaee543f2f0e2bc413069f1", + "0x006757b114c322b63bc1be9b176a5a3fd68686f55ecae7537bfe864911ba5e32", + "0x0093ae4301c2bc2878b88b8a669aa7a3178e20610dd182ffae2fdcc9451d8a9e", + "0x00a5d56b585204ca602a7b96f9fc9210439c258873492b68af6e85f653fd366e", + "0x00ecdb807d9dc24a80671d940de20d983887ae9e62619fa4e2b38119e3f2b2a9", + "0x0076ea18c08a833240615653b58366630e67da97e1c583ae017842a2aba6c319", + "0x00249d0690c193e33082674a84405baa3cd3a11eee9e88b0fee9b70ea384dfe7", + "0x00102ab2f7074e8a71ab3259f22cf09f708a8c66fbab052b5626670910205fca", + "0x00759a19a41971edff3e7b29663a76c878d7d2870fea514ac87a059cd485f241", + "0x00581a912f83d6b1ea74fb146ec09e5acea8be880eaf9da74d02107ca9953f84" ] }, "block": { - "archive": "0x1db82a84219d2e67bd8e09a5b80a7b2cadeed6f6bebb865dc8787ac36d6d8259", - "blobInputs": "0x0101c13b118432c6741aa6c57574d74202c2bba280b1e4d981aa6affd76952a76f18764ccceb60bf1eb890825309046efbc02a60419187d9326e27c23089f1768740ce931c748325fa51f9bb7a3e43283cd0969cb4ee43e4d0794748f1357a8ba888d910276d5f091a3259e599736e860b3c1a6612ffe914bbdde18a1a7deb8fb531f4178d095d036f9a0ef62a171670cfb4d112e322c88a25f2acea22e18839e30e6884d10b33e283deede89ea619ab41888b41a2fbbea353c667329a9e04b534", + "archive": "0x1b6a27e3678565b8aa0e7d3728eca798a1b1748a97e792e6100f7d7615e1002f", + "blobCommitments": "0x018a8d6a67c99f52d456788dbc25109df603159ea71b35ee92044f17f9ad9e8dd1941cf3b9112d4a150fac4852e3fe7a51", + "batchedBlobInputs": "0x012ba0f60e31ed2e55ebcf1908cb161a91a0f29d43a2fe6faadda4234f687dee08842ffac344a4b9c4e6794c1296dfd9ad6a19ea30d2f1c91471affa0635becf2f5c249ec88bc19d4f59c78b7a026cc7a46d85fa95a5b0a834b84dff73df7fc88a8d6a67c99f52d456788dbc25109df603159ea71b35ee92044f17f9ad9e8dd1941cf3b9112d4a150fac4852e3fe7a51a83972b3eac45e233a11afa3c92ac7696799f072ef59537ca339e990e58946706c8eb798a95a2bdc35054c90e5ce357c", "blockNumber": 1, - "body": "0x00000004001b670e77874c890301421a93771bc71fc01a71ac3356c15e8325a10da1d2c6ad0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000004100100000000000000000000000000000000000000000000000000000000000410020000000000000000000000000000000000000000000000000000000000041003000000000000000000000000000000000000000000000000000000000004100400000000000000000000000000000000000000000000000000000000000410050000000000000000000000000000000000000000000000000000000000041006000000000000000000000000000000000000000000000000000000000004100700000000000000000000000000000000000000000000000000000000000410080000000000000000000000000000000000000000000000000000000000041009000000000000000000000000000000000000000000000000000000000004100a000000000000000000000000000000000000000000000000000000000004100b000000000000000000000000000000000000000000000000000000000004100c000000000000000000000000000000000000000000000000000000000004100d000000000000000000000000000000000000000000000000000000000004100e000000000000000000000000000000000000000000000000000000000004100f0000000000000000000000000000000000000000000000000000000000041010000000000000000000000000000000000000000000000000000000000004101100000000000000000000000000000000000000000000000000000000000410120000000000000000000000000000000000000000000000000000000000041013000000000000000000000000000000000000000000000000000000000004101400000000000000000000000000000000000000000000000000000000000410150000000000000000000000000000000000000000000000000000000000041016000000000000000000000000000000000000000000000000000000000004101700000000000000000000000000000000000000000000000000000000000410180000000000000000000000000000000000000000000000000000000000041019000000000000000000000000000000000000000000000000000000000004101a000000000000000000000000000000000000000000000000000000000004101b000000000000000000000000000000000000000000000000000000000004101c000000000000000000000000000000000000000000000000000000000004101d000000000000000000000000000000000000000000000000000000000004101e000000000000000000000000000000000000000000000000000000000004101f0000000000000000000000000000000000000000000000000000000000041020000000000000000000000000000000000000000000000000000000000004102100000000000000000000000000000000000000000000000000000000000410220000000000000000000000000000000000000000000000000000000000041023000000000000000000000000000000000000000000000000000000000004102400000000000000000000000000000000000000000000000000000000000410250000000000000000000000000000000000000000000000000000000000041026000000000000000000000000000000000000000000000000000000000004102700000000000000000000000000000000000000000000000000000000000410280000000000000000000000000000000000000000000000000000000000041029000000000000000000000000000000000000000000000000000000000004102a000000000000000000000000000000000000000000000000000000000004102b000000000000000000000000000000000000000000000000000000000004102c000000000000000000000000000000000000000000000000000000000004102d000000000000000000000000000000000000000000000000000000000004102e000000000000000000000000000000000000000000000000000000000004102f0000000000000000000000000000000000000000000000000000000000041030000000000000000000000000000000000000000000000000000000000004103100000000000000000000000000000000000000000000000000000000000410320000000000000000000000000000000000000000000000000000000000041033000000000000000000000000000000000000000000000000000000000004103400000000000000000000000000000000000000000000000000000000000410350000000000000000000000000000000000000000000000000000000000041036000000000000000000000000000000000000000000000000000000000004103700000000000000000000000000000000000000000000000000000000000410380000000000000000000000000000000000000000000000000000000000041039000000000000000000000000000000000000000000000000000000000004103a000000000000000000000000000000000000000000000000000000000004103b000000000000000000000000000000000000000000000000000000000004103c000000000000000000000000000000000000000000000000000000000004103d000000000000000000000000000000000000000000000000000000000004103e000000000000000000000000000000000000000000000000000000000004103f4000000000000000000000000000000000000000000000000000000000000400010000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004110100000000000000000000000000000000000000000000000000000000000411020000000000000000000000000000000000000000000000000000000000041103000000000000000000000000000000000000000000000000000000000004110400000000000000000000000000000000000000000000000000000000000411050000000000000000000000000000000000000000000000000000000000041106000000000000000000000000000000000000000000000000000000000004110700000000000000000000000000000000000000000000000000000000000411080000000000000000000000000000000000000000000000000000000000041109000000000000000000000000000000000000000000000000000000000004110a000000000000000000000000000000000000000000000000000000000004110b000000000000000000000000000000000000000000000000000000000004110c000000000000000000000000000000000000000000000000000000000004110d000000000000000000000000000000000000000000000000000000000004110e000000000000000000000000000000000000000000000000000000000004110f0000000000000000000000000000000000000000000000000000000000041110000000000000000000000000000000000000000000000000000000000004111100000000000000000000000000000000000000000000000000000000000411120000000000000000000000000000000000000000000000000000000000041113000000000000000000000000000000000000000000000000000000000004111400000000000000000000000000000000000000000000000000000000000411150000000000000000000000000000000000000000000000000000000000041116000000000000000000000000000000000000000000000000000000000004111700000000000000000000000000000000000000000000000000000000000411180000000000000000000000000000000000000000000000000000000000041119000000000000000000000000000000000000000000000000000000000004111a000000000000000000000000000000000000000000000000000000000004111b000000000000000000000000000000000000000000000000000000000004111c000000000000000000000000000000000000000000000000000000000004111d000000000000000000000000000000000000000000000000000000000004111e000000000000000000000000000000000000000000000000000000000004111f0000000000000000000000000000000000000000000000000000000000041120000000000000000000000000000000000000000000000000000000000004112100000000000000000000000000000000000000000000000000000000000411220000000000000000000000000000000000000000000000000000000000041123000000000000000000000000000000000000000000000000000000000004112400000000000000000000000000000000000000000000000000000000000411250000000000000000000000000000000000000000000000000000000000041126000000000000000000000000000000000000000000000000000000000004112700000000000000000000000000000000000000000000000000000000000411280000000000000000000000000000000000000000000000000000000000041129000000000000000000000000000000000000000000000000000000000004112a000000000000000000000000000000000000000000000000000000000004112b000000000000000000000000000000000000000000000000000000000004112c000000000000000000000000000000000000000000000000000000000004112d000000000000000000000000000000000000000000000000000000000004112e000000000000000000000000000000000000000000000000000000000004112f0000000000000000000000000000000000000000000000000000000000041130000000000000000000000000000000000000000000000000000000000004113100000000000000000000000000000000000000000000000000000000000411320000000000000000000000000000000000000000000000000000000000041133000000000000000000000000000000000000000000000000000000000004113400000000000000000000000000000000000000000000000000000000000411350000000000000000000000000000000000000000000000000000000000041136000000000000000000000000000000000000000000000000000000000004113700000000000000000000000000000000000000000000000000000000000411380000000000000000000000000000000000000000000000000000000000041139000000000000000000000000000000000000000000000000000000000004113a000000000000000000000000000000000000000000000000000000000004113b000000000000000000000000000000000000000000000000000000000004113c000000000000000000000000000000000000000000000000000000000004113d000000000000000000000000000000000000000000000000000000000004113e08005860caa2d2b8155d2bf8f5549621471ca4fb51e953c64ef4845abfe60998e200d207bc18f0928fc52bd4f0174ecc592fdfd9cdf4dfc282896a5ee95adf58dd0050e35cdaec062d7fdefcc6c0c18fdc8a811289800ef9db5b5e5f765ab1781d00431abd026e5dac6ce36783ea014a6d80321b717749df2721d4e8fb7185be960024077694424433548f7d3a543938eda465af764f7fa1b065e8a4d5734946ac00e38ee8589859f3d234afb783aae64240d3c28a6e31b27d53baaaca625fab3c008c255c197b75165f6ac0209731c48c5417e04ec2cb2d02487e546544ec65f500473e6b16019fc126e0b36d4924931308969de7f3748e7402bc9af1933e29f1400000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042001000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042002000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042003000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042004000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042005000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420060000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004200700000000000000000000000000000000000000000000000000000000000420110000000000000000000000000000000000000000000000000000000000042008000000000000000000000000000000000000000000000000000000000004201200000000000000000000000000000000000000000000000000000000000420090000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042016000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042017000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042011000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042012000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420160000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004201700000000000000000000000000000000000000000000000000000000000420210000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004202200000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042026000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042027000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042021000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042022000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420260000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004202700000000000000000000000000000000000000000000000000000000000420310000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004203200000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042036000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042037000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042031000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042032000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004203f00000000000000000000000000000000000000000000000000000000000420360000000000000000000000000000000000000000000000000000000000042040000000000000000000000000000000000000000000000000000000000004203700000000000000000000000000000000000000000000000000000000000420410000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004204200000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042043000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042044000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042045000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042046000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042047000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042048000000000000000000000000000000000000000000000000000000000004203f0000000000000000000000000000000000000000000000000000000000042049200000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000012000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000001200000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000120000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000012000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000001200000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000120000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000012000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000001200000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000120000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a00000012000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b00000012000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c00000012000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d00000012000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e00000012000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f00000012000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000120000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000012000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000001200000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000012000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000001200000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000120000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000012000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000001200000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000120000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a00000012000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b00000012000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c00000012000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d00000012000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e00000012000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f00000012000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f000000000000000000000000000000000000000000000000000000000004173000000012000000170cd14ba238519163367feba6fed959cf47046303c06424b018b677666076d50000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000081000000000000000000000000000000000000000000000000000000000000008100100000000000000000000000000000000000000000000000000000000000810020000000000000000000000000000000000000000000000000000000000081003000000000000000000000000000000000000000000000000000000000008100400000000000000000000000000000000000000000000000000000000000810050000000000000000000000000000000000000000000000000000000000081006000000000000000000000000000000000000000000000000000000000008100700000000000000000000000000000000000000000000000000000000000810080000000000000000000000000000000000000000000000000000000000081009000000000000000000000000000000000000000000000000000000000008100a000000000000000000000000000000000000000000000000000000000008100b000000000000000000000000000000000000000000000000000000000008100c000000000000000000000000000000000000000000000000000000000008100d000000000000000000000000000000000000000000000000000000000008100e000000000000000000000000000000000000000000000000000000000008100f0000000000000000000000000000000000000000000000000000000000081010000000000000000000000000000000000000000000000000000000000008101100000000000000000000000000000000000000000000000000000000000810120000000000000000000000000000000000000000000000000000000000081013000000000000000000000000000000000000000000000000000000000008101400000000000000000000000000000000000000000000000000000000000810150000000000000000000000000000000000000000000000000000000000081016000000000000000000000000000000000000000000000000000000000008101700000000000000000000000000000000000000000000000000000000000810180000000000000000000000000000000000000000000000000000000000081019000000000000000000000000000000000000000000000000000000000008101a000000000000000000000000000000000000000000000000000000000008101b000000000000000000000000000000000000000000000000000000000008101c000000000000000000000000000000000000000000000000000000000008101d000000000000000000000000000000000000000000000000000000000008101e000000000000000000000000000000000000000000000000000000000008101f0000000000000000000000000000000000000000000000000000000000081020000000000000000000000000000000000000000000000000000000000008102100000000000000000000000000000000000000000000000000000000000810220000000000000000000000000000000000000000000000000000000000081023000000000000000000000000000000000000000000000000000000000008102400000000000000000000000000000000000000000000000000000000000810250000000000000000000000000000000000000000000000000000000000081026000000000000000000000000000000000000000000000000000000000008102700000000000000000000000000000000000000000000000000000000000810280000000000000000000000000000000000000000000000000000000000081029000000000000000000000000000000000000000000000000000000000008102a000000000000000000000000000000000000000000000000000000000008102b000000000000000000000000000000000000000000000000000000000008102c000000000000000000000000000000000000000000000000000000000008102d000000000000000000000000000000000000000000000000000000000008102e000000000000000000000000000000000000000000000000000000000008102f0000000000000000000000000000000000000000000000000000000000081030000000000000000000000000000000000000000000000000000000000008103100000000000000000000000000000000000000000000000000000000000810320000000000000000000000000000000000000000000000000000000000081033000000000000000000000000000000000000000000000000000000000008103400000000000000000000000000000000000000000000000000000000000810350000000000000000000000000000000000000000000000000000000000081036000000000000000000000000000000000000000000000000000000000008103700000000000000000000000000000000000000000000000000000000000810380000000000000000000000000000000000000000000000000000000000081039000000000000000000000000000000000000000000000000000000000008103a000000000000000000000000000000000000000000000000000000000008103b000000000000000000000000000000000000000000000000000000000008103c000000000000000000000000000000000000000000000000000000000008103d000000000000000000000000000000000000000000000000000000000008103e000000000000000000000000000000000000000000000000000000000008103f4000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000000000081100000000000000000000000000000000000000000000000000000000000008110100000000000000000000000000000000000000000000000000000000000811020000000000000000000000000000000000000000000000000000000000081103000000000000000000000000000000000000000000000000000000000008110400000000000000000000000000000000000000000000000000000000000811050000000000000000000000000000000000000000000000000000000000081106000000000000000000000000000000000000000000000000000000000008110700000000000000000000000000000000000000000000000000000000000811080000000000000000000000000000000000000000000000000000000000081109000000000000000000000000000000000000000000000000000000000008110a000000000000000000000000000000000000000000000000000000000008110b000000000000000000000000000000000000000000000000000000000008110c000000000000000000000000000000000000000000000000000000000008110d000000000000000000000000000000000000000000000000000000000008110e000000000000000000000000000000000000000000000000000000000008110f0000000000000000000000000000000000000000000000000000000000081110000000000000000000000000000000000000000000000000000000000008111100000000000000000000000000000000000000000000000000000000000811120000000000000000000000000000000000000000000000000000000000081113000000000000000000000000000000000000000000000000000000000008111400000000000000000000000000000000000000000000000000000000000811150000000000000000000000000000000000000000000000000000000000081116000000000000000000000000000000000000000000000000000000000008111700000000000000000000000000000000000000000000000000000000000811180000000000000000000000000000000000000000000000000000000000081119000000000000000000000000000000000000000000000000000000000008111a000000000000000000000000000000000000000000000000000000000008111b000000000000000000000000000000000000000000000000000000000008111c000000000000000000000000000000000000000000000000000000000008111d000000000000000000000000000000000000000000000000000000000008111e000000000000000000000000000000000000000000000000000000000008111f0000000000000000000000000000000000000000000000000000000000081120000000000000000000000000000000000000000000000000000000000008112100000000000000000000000000000000000000000000000000000000000811220000000000000000000000000000000000000000000000000000000000081123000000000000000000000000000000000000000000000000000000000008112400000000000000000000000000000000000000000000000000000000000811250000000000000000000000000000000000000000000000000000000000081126000000000000000000000000000000000000000000000000000000000008112700000000000000000000000000000000000000000000000000000000000811280000000000000000000000000000000000000000000000000000000000081129000000000000000000000000000000000000000000000000000000000008112a000000000000000000000000000000000000000000000000000000000008112b000000000000000000000000000000000000000000000000000000000008112c000000000000000000000000000000000000000000000000000000000008112d000000000000000000000000000000000000000000000000000000000008112e000000000000000000000000000000000000000000000000000000000008112f0000000000000000000000000000000000000000000000000000000000081130000000000000000000000000000000000000000000000000000000000008113100000000000000000000000000000000000000000000000000000000000811320000000000000000000000000000000000000000000000000000000000081133000000000000000000000000000000000000000000000000000000000008113400000000000000000000000000000000000000000000000000000000000811350000000000000000000000000000000000000000000000000000000000081136000000000000000000000000000000000000000000000000000000000008113700000000000000000000000000000000000000000000000000000000000811380000000000000000000000000000000000000000000000000000000000081139000000000000000000000000000000000000000000000000000000000008113a000000000000000000000000000000000000000000000000000000000008113b000000000000000000000000000000000000000000000000000000000008113c000000000000000000000000000000000000000000000000000000000008113d000000000000000000000000000000000000000000000000000000000008113e0800729302aa1a70a4a20b6599d3212f46b61aad2a5dde193943a2319b073a3607008e49816f26ee0fdc1f504816896b9a965a4be867157e0acb760131d6c5a1d7009a36528a17f4bf9aeda0e94a76421751a92e647175d5f52c8a398c4333e4d900cc0036017affc18d139bfda6d81de9633fda58779067888e1b7cc19ef5c3ac00e08b96ca0a4aeafe68a167ed4764e11a49f92a0bbcece24f818e12764543ae00f7ba1cca9813bbc921172cf7743be25f9d6eff6efacddb231dc74ba32e11a400aebe279996b2a84257b9c0d87eaacf4dec9b2c5f9d705ec21738f1c912182e009b32132ce2781e97c91c3eef74e3fe31421e0ea69eb66214624e74853a6dbc400000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000008200a0000000000000000000000000000000000000000000000000000000000082001000000000000000000000000000000000000000000000000000000000008200b0000000000000000000000000000000000000000000000000000000000082002000000000000000000000000000000000000000000000000000000000008200c0000000000000000000000000000000000000000000000000000000000082003000000000000000000000000000000000000000000000000000000000008200d0000000000000000000000000000000000000000000000000000000000082004000000000000000000000000000000000000000000000000000000000008200e0000000000000000000000000000000000000000000000000000000000082005000000000000000000000000000000000000000000000000000000000008200f00000000000000000000000000000000000000000000000000000000000820060000000000000000000000000000000000000000000000000000000000082010000000000000000000000000000000000000000000000000000000000008200700000000000000000000000000000000000000000000000000000000000820110000000000000000000000000000000000000000000000000000000000082008000000000000000000000000000000000000000000000000000000000008201200000000000000000000000000000000000000000000000000000000000820090000000000000000000000000000000000000000000000000000000000082013000000000000000000000000000000000000000000000000000000000008200a0000000000000000000000000000000000000000000000000000000000082014000000000000000000000000000000000000000000000000000000000008200b0000000000000000000000000000000000000000000000000000000000082015000000000000000000000000000000000000000000000000000000000008200c0000000000000000000000000000000000000000000000000000000000082016000000000000000000000000000000000000000000000000000000000008200d0000000000000000000000000000000000000000000000000000000000082017000000000000000000000000000000000000000000000000000000000008200e0000000000000000000000000000000000000000000000000000000000082018000000000000000000000000000000000000000000000000000000000008200f00000000000000000000000000000000000000000000000000000000000820190000000000000000000000000000000000000000000000000000000000082010000000000000000000000000000000000000000000000000000000000008201a0000000000000000000000000000000000000000000000000000000000082011000000000000000000000000000000000000000000000000000000000008201b0000000000000000000000000000000000000000000000000000000000082012000000000000000000000000000000000000000000000000000000000008201c0000000000000000000000000000000000000000000000000000000000082013000000000000000000000000000000000000000000000000000000000008201d0000000000000000000000000000000000000000000000000000000000082014000000000000000000000000000000000000000000000000000000000008201e0000000000000000000000000000000000000000000000000000000000082015000000000000000000000000000000000000000000000000000000000008201f00000000000000000000000000000000000000000000000000000000000820160000000000000000000000000000000000000000000000000000000000082020000000000000000000000000000000000000000000000000000000000008201700000000000000000000000000000000000000000000000000000000000820210000000000000000000000000000000000000000000000000000000000082018000000000000000000000000000000000000000000000000000000000008202200000000000000000000000000000000000000000000000000000000000820190000000000000000000000000000000000000000000000000000000000082023000000000000000000000000000000000000000000000000000000000008201a0000000000000000000000000000000000000000000000000000000000082024000000000000000000000000000000000000000000000000000000000008201b0000000000000000000000000000000000000000000000000000000000082025000000000000000000000000000000000000000000000000000000000008201c0000000000000000000000000000000000000000000000000000000000082026000000000000000000000000000000000000000000000000000000000008201d0000000000000000000000000000000000000000000000000000000000082027000000000000000000000000000000000000000000000000000000000008201e0000000000000000000000000000000000000000000000000000000000082028000000000000000000000000000000000000000000000000000000000008201f00000000000000000000000000000000000000000000000000000000000820290000000000000000000000000000000000000000000000000000000000082020000000000000000000000000000000000000000000000000000000000008202a0000000000000000000000000000000000000000000000000000000000082021000000000000000000000000000000000000000000000000000000000008202b0000000000000000000000000000000000000000000000000000000000082022000000000000000000000000000000000000000000000000000000000008202c0000000000000000000000000000000000000000000000000000000000082023000000000000000000000000000000000000000000000000000000000008202d0000000000000000000000000000000000000000000000000000000000082024000000000000000000000000000000000000000000000000000000000008202e0000000000000000000000000000000000000000000000000000000000082025000000000000000000000000000000000000000000000000000000000008202f00000000000000000000000000000000000000000000000000000000000820260000000000000000000000000000000000000000000000000000000000082030000000000000000000000000000000000000000000000000000000000008202700000000000000000000000000000000000000000000000000000000000820310000000000000000000000000000000000000000000000000000000000082028000000000000000000000000000000000000000000000000000000000008203200000000000000000000000000000000000000000000000000000000000820290000000000000000000000000000000000000000000000000000000000082033000000000000000000000000000000000000000000000000000000000008202a0000000000000000000000000000000000000000000000000000000000082034000000000000000000000000000000000000000000000000000000000008202b0000000000000000000000000000000000000000000000000000000000082035000000000000000000000000000000000000000000000000000000000008202c0000000000000000000000000000000000000000000000000000000000082036000000000000000000000000000000000000000000000000000000000008202d0000000000000000000000000000000000000000000000000000000000082037000000000000000000000000000000000000000000000000000000000008202e0000000000000000000000000000000000000000000000000000000000082038000000000000000000000000000000000000000000000000000000000008202f00000000000000000000000000000000000000000000000000000000000820390000000000000000000000000000000000000000000000000000000000082030000000000000000000000000000000000000000000000000000000000008203a0000000000000000000000000000000000000000000000000000000000082031000000000000000000000000000000000000000000000000000000000008203b0000000000000000000000000000000000000000000000000000000000082032000000000000000000000000000000000000000000000000000000000008203c0000000000000000000000000000000000000000000000000000000000082033000000000000000000000000000000000000000000000000000000000008203d0000000000000000000000000000000000000000000000000000000000082034000000000000000000000000000000000000000000000000000000000008203e0000000000000000000000000000000000000000000000000000000000082035000000000000000000000000000000000000000000000000000000000008203f00000000000000000000000000000000000000000000000000000000000820360000000000000000000000000000000000000000000000000000000000082040000000000000000000000000000000000000000000000000000000000008203700000000000000000000000000000000000000000000000000000000000820410000000000000000000000000000000000000000000000000000000000082038000000000000000000000000000000000000000000000000000000000008204200000000000000000000000000000000000000000000000000000000000820390000000000000000000000000000000000000000000000000000000000082043000000000000000000000000000000000000000000000000000000000008203a0000000000000000000000000000000000000000000000000000000000082044000000000000000000000000000000000000000000000000000000000008203b0000000000000000000000000000000000000000000000000000000000082045000000000000000000000000000000000000000000000000000000000008203c0000000000000000000000000000000000000000000000000000000000082046000000000000000000000000000000000000000000000000000000000008203d0000000000000000000000000000000000000000000000000000000000082047000000000000000000000000000000000000000000000000000000000008203e0000000000000000000000000000000000000000000000000000000000082048000000000000000000000000000000000000000000000000000000000008203f0000000000000000000000000000000000000000000000000000000000082049200000000000000000000000000000000000000000000000000000000000081700000000000000000000000000000000000000000000000000000000000008170100000000000000000000000000000000000000000000000000000000000817020000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000012000000000000000000000000000000000000000000000000000000000008170100000000000000000000000000000000000000000000000000000000000817020000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000001200000000000000000000000000000000000000000000000000000000000817020000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000120000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000012000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000001200000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000120000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000012000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000001200000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000120000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a00000012000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b00000012000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c00000012000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d00000012000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e00000012000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f00000012000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000120000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000012000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000001200000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000012000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000001200000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000120000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000012000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000001200000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000120000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a00000012000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b00000012000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c00000012000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d00000012000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d000000000000000000000000000000000000000000000000000000000008172e00000012000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d000000000000000000000000000000000000000000000000000000000008172e000000000000000000000000000000000000000000000000000000000008172f00000012000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d000000000000000000000000000000000000000000000000000000000008172e000000000000000000000000000000000000000000000000000000000008172f00000000000000000000000000000000000000000000000000000000000817300000001200000010ad6a5c780859c42d7ba5f63ab732a0fd91c5152f6d809b25db62a43af1f00900000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000c100000000000000000000000000000000000000000000000000000000000000c100100000000000000000000000000000000000000000000000000000000000c100200000000000000000000000000000000000000000000000000000000000c100300000000000000000000000000000000000000000000000000000000000c100400000000000000000000000000000000000000000000000000000000000c100500000000000000000000000000000000000000000000000000000000000c100600000000000000000000000000000000000000000000000000000000000c100700000000000000000000000000000000000000000000000000000000000c100800000000000000000000000000000000000000000000000000000000000c100900000000000000000000000000000000000000000000000000000000000c100a00000000000000000000000000000000000000000000000000000000000c100b00000000000000000000000000000000000000000000000000000000000c100c00000000000000000000000000000000000000000000000000000000000c100d00000000000000000000000000000000000000000000000000000000000c100e00000000000000000000000000000000000000000000000000000000000c100f00000000000000000000000000000000000000000000000000000000000c101000000000000000000000000000000000000000000000000000000000000c101100000000000000000000000000000000000000000000000000000000000c101200000000000000000000000000000000000000000000000000000000000c101300000000000000000000000000000000000000000000000000000000000c101400000000000000000000000000000000000000000000000000000000000c101500000000000000000000000000000000000000000000000000000000000c101600000000000000000000000000000000000000000000000000000000000c101700000000000000000000000000000000000000000000000000000000000c101800000000000000000000000000000000000000000000000000000000000c101900000000000000000000000000000000000000000000000000000000000c101a00000000000000000000000000000000000000000000000000000000000c101b00000000000000000000000000000000000000000000000000000000000c101c00000000000000000000000000000000000000000000000000000000000c101d00000000000000000000000000000000000000000000000000000000000c101e00000000000000000000000000000000000000000000000000000000000c101f00000000000000000000000000000000000000000000000000000000000c102000000000000000000000000000000000000000000000000000000000000c102100000000000000000000000000000000000000000000000000000000000c102200000000000000000000000000000000000000000000000000000000000c102300000000000000000000000000000000000000000000000000000000000c102400000000000000000000000000000000000000000000000000000000000c102500000000000000000000000000000000000000000000000000000000000c102600000000000000000000000000000000000000000000000000000000000c102700000000000000000000000000000000000000000000000000000000000c102800000000000000000000000000000000000000000000000000000000000c102900000000000000000000000000000000000000000000000000000000000c102a00000000000000000000000000000000000000000000000000000000000c102b00000000000000000000000000000000000000000000000000000000000c102c00000000000000000000000000000000000000000000000000000000000c102d00000000000000000000000000000000000000000000000000000000000c102e00000000000000000000000000000000000000000000000000000000000c102f00000000000000000000000000000000000000000000000000000000000c103000000000000000000000000000000000000000000000000000000000000c103100000000000000000000000000000000000000000000000000000000000c103200000000000000000000000000000000000000000000000000000000000c103300000000000000000000000000000000000000000000000000000000000c103400000000000000000000000000000000000000000000000000000000000c103500000000000000000000000000000000000000000000000000000000000c103600000000000000000000000000000000000000000000000000000000000c103700000000000000000000000000000000000000000000000000000000000c103800000000000000000000000000000000000000000000000000000000000c103900000000000000000000000000000000000000000000000000000000000c103a00000000000000000000000000000000000000000000000000000000000c103b00000000000000000000000000000000000000000000000000000000000c103c00000000000000000000000000000000000000000000000000000000000c103d00000000000000000000000000000000000000000000000000000000000c103e00000000000000000000000000000000000000000000000000000000000c103f4000000000000000000000000000000000000000000000000000000000000c000100000000000000000000000000000000000000000000000000000000000c110000000000000000000000000000000000000000000000000000000000000c110100000000000000000000000000000000000000000000000000000000000c110200000000000000000000000000000000000000000000000000000000000c110300000000000000000000000000000000000000000000000000000000000c110400000000000000000000000000000000000000000000000000000000000c110500000000000000000000000000000000000000000000000000000000000c110600000000000000000000000000000000000000000000000000000000000c110700000000000000000000000000000000000000000000000000000000000c110800000000000000000000000000000000000000000000000000000000000c110900000000000000000000000000000000000000000000000000000000000c110a00000000000000000000000000000000000000000000000000000000000c110b00000000000000000000000000000000000000000000000000000000000c110c00000000000000000000000000000000000000000000000000000000000c110d00000000000000000000000000000000000000000000000000000000000c110e00000000000000000000000000000000000000000000000000000000000c110f00000000000000000000000000000000000000000000000000000000000c111000000000000000000000000000000000000000000000000000000000000c111100000000000000000000000000000000000000000000000000000000000c111200000000000000000000000000000000000000000000000000000000000c111300000000000000000000000000000000000000000000000000000000000c111400000000000000000000000000000000000000000000000000000000000c111500000000000000000000000000000000000000000000000000000000000c111600000000000000000000000000000000000000000000000000000000000c111700000000000000000000000000000000000000000000000000000000000c111800000000000000000000000000000000000000000000000000000000000c111900000000000000000000000000000000000000000000000000000000000c111a00000000000000000000000000000000000000000000000000000000000c111b00000000000000000000000000000000000000000000000000000000000c111c00000000000000000000000000000000000000000000000000000000000c111d00000000000000000000000000000000000000000000000000000000000c111e00000000000000000000000000000000000000000000000000000000000c111f00000000000000000000000000000000000000000000000000000000000c112000000000000000000000000000000000000000000000000000000000000c112100000000000000000000000000000000000000000000000000000000000c112200000000000000000000000000000000000000000000000000000000000c112300000000000000000000000000000000000000000000000000000000000c112400000000000000000000000000000000000000000000000000000000000c112500000000000000000000000000000000000000000000000000000000000c112600000000000000000000000000000000000000000000000000000000000c112700000000000000000000000000000000000000000000000000000000000c112800000000000000000000000000000000000000000000000000000000000c112900000000000000000000000000000000000000000000000000000000000c112a00000000000000000000000000000000000000000000000000000000000c112b00000000000000000000000000000000000000000000000000000000000c112c00000000000000000000000000000000000000000000000000000000000c112d00000000000000000000000000000000000000000000000000000000000c112e00000000000000000000000000000000000000000000000000000000000c112f00000000000000000000000000000000000000000000000000000000000c113000000000000000000000000000000000000000000000000000000000000c113100000000000000000000000000000000000000000000000000000000000c113200000000000000000000000000000000000000000000000000000000000c113300000000000000000000000000000000000000000000000000000000000c113400000000000000000000000000000000000000000000000000000000000c113500000000000000000000000000000000000000000000000000000000000c113600000000000000000000000000000000000000000000000000000000000c113700000000000000000000000000000000000000000000000000000000000c113800000000000000000000000000000000000000000000000000000000000c113900000000000000000000000000000000000000000000000000000000000c113a00000000000000000000000000000000000000000000000000000000000c113b00000000000000000000000000000000000000000000000000000000000c113c00000000000000000000000000000000000000000000000000000000000c113d00000000000000000000000000000000000000000000000000000000000c113e08007a5978eb3d80c3029a8fb8b6ee4ad3fbfdce6650c441e6fe38ac22064ae89700ff996d440fbed85efc21ba0c456dd2a6befa391194afbfb6d5fdbbbae73bee00c407bfd60e2adcbde2db119eee625e7217075d79b97e685e59cf1aa10c01560027e9164324cd6cce62b1408164734adc74e39afaa538183141477a363acf9f001149e00896c4362f8bfd9a64c2d9916b2b8dac3634d8e203a9a71e151f1f68000e8beddd5a0b5237f3df2c74acd61938f8a16dcabf77843421a527ac62b52c0037942d4a37e47229960b4908fe7f0512ae7f6247d2f56cac7511da83bb42a9004689ee134ddb281550e35792402558d47bb723e834d2f6c51c0cc7f2d3fcbc4000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c200a00000000000000000000000000000000000000000000000000000000000c200100000000000000000000000000000000000000000000000000000000000c200b00000000000000000000000000000000000000000000000000000000000c200200000000000000000000000000000000000000000000000000000000000c200c00000000000000000000000000000000000000000000000000000000000c200300000000000000000000000000000000000000000000000000000000000c200d00000000000000000000000000000000000000000000000000000000000c200400000000000000000000000000000000000000000000000000000000000c200e00000000000000000000000000000000000000000000000000000000000c200500000000000000000000000000000000000000000000000000000000000c200f00000000000000000000000000000000000000000000000000000000000c200600000000000000000000000000000000000000000000000000000000000c201000000000000000000000000000000000000000000000000000000000000c200700000000000000000000000000000000000000000000000000000000000c201100000000000000000000000000000000000000000000000000000000000c200800000000000000000000000000000000000000000000000000000000000c201200000000000000000000000000000000000000000000000000000000000c200900000000000000000000000000000000000000000000000000000000000c201300000000000000000000000000000000000000000000000000000000000c200a00000000000000000000000000000000000000000000000000000000000c201400000000000000000000000000000000000000000000000000000000000c200b00000000000000000000000000000000000000000000000000000000000c201500000000000000000000000000000000000000000000000000000000000c200c00000000000000000000000000000000000000000000000000000000000c201600000000000000000000000000000000000000000000000000000000000c200d00000000000000000000000000000000000000000000000000000000000c201700000000000000000000000000000000000000000000000000000000000c200e00000000000000000000000000000000000000000000000000000000000c201800000000000000000000000000000000000000000000000000000000000c200f00000000000000000000000000000000000000000000000000000000000c201900000000000000000000000000000000000000000000000000000000000c201000000000000000000000000000000000000000000000000000000000000c201a00000000000000000000000000000000000000000000000000000000000c201100000000000000000000000000000000000000000000000000000000000c201b00000000000000000000000000000000000000000000000000000000000c201200000000000000000000000000000000000000000000000000000000000c201c00000000000000000000000000000000000000000000000000000000000c201300000000000000000000000000000000000000000000000000000000000c201d00000000000000000000000000000000000000000000000000000000000c201400000000000000000000000000000000000000000000000000000000000c201e00000000000000000000000000000000000000000000000000000000000c201500000000000000000000000000000000000000000000000000000000000c201f00000000000000000000000000000000000000000000000000000000000c201600000000000000000000000000000000000000000000000000000000000c202000000000000000000000000000000000000000000000000000000000000c201700000000000000000000000000000000000000000000000000000000000c202100000000000000000000000000000000000000000000000000000000000c201800000000000000000000000000000000000000000000000000000000000c202200000000000000000000000000000000000000000000000000000000000c201900000000000000000000000000000000000000000000000000000000000c202300000000000000000000000000000000000000000000000000000000000c201a00000000000000000000000000000000000000000000000000000000000c202400000000000000000000000000000000000000000000000000000000000c201b00000000000000000000000000000000000000000000000000000000000c202500000000000000000000000000000000000000000000000000000000000c201c00000000000000000000000000000000000000000000000000000000000c202600000000000000000000000000000000000000000000000000000000000c201d00000000000000000000000000000000000000000000000000000000000c202700000000000000000000000000000000000000000000000000000000000c201e00000000000000000000000000000000000000000000000000000000000c202800000000000000000000000000000000000000000000000000000000000c201f00000000000000000000000000000000000000000000000000000000000c202900000000000000000000000000000000000000000000000000000000000c202000000000000000000000000000000000000000000000000000000000000c202a00000000000000000000000000000000000000000000000000000000000c202100000000000000000000000000000000000000000000000000000000000c202b00000000000000000000000000000000000000000000000000000000000c202200000000000000000000000000000000000000000000000000000000000c202c00000000000000000000000000000000000000000000000000000000000c202300000000000000000000000000000000000000000000000000000000000c202d00000000000000000000000000000000000000000000000000000000000c202400000000000000000000000000000000000000000000000000000000000c202e00000000000000000000000000000000000000000000000000000000000c202500000000000000000000000000000000000000000000000000000000000c202f00000000000000000000000000000000000000000000000000000000000c202600000000000000000000000000000000000000000000000000000000000c203000000000000000000000000000000000000000000000000000000000000c202700000000000000000000000000000000000000000000000000000000000c203100000000000000000000000000000000000000000000000000000000000c202800000000000000000000000000000000000000000000000000000000000c203200000000000000000000000000000000000000000000000000000000000c202900000000000000000000000000000000000000000000000000000000000c203300000000000000000000000000000000000000000000000000000000000c202a00000000000000000000000000000000000000000000000000000000000c203400000000000000000000000000000000000000000000000000000000000c202b00000000000000000000000000000000000000000000000000000000000c203500000000000000000000000000000000000000000000000000000000000c202c00000000000000000000000000000000000000000000000000000000000c203600000000000000000000000000000000000000000000000000000000000c202d00000000000000000000000000000000000000000000000000000000000c203700000000000000000000000000000000000000000000000000000000000c202e00000000000000000000000000000000000000000000000000000000000c203800000000000000000000000000000000000000000000000000000000000c202f00000000000000000000000000000000000000000000000000000000000c203900000000000000000000000000000000000000000000000000000000000c203000000000000000000000000000000000000000000000000000000000000c203a00000000000000000000000000000000000000000000000000000000000c203100000000000000000000000000000000000000000000000000000000000c203b00000000000000000000000000000000000000000000000000000000000c203200000000000000000000000000000000000000000000000000000000000c203c00000000000000000000000000000000000000000000000000000000000c203300000000000000000000000000000000000000000000000000000000000c203d00000000000000000000000000000000000000000000000000000000000c203400000000000000000000000000000000000000000000000000000000000c203e00000000000000000000000000000000000000000000000000000000000c203500000000000000000000000000000000000000000000000000000000000c203f00000000000000000000000000000000000000000000000000000000000c203600000000000000000000000000000000000000000000000000000000000c204000000000000000000000000000000000000000000000000000000000000c203700000000000000000000000000000000000000000000000000000000000c204100000000000000000000000000000000000000000000000000000000000c203800000000000000000000000000000000000000000000000000000000000c204200000000000000000000000000000000000000000000000000000000000c203900000000000000000000000000000000000000000000000000000000000c204300000000000000000000000000000000000000000000000000000000000c203a00000000000000000000000000000000000000000000000000000000000c204400000000000000000000000000000000000000000000000000000000000c203b00000000000000000000000000000000000000000000000000000000000c204500000000000000000000000000000000000000000000000000000000000c203c00000000000000000000000000000000000000000000000000000000000c204600000000000000000000000000000000000000000000000000000000000c203d00000000000000000000000000000000000000000000000000000000000c204700000000000000000000000000000000000000000000000000000000000c203e00000000000000000000000000000000000000000000000000000000000c204800000000000000000000000000000000000000000000000000000000000c203f00000000000000000000000000000000000000000000000000000000000c20492000000000000000000000000000000000000000000000000000000000000c170000000000000000000000000000000000000000000000000000000000000c170100000000000000000000000000000000000000000000000000000000000c170200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c17110000001200000000000000000000000000000000000000000000000000000000000c170100000000000000000000000000000000000000000000000000000000000c170200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c17120000001200000000000000000000000000000000000000000000000000000000000c170200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c17130000001200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c17140000001200000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c17150000001200000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c17160000001200000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c17170000001200000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c17180000001200000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c17190000001200000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a0000001200000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b0000001200000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c0000001200000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d0000001200000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e0000001200000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f0000001200000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c17200000001200000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c17210000001200000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c17220000001200000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c17230000001200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c17240000001200000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c17250000001200000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c17260000001200000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c17270000001200000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c17280000001200000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c17290000001200000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a0000001200000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b0000001200000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c0000001200000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d0000001200000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d00000000000000000000000000000000000000000000000000000000000c172e0000001200000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d00000000000000000000000000000000000000000000000000000000000c172e00000000000000000000000000000000000000000000000000000000000c172f0000001200000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d00000000000000000000000000000000000000000000000000000000000c172e00000000000000000000000000000000000000000000000000000000000c172f00000000000000000000000000000000000000000000000000000000000c1730000000120000002c656711ac564470c49debc20bdb320ea0469a9fabd970d41a3a0b41e922eed30000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000010100100000000000000000000000000000000000000000000000000000000001010020000000000000000000000000000000000000000000000000000000000101003000000000000000000000000000000000000000000000000000000000010100400000000000000000000000000000000000000000000000000000000001010050000000000000000000000000000000000000000000000000000000000101006000000000000000000000000000000000000000000000000000000000010100700000000000000000000000000000000000000000000000000000000001010080000000000000000000000000000000000000000000000000000000000101009000000000000000000000000000000000000000000000000000000000010100a000000000000000000000000000000000000000000000000000000000010100b000000000000000000000000000000000000000000000000000000000010100c000000000000000000000000000000000000000000000000000000000010100d000000000000000000000000000000000000000000000000000000000010100e000000000000000000000000000000000000000000000000000000000010100f0000000000000000000000000000000000000000000000000000000000101010000000000000000000000000000000000000000000000000000000000010101100000000000000000000000000000000000000000000000000000000001010120000000000000000000000000000000000000000000000000000000000101013000000000000000000000000000000000000000000000000000000000010101400000000000000000000000000000000000000000000000000000000001010150000000000000000000000000000000000000000000000000000000000101016000000000000000000000000000000000000000000000000000000000010101700000000000000000000000000000000000000000000000000000000001010180000000000000000000000000000000000000000000000000000000000101019000000000000000000000000000000000000000000000000000000000010101a000000000000000000000000000000000000000000000000000000000010101b000000000000000000000000000000000000000000000000000000000010101c000000000000000000000000000000000000000000000000000000000010101d000000000000000000000000000000000000000000000000000000000010101e000000000000000000000000000000000000000000000000000000000010101f0000000000000000000000000000000000000000000000000000000000101020000000000000000000000000000000000000000000000000000000000010102100000000000000000000000000000000000000000000000000000000001010220000000000000000000000000000000000000000000000000000000000101023000000000000000000000000000000000000000000000000000000000010102400000000000000000000000000000000000000000000000000000000001010250000000000000000000000000000000000000000000000000000000000101026000000000000000000000000000000000000000000000000000000000010102700000000000000000000000000000000000000000000000000000000001010280000000000000000000000000000000000000000000000000000000000101029000000000000000000000000000000000000000000000000000000000010102a000000000000000000000000000000000000000000000000000000000010102b000000000000000000000000000000000000000000000000000000000010102c000000000000000000000000000000000000000000000000000000000010102d000000000000000000000000000000000000000000000000000000000010102e000000000000000000000000000000000000000000000000000000000010102f0000000000000000000000000000000000000000000000000000000000101030000000000000000000000000000000000000000000000000000000000010103100000000000000000000000000000000000000000000000000000000001010320000000000000000000000000000000000000000000000000000000000101033000000000000000000000000000000000000000000000000000000000010103400000000000000000000000000000000000000000000000000000000001010350000000000000000000000000000000000000000000000000000000000101036000000000000000000000000000000000000000000000000000000000010103700000000000000000000000000000000000000000000000000000000001010380000000000000000000000000000000000000000000000000000000000101039000000000000000000000000000000000000000000000000000000000010103a000000000000000000000000000000000000000000000000000000000010103b000000000000000000000000000000000000000000000000000000000010103c000000000000000000000000000000000000000000000000000000000010103d000000000000000000000000000000000000000000000000000000000010103e000000000000000000000000000000000000000000000000000000000010103f4000000000000000000000000000000000000000000000000000000000001000010000000000000000000000000000000000000000000000000000000000101100000000000000000000000000000000000000000000000000000000000010110100000000000000000000000000000000000000000000000000000000001011020000000000000000000000000000000000000000000000000000000000101103000000000000000000000000000000000000000000000000000000000010110400000000000000000000000000000000000000000000000000000000001011050000000000000000000000000000000000000000000000000000000000101106000000000000000000000000000000000000000000000000000000000010110700000000000000000000000000000000000000000000000000000000001011080000000000000000000000000000000000000000000000000000000000101109000000000000000000000000000000000000000000000000000000000010110a000000000000000000000000000000000000000000000000000000000010110b000000000000000000000000000000000000000000000000000000000010110c000000000000000000000000000000000000000000000000000000000010110d000000000000000000000000000000000000000000000000000000000010110e000000000000000000000000000000000000000000000000000000000010110f0000000000000000000000000000000000000000000000000000000000101110000000000000000000000000000000000000000000000000000000000010111100000000000000000000000000000000000000000000000000000000001011120000000000000000000000000000000000000000000000000000000000101113000000000000000000000000000000000000000000000000000000000010111400000000000000000000000000000000000000000000000000000000001011150000000000000000000000000000000000000000000000000000000000101116000000000000000000000000000000000000000000000000000000000010111700000000000000000000000000000000000000000000000000000000001011180000000000000000000000000000000000000000000000000000000000101119000000000000000000000000000000000000000000000000000000000010111a000000000000000000000000000000000000000000000000000000000010111b000000000000000000000000000000000000000000000000000000000010111c000000000000000000000000000000000000000000000000000000000010111d000000000000000000000000000000000000000000000000000000000010111e000000000000000000000000000000000000000000000000000000000010111f0000000000000000000000000000000000000000000000000000000000101120000000000000000000000000000000000000000000000000000000000010112100000000000000000000000000000000000000000000000000000000001011220000000000000000000000000000000000000000000000000000000000101123000000000000000000000000000000000000000000000000000000000010112400000000000000000000000000000000000000000000000000000000001011250000000000000000000000000000000000000000000000000000000000101126000000000000000000000000000000000000000000000000000000000010112700000000000000000000000000000000000000000000000000000000001011280000000000000000000000000000000000000000000000000000000000101129000000000000000000000000000000000000000000000000000000000010112a000000000000000000000000000000000000000000000000000000000010112b000000000000000000000000000000000000000000000000000000000010112c000000000000000000000000000000000000000000000000000000000010112d000000000000000000000000000000000000000000000000000000000010112e000000000000000000000000000000000000000000000000000000000010112f0000000000000000000000000000000000000000000000000000000000101130000000000000000000000000000000000000000000000000000000000010113100000000000000000000000000000000000000000000000000000000001011320000000000000000000000000000000000000000000000000000000000101133000000000000000000000000000000000000000000000000000000000010113400000000000000000000000000000000000000000000000000000000001011350000000000000000000000000000000000000000000000000000000000101136000000000000000000000000000000000000000000000000000000000010113700000000000000000000000000000000000000000000000000000000001011380000000000000000000000000000000000000000000000000000000000101139000000000000000000000000000000000000000000000000000000000010113a000000000000000000000000000000000000000000000000000000000010113b000000000000000000000000000000000000000000000000000000000010113c000000000000000000000000000000000000000000000000000000000010113d000000000000000000000000000000000000000000000000000000000010113e0800f4a974f3931439eadaa2a1c750da0bfcdbd8cdae40cc85302f4bfa048b0e81002743145542725410ab84636e9fa37693e003a4009c1f37a93cbbb0156ed92400187c49180dd97e6638e77aabfd88805881cfaad27d64522e9c9c1bf81d01d300f83fa82e09ea043e854906a36a5b1f034a5fdcd614791889429b60f6a58a0c00ec6b3bb81422913e5cfbe9741b8ed9aaf03ceb7c2023708e0b220f91cc416c00e0422f0ec1fd258ae99565b09ac74c8a59fbdc3436e5083ad04aad4a0f4c9400725f0533c2d23afdbdde95fb77b5043a83b60138e2f23ce2f2eb17f77582e7009defaf28a0f96fe6bb2acd2d82649d34af40e1aeda9397625dc30c3e2f49da400000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000010200a0000000000000000000000000000000000000000000000000000000000102001000000000000000000000000000000000000000000000000000000000010200b0000000000000000000000000000000000000000000000000000000000102002000000000000000000000000000000000000000000000000000000000010200c0000000000000000000000000000000000000000000000000000000000102003000000000000000000000000000000000000000000000000000000000010200d0000000000000000000000000000000000000000000000000000000000102004000000000000000000000000000000000000000000000000000000000010200e0000000000000000000000000000000000000000000000000000000000102005000000000000000000000000000000000000000000000000000000000010200f00000000000000000000000000000000000000000000000000000000001020060000000000000000000000000000000000000000000000000000000000102010000000000000000000000000000000000000000000000000000000000010200700000000000000000000000000000000000000000000000000000000001020110000000000000000000000000000000000000000000000000000000000102008000000000000000000000000000000000000000000000000000000000010201200000000000000000000000000000000000000000000000000000000001020090000000000000000000000000000000000000000000000000000000000102013000000000000000000000000000000000000000000000000000000000010200a0000000000000000000000000000000000000000000000000000000000102014000000000000000000000000000000000000000000000000000000000010200b0000000000000000000000000000000000000000000000000000000000102015000000000000000000000000000000000000000000000000000000000010200c0000000000000000000000000000000000000000000000000000000000102016000000000000000000000000000000000000000000000000000000000010200d0000000000000000000000000000000000000000000000000000000000102017000000000000000000000000000000000000000000000000000000000010200e0000000000000000000000000000000000000000000000000000000000102018000000000000000000000000000000000000000000000000000000000010200f00000000000000000000000000000000000000000000000000000000001020190000000000000000000000000000000000000000000000000000000000102010000000000000000000000000000000000000000000000000000000000010201a0000000000000000000000000000000000000000000000000000000000102011000000000000000000000000000000000000000000000000000000000010201b0000000000000000000000000000000000000000000000000000000000102012000000000000000000000000000000000000000000000000000000000010201c0000000000000000000000000000000000000000000000000000000000102013000000000000000000000000000000000000000000000000000000000010201d0000000000000000000000000000000000000000000000000000000000102014000000000000000000000000000000000000000000000000000000000010201e0000000000000000000000000000000000000000000000000000000000102015000000000000000000000000000000000000000000000000000000000010201f00000000000000000000000000000000000000000000000000000000001020160000000000000000000000000000000000000000000000000000000000102020000000000000000000000000000000000000000000000000000000000010201700000000000000000000000000000000000000000000000000000000001020210000000000000000000000000000000000000000000000000000000000102018000000000000000000000000000000000000000000000000000000000010202200000000000000000000000000000000000000000000000000000000001020190000000000000000000000000000000000000000000000000000000000102023000000000000000000000000000000000000000000000000000000000010201a0000000000000000000000000000000000000000000000000000000000102024000000000000000000000000000000000000000000000000000000000010201b0000000000000000000000000000000000000000000000000000000000102025000000000000000000000000000000000000000000000000000000000010201c0000000000000000000000000000000000000000000000000000000000102026000000000000000000000000000000000000000000000000000000000010201d0000000000000000000000000000000000000000000000000000000000102027000000000000000000000000000000000000000000000000000000000010201e0000000000000000000000000000000000000000000000000000000000102028000000000000000000000000000000000000000000000000000000000010201f00000000000000000000000000000000000000000000000000000000001020290000000000000000000000000000000000000000000000000000000000102020000000000000000000000000000000000000000000000000000000000010202a0000000000000000000000000000000000000000000000000000000000102021000000000000000000000000000000000000000000000000000000000010202b0000000000000000000000000000000000000000000000000000000000102022000000000000000000000000000000000000000000000000000000000010202c0000000000000000000000000000000000000000000000000000000000102023000000000000000000000000000000000000000000000000000000000010202d0000000000000000000000000000000000000000000000000000000000102024000000000000000000000000000000000000000000000000000000000010202e0000000000000000000000000000000000000000000000000000000000102025000000000000000000000000000000000000000000000000000000000010202f00000000000000000000000000000000000000000000000000000000001020260000000000000000000000000000000000000000000000000000000000102030000000000000000000000000000000000000000000000000000000000010202700000000000000000000000000000000000000000000000000000000001020310000000000000000000000000000000000000000000000000000000000102028000000000000000000000000000000000000000000000000000000000010203200000000000000000000000000000000000000000000000000000000001020290000000000000000000000000000000000000000000000000000000000102033000000000000000000000000000000000000000000000000000000000010202a0000000000000000000000000000000000000000000000000000000000102034000000000000000000000000000000000000000000000000000000000010202b0000000000000000000000000000000000000000000000000000000000102035000000000000000000000000000000000000000000000000000000000010202c0000000000000000000000000000000000000000000000000000000000102036000000000000000000000000000000000000000000000000000000000010202d0000000000000000000000000000000000000000000000000000000000102037000000000000000000000000000000000000000000000000000000000010202e0000000000000000000000000000000000000000000000000000000000102038000000000000000000000000000000000000000000000000000000000010202f00000000000000000000000000000000000000000000000000000000001020390000000000000000000000000000000000000000000000000000000000102030000000000000000000000000000000000000000000000000000000000010203a0000000000000000000000000000000000000000000000000000000000102031000000000000000000000000000000000000000000000000000000000010203b0000000000000000000000000000000000000000000000000000000000102032000000000000000000000000000000000000000000000000000000000010203c0000000000000000000000000000000000000000000000000000000000102033000000000000000000000000000000000000000000000000000000000010203d0000000000000000000000000000000000000000000000000000000000102034000000000000000000000000000000000000000000000000000000000010203e0000000000000000000000000000000000000000000000000000000000102035000000000000000000000000000000000000000000000000000000000010203f00000000000000000000000000000000000000000000000000000000001020360000000000000000000000000000000000000000000000000000000000102040000000000000000000000000000000000000000000000000000000000010203700000000000000000000000000000000000000000000000000000000001020410000000000000000000000000000000000000000000000000000000000102038000000000000000000000000000000000000000000000000000000000010204200000000000000000000000000000000000000000000000000000000001020390000000000000000000000000000000000000000000000000000000000102043000000000000000000000000000000000000000000000000000000000010203a0000000000000000000000000000000000000000000000000000000000102044000000000000000000000000000000000000000000000000000000000010203b0000000000000000000000000000000000000000000000000000000000102045000000000000000000000000000000000000000000000000000000000010203c0000000000000000000000000000000000000000000000000000000000102046000000000000000000000000000000000000000000000000000000000010203d0000000000000000000000000000000000000000000000000000000000102047000000000000000000000000000000000000000000000000000000000010203e0000000000000000000000000000000000000000000000000000000000102048000000000000000000000000000000000000000000000000000000000010203f0000000000000000000000000000000000000000000000000000000000102049200000000000000000000000000000000000000000000000000000000000101700000000000000000000000000000000000000000000000000000000000010170100000000000000000000000000000000000000000000000000000000001017020000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000012000000000000000000000000000000000000000000000000000000000010170100000000000000000000000000000000000000000000000000000000001017020000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000001200000000000000000000000000000000000000000000000000000000001017020000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000120000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000012000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000001200000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000120000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000012000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000001200000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000120000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a00000012000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b00000012000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c00000012000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d00000012000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e00000012000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f00000012000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000120000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000012000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000001200000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000012000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000001200000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000120000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000012000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000001200000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000120000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a00000012000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b00000012000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c00000012000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d00000012000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d000000000000000000000000000000000000000000000000000000000010172e00000012000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d000000000000000000000000000000000000000000000000000000000010172e000000000000000000000000000000000000000000000000000000000010172f00000012000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d000000000000000000000000000000000000000000000000000000000010172e000000000000000000000000000000000000000000000000000000000010172f0000000000000000000000000000000000000000000000000000000000101730000000120000", + "body": "0x000000040007e22a43bf4aa4e0f6ea816520814f92083c90811f235b4d6626ac520ed81eab0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000004100100000000000000000000000000000000000000000000000000000000000410020000000000000000000000000000000000000000000000000000000000041003000000000000000000000000000000000000000000000000000000000004100400000000000000000000000000000000000000000000000000000000000410050000000000000000000000000000000000000000000000000000000000041006000000000000000000000000000000000000000000000000000000000004100700000000000000000000000000000000000000000000000000000000000410080000000000000000000000000000000000000000000000000000000000041009000000000000000000000000000000000000000000000000000000000004100a000000000000000000000000000000000000000000000000000000000004100b000000000000000000000000000000000000000000000000000000000004100c000000000000000000000000000000000000000000000000000000000004100d000000000000000000000000000000000000000000000000000000000004100e000000000000000000000000000000000000000000000000000000000004100f0000000000000000000000000000000000000000000000000000000000041010000000000000000000000000000000000000000000000000000000000004101100000000000000000000000000000000000000000000000000000000000410120000000000000000000000000000000000000000000000000000000000041013000000000000000000000000000000000000000000000000000000000004101400000000000000000000000000000000000000000000000000000000000410150000000000000000000000000000000000000000000000000000000000041016000000000000000000000000000000000000000000000000000000000004101700000000000000000000000000000000000000000000000000000000000410180000000000000000000000000000000000000000000000000000000000041019000000000000000000000000000000000000000000000000000000000004101a000000000000000000000000000000000000000000000000000000000004101b000000000000000000000000000000000000000000000000000000000004101c000000000000000000000000000000000000000000000000000000000004101d000000000000000000000000000000000000000000000000000000000004101e000000000000000000000000000000000000000000000000000000000004101f0000000000000000000000000000000000000000000000000000000000041020000000000000000000000000000000000000000000000000000000000004102100000000000000000000000000000000000000000000000000000000000410220000000000000000000000000000000000000000000000000000000000041023000000000000000000000000000000000000000000000000000000000004102400000000000000000000000000000000000000000000000000000000000410250000000000000000000000000000000000000000000000000000000000041026000000000000000000000000000000000000000000000000000000000004102700000000000000000000000000000000000000000000000000000000000410280000000000000000000000000000000000000000000000000000000000041029000000000000000000000000000000000000000000000000000000000004102a000000000000000000000000000000000000000000000000000000000004102b000000000000000000000000000000000000000000000000000000000004102c000000000000000000000000000000000000000000000000000000000004102d000000000000000000000000000000000000000000000000000000000004102e000000000000000000000000000000000000000000000000000000000004102f0000000000000000000000000000000000000000000000000000000000041030000000000000000000000000000000000000000000000000000000000004103100000000000000000000000000000000000000000000000000000000000410320000000000000000000000000000000000000000000000000000000000041033000000000000000000000000000000000000000000000000000000000004103400000000000000000000000000000000000000000000000000000000000410350000000000000000000000000000000000000000000000000000000000041036000000000000000000000000000000000000000000000000000000000004103700000000000000000000000000000000000000000000000000000000000410380000000000000000000000000000000000000000000000000000000000041039000000000000000000000000000000000000000000000000000000000004103a000000000000000000000000000000000000000000000000000000000004103b000000000000000000000000000000000000000000000000000000000004103c000000000000000000000000000000000000000000000000000000000004103d000000000000000000000000000000000000000000000000000000000004103e000000000000000000000000000000000000000000000000000000000004103f4000000000000000000000000000000000000000000000000000000000000400010000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004110100000000000000000000000000000000000000000000000000000000000411020000000000000000000000000000000000000000000000000000000000041103000000000000000000000000000000000000000000000000000000000004110400000000000000000000000000000000000000000000000000000000000411050000000000000000000000000000000000000000000000000000000000041106000000000000000000000000000000000000000000000000000000000004110700000000000000000000000000000000000000000000000000000000000411080000000000000000000000000000000000000000000000000000000000041109000000000000000000000000000000000000000000000000000000000004110a000000000000000000000000000000000000000000000000000000000004110b000000000000000000000000000000000000000000000000000000000004110c000000000000000000000000000000000000000000000000000000000004110d000000000000000000000000000000000000000000000000000000000004110e000000000000000000000000000000000000000000000000000000000004110f0000000000000000000000000000000000000000000000000000000000041110000000000000000000000000000000000000000000000000000000000004111100000000000000000000000000000000000000000000000000000000000411120000000000000000000000000000000000000000000000000000000000041113000000000000000000000000000000000000000000000000000000000004111400000000000000000000000000000000000000000000000000000000000411150000000000000000000000000000000000000000000000000000000000041116000000000000000000000000000000000000000000000000000000000004111700000000000000000000000000000000000000000000000000000000000411180000000000000000000000000000000000000000000000000000000000041119000000000000000000000000000000000000000000000000000000000004111a000000000000000000000000000000000000000000000000000000000004111b000000000000000000000000000000000000000000000000000000000004111c000000000000000000000000000000000000000000000000000000000004111d000000000000000000000000000000000000000000000000000000000004111e000000000000000000000000000000000000000000000000000000000004111f0000000000000000000000000000000000000000000000000000000000041120000000000000000000000000000000000000000000000000000000000004112100000000000000000000000000000000000000000000000000000000000411220000000000000000000000000000000000000000000000000000000000041123000000000000000000000000000000000000000000000000000000000004112400000000000000000000000000000000000000000000000000000000000411250000000000000000000000000000000000000000000000000000000000041126000000000000000000000000000000000000000000000000000000000004112700000000000000000000000000000000000000000000000000000000000411280000000000000000000000000000000000000000000000000000000000041129000000000000000000000000000000000000000000000000000000000004112a000000000000000000000000000000000000000000000000000000000004112b000000000000000000000000000000000000000000000000000000000004112c000000000000000000000000000000000000000000000000000000000004112d000000000000000000000000000000000000000000000000000000000004112e000000000000000000000000000000000000000000000000000000000004112f0000000000000000000000000000000000000000000000000000000000041130000000000000000000000000000000000000000000000000000000000004113100000000000000000000000000000000000000000000000000000000000411320000000000000000000000000000000000000000000000000000000000041133000000000000000000000000000000000000000000000000000000000004113400000000000000000000000000000000000000000000000000000000000411350000000000000000000000000000000000000000000000000000000000041136000000000000000000000000000000000000000000000000000000000004113700000000000000000000000000000000000000000000000000000000000411380000000000000000000000000000000000000000000000000000000000041139000000000000000000000000000000000000000000000000000000000004113a000000000000000000000000000000000000000000000000000000000004113b000000000000000000000000000000000000000000000000000000000004113c000000000000000000000000000000000000000000000000000000000004113d000000000000000000000000000000000000000000000000000000000004113e0800a5aa1166625896bde633744d5cb9fd4d7327067ffbf2c0268f34e6c3731c6d001bf2a9a2f21fdde703e72f206e0714a4bd685407082051a124ef5c331af4910028584be9cb0d013a5b68ae702bc08e0e4fb7cf6e44ce1eeb545dac10da46d800e6fd2d980ee9441a8394f7e862bde18255df154c5f6ed20b051fd1b3beec140056abfa9fe2771224cfd85025652d500229a359f87a796f47a9dd276f67b20400ba66a1d2671ae53581211bc2f3aea1d0a5ca6a42adc329e58df7a7e0ce486100de146f925270c90f18e7dc52ae68f729e6795d2bf4fa7f4054ebc0105a5fcc002de9e4377b5c483ac40477ec4c8225adf25c79a1a320dca74a02943fd1e37f400000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042001000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042002000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042003000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042004000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042005000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420060000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004200700000000000000000000000000000000000000000000000000000000000420110000000000000000000000000000000000000000000000000000000000042008000000000000000000000000000000000000000000000000000000000004201200000000000000000000000000000000000000000000000000000000000420090000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042016000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042017000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042011000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042012000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420160000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004201700000000000000000000000000000000000000000000000000000000000420210000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004202200000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042026000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042027000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042021000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042022000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420260000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004202700000000000000000000000000000000000000000000000000000000000420310000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004203200000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042036000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042037000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042031000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042032000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004203f00000000000000000000000000000000000000000000000000000000000420360000000000000000000000000000000000000000000000000000000000042040000000000000000000000000000000000000000000000000000000000004203700000000000000000000000000000000000000000000000000000000000420410000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004204200000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042043000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042044000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042045000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042046000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042047000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042048000000000000000000000000000000000000000000000000000000000004203f0000000000000000000000000000000000000000000000000000000000042049200000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000012000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000001200000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000120000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000012000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000001200000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000120000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000012000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000001200000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000120000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a00000012000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b00000012000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c00000012000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d00000012000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e00000012000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f00000012000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000120000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000012000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000001200000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000012000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000001200000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000120000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000012000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000001200000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000120000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a00000012000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b00000012000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c00000012000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d00000012000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e00000012000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f00000012000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f00000000000000000000000000000000000000000000000000000000000417300000001200000008175f983c7c7d26cb109e7be47364d68d45dc1c93ba4d2b7cb9f1fbed12910e0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000081000000000000000000000000000000000000000000000000000000000000008100100000000000000000000000000000000000000000000000000000000000810020000000000000000000000000000000000000000000000000000000000081003000000000000000000000000000000000000000000000000000000000008100400000000000000000000000000000000000000000000000000000000000810050000000000000000000000000000000000000000000000000000000000081006000000000000000000000000000000000000000000000000000000000008100700000000000000000000000000000000000000000000000000000000000810080000000000000000000000000000000000000000000000000000000000081009000000000000000000000000000000000000000000000000000000000008100a000000000000000000000000000000000000000000000000000000000008100b000000000000000000000000000000000000000000000000000000000008100c000000000000000000000000000000000000000000000000000000000008100d000000000000000000000000000000000000000000000000000000000008100e000000000000000000000000000000000000000000000000000000000008100f0000000000000000000000000000000000000000000000000000000000081010000000000000000000000000000000000000000000000000000000000008101100000000000000000000000000000000000000000000000000000000000810120000000000000000000000000000000000000000000000000000000000081013000000000000000000000000000000000000000000000000000000000008101400000000000000000000000000000000000000000000000000000000000810150000000000000000000000000000000000000000000000000000000000081016000000000000000000000000000000000000000000000000000000000008101700000000000000000000000000000000000000000000000000000000000810180000000000000000000000000000000000000000000000000000000000081019000000000000000000000000000000000000000000000000000000000008101a000000000000000000000000000000000000000000000000000000000008101b000000000000000000000000000000000000000000000000000000000008101c000000000000000000000000000000000000000000000000000000000008101d000000000000000000000000000000000000000000000000000000000008101e000000000000000000000000000000000000000000000000000000000008101f0000000000000000000000000000000000000000000000000000000000081020000000000000000000000000000000000000000000000000000000000008102100000000000000000000000000000000000000000000000000000000000810220000000000000000000000000000000000000000000000000000000000081023000000000000000000000000000000000000000000000000000000000008102400000000000000000000000000000000000000000000000000000000000810250000000000000000000000000000000000000000000000000000000000081026000000000000000000000000000000000000000000000000000000000008102700000000000000000000000000000000000000000000000000000000000810280000000000000000000000000000000000000000000000000000000000081029000000000000000000000000000000000000000000000000000000000008102a000000000000000000000000000000000000000000000000000000000008102b000000000000000000000000000000000000000000000000000000000008102c000000000000000000000000000000000000000000000000000000000008102d000000000000000000000000000000000000000000000000000000000008102e000000000000000000000000000000000000000000000000000000000008102f0000000000000000000000000000000000000000000000000000000000081030000000000000000000000000000000000000000000000000000000000008103100000000000000000000000000000000000000000000000000000000000810320000000000000000000000000000000000000000000000000000000000081033000000000000000000000000000000000000000000000000000000000008103400000000000000000000000000000000000000000000000000000000000810350000000000000000000000000000000000000000000000000000000000081036000000000000000000000000000000000000000000000000000000000008103700000000000000000000000000000000000000000000000000000000000810380000000000000000000000000000000000000000000000000000000000081039000000000000000000000000000000000000000000000000000000000008103a000000000000000000000000000000000000000000000000000000000008103b000000000000000000000000000000000000000000000000000000000008103c000000000000000000000000000000000000000000000000000000000008103d000000000000000000000000000000000000000000000000000000000008103e000000000000000000000000000000000000000000000000000000000008103f4000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000000000081100000000000000000000000000000000000000000000000000000000000008110100000000000000000000000000000000000000000000000000000000000811020000000000000000000000000000000000000000000000000000000000081103000000000000000000000000000000000000000000000000000000000008110400000000000000000000000000000000000000000000000000000000000811050000000000000000000000000000000000000000000000000000000000081106000000000000000000000000000000000000000000000000000000000008110700000000000000000000000000000000000000000000000000000000000811080000000000000000000000000000000000000000000000000000000000081109000000000000000000000000000000000000000000000000000000000008110a000000000000000000000000000000000000000000000000000000000008110b000000000000000000000000000000000000000000000000000000000008110c000000000000000000000000000000000000000000000000000000000008110d000000000000000000000000000000000000000000000000000000000008110e000000000000000000000000000000000000000000000000000000000008110f0000000000000000000000000000000000000000000000000000000000081110000000000000000000000000000000000000000000000000000000000008111100000000000000000000000000000000000000000000000000000000000811120000000000000000000000000000000000000000000000000000000000081113000000000000000000000000000000000000000000000000000000000008111400000000000000000000000000000000000000000000000000000000000811150000000000000000000000000000000000000000000000000000000000081116000000000000000000000000000000000000000000000000000000000008111700000000000000000000000000000000000000000000000000000000000811180000000000000000000000000000000000000000000000000000000000081119000000000000000000000000000000000000000000000000000000000008111a000000000000000000000000000000000000000000000000000000000008111b000000000000000000000000000000000000000000000000000000000008111c000000000000000000000000000000000000000000000000000000000008111d000000000000000000000000000000000000000000000000000000000008111e000000000000000000000000000000000000000000000000000000000008111f0000000000000000000000000000000000000000000000000000000000081120000000000000000000000000000000000000000000000000000000000008112100000000000000000000000000000000000000000000000000000000000811220000000000000000000000000000000000000000000000000000000000081123000000000000000000000000000000000000000000000000000000000008112400000000000000000000000000000000000000000000000000000000000811250000000000000000000000000000000000000000000000000000000000081126000000000000000000000000000000000000000000000000000000000008112700000000000000000000000000000000000000000000000000000000000811280000000000000000000000000000000000000000000000000000000000081129000000000000000000000000000000000000000000000000000000000008112a000000000000000000000000000000000000000000000000000000000008112b000000000000000000000000000000000000000000000000000000000008112c000000000000000000000000000000000000000000000000000000000008112d000000000000000000000000000000000000000000000000000000000008112e000000000000000000000000000000000000000000000000000000000008112f0000000000000000000000000000000000000000000000000000000000081130000000000000000000000000000000000000000000000000000000000008113100000000000000000000000000000000000000000000000000000000000811320000000000000000000000000000000000000000000000000000000000081133000000000000000000000000000000000000000000000000000000000008113400000000000000000000000000000000000000000000000000000000000811350000000000000000000000000000000000000000000000000000000000081136000000000000000000000000000000000000000000000000000000000008113700000000000000000000000000000000000000000000000000000000000811380000000000000000000000000000000000000000000000000000000000081139000000000000000000000000000000000000000000000000000000000008113a000000000000000000000000000000000000000000000000000000000008113b000000000000000000000000000000000000000000000000000000000008113c000000000000000000000000000000000000000000000000000000000008113d000000000000000000000000000000000000000000000000000000000008113e080026263fabd0ba476199c8814cb50dacb2a65367e5fa9bde3157c1ba9e5f065e00b3a7b6a97b0c45beaed0951a33765ea09973fc5528a38843bebc4143cbf83100a84fd7f22c19d59a4d178e223afbbf220dfa116a82e8ba96f6fc12d627381b007105dddf62c37312e69ca06498d97ed350e711f79b1bfe358198e36eb61d550089cf3d139051b33b0fa6da6d5b3366970f751633fe3900461fa2bbb2e4e8fd003e03dc400491b42b76f7eac90e77a5c6b8537954b20f984f02123299f55fa200bff8d90ea0b1ccd122972ff0eb4196d3e16da93f4bbcb460b057045a1e23d00029feadaffced0a58260f45999ea272e816717b2f7e6165bab42ca8629be727400000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000008200a0000000000000000000000000000000000000000000000000000000000082001000000000000000000000000000000000000000000000000000000000008200b0000000000000000000000000000000000000000000000000000000000082002000000000000000000000000000000000000000000000000000000000008200c0000000000000000000000000000000000000000000000000000000000082003000000000000000000000000000000000000000000000000000000000008200d0000000000000000000000000000000000000000000000000000000000082004000000000000000000000000000000000000000000000000000000000008200e0000000000000000000000000000000000000000000000000000000000082005000000000000000000000000000000000000000000000000000000000008200f00000000000000000000000000000000000000000000000000000000000820060000000000000000000000000000000000000000000000000000000000082010000000000000000000000000000000000000000000000000000000000008200700000000000000000000000000000000000000000000000000000000000820110000000000000000000000000000000000000000000000000000000000082008000000000000000000000000000000000000000000000000000000000008201200000000000000000000000000000000000000000000000000000000000820090000000000000000000000000000000000000000000000000000000000082013000000000000000000000000000000000000000000000000000000000008200a0000000000000000000000000000000000000000000000000000000000082014000000000000000000000000000000000000000000000000000000000008200b0000000000000000000000000000000000000000000000000000000000082015000000000000000000000000000000000000000000000000000000000008200c0000000000000000000000000000000000000000000000000000000000082016000000000000000000000000000000000000000000000000000000000008200d0000000000000000000000000000000000000000000000000000000000082017000000000000000000000000000000000000000000000000000000000008200e0000000000000000000000000000000000000000000000000000000000082018000000000000000000000000000000000000000000000000000000000008200f00000000000000000000000000000000000000000000000000000000000820190000000000000000000000000000000000000000000000000000000000082010000000000000000000000000000000000000000000000000000000000008201a0000000000000000000000000000000000000000000000000000000000082011000000000000000000000000000000000000000000000000000000000008201b0000000000000000000000000000000000000000000000000000000000082012000000000000000000000000000000000000000000000000000000000008201c0000000000000000000000000000000000000000000000000000000000082013000000000000000000000000000000000000000000000000000000000008201d0000000000000000000000000000000000000000000000000000000000082014000000000000000000000000000000000000000000000000000000000008201e0000000000000000000000000000000000000000000000000000000000082015000000000000000000000000000000000000000000000000000000000008201f00000000000000000000000000000000000000000000000000000000000820160000000000000000000000000000000000000000000000000000000000082020000000000000000000000000000000000000000000000000000000000008201700000000000000000000000000000000000000000000000000000000000820210000000000000000000000000000000000000000000000000000000000082018000000000000000000000000000000000000000000000000000000000008202200000000000000000000000000000000000000000000000000000000000820190000000000000000000000000000000000000000000000000000000000082023000000000000000000000000000000000000000000000000000000000008201a0000000000000000000000000000000000000000000000000000000000082024000000000000000000000000000000000000000000000000000000000008201b0000000000000000000000000000000000000000000000000000000000082025000000000000000000000000000000000000000000000000000000000008201c0000000000000000000000000000000000000000000000000000000000082026000000000000000000000000000000000000000000000000000000000008201d0000000000000000000000000000000000000000000000000000000000082027000000000000000000000000000000000000000000000000000000000008201e0000000000000000000000000000000000000000000000000000000000082028000000000000000000000000000000000000000000000000000000000008201f00000000000000000000000000000000000000000000000000000000000820290000000000000000000000000000000000000000000000000000000000082020000000000000000000000000000000000000000000000000000000000008202a0000000000000000000000000000000000000000000000000000000000082021000000000000000000000000000000000000000000000000000000000008202b0000000000000000000000000000000000000000000000000000000000082022000000000000000000000000000000000000000000000000000000000008202c0000000000000000000000000000000000000000000000000000000000082023000000000000000000000000000000000000000000000000000000000008202d0000000000000000000000000000000000000000000000000000000000082024000000000000000000000000000000000000000000000000000000000008202e0000000000000000000000000000000000000000000000000000000000082025000000000000000000000000000000000000000000000000000000000008202f00000000000000000000000000000000000000000000000000000000000820260000000000000000000000000000000000000000000000000000000000082030000000000000000000000000000000000000000000000000000000000008202700000000000000000000000000000000000000000000000000000000000820310000000000000000000000000000000000000000000000000000000000082028000000000000000000000000000000000000000000000000000000000008203200000000000000000000000000000000000000000000000000000000000820290000000000000000000000000000000000000000000000000000000000082033000000000000000000000000000000000000000000000000000000000008202a0000000000000000000000000000000000000000000000000000000000082034000000000000000000000000000000000000000000000000000000000008202b0000000000000000000000000000000000000000000000000000000000082035000000000000000000000000000000000000000000000000000000000008202c0000000000000000000000000000000000000000000000000000000000082036000000000000000000000000000000000000000000000000000000000008202d0000000000000000000000000000000000000000000000000000000000082037000000000000000000000000000000000000000000000000000000000008202e0000000000000000000000000000000000000000000000000000000000082038000000000000000000000000000000000000000000000000000000000008202f00000000000000000000000000000000000000000000000000000000000820390000000000000000000000000000000000000000000000000000000000082030000000000000000000000000000000000000000000000000000000000008203a0000000000000000000000000000000000000000000000000000000000082031000000000000000000000000000000000000000000000000000000000008203b0000000000000000000000000000000000000000000000000000000000082032000000000000000000000000000000000000000000000000000000000008203c0000000000000000000000000000000000000000000000000000000000082033000000000000000000000000000000000000000000000000000000000008203d0000000000000000000000000000000000000000000000000000000000082034000000000000000000000000000000000000000000000000000000000008203e0000000000000000000000000000000000000000000000000000000000082035000000000000000000000000000000000000000000000000000000000008203f00000000000000000000000000000000000000000000000000000000000820360000000000000000000000000000000000000000000000000000000000082040000000000000000000000000000000000000000000000000000000000008203700000000000000000000000000000000000000000000000000000000000820410000000000000000000000000000000000000000000000000000000000082038000000000000000000000000000000000000000000000000000000000008204200000000000000000000000000000000000000000000000000000000000820390000000000000000000000000000000000000000000000000000000000082043000000000000000000000000000000000000000000000000000000000008203a0000000000000000000000000000000000000000000000000000000000082044000000000000000000000000000000000000000000000000000000000008203b0000000000000000000000000000000000000000000000000000000000082045000000000000000000000000000000000000000000000000000000000008203c0000000000000000000000000000000000000000000000000000000000082046000000000000000000000000000000000000000000000000000000000008203d0000000000000000000000000000000000000000000000000000000000082047000000000000000000000000000000000000000000000000000000000008203e0000000000000000000000000000000000000000000000000000000000082048000000000000000000000000000000000000000000000000000000000008203f0000000000000000000000000000000000000000000000000000000000082049200000000000000000000000000000000000000000000000000000000000081700000000000000000000000000000000000000000000000000000000000008170100000000000000000000000000000000000000000000000000000000000817020000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000012000000000000000000000000000000000000000000000000000000000008170100000000000000000000000000000000000000000000000000000000000817020000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000001200000000000000000000000000000000000000000000000000000000000817020000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000120000000000000000000000000000000000000000000000000000000000081703000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000012000000000000000000000000000000000000000000000000000000000008170400000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000001200000000000000000000000000000000000000000000000000000000000817050000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000120000000000000000000000000000000000000000000000000000000000081706000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000012000000000000000000000000000000000000000000000000000000000008170700000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000001200000000000000000000000000000000000000000000000000000000000817080000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000120000000000000000000000000000000000000000000000000000000000081709000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a00000012000000000000000000000000000000000000000000000000000000000008170a000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b00000012000000000000000000000000000000000000000000000000000000000008170b000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c00000012000000000000000000000000000000000000000000000000000000000008170c000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d00000012000000000000000000000000000000000000000000000000000000000008170d000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e00000012000000000000000000000000000000000000000000000000000000000008170e000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f00000012000000000000000000000000000000000000000000000000000000000008170f0000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000120000000000000000000000000000000000000000000000000000000000081710000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000012000000000000000000000000000000000000000000000000000000000008171100000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000001200000000000000000000000000000000000000000000000000000000000817120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000120000000000000000000000000000000000000000000000000000000000081713000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000012000000000000000000000000000000000000000000000000000000000008171400000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000001200000000000000000000000000000000000000000000000000000000000817150000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000120000000000000000000000000000000000000000000000000000000000081716000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000012000000000000000000000000000000000000000000000000000000000008171700000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000001200000000000000000000000000000000000000000000000000000000000817180000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000120000000000000000000000000000000000000000000000000000000000081719000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a00000012000000000000000000000000000000000000000000000000000000000008171a000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b00000012000000000000000000000000000000000000000000000000000000000008171b000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c00000012000000000000000000000000000000000000000000000000000000000008171c000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d00000012000000000000000000000000000000000000000000000000000000000008171d000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d000000000000000000000000000000000000000000000000000000000008172e00000012000000000000000000000000000000000000000000000000000000000008171e000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d000000000000000000000000000000000000000000000000000000000008172e000000000000000000000000000000000000000000000000000000000008172f00000012000000000000000000000000000000000000000000000000000000000008171f0000000000000000000000000000000000000000000000000000000000081720000000000000000000000000000000000000000000000000000000000008172100000000000000000000000000000000000000000000000000000000000817220000000000000000000000000000000000000000000000000000000000081723000000000000000000000000000000000000000000000000000000000008172400000000000000000000000000000000000000000000000000000000000817250000000000000000000000000000000000000000000000000000000000081726000000000000000000000000000000000000000000000000000000000008172700000000000000000000000000000000000000000000000000000000000817280000000000000000000000000000000000000000000000000000000000081729000000000000000000000000000000000000000000000000000000000008172a000000000000000000000000000000000000000000000000000000000008172b000000000000000000000000000000000000000000000000000000000008172c000000000000000000000000000000000000000000000000000000000008172d000000000000000000000000000000000000000000000000000000000008172e000000000000000000000000000000000000000000000000000000000008172f000000000000000000000000000000000000000000000000000000000008173000000012000000112ca8d2d598180e8a2426ae566237e6049b81b8133e2f4d6b57d980990095b300000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000c100000000000000000000000000000000000000000000000000000000000000c100100000000000000000000000000000000000000000000000000000000000c100200000000000000000000000000000000000000000000000000000000000c100300000000000000000000000000000000000000000000000000000000000c100400000000000000000000000000000000000000000000000000000000000c100500000000000000000000000000000000000000000000000000000000000c100600000000000000000000000000000000000000000000000000000000000c100700000000000000000000000000000000000000000000000000000000000c100800000000000000000000000000000000000000000000000000000000000c100900000000000000000000000000000000000000000000000000000000000c100a00000000000000000000000000000000000000000000000000000000000c100b00000000000000000000000000000000000000000000000000000000000c100c00000000000000000000000000000000000000000000000000000000000c100d00000000000000000000000000000000000000000000000000000000000c100e00000000000000000000000000000000000000000000000000000000000c100f00000000000000000000000000000000000000000000000000000000000c101000000000000000000000000000000000000000000000000000000000000c101100000000000000000000000000000000000000000000000000000000000c101200000000000000000000000000000000000000000000000000000000000c101300000000000000000000000000000000000000000000000000000000000c101400000000000000000000000000000000000000000000000000000000000c101500000000000000000000000000000000000000000000000000000000000c101600000000000000000000000000000000000000000000000000000000000c101700000000000000000000000000000000000000000000000000000000000c101800000000000000000000000000000000000000000000000000000000000c101900000000000000000000000000000000000000000000000000000000000c101a00000000000000000000000000000000000000000000000000000000000c101b00000000000000000000000000000000000000000000000000000000000c101c00000000000000000000000000000000000000000000000000000000000c101d00000000000000000000000000000000000000000000000000000000000c101e00000000000000000000000000000000000000000000000000000000000c101f00000000000000000000000000000000000000000000000000000000000c102000000000000000000000000000000000000000000000000000000000000c102100000000000000000000000000000000000000000000000000000000000c102200000000000000000000000000000000000000000000000000000000000c102300000000000000000000000000000000000000000000000000000000000c102400000000000000000000000000000000000000000000000000000000000c102500000000000000000000000000000000000000000000000000000000000c102600000000000000000000000000000000000000000000000000000000000c102700000000000000000000000000000000000000000000000000000000000c102800000000000000000000000000000000000000000000000000000000000c102900000000000000000000000000000000000000000000000000000000000c102a00000000000000000000000000000000000000000000000000000000000c102b00000000000000000000000000000000000000000000000000000000000c102c00000000000000000000000000000000000000000000000000000000000c102d00000000000000000000000000000000000000000000000000000000000c102e00000000000000000000000000000000000000000000000000000000000c102f00000000000000000000000000000000000000000000000000000000000c103000000000000000000000000000000000000000000000000000000000000c103100000000000000000000000000000000000000000000000000000000000c103200000000000000000000000000000000000000000000000000000000000c103300000000000000000000000000000000000000000000000000000000000c103400000000000000000000000000000000000000000000000000000000000c103500000000000000000000000000000000000000000000000000000000000c103600000000000000000000000000000000000000000000000000000000000c103700000000000000000000000000000000000000000000000000000000000c103800000000000000000000000000000000000000000000000000000000000c103900000000000000000000000000000000000000000000000000000000000c103a00000000000000000000000000000000000000000000000000000000000c103b00000000000000000000000000000000000000000000000000000000000c103c00000000000000000000000000000000000000000000000000000000000c103d00000000000000000000000000000000000000000000000000000000000c103e00000000000000000000000000000000000000000000000000000000000c103f4000000000000000000000000000000000000000000000000000000000000c000100000000000000000000000000000000000000000000000000000000000c110000000000000000000000000000000000000000000000000000000000000c110100000000000000000000000000000000000000000000000000000000000c110200000000000000000000000000000000000000000000000000000000000c110300000000000000000000000000000000000000000000000000000000000c110400000000000000000000000000000000000000000000000000000000000c110500000000000000000000000000000000000000000000000000000000000c110600000000000000000000000000000000000000000000000000000000000c110700000000000000000000000000000000000000000000000000000000000c110800000000000000000000000000000000000000000000000000000000000c110900000000000000000000000000000000000000000000000000000000000c110a00000000000000000000000000000000000000000000000000000000000c110b00000000000000000000000000000000000000000000000000000000000c110c00000000000000000000000000000000000000000000000000000000000c110d00000000000000000000000000000000000000000000000000000000000c110e00000000000000000000000000000000000000000000000000000000000c110f00000000000000000000000000000000000000000000000000000000000c111000000000000000000000000000000000000000000000000000000000000c111100000000000000000000000000000000000000000000000000000000000c111200000000000000000000000000000000000000000000000000000000000c111300000000000000000000000000000000000000000000000000000000000c111400000000000000000000000000000000000000000000000000000000000c111500000000000000000000000000000000000000000000000000000000000c111600000000000000000000000000000000000000000000000000000000000c111700000000000000000000000000000000000000000000000000000000000c111800000000000000000000000000000000000000000000000000000000000c111900000000000000000000000000000000000000000000000000000000000c111a00000000000000000000000000000000000000000000000000000000000c111b00000000000000000000000000000000000000000000000000000000000c111c00000000000000000000000000000000000000000000000000000000000c111d00000000000000000000000000000000000000000000000000000000000c111e00000000000000000000000000000000000000000000000000000000000c111f00000000000000000000000000000000000000000000000000000000000c112000000000000000000000000000000000000000000000000000000000000c112100000000000000000000000000000000000000000000000000000000000c112200000000000000000000000000000000000000000000000000000000000c112300000000000000000000000000000000000000000000000000000000000c112400000000000000000000000000000000000000000000000000000000000c112500000000000000000000000000000000000000000000000000000000000c112600000000000000000000000000000000000000000000000000000000000c112700000000000000000000000000000000000000000000000000000000000c112800000000000000000000000000000000000000000000000000000000000c112900000000000000000000000000000000000000000000000000000000000c112a00000000000000000000000000000000000000000000000000000000000c112b00000000000000000000000000000000000000000000000000000000000c112c00000000000000000000000000000000000000000000000000000000000c112d00000000000000000000000000000000000000000000000000000000000c112e00000000000000000000000000000000000000000000000000000000000c112f00000000000000000000000000000000000000000000000000000000000c113000000000000000000000000000000000000000000000000000000000000c113100000000000000000000000000000000000000000000000000000000000c113200000000000000000000000000000000000000000000000000000000000c113300000000000000000000000000000000000000000000000000000000000c113400000000000000000000000000000000000000000000000000000000000c113500000000000000000000000000000000000000000000000000000000000c113600000000000000000000000000000000000000000000000000000000000c113700000000000000000000000000000000000000000000000000000000000c113800000000000000000000000000000000000000000000000000000000000c113900000000000000000000000000000000000000000000000000000000000c113a00000000000000000000000000000000000000000000000000000000000c113b00000000000000000000000000000000000000000000000000000000000c113c00000000000000000000000000000000000000000000000000000000000c113d00000000000000000000000000000000000000000000000000000000000c113e0800d6b6e3620fae6081f4af4a50285062b6e33ac35e33a88336fa5678914f97da00f8b54b211db3b65028282b9e519e8e0aa5f45c0e18fbae5533bdd33878d85f00f6f4623b109f8550bb3e8cc0e473a0dc17fc3da5b3a1bf6380d960bafd765f00b5c6f0cadbde2a1036c1585259b56c72e4918828cfe926a8ebc20c821f39390034a1edde0a6682e163fdc2063dac05febe176380a835c628661ba6787d945d00e71944a2ecaf60c4d863388e61a63ebe4680e378ca0ff510b81dd26ee045c300c329c93ffe8f3b05f57665b581cb4556d358c0aaaee543f2f0e2bc413069f1006757b114c322b63bc1be9b176a5a3fd68686f55ecae7537bfe864911ba5e324000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c200a00000000000000000000000000000000000000000000000000000000000c200100000000000000000000000000000000000000000000000000000000000c200b00000000000000000000000000000000000000000000000000000000000c200200000000000000000000000000000000000000000000000000000000000c200c00000000000000000000000000000000000000000000000000000000000c200300000000000000000000000000000000000000000000000000000000000c200d00000000000000000000000000000000000000000000000000000000000c200400000000000000000000000000000000000000000000000000000000000c200e00000000000000000000000000000000000000000000000000000000000c200500000000000000000000000000000000000000000000000000000000000c200f00000000000000000000000000000000000000000000000000000000000c200600000000000000000000000000000000000000000000000000000000000c201000000000000000000000000000000000000000000000000000000000000c200700000000000000000000000000000000000000000000000000000000000c201100000000000000000000000000000000000000000000000000000000000c200800000000000000000000000000000000000000000000000000000000000c201200000000000000000000000000000000000000000000000000000000000c200900000000000000000000000000000000000000000000000000000000000c201300000000000000000000000000000000000000000000000000000000000c200a00000000000000000000000000000000000000000000000000000000000c201400000000000000000000000000000000000000000000000000000000000c200b00000000000000000000000000000000000000000000000000000000000c201500000000000000000000000000000000000000000000000000000000000c200c00000000000000000000000000000000000000000000000000000000000c201600000000000000000000000000000000000000000000000000000000000c200d00000000000000000000000000000000000000000000000000000000000c201700000000000000000000000000000000000000000000000000000000000c200e00000000000000000000000000000000000000000000000000000000000c201800000000000000000000000000000000000000000000000000000000000c200f00000000000000000000000000000000000000000000000000000000000c201900000000000000000000000000000000000000000000000000000000000c201000000000000000000000000000000000000000000000000000000000000c201a00000000000000000000000000000000000000000000000000000000000c201100000000000000000000000000000000000000000000000000000000000c201b00000000000000000000000000000000000000000000000000000000000c201200000000000000000000000000000000000000000000000000000000000c201c00000000000000000000000000000000000000000000000000000000000c201300000000000000000000000000000000000000000000000000000000000c201d00000000000000000000000000000000000000000000000000000000000c201400000000000000000000000000000000000000000000000000000000000c201e00000000000000000000000000000000000000000000000000000000000c201500000000000000000000000000000000000000000000000000000000000c201f00000000000000000000000000000000000000000000000000000000000c201600000000000000000000000000000000000000000000000000000000000c202000000000000000000000000000000000000000000000000000000000000c201700000000000000000000000000000000000000000000000000000000000c202100000000000000000000000000000000000000000000000000000000000c201800000000000000000000000000000000000000000000000000000000000c202200000000000000000000000000000000000000000000000000000000000c201900000000000000000000000000000000000000000000000000000000000c202300000000000000000000000000000000000000000000000000000000000c201a00000000000000000000000000000000000000000000000000000000000c202400000000000000000000000000000000000000000000000000000000000c201b00000000000000000000000000000000000000000000000000000000000c202500000000000000000000000000000000000000000000000000000000000c201c00000000000000000000000000000000000000000000000000000000000c202600000000000000000000000000000000000000000000000000000000000c201d00000000000000000000000000000000000000000000000000000000000c202700000000000000000000000000000000000000000000000000000000000c201e00000000000000000000000000000000000000000000000000000000000c202800000000000000000000000000000000000000000000000000000000000c201f00000000000000000000000000000000000000000000000000000000000c202900000000000000000000000000000000000000000000000000000000000c202000000000000000000000000000000000000000000000000000000000000c202a00000000000000000000000000000000000000000000000000000000000c202100000000000000000000000000000000000000000000000000000000000c202b00000000000000000000000000000000000000000000000000000000000c202200000000000000000000000000000000000000000000000000000000000c202c00000000000000000000000000000000000000000000000000000000000c202300000000000000000000000000000000000000000000000000000000000c202d00000000000000000000000000000000000000000000000000000000000c202400000000000000000000000000000000000000000000000000000000000c202e00000000000000000000000000000000000000000000000000000000000c202500000000000000000000000000000000000000000000000000000000000c202f00000000000000000000000000000000000000000000000000000000000c202600000000000000000000000000000000000000000000000000000000000c203000000000000000000000000000000000000000000000000000000000000c202700000000000000000000000000000000000000000000000000000000000c203100000000000000000000000000000000000000000000000000000000000c202800000000000000000000000000000000000000000000000000000000000c203200000000000000000000000000000000000000000000000000000000000c202900000000000000000000000000000000000000000000000000000000000c203300000000000000000000000000000000000000000000000000000000000c202a00000000000000000000000000000000000000000000000000000000000c203400000000000000000000000000000000000000000000000000000000000c202b00000000000000000000000000000000000000000000000000000000000c203500000000000000000000000000000000000000000000000000000000000c202c00000000000000000000000000000000000000000000000000000000000c203600000000000000000000000000000000000000000000000000000000000c202d00000000000000000000000000000000000000000000000000000000000c203700000000000000000000000000000000000000000000000000000000000c202e00000000000000000000000000000000000000000000000000000000000c203800000000000000000000000000000000000000000000000000000000000c202f00000000000000000000000000000000000000000000000000000000000c203900000000000000000000000000000000000000000000000000000000000c203000000000000000000000000000000000000000000000000000000000000c203a00000000000000000000000000000000000000000000000000000000000c203100000000000000000000000000000000000000000000000000000000000c203b00000000000000000000000000000000000000000000000000000000000c203200000000000000000000000000000000000000000000000000000000000c203c00000000000000000000000000000000000000000000000000000000000c203300000000000000000000000000000000000000000000000000000000000c203d00000000000000000000000000000000000000000000000000000000000c203400000000000000000000000000000000000000000000000000000000000c203e00000000000000000000000000000000000000000000000000000000000c203500000000000000000000000000000000000000000000000000000000000c203f00000000000000000000000000000000000000000000000000000000000c203600000000000000000000000000000000000000000000000000000000000c204000000000000000000000000000000000000000000000000000000000000c203700000000000000000000000000000000000000000000000000000000000c204100000000000000000000000000000000000000000000000000000000000c203800000000000000000000000000000000000000000000000000000000000c204200000000000000000000000000000000000000000000000000000000000c203900000000000000000000000000000000000000000000000000000000000c204300000000000000000000000000000000000000000000000000000000000c203a00000000000000000000000000000000000000000000000000000000000c204400000000000000000000000000000000000000000000000000000000000c203b00000000000000000000000000000000000000000000000000000000000c204500000000000000000000000000000000000000000000000000000000000c203c00000000000000000000000000000000000000000000000000000000000c204600000000000000000000000000000000000000000000000000000000000c203d00000000000000000000000000000000000000000000000000000000000c204700000000000000000000000000000000000000000000000000000000000c203e00000000000000000000000000000000000000000000000000000000000c204800000000000000000000000000000000000000000000000000000000000c203f00000000000000000000000000000000000000000000000000000000000c20492000000000000000000000000000000000000000000000000000000000000c170000000000000000000000000000000000000000000000000000000000000c170100000000000000000000000000000000000000000000000000000000000c170200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c17110000001200000000000000000000000000000000000000000000000000000000000c170100000000000000000000000000000000000000000000000000000000000c170200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c17120000001200000000000000000000000000000000000000000000000000000000000c170200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c17130000001200000000000000000000000000000000000000000000000000000000000c170300000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c17140000001200000000000000000000000000000000000000000000000000000000000c170400000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c17150000001200000000000000000000000000000000000000000000000000000000000c170500000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c17160000001200000000000000000000000000000000000000000000000000000000000c170600000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c17170000001200000000000000000000000000000000000000000000000000000000000c170700000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c17180000001200000000000000000000000000000000000000000000000000000000000c170800000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c17190000001200000000000000000000000000000000000000000000000000000000000c170900000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a0000001200000000000000000000000000000000000000000000000000000000000c170a00000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b0000001200000000000000000000000000000000000000000000000000000000000c170b00000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c0000001200000000000000000000000000000000000000000000000000000000000c170c00000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d0000001200000000000000000000000000000000000000000000000000000000000c170d00000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e0000001200000000000000000000000000000000000000000000000000000000000c170e00000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f0000001200000000000000000000000000000000000000000000000000000000000c170f00000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c17200000001200000000000000000000000000000000000000000000000000000000000c171000000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c17210000001200000000000000000000000000000000000000000000000000000000000c171100000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c17220000001200000000000000000000000000000000000000000000000000000000000c171200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c17230000001200000000000000000000000000000000000000000000000000000000000c171300000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c17240000001200000000000000000000000000000000000000000000000000000000000c171400000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c17250000001200000000000000000000000000000000000000000000000000000000000c171500000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c17260000001200000000000000000000000000000000000000000000000000000000000c171600000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c17270000001200000000000000000000000000000000000000000000000000000000000c171700000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c17280000001200000000000000000000000000000000000000000000000000000000000c171800000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c17290000001200000000000000000000000000000000000000000000000000000000000c171900000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a0000001200000000000000000000000000000000000000000000000000000000000c171a00000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b0000001200000000000000000000000000000000000000000000000000000000000c171b00000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c0000001200000000000000000000000000000000000000000000000000000000000c171c00000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d0000001200000000000000000000000000000000000000000000000000000000000c171d00000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d00000000000000000000000000000000000000000000000000000000000c172e0000001200000000000000000000000000000000000000000000000000000000000c171e00000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d00000000000000000000000000000000000000000000000000000000000c172e00000000000000000000000000000000000000000000000000000000000c172f0000001200000000000000000000000000000000000000000000000000000000000c171f00000000000000000000000000000000000000000000000000000000000c172000000000000000000000000000000000000000000000000000000000000c172100000000000000000000000000000000000000000000000000000000000c172200000000000000000000000000000000000000000000000000000000000c172300000000000000000000000000000000000000000000000000000000000c172400000000000000000000000000000000000000000000000000000000000c172500000000000000000000000000000000000000000000000000000000000c172600000000000000000000000000000000000000000000000000000000000c172700000000000000000000000000000000000000000000000000000000000c172800000000000000000000000000000000000000000000000000000000000c172900000000000000000000000000000000000000000000000000000000000c172a00000000000000000000000000000000000000000000000000000000000c172b00000000000000000000000000000000000000000000000000000000000c172c00000000000000000000000000000000000000000000000000000000000c172d00000000000000000000000000000000000000000000000000000000000c172e00000000000000000000000000000000000000000000000000000000000c172f00000000000000000000000000000000000000000000000000000000000c17300000001200000028c9456c35edec34d916ff58bec8e96fb44adfa2265e01e5ce43c116b15135480000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000010100100000000000000000000000000000000000000000000000000000000001010020000000000000000000000000000000000000000000000000000000000101003000000000000000000000000000000000000000000000000000000000010100400000000000000000000000000000000000000000000000000000000001010050000000000000000000000000000000000000000000000000000000000101006000000000000000000000000000000000000000000000000000000000010100700000000000000000000000000000000000000000000000000000000001010080000000000000000000000000000000000000000000000000000000000101009000000000000000000000000000000000000000000000000000000000010100a000000000000000000000000000000000000000000000000000000000010100b000000000000000000000000000000000000000000000000000000000010100c000000000000000000000000000000000000000000000000000000000010100d000000000000000000000000000000000000000000000000000000000010100e000000000000000000000000000000000000000000000000000000000010100f0000000000000000000000000000000000000000000000000000000000101010000000000000000000000000000000000000000000000000000000000010101100000000000000000000000000000000000000000000000000000000001010120000000000000000000000000000000000000000000000000000000000101013000000000000000000000000000000000000000000000000000000000010101400000000000000000000000000000000000000000000000000000000001010150000000000000000000000000000000000000000000000000000000000101016000000000000000000000000000000000000000000000000000000000010101700000000000000000000000000000000000000000000000000000000001010180000000000000000000000000000000000000000000000000000000000101019000000000000000000000000000000000000000000000000000000000010101a000000000000000000000000000000000000000000000000000000000010101b000000000000000000000000000000000000000000000000000000000010101c000000000000000000000000000000000000000000000000000000000010101d000000000000000000000000000000000000000000000000000000000010101e000000000000000000000000000000000000000000000000000000000010101f0000000000000000000000000000000000000000000000000000000000101020000000000000000000000000000000000000000000000000000000000010102100000000000000000000000000000000000000000000000000000000001010220000000000000000000000000000000000000000000000000000000000101023000000000000000000000000000000000000000000000000000000000010102400000000000000000000000000000000000000000000000000000000001010250000000000000000000000000000000000000000000000000000000000101026000000000000000000000000000000000000000000000000000000000010102700000000000000000000000000000000000000000000000000000000001010280000000000000000000000000000000000000000000000000000000000101029000000000000000000000000000000000000000000000000000000000010102a000000000000000000000000000000000000000000000000000000000010102b000000000000000000000000000000000000000000000000000000000010102c000000000000000000000000000000000000000000000000000000000010102d000000000000000000000000000000000000000000000000000000000010102e000000000000000000000000000000000000000000000000000000000010102f0000000000000000000000000000000000000000000000000000000000101030000000000000000000000000000000000000000000000000000000000010103100000000000000000000000000000000000000000000000000000000001010320000000000000000000000000000000000000000000000000000000000101033000000000000000000000000000000000000000000000000000000000010103400000000000000000000000000000000000000000000000000000000001010350000000000000000000000000000000000000000000000000000000000101036000000000000000000000000000000000000000000000000000000000010103700000000000000000000000000000000000000000000000000000000001010380000000000000000000000000000000000000000000000000000000000101039000000000000000000000000000000000000000000000000000000000010103a000000000000000000000000000000000000000000000000000000000010103b000000000000000000000000000000000000000000000000000000000010103c000000000000000000000000000000000000000000000000000000000010103d000000000000000000000000000000000000000000000000000000000010103e000000000000000000000000000000000000000000000000000000000010103f4000000000000000000000000000000000000000000000000000000000001000010000000000000000000000000000000000000000000000000000000000101100000000000000000000000000000000000000000000000000000000000010110100000000000000000000000000000000000000000000000000000000001011020000000000000000000000000000000000000000000000000000000000101103000000000000000000000000000000000000000000000000000000000010110400000000000000000000000000000000000000000000000000000000001011050000000000000000000000000000000000000000000000000000000000101106000000000000000000000000000000000000000000000000000000000010110700000000000000000000000000000000000000000000000000000000001011080000000000000000000000000000000000000000000000000000000000101109000000000000000000000000000000000000000000000000000000000010110a000000000000000000000000000000000000000000000000000000000010110b000000000000000000000000000000000000000000000000000000000010110c000000000000000000000000000000000000000000000000000000000010110d000000000000000000000000000000000000000000000000000000000010110e000000000000000000000000000000000000000000000000000000000010110f0000000000000000000000000000000000000000000000000000000000101110000000000000000000000000000000000000000000000000000000000010111100000000000000000000000000000000000000000000000000000000001011120000000000000000000000000000000000000000000000000000000000101113000000000000000000000000000000000000000000000000000000000010111400000000000000000000000000000000000000000000000000000000001011150000000000000000000000000000000000000000000000000000000000101116000000000000000000000000000000000000000000000000000000000010111700000000000000000000000000000000000000000000000000000000001011180000000000000000000000000000000000000000000000000000000000101119000000000000000000000000000000000000000000000000000000000010111a000000000000000000000000000000000000000000000000000000000010111b000000000000000000000000000000000000000000000000000000000010111c000000000000000000000000000000000000000000000000000000000010111d000000000000000000000000000000000000000000000000000000000010111e000000000000000000000000000000000000000000000000000000000010111f0000000000000000000000000000000000000000000000000000000000101120000000000000000000000000000000000000000000000000000000000010112100000000000000000000000000000000000000000000000000000000001011220000000000000000000000000000000000000000000000000000000000101123000000000000000000000000000000000000000000000000000000000010112400000000000000000000000000000000000000000000000000000000001011250000000000000000000000000000000000000000000000000000000000101126000000000000000000000000000000000000000000000000000000000010112700000000000000000000000000000000000000000000000000000000001011280000000000000000000000000000000000000000000000000000000000101129000000000000000000000000000000000000000000000000000000000010112a000000000000000000000000000000000000000000000000000000000010112b000000000000000000000000000000000000000000000000000000000010112c000000000000000000000000000000000000000000000000000000000010112d000000000000000000000000000000000000000000000000000000000010112e000000000000000000000000000000000000000000000000000000000010112f0000000000000000000000000000000000000000000000000000000000101130000000000000000000000000000000000000000000000000000000000010113100000000000000000000000000000000000000000000000000000000001011320000000000000000000000000000000000000000000000000000000000101133000000000000000000000000000000000000000000000000000000000010113400000000000000000000000000000000000000000000000000000000001011350000000000000000000000000000000000000000000000000000000000101136000000000000000000000000000000000000000000000000000000000010113700000000000000000000000000000000000000000000000000000000001011380000000000000000000000000000000000000000000000000000000000101139000000000000000000000000000000000000000000000000000000000010113a000000000000000000000000000000000000000000000000000000000010113b000000000000000000000000000000000000000000000000000000000010113c000000000000000000000000000000000000000000000000000000000010113d000000000000000000000000000000000000000000000000000000000010113e080093ae4301c2bc2878b88b8a669aa7a3178e20610dd182ffae2fdcc9451d8a9e00a5d56b585204ca602a7b96f9fc9210439c258873492b68af6e85f653fd366e00ecdb807d9dc24a80671d940de20d983887ae9e62619fa4e2b38119e3f2b2a90076ea18c08a833240615653b58366630e67da97e1c583ae017842a2aba6c31900249d0690c193e33082674a84405baa3cd3a11eee9e88b0fee9b70ea384dfe700102ab2f7074e8a71ab3259f22cf09f708a8c66fbab052b5626670910205fca00759a19a41971edff3e7b29663a76c878d7d2870fea514ac87a059cd485f24100581a912f83d6b1ea74fb146ec09e5acea8be880eaf9da74d02107ca9953f84400000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000010200a0000000000000000000000000000000000000000000000000000000000102001000000000000000000000000000000000000000000000000000000000010200b0000000000000000000000000000000000000000000000000000000000102002000000000000000000000000000000000000000000000000000000000010200c0000000000000000000000000000000000000000000000000000000000102003000000000000000000000000000000000000000000000000000000000010200d0000000000000000000000000000000000000000000000000000000000102004000000000000000000000000000000000000000000000000000000000010200e0000000000000000000000000000000000000000000000000000000000102005000000000000000000000000000000000000000000000000000000000010200f00000000000000000000000000000000000000000000000000000000001020060000000000000000000000000000000000000000000000000000000000102010000000000000000000000000000000000000000000000000000000000010200700000000000000000000000000000000000000000000000000000000001020110000000000000000000000000000000000000000000000000000000000102008000000000000000000000000000000000000000000000000000000000010201200000000000000000000000000000000000000000000000000000000001020090000000000000000000000000000000000000000000000000000000000102013000000000000000000000000000000000000000000000000000000000010200a0000000000000000000000000000000000000000000000000000000000102014000000000000000000000000000000000000000000000000000000000010200b0000000000000000000000000000000000000000000000000000000000102015000000000000000000000000000000000000000000000000000000000010200c0000000000000000000000000000000000000000000000000000000000102016000000000000000000000000000000000000000000000000000000000010200d0000000000000000000000000000000000000000000000000000000000102017000000000000000000000000000000000000000000000000000000000010200e0000000000000000000000000000000000000000000000000000000000102018000000000000000000000000000000000000000000000000000000000010200f00000000000000000000000000000000000000000000000000000000001020190000000000000000000000000000000000000000000000000000000000102010000000000000000000000000000000000000000000000000000000000010201a0000000000000000000000000000000000000000000000000000000000102011000000000000000000000000000000000000000000000000000000000010201b0000000000000000000000000000000000000000000000000000000000102012000000000000000000000000000000000000000000000000000000000010201c0000000000000000000000000000000000000000000000000000000000102013000000000000000000000000000000000000000000000000000000000010201d0000000000000000000000000000000000000000000000000000000000102014000000000000000000000000000000000000000000000000000000000010201e0000000000000000000000000000000000000000000000000000000000102015000000000000000000000000000000000000000000000000000000000010201f00000000000000000000000000000000000000000000000000000000001020160000000000000000000000000000000000000000000000000000000000102020000000000000000000000000000000000000000000000000000000000010201700000000000000000000000000000000000000000000000000000000001020210000000000000000000000000000000000000000000000000000000000102018000000000000000000000000000000000000000000000000000000000010202200000000000000000000000000000000000000000000000000000000001020190000000000000000000000000000000000000000000000000000000000102023000000000000000000000000000000000000000000000000000000000010201a0000000000000000000000000000000000000000000000000000000000102024000000000000000000000000000000000000000000000000000000000010201b0000000000000000000000000000000000000000000000000000000000102025000000000000000000000000000000000000000000000000000000000010201c0000000000000000000000000000000000000000000000000000000000102026000000000000000000000000000000000000000000000000000000000010201d0000000000000000000000000000000000000000000000000000000000102027000000000000000000000000000000000000000000000000000000000010201e0000000000000000000000000000000000000000000000000000000000102028000000000000000000000000000000000000000000000000000000000010201f00000000000000000000000000000000000000000000000000000000001020290000000000000000000000000000000000000000000000000000000000102020000000000000000000000000000000000000000000000000000000000010202a0000000000000000000000000000000000000000000000000000000000102021000000000000000000000000000000000000000000000000000000000010202b0000000000000000000000000000000000000000000000000000000000102022000000000000000000000000000000000000000000000000000000000010202c0000000000000000000000000000000000000000000000000000000000102023000000000000000000000000000000000000000000000000000000000010202d0000000000000000000000000000000000000000000000000000000000102024000000000000000000000000000000000000000000000000000000000010202e0000000000000000000000000000000000000000000000000000000000102025000000000000000000000000000000000000000000000000000000000010202f00000000000000000000000000000000000000000000000000000000001020260000000000000000000000000000000000000000000000000000000000102030000000000000000000000000000000000000000000000000000000000010202700000000000000000000000000000000000000000000000000000000001020310000000000000000000000000000000000000000000000000000000000102028000000000000000000000000000000000000000000000000000000000010203200000000000000000000000000000000000000000000000000000000001020290000000000000000000000000000000000000000000000000000000000102033000000000000000000000000000000000000000000000000000000000010202a0000000000000000000000000000000000000000000000000000000000102034000000000000000000000000000000000000000000000000000000000010202b0000000000000000000000000000000000000000000000000000000000102035000000000000000000000000000000000000000000000000000000000010202c0000000000000000000000000000000000000000000000000000000000102036000000000000000000000000000000000000000000000000000000000010202d0000000000000000000000000000000000000000000000000000000000102037000000000000000000000000000000000000000000000000000000000010202e0000000000000000000000000000000000000000000000000000000000102038000000000000000000000000000000000000000000000000000000000010202f00000000000000000000000000000000000000000000000000000000001020390000000000000000000000000000000000000000000000000000000000102030000000000000000000000000000000000000000000000000000000000010203a0000000000000000000000000000000000000000000000000000000000102031000000000000000000000000000000000000000000000000000000000010203b0000000000000000000000000000000000000000000000000000000000102032000000000000000000000000000000000000000000000000000000000010203c0000000000000000000000000000000000000000000000000000000000102033000000000000000000000000000000000000000000000000000000000010203d0000000000000000000000000000000000000000000000000000000000102034000000000000000000000000000000000000000000000000000000000010203e0000000000000000000000000000000000000000000000000000000000102035000000000000000000000000000000000000000000000000000000000010203f00000000000000000000000000000000000000000000000000000000001020360000000000000000000000000000000000000000000000000000000000102040000000000000000000000000000000000000000000000000000000000010203700000000000000000000000000000000000000000000000000000000001020410000000000000000000000000000000000000000000000000000000000102038000000000000000000000000000000000000000000000000000000000010204200000000000000000000000000000000000000000000000000000000001020390000000000000000000000000000000000000000000000000000000000102043000000000000000000000000000000000000000000000000000000000010203a0000000000000000000000000000000000000000000000000000000000102044000000000000000000000000000000000000000000000000000000000010203b0000000000000000000000000000000000000000000000000000000000102045000000000000000000000000000000000000000000000000000000000010203c0000000000000000000000000000000000000000000000000000000000102046000000000000000000000000000000000000000000000000000000000010203d0000000000000000000000000000000000000000000000000000000000102047000000000000000000000000000000000000000000000000000000000010203e0000000000000000000000000000000000000000000000000000000000102048000000000000000000000000000000000000000000000000000000000010203f0000000000000000000000000000000000000000000000000000000000102049200000000000000000000000000000000000000000000000000000000000101700000000000000000000000000000000000000000000000000000000000010170100000000000000000000000000000000000000000000000000000000001017020000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000012000000000000000000000000000000000000000000000000000000000010170100000000000000000000000000000000000000000000000000000000001017020000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000001200000000000000000000000000000000000000000000000000000000001017020000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000120000000000000000000000000000000000000000000000000000000000101703000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000012000000000000000000000000000000000000000000000000000000000010170400000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000001200000000000000000000000000000000000000000000000000000000001017050000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000120000000000000000000000000000000000000000000000000000000000101706000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000012000000000000000000000000000000000000000000000000000000000010170700000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000001200000000000000000000000000000000000000000000000000000000001017080000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000120000000000000000000000000000000000000000000000000000000000101709000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a00000012000000000000000000000000000000000000000000000000000000000010170a000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b00000012000000000000000000000000000000000000000000000000000000000010170b000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c00000012000000000000000000000000000000000000000000000000000000000010170c000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d00000012000000000000000000000000000000000000000000000000000000000010170d000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e00000012000000000000000000000000000000000000000000000000000000000010170e000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f00000012000000000000000000000000000000000000000000000000000000000010170f0000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000120000000000000000000000000000000000000000000000000000000000101710000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000012000000000000000000000000000000000000000000000000000000000010171100000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000001200000000000000000000000000000000000000000000000000000000001017120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000120000000000000000000000000000000000000000000000000000000000101713000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000012000000000000000000000000000000000000000000000000000000000010171400000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000001200000000000000000000000000000000000000000000000000000000001017150000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000120000000000000000000000000000000000000000000000000000000000101716000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000012000000000000000000000000000000000000000000000000000000000010171700000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000001200000000000000000000000000000000000000000000000000000000001017180000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000120000000000000000000000000000000000000000000000000000000000101719000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a00000012000000000000000000000000000000000000000000000000000000000010171a000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b00000012000000000000000000000000000000000000000000000000000000000010171b000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c00000012000000000000000000000000000000000000000000000000000000000010171c000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d00000012000000000000000000000000000000000000000000000000000000000010171d000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d000000000000000000000000000000000000000000000000000000000010172e00000012000000000000000000000000000000000000000000000000000000000010171e000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d000000000000000000000000000000000000000000000000000000000010172e000000000000000000000000000000000000000000000000000000000010172f00000012000000000000000000000000000000000000000000000000000000000010171f0000000000000000000000000000000000000000000000000000000000101720000000000000000000000000000000000000000000000000000000000010172100000000000000000000000000000000000000000000000000000000001017220000000000000000000000000000000000000000000000000000000000101723000000000000000000000000000000000000000000000000000000000010172400000000000000000000000000000000000000000000000000000000001017250000000000000000000000000000000000000000000000000000000000101726000000000000000000000000000000000000000000000000000000000010172700000000000000000000000000000000000000000000000000000000001017280000000000000000000000000000000000000000000000000000000000101729000000000000000000000000000000000000000000000000000000000010172a000000000000000000000000000000000000000000000000000000000010172b000000000000000000000000000000000000000000000000000000000010172c000000000000000000000000000000000000000000000000000000000010172d000000000000000000000000000000000000000000000000000000000010172e000000000000000000000000000000000000000000000000000000000010172f0000000000000000000000000000000000000000000000000000000000101730000000120000", "decodedHeader": { "lastArchiveRoot": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae", "contentCommitment": { - "blobsHash": "0x004371255474a53d54bf49d3f9fabf2d6178f4496bc9b6815e40e666f36fa503", + "blobsHash": "0x00aad56788a2fe7e236bd35c8b3ba741cab44b9cd57a811a4580c20b70b7c84c", "inHash": "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c", - "outHash": "0x00047d101d03d4e4390848cc7799acda35c9db6ea7d16a2c30e32d19a69074f6", + "outHash": "0x00bf7f848020069d5a90b5ba28bdd0df07a61aec1e7c0f93e27425d8928a7946", "numTxs": 4 }, "slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000029", - "timestamp": 1747165208, - "coinbase": "0xe8f95f83d26fb1a532da50b2ac275309a5e200d9", - "feeRecipient": "0x221ebecaaa079d322ba7f30d76d849dbf0b38772b7c646a97d60ac0cae351f46", + "timestamp": 1747752716, + "coinbase": "0x27b7146cdcf257c2ef11f4c087f93305fa6dd856", + "feeRecipient": "0x1e35bf94e78e2abed0f51010e54b62c5e1582cf783a2c6c1bccc527a88c01822", "gasFees": { "feePerDaGas": 0, "feePerL2Gas": 1020 }, "totalManaUsed": "0x0000000000000000000000000000000000000000000000000000000000000000" }, - "header": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae0000000000000000000000000000000000000000000000000000000000000004004371255474a53d54bf49d3f9fabf2d6178f4496bc9b6815e40e666f36fa50300089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00047d101d03d4e4390848cc7799acda35c9db6ea7d16a2c30e32d19a69074f60000000000000000000000000000000000000000000000000000000000000029000000006823a018e8f95f83d26fb1a532da50b2ac275309a5e200d9221ebecaaa079d322ba7f30d76d849dbf0b38772b7c646a97d60ac0cae351f46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc0000000000000000000000000000000000000000000000000000000000000000", + "header": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae000000000000000000000000000000000000000000000000000000000000000400aad56788a2fe7e236bd35c8b3ba741cab44b9cd57a811a4580c20b70b7c84c00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00bf7f848020069d5a90b5ba28bdd0df07a61aec1e7c0f93e27425d8928a7946000000000000000000000000000000000000000000000000000000000000002900000000682c970c27b7146cdcf257c2ef11f4c087f93305fa6dd8561e35bf94e78e2abed0f51010e54b62c5e1582cf783a2c6c1bccc527a88c01822000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc0000000000000000000000000000000000000000000000000000000000000000", "numTxs": 4 } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_2.json b/l1-contracts/test/fixtures/mixed_block_2.json index b2d6d856e3d7..21c777281acd 100644 --- a/l1-contracts/test/fixtures/mixed_block_2.json +++ b/l1-contracts/test/fixtures/mixed_block_2.json @@ -23,64 +23,65 @@ }, "messages": { "l2ToL1Messages": [ - "0x00adec81529155b5f9fcc89fb6293c16bfaf08e2a54ae27b4f588f62162e1217", - "0x00dd1484abd7d65c515ea825886c442910281f91e3c712cacceef0afd16c6dd4", - "0x0073d52d69c6a488678449e1e5d82f90f860a5217025f5ef6b0b03fba7a3af92", - "0x00f0a11e4ce050dfa27882edbdb2933c914c5a752b5d112827b75ab768065951", - "0x001349bb4a2d1f3f69a52c0b11b9f648fec0f4767edf5dc961820f705e7579ef", - "0x008d4df0164215b779dcc7235d94fa81fa2bb11205662eec9bc8b75c9a556d7d", - "0x005d02572123080b3b81df18ea215ab4e1b79747e5d26090a3969a653e6b91c4", - "0x004960a71b620f845f0251aef7c09ca7f322480b2908825e8c3401d0b8a6e4b6", - "0x006764fd841f5a4fb63aafade20ad4af8a5f18b5469f3cea1c32113015be1186", - "0x0045021b64b86a153c0e9a0e0bd98d856eb4a44b38b54997c6b1757a2a1b3451", - "0x00377e59c0f28b19fe04de5253a9cbe230330722d8a16ee7dc8074594bf75ff1", - "0x0094abd5aad29ada8036396b9448c58e3fcff5ba44f89e6c2dd51ddf5efaa06e", - "0x004f710d678494f8d970216394221800093b59ff02994016c68b184044e4bf6b", - "0x00de60448157b35fbce7b334cd0fdc8853870b95827a6a9b9369a3d2b2b627d3", - "0x003c29e37a023c18a44e1b2391daac154871a2bb8ec3692da9eba920cb855de4", - "0x00778fe5d68d7d50b23411771d302e665a99d1e2410d9f57e5cde96c4a1eeda9", - "0x00a3f86a8fac1918a316e51fe31cd53446b84f83ea539e7c3daf515bda0f2be9", - "0x002092e6cc15ae6ae7f6e26738285fd137f2826dd83b7076e1e5b0fe259e22b5", - "0x00af013b4912f62e90af2d9f6f8a1f77720c3c6ba850a8e5edd87bd97c5e1bb5", - "0x003f961d3002c8934db42d86d1afa40f7a48915afdf01c9e7b721737c0e24f22", - "0x006870c068cf400ff79f6ac1459ef6cc0c21ad10e1dfea9717400969b91e173d", - "0x0026a3169f7cb47ea779b1ce7665f1f568402476499ed086d2d9ddf044e6d4f2", - "0x009b030eaa63725ec24740c1b82af01800cf03becd886b4cf657e713255e4cdc", - "0x00d1c32cb665fe9bf7c1932e201a1cf7d461d63528f3250f326001432e108175", - "0x00c5cda1aecccd60f5934bf5febf6436d38a2432db7e73afd83565b18fa9fe0b", - "0x00000b22d85a3328b833e4832338ba5a10bc52385f933972210680d70d99a937", - "0x000eb86e98dd7397d722fd54df02e22cfd7cdf8e7cd30171a5996c658958fb5d", - "0x00ab6afb8e4cb8573b9dece310902e4452cdd7abe23f6d22886a70e27d539b36", - "0x00cbf7c2c23a9e933e5381ccdb621860de08ad42685da622e2cdc091804f39cc", - "0x00a2799480b289c1131f92d38c986a595d4e7a009a4b90a18f495c1704e83dd0", - "0x00aa8d5f2a18eac686f24205fd92c1468aff612c455eadbe8541f645620c3e23", - "0x00456c348e0b681c60b3f54b30db9ffd666600095fbf040c86c2011b6dea93dc" + "0x00909cc17c43527169c7e00afb0689bece8188c72cc639653228b6105711eed6", + "0x00b69920b3aeffe624a7afcac6fb3f92903a159a0681cdc099d9d4986c93eaf4", + "0x0082fa64dfc2f93483b450a70257787ebe064087886d913be551cfc08ec38464", + "0x0006ec33291acabc8e53a5692f98b3fa8aca6b7f9744d7b6c695adc69ddc33d1", + "0x0049c7a932487a02b944fc2118da831fbf4981966c03b23732fa860a5991cb14", + "0x00ce527b2ce224692eea13a044b94951a6959fc6a6e5e18109f51f088ec4ed74", + "0x002c10212c6d202950f11214205f0e8ecb45c45ae9f8f00d2219c4a5d6b7823e", + "0x00bdfa2148e874b4efa47fc9c085da10c2397e21e6940b362327320d31909d2d", + "0x00ed21a779ab96f285e847c4b810c0692e93e33df10c20b37185818c94235895", + "0x00cc87cecbe1d2be3bfe6902c054c96542edb5fc279432b611f6c8184eba8262", + "0x0010198e1e329df2cd9e4a770e7f122b5057175e8b9e75154a2a2d5101b5533f", + "0x00bdad9df9640b18707936538939e55b4124bfc8d19e61aa956f88cf89bbb589", + "0x008233c4a0e55d3d6bbad35c87c1c72f613dc84d0dc55a8c142f76d0e242a623", + "0x00ca537a3d430b912e16a66bbc20a6ce0e945f86e52d6d17d7a98c3475b8ac4c", + "0x00a5e3acf9da6cf9fee972919bb2abca33afc9d4f76e6d8505bd2a4ff6a6328e", + "0x00f8f44ba5887750038544241a005dd35d95ad33cdcb2cf5150830017c1c7cdc", + "0x00cc70b38a8293eedef73e19fc542e56948afde16c4c52f2ae3c7871b37f7c14", + "0x00147a07d34c4d0e7207c8b259da78058b91487178e5bc3b3a84129532b1365d", + "0x007f784027570b5328a65d7609784a5b6f6bf338427bf60417e4c6e7005efdfd", + "0x00ad3aa60c040e8c1e78a6d27fef71621206d6a93714efe6e8396081cd75c837", + "0x00f8197741b6e2876a0aba1045ee30400b321d1c023e9cb028ca3d3eb66febbc", + "0x005d0465711b95fc343e78a12a27a0c521a91b2667ce01499a2af43f623e9e57", + "0x00bebcdb8f7891ca86454bb1fac39c090063069ce05e9f41f57c0ad58d7b53e8", + "0x00508098d1a5bf544a85accea193677377fe4aa35b67002d6a946c3870252a75", + "0x00d6fa4bae5d4fcef30cdeef252f65240607112fe4a3c47f7b103758af2ca860", + "0x00c17625eb30333b6f3de760aa755cd9ddd92279e3f159a096e86395fad9c7ae", + "0x006e1aafcc0a6fa1cabcdcff42eabb963b739dee07945e86cd32cd673cfa157d", + "0x00d7979c1331c446a1a939f4d59b55c4533c81e8bed14fd157cccf22c92d9689", + "0x0075fdda462a6554826f8b19555ac1741527a374cc49259e1c7cf9deac6a0a84", + "0x00af723fac84790966d137fb1bdb4b863c84311ad3ec3c5d74e97886ee3050d7", + "0x005f8d1703a90379ce6e39a116f0f008099ddde97d3b4fa42cb43a56de59c0b8", + "0x00409f1e373bc571403b2c5d1e48fb12c4a17a73afd1e3575cab4f2d51ba30a0" ] }, "block": { - "archive": "0x1abaf8a98961f9ff8a61cd4410a43bb75cb42b6a41c9c8e80af8dea8efcc5d5c", - "blobInputs": "0x0101afdeefbb899f4c7178e87d19c568f9822d4d5f0a1360d4d58ae0952c06bff81a06fbb9345758979b4d290d55482c5a1fc9f6d56cdf33e67f9e5f75e8dfc001368c3682bd09d4a7165588b70d14ccbe42d7f62331f41bc97a3060200cdd9b1bb013de0b46454c537437c3af6422e96977ff89828e2a9c7fdabc3283f22759c23877a45377abb29a454539bab5d42440824b805e91f3710bed41a61f958a2b01c3630292196e60589e89ad833614a13df05aa846e6a403cfe49fcad217c54531", + "archive": "0x0514325e32fae1512426d784b87e288662125aa880d3602c120a3390dbb79485", + "blobCommitments": "0x0186c78846e89a8640fe9878a3f4faab1e71945b6a0c6d73d95a15a126f4c8209e9aa05686882e2c8b8c5dfbce6d5514e0", + "batchedBlobInputs": "0x014118dcd096f0f4ecb1160ee5aefec4f083c693fd1704324f7a3cfc1211eaff075bade04ce6ad3da308cd281d9c7b4803913d8b39aedc9929ca8bc2ea8aa1c60d659cfc090f37d842e0c70fd3c0ec73dded8cae770a409b86c706733d083d638b19d42e09921647e8476c53e11349ec6a3937adc76b8e65cdc0d246b3f39838515217ed001117ef69558b8f5542218ca5c478d3fa7a2ea2f568da648b834db6074c17687a351f8eaaa268db5665cf16e94e2b73a6f3adc4d86117140cbcdd2d", "blockNumber": 2, - "body": "0x00000004001e180410a0ee4abc5172da897b6d6da1e2de51b6020e3b150395163eeed208260000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000014100100000000000000000000000000000000000000000000000000000000001410020000000000000000000000000000000000000000000000000000000000141003000000000000000000000000000000000000000000000000000000000014100400000000000000000000000000000000000000000000000000000000001410050000000000000000000000000000000000000000000000000000000000141006000000000000000000000000000000000000000000000000000000000014100700000000000000000000000000000000000000000000000000000000001410080000000000000000000000000000000000000000000000000000000000141009000000000000000000000000000000000000000000000000000000000014100a000000000000000000000000000000000000000000000000000000000014100b000000000000000000000000000000000000000000000000000000000014100c000000000000000000000000000000000000000000000000000000000014100d000000000000000000000000000000000000000000000000000000000014100e000000000000000000000000000000000000000000000000000000000014100f0000000000000000000000000000000000000000000000000000000000141010000000000000000000000000000000000000000000000000000000000014101100000000000000000000000000000000000000000000000000000000001410120000000000000000000000000000000000000000000000000000000000141013000000000000000000000000000000000000000000000000000000000014101400000000000000000000000000000000000000000000000000000000001410150000000000000000000000000000000000000000000000000000000000141016000000000000000000000000000000000000000000000000000000000014101700000000000000000000000000000000000000000000000000000000001410180000000000000000000000000000000000000000000000000000000000141019000000000000000000000000000000000000000000000000000000000014101a000000000000000000000000000000000000000000000000000000000014101b000000000000000000000000000000000000000000000000000000000014101c000000000000000000000000000000000000000000000000000000000014101d000000000000000000000000000000000000000000000000000000000014101e000000000000000000000000000000000000000000000000000000000014101f0000000000000000000000000000000000000000000000000000000000141020000000000000000000000000000000000000000000000000000000000014102100000000000000000000000000000000000000000000000000000000001410220000000000000000000000000000000000000000000000000000000000141023000000000000000000000000000000000000000000000000000000000014102400000000000000000000000000000000000000000000000000000000001410250000000000000000000000000000000000000000000000000000000000141026000000000000000000000000000000000000000000000000000000000014102700000000000000000000000000000000000000000000000000000000001410280000000000000000000000000000000000000000000000000000000000141029000000000000000000000000000000000000000000000000000000000014102a000000000000000000000000000000000000000000000000000000000014102b000000000000000000000000000000000000000000000000000000000014102c000000000000000000000000000000000000000000000000000000000014102d000000000000000000000000000000000000000000000000000000000014102e000000000000000000000000000000000000000000000000000000000014102f0000000000000000000000000000000000000000000000000000000000141030000000000000000000000000000000000000000000000000000000000014103100000000000000000000000000000000000000000000000000000000001410320000000000000000000000000000000000000000000000000000000000141033000000000000000000000000000000000000000000000000000000000014103400000000000000000000000000000000000000000000000000000000001410350000000000000000000000000000000000000000000000000000000000141036000000000000000000000000000000000000000000000000000000000014103700000000000000000000000000000000000000000000000000000000001410380000000000000000000000000000000000000000000000000000000000141039000000000000000000000000000000000000000000000000000000000014103a000000000000000000000000000000000000000000000000000000000014103b000000000000000000000000000000000000000000000000000000000014103c000000000000000000000000000000000000000000000000000000000014103d000000000000000000000000000000000000000000000000000000000014103e000000000000000000000000000000000000000000000000000000000014103f4000000000000000000000000000000000000000000000000000000000001400010000000000000000000000000000000000000000000000000000000000141100000000000000000000000000000000000000000000000000000000000014110100000000000000000000000000000000000000000000000000000000001411020000000000000000000000000000000000000000000000000000000000141103000000000000000000000000000000000000000000000000000000000014110400000000000000000000000000000000000000000000000000000000001411050000000000000000000000000000000000000000000000000000000000141106000000000000000000000000000000000000000000000000000000000014110700000000000000000000000000000000000000000000000000000000001411080000000000000000000000000000000000000000000000000000000000141109000000000000000000000000000000000000000000000000000000000014110a000000000000000000000000000000000000000000000000000000000014110b000000000000000000000000000000000000000000000000000000000014110c000000000000000000000000000000000000000000000000000000000014110d000000000000000000000000000000000000000000000000000000000014110e000000000000000000000000000000000000000000000000000000000014110f0000000000000000000000000000000000000000000000000000000000141110000000000000000000000000000000000000000000000000000000000014111100000000000000000000000000000000000000000000000000000000001411120000000000000000000000000000000000000000000000000000000000141113000000000000000000000000000000000000000000000000000000000014111400000000000000000000000000000000000000000000000000000000001411150000000000000000000000000000000000000000000000000000000000141116000000000000000000000000000000000000000000000000000000000014111700000000000000000000000000000000000000000000000000000000001411180000000000000000000000000000000000000000000000000000000000141119000000000000000000000000000000000000000000000000000000000014111a000000000000000000000000000000000000000000000000000000000014111b000000000000000000000000000000000000000000000000000000000014111c000000000000000000000000000000000000000000000000000000000014111d000000000000000000000000000000000000000000000000000000000014111e000000000000000000000000000000000000000000000000000000000014111f0000000000000000000000000000000000000000000000000000000000141120000000000000000000000000000000000000000000000000000000000014112100000000000000000000000000000000000000000000000000000000001411220000000000000000000000000000000000000000000000000000000000141123000000000000000000000000000000000000000000000000000000000014112400000000000000000000000000000000000000000000000000000000001411250000000000000000000000000000000000000000000000000000000000141126000000000000000000000000000000000000000000000000000000000014112700000000000000000000000000000000000000000000000000000000001411280000000000000000000000000000000000000000000000000000000000141129000000000000000000000000000000000000000000000000000000000014112a000000000000000000000000000000000000000000000000000000000014112b000000000000000000000000000000000000000000000000000000000014112c000000000000000000000000000000000000000000000000000000000014112d000000000000000000000000000000000000000000000000000000000014112e000000000000000000000000000000000000000000000000000000000014112f0000000000000000000000000000000000000000000000000000000000141130000000000000000000000000000000000000000000000000000000000014113100000000000000000000000000000000000000000000000000000000001411320000000000000000000000000000000000000000000000000000000000141133000000000000000000000000000000000000000000000000000000000014113400000000000000000000000000000000000000000000000000000000001411350000000000000000000000000000000000000000000000000000000000141136000000000000000000000000000000000000000000000000000000000014113700000000000000000000000000000000000000000000000000000000001411380000000000000000000000000000000000000000000000000000000000141139000000000000000000000000000000000000000000000000000000000014113a000000000000000000000000000000000000000000000000000000000014113b000000000000000000000000000000000000000000000000000000000014113c000000000000000000000000000000000000000000000000000000000014113d000000000000000000000000000000000000000000000000000000000014113e0800adec81529155b5f9fcc89fb6293c16bfaf08e2a54ae27b4f588f62162e121700dd1484abd7d65c515ea825886c442910281f91e3c712cacceef0afd16c6dd40073d52d69c6a488678449e1e5d82f90f860a5217025f5ef6b0b03fba7a3af9200f0a11e4ce050dfa27882edbdb2933c914c5a752b5d112827b75ab768065951001349bb4a2d1f3f69a52c0b11b9f648fec0f4767edf5dc961820f705e7579ef008d4df0164215b779dcc7235d94fa81fa2bb11205662eec9bc8b75c9a556d7d005d02572123080b3b81df18ea215ab4e1b79747e5d26090a3969a653e6b91c4004960a71b620f845f0251aef7c09ca7f322480b2908825e8c3401d0b8a6e4b6400000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142001000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142002000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142003000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142004000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142005000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420060000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014200700000000000000000000000000000000000000000000000000000000001420110000000000000000000000000000000000000000000000000000000000142008000000000000000000000000000000000000000000000000000000000014201200000000000000000000000000000000000000000000000000000000001420090000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142016000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142017000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142011000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142012000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420160000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014201700000000000000000000000000000000000000000000000000000000001420210000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014202200000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142026000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142027000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142021000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142022000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420260000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014202700000000000000000000000000000000000000000000000000000000001420310000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014203200000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142036000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142037000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142031000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142032000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014203f00000000000000000000000000000000000000000000000000000000001420360000000000000000000000000000000000000000000000000000000000142040000000000000000000000000000000000000000000000000000000000014203700000000000000000000000000000000000000000000000000000000001420410000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014204200000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142043000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142044000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142045000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142046000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142047000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142048000000000000000000000000000000000000000000000000000000000014203f0000000000000000000000000000000000000000000000000000000000142049200000000000000000000000000000000000000000000000000000000000141700000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000012000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000001200000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000120000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000012000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000001200000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000120000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000012000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000001200000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000120000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a00000012000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b00000012000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c00000012000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d00000012000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e00000012000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f00000012000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000120000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000012000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000001200000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000012000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000001200000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000120000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000012000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000001200000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000120000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a00000012000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b00000012000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c00000012000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d00000012000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e00000012000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f00000012000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f000000000000000000000000000000000000000000000000000000000014173000000012000000033eb8ce1f2d3f1c594099e86bef82bf90a63e89384d3121b3a0161a8b10779b0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000181000000000000000000000000000000000000000000000000000000000000018100100000000000000000000000000000000000000000000000000000000001810020000000000000000000000000000000000000000000000000000000000181003000000000000000000000000000000000000000000000000000000000018100400000000000000000000000000000000000000000000000000000000001810050000000000000000000000000000000000000000000000000000000000181006000000000000000000000000000000000000000000000000000000000018100700000000000000000000000000000000000000000000000000000000001810080000000000000000000000000000000000000000000000000000000000181009000000000000000000000000000000000000000000000000000000000018100a000000000000000000000000000000000000000000000000000000000018100b000000000000000000000000000000000000000000000000000000000018100c000000000000000000000000000000000000000000000000000000000018100d000000000000000000000000000000000000000000000000000000000018100e000000000000000000000000000000000000000000000000000000000018100f0000000000000000000000000000000000000000000000000000000000181010000000000000000000000000000000000000000000000000000000000018101100000000000000000000000000000000000000000000000000000000001810120000000000000000000000000000000000000000000000000000000000181013000000000000000000000000000000000000000000000000000000000018101400000000000000000000000000000000000000000000000000000000001810150000000000000000000000000000000000000000000000000000000000181016000000000000000000000000000000000000000000000000000000000018101700000000000000000000000000000000000000000000000000000000001810180000000000000000000000000000000000000000000000000000000000181019000000000000000000000000000000000000000000000000000000000018101a000000000000000000000000000000000000000000000000000000000018101b000000000000000000000000000000000000000000000000000000000018101c000000000000000000000000000000000000000000000000000000000018101d000000000000000000000000000000000000000000000000000000000018101e000000000000000000000000000000000000000000000000000000000018101f0000000000000000000000000000000000000000000000000000000000181020000000000000000000000000000000000000000000000000000000000018102100000000000000000000000000000000000000000000000000000000001810220000000000000000000000000000000000000000000000000000000000181023000000000000000000000000000000000000000000000000000000000018102400000000000000000000000000000000000000000000000000000000001810250000000000000000000000000000000000000000000000000000000000181026000000000000000000000000000000000000000000000000000000000018102700000000000000000000000000000000000000000000000000000000001810280000000000000000000000000000000000000000000000000000000000181029000000000000000000000000000000000000000000000000000000000018102a000000000000000000000000000000000000000000000000000000000018102b000000000000000000000000000000000000000000000000000000000018102c000000000000000000000000000000000000000000000000000000000018102d000000000000000000000000000000000000000000000000000000000018102e000000000000000000000000000000000000000000000000000000000018102f0000000000000000000000000000000000000000000000000000000000181030000000000000000000000000000000000000000000000000000000000018103100000000000000000000000000000000000000000000000000000000001810320000000000000000000000000000000000000000000000000000000000181033000000000000000000000000000000000000000000000000000000000018103400000000000000000000000000000000000000000000000000000000001810350000000000000000000000000000000000000000000000000000000000181036000000000000000000000000000000000000000000000000000000000018103700000000000000000000000000000000000000000000000000000000001810380000000000000000000000000000000000000000000000000000000000181039000000000000000000000000000000000000000000000000000000000018103a000000000000000000000000000000000000000000000000000000000018103b000000000000000000000000000000000000000000000000000000000018103c000000000000000000000000000000000000000000000000000000000018103d000000000000000000000000000000000000000000000000000000000018103e000000000000000000000000000000000000000000000000000000000018103f4000000000000000000000000000000000000000000000000000000000001800010000000000000000000000000000000000000000000000000000000000181100000000000000000000000000000000000000000000000000000000000018110100000000000000000000000000000000000000000000000000000000001811020000000000000000000000000000000000000000000000000000000000181103000000000000000000000000000000000000000000000000000000000018110400000000000000000000000000000000000000000000000000000000001811050000000000000000000000000000000000000000000000000000000000181106000000000000000000000000000000000000000000000000000000000018110700000000000000000000000000000000000000000000000000000000001811080000000000000000000000000000000000000000000000000000000000181109000000000000000000000000000000000000000000000000000000000018110a000000000000000000000000000000000000000000000000000000000018110b000000000000000000000000000000000000000000000000000000000018110c000000000000000000000000000000000000000000000000000000000018110d000000000000000000000000000000000000000000000000000000000018110e000000000000000000000000000000000000000000000000000000000018110f0000000000000000000000000000000000000000000000000000000000181110000000000000000000000000000000000000000000000000000000000018111100000000000000000000000000000000000000000000000000000000001811120000000000000000000000000000000000000000000000000000000000181113000000000000000000000000000000000000000000000000000000000018111400000000000000000000000000000000000000000000000000000000001811150000000000000000000000000000000000000000000000000000000000181116000000000000000000000000000000000000000000000000000000000018111700000000000000000000000000000000000000000000000000000000001811180000000000000000000000000000000000000000000000000000000000181119000000000000000000000000000000000000000000000000000000000018111a000000000000000000000000000000000000000000000000000000000018111b000000000000000000000000000000000000000000000000000000000018111c000000000000000000000000000000000000000000000000000000000018111d000000000000000000000000000000000000000000000000000000000018111e000000000000000000000000000000000000000000000000000000000018111f0000000000000000000000000000000000000000000000000000000000181120000000000000000000000000000000000000000000000000000000000018112100000000000000000000000000000000000000000000000000000000001811220000000000000000000000000000000000000000000000000000000000181123000000000000000000000000000000000000000000000000000000000018112400000000000000000000000000000000000000000000000000000000001811250000000000000000000000000000000000000000000000000000000000181126000000000000000000000000000000000000000000000000000000000018112700000000000000000000000000000000000000000000000000000000001811280000000000000000000000000000000000000000000000000000000000181129000000000000000000000000000000000000000000000000000000000018112a000000000000000000000000000000000000000000000000000000000018112b000000000000000000000000000000000000000000000000000000000018112c000000000000000000000000000000000000000000000000000000000018112d000000000000000000000000000000000000000000000000000000000018112e000000000000000000000000000000000000000000000000000000000018112f0000000000000000000000000000000000000000000000000000000000181130000000000000000000000000000000000000000000000000000000000018113100000000000000000000000000000000000000000000000000000000001811320000000000000000000000000000000000000000000000000000000000181133000000000000000000000000000000000000000000000000000000000018113400000000000000000000000000000000000000000000000000000000001811350000000000000000000000000000000000000000000000000000000000181136000000000000000000000000000000000000000000000000000000000018113700000000000000000000000000000000000000000000000000000000001811380000000000000000000000000000000000000000000000000000000000181139000000000000000000000000000000000000000000000000000000000018113a000000000000000000000000000000000000000000000000000000000018113b000000000000000000000000000000000000000000000000000000000018113c000000000000000000000000000000000000000000000000000000000018113d000000000000000000000000000000000000000000000000000000000018113e08006764fd841f5a4fb63aafade20ad4af8a5f18b5469f3cea1c32113015be11860045021b64b86a153c0e9a0e0bd98d856eb4a44b38b54997c6b1757a2a1b345100377e59c0f28b19fe04de5253a9cbe230330722d8a16ee7dc8074594bf75ff10094abd5aad29ada8036396b9448c58e3fcff5ba44f89e6c2dd51ddf5efaa06e004f710d678494f8d970216394221800093b59ff02994016c68b184044e4bf6b00de60448157b35fbce7b334cd0fdc8853870b95827a6a9b9369a3d2b2b627d3003c29e37a023c18a44e1b2391daac154871a2bb8ec3692da9eba920cb855de400778fe5d68d7d50b23411771d302e665a99d1e2410d9f57e5cde96c4a1eeda9400000000000000000000000000000000000000000000000000000000000182000000000000000000000000000000000000000000000000000000000000018200a0000000000000000000000000000000000000000000000000000000000182001000000000000000000000000000000000000000000000000000000000018200b0000000000000000000000000000000000000000000000000000000000182002000000000000000000000000000000000000000000000000000000000018200c0000000000000000000000000000000000000000000000000000000000182003000000000000000000000000000000000000000000000000000000000018200d0000000000000000000000000000000000000000000000000000000000182004000000000000000000000000000000000000000000000000000000000018200e0000000000000000000000000000000000000000000000000000000000182005000000000000000000000000000000000000000000000000000000000018200f00000000000000000000000000000000000000000000000000000000001820060000000000000000000000000000000000000000000000000000000000182010000000000000000000000000000000000000000000000000000000000018200700000000000000000000000000000000000000000000000000000000001820110000000000000000000000000000000000000000000000000000000000182008000000000000000000000000000000000000000000000000000000000018201200000000000000000000000000000000000000000000000000000000001820090000000000000000000000000000000000000000000000000000000000182013000000000000000000000000000000000000000000000000000000000018200a0000000000000000000000000000000000000000000000000000000000182014000000000000000000000000000000000000000000000000000000000018200b0000000000000000000000000000000000000000000000000000000000182015000000000000000000000000000000000000000000000000000000000018200c0000000000000000000000000000000000000000000000000000000000182016000000000000000000000000000000000000000000000000000000000018200d0000000000000000000000000000000000000000000000000000000000182017000000000000000000000000000000000000000000000000000000000018200e0000000000000000000000000000000000000000000000000000000000182018000000000000000000000000000000000000000000000000000000000018200f00000000000000000000000000000000000000000000000000000000001820190000000000000000000000000000000000000000000000000000000000182010000000000000000000000000000000000000000000000000000000000018201a0000000000000000000000000000000000000000000000000000000000182011000000000000000000000000000000000000000000000000000000000018201b0000000000000000000000000000000000000000000000000000000000182012000000000000000000000000000000000000000000000000000000000018201c0000000000000000000000000000000000000000000000000000000000182013000000000000000000000000000000000000000000000000000000000018201d0000000000000000000000000000000000000000000000000000000000182014000000000000000000000000000000000000000000000000000000000018201e0000000000000000000000000000000000000000000000000000000000182015000000000000000000000000000000000000000000000000000000000018201f00000000000000000000000000000000000000000000000000000000001820160000000000000000000000000000000000000000000000000000000000182020000000000000000000000000000000000000000000000000000000000018201700000000000000000000000000000000000000000000000000000000001820210000000000000000000000000000000000000000000000000000000000182018000000000000000000000000000000000000000000000000000000000018202200000000000000000000000000000000000000000000000000000000001820190000000000000000000000000000000000000000000000000000000000182023000000000000000000000000000000000000000000000000000000000018201a0000000000000000000000000000000000000000000000000000000000182024000000000000000000000000000000000000000000000000000000000018201b0000000000000000000000000000000000000000000000000000000000182025000000000000000000000000000000000000000000000000000000000018201c0000000000000000000000000000000000000000000000000000000000182026000000000000000000000000000000000000000000000000000000000018201d0000000000000000000000000000000000000000000000000000000000182027000000000000000000000000000000000000000000000000000000000018201e0000000000000000000000000000000000000000000000000000000000182028000000000000000000000000000000000000000000000000000000000018201f00000000000000000000000000000000000000000000000000000000001820290000000000000000000000000000000000000000000000000000000000182020000000000000000000000000000000000000000000000000000000000018202a0000000000000000000000000000000000000000000000000000000000182021000000000000000000000000000000000000000000000000000000000018202b0000000000000000000000000000000000000000000000000000000000182022000000000000000000000000000000000000000000000000000000000018202c0000000000000000000000000000000000000000000000000000000000182023000000000000000000000000000000000000000000000000000000000018202d0000000000000000000000000000000000000000000000000000000000182024000000000000000000000000000000000000000000000000000000000018202e0000000000000000000000000000000000000000000000000000000000182025000000000000000000000000000000000000000000000000000000000018202f00000000000000000000000000000000000000000000000000000000001820260000000000000000000000000000000000000000000000000000000000182030000000000000000000000000000000000000000000000000000000000018202700000000000000000000000000000000000000000000000000000000001820310000000000000000000000000000000000000000000000000000000000182028000000000000000000000000000000000000000000000000000000000018203200000000000000000000000000000000000000000000000000000000001820290000000000000000000000000000000000000000000000000000000000182033000000000000000000000000000000000000000000000000000000000018202a0000000000000000000000000000000000000000000000000000000000182034000000000000000000000000000000000000000000000000000000000018202b0000000000000000000000000000000000000000000000000000000000182035000000000000000000000000000000000000000000000000000000000018202c0000000000000000000000000000000000000000000000000000000000182036000000000000000000000000000000000000000000000000000000000018202d0000000000000000000000000000000000000000000000000000000000182037000000000000000000000000000000000000000000000000000000000018202e0000000000000000000000000000000000000000000000000000000000182038000000000000000000000000000000000000000000000000000000000018202f00000000000000000000000000000000000000000000000000000000001820390000000000000000000000000000000000000000000000000000000000182030000000000000000000000000000000000000000000000000000000000018203a0000000000000000000000000000000000000000000000000000000000182031000000000000000000000000000000000000000000000000000000000018203b0000000000000000000000000000000000000000000000000000000000182032000000000000000000000000000000000000000000000000000000000018203c0000000000000000000000000000000000000000000000000000000000182033000000000000000000000000000000000000000000000000000000000018203d0000000000000000000000000000000000000000000000000000000000182034000000000000000000000000000000000000000000000000000000000018203e0000000000000000000000000000000000000000000000000000000000182035000000000000000000000000000000000000000000000000000000000018203f00000000000000000000000000000000000000000000000000000000001820360000000000000000000000000000000000000000000000000000000000182040000000000000000000000000000000000000000000000000000000000018203700000000000000000000000000000000000000000000000000000000001820410000000000000000000000000000000000000000000000000000000000182038000000000000000000000000000000000000000000000000000000000018204200000000000000000000000000000000000000000000000000000000001820390000000000000000000000000000000000000000000000000000000000182043000000000000000000000000000000000000000000000000000000000018203a0000000000000000000000000000000000000000000000000000000000182044000000000000000000000000000000000000000000000000000000000018203b0000000000000000000000000000000000000000000000000000000000182045000000000000000000000000000000000000000000000000000000000018203c0000000000000000000000000000000000000000000000000000000000182046000000000000000000000000000000000000000000000000000000000018203d0000000000000000000000000000000000000000000000000000000000182047000000000000000000000000000000000000000000000000000000000018203e0000000000000000000000000000000000000000000000000000000000182048000000000000000000000000000000000000000000000000000000000018203f0000000000000000000000000000000000000000000000000000000000182049200000000000000000000000000000000000000000000000000000000000181700000000000000000000000000000000000000000000000000000000000018170100000000000000000000000000000000000000000000000000000000001817020000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000012000000000000000000000000000000000000000000000000000000000018170100000000000000000000000000000000000000000000000000000000001817020000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000001200000000000000000000000000000000000000000000000000000000001817020000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000120000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000012000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000001200000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000120000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000012000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000001200000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000120000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a00000012000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b00000012000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c00000012000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d00000012000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e00000012000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f00000012000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000120000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000012000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000001200000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000012000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000001200000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000120000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000012000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000001200000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000120000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a00000012000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b00000012000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c00000012000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d00000012000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d000000000000000000000000000000000000000000000000000000000018172e00000012000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d000000000000000000000000000000000000000000000000000000000018172e000000000000000000000000000000000000000000000000000000000018172f00000012000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d000000000000000000000000000000000000000000000000000000000018172e000000000000000000000000000000000000000000000000000000000018172f000000000000000000000000000000000000000000000000000000000018173000000012000000304b49692324f1be3f24f442391314fb02cc13a2ba4a98183e9fc029063b32d400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c100100000000000000000000000000000000000000000000000000000000001c100200000000000000000000000000000000000000000000000000000000001c100300000000000000000000000000000000000000000000000000000000001c100400000000000000000000000000000000000000000000000000000000001c100500000000000000000000000000000000000000000000000000000000001c100600000000000000000000000000000000000000000000000000000000001c100700000000000000000000000000000000000000000000000000000000001c100800000000000000000000000000000000000000000000000000000000001c100900000000000000000000000000000000000000000000000000000000001c100a00000000000000000000000000000000000000000000000000000000001c100b00000000000000000000000000000000000000000000000000000000001c100c00000000000000000000000000000000000000000000000000000000001c100d00000000000000000000000000000000000000000000000000000000001c100e00000000000000000000000000000000000000000000000000000000001c100f00000000000000000000000000000000000000000000000000000000001c101000000000000000000000000000000000000000000000000000000000001c101100000000000000000000000000000000000000000000000000000000001c101200000000000000000000000000000000000000000000000000000000001c101300000000000000000000000000000000000000000000000000000000001c101400000000000000000000000000000000000000000000000000000000001c101500000000000000000000000000000000000000000000000000000000001c101600000000000000000000000000000000000000000000000000000000001c101700000000000000000000000000000000000000000000000000000000001c101800000000000000000000000000000000000000000000000000000000001c101900000000000000000000000000000000000000000000000000000000001c101a00000000000000000000000000000000000000000000000000000000001c101b00000000000000000000000000000000000000000000000000000000001c101c00000000000000000000000000000000000000000000000000000000001c101d00000000000000000000000000000000000000000000000000000000001c101e00000000000000000000000000000000000000000000000000000000001c101f00000000000000000000000000000000000000000000000000000000001c102000000000000000000000000000000000000000000000000000000000001c102100000000000000000000000000000000000000000000000000000000001c102200000000000000000000000000000000000000000000000000000000001c102300000000000000000000000000000000000000000000000000000000001c102400000000000000000000000000000000000000000000000000000000001c102500000000000000000000000000000000000000000000000000000000001c102600000000000000000000000000000000000000000000000000000000001c102700000000000000000000000000000000000000000000000000000000001c102800000000000000000000000000000000000000000000000000000000001c102900000000000000000000000000000000000000000000000000000000001c102a00000000000000000000000000000000000000000000000000000000001c102b00000000000000000000000000000000000000000000000000000000001c102c00000000000000000000000000000000000000000000000000000000001c102d00000000000000000000000000000000000000000000000000000000001c102e00000000000000000000000000000000000000000000000000000000001c102f00000000000000000000000000000000000000000000000000000000001c103000000000000000000000000000000000000000000000000000000000001c103100000000000000000000000000000000000000000000000000000000001c103200000000000000000000000000000000000000000000000000000000001c103300000000000000000000000000000000000000000000000000000000001c103400000000000000000000000000000000000000000000000000000000001c103500000000000000000000000000000000000000000000000000000000001c103600000000000000000000000000000000000000000000000000000000001c103700000000000000000000000000000000000000000000000000000000001c103800000000000000000000000000000000000000000000000000000000001c103900000000000000000000000000000000000000000000000000000000001c103a00000000000000000000000000000000000000000000000000000000001c103b00000000000000000000000000000000000000000000000000000000001c103c00000000000000000000000000000000000000000000000000000000001c103d00000000000000000000000000000000000000000000000000000000001c103e00000000000000000000000000000000000000000000000000000000001c103f4000000000000000000000000000000000000000000000000000000000001c000100000000000000000000000000000000000000000000000000000000001c110000000000000000000000000000000000000000000000000000000000001c110100000000000000000000000000000000000000000000000000000000001c110200000000000000000000000000000000000000000000000000000000001c110300000000000000000000000000000000000000000000000000000000001c110400000000000000000000000000000000000000000000000000000000001c110500000000000000000000000000000000000000000000000000000000001c110600000000000000000000000000000000000000000000000000000000001c110700000000000000000000000000000000000000000000000000000000001c110800000000000000000000000000000000000000000000000000000000001c110900000000000000000000000000000000000000000000000000000000001c110a00000000000000000000000000000000000000000000000000000000001c110b00000000000000000000000000000000000000000000000000000000001c110c00000000000000000000000000000000000000000000000000000000001c110d00000000000000000000000000000000000000000000000000000000001c110e00000000000000000000000000000000000000000000000000000000001c110f00000000000000000000000000000000000000000000000000000000001c111000000000000000000000000000000000000000000000000000000000001c111100000000000000000000000000000000000000000000000000000000001c111200000000000000000000000000000000000000000000000000000000001c111300000000000000000000000000000000000000000000000000000000001c111400000000000000000000000000000000000000000000000000000000001c111500000000000000000000000000000000000000000000000000000000001c111600000000000000000000000000000000000000000000000000000000001c111700000000000000000000000000000000000000000000000000000000001c111800000000000000000000000000000000000000000000000000000000001c111900000000000000000000000000000000000000000000000000000000001c111a00000000000000000000000000000000000000000000000000000000001c111b00000000000000000000000000000000000000000000000000000000001c111c00000000000000000000000000000000000000000000000000000000001c111d00000000000000000000000000000000000000000000000000000000001c111e00000000000000000000000000000000000000000000000000000000001c111f00000000000000000000000000000000000000000000000000000000001c112000000000000000000000000000000000000000000000000000000000001c112100000000000000000000000000000000000000000000000000000000001c112200000000000000000000000000000000000000000000000000000000001c112300000000000000000000000000000000000000000000000000000000001c112400000000000000000000000000000000000000000000000000000000001c112500000000000000000000000000000000000000000000000000000000001c112600000000000000000000000000000000000000000000000000000000001c112700000000000000000000000000000000000000000000000000000000001c112800000000000000000000000000000000000000000000000000000000001c112900000000000000000000000000000000000000000000000000000000001c112a00000000000000000000000000000000000000000000000000000000001c112b00000000000000000000000000000000000000000000000000000000001c112c00000000000000000000000000000000000000000000000000000000001c112d00000000000000000000000000000000000000000000000000000000001c112e00000000000000000000000000000000000000000000000000000000001c112f00000000000000000000000000000000000000000000000000000000001c113000000000000000000000000000000000000000000000000000000000001c113100000000000000000000000000000000000000000000000000000000001c113200000000000000000000000000000000000000000000000000000000001c113300000000000000000000000000000000000000000000000000000000001c113400000000000000000000000000000000000000000000000000000000001c113500000000000000000000000000000000000000000000000000000000001c113600000000000000000000000000000000000000000000000000000000001c113700000000000000000000000000000000000000000000000000000000001c113800000000000000000000000000000000000000000000000000000000001c113900000000000000000000000000000000000000000000000000000000001c113a00000000000000000000000000000000000000000000000000000000001c113b00000000000000000000000000000000000000000000000000000000001c113c00000000000000000000000000000000000000000000000000000000001c113d00000000000000000000000000000000000000000000000000000000001c113e0800a3f86a8fac1918a316e51fe31cd53446b84f83ea539e7c3daf515bda0f2be9002092e6cc15ae6ae7f6e26738285fd137f2826dd83b7076e1e5b0fe259e22b500af013b4912f62e90af2d9f6f8a1f77720c3c6ba850a8e5edd87bd97c5e1bb5003f961d3002c8934db42d86d1afa40f7a48915afdf01c9e7b721737c0e24f22006870c068cf400ff79f6ac1459ef6cc0c21ad10e1dfea9717400969b91e173d0026a3169f7cb47ea779b1ce7665f1f568402476499ed086d2d9ddf044e6d4f2009b030eaa63725ec24740c1b82af01800cf03becd886b4cf657e713255e4cdc00d1c32cb665fe9bf7c1932e201a1cf7d461d63528f3250f326001432e1081754000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c200a00000000000000000000000000000000000000000000000000000000001c200100000000000000000000000000000000000000000000000000000000001c200b00000000000000000000000000000000000000000000000000000000001c200200000000000000000000000000000000000000000000000000000000001c200c00000000000000000000000000000000000000000000000000000000001c200300000000000000000000000000000000000000000000000000000000001c200d00000000000000000000000000000000000000000000000000000000001c200400000000000000000000000000000000000000000000000000000000001c200e00000000000000000000000000000000000000000000000000000000001c200500000000000000000000000000000000000000000000000000000000001c200f00000000000000000000000000000000000000000000000000000000001c200600000000000000000000000000000000000000000000000000000000001c201000000000000000000000000000000000000000000000000000000000001c200700000000000000000000000000000000000000000000000000000000001c201100000000000000000000000000000000000000000000000000000000001c200800000000000000000000000000000000000000000000000000000000001c201200000000000000000000000000000000000000000000000000000000001c200900000000000000000000000000000000000000000000000000000000001c201300000000000000000000000000000000000000000000000000000000001c200a00000000000000000000000000000000000000000000000000000000001c201400000000000000000000000000000000000000000000000000000000001c200b00000000000000000000000000000000000000000000000000000000001c201500000000000000000000000000000000000000000000000000000000001c200c00000000000000000000000000000000000000000000000000000000001c201600000000000000000000000000000000000000000000000000000000001c200d00000000000000000000000000000000000000000000000000000000001c201700000000000000000000000000000000000000000000000000000000001c200e00000000000000000000000000000000000000000000000000000000001c201800000000000000000000000000000000000000000000000000000000001c200f00000000000000000000000000000000000000000000000000000000001c201900000000000000000000000000000000000000000000000000000000001c201000000000000000000000000000000000000000000000000000000000001c201a00000000000000000000000000000000000000000000000000000000001c201100000000000000000000000000000000000000000000000000000000001c201b00000000000000000000000000000000000000000000000000000000001c201200000000000000000000000000000000000000000000000000000000001c201c00000000000000000000000000000000000000000000000000000000001c201300000000000000000000000000000000000000000000000000000000001c201d00000000000000000000000000000000000000000000000000000000001c201400000000000000000000000000000000000000000000000000000000001c201e00000000000000000000000000000000000000000000000000000000001c201500000000000000000000000000000000000000000000000000000000001c201f00000000000000000000000000000000000000000000000000000000001c201600000000000000000000000000000000000000000000000000000000001c202000000000000000000000000000000000000000000000000000000000001c201700000000000000000000000000000000000000000000000000000000001c202100000000000000000000000000000000000000000000000000000000001c201800000000000000000000000000000000000000000000000000000000001c202200000000000000000000000000000000000000000000000000000000001c201900000000000000000000000000000000000000000000000000000000001c202300000000000000000000000000000000000000000000000000000000001c201a00000000000000000000000000000000000000000000000000000000001c202400000000000000000000000000000000000000000000000000000000001c201b00000000000000000000000000000000000000000000000000000000001c202500000000000000000000000000000000000000000000000000000000001c201c00000000000000000000000000000000000000000000000000000000001c202600000000000000000000000000000000000000000000000000000000001c201d00000000000000000000000000000000000000000000000000000000001c202700000000000000000000000000000000000000000000000000000000001c201e00000000000000000000000000000000000000000000000000000000001c202800000000000000000000000000000000000000000000000000000000001c201f00000000000000000000000000000000000000000000000000000000001c202900000000000000000000000000000000000000000000000000000000001c202000000000000000000000000000000000000000000000000000000000001c202a00000000000000000000000000000000000000000000000000000000001c202100000000000000000000000000000000000000000000000000000000001c202b00000000000000000000000000000000000000000000000000000000001c202200000000000000000000000000000000000000000000000000000000001c202c00000000000000000000000000000000000000000000000000000000001c202300000000000000000000000000000000000000000000000000000000001c202d00000000000000000000000000000000000000000000000000000000001c202400000000000000000000000000000000000000000000000000000000001c202e00000000000000000000000000000000000000000000000000000000001c202500000000000000000000000000000000000000000000000000000000001c202f00000000000000000000000000000000000000000000000000000000001c202600000000000000000000000000000000000000000000000000000000001c203000000000000000000000000000000000000000000000000000000000001c202700000000000000000000000000000000000000000000000000000000001c203100000000000000000000000000000000000000000000000000000000001c202800000000000000000000000000000000000000000000000000000000001c203200000000000000000000000000000000000000000000000000000000001c202900000000000000000000000000000000000000000000000000000000001c203300000000000000000000000000000000000000000000000000000000001c202a00000000000000000000000000000000000000000000000000000000001c203400000000000000000000000000000000000000000000000000000000001c202b00000000000000000000000000000000000000000000000000000000001c203500000000000000000000000000000000000000000000000000000000001c202c00000000000000000000000000000000000000000000000000000000001c203600000000000000000000000000000000000000000000000000000000001c202d00000000000000000000000000000000000000000000000000000000001c203700000000000000000000000000000000000000000000000000000000001c202e00000000000000000000000000000000000000000000000000000000001c203800000000000000000000000000000000000000000000000000000000001c202f00000000000000000000000000000000000000000000000000000000001c203900000000000000000000000000000000000000000000000000000000001c203000000000000000000000000000000000000000000000000000000000001c203a00000000000000000000000000000000000000000000000000000000001c203100000000000000000000000000000000000000000000000000000000001c203b00000000000000000000000000000000000000000000000000000000001c203200000000000000000000000000000000000000000000000000000000001c203c00000000000000000000000000000000000000000000000000000000001c203300000000000000000000000000000000000000000000000000000000001c203d00000000000000000000000000000000000000000000000000000000001c203400000000000000000000000000000000000000000000000000000000001c203e00000000000000000000000000000000000000000000000000000000001c203500000000000000000000000000000000000000000000000000000000001c203f00000000000000000000000000000000000000000000000000000000001c203600000000000000000000000000000000000000000000000000000000001c204000000000000000000000000000000000000000000000000000000000001c203700000000000000000000000000000000000000000000000000000000001c204100000000000000000000000000000000000000000000000000000000001c203800000000000000000000000000000000000000000000000000000000001c204200000000000000000000000000000000000000000000000000000000001c203900000000000000000000000000000000000000000000000000000000001c204300000000000000000000000000000000000000000000000000000000001c203a00000000000000000000000000000000000000000000000000000000001c204400000000000000000000000000000000000000000000000000000000001c203b00000000000000000000000000000000000000000000000000000000001c204500000000000000000000000000000000000000000000000000000000001c203c00000000000000000000000000000000000000000000000000000000001c204600000000000000000000000000000000000000000000000000000000001c203d00000000000000000000000000000000000000000000000000000000001c204700000000000000000000000000000000000000000000000000000000001c203e00000000000000000000000000000000000000000000000000000000001c204800000000000000000000000000000000000000000000000000000000001c203f00000000000000000000000000000000000000000000000000000000001c20492000000000000000000000000000000000000000000000000000000000001c170000000000000000000000000000000000000000000000000000000000001c170100000000000000000000000000000000000000000000000000000000001c170200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c17110000001200000000000000000000000000000000000000000000000000000000001c170100000000000000000000000000000000000000000000000000000000001c170200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c17120000001200000000000000000000000000000000000000000000000000000000001c170200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c17130000001200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c17140000001200000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c17150000001200000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c17160000001200000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c17170000001200000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c17180000001200000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c17190000001200000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a0000001200000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b0000001200000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c0000001200000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d0000001200000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e0000001200000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f0000001200000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c17200000001200000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c17210000001200000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c17220000001200000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c17230000001200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c17240000001200000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c17250000001200000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c17260000001200000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c17270000001200000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c17280000001200000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c17290000001200000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a0000001200000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b0000001200000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c0000001200000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d0000001200000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d00000000000000000000000000000000000000000000000000000000001c172e0000001200000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d00000000000000000000000000000000000000000000000000000000001c172e00000000000000000000000000000000000000000000000000000000001c172f0000001200000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d00000000000000000000000000000000000000000000000000000000001c172e00000000000000000000000000000000000000000000000000000000001c172f00000000000000000000000000000000000000000000000000000000001c1730000000120000001afba9e406e02f38412b6a0251993dc2a82209290ff15103c1a37b8c5aa4a9740000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000201000000000000000000000000000000000000000000000000000000000000020100100000000000000000000000000000000000000000000000000000000002010020000000000000000000000000000000000000000000000000000000000201003000000000000000000000000000000000000000000000000000000000020100400000000000000000000000000000000000000000000000000000000002010050000000000000000000000000000000000000000000000000000000000201006000000000000000000000000000000000000000000000000000000000020100700000000000000000000000000000000000000000000000000000000002010080000000000000000000000000000000000000000000000000000000000201009000000000000000000000000000000000000000000000000000000000020100a000000000000000000000000000000000000000000000000000000000020100b000000000000000000000000000000000000000000000000000000000020100c000000000000000000000000000000000000000000000000000000000020100d000000000000000000000000000000000000000000000000000000000020100e000000000000000000000000000000000000000000000000000000000020100f0000000000000000000000000000000000000000000000000000000000201010000000000000000000000000000000000000000000000000000000000020101100000000000000000000000000000000000000000000000000000000002010120000000000000000000000000000000000000000000000000000000000201013000000000000000000000000000000000000000000000000000000000020101400000000000000000000000000000000000000000000000000000000002010150000000000000000000000000000000000000000000000000000000000201016000000000000000000000000000000000000000000000000000000000020101700000000000000000000000000000000000000000000000000000000002010180000000000000000000000000000000000000000000000000000000000201019000000000000000000000000000000000000000000000000000000000020101a000000000000000000000000000000000000000000000000000000000020101b000000000000000000000000000000000000000000000000000000000020101c000000000000000000000000000000000000000000000000000000000020101d000000000000000000000000000000000000000000000000000000000020101e000000000000000000000000000000000000000000000000000000000020101f0000000000000000000000000000000000000000000000000000000000201020000000000000000000000000000000000000000000000000000000000020102100000000000000000000000000000000000000000000000000000000002010220000000000000000000000000000000000000000000000000000000000201023000000000000000000000000000000000000000000000000000000000020102400000000000000000000000000000000000000000000000000000000002010250000000000000000000000000000000000000000000000000000000000201026000000000000000000000000000000000000000000000000000000000020102700000000000000000000000000000000000000000000000000000000002010280000000000000000000000000000000000000000000000000000000000201029000000000000000000000000000000000000000000000000000000000020102a000000000000000000000000000000000000000000000000000000000020102b000000000000000000000000000000000000000000000000000000000020102c000000000000000000000000000000000000000000000000000000000020102d000000000000000000000000000000000000000000000000000000000020102e000000000000000000000000000000000000000000000000000000000020102f0000000000000000000000000000000000000000000000000000000000201030000000000000000000000000000000000000000000000000000000000020103100000000000000000000000000000000000000000000000000000000002010320000000000000000000000000000000000000000000000000000000000201033000000000000000000000000000000000000000000000000000000000020103400000000000000000000000000000000000000000000000000000000002010350000000000000000000000000000000000000000000000000000000000201036000000000000000000000000000000000000000000000000000000000020103700000000000000000000000000000000000000000000000000000000002010380000000000000000000000000000000000000000000000000000000000201039000000000000000000000000000000000000000000000000000000000020103a000000000000000000000000000000000000000000000000000000000020103b000000000000000000000000000000000000000000000000000000000020103c000000000000000000000000000000000000000000000000000000000020103d000000000000000000000000000000000000000000000000000000000020103e000000000000000000000000000000000000000000000000000000000020103f4000000000000000000000000000000000000000000000000000000000002000010000000000000000000000000000000000000000000000000000000000201100000000000000000000000000000000000000000000000000000000000020110100000000000000000000000000000000000000000000000000000000002011020000000000000000000000000000000000000000000000000000000000201103000000000000000000000000000000000000000000000000000000000020110400000000000000000000000000000000000000000000000000000000002011050000000000000000000000000000000000000000000000000000000000201106000000000000000000000000000000000000000000000000000000000020110700000000000000000000000000000000000000000000000000000000002011080000000000000000000000000000000000000000000000000000000000201109000000000000000000000000000000000000000000000000000000000020110a000000000000000000000000000000000000000000000000000000000020110b000000000000000000000000000000000000000000000000000000000020110c000000000000000000000000000000000000000000000000000000000020110d000000000000000000000000000000000000000000000000000000000020110e000000000000000000000000000000000000000000000000000000000020110f0000000000000000000000000000000000000000000000000000000000201110000000000000000000000000000000000000000000000000000000000020111100000000000000000000000000000000000000000000000000000000002011120000000000000000000000000000000000000000000000000000000000201113000000000000000000000000000000000000000000000000000000000020111400000000000000000000000000000000000000000000000000000000002011150000000000000000000000000000000000000000000000000000000000201116000000000000000000000000000000000000000000000000000000000020111700000000000000000000000000000000000000000000000000000000002011180000000000000000000000000000000000000000000000000000000000201119000000000000000000000000000000000000000000000000000000000020111a000000000000000000000000000000000000000000000000000000000020111b000000000000000000000000000000000000000000000000000000000020111c000000000000000000000000000000000000000000000000000000000020111d000000000000000000000000000000000000000000000000000000000020111e000000000000000000000000000000000000000000000000000000000020111f0000000000000000000000000000000000000000000000000000000000201120000000000000000000000000000000000000000000000000000000000020112100000000000000000000000000000000000000000000000000000000002011220000000000000000000000000000000000000000000000000000000000201123000000000000000000000000000000000000000000000000000000000020112400000000000000000000000000000000000000000000000000000000002011250000000000000000000000000000000000000000000000000000000000201126000000000000000000000000000000000000000000000000000000000020112700000000000000000000000000000000000000000000000000000000002011280000000000000000000000000000000000000000000000000000000000201129000000000000000000000000000000000000000000000000000000000020112a000000000000000000000000000000000000000000000000000000000020112b000000000000000000000000000000000000000000000000000000000020112c000000000000000000000000000000000000000000000000000000000020112d000000000000000000000000000000000000000000000000000000000020112e000000000000000000000000000000000000000000000000000000000020112f0000000000000000000000000000000000000000000000000000000000201130000000000000000000000000000000000000000000000000000000000020113100000000000000000000000000000000000000000000000000000000002011320000000000000000000000000000000000000000000000000000000000201133000000000000000000000000000000000000000000000000000000000020113400000000000000000000000000000000000000000000000000000000002011350000000000000000000000000000000000000000000000000000000000201136000000000000000000000000000000000000000000000000000000000020113700000000000000000000000000000000000000000000000000000000002011380000000000000000000000000000000000000000000000000000000000201139000000000000000000000000000000000000000000000000000000000020113a000000000000000000000000000000000000000000000000000000000020113b000000000000000000000000000000000000000000000000000000000020113c000000000000000000000000000000000000000000000000000000000020113d000000000000000000000000000000000000000000000000000000000020113e0800c5cda1aecccd60f5934bf5febf6436d38a2432db7e73afd83565b18fa9fe0b00000b22d85a3328b833e4832338ba5a10bc52385f933972210680d70d99a937000eb86e98dd7397d722fd54df02e22cfd7cdf8e7cd30171a5996c658958fb5d00ab6afb8e4cb8573b9dece310902e4452cdd7abe23f6d22886a70e27d539b3600cbf7c2c23a9e933e5381ccdb621860de08ad42685da622e2cdc091804f39cc00a2799480b289c1131f92d38c986a595d4e7a009a4b90a18f495c1704e83dd000aa8d5f2a18eac686f24205fd92c1468aff612c455eadbe8541f645620c3e2300456c348e0b681c60b3f54b30db9ffd666600095fbf040c86c2011b6dea93dc400000000000000000000000000000000000000000000000000000000000202000000000000000000000000000000000000000000000000000000000000020200a0000000000000000000000000000000000000000000000000000000000202001000000000000000000000000000000000000000000000000000000000020200b0000000000000000000000000000000000000000000000000000000000202002000000000000000000000000000000000000000000000000000000000020200c0000000000000000000000000000000000000000000000000000000000202003000000000000000000000000000000000000000000000000000000000020200d0000000000000000000000000000000000000000000000000000000000202004000000000000000000000000000000000000000000000000000000000020200e0000000000000000000000000000000000000000000000000000000000202005000000000000000000000000000000000000000000000000000000000020200f00000000000000000000000000000000000000000000000000000000002020060000000000000000000000000000000000000000000000000000000000202010000000000000000000000000000000000000000000000000000000000020200700000000000000000000000000000000000000000000000000000000002020110000000000000000000000000000000000000000000000000000000000202008000000000000000000000000000000000000000000000000000000000020201200000000000000000000000000000000000000000000000000000000002020090000000000000000000000000000000000000000000000000000000000202013000000000000000000000000000000000000000000000000000000000020200a0000000000000000000000000000000000000000000000000000000000202014000000000000000000000000000000000000000000000000000000000020200b0000000000000000000000000000000000000000000000000000000000202015000000000000000000000000000000000000000000000000000000000020200c0000000000000000000000000000000000000000000000000000000000202016000000000000000000000000000000000000000000000000000000000020200d0000000000000000000000000000000000000000000000000000000000202017000000000000000000000000000000000000000000000000000000000020200e0000000000000000000000000000000000000000000000000000000000202018000000000000000000000000000000000000000000000000000000000020200f00000000000000000000000000000000000000000000000000000000002020190000000000000000000000000000000000000000000000000000000000202010000000000000000000000000000000000000000000000000000000000020201a0000000000000000000000000000000000000000000000000000000000202011000000000000000000000000000000000000000000000000000000000020201b0000000000000000000000000000000000000000000000000000000000202012000000000000000000000000000000000000000000000000000000000020201c0000000000000000000000000000000000000000000000000000000000202013000000000000000000000000000000000000000000000000000000000020201d0000000000000000000000000000000000000000000000000000000000202014000000000000000000000000000000000000000000000000000000000020201e0000000000000000000000000000000000000000000000000000000000202015000000000000000000000000000000000000000000000000000000000020201f00000000000000000000000000000000000000000000000000000000002020160000000000000000000000000000000000000000000000000000000000202020000000000000000000000000000000000000000000000000000000000020201700000000000000000000000000000000000000000000000000000000002020210000000000000000000000000000000000000000000000000000000000202018000000000000000000000000000000000000000000000000000000000020202200000000000000000000000000000000000000000000000000000000002020190000000000000000000000000000000000000000000000000000000000202023000000000000000000000000000000000000000000000000000000000020201a0000000000000000000000000000000000000000000000000000000000202024000000000000000000000000000000000000000000000000000000000020201b0000000000000000000000000000000000000000000000000000000000202025000000000000000000000000000000000000000000000000000000000020201c0000000000000000000000000000000000000000000000000000000000202026000000000000000000000000000000000000000000000000000000000020201d0000000000000000000000000000000000000000000000000000000000202027000000000000000000000000000000000000000000000000000000000020201e0000000000000000000000000000000000000000000000000000000000202028000000000000000000000000000000000000000000000000000000000020201f00000000000000000000000000000000000000000000000000000000002020290000000000000000000000000000000000000000000000000000000000202020000000000000000000000000000000000000000000000000000000000020202a0000000000000000000000000000000000000000000000000000000000202021000000000000000000000000000000000000000000000000000000000020202b0000000000000000000000000000000000000000000000000000000000202022000000000000000000000000000000000000000000000000000000000020202c0000000000000000000000000000000000000000000000000000000000202023000000000000000000000000000000000000000000000000000000000020202d0000000000000000000000000000000000000000000000000000000000202024000000000000000000000000000000000000000000000000000000000020202e0000000000000000000000000000000000000000000000000000000000202025000000000000000000000000000000000000000000000000000000000020202f00000000000000000000000000000000000000000000000000000000002020260000000000000000000000000000000000000000000000000000000000202030000000000000000000000000000000000000000000000000000000000020202700000000000000000000000000000000000000000000000000000000002020310000000000000000000000000000000000000000000000000000000000202028000000000000000000000000000000000000000000000000000000000020203200000000000000000000000000000000000000000000000000000000002020290000000000000000000000000000000000000000000000000000000000202033000000000000000000000000000000000000000000000000000000000020202a0000000000000000000000000000000000000000000000000000000000202034000000000000000000000000000000000000000000000000000000000020202b0000000000000000000000000000000000000000000000000000000000202035000000000000000000000000000000000000000000000000000000000020202c0000000000000000000000000000000000000000000000000000000000202036000000000000000000000000000000000000000000000000000000000020202d0000000000000000000000000000000000000000000000000000000000202037000000000000000000000000000000000000000000000000000000000020202e0000000000000000000000000000000000000000000000000000000000202038000000000000000000000000000000000000000000000000000000000020202f00000000000000000000000000000000000000000000000000000000002020390000000000000000000000000000000000000000000000000000000000202030000000000000000000000000000000000000000000000000000000000020203a0000000000000000000000000000000000000000000000000000000000202031000000000000000000000000000000000000000000000000000000000020203b0000000000000000000000000000000000000000000000000000000000202032000000000000000000000000000000000000000000000000000000000020203c0000000000000000000000000000000000000000000000000000000000202033000000000000000000000000000000000000000000000000000000000020203d0000000000000000000000000000000000000000000000000000000000202034000000000000000000000000000000000000000000000000000000000020203e0000000000000000000000000000000000000000000000000000000000202035000000000000000000000000000000000000000000000000000000000020203f00000000000000000000000000000000000000000000000000000000002020360000000000000000000000000000000000000000000000000000000000202040000000000000000000000000000000000000000000000000000000000020203700000000000000000000000000000000000000000000000000000000002020410000000000000000000000000000000000000000000000000000000000202038000000000000000000000000000000000000000000000000000000000020204200000000000000000000000000000000000000000000000000000000002020390000000000000000000000000000000000000000000000000000000000202043000000000000000000000000000000000000000000000000000000000020203a0000000000000000000000000000000000000000000000000000000000202044000000000000000000000000000000000000000000000000000000000020203b0000000000000000000000000000000000000000000000000000000000202045000000000000000000000000000000000000000000000000000000000020203c0000000000000000000000000000000000000000000000000000000000202046000000000000000000000000000000000000000000000000000000000020203d0000000000000000000000000000000000000000000000000000000000202047000000000000000000000000000000000000000000000000000000000020203e0000000000000000000000000000000000000000000000000000000000202048000000000000000000000000000000000000000000000000000000000020203f0000000000000000000000000000000000000000000000000000000000202049200000000000000000000000000000000000000000000000000000000000201700000000000000000000000000000000000000000000000000000000000020170100000000000000000000000000000000000000000000000000000000002017020000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000012000000000000000000000000000000000000000000000000000000000020170100000000000000000000000000000000000000000000000000000000002017020000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000001200000000000000000000000000000000000000000000000000000000002017020000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000120000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000012000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000001200000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000120000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000012000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000001200000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000120000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a00000012000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b00000012000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c00000012000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d00000012000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e00000012000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f00000012000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000120000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000012000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000001200000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000012000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000001200000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000120000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000012000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000001200000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000120000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a00000012000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b00000012000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c00000012000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d00000012000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d000000000000000000000000000000000000000000000000000000000020172e00000012000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d000000000000000000000000000000000000000000000000000000000020172e000000000000000000000000000000000000000000000000000000000020172f00000012000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d000000000000000000000000000000000000000000000000000000000020172e000000000000000000000000000000000000000000000000000000000020172f0000000000000000000000000000000000000000000000000000000000201730000000120000", + "body": "0x00000004001159149bb2e7af631a288f3427622ef3e9d2b2b7e353eb30eb31fbbf696831380000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000014100100000000000000000000000000000000000000000000000000000000001410020000000000000000000000000000000000000000000000000000000000141003000000000000000000000000000000000000000000000000000000000014100400000000000000000000000000000000000000000000000000000000001410050000000000000000000000000000000000000000000000000000000000141006000000000000000000000000000000000000000000000000000000000014100700000000000000000000000000000000000000000000000000000000001410080000000000000000000000000000000000000000000000000000000000141009000000000000000000000000000000000000000000000000000000000014100a000000000000000000000000000000000000000000000000000000000014100b000000000000000000000000000000000000000000000000000000000014100c000000000000000000000000000000000000000000000000000000000014100d000000000000000000000000000000000000000000000000000000000014100e000000000000000000000000000000000000000000000000000000000014100f0000000000000000000000000000000000000000000000000000000000141010000000000000000000000000000000000000000000000000000000000014101100000000000000000000000000000000000000000000000000000000001410120000000000000000000000000000000000000000000000000000000000141013000000000000000000000000000000000000000000000000000000000014101400000000000000000000000000000000000000000000000000000000001410150000000000000000000000000000000000000000000000000000000000141016000000000000000000000000000000000000000000000000000000000014101700000000000000000000000000000000000000000000000000000000001410180000000000000000000000000000000000000000000000000000000000141019000000000000000000000000000000000000000000000000000000000014101a000000000000000000000000000000000000000000000000000000000014101b000000000000000000000000000000000000000000000000000000000014101c000000000000000000000000000000000000000000000000000000000014101d000000000000000000000000000000000000000000000000000000000014101e000000000000000000000000000000000000000000000000000000000014101f0000000000000000000000000000000000000000000000000000000000141020000000000000000000000000000000000000000000000000000000000014102100000000000000000000000000000000000000000000000000000000001410220000000000000000000000000000000000000000000000000000000000141023000000000000000000000000000000000000000000000000000000000014102400000000000000000000000000000000000000000000000000000000001410250000000000000000000000000000000000000000000000000000000000141026000000000000000000000000000000000000000000000000000000000014102700000000000000000000000000000000000000000000000000000000001410280000000000000000000000000000000000000000000000000000000000141029000000000000000000000000000000000000000000000000000000000014102a000000000000000000000000000000000000000000000000000000000014102b000000000000000000000000000000000000000000000000000000000014102c000000000000000000000000000000000000000000000000000000000014102d000000000000000000000000000000000000000000000000000000000014102e000000000000000000000000000000000000000000000000000000000014102f0000000000000000000000000000000000000000000000000000000000141030000000000000000000000000000000000000000000000000000000000014103100000000000000000000000000000000000000000000000000000000001410320000000000000000000000000000000000000000000000000000000000141033000000000000000000000000000000000000000000000000000000000014103400000000000000000000000000000000000000000000000000000000001410350000000000000000000000000000000000000000000000000000000000141036000000000000000000000000000000000000000000000000000000000014103700000000000000000000000000000000000000000000000000000000001410380000000000000000000000000000000000000000000000000000000000141039000000000000000000000000000000000000000000000000000000000014103a000000000000000000000000000000000000000000000000000000000014103b000000000000000000000000000000000000000000000000000000000014103c000000000000000000000000000000000000000000000000000000000014103d000000000000000000000000000000000000000000000000000000000014103e000000000000000000000000000000000000000000000000000000000014103f4000000000000000000000000000000000000000000000000000000000001400010000000000000000000000000000000000000000000000000000000000141100000000000000000000000000000000000000000000000000000000000014110100000000000000000000000000000000000000000000000000000000001411020000000000000000000000000000000000000000000000000000000000141103000000000000000000000000000000000000000000000000000000000014110400000000000000000000000000000000000000000000000000000000001411050000000000000000000000000000000000000000000000000000000000141106000000000000000000000000000000000000000000000000000000000014110700000000000000000000000000000000000000000000000000000000001411080000000000000000000000000000000000000000000000000000000000141109000000000000000000000000000000000000000000000000000000000014110a000000000000000000000000000000000000000000000000000000000014110b000000000000000000000000000000000000000000000000000000000014110c000000000000000000000000000000000000000000000000000000000014110d000000000000000000000000000000000000000000000000000000000014110e000000000000000000000000000000000000000000000000000000000014110f0000000000000000000000000000000000000000000000000000000000141110000000000000000000000000000000000000000000000000000000000014111100000000000000000000000000000000000000000000000000000000001411120000000000000000000000000000000000000000000000000000000000141113000000000000000000000000000000000000000000000000000000000014111400000000000000000000000000000000000000000000000000000000001411150000000000000000000000000000000000000000000000000000000000141116000000000000000000000000000000000000000000000000000000000014111700000000000000000000000000000000000000000000000000000000001411180000000000000000000000000000000000000000000000000000000000141119000000000000000000000000000000000000000000000000000000000014111a000000000000000000000000000000000000000000000000000000000014111b000000000000000000000000000000000000000000000000000000000014111c000000000000000000000000000000000000000000000000000000000014111d000000000000000000000000000000000000000000000000000000000014111e000000000000000000000000000000000000000000000000000000000014111f0000000000000000000000000000000000000000000000000000000000141120000000000000000000000000000000000000000000000000000000000014112100000000000000000000000000000000000000000000000000000000001411220000000000000000000000000000000000000000000000000000000000141123000000000000000000000000000000000000000000000000000000000014112400000000000000000000000000000000000000000000000000000000001411250000000000000000000000000000000000000000000000000000000000141126000000000000000000000000000000000000000000000000000000000014112700000000000000000000000000000000000000000000000000000000001411280000000000000000000000000000000000000000000000000000000000141129000000000000000000000000000000000000000000000000000000000014112a000000000000000000000000000000000000000000000000000000000014112b000000000000000000000000000000000000000000000000000000000014112c000000000000000000000000000000000000000000000000000000000014112d000000000000000000000000000000000000000000000000000000000014112e000000000000000000000000000000000000000000000000000000000014112f0000000000000000000000000000000000000000000000000000000000141130000000000000000000000000000000000000000000000000000000000014113100000000000000000000000000000000000000000000000000000000001411320000000000000000000000000000000000000000000000000000000000141133000000000000000000000000000000000000000000000000000000000014113400000000000000000000000000000000000000000000000000000000001411350000000000000000000000000000000000000000000000000000000000141136000000000000000000000000000000000000000000000000000000000014113700000000000000000000000000000000000000000000000000000000001411380000000000000000000000000000000000000000000000000000000000141139000000000000000000000000000000000000000000000000000000000014113a000000000000000000000000000000000000000000000000000000000014113b000000000000000000000000000000000000000000000000000000000014113c000000000000000000000000000000000000000000000000000000000014113d000000000000000000000000000000000000000000000000000000000014113e0800909cc17c43527169c7e00afb0689bece8188c72cc639653228b6105711eed600b69920b3aeffe624a7afcac6fb3f92903a159a0681cdc099d9d4986c93eaf40082fa64dfc2f93483b450a70257787ebe064087886d913be551cfc08ec384640006ec33291acabc8e53a5692f98b3fa8aca6b7f9744d7b6c695adc69ddc33d10049c7a932487a02b944fc2118da831fbf4981966c03b23732fa860a5991cb1400ce527b2ce224692eea13a044b94951a6959fc6a6e5e18109f51f088ec4ed74002c10212c6d202950f11214205f0e8ecb45c45ae9f8f00d2219c4a5d6b7823e00bdfa2148e874b4efa47fc9c085da10c2397e21e6940b362327320d31909d2d400000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142001000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142002000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142003000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142004000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142005000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420060000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014200700000000000000000000000000000000000000000000000000000000001420110000000000000000000000000000000000000000000000000000000000142008000000000000000000000000000000000000000000000000000000000014201200000000000000000000000000000000000000000000000000000000001420090000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142016000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142017000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142011000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142012000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420160000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014201700000000000000000000000000000000000000000000000000000000001420210000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014202200000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142026000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142027000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142021000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142022000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420260000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014202700000000000000000000000000000000000000000000000000000000001420310000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014203200000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142036000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142037000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142031000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142032000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014203f00000000000000000000000000000000000000000000000000000000001420360000000000000000000000000000000000000000000000000000000000142040000000000000000000000000000000000000000000000000000000000014203700000000000000000000000000000000000000000000000000000000001420410000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014204200000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142043000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142044000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142045000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142046000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142047000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142048000000000000000000000000000000000000000000000000000000000014203f0000000000000000000000000000000000000000000000000000000000142049200000000000000000000000000000000000000000000000000000000000141700000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000012000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000001200000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000120000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000012000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000001200000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000120000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000012000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000001200000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000120000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a00000012000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b00000012000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c00000012000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d00000012000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e00000012000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f00000012000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000120000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000012000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000001200000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000012000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000001200000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000120000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000012000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000001200000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000120000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a00000012000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b00000012000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c00000012000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d00000012000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e00000012000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f00000012000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f000000000000000000000000000000000000000000000000000000000014173000000012000000091c4e8f997e2ebfea689f6cc36e0f2859077bdcf429f6c1278bf1f330413f1a0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000181000000000000000000000000000000000000000000000000000000000000018100100000000000000000000000000000000000000000000000000000000001810020000000000000000000000000000000000000000000000000000000000181003000000000000000000000000000000000000000000000000000000000018100400000000000000000000000000000000000000000000000000000000001810050000000000000000000000000000000000000000000000000000000000181006000000000000000000000000000000000000000000000000000000000018100700000000000000000000000000000000000000000000000000000000001810080000000000000000000000000000000000000000000000000000000000181009000000000000000000000000000000000000000000000000000000000018100a000000000000000000000000000000000000000000000000000000000018100b000000000000000000000000000000000000000000000000000000000018100c000000000000000000000000000000000000000000000000000000000018100d000000000000000000000000000000000000000000000000000000000018100e000000000000000000000000000000000000000000000000000000000018100f0000000000000000000000000000000000000000000000000000000000181010000000000000000000000000000000000000000000000000000000000018101100000000000000000000000000000000000000000000000000000000001810120000000000000000000000000000000000000000000000000000000000181013000000000000000000000000000000000000000000000000000000000018101400000000000000000000000000000000000000000000000000000000001810150000000000000000000000000000000000000000000000000000000000181016000000000000000000000000000000000000000000000000000000000018101700000000000000000000000000000000000000000000000000000000001810180000000000000000000000000000000000000000000000000000000000181019000000000000000000000000000000000000000000000000000000000018101a000000000000000000000000000000000000000000000000000000000018101b000000000000000000000000000000000000000000000000000000000018101c000000000000000000000000000000000000000000000000000000000018101d000000000000000000000000000000000000000000000000000000000018101e000000000000000000000000000000000000000000000000000000000018101f0000000000000000000000000000000000000000000000000000000000181020000000000000000000000000000000000000000000000000000000000018102100000000000000000000000000000000000000000000000000000000001810220000000000000000000000000000000000000000000000000000000000181023000000000000000000000000000000000000000000000000000000000018102400000000000000000000000000000000000000000000000000000000001810250000000000000000000000000000000000000000000000000000000000181026000000000000000000000000000000000000000000000000000000000018102700000000000000000000000000000000000000000000000000000000001810280000000000000000000000000000000000000000000000000000000000181029000000000000000000000000000000000000000000000000000000000018102a000000000000000000000000000000000000000000000000000000000018102b000000000000000000000000000000000000000000000000000000000018102c000000000000000000000000000000000000000000000000000000000018102d000000000000000000000000000000000000000000000000000000000018102e000000000000000000000000000000000000000000000000000000000018102f0000000000000000000000000000000000000000000000000000000000181030000000000000000000000000000000000000000000000000000000000018103100000000000000000000000000000000000000000000000000000000001810320000000000000000000000000000000000000000000000000000000000181033000000000000000000000000000000000000000000000000000000000018103400000000000000000000000000000000000000000000000000000000001810350000000000000000000000000000000000000000000000000000000000181036000000000000000000000000000000000000000000000000000000000018103700000000000000000000000000000000000000000000000000000000001810380000000000000000000000000000000000000000000000000000000000181039000000000000000000000000000000000000000000000000000000000018103a000000000000000000000000000000000000000000000000000000000018103b000000000000000000000000000000000000000000000000000000000018103c000000000000000000000000000000000000000000000000000000000018103d000000000000000000000000000000000000000000000000000000000018103e000000000000000000000000000000000000000000000000000000000018103f4000000000000000000000000000000000000000000000000000000000001800010000000000000000000000000000000000000000000000000000000000181100000000000000000000000000000000000000000000000000000000000018110100000000000000000000000000000000000000000000000000000000001811020000000000000000000000000000000000000000000000000000000000181103000000000000000000000000000000000000000000000000000000000018110400000000000000000000000000000000000000000000000000000000001811050000000000000000000000000000000000000000000000000000000000181106000000000000000000000000000000000000000000000000000000000018110700000000000000000000000000000000000000000000000000000000001811080000000000000000000000000000000000000000000000000000000000181109000000000000000000000000000000000000000000000000000000000018110a000000000000000000000000000000000000000000000000000000000018110b000000000000000000000000000000000000000000000000000000000018110c000000000000000000000000000000000000000000000000000000000018110d000000000000000000000000000000000000000000000000000000000018110e000000000000000000000000000000000000000000000000000000000018110f0000000000000000000000000000000000000000000000000000000000181110000000000000000000000000000000000000000000000000000000000018111100000000000000000000000000000000000000000000000000000000001811120000000000000000000000000000000000000000000000000000000000181113000000000000000000000000000000000000000000000000000000000018111400000000000000000000000000000000000000000000000000000000001811150000000000000000000000000000000000000000000000000000000000181116000000000000000000000000000000000000000000000000000000000018111700000000000000000000000000000000000000000000000000000000001811180000000000000000000000000000000000000000000000000000000000181119000000000000000000000000000000000000000000000000000000000018111a000000000000000000000000000000000000000000000000000000000018111b000000000000000000000000000000000000000000000000000000000018111c000000000000000000000000000000000000000000000000000000000018111d000000000000000000000000000000000000000000000000000000000018111e000000000000000000000000000000000000000000000000000000000018111f0000000000000000000000000000000000000000000000000000000000181120000000000000000000000000000000000000000000000000000000000018112100000000000000000000000000000000000000000000000000000000001811220000000000000000000000000000000000000000000000000000000000181123000000000000000000000000000000000000000000000000000000000018112400000000000000000000000000000000000000000000000000000000001811250000000000000000000000000000000000000000000000000000000000181126000000000000000000000000000000000000000000000000000000000018112700000000000000000000000000000000000000000000000000000000001811280000000000000000000000000000000000000000000000000000000000181129000000000000000000000000000000000000000000000000000000000018112a000000000000000000000000000000000000000000000000000000000018112b000000000000000000000000000000000000000000000000000000000018112c000000000000000000000000000000000000000000000000000000000018112d000000000000000000000000000000000000000000000000000000000018112e000000000000000000000000000000000000000000000000000000000018112f0000000000000000000000000000000000000000000000000000000000181130000000000000000000000000000000000000000000000000000000000018113100000000000000000000000000000000000000000000000000000000001811320000000000000000000000000000000000000000000000000000000000181133000000000000000000000000000000000000000000000000000000000018113400000000000000000000000000000000000000000000000000000000001811350000000000000000000000000000000000000000000000000000000000181136000000000000000000000000000000000000000000000000000000000018113700000000000000000000000000000000000000000000000000000000001811380000000000000000000000000000000000000000000000000000000000181139000000000000000000000000000000000000000000000000000000000018113a000000000000000000000000000000000000000000000000000000000018113b000000000000000000000000000000000000000000000000000000000018113c000000000000000000000000000000000000000000000000000000000018113d000000000000000000000000000000000000000000000000000000000018113e0800ed21a779ab96f285e847c4b810c0692e93e33df10c20b37185818c9423589500cc87cecbe1d2be3bfe6902c054c96542edb5fc279432b611f6c8184eba82620010198e1e329df2cd9e4a770e7f122b5057175e8b9e75154a2a2d5101b5533f00bdad9df9640b18707936538939e55b4124bfc8d19e61aa956f88cf89bbb589008233c4a0e55d3d6bbad35c87c1c72f613dc84d0dc55a8c142f76d0e242a62300ca537a3d430b912e16a66bbc20a6ce0e945f86e52d6d17d7a98c3475b8ac4c00a5e3acf9da6cf9fee972919bb2abca33afc9d4f76e6d8505bd2a4ff6a6328e00f8f44ba5887750038544241a005dd35d95ad33cdcb2cf5150830017c1c7cdc400000000000000000000000000000000000000000000000000000000000182000000000000000000000000000000000000000000000000000000000000018200a0000000000000000000000000000000000000000000000000000000000182001000000000000000000000000000000000000000000000000000000000018200b0000000000000000000000000000000000000000000000000000000000182002000000000000000000000000000000000000000000000000000000000018200c0000000000000000000000000000000000000000000000000000000000182003000000000000000000000000000000000000000000000000000000000018200d0000000000000000000000000000000000000000000000000000000000182004000000000000000000000000000000000000000000000000000000000018200e0000000000000000000000000000000000000000000000000000000000182005000000000000000000000000000000000000000000000000000000000018200f00000000000000000000000000000000000000000000000000000000001820060000000000000000000000000000000000000000000000000000000000182010000000000000000000000000000000000000000000000000000000000018200700000000000000000000000000000000000000000000000000000000001820110000000000000000000000000000000000000000000000000000000000182008000000000000000000000000000000000000000000000000000000000018201200000000000000000000000000000000000000000000000000000000001820090000000000000000000000000000000000000000000000000000000000182013000000000000000000000000000000000000000000000000000000000018200a0000000000000000000000000000000000000000000000000000000000182014000000000000000000000000000000000000000000000000000000000018200b0000000000000000000000000000000000000000000000000000000000182015000000000000000000000000000000000000000000000000000000000018200c0000000000000000000000000000000000000000000000000000000000182016000000000000000000000000000000000000000000000000000000000018200d0000000000000000000000000000000000000000000000000000000000182017000000000000000000000000000000000000000000000000000000000018200e0000000000000000000000000000000000000000000000000000000000182018000000000000000000000000000000000000000000000000000000000018200f00000000000000000000000000000000000000000000000000000000001820190000000000000000000000000000000000000000000000000000000000182010000000000000000000000000000000000000000000000000000000000018201a0000000000000000000000000000000000000000000000000000000000182011000000000000000000000000000000000000000000000000000000000018201b0000000000000000000000000000000000000000000000000000000000182012000000000000000000000000000000000000000000000000000000000018201c0000000000000000000000000000000000000000000000000000000000182013000000000000000000000000000000000000000000000000000000000018201d0000000000000000000000000000000000000000000000000000000000182014000000000000000000000000000000000000000000000000000000000018201e0000000000000000000000000000000000000000000000000000000000182015000000000000000000000000000000000000000000000000000000000018201f00000000000000000000000000000000000000000000000000000000001820160000000000000000000000000000000000000000000000000000000000182020000000000000000000000000000000000000000000000000000000000018201700000000000000000000000000000000000000000000000000000000001820210000000000000000000000000000000000000000000000000000000000182018000000000000000000000000000000000000000000000000000000000018202200000000000000000000000000000000000000000000000000000000001820190000000000000000000000000000000000000000000000000000000000182023000000000000000000000000000000000000000000000000000000000018201a0000000000000000000000000000000000000000000000000000000000182024000000000000000000000000000000000000000000000000000000000018201b0000000000000000000000000000000000000000000000000000000000182025000000000000000000000000000000000000000000000000000000000018201c0000000000000000000000000000000000000000000000000000000000182026000000000000000000000000000000000000000000000000000000000018201d0000000000000000000000000000000000000000000000000000000000182027000000000000000000000000000000000000000000000000000000000018201e0000000000000000000000000000000000000000000000000000000000182028000000000000000000000000000000000000000000000000000000000018201f00000000000000000000000000000000000000000000000000000000001820290000000000000000000000000000000000000000000000000000000000182020000000000000000000000000000000000000000000000000000000000018202a0000000000000000000000000000000000000000000000000000000000182021000000000000000000000000000000000000000000000000000000000018202b0000000000000000000000000000000000000000000000000000000000182022000000000000000000000000000000000000000000000000000000000018202c0000000000000000000000000000000000000000000000000000000000182023000000000000000000000000000000000000000000000000000000000018202d0000000000000000000000000000000000000000000000000000000000182024000000000000000000000000000000000000000000000000000000000018202e0000000000000000000000000000000000000000000000000000000000182025000000000000000000000000000000000000000000000000000000000018202f00000000000000000000000000000000000000000000000000000000001820260000000000000000000000000000000000000000000000000000000000182030000000000000000000000000000000000000000000000000000000000018202700000000000000000000000000000000000000000000000000000000001820310000000000000000000000000000000000000000000000000000000000182028000000000000000000000000000000000000000000000000000000000018203200000000000000000000000000000000000000000000000000000000001820290000000000000000000000000000000000000000000000000000000000182033000000000000000000000000000000000000000000000000000000000018202a0000000000000000000000000000000000000000000000000000000000182034000000000000000000000000000000000000000000000000000000000018202b0000000000000000000000000000000000000000000000000000000000182035000000000000000000000000000000000000000000000000000000000018202c0000000000000000000000000000000000000000000000000000000000182036000000000000000000000000000000000000000000000000000000000018202d0000000000000000000000000000000000000000000000000000000000182037000000000000000000000000000000000000000000000000000000000018202e0000000000000000000000000000000000000000000000000000000000182038000000000000000000000000000000000000000000000000000000000018202f00000000000000000000000000000000000000000000000000000000001820390000000000000000000000000000000000000000000000000000000000182030000000000000000000000000000000000000000000000000000000000018203a0000000000000000000000000000000000000000000000000000000000182031000000000000000000000000000000000000000000000000000000000018203b0000000000000000000000000000000000000000000000000000000000182032000000000000000000000000000000000000000000000000000000000018203c0000000000000000000000000000000000000000000000000000000000182033000000000000000000000000000000000000000000000000000000000018203d0000000000000000000000000000000000000000000000000000000000182034000000000000000000000000000000000000000000000000000000000018203e0000000000000000000000000000000000000000000000000000000000182035000000000000000000000000000000000000000000000000000000000018203f00000000000000000000000000000000000000000000000000000000001820360000000000000000000000000000000000000000000000000000000000182040000000000000000000000000000000000000000000000000000000000018203700000000000000000000000000000000000000000000000000000000001820410000000000000000000000000000000000000000000000000000000000182038000000000000000000000000000000000000000000000000000000000018204200000000000000000000000000000000000000000000000000000000001820390000000000000000000000000000000000000000000000000000000000182043000000000000000000000000000000000000000000000000000000000018203a0000000000000000000000000000000000000000000000000000000000182044000000000000000000000000000000000000000000000000000000000018203b0000000000000000000000000000000000000000000000000000000000182045000000000000000000000000000000000000000000000000000000000018203c0000000000000000000000000000000000000000000000000000000000182046000000000000000000000000000000000000000000000000000000000018203d0000000000000000000000000000000000000000000000000000000000182047000000000000000000000000000000000000000000000000000000000018203e0000000000000000000000000000000000000000000000000000000000182048000000000000000000000000000000000000000000000000000000000018203f0000000000000000000000000000000000000000000000000000000000182049200000000000000000000000000000000000000000000000000000000000181700000000000000000000000000000000000000000000000000000000000018170100000000000000000000000000000000000000000000000000000000001817020000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000012000000000000000000000000000000000000000000000000000000000018170100000000000000000000000000000000000000000000000000000000001817020000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000001200000000000000000000000000000000000000000000000000000000001817020000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000120000000000000000000000000000000000000000000000000000000000181703000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000012000000000000000000000000000000000000000000000000000000000018170400000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000001200000000000000000000000000000000000000000000000000000000001817050000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000120000000000000000000000000000000000000000000000000000000000181706000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000012000000000000000000000000000000000000000000000000000000000018170700000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000001200000000000000000000000000000000000000000000000000000000001817080000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000120000000000000000000000000000000000000000000000000000000000181709000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a00000012000000000000000000000000000000000000000000000000000000000018170a000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b00000012000000000000000000000000000000000000000000000000000000000018170b000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c00000012000000000000000000000000000000000000000000000000000000000018170c000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d00000012000000000000000000000000000000000000000000000000000000000018170d000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e00000012000000000000000000000000000000000000000000000000000000000018170e000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f00000012000000000000000000000000000000000000000000000000000000000018170f0000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000120000000000000000000000000000000000000000000000000000000000181710000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000012000000000000000000000000000000000000000000000000000000000018171100000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000001200000000000000000000000000000000000000000000000000000000001817120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000120000000000000000000000000000000000000000000000000000000000181713000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000012000000000000000000000000000000000000000000000000000000000018171400000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000001200000000000000000000000000000000000000000000000000000000001817150000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000120000000000000000000000000000000000000000000000000000000000181716000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000012000000000000000000000000000000000000000000000000000000000018171700000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000001200000000000000000000000000000000000000000000000000000000001817180000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000120000000000000000000000000000000000000000000000000000000000181719000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a00000012000000000000000000000000000000000000000000000000000000000018171a000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b00000012000000000000000000000000000000000000000000000000000000000018171b000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c00000012000000000000000000000000000000000000000000000000000000000018171c000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d00000012000000000000000000000000000000000000000000000000000000000018171d000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d000000000000000000000000000000000000000000000000000000000018172e00000012000000000000000000000000000000000000000000000000000000000018171e000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d000000000000000000000000000000000000000000000000000000000018172e000000000000000000000000000000000000000000000000000000000018172f00000012000000000000000000000000000000000000000000000000000000000018171f0000000000000000000000000000000000000000000000000000000000181720000000000000000000000000000000000000000000000000000000000018172100000000000000000000000000000000000000000000000000000000001817220000000000000000000000000000000000000000000000000000000000181723000000000000000000000000000000000000000000000000000000000018172400000000000000000000000000000000000000000000000000000000001817250000000000000000000000000000000000000000000000000000000000181726000000000000000000000000000000000000000000000000000000000018172700000000000000000000000000000000000000000000000000000000001817280000000000000000000000000000000000000000000000000000000000181729000000000000000000000000000000000000000000000000000000000018172a000000000000000000000000000000000000000000000000000000000018172b000000000000000000000000000000000000000000000000000000000018172c000000000000000000000000000000000000000000000000000000000018172d000000000000000000000000000000000000000000000000000000000018172e000000000000000000000000000000000000000000000000000000000018172f00000000000000000000000000000000000000000000000000000000001817300000001200000005bd5dfac8b00824427838d654728be0539e9d0bdc6f96b11a5eb84546927fbf00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c100100000000000000000000000000000000000000000000000000000000001c100200000000000000000000000000000000000000000000000000000000001c100300000000000000000000000000000000000000000000000000000000001c100400000000000000000000000000000000000000000000000000000000001c100500000000000000000000000000000000000000000000000000000000001c100600000000000000000000000000000000000000000000000000000000001c100700000000000000000000000000000000000000000000000000000000001c100800000000000000000000000000000000000000000000000000000000001c100900000000000000000000000000000000000000000000000000000000001c100a00000000000000000000000000000000000000000000000000000000001c100b00000000000000000000000000000000000000000000000000000000001c100c00000000000000000000000000000000000000000000000000000000001c100d00000000000000000000000000000000000000000000000000000000001c100e00000000000000000000000000000000000000000000000000000000001c100f00000000000000000000000000000000000000000000000000000000001c101000000000000000000000000000000000000000000000000000000000001c101100000000000000000000000000000000000000000000000000000000001c101200000000000000000000000000000000000000000000000000000000001c101300000000000000000000000000000000000000000000000000000000001c101400000000000000000000000000000000000000000000000000000000001c101500000000000000000000000000000000000000000000000000000000001c101600000000000000000000000000000000000000000000000000000000001c101700000000000000000000000000000000000000000000000000000000001c101800000000000000000000000000000000000000000000000000000000001c101900000000000000000000000000000000000000000000000000000000001c101a00000000000000000000000000000000000000000000000000000000001c101b00000000000000000000000000000000000000000000000000000000001c101c00000000000000000000000000000000000000000000000000000000001c101d00000000000000000000000000000000000000000000000000000000001c101e00000000000000000000000000000000000000000000000000000000001c101f00000000000000000000000000000000000000000000000000000000001c102000000000000000000000000000000000000000000000000000000000001c102100000000000000000000000000000000000000000000000000000000001c102200000000000000000000000000000000000000000000000000000000001c102300000000000000000000000000000000000000000000000000000000001c102400000000000000000000000000000000000000000000000000000000001c102500000000000000000000000000000000000000000000000000000000001c102600000000000000000000000000000000000000000000000000000000001c102700000000000000000000000000000000000000000000000000000000001c102800000000000000000000000000000000000000000000000000000000001c102900000000000000000000000000000000000000000000000000000000001c102a00000000000000000000000000000000000000000000000000000000001c102b00000000000000000000000000000000000000000000000000000000001c102c00000000000000000000000000000000000000000000000000000000001c102d00000000000000000000000000000000000000000000000000000000001c102e00000000000000000000000000000000000000000000000000000000001c102f00000000000000000000000000000000000000000000000000000000001c103000000000000000000000000000000000000000000000000000000000001c103100000000000000000000000000000000000000000000000000000000001c103200000000000000000000000000000000000000000000000000000000001c103300000000000000000000000000000000000000000000000000000000001c103400000000000000000000000000000000000000000000000000000000001c103500000000000000000000000000000000000000000000000000000000001c103600000000000000000000000000000000000000000000000000000000001c103700000000000000000000000000000000000000000000000000000000001c103800000000000000000000000000000000000000000000000000000000001c103900000000000000000000000000000000000000000000000000000000001c103a00000000000000000000000000000000000000000000000000000000001c103b00000000000000000000000000000000000000000000000000000000001c103c00000000000000000000000000000000000000000000000000000000001c103d00000000000000000000000000000000000000000000000000000000001c103e00000000000000000000000000000000000000000000000000000000001c103f4000000000000000000000000000000000000000000000000000000000001c000100000000000000000000000000000000000000000000000000000000001c110000000000000000000000000000000000000000000000000000000000001c110100000000000000000000000000000000000000000000000000000000001c110200000000000000000000000000000000000000000000000000000000001c110300000000000000000000000000000000000000000000000000000000001c110400000000000000000000000000000000000000000000000000000000001c110500000000000000000000000000000000000000000000000000000000001c110600000000000000000000000000000000000000000000000000000000001c110700000000000000000000000000000000000000000000000000000000001c110800000000000000000000000000000000000000000000000000000000001c110900000000000000000000000000000000000000000000000000000000001c110a00000000000000000000000000000000000000000000000000000000001c110b00000000000000000000000000000000000000000000000000000000001c110c00000000000000000000000000000000000000000000000000000000001c110d00000000000000000000000000000000000000000000000000000000001c110e00000000000000000000000000000000000000000000000000000000001c110f00000000000000000000000000000000000000000000000000000000001c111000000000000000000000000000000000000000000000000000000000001c111100000000000000000000000000000000000000000000000000000000001c111200000000000000000000000000000000000000000000000000000000001c111300000000000000000000000000000000000000000000000000000000001c111400000000000000000000000000000000000000000000000000000000001c111500000000000000000000000000000000000000000000000000000000001c111600000000000000000000000000000000000000000000000000000000001c111700000000000000000000000000000000000000000000000000000000001c111800000000000000000000000000000000000000000000000000000000001c111900000000000000000000000000000000000000000000000000000000001c111a00000000000000000000000000000000000000000000000000000000001c111b00000000000000000000000000000000000000000000000000000000001c111c00000000000000000000000000000000000000000000000000000000001c111d00000000000000000000000000000000000000000000000000000000001c111e00000000000000000000000000000000000000000000000000000000001c111f00000000000000000000000000000000000000000000000000000000001c112000000000000000000000000000000000000000000000000000000000001c112100000000000000000000000000000000000000000000000000000000001c112200000000000000000000000000000000000000000000000000000000001c112300000000000000000000000000000000000000000000000000000000001c112400000000000000000000000000000000000000000000000000000000001c112500000000000000000000000000000000000000000000000000000000001c112600000000000000000000000000000000000000000000000000000000001c112700000000000000000000000000000000000000000000000000000000001c112800000000000000000000000000000000000000000000000000000000001c112900000000000000000000000000000000000000000000000000000000001c112a00000000000000000000000000000000000000000000000000000000001c112b00000000000000000000000000000000000000000000000000000000001c112c00000000000000000000000000000000000000000000000000000000001c112d00000000000000000000000000000000000000000000000000000000001c112e00000000000000000000000000000000000000000000000000000000001c112f00000000000000000000000000000000000000000000000000000000001c113000000000000000000000000000000000000000000000000000000000001c113100000000000000000000000000000000000000000000000000000000001c113200000000000000000000000000000000000000000000000000000000001c113300000000000000000000000000000000000000000000000000000000001c113400000000000000000000000000000000000000000000000000000000001c113500000000000000000000000000000000000000000000000000000000001c113600000000000000000000000000000000000000000000000000000000001c113700000000000000000000000000000000000000000000000000000000001c113800000000000000000000000000000000000000000000000000000000001c113900000000000000000000000000000000000000000000000000000000001c113a00000000000000000000000000000000000000000000000000000000001c113b00000000000000000000000000000000000000000000000000000000001c113c00000000000000000000000000000000000000000000000000000000001c113d00000000000000000000000000000000000000000000000000000000001c113e0800cc70b38a8293eedef73e19fc542e56948afde16c4c52f2ae3c7871b37f7c1400147a07d34c4d0e7207c8b259da78058b91487178e5bc3b3a84129532b1365d007f784027570b5328a65d7609784a5b6f6bf338427bf60417e4c6e7005efdfd00ad3aa60c040e8c1e78a6d27fef71621206d6a93714efe6e8396081cd75c83700f8197741b6e2876a0aba1045ee30400b321d1c023e9cb028ca3d3eb66febbc005d0465711b95fc343e78a12a27a0c521a91b2667ce01499a2af43f623e9e5700bebcdb8f7891ca86454bb1fac39c090063069ce05e9f41f57c0ad58d7b53e800508098d1a5bf544a85accea193677377fe4aa35b67002d6a946c3870252a754000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c200a00000000000000000000000000000000000000000000000000000000001c200100000000000000000000000000000000000000000000000000000000001c200b00000000000000000000000000000000000000000000000000000000001c200200000000000000000000000000000000000000000000000000000000001c200c00000000000000000000000000000000000000000000000000000000001c200300000000000000000000000000000000000000000000000000000000001c200d00000000000000000000000000000000000000000000000000000000001c200400000000000000000000000000000000000000000000000000000000001c200e00000000000000000000000000000000000000000000000000000000001c200500000000000000000000000000000000000000000000000000000000001c200f00000000000000000000000000000000000000000000000000000000001c200600000000000000000000000000000000000000000000000000000000001c201000000000000000000000000000000000000000000000000000000000001c200700000000000000000000000000000000000000000000000000000000001c201100000000000000000000000000000000000000000000000000000000001c200800000000000000000000000000000000000000000000000000000000001c201200000000000000000000000000000000000000000000000000000000001c200900000000000000000000000000000000000000000000000000000000001c201300000000000000000000000000000000000000000000000000000000001c200a00000000000000000000000000000000000000000000000000000000001c201400000000000000000000000000000000000000000000000000000000001c200b00000000000000000000000000000000000000000000000000000000001c201500000000000000000000000000000000000000000000000000000000001c200c00000000000000000000000000000000000000000000000000000000001c201600000000000000000000000000000000000000000000000000000000001c200d00000000000000000000000000000000000000000000000000000000001c201700000000000000000000000000000000000000000000000000000000001c200e00000000000000000000000000000000000000000000000000000000001c201800000000000000000000000000000000000000000000000000000000001c200f00000000000000000000000000000000000000000000000000000000001c201900000000000000000000000000000000000000000000000000000000001c201000000000000000000000000000000000000000000000000000000000001c201a00000000000000000000000000000000000000000000000000000000001c201100000000000000000000000000000000000000000000000000000000001c201b00000000000000000000000000000000000000000000000000000000001c201200000000000000000000000000000000000000000000000000000000001c201c00000000000000000000000000000000000000000000000000000000001c201300000000000000000000000000000000000000000000000000000000001c201d00000000000000000000000000000000000000000000000000000000001c201400000000000000000000000000000000000000000000000000000000001c201e00000000000000000000000000000000000000000000000000000000001c201500000000000000000000000000000000000000000000000000000000001c201f00000000000000000000000000000000000000000000000000000000001c201600000000000000000000000000000000000000000000000000000000001c202000000000000000000000000000000000000000000000000000000000001c201700000000000000000000000000000000000000000000000000000000001c202100000000000000000000000000000000000000000000000000000000001c201800000000000000000000000000000000000000000000000000000000001c202200000000000000000000000000000000000000000000000000000000001c201900000000000000000000000000000000000000000000000000000000001c202300000000000000000000000000000000000000000000000000000000001c201a00000000000000000000000000000000000000000000000000000000001c202400000000000000000000000000000000000000000000000000000000001c201b00000000000000000000000000000000000000000000000000000000001c202500000000000000000000000000000000000000000000000000000000001c201c00000000000000000000000000000000000000000000000000000000001c202600000000000000000000000000000000000000000000000000000000001c201d00000000000000000000000000000000000000000000000000000000001c202700000000000000000000000000000000000000000000000000000000001c201e00000000000000000000000000000000000000000000000000000000001c202800000000000000000000000000000000000000000000000000000000001c201f00000000000000000000000000000000000000000000000000000000001c202900000000000000000000000000000000000000000000000000000000001c202000000000000000000000000000000000000000000000000000000000001c202a00000000000000000000000000000000000000000000000000000000001c202100000000000000000000000000000000000000000000000000000000001c202b00000000000000000000000000000000000000000000000000000000001c202200000000000000000000000000000000000000000000000000000000001c202c00000000000000000000000000000000000000000000000000000000001c202300000000000000000000000000000000000000000000000000000000001c202d00000000000000000000000000000000000000000000000000000000001c202400000000000000000000000000000000000000000000000000000000001c202e00000000000000000000000000000000000000000000000000000000001c202500000000000000000000000000000000000000000000000000000000001c202f00000000000000000000000000000000000000000000000000000000001c202600000000000000000000000000000000000000000000000000000000001c203000000000000000000000000000000000000000000000000000000000001c202700000000000000000000000000000000000000000000000000000000001c203100000000000000000000000000000000000000000000000000000000001c202800000000000000000000000000000000000000000000000000000000001c203200000000000000000000000000000000000000000000000000000000001c202900000000000000000000000000000000000000000000000000000000001c203300000000000000000000000000000000000000000000000000000000001c202a00000000000000000000000000000000000000000000000000000000001c203400000000000000000000000000000000000000000000000000000000001c202b00000000000000000000000000000000000000000000000000000000001c203500000000000000000000000000000000000000000000000000000000001c202c00000000000000000000000000000000000000000000000000000000001c203600000000000000000000000000000000000000000000000000000000001c202d00000000000000000000000000000000000000000000000000000000001c203700000000000000000000000000000000000000000000000000000000001c202e00000000000000000000000000000000000000000000000000000000001c203800000000000000000000000000000000000000000000000000000000001c202f00000000000000000000000000000000000000000000000000000000001c203900000000000000000000000000000000000000000000000000000000001c203000000000000000000000000000000000000000000000000000000000001c203a00000000000000000000000000000000000000000000000000000000001c203100000000000000000000000000000000000000000000000000000000001c203b00000000000000000000000000000000000000000000000000000000001c203200000000000000000000000000000000000000000000000000000000001c203c00000000000000000000000000000000000000000000000000000000001c203300000000000000000000000000000000000000000000000000000000001c203d00000000000000000000000000000000000000000000000000000000001c203400000000000000000000000000000000000000000000000000000000001c203e00000000000000000000000000000000000000000000000000000000001c203500000000000000000000000000000000000000000000000000000000001c203f00000000000000000000000000000000000000000000000000000000001c203600000000000000000000000000000000000000000000000000000000001c204000000000000000000000000000000000000000000000000000000000001c203700000000000000000000000000000000000000000000000000000000001c204100000000000000000000000000000000000000000000000000000000001c203800000000000000000000000000000000000000000000000000000000001c204200000000000000000000000000000000000000000000000000000000001c203900000000000000000000000000000000000000000000000000000000001c204300000000000000000000000000000000000000000000000000000000001c203a00000000000000000000000000000000000000000000000000000000001c204400000000000000000000000000000000000000000000000000000000001c203b00000000000000000000000000000000000000000000000000000000001c204500000000000000000000000000000000000000000000000000000000001c203c00000000000000000000000000000000000000000000000000000000001c204600000000000000000000000000000000000000000000000000000000001c203d00000000000000000000000000000000000000000000000000000000001c204700000000000000000000000000000000000000000000000000000000001c203e00000000000000000000000000000000000000000000000000000000001c204800000000000000000000000000000000000000000000000000000000001c203f00000000000000000000000000000000000000000000000000000000001c20492000000000000000000000000000000000000000000000000000000000001c170000000000000000000000000000000000000000000000000000000000001c170100000000000000000000000000000000000000000000000000000000001c170200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c17110000001200000000000000000000000000000000000000000000000000000000001c170100000000000000000000000000000000000000000000000000000000001c170200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c17120000001200000000000000000000000000000000000000000000000000000000001c170200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c17130000001200000000000000000000000000000000000000000000000000000000001c170300000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c17140000001200000000000000000000000000000000000000000000000000000000001c170400000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c17150000001200000000000000000000000000000000000000000000000000000000001c170500000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c17160000001200000000000000000000000000000000000000000000000000000000001c170600000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c17170000001200000000000000000000000000000000000000000000000000000000001c170700000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c17180000001200000000000000000000000000000000000000000000000000000000001c170800000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c17190000001200000000000000000000000000000000000000000000000000000000001c170900000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a0000001200000000000000000000000000000000000000000000000000000000001c170a00000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b0000001200000000000000000000000000000000000000000000000000000000001c170b00000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c0000001200000000000000000000000000000000000000000000000000000000001c170c00000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d0000001200000000000000000000000000000000000000000000000000000000001c170d00000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e0000001200000000000000000000000000000000000000000000000000000000001c170e00000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f0000001200000000000000000000000000000000000000000000000000000000001c170f00000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c17200000001200000000000000000000000000000000000000000000000000000000001c171000000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c17210000001200000000000000000000000000000000000000000000000000000000001c171100000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c17220000001200000000000000000000000000000000000000000000000000000000001c171200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c17230000001200000000000000000000000000000000000000000000000000000000001c171300000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c17240000001200000000000000000000000000000000000000000000000000000000001c171400000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c17250000001200000000000000000000000000000000000000000000000000000000001c171500000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c17260000001200000000000000000000000000000000000000000000000000000000001c171600000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c17270000001200000000000000000000000000000000000000000000000000000000001c171700000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c17280000001200000000000000000000000000000000000000000000000000000000001c171800000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c17290000001200000000000000000000000000000000000000000000000000000000001c171900000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a0000001200000000000000000000000000000000000000000000000000000000001c171a00000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b0000001200000000000000000000000000000000000000000000000000000000001c171b00000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c0000001200000000000000000000000000000000000000000000000000000000001c171c00000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d0000001200000000000000000000000000000000000000000000000000000000001c171d00000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d00000000000000000000000000000000000000000000000000000000001c172e0000001200000000000000000000000000000000000000000000000000000000001c171e00000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d00000000000000000000000000000000000000000000000000000000001c172e00000000000000000000000000000000000000000000000000000000001c172f0000001200000000000000000000000000000000000000000000000000000000001c171f00000000000000000000000000000000000000000000000000000000001c172000000000000000000000000000000000000000000000000000000000001c172100000000000000000000000000000000000000000000000000000000001c172200000000000000000000000000000000000000000000000000000000001c172300000000000000000000000000000000000000000000000000000000001c172400000000000000000000000000000000000000000000000000000000001c172500000000000000000000000000000000000000000000000000000000001c172600000000000000000000000000000000000000000000000000000000001c172700000000000000000000000000000000000000000000000000000000001c172800000000000000000000000000000000000000000000000000000000001c172900000000000000000000000000000000000000000000000000000000001c172a00000000000000000000000000000000000000000000000000000000001c172b00000000000000000000000000000000000000000000000000000000001c172c00000000000000000000000000000000000000000000000000000000001c172d00000000000000000000000000000000000000000000000000000000001c172e00000000000000000000000000000000000000000000000000000000001c172f00000000000000000000000000000000000000000000000000000000001c1730000000120000001739522dd6dc73986ba563233adc57b2be45f08c1ee23fafa546f7f2968ad06d0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000201000000000000000000000000000000000000000000000000000000000000020100100000000000000000000000000000000000000000000000000000000002010020000000000000000000000000000000000000000000000000000000000201003000000000000000000000000000000000000000000000000000000000020100400000000000000000000000000000000000000000000000000000000002010050000000000000000000000000000000000000000000000000000000000201006000000000000000000000000000000000000000000000000000000000020100700000000000000000000000000000000000000000000000000000000002010080000000000000000000000000000000000000000000000000000000000201009000000000000000000000000000000000000000000000000000000000020100a000000000000000000000000000000000000000000000000000000000020100b000000000000000000000000000000000000000000000000000000000020100c000000000000000000000000000000000000000000000000000000000020100d000000000000000000000000000000000000000000000000000000000020100e000000000000000000000000000000000000000000000000000000000020100f0000000000000000000000000000000000000000000000000000000000201010000000000000000000000000000000000000000000000000000000000020101100000000000000000000000000000000000000000000000000000000002010120000000000000000000000000000000000000000000000000000000000201013000000000000000000000000000000000000000000000000000000000020101400000000000000000000000000000000000000000000000000000000002010150000000000000000000000000000000000000000000000000000000000201016000000000000000000000000000000000000000000000000000000000020101700000000000000000000000000000000000000000000000000000000002010180000000000000000000000000000000000000000000000000000000000201019000000000000000000000000000000000000000000000000000000000020101a000000000000000000000000000000000000000000000000000000000020101b000000000000000000000000000000000000000000000000000000000020101c000000000000000000000000000000000000000000000000000000000020101d000000000000000000000000000000000000000000000000000000000020101e000000000000000000000000000000000000000000000000000000000020101f0000000000000000000000000000000000000000000000000000000000201020000000000000000000000000000000000000000000000000000000000020102100000000000000000000000000000000000000000000000000000000002010220000000000000000000000000000000000000000000000000000000000201023000000000000000000000000000000000000000000000000000000000020102400000000000000000000000000000000000000000000000000000000002010250000000000000000000000000000000000000000000000000000000000201026000000000000000000000000000000000000000000000000000000000020102700000000000000000000000000000000000000000000000000000000002010280000000000000000000000000000000000000000000000000000000000201029000000000000000000000000000000000000000000000000000000000020102a000000000000000000000000000000000000000000000000000000000020102b000000000000000000000000000000000000000000000000000000000020102c000000000000000000000000000000000000000000000000000000000020102d000000000000000000000000000000000000000000000000000000000020102e000000000000000000000000000000000000000000000000000000000020102f0000000000000000000000000000000000000000000000000000000000201030000000000000000000000000000000000000000000000000000000000020103100000000000000000000000000000000000000000000000000000000002010320000000000000000000000000000000000000000000000000000000000201033000000000000000000000000000000000000000000000000000000000020103400000000000000000000000000000000000000000000000000000000002010350000000000000000000000000000000000000000000000000000000000201036000000000000000000000000000000000000000000000000000000000020103700000000000000000000000000000000000000000000000000000000002010380000000000000000000000000000000000000000000000000000000000201039000000000000000000000000000000000000000000000000000000000020103a000000000000000000000000000000000000000000000000000000000020103b000000000000000000000000000000000000000000000000000000000020103c000000000000000000000000000000000000000000000000000000000020103d000000000000000000000000000000000000000000000000000000000020103e000000000000000000000000000000000000000000000000000000000020103f4000000000000000000000000000000000000000000000000000000000002000010000000000000000000000000000000000000000000000000000000000201100000000000000000000000000000000000000000000000000000000000020110100000000000000000000000000000000000000000000000000000000002011020000000000000000000000000000000000000000000000000000000000201103000000000000000000000000000000000000000000000000000000000020110400000000000000000000000000000000000000000000000000000000002011050000000000000000000000000000000000000000000000000000000000201106000000000000000000000000000000000000000000000000000000000020110700000000000000000000000000000000000000000000000000000000002011080000000000000000000000000000000000000000000000000000000000201109000000000000000000000000000000000000000000000000000000000020110a000000000000000000000000000000000000000000000000000000000020110b000000000000000000000000000000000000000000000000000000000020110c000000000000000000000000000000000000000000000000000000000020110d000000000000000000000000000000000000000000000000000000000020110e000000000000000000000000000000000000000000000000000000000020110f0000000000000000000000000000000000000000000000000000000000201110000000000000000000000000000000000000000000000000000000000020111100000000000000000000000000000000000000000000000000000000002011120000000000000000000000000000000000000000000000000000000000201113000000000000000000000000000000000000000000000000000000000020111400000000000000000000000000000000000000000000000000000000002011150000000000000000000000000000000000000000000000000000000000201116000000000000000000000000000000000000000000000000000000000020111700000000000000000000000000000000000000000000000000000000002011180000000000000000000000000000000000000000000000000000000000201119000000000000000000000000000000000000000000000000000000000020111a000000000000000000000000000000000000000000000000000000000020111b000000000000000000000000000000000000000000000000000000000020111c000000000000000000000000000000000000000000000000000000000020111d000000000000000000000000000000000000000000000000000000000020111e000000000000000000000000000000000000000000000000000000000020111f0000000000000000000000000000000000000000000000000000000000201120000000000000000000000000000000000000000000000000000000000020112100000000000000000000000000000000000000000000000000000000002011220000000000000000000000000000000000000000000000000000000000201123000000000000000000000000000000000000000000000000000000000020112400000000000000000000000000000000000000000000000000000000002011250000000000000000000000000000000000000000000000000000000000201126000000000000000000000000000000000000000000000000000000000020112700000000000000000000000000000000000000000000000000000000002011280000000000000000000000000000000000000000000000000000000000201129000000000000000000000000000000000000000000000000000000000020112a000000000000000000000000000000000000000000000000000000000020112b000000000000000000000000000000000000000000000000000000000020112c000000000000000000000000000000000000000000000000000000000020112d000000000000000000000000000000000000000000000000000000000020112e000000000000000000000000000000000000000000000000000000000020112f0000000000000000000000000000000000000000000000000000000000201130000000000000000000000000000000000000000000000000000000000020113100000000000000000000000000000000000000000000000000000000002011320000000000000000000000000000000000000000000000000000000000201133000000000000000000000000000000000000000000000000000000000020113400000000000000000000000000000000000000000000000000000000002011350000000000000000000000000000000000000000000000000000000000201136000000000000000000000000000000000000000000000000000000000020113700000000000000000000000000000000000000000000000000000000002011380000000000000000000000000000000000000000000000000000000000201139000000000000000000000000000000000000000000000000000000000020113a000000000000000000000000000000000000000000000000000000000020113b000000000000000000000000000000000000000000000000000000000020113c000000000000000000000000000000000000000000000000000000000020113d000000000000000000000000000000000000000000000000000000000020113e0800d6fa4bae5d4fcef30cdeef252f65240607112fe4a3c47f7b103758af2ca86000c17625eb30333b6f3de760aa755cd9ddd92279e3f159a096e86395fad9c7ae006e1aafcc0a6fa1cabcdcff42eabb963b739dee07945e86cd32cd673cfa157d00d7979c1331c446a1a939f4d59b55c4533c81e8bed14fd157cccf22c92d96890075fdda462a6554826f8b19555ac1741527a374cc49259e1c7cf9deac6a0a8400af723fac84790966d137fb1bdb4b863c84311ad3ec3c5d74e97886ee3050d7005f8d1703a90379ce6e39a116f0f008099ddde97d3b4fa42cb43a56de59c0b800409f1e373bc571403b2c5d1e48fb12c4a17a73afd1e3575cab4f2d51ba30a0400000000000000000000000000000000000000000000000000000000000202000000000000000000000000000000000000000000000000000000000000020200a0000000000000000000000000000000000000000000000000000000000202001000000000000000000000000000000000000000000000000000000000020200b0000000000000000000000000000000000000000000000000000000000202002000000000000000000000000000000000000000000000000000000000020200c0000000000000000000000000000000000000000000000000000000000202003000000000000000000000000000000000000000000000000000000000020200d0000000000000000000000000000000000000000000000000000000000202004000000000000000000000000000000000000000000000000000000000020200e0000000000000000000000000000000000000000000000000000000000202005000000000000000000000000000000000000000000000000000000000020200f00000000000000000000000000000000000000000000000000000000002020060000000000000000000000000000000000000000000000000000000000202010000000000000000000000000000000000000000000000000000000000020200700000000000000000000000000000000000000000000000000000000002020110000000000000000000000000000000000000000000000000000000000202008000000000000000000000000000000000000000000000000000000000020201200000000000000000000000000000000000000000000000000000000002020090000000000000000000000000000000000000000000000000000000000202013000000000000000000000000000000000000000000000000000000000020200a0000000000000000000000000000000000000000000000000000000000202014000000000000000000000000000000000000000000000000000000000020200b0000000000000000000000000000000000000000000000000000000000202015000000000000000000000000000000000000000000000000000000000020200c0000000000000000000000000000000000000000000000000000000000202016000000000000000000000000000000000000000000000000000000000020200d0000000000000000000000000000000000000000000000000000000000202017000000000000000000000000000000000000000000000000000000000020200e0000000000000000000000000000000000000000000000000000000000202018000000000000000000000000000000000000000000000000000000000020200f00000000000000000000000000000000000000000000000000000000002020190000000000000000000000000000000000000000000000000000000000202010000000000000000000000000000000000000000000000000000000000020201a0000000000000000000000000000000000000000000000000000000000202011000000000000000000000000000000000000000000000000000000000020201b0000000000000000000000000000000000000000000000000000000000202012000000000000000000000000000000000000000000000000000000000020201c0000000000000000000000000000000000000000000000000000000000202013000000000000000000000000000000000000000000000000000000000020201d0000000000000000000000000000000000000000000000000000000000202014000000000000000000000000000000000000000000000000000000000020201e0000000000000000000000000000000000000000000000000000000000202015000000000000000000000000000000000000000000000000000000000020201f00000000000000000000000000000000000000000000000000000000002020160000000000000000000000000000000000000000000000000000000000202020000000000000000000000000000000000000000000000000000000000020201700000000000000000000000000000000000000000000000000000000002020210000000000000000000000000000000000000000000000000000000000202018000000000000000000000000000000000000000000000000000000000020202200000000000000000000000000000000000000000000000000000000002020190000000000000000000000000000000000000000000000000000000000202023000000000000000000000000000000000000000000000000000000000020201a0000000000000000000000000000000000000000000000000000000000202024000000000000000000000000000000000000000000000000000000000020201b0000000000000000000000000000000000000000000000000000000000202025000000000000000000000000000000000000000000000000000000000020201c0000000000000000000000000000000000000000000000000000000000202026000000000000000000000000000000000000000000000000000000000020201d0000000000000000000000000000000000000000000000000000000000202027000000000000000000000000000000000000000000000000000000000020201e0000000000000000000000000000000000000000000000000000000000202028000000000000000000000000000000000000000000000000000000000020201f00000000000000000000000000000000000000000000000000000000002020290000000000000000000000000000000000000000000000000000000000202020000000000000000000000000000000000000000000000000000000000020202a0000000000000000000000000000000000000000000000000000000000202021000000000000000000000000000000000000000000000000000000000020202b0000000000000000000000000000000000000000000000000000000000202022000000000000000000000000000000000000000000000000000000000020202c0000000000000000000000000000000000000000000000000000000000202023000000000000000000000000000000000000000000000000000000000020202d0000000000000000000000000000000000000000000000000000000000202024000000000000000000000000000000000000000000000000000000000020202e0000000000000000000000000000000000000000000000000000000000202025000000000000000000000000000000000000000000000000000000000020202f00000000000000000000000000000000000000000000000000000000002020260000000000000000000000000000000000000000000000000000000000202030000000000000000000000000000000000000000000000000000000000020202700000000000000000000000000000000000000000000000000000000002020310000000000000000000000000000000000000000000000000000000000202028000000000000000000000000000000000000000000000000000000000020203200000000000000000000000000000000000000000000000000000000002020290000000000000000000000000000000000000000000000000000000000202033000000000000000000000000000000000000000000000000000000000020202a0000000000000000000000000000000000000000000000000000000000202034000000000000000000000000000000000000000000000000000000000020202b0000000000000000000000000000000000000000000000000000000000202035000000000000000000000000000000000000000000000000000000000020202c0000000000000000000000000000000000000000000000000000000000202036000000000000000000000000000000000000000000000000000000000020202d0000000000000000000000000000000000000000000000000000000000202037000000000000000000000000000000000000000000000000000000000020202e0000000000000000000000000000000000000000000000000000000000202038000000000000000000000000000000000000000000000000000000000020202f00000000000000000000000000000000000000000000000000000000002020390000000000000000000000000000000000000000000000000000000000202030000000000000000000000000000000000000000000000000000000000020203a0000000000000000000000000000000000000000000000000000000000202031000000000000000000000000000000000000000000000000000000000020203b0000000000000000000000000000000000000000000000000000000000202032000000000000000000000000000000000000000000000000000000000020203c0000000000000000000000000000000000000000000000000000000000202033000000000000000000000000000000000000000000000000000000000020203d0000000000000000000000000000000000000000000000000000000000202034000000000000000000000000000000000000000000000000000000000020203e0000000000000000000000000000000000000000000000000000000000202035000000000000000000000000000000000000000000000000000000000020203f00000000000000000000000000000000000000000000000000000000002020360000000000000000000000000000000000000000000000000000000000202040000000000000000000000000000000000000000000000000000000000020203700000000000000000000000000000000000000000000000000000000002020410000000000000000000000000000000000000000000000000000000000202038000000000000000000000000000000000000000000000000000000000020204200000000000000000000000000000000000000000000000000000000002020390000000000000000000000000000000000000000000000000000000000202043000000000000000000000000000000000000000000000000000000000020203a0000000000000000000000000000000000000000000000000000000000202044000000000000000000000000000000000000000000000000000000000020203b0000000000000000000000000000000000000000000000000000000000202045000000000000000000000000000000000000000000000000000000000020203c0000000000000000000000000000000000000000000000000000000000202046000000000000000000000000000000000000000000000000000000000020203d0000000000000000000000000000000000000000000000000000000000202047000000000000000000000000000000000000000000000000000000000020203e0000000000000000000000000000000000000000000000000000000000202048000000000000000000000000000000000000000000000000000000000020203f0000000000000000000000000000000000000000000000000000000000202049200000000000000000000000000000000000000000000000000000000000201700000000000000000000000000000000000000000000000000000000000020170100000000000000000000000000000000000000000000000000000000002017020000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000012000000000000000000000000000000000000000000000000000000000020170100000000000000000000000000000000000000000000000000000000002017020000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000001200000000000000000000000000000000000000000000000000000000002017020000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000120000000000000000000000000000000000000000000000000000000000201703000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000012000000000000000000000000000000000000000000000000000000000020170400000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000001200000000000000000000000000000000000000000000000000000000002017050000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000120000000000000000000000000000000000000000000000000000000000201706000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000012000000000000000000000000000000000000000000000000000000000020170700000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000001200000000000000000000000000000000000000000000000000000000002017080000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000120000000000000000000000000000000000000000000000000000000000201709000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a00000012000000000000000000000000000000000000000000000000000000000020170a000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b00000012000000000000000000000000000000000000000000000000000000000020170b000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c00000012000000000000000000000000000000000000000000000000000000000020170c000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d00000012000000000000000000000000000000000000000000000000000000000020170d000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e00000012000000000000000000000000000000000000000000000000000000000020170e000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f00000012000000000000000000000000000000000000000000000000000000000020170f0000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000120000000000000000000000000000000000000000000000000000000000201710000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000012000000000000000000000000000000000000000000000000000000000020171100000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000001200000000000000000000000000000000000000000000000000000000002017120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000120000000000000000000000000000000000000000000000000000000000201713000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000012000000000000000000000000000000000000000000000000000000000020171400000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000001200000000000000000000000000000000000000000000000000000000002017150000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000120000000000000000000000000000000000000000000000000000000000201716000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000012000000000000000000000000000000000000000000000000000000000020171700000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000001200000000000000000000000000000000000000000000000000000000002017180000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000120000000000000000000000000000000000000000000000000000000000201719000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a00000012000000000000000000000000000000000000000000000000000000000020171a000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b00000012000000000000000000000000000000000000000000000000000000000020171b000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c00000012000000000000000000000000000000000000000000000000000000000020171c000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d00000012000000000000000000000000000000000000000000000000000000000020171d000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d000000000000000000000000000000000000000000000000000000000020172e00000012000000000000000000000000000000000000000000000000000000000020171e000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d000000000000000000000000000000000000000000000000000000000020172e000000000000000000000000000000000000000000000000000000000020172f00000012000000000000000000000000000000000000000000000000000000000020171f0000000000000000000000000000000000000000000000000000000000201720000000000000000000000000000000000000000000000000000000000020172100000000000000000000000000000000000000000000000000000000002017220000000000000000000000000000000000000000000000000000000000201723000000000000000000000000000000000000000000000000000000000020172400000000000000000000000000000000000000000000000000000000002017250000000000000000000000000000000000000000000000000000000000201726000000000000000000000000000000000000000000000000000000000020172700000000000000000000000000000000000000000000000000000000002017280000000000000000000000000000000000000000000000000000000000201729000000000000000000000000000000000000000000000000000000000020172a000000000000000000000000000000000000000000000000000000000020172b000000000000000000000000000000000000000000000000000000000020172c000000000000000000000000000000000000000000000000000000000020172d000000000000000000000000000000000000000000000000000000000020172e000000000000000000000000000000000000000000000000000000000020172f0000000000000000000000000000000000000000000000000000000000201730000000120000", "decodedHeader": { - "lastArchiveRoot": "0x1db82a84219d2e67bd8e09a5b80a7b2cadeed6f6bebb865dc8787ac36d6d8259", + "lastArchiveRoot": "0x1b6a27e3678565b8aa0e7d3728eca798a1b1748a97e792e6100f7d7615e1002f", "contentCommitment": { - "blobsHash": "0x003adcd5b410da332ce95bccb9c6d585e8eb196b3fb3102bb8b00f57e3be37ae", - "inHash": "0x001178eb4b5d0fdf161f56984fcd62e3098beb5475ae57f8a688eed20b095ab9", - "outHash": "0x00c05d64cc0060c4d31cf27292b98da3f40a65d0bdb862dbd727ffba26fb7006", + "blobsHash": "0x007497f2ef09e8cd552bdea87ba9c0357e2ecb9a0958136f7fc1461f2fb95a35", + "inHash": "0x008a5a8855329ae046290273369028230ede9758e44b60dcfdd4772a9b39e984", + "outHash": "0x00de867c736389614d951a60a5077e9823bdf14f1f9583944303ab2575dd98da", "numTxs": 4 }, "slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000032", - "timestamp": 1747165424, - "coinbase": "0xe8f95f83d26fb1a532da50b2ac275309a5e200d9", - "feeRecipient": "0x221ebecaaa079d322ba7f30d76d849dbf0b38772b7c646a97d60ac0cae351f46", + "timestamp": 1747752932, + "coinbase": "0x27b7146cdcf257c2ef11f4c087f93305fa6dd856", + "feeRecipient": "0x1e35bf94e78e2abed0f51010e54b62c5e1582cf783a2c6c1bccc527a88c01822", "gasFees": { "feePerDaGas": 0, "feePerL2Gas": 1020 }, "totalManaUsed": "0x0000000000000000000000000000000000000000000000000000000000000000" }, - "header": "0x1db82a84219d2e67bd8e09a5b80a7b2cadeed6f6bebb865dc8787ac36d6d82590000000000000000000000000000000000000000000000000000000000000004003adcd5b410da332ce95bccb9c6d585e8eb196b3fb3102bb8b00f57e3be37ae001178eb4b5d0fdf161f56984fcd62e3098beb5475ae57f8a688eed20b095ab900c05d64cc0060c4d31cf27292b98da3f40a65d0bdb862dbd727ffba26fb70060000000000000000000000000000000000000000000000000000000000000032000000006823a0f0e8f95f83d26fb1a532da50b2ac275309a5e200d9221ebecaaa079d322ba7f30d76d849dbf0b38772b7c646a97d60ac0cae351f46000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc0000000000000000000000000000000000000000000000000000000000000000", + "header": "0x1b6a27e3678565b8aa0e7d3728eca798a1b1748a97e792e6100f7d7615e1002f0000000000000000000000000000000000000000000000000000000000000004007497f2ef09e8cd552bdea87ba9c0357e2ecb9a0958136f7fc1461f2fb95a35008a5a8855329ae046290273369028230ede9758e44b60dcfdd4772a9b39e98400de867c736389614d951a60a5077e9823bdf14f1f9583944303ab2575dd98da000000000000000000000000000000000000000000000000000000000000003200000000682c97e427b7146cdcf257c2ef11f4c087f93305fa6dd8561e35bf94e78e2abed0f51010e54b62c5e1582cf783a2c6c1bccc527a88c01822000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc0000000000000000000000000000000000000000000000000000000000000000", "numTxs": 4 } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/single_tx_block_1.json b/l1-contracts/test/fixtures/single_tx_block_1.json index 96a253724212..6908e614bb2b 100644 --- a/l1-contracts/test/fixtures/single_tx_block_1.json +++ b/l1-contracts/test/fixtures/single_tx_block_1.json @@ -23,40 +23,41 @@ }, "messages": { "l2ToL1Messages": [ - "0x00c817fb8da5408bedda8217bb299017279cff205acc70365260694aca5ec40f", - "0x00853c06fb6c9fee930e77713c495d3fd86a6bf13e3550d3fededf123a858495", - "0x0018b21098c2a15d22ac24ae015da00f189a084d72755eb98db3ae9f6a73cec4", - "0x00cba27984dddab9edffd0786bab16d759e699d8e114dac65852aadf0dd21aa0", - "0x008dabdf9471a97f494d2eb3f0fffa041773b351d50524b6d7017dc220bee490", - "0x003b4d93aac82be2d703be535031e76a9c0d29ec6ebbbb145a89309cd4094483", - "0x0075e9f058ed64a8e61e15b3b7af9dec8f027ce359237f5d46f7e0e1504a1166", - "0x00bea566f8b01b020514547c1e3d767041e4d6278232466950b4340c3ca822c4" + "0x00b6431d81d3695c3abcea23383de698d4a28f9c907b70a040822152921e7845", + "0x00174f2ce2fe38cf898193398381ef879377b61eff6065f0d19e8cbfe21477d3", + "0x007b08b9565f1752c066b7be04544fc3ceed872d66842f3002438e5d4edabc09", + "0x007409c8b68efad4431b3ee5f7b71e0dd6a2831cede2c8b835edb65e85e7030f", + "0x007e90f970b4e59b631d22d954130e3d21294e497b250d4e3a7e2333b77f8a3e", + "0x00f9fee779d1664bd04e16c3ea639ef2e0a192e066cac9038a1a815292832667", + "0x000d528fe967247560f128c1591415da03423e48832194ba2f2f5f0f53924268", + "0x00b49aa1695b379b867fa675bb6943e2325514f3d5032ede788717bf93e72c46" ] }, "block": { - "archive": "0x111649e92f8511208909dfbf90537a526ce97f91c19cd5fb7876d90ae138a2cf", - "blobInputs": "0x010135c44956783c8dc61fd3b3b98153157e755a5a56e5a69ad501e7a6ced4713d0029c8a7ceabb814cd9fcdb41bafeb54d61c2440a9ed5b5168e35ef1617d7a9c6a7d20e0d1a671904bc88aaa4e7039728acfb02e8567c78298093b6c16af755ea6770d0f2ba2b4b9c890f9e9e8caf2d25f5713df6bbb135acf6aa0123ccf6db5d5cc28cc2b1010540c420c7b5ea250a7a8aa479eb964dd4db5ffe19ec76ed0c00e8c899468cce7e86f03dd896ce9f69a86570d808f3ea868b849890630a3ab1f", + "archive": "0x0e7b7cea4889ec2cef481eb934dd2a59b94dae580cd03db46a1b3e4da004f4c4", + "blobCommitments": "0x01a55369f8b0125c24bb7cc7cc6ea09101ba5715a3b924fd5b2508adddd50e99730a9a37f038658eb07ec3d08722b64e87", + "batchedBlobInputs": "0x012a71b2b280b2f9e730154a72bdfaec00bd45433e045a01bc2d1e84f2dc964320c2654c659a77579511679b5386723236e7211e6a3b5d8d2f48125af3958b88298311ed674fc2a2a90b6a41d56a0549df7335da4e68c74f44a0f770fdbb062ca55369f8b0125c24bb7cc7cc6ea09101ba5715a3b924fd5b2508adddd50e99730a9a37f038658eb07ec3d08722b64e87a4ace0c787acda680804488a3b9edf0dfd3d2c2e6b79dff078322c0e44139e08e3790827537667711a5a753429c639cc", "blockNumber": 1, - "body": "0x00000001000c170abeafebc07ed016cc0c8975955437eb309a871da77cde6079baa1bffd750000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000004100100000000000000000000000000000000000000000000000000000000000410020000000000000000000000000000000000000000000000000000000000041003000000000000000000000000000000000000000000000000000000000004100400000000000000000000000000000000000000000000000000000000000410050000000000000000000000000000000000000000000000000000000000041006000000000000000000000000000000000000000000000000000000000004100700000000000000000000000000000000000000000000000000000000000410080000000000000000000000000000000000000000000000000000000000041009000000000000000000000000000000000000000000000000000000000004100a000000000000000000000000000000000000000000000000000000000004100b000000000000000000000000000000000000000000000000000000000004100c000000000000000000000000000000000000000000000000000000000004100d000000000000000000000000000000000000000000000000000000000004100e000000000000000000000000000000000000000000000000000000000004100f0000000000000000000000000000000000000000000000000000000000041010000000000000000000000000000000000000000000000000000000000004101100000000000000000000000000000000000000000000000000000000000410120000000000000000000000000000000000000000000000000000000000041013000000000000000000000000000000000000000000000000000000000004101400000000000000000000000000000000000000000000000000000000000410150000000000000000000000000000000000000000000000000000000000041016000000000000000000000000000000000000000000000000000000000004101700000000000000000000000000000000000000000000000000000000000410180000000000000000000000000000000000000000000000000000000000041019000000000000000000000000000000000000000000000000000000000004101a000000000000000000000000000000000000000000000000000000000004101b000000000000000000000000000000000000000000000000000000000004101c000000000000000000000000000000000000000000000000000000000004101d000000000000000000000000000000000000000000000000000000000004101e000000000000000000000000000000000000000000000000000000000004101f0000000000000000000000000000000000000000000000000000000000041020000000000000000000000000000000000000000000000000000000000004102100000000000000000000000000000000000000000000000000000000000410220000000000000000000000000000000000000000000000000000000000041023000000000000000000000000000000000000000000000000000000000004102400000000000000000000000000000000000000000000000000000000000410250000000000000000000000000000000000000000000000000000000000041026000000000000000000000000000000000000000000000000000000000004102700000000000000000000000000000000000000000000000000000000000410280000000000000000000000000000000000000000000000000000000000041029000000000000000000000000000000000000000000000000000000000004102a000000000000000000000000000000000000000000000000000000000004102b000000000000000000000000000000000000000000000000000000000004102c000000000000000000000000000000000000000000000000000000000004102d000000000000000000000000000000000000000000000000000000000004102e000000000000000000000000000000000000000000000000000000000004102f0000000000000000000000000000000000000000000000000000000000041030000000000000000000000000000000000000000000000000000000000004103100000000000000000000000000000000000000000000000000000000000410320000000000000000000000000000000000000000000000000000000000041033000000000000000000000000000000000000000000000000000000000004103400000000000000000000000000000000000000000000000000000000000410350000000000000000000000000000000000000000000000000000000000041036000000000000000000000000000000000000000000000000000000000004103700000000000000000000000000000000000000000000000000000000000410380000000000000000000000000000000000000000000000000000000000041039000000000000000000000000000000000000000000000000000000000004103a000000000000000000000000000000000000000000000000000000000004103b000000000000000000000000000000000000000000000000000000000004103c000000000000000000000000000000000000000000000000000000000004103d000000000000000000000000000000000000000000000000000000000004103e000000000000000000000000000000000000000000000000000000000004103f4000000000000000000000000000000000000000000000000000000000000400010000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004110100000000000000000000000000000000000000000000000000000000000411020000000000000000000000000000000000000000000000000000000000041103000000000000000000000000000000000000000000000000000000000004110400000000000000000000000000000000000000000000000000000000000411050000000000000000000000000000000000000000000000000000000000041106000000000000000000000000000000000000000000000000000000000004110700000000000000000000000000000000000000000000000000000000000411080000000000000000000000000000000000000000000000000000000000041109000000000000000000000000000000000000000000000000000000000004110a000000000000000000000000000000000000000000000000000000000004110b000000000000000000000000000000000000000000000000000000000004110c000000000000000000000000000000000000000000000000000000000004110d000000000000000000000000000000000000000000000000000000000004110e000000000000000000000000000000000000000000000000000000000004110f0000000000000000000000000000000000000000000000000000000000041110000000000000000000000000000000000000000000000000000000000004111100000000000000000000000000000000000000000000000000000000000411120000000000000000000000000000000000000000000000000000000000041113000000000000000000000000000000000000000000000000000000000004111400000000000000000000000000000000000000000000000000000000000411150000000000000000000000000000000000000000000000000000000000041116000000000000000000000000000000000000000000000000000000000004111700000000000000000000000000000000000000000000000000000000000411180000000000000000000000000000000000000000000000000000000000041119000000000000000000000000000000000000000000000000000000000004111a000000000000000000000000000000000000000000000000000000000004111b000000000000000000000000000000000000000000000000000000000004111c000000000000000000000000000000000000000000000000000000000004111d000000000000000000000000000000000000000000000000000000000004111e000000000000000000000000000000000000000000000000000000000004111f0000000000000000000000000000000000000000000000000000000000041120000000000000000000000000000000000000000000000000000000000004112100000000000000000000000000000000000000000000000000000000000411220000000000000000000000000000000000000000000000000000000000041123000000000000000000000000000000000000000000000000000000000004112400000000000000000000000000000000000000000000000000000000000411250000000000000000000000000000000000000000000000000000000000041126000000000000000000000000000000000000000000000000000000000004112700000000000000000000000000000000000000000000000000000000000411280000000000000000000000000000000000000000000000000000000000041129000000000000000000000000000000000000000000000000000000000004112a000000000000000000000000000000000000000000000000000000000004112b000000000000000000000000000000000000000000000000000000000004112c000000000000000000000000000000000000000000000000000000000004112d000000000000000000000000000000000000000000000000000000000004112e000000000000000000000000000000000000000000000000000000000004112f0000000000000000000000000000000000000000000000000000000000041130000000000000000000000000000000000000000000000000000000000004113100000000000000000000000000000000000000000000000000000000000411320000000000000000000000000000000000000000000000000000000000041133000000000000000000000000000000000000000000000000000000000004113400000000000000000000000000000000000000000000000000000000000411350000000000000000000000000000000000000000000000000000000000041136000000000000000000000000000000000000000000000000000000000004113700000000000000000000000000000000000000000000000000000000000411380000000000000000000000000000000000000000000000000000000000041139000000000000000000000000000000000000000000000000000000000004113a000000000000000000000000000000000000000000000000000000000004113b000000000000000000000000000000000000000000000000000000000004113c000000000000000000000000000000000000000000000000000000000004113d000000000000000000000000000000000000000000000000000000000004113e0800c817fb8da5408bedda8217bb299017279cff205acc70365260694aca5ec40f00853c06fb6c9fee930e77713c495d3fd86a6bf13e3550d3fededf123a8584950018b21098c2a15d22ac24ae015da00f189a084d72755eb98db3ae9f6a73cec400cba27984dddab9edffd0786bab16d759e699d8e114dac65852aadf0dd21aa0008dabdf9471a97f494d2eb3f0fffa041773b351d50524b6d7017dc220bee490003b4d93aac82be2d703be535031e76a9c0d29ec6ebbbb145a89309cd40944830075e9f058ed64a8e61e15b3b7af9dec8f027ce359237f5d46f7e0e1504a116600bea566f8b01b020514547c1e3d767041e4d6278232466950b4340c3ca822c4400000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042001000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042002000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042003000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042004000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042005000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420060000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004200700000000000000000000000000000000000000000000000000000000000420110000000000000000000000000000000000000000000000000000000000042008000000000000000000000000000000000000000000000000000000000004201200000000000000000000000000000000000000000000000000000000000420090000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042016000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042017000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042011000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042012000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420160000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004201700000000000000000000000000000000000000000000000000000000000420210000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004202200000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042026000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042027000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042021000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042022000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420260000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004202700000000000000000000000000000000000000000000000000000000000420310000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004203200000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042036000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042037000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042031000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042032000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004203f00000000000000000000000000000000000000000000000000000000000420360000000000000000000000000000000000000000000000000000000000042040000000000000000000000000000000000000000000000000000000000004203700000000000000000000000000000000000000000000000000000000000420410000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004204200000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042043000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042044000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042045000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042046000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042047000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042048000000000000000000000000000000000000000000000000000000000004203f0000000000000000000000000000000000000000000000000000000000042049200000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000012000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000001200000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000120000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000012000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000001200000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000120000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000012000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000001200000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000120000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a00000012000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b00000012000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c00000012000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d00000012000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e00000012000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f00000012000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000120000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000012000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000001200000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000012000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000001200000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000120000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000012000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000001200000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000120000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a00000012000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b00000012000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c00000012000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d00000012000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e00000012000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f00000012000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f0000000000000000000000000000000000000000000000000000000000041730000000120000", + "body": "0x000000010017e465f5b8fddd0aacaa9dd7dfa8cbb4b7d122356061291917a93ed050b23f900000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000004100100000000000000000000000000000000000000000000000000000000000410020000000000000000000000000000000000000000000000000000000000041003000000000000000000000000000000000000000000000000000000000004100400000000000000000000000000000000000000000000000000000000000410050000000000000000000000000000000000000000000000000000000000041006000000000000000000000000000000000000000000000000000000000004100700000000000000000000000000000000000000000000000000000000000410080000000000000000000000000000000000000000000000000000000000041009000000000000000000000000000000000000000000000000000000000004100a000000000000000000000000000000000000000000000000000000000004100b000000000000000000000000000000000000000000000000000000000004100c000000000000000000000000000000000000000000000000000000000004100d000000000000000000000000000000000000000000000000000000000004100e000000000000000000000000000000000000000000000000000000000004100f0000000000000000000000000000000000000000000000000000000000041010000000000000000000000000000000000000000000000000000000000004101100000000000000000000000000000000000000000000000000000000000410120000000000000000000000000000000000000000000000000000000000041013000000000000000000000000000000000000000000000000000000000004101400000000000000000000000000000000000000000000000000000000000410150000000000000000000000000000000000000000000000000000000000041016000000000000000000000000000000000000000000000000000000000004101700000000000000000000000000000000000000000000000000000000000410180000000000000000000000000000000000000000000000000000000000041019000000000000000000000000000000000000000000000000000000000004101a000000000000000000000000000000000000000000000000000000000004101b000000000000000000000000000000000000000000000000000000000004101c000000000000000000000000000000000000000000000000000000000004101d000000000000000000000000000000000000000000000000000000000004101e000000000000000000000000000000000000000000000000000000000004101f0000000000000000000000000000000000000000000000000000000000041020000000000000000000000000000000000000000000000000000000000004102100000000000000000000000000000000000000000000000000000000000410220000000000000000000000000000000000000000000000000000000000041023000000000000000000000000000000000000000000000000000000000004102400000000000000000000000000000000000000000000000000000000000410250000000000000000000000000000000000000000000000000000000000041026000000000000000000000000000000000000000000000000000000000004102700000000000000000000000000000000000000000000000000000000000410280000000000000000000000000000000000000000000000000000000000041029000000000000000000000000000000000000000000000000000000000004102a000000000000000000000000000000000000000000000000000000000004102b000000000000000000000000000000000000000000000000000000000004102c000000000000000000000000000000000000000000000000000000000004102d000000000000000000000000000000000000000000000000000000000004102e000000000000000000000000000000000000000000000000000000000004102f0000000000000000000000000000000000000000000000000000000000041030000000000000000000000000000000000000000000000000000000000004103100000000000000000000000000000000000000000000000000000000000410320000000000000000000000000000000000000000000000000000000000041033000000000000000000000000000000000000000000000000000000000004103400000000000000000000000000000000000000000000000000000000000410350000000000000000000000000000000000000000000000000000000000041036000000000000000000000000000000000000000000000000000000000004103700000000000000000000000000000000000000000000000000000000000410380000000000000000000000000000000000000000000000000000000000041039000000000000000000000000000000000000000000000000000000000004103a000000000000000000000000000000000000000000000000000000000004103b000000000000000000000000000000000000000000000000000000000004103c000000000000000000000000000000000000000000000000000000000004103d000000000000000000000000000000000000000000000000000000000004103e000000000000000000000000000000000000000000000000000000000004103f4000000000000000000000000000000000000000000000000000000000000400010000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004110100000000000000000000000000000000000000000000000000000000000411020000000000000000000000000000000000000000000000000000000000041103000000000000000000000000000000000000000000000000000000000004110400000000000000000000000000000000000000000000000000000000000411050000000000000000000000000000000000000000000000000000000000041106000000000000000000000000000000000000000000000000000000000004110700000000000000000000000000000000000000000000000000000000000411080000000000000000000000000000000000000000000000000000000000041109000000000000000000000000000000000000000000000000000000000004110a000000000000000000000000000000000000000000000000000000000004110b000000000000000000000000000000000000000000000000000000000004110c000000000000000000000000000000000000000000000000000000000004110d000000000000000000000000000000000000000000000000000000000004110e000000000000000000000000000000000000000000000000000000000004110f0000000000000000000000000000000000000000000000000000000000041110000000000000000000000000000000000000000000000000000000000004111100000000000000000000000000000000000000000000000000000000000411120000000000000000000000000000000000000000000000000000000000041113000000000000000000000000000000000000000000000000000000000004111400000000000000000000000000000000000000000000000000000000000411150000000000000000000000000000000000000000000000000000000000041116000000000000000000000000000000000000000000000000000000000004111700000000000000000000000000000000000000000000000000000000000411180000000000000000000000000000000000000000000000000000000000041119000000000000000000000000000000000000000000000000000000000004111a000000000000000000000000000000000000000000000000000000000004111b000000000000000000000000000000000000000000000000000000000004111c000000000000000000000000000000000000000000000000000000000004111d000000000000000000000000000000000000000000000000000000000004111e000000000000000000000000000000000000000000000000000000000004111f0000000000000000000000000000000000000000000000000000000000041120000000000000000000000000000000000000000000000000000000000004112100000000000000000000000000000000000000000000000000000000000411220000000000000000000000000000000000000000000000000000000000041123000000000000000000000000000000000000000000000000000000000004112400000000000000000000000000000000000000000000000000000000000411250000000000000000000000000000000000000000000000000000000000041126000000000000000000000000000000000000000000000000000000000004112700000000000000000000000000000000000000000000000000000000000411280000000000000000000000000000000000000000000000000000000000041129000000000000000000000000000000000000000000000000000000000004112a000000000000000000000000000000000000000000000000000000000004112b000000000000000000000000000000000000000000000000000000000004112c000000000000000000000000000000000000000000000000000000000004112d000000000000000000000000000000000000000000000000000000000004112e000000000000000000000000000000000000000000000000000000000004112f0000000000000000000000000000000000000000000000000000000000041130000000000000000000000000000000000000000000000000000000000004113100000000000000000000000000000000000000000000000000000000000411320000000000000000000000000000000000000000000000000000000000041133000000000000000000000000000000000000000000000000000000000004113400000000000000000000000000000000000000000000000000000000000411350000000000000000000000000000000000000000000000000000000000041136000000000000000000000000000000000000000000000000000000000004113700000000000000000000000000000000000000000000000000000000000411380000000000000000000000000000000000000000000000000000000000041139000000000000000000000000000000000000000000000000000000000004113a000000000000000000000000000000000000000000000000000000000004113b000000000000000000000000000000000000000000000000000000000004113c000000000000000000000000000000000000000000000000000000000004113d000000000000000000000000000000000000000000000000000000000004113e0800b6431d81d3695c3abcea23383de698d4a28f9c907b70a040822152921e784500174f2ce2fe38cf898193398381ef879377b61eff6065f0d19e8cbfe21477d3007b08b9565f1752c066b7be04544fc3ceed872d66842f3002438e5d4edabc09007409c8b68efad4431b3ee5f7b71e0dd6a2831cede2c8b835edb65e85e7030f007e90f970b4e59b631d22d954130e3d21294e497b250d4e3a7e2333b77f8a3e00f9fee779d1664bd04e16c3ea639ef2e0a192e066cac9038a1a815292832667000d528fe967247560f128c1591415da03423e48832194ba2f2f5f0f5392426800b49aa1695b379b867fa675bb6943e2325514f3d5032ede788717bf93e72c46400000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042001000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042002000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042003000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042004000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042005000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420060000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004200700000000000000000000000000000000000000000000000000000000000420110000000000000000000000000000000000000000000000000000000000042008000000000000000000000000000000000000000000000000000000000004201200000000000000000000000000000000000000000000000000000000000420090000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004200a0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004200b0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004200c0000000000000000000000000000000000000000000000000000000000042016000000000000000000000000000000000000000000000000000000000004200d0000000000000000000000000000000000000000000000000000000000042017000000000000000000000000000000000000000000000000000000000004200e0000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004200f00000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042010000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042011000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042012000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042013000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042014000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042015000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420160000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004201700000000000000000000000000000000000000000000000000000000000420210000000000000000000000000000000000000000000000000000000000042018000000000000000000000000000000000000000000000000000000000004202200000000000000000000000000000000000000000000000000000000000420190000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004201a0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004201b0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004201c0000000000000000000000000000000000000000000000000000000000042026000000000000000000000000000000000000000000000000000000000004201d0000000000000000000000000000000000000000000000000000000000042027000000000000000000000000000000000000000000000000000000000004201e0000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004201f00000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042020000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042021000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042022000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042023000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042024000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042025000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420260000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004202700000000000000000000000000000000000000000000000000000000000420310000000000000000000000000000000000000000000000000000000000042028000000000000000000000000000000000000000000000000000000000004203200000000000000000000000000000000000000000000000000000000000420290000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004202a0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004202b0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004202c0000000000000000000000000000000000000000000000000000000000042036000000000000000000000000000000000000000000000000000000000004202d0000000000000000000000000000000000000000000000000000000000042037000000000000000000000000000000000000000000000000000000000004202e0000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004202f00000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042030000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042031000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042032000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042033000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042034000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042035000000000000000000000000000000000000000000000000000000000004203f00000000000000000000000000000000000000000000000000000000000420360000000000000000000000000000000000000000000000000000000000042040000000000000000000000000000000000000000000000000000000000004203700000000000000000000000000000000000000000000000000000000000420410000000000000000000000000000000000000000000000000000000000042038000000000000000000000000000000000000000000000000000000000004204200000000000000000000000000000000000000000000000000000000000420390000000000000000000000000000000000000000000000000000000000042043000000000000000000000000000000000000000000000000000000000004203a0000000000000000000000000000000000000000000000000000000000042044000000000000000000000000000000000000000000000000000000000004203b0000000000000000000000000000000000000000000000000000000000042045000000000000000000000000000000000000000000000000000000000004203c0000000000000000000000000000000000000000000000000000000000042046000000000000000000000000000000000000000000000000000000000004203d0000000000000000000000000000000000000000000000000000000000042047000000000000000000000000000000000000000000000000000000000004203e0000000000000000000000000000000000000000000000000000000000042048000000000000000000000000000000000000000000000000000000000004203f0000000000000000000000000000000000000000000000000000000000042049200000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000012000000000000000000000000000000000000000000000000000000000004170100000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000001200000000000000000000000000000000000000000000000000000000000417020000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000120000000000000000000000000000000000000000000000000000000000041703000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000012000000000000000000000000000000000000000000000000000000000004170400000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000001200000000000000000000000000000000000000000000000000000000000417050000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000120000000000000000000000000000000000000000000000000000000000041706000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000012000000000000000000000000000000000000000000000000000000000004170700000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000001200000000000000000000000000000000000000000000000000000000000417080000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000120000000000000000000000000000000000000000000000000000000000041709000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a00000012000000000000000000000000000000000000000000000000000000000004170a000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b00000012000000000000000000000000000000000000000000000000000000000004170b000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c00000012000000000000000000000000000000000000000000000000000000000004170c000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d00000012000000000000000000000000000000000000000000000000000000000004170d000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e00000012000000000000000000000000000000000000000000000000000000000004170e000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f00000012000000000000000000000000000000000000000000000000000000000004170f0000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000120000000000000000000000000000000000000000000000000000000000041710000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000012000000000000000000000000000000000000000000000000000000000004171100000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000001200000000000000000000000000000000000000000000000000000000000417120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000120000000000000000000000000000000000000000000000000000000000041713000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000012000000000000000000000000000000000000000000000000000000000004171400000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000001200000000000000000000000000000000000000000000000000000000000417150000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000120000000000000000000000000000000000000000000000000000000000041716000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000012000000000000000000000000000000000000000000000000000000000004171700000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000001200000000000000000000000000000000000000000000000000000000000417180000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000120000000000000000000000000000000000000000000000000000000000041719000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a00000012000000000000000000000000000000000000000000000000000000000004171a000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b00000012000000000000000000000000000000000000000000000000000000000004171b000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c00000012000000000000000000000000000000000000000000000000000000000004171c000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d00000012000000000000000000000000000000000000000000000000000000000004171d000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e00000012000000000000000000000000000000000000000000000000000000000004171e000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f00000012000000000000000000000000000000000000000000000000000000000004171f0000000000000000000000000000000000000000000000000000000000041720000000000000000000000000000000000000000000000000000000000004172100000000000000000000000000000000000000000000000000000000000417220000000000000000000000000000000000000000000000000000000000041723000000000000000000000000000000000000000000000000000000000004172400000000000000000000000000000000000000000000000000000000000417250000000000000000000000000000000000000000000000000000000000041726000000000000000000000000000000000000000000000000000000000004172700000000000000000000000000000000000000000000000000000000000417280000000000000000000000000000000000000000000000000000000000041729000000000000000000000000000000000000000000000000000000000004172a000000000000000000000000000000000000000000000000000000000004172b000000000000000000000000000000000000000000000000000000000004172c000000000000000000000000000000000000000000000000000000000004172d000000000000000000000000000000000000000000000000000000000004172e000000000000000000000000000000000000000000000000000000000004172f0000000000000000000000000000000000000000000000000000000000041730000000120000", "decodedHeader": { "lastArchiveRoot": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae", "contentCommitment": { - "blobsHash": "0x0083d10c32b4e525bd33147efe57a2dd9fba607ac6166bc87052319b8babc9cd", + "blobsHash": "0x0066dd2268392213e45059bf49b4de81aee8afd3dff62e422849234e7470019f", "inHash": "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c", - "outHash": "0x00fafa4d6fe96bf5f2f903ac5aca74a0882965d4034600981e0d87dbd0db089a", + "outHash": "0x00389ab7241aa611358f14e0b488316f4104edd893015cfaf26d8240ae3934f8", "numTxs": 1 }, "slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000029", - "timestamp": 1747163792, - "coinbase": "0x37703282b58cf3439cc94ef0f4ed92821a6412db", - "feeRecipient": "0x0589b860e530263b34ddbc964cf44b70e668f0a55a8e4b1598adc95e85fc2f5f", + "timestamp": 1747751300, + "coinbase": "0x654d537e08ab9f37befdcb3dd320739e2f672be1", + "feeRecipient": "0x1e9c7c8f36174b70f4d8d2af83f511c854bdd92b2f7e3244fc985d98523936f3", "gasFees": { "feePerDaGas": 0, "feePerL2Gas": 1050 }, "totalManaUsed": "0x0000000000000000000000000000000000000000000000000000000000000000" }, - "header": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae00000000000000000000000000000000000000000000000000000000000000010083d10c32b4e525bd33147efe57a2dd9fba607ac6166bc87052319b8babc9cd00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00fafa4d6fe96bf5f2f903ac5aca74a0882965d4034600981e0d87dbd0db089a00000000000000000000000000000000000000000000000000000000000000290000000068239a9037703282b58cf3439cc94ef0f4ed92821a6412db0589b860e530263b34ddbc964cf44b70e668f0a55a8e4b1598adc95e85fc2f5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a0000000000000000000000000000000000000000000000000000000000000000", + "header": "0x0237797d6a2c04d20d4fa06b74482bd970ccd51a43d9b05b57e9b91fa1ae1cae00000000000000000000000000000000000000000000000000000000000000010066dd2268392213e45059bf49b4de81aee8afd3dff62e422849234e7470019f00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00389ab7241aa611358f14e0b488316f4104edd893015cfaf26d8240ae3934f8000000000000000000000000000000000000000000000000000000000000002900000000682c9184654d537e08ab9f37befdcb3dd320739e2f672be11e9c7c8f36174b70f4d8d2af83f511c854bdd92b2f7e3244fc985d98523936f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a0000000000000000000000000000000000000000000000000000000000000000", "numTxs": 1 } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/single_tx_block_2.json b/l1-contracts/test/fixtures/single_tx_block_2.json index fab64aee559a..54e67ec2c7f8 100644 --- a/l1-contracts/test/fixtures/single_tx_block_2.json +++ b/l1-contracts/test/fixtures/single_tx_block_2.json @@ -23,40 +23,41 @@ }, "messages": { "l2ToL1Messages": [ - "0x00a08a769cb8bda75b7c8d38fffa83be728b5b393c9e2b95eaaa44abf3d56582", - "0x00cd9c71c76b6c8d8446b3c04e1e8ecbc1f618291bebca13972dce862ecd51e5", - "0x003b5d5e3a7cf6e57f028d316e7e2b5a5d159e8a8b6bc1766a938943c2a7b6a3", - "0x00fa2071bae09a7788514eb964592e2d20f4341cabdbd47285a08cc0c333347a", - "0x001916dc896a9fd77fc8e81e43610354128ec3fcba838f222621dc75224b8a80", - "0x0034cd0510c3316fb269df3dfbf17834257a30d7e107f77307c739bc70589ed5", - "0x0070397ea23429e4825a8c23a281c5867bbfdb6fa0bd6447efe3542b7642a005", - "0x0062aacc4bf08f5d64e36f4552834e665185cf43f17232546c7b498e7346c2aa" + "0x000c8f19ae5904a2dad51d949acace1f9a43797b608850aa3bd9cf75030da112", + "0x005120fdd77b6d0da9ab7f395746c2d02bada5f285e58dc1a14861538ffdfd2d", + "0x000f3e98b0834a5000b70001164193437191a394378c22e0f5d6b4247e3b163b", + "0x00ff1a741df40ff77f17e92c5a755eea5ff09b3f35ea1999242802329bb894c7", + "0x0054adf67a0cf6680b22ac32b1154398a03192d9b5ec46ae8c15a0e303eeedd2", + "0x00d4bd4fda9903c8012d1d79f8b3c0cdbdb51623e0e7097f7f1f14b7a2c2b212", + "0x00ba3f18490b0473faa298f8405b5b6496c44c62c9d1bfd86b1d0d616cd3661b", + "0x008a9917e83ea96e4e81834a09fe9c4cb180402817edbde581b77ad0955d9f28" ] }, "block": { - "archive": "0x091d460e273f5c9d9102b6a27887adc23803acb3a7966dd7317c33e87bb26ca1", - "blobInputs": "0x010170ddda336d9e0189ff33c21522b1c3d3ed8ed07d84a31950f1b8d2d34463fb2c7ae199aae1c8a4799fa2e410a29d5b11a2731ce9cdbf3cef9ae4507ba4e2466bba8ca3d3500e5ce56185bba22cc9616135520e1c34230bfe823404f0982852aa729fb3b01ab5ebd28c9169efd550c9ecd7ece403250d355e686b30493cacbb65bcf49dee0f3c35b9143c6dc6090515b9d2324b76b3473cef6ab845e07a18b0ff5c7b452ca0e67566beab3992f8248bf26d7e68d32231cda73b585fdc9a6ae6", + "archive": "0x1e2e1f667cca236d0556c1054649132f14996fcbc7b0ee15bf43fc880f33be03", + "blobCommitments": "0x01b49c7f3a460d6821854efd545809a115f9ab4462674511faa9de1feb29bb8212670c02609cb06fc7c323fedd8b428661", + "batchedBlobInputs": "0x012a2b4e8fddad65e321c268140e8d43006b5fead74916d1b759479513dd600a0c3d1055e9f6484f0f41288e770f1300f3292a186691bf8fb93e208e8410eeb505e9ad51832a4e47191600d811d9e6926ba684b2b9d68c1902309e65f96b76808528c30ffdd85617e2b5270563cb7aad2728da5cd14f9e71c8bd85ef22142f42ec24b14235635630d91028da89c025c0804cd997d4628b638d49675f66c0961f6ae84c6a11db7c79749ad416386a743831d309b73d7121fe4d78c8c7eddd9c7c", "blockNumber": 2, - "body": "0x0000000100249e02b24e0c1efc9b3437e6aef37afc5e49783d4006577f608c9bed558467dc0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000014100100000000000000000000000000000000000000000000000000000000001410020000000000000000000000000000000000000000000000000000000000141003000000000000000000000000000000000000000000000000000000000014100400000000000000000000000000000000000000000000000000000000001410050000000000000000000000000000000000000000000000000000000000141006000000000000000000000000000000000000000000000000000000000014100700000000000000000000000000000000000000000000000000000000001410080000000000000000000000000000000000000000000000000000000000141009000000000000000000000000000000000000000000000000000000000014100a000000000000000000000000000000000000000000000000000000000014100b000000000000000000000000000000000000000000000000000000000014100c000000000000000000000000000000000000000000000000000000000014100d000000000000000000000000000000000000000000000000000000000014100e000000000000000000000000000000000000000000000000000000000014100f0000000000000000000000000000000000000000000000000000000000141010000000000000000000000000000000000000000000000000000000000014101100000000000000000000000000000000000000000000000000000000001410120000000000000000000000000000000000000000000000000000000000141013000000000000000000000000000000000000000000000000000000000014101400000000000000000000000000000000000000000000000000000000001410150000000000000000000000000000000000000000000000000000000000141016000000000000000000000000000000000000000000000000000000000014101700000000000000000000000000000000000000000000000000000000001410180000000000000000000000000000000000000000000000000000000000141019000000000000000000000000000000000000000000000000000000000014101a000000000000000000000000000000000000000000000000000000000014101b000000000000000000000000000000000000000000000000000000000014101c000000000000000000000000000000000000000000000000000000000014101d000000000000000000000000000000000000000000000000000000000014101e000000000000000000000000000000000000000000000000000000000014101f0000000000000000000000000000000000000000000000000000000000141020000000000000000000000000000000000000000000000000000000000014102100000000000000000000000000000000000000000000000000000000001410220000000000000000000000000000000000000000000000000000000000141023000000000000000000000000000000000000000000000000000000000014102400000000000000000000000000000000000000000000000000000000001410250000000000000000000000000000000000000000000000000000000000141026000000000000000000000000000000000000000000000000000000000014102700000000000000000000000000000000000000000000000000000000001410280000000000000000000000000000000000000000000000000000000000141029000000000000000000000000000000000000000000000000000000000014102a000000000000000000000000000000000000000000000000000000000014102b000000000000000000000000000000000000000000000000000000000014102c000000000000000000000000000000000000000000000000000000000014102d000000000000000000000000000000000000000000000000000000000014102e000000000000000000000000000000000000000000000000000000000014102f0000000000000000000000000000000000000000000000000000000000141030000000000000000000000000000000000000000000000000000000000014103100000000000000000000000000000000000000000000000000000000001410320000000000000000000000000000000000000000000000000000000000141033000000000000000000000000000000000000000000000000000000000014103400000000000000000000000000000000000000000000000000000000001410350000000000000000000000000000000000000000000000000000000000141036000000000000000000000000000000000000000000000000000000000014103700000000000000000000000000000000000000000000000000000000001410380000000000000000000000000000000000000000000000000000000000141039000000000000000000000000000000000000000000000000000000000014103a000000000000000000000000000000000000000000000000000000000014103b000000000000000000000000000000000000000000000000000000000014103c000000000000000000000000000000000000000000000000000000000014103d000000000000000000000000000000000000000000000000000000000014103e000000000000000000000000000000000000000000000000000000000014103f4000000000000000000000000000000000000000000000000000000000001400010000000000000000000000000000000000000000000000000000000000141100000000000000000000000000000000000000000000000000000000000014110100000000000000000000000000000000000000000000000000000000001411020000000000000000000000000000000000000000000000000000000000141103000000000000000000000000000000000000000000000000000000000014110400000000000000000000000000000000000000000000000000000000001411050000000000000000000000000000000000000000000000000000000000141106000000000000000000000000000000000000000000000000000000000014110700000000000000000000000000000000000000000000000000000000001411080000000000000000000000000000000000000000000000000000000000141109000000000000000000000000000000000000000000000000000000000014110a000000000000000000000000000000000000000000000000000000000014110b000000000000000000000000000000000000000000000000000000000014110c000000000000000000000000000000000000000000000000000000000014110d000000000000000000000000000000000000000000000000000000000014110e000000000000000000000000000000000000000000000000000000000014110f0000000000000000000000000000000000000000000000000000000000141110000000000000000000000000000000000000000000000000000000000014111100000000000000000000000000000000000000000000000000000000001411120000000000000000000000000000000000000000000000000000000000141113000000000000000000000000000000000000000000000000000000000014111400000000000000000000000000000000000000000000000000000000001411150000000000000000000000000000000000000000000000000000000000141116000000000000000000000000000000000000000000000000000000000014111700000000000000000000000000000000000000000000000000000000001411180000000000000000000000000000000000000000000000000000000000141119000000000000000000000000000000000000000000000000000000000014111a000000000000000000000000000000000000000000000000000000000014111b000000000000000000000000000000000000000000000000000000000014111c000000000000000000000000000000000000000000000000000000000014111d000000000000000000000000000000000000000000000000000000000014111e000000000000000000000000000000000000000000000000000000000014111f0000000000000000000000000000000000000000000000000000000000141120000000000000000000000000000000000000000000000000000000000014112100000000000000000000000000000000000000000000000000000000001411220000000000000000000000000000000000000000000000000000000000141123000000000000000000000000000000000000000000000000000000000014112400000000000000000000000000000000000000000000000000000000001411250000000000000000000000000000000000000000000000000000000000141126000000000000000000000000000000000000000000000000000000000014112700000000000000000000000000000000000000000000000000000000001411280000000000000000000000000000000000000000000000000000000000141129000000000000000000000000000000000000000000000000000000000014112a000000000000000000000000000000000000000000000000000000000014112b000000000000000000000000000000000000000000000000000000000014112c000000000000000000000000000000000000000000000000000000000014112d000000000000000000000000000000000000000000000000000000000014112e000000000000000000000000000000000000000000000000000000000014112f0000000000000000000000000000000000000000000000000000000000141130000000000000000000000000000000000000000000000000000000000014113100000000000000000000000000000000000000000000000000000000001411320000000000000000000000000000000000000000000000000000000000141133000000000000000000000000000000000000000000000000000000000014113400000000000000000000000000000000000000000000000000000000001411350000000000000000000000000000000000000000000000000000000000141136000000000000000000000000000000000000000000000000000000000014113700000000000000000000000000000000000000000000000000000000001411380000000000000000000000000000000000000000000000000000000000141139000000000000000000000000000000000000000000000000000000000014113a000000000000000000000000000000000000000000000000000000000014113b000000000000000000000000000000000000000000000000000000000014113c000000000000000000000000000000000000000000000000000000000014113d000000000000000000000000000000000000000000000000000000000014113e0800a08a769cb8bda75b7c8d38fffa83be728b5b393c9e2b95eaaa44abf3d5658200cd9c71c76b6c8d8446b3c04e1e8ecbc1f618291bebca13972dce862ecd51e5003b5d5e3a7cf6e57f028d316e7e2b5a5d159e8a8b6bc1766a938943c2a7b6a300fa2071bae09a7788514eb964592e2d20f4341cabdbd47285a08cc0c333347a001916dc896a9fd77fc8e81e43610354128ec3fcba838f222621dc75224b8a800034cd0510c3316fb269df3dfbf17834257a30d7e107f77307c739bc70589ed50070397ea23429e4825a8c23a281c5867bbfdb6fa0bd6447efe3542b7642a0050062aacc4bf08f5d64e36f4552834e665185cf43f17232546c7b498e7346c2aa400000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142001000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142002000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142003000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142004000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142005000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420060000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014200700000000000000000000000000000000000000000000000000000000001420110000000000000000000000000000000000000000000000000000000000142008000000000000000000000000000000000000000000000000000000000014201200000000000000000000000000000000000000000000000000000000001420090000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142016000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142017000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142011000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142012000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420160000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014201700000000000000000000000000000000000000000000000000000000001420210000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014202200000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142026000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142027000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142021000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142022000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420260000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014202700000000000000000000000000000000000000000000000000000000001420310000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014203200000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142036000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142037000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142031000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142032000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014203f00000000000000000000000000000000000000000000000000000000001420360000000000000000000000000000000000000000000000000000000000142040000000000000000000000000000000000000000000000000000000000014203700000000000000000000000000000000000000000000000000000000001420410000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014204200000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142043000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142044000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142045000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142046000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142047000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142048000000000000000000000000000000000000000000000000000000000014203f0000000000000000000000000000000000000000000000000000000000142049200000000000000000000000000000000000000000000000000000000000141700000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000012000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000001200000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000120000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000012000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000001200000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000120000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000012000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000001200000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000120000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a00000012000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b00000012000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c00000012000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d00000012000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e00000012000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f00000012000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000120000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000012000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000001200000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000012000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000001200000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000120000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000012000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000001200000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000120000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a00000012000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b00000012000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c00000012000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d00000012000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e00000012000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f00000012000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f0000000000000000000000000000000000000000000000000000000000141730000000120000", + "body": "0x00000001003046c80cd5c2a8fbefcf23d1f6dcc7b66321d2fe720f6b2db3fb5939ee82e8e80000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000014100100000000000000000000000000000000000000000000000000000000001410020000000000000000000000000000000000000000000000000000000000141003000000000000000000000000000000000000000000000000000000000014100400000000000000000000000000000000000000000000000000000000001410050000000000000000000000000000000000000000000000000000000000141006000000000000000000000000000000000000000000000000000000000014100700000000000000000000000000000000000000000000000000000000001410080000000000000000000000000000000000000000000000000000000000141009000000000000000000000000000000000000000000000000000000000014100a000000000000000000000000000000000000000000000000000000000014100b000000000000000000000000000000000000000000000000000000000014100c000000000000000000000000000000000000000000000000000000000014100d000000000000000000000000000000000000000000000000000000000014100e000000000000000000000000000000000000000000000000000000000014100f0000000000000000000000000000000000000000000000000000000000141010000000000000000000000000000000000000000000000000000000000014101100000000000000000000000000000000000000000000000000000000001410120000000000000000000000000000000000000000000000000000000000141013000000000000000000000000000000000000000000000000000000000014101400000000000000000000000000000000000000000000000000000000001410150000000000000000000000000000000000000000000000000000000000141016000000000000000000000000000000000000000000000000000000000014101700000000000000000000000000000000000000000000000000000000001410180000000000000000000000000000000000000000000000000000000000141019000000000000000000000000000000000000000000000000000000000014101a000000000000000000000000000000000000000000000000000000000014101b000000000000000000000000000000000000000000000000000000000014101c000000000000000000000000000000000000000000000000000000000014101d000000000000000000000000000000000000000000000000000000000014101e000000000000000000000000000000000000000000000000000000000014101f0000000000000000000000000000000000000000000000000000000000141020000000000000000000000000000000000000000000000000000000000014102100000000000000000000000000000000000000000000000000000000001410220000000000000000000000000000000000000000000000000000000000141023000000000000000000000000000000000000000000000000000000000014102400000000000000000000000000000000000000000000000000000000001410250000000000000000000000000000000000000000000000000000000000141026000000000000000000000000000000000000000000000000000000000014102700000000000000000000000000000000000000000000000000000000001410280000000000000000000000000000000000000000000000000000000000141029000000000000000000000000000000000000000000000000000000000014102a000000000000000000000000000000000000000000000000000000000014102b000000000000000000000000000000000000000000000000000000000014102c000000000000000000000000000000000000000000000000000000000014102d000000000000000000000000000000000000000000000000000000000014102e000000000000000000000000000000000000000000000000000000000014102f0000000000000000000000000000000000000000000000000000000000141030000000000000000000000000000000000000000000000000000000000014103100000000000000000000000000000000000000000000000000000000001410320000000000000000000000000000000000000000000000000000000000141033000000000000000000000000000000000000000000000000000000000014103400000000000000000000000000000000000000000000000000000000001410350000000000000000000000000000000000000000000000000000000000141036000000000000000000000000000000000000000000000000000000000014103700000000000000000000000000000000000000000000000000000000001410380000000000000000000000000000000000000000000000000000000000141039000000000000000000000000000000000000000000000000000000000014103a000000000000000000000000000000000000000000000000000000000014103b000000000000000000000000000000000000000000000000000000000014103c000000000000000000000000000000000000000000000000000000000014103d000000000000000000000000000000000000000000000000000000000014103e000000000000000000000000000000000000000000000000000000000014103f4000000000000000000000000000000000000000000000000000000000001400010000000000000000000000000000000000000000000000000000000000141100000000000000000000000000000000000000000000000000000000000014110100000000000000000000000000000000000000000000000000000000001411020000000000000000000000000000000000000000000000000000000000141103000000000000000000000000000000000000000000000000000000000014110400000000000000000000000000000000000000000000000000000000001411050000000000000000000000000000000000000000000000000000000000141106000000000000000000000000000000000000000000000000000000000014110700000000000000000000000000000000000000000000000000000000001411080000000000000000000000000000000000000000000000000000000000141109000000000000000000000000000000000000000000000000000000000014110a000000000000000000000000000000000000000000000000000000000014110b000000000000000000000000000000000000000000000000000000000014110c000000000000000000000000000000000000000000000000000000000014110d000000000000000000000000000000000000000000000000000000000014110e000000000000000000000000000000000000000000000000000000000014110f0000000000000000000000000000000000000000000000000000000000141110000000000000000000000000000000000000000000000000000000000014111100000000000000000000000000000000000000000000000000000000001411120000000000000000000000000000000000000000000000000000000000141113000000000000000000000000000000000000000000000000000000000014111400000000000000000000000000000000000000000000000000000000001411150000000000000000000000000000000000000000000000000000000000141116000000000000000000000000000000000000000000000000000000000014111700000000000000000000000000000000000000000000000000000000001411180000000000000000000000000000000000000000000000000000000000141119000000000000000000000000000000000000000000000000000000000014111a000000000000000000000000000000000000000000000000000000000014111b000000000000000000000000000000000000000000000000000000000014111c000000000000000000000000000000000000000000000000000000000014111d000000000000000000000000000000000000000000000000000000000014111e000000000000000000000000000000000000000000000000000000000014111f0000000000000000000000000000000000000000000000000000000000141120000000000000000000000000000000000000000000000000000000000014112100000000000000000000000000000000000000000000000000000000001411220000000000000000000000000000000000000000000000000000000000141123000000000000000000000000000000000000000000000000000000000014112400000000000000000000000000000000000000000000000000000000001411250000000000000000000000000000000000000000000000000000000000141126000000000000000000000000000000000000000000000000000000000014112700000000000000000000000000000000000000000000000000000000001411280000000000000000000000000000000000000000000000000000000000141129000000000000000000000000000000000000000000000000000000000014112a000000000000000000000000000000000000000000000000000000000014112b000000000000000000000000000000000000000000000000000000000014112c000000000000000000000000000000000000000000000000000000000014112d000000000000000000000000000000000000000000000000000000000014112e000000000000000000000000000000000000000000000000000000000014112f0000000000000000000000000000000000000000000000000000000000141130000000000000000000000000000000000000000000000000000000000014113100000000000000000000000000000000000000000000000000000000001411320000000000000000000000000000000000000000000000000000000000141133000000000000000000000000000000000000000000000000000000000014113400000000000000000000000000000000000000000000000000000000001411350000000000000000000000000000000000000000000000000000000000141136000000000000000000000000000000000000000000000000000000000014113700000000000000000000000000000000000000000000000000000000001411380000000000000000000000000000000000000000000000000000000000141139000000000000000000000000000000000000000000000000000000000014113a000000000000000000000000000000000000000000000000000000000014113b000000000000000000000000000000000000000000000000000000000014113c000000000000000000000000000000000000000000000000000000000014113d000000000000000000000000000000000000000000000000000000000014113e08000c8f19ae5904a2dad51d949acace1f9a43797b608850aa3bd9cf75030da112005120fdd77b6d0da9ab7f395746c2d02bada5f285e58dc1a14861538ffdfd2d000f3e98b0834a5000b70001164193437191a394378c22e0f5d6b4247e3b163b00ff1a741df40ff77f17e92c5a755eea5ff09b3f35ea1999242802329bb894c70054adf67a0cf6680b22ac32b1154398a03192d9b5ec46ae8c15a0e303eeedd200d4bd4fda9903c8012d1d79f8b3c0cdbdb51623e0e7097f7f1f14b7a2c2b21200ba3f18490b0473faa298f8405b5b6496c44c62c9d1bfd86b1d0d616cd3661b008a9917e83ea96e4e81834a09fe9c4cb180402817edbde581b77ad0955d9f28400000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142001000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142002000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142003000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142004000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142005000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420060000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014200700000000000000000000000000000000000000000000000000000000001420110000000000000000000000000000000000000000000000000000000000142008000000000000000000000000000000000000000000000000000000000014201200000000000000000000000000000000000000000000000000000000001420090000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014200a0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014200b0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014200c0000000000000000000000000000000000000000000000000000000000142016000000000000000000000000000000000000000000000000000000000014200d0000000000000000000000000000000000000000000000000000000000142017000000000000000000000000000000000000000000000000000000000014200e0000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014200f00000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142010000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142011000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142012000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142013000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142014000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142015000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420160000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014201700000000000000000000000000000000000000000000000000000000001420210000000000000000000000000000000000000000000000000000000000142018000000000000000000000000000000000000000000000000000000000014202200000000000000000000000000000000000000000000000000000000001420190000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014201a0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014201b0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014201c0000000000000000000000000000000000000000000000000000000000142026000000000000000000000000000000000000000000000000000000000014201d0000000000000000000000000000000000000000000000000000000000142027000000000000000000000000000000000000000000000000000000000014201e0000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014201f00000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142020000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142021000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142022000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142023000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142024000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142025000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420260000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014202700000000000000000000000000000000000000000000000000000000001420310000000000000000000000000000000000000000000000000000000000142028000000000000000000000000000000000000000000000000000000000014203200000000000000000000000000000000000000000000000000000000001420290000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014202a0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014202b0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014202c0000000000000000000000000000000000000000000000000000000000142036000000000000000000000000000000000000000000000000000000000014202d0000000000000000000000000000000000000000000000000000000000142037000000000000000000000000000000000000000000000000000000000014202e0000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014202f00000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142030000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142031000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142032000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142033000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142034000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142035000000000000000000000000000000000000000000000000000000000014203f00000000000000000000000000000000000000000000000000000000001420360000000000000000000000000000000000000000000000000000000000142040000000000000000000000000000000000000000000000000000000000014203700000000000000000000000000000000000000000000000000000000001420410000000000000000000000000000000000000000000000000000000000142038000000000000000000000000000000000000000000000000000000000014204200000000000000000000000000000000000000000000000000000000001420390000000000000000000000000000000000000000000000000000000000142043000000000000000000000000000000000000000000000000000000000014203a0000000000000000000000000000000000000000000000000000000000142044000000000000000000000000000000000000000000000000000000000014203b0000000000000000000000000000000000000000000000000000000000142045000000000000000000000000000000000000000000000000000000000014203c0000000000000000000000000000000000000000000000000000000000142046000000000000000000000000000000000000000000000000000000000014203d0000000000000000000000000000000000000000000000000000000000142047000000000000000000000000000000000000000000000000000000000014203e0000000000000000000000000000000000000000000000000000000000142048000000000000000000000000000000000000000000000000000000000014203f0000000000000000000000000000000000000000000000000000000000142049200000000000000000000000000000000000000000000000000000000000141700000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000012000000000000000000000000000000000000000000000000000000000014170100000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000001200000000000000000000000000000000000000000000000000000000001417020000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000120000000000000000000000000000000000000000000000000000000000141703000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000012000000000000000000000000000000000000000000000000000000000014170400000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000001200000000000000000000000000000000000000000000000000000000001417050000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000120000000000000000000000000000000000000000000000000000000000141706000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000012000000000000000000000000000000000000000000000000000000000014170700000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000001200000000000000000000000000000000000000000000000000000000001417080000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000120000000000000000000000000000000000000000000000000000000000141709000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a00000012000000000000000000000000000000000000000000000000000000000014170a000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b00000012000000000000000000000000000000000000000000000000000000000014170b000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c00000012000000000000000000000000000000000000000000000000000000000014170c000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d00000012000000000000000000000000000000000000000000000000000000000014170d000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e00000012000000000000000000000000000000000000000000000000000000000014170e000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f00000012000000000000000000000000000000000000000000000000000000000014170f0000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000120000000000000000000000000000000000000000000000000000000000141710000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000012000000000000000000000000000000000000000000000000000000000014171100000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000001200000000000000000000000000000000000000000000000000000000001417120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000120000000000000000000000000000000000000000000000000000000000141713000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000012000000000000000000000000000000000000000000000000000000000014171400000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000001200000000000000000000000000000000000000000000000000000000001417150000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000120000000000000000000000000000000000000000000000000000000000141716000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000012000000000000000000000000000000000000000000000000000000000014171700000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000001200000000000000000000000000000000000000000000000000000000001417180000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000120000000000000000000000000000000000000000000000000000000000141719000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a00000012000000000000000000000000000000000000000000000000000000000014171a000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b00000012000000000000000000000000000000000000000000000000000000000014171b000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c00000012000000000000000000000000000000000000000000000000000000000014171c000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d00000012000000000000000000000000000000000000000000000000000000000014171d000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e00000012000000000000000000000000000000000000000000000000000000000014171e000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f00000012000000000000000000000000000000000000000000000000000000000014171f0000000000000000000000000000000000000000000000000000000000141720000000000000000000000000000000000000000000000000000000000014172100000000000000000000000000000000000000000000000000000000001417220000000000000000000000000000000000000000000000000000000000141723000000000000000000000000000000000000000000000000000000000014172400000000000000000000000000000000000000000000000000000000001417250000000000000000000000000000000000000000000000000000000000141726000000000000000000000000000000000000000000000000000000000014172700000000000000000000000000000000000000000000000000000000001417280000000000000000000000000000000000000000000000000000000000141729000000000000000000000000000000000000000000000000000000000014172a000000000000000000000000000000000000000000000000000000000014172b000000000000000000000000000000000000000000000000000000000014172c000000000000000000000000000000000000000000000000000000000014172d000000000000000000000000000000000000000000000000000000000014172e000000000000000000000000000000000000000000000000000000000014172f0000000000000000000000000000000000000000000000000000000000141730000000120000", "decodedHeader": { - "lastArchiveRoot": "0x111649e92f8511208909dfbf90537a526ce97f91c19cd5fb7876d90ae138a2cf", + "lastArchiveRoot": "0x0e7b7cea4889ec2cef481eb934dd2a59b94dae580cd03db46a1b3e4da004f4c4", "contentCommitment": { - "blobsHash": "0x009c89b0d718146dfd9cfd3979fbfec5ef57cf6b5282fcaf2c3d7ef8ed41fc88", - "inHash": "0x002ab5d7660595b8ce52a517e276a6b5456429c690605ce38f86ec65a5077f13", - "outHash": "0x00437efc49e24e8dea614a9c41a025d5434bde0eb22488f650b16177ffe7739d", + "blobsHash": "0x0011abf0c03d8491e019d7aadcbd16a9243950e6c01361ef57e8a4121d4f7175", + "inHash": "0x007167ac414aec88d31a0254cc817bbb927f263b79e6dd39b325f6a99b22f657", + "outHash": "0x003de8e6830059ffd1c9a392745c4b33fbb082c5cad7e07cc11f023e0f52a9f0", "numTxs": 1 }, "slotNumber": "0x0000000000000000000000000000000000000000000000000000000000000032", - "timestamp": 1747164008, - "coinbase": "0x37703282b58cf3439cc94ef0f4ed92821a6412db", - "feeRecipient": "0x0589b860e530263b34ddbc964cf44b70e668f0a55a8e4b1598adc95e85fc2f5f", + "timestamp": 1747751516, + "coinbase": "0x654d537e08ab9f37befdcb3dd320739e2f672be1", + "feeRecipient": "0x1e9c7c8f36174b70f4d8d2af83f511c854bdd92b2f7e3244fc985d98523936f3", "gasFees": { "feePerDaGas": 0, "feePerL2Gas": 1020 }, "totalManaUsed": "0x0000000000000000000000000000000000000000000000000000000000000000" }, - "header": "0x111649e92f8511208909dfbf90537a526ce97f91c19cd5fb7876d90ae138a2cf0000000000000000000000000000000000000000000000000000000000000001009c89b0d718146dfd9cfd3979fbfec5ef57cf6b5282fcaf2c3d7ef8ed41fc88002ab5d7660595b8ce52a517e276a6b5456429c690605ce38f86ec65a5077f1300437efc49e24e8dea614a9c41a025d5434bde0eb22488f650b16177ffe7739d00000000000000000000000000000000000000000000000000000000000000320000000068239b6837703282b58cf3439cc94ef0f4ed92821a6412db0589b860e530263b34ddbc964cf44b70e668f0a55a8e4b1598adc95e85fc2f5f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc0000000000000000000000000000000000000000000000000000000000000000", + "header": "0x0e7b7cea4889ec2cef481eb934dd2a59b94dae580cd03db46a1b3e4da004f4c400000000000000000000000000000000000000000000000000000000000000010011abf0c03d8491e019d7aadcbd16a9243950e6c01361ef57e8a4121d4f7175007167ac414aec88d31a0254cc817bbb927f263b79e6dd39b325f6a99b22f657003de8e6830059ffd1c9a392745c4b33fbb082c5cad7e07cc11f023e0f52a9f0000000000000000000000000000000000000000000000000000000000000003200000000682c925c654d537e08ab9f37befdcb3dd320739e2f672be11e9c7c8f36174b70f4d8d2af83f511c854bdd92b2f7e3244fc985d98523936f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fc0000000000000000000000000000000000000000000000000000000000000000", "numTxs": 1 } } \ No newline at end of file diff --git a/l1-contracts/test/validator-selection/ValidatorSelection.t.sol b/l1-contracts/test/validator-selection/ValidatorSelection.t.sol index a224bad73bfa..5b46bbd5099d 100644 --- a/l1-contracts/test/validator-selection/ValidatorSelection.t.sol +++ b/l1-contracts/test/validator-selection/ValidatorSelection.t.sol @@ -429,7 +429,7 @@ contract ValidatorSelectionTest is ValidatorSelectionTestBase { emit log("Time to propose"); vm.prank(ree.proposer); - rollup.propose(args, attestations, full.block.blobInputs); + rollup.propose(args, attestations, full.block.blobCommitments); if (ree.shouldRevert) { return; @@ -446,7 +446,7 @@ contract ValidatorSelectionTest is ValidatorSelectionTestBase { ); ree.shouldRevert = true; } - rollup.propose(args, attestations, full.block.blobInputs); + rollup.propose(args, attestations, full.block.blobCommitments); } assertEq(_expectRevert, ree.shouldRevert, "Does not match revert expectation"); diff --git a/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching.nr b/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching.nr index 0404ea28401a..edcb6f396339 100644 --- a/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching.nr +++ b/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching.nr @@ -67,7 +67,7 @@ pub fn evaluate_blobs_and_batch( hashed_blobs_fields, final_blob_challenges.z, ); - // TODO(MW): If the evaluation being zero is sufficient to say the blob i is empty, remove the range check. + // TODO(#14646): If the evaluation being zero is sufficient to say the blob i is empty, remove the range check. // The range check exists because we cannot use c_i (it's injected and L1 relies on this circuit to check whether the blob is // empty for c_i = O) or z_i (z_i relies on the hashed_blobs_fields, which is the hash of the items in ALL block blobs, not just i). let is_empty_blob = sponge_blob.fields <= i * FIELDS_PER_BLOB; diff --git a/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching_public_inputs.nr index 4bb536db6b28..d350405e5c03 100644 --- a/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/blob/src/blob_batching_public_inputs.nr @@ -102,7 +102,7 @@ fn get_flags(point: BLSPoint) -> ([bool; 3], Q) { (flags, x) } -// TODO: Will be part of bigcurve's compression functionality +// TODO(MW): Will be part of bigcurve's compression functionality // Given [is_compressed, is_infinity, is_greater] and the point's most significant byte, returns that // byte with the flags set. fn set_flags(flags: [bool; 3], byte: u8) -> u8 { @@ -153,7 +153,7 @@ impl Empty for BlobAccumulationInputs { * - We encompass all the blob elements in challenges (z_i) unique to each blob by using the above H(input_elements) * and the blob's commitment (c_i). * -* TODO(MW): Compress F and Q values to reduce number of public inputs (BLOB_ACCUMULATOR_PUBLIC_INPUTS) +* TODO(#14646): Compress F and Q values to reduce number of public inputs (BLOB_ACCUMULATOR_PUBLIC_INPUTS) */ pub struct BlobAccumulatorPublicInputs { pub blob_commitments_hash_acc: Field, // Hash of Cs (to link to L1 blob hashes) (BN254Fr) diff --git a/noir-projects/noir-protocol-circuits/crates/blob/src/mock_blob_oracle.nr b/noir-projects/noir-protocol-circuits/crates/blob/src/mock_blob_oracle.nr index 85693f7caf3d..58c1be0d1363 100644 --- a/noir-projects/noir-protocol-circuits/crates/blob/src/mock_blob_oracle.nr +++ b/noir-projects/noir-protocol-circuits/crates/blob/src/mock_blob_oracle.nr @@ -1,25 +1,37 @@ -use crate::blob_public_inputs::{BlobCommitment, BlockBlobPublicInputs}; +use crate::blob_batching_public_inputs::{ + BlobAccumulatorPublicInputs, BLSPoint, FinalBlobBatchingChallenges, +}; use types::{ abis::sponge_blob::SpongeBlob, - constants::{BLOB_PUBLIC_INPUTS, BLOBS_PER_BLOCK, FIELDS_PER_BLOB}, - traits::Deserialize, + constants::{BLOB_ACCUMULATOR_PUBLIC_INPUTS, BLOBS_PER_BLOCK, FIELDS_PER_BLOB}, + traits::{Deserialize, Serialize}, }; // TODO(#10323): this was added to save simulation time (~1min in ACVM, ~3mins in wasm -> 500ms). // The use of bignum adds a lot of unconstrained code which overloads limits when simulating. // If/when simulation times of unconstrained are improved, remove this. -pub unconstrained fn evaluate_blobs( +pub unconstrained fn evaluate_blobs_and_batch( blobs_as_fields: [Field; FIELDS_PER_BLOB * BLOBS_PER_BLOCK], - kzg_commitments: [BlobCommitment; BLOBS_PER_BLOCK], + kzg_commitments: [BLSPoint; BLOBS_PER_BLOCK], mut sponge_blob: SpongeBlob, -) -> BlockBlobPublicInputs { - let fields = evaluate_blobs_oracle(blobs_as_fields, kzg_commitments, sponge_blob); - BlockBlobPublicInputs::deserialize(fields) + final_blob_challenges: FinalBlobBatchingChallenges, + start_accumulator: BlobAccumulatorPublicInputs, +) -> BlobAccumulatorPublicInputs { + let fields = evaluate_blobs_oracle( + blobs_as_fields, + kzg_commitments, + sponge_blob, + final_blob_challenges, + start_accumulator.serialize(), // Serialize makes reading info easier in foreign_call_handler + ); + BlobAccumulatorPublicInputs::deserialize(fields) } #[oracle(evaluateBlobs)] unconstrained fn evaluate_blobs_oracle( blobs_as_fields: [Field; FIELDS_PER_BLOB * BLOBS_PER_BLOCK], - kzg_commitments: [BlobCommitment; BLOBS_PER_BLOCK], + kzg_commitments: [BLSPoint; BLOBS_PER_BLOCK], mut sponge_blob: SpongeBlob, -) -> [Field; BLOB_PUBLIC_INPUTS * BLOBS_PER_BLOCK] {} + final_blob_challenges: FinalBlobBatchingChallenges, + start_accumulator: [Field; BLOB_ACCUMULATOR_PUBLIC_INPUTS], +) -> [Field; BLOB_ACCUMULATOR_PUBLIC_INPUTS] {} diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml index 5f5b2d8ea018..2865789de28c 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml @@ -2,7 +2,7 @@ [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs] out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" proposed_block_header_hashes = [ - "0x00417d2c7feabdeebc7973fbac74d5d3595d471047b51521c840854320d9dd79", + "0x007e2bd914a7399b58061b737d14134d716fe0074a4607bc8a2f58f56dd59a43", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -51,57 +51,57 @@ proposed_block_header_hashes = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] -vk_tree_root = "0x20af990958e8575ae0f803c8a491a00c3734fc1df32d7aee2f29d13a0f14e157" -protocol_contract_tree_root = "0x13b587f58f77a7ad53b50e5509a4aff45cf77ccd44d7e5af3ea19c51bcc02d0d" +vk_tree_root = "0x16e00802cd510c69cab77438b8f92c7fc6c1f77e983b2302bcb3e85e15c95eac" +protocol_contract_tree_root = "0x19ba79743ba96572bcb08efcff26637d21a4342b6eb58870935b0cbbd14d24cf" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.previous_archive] - root = "0x28b736e155feabaa3f1c86694f8195828dc14d5b8480eb2ac41410a8874ea241" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000007" + root = "0x2a3fbfdd7f5fb12e887eacaae0108766b0a9d928b58504857dcebe633fc7ec6d" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.new_archive] - root = "0x1d3846bf57ef0320b75010d507a359d7f2a0220ecb6f19266cf817ae88990747" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" + root = "0x179ae87479c2a7beed82435029f39193e34a9c4de23ff3fbbef3f3b226ebe2ad" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000007" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000021" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091d2" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db8e3" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000007" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000021" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091d2" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db8e3" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x00000000000000000000000000000000000000000000000000000000264b8e00" + value = "0x0000000000000000000000000000000000000000000000000000000003678600" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -385,5763 +385,1231 @@ prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x26d276a291d7f65d70e89d96cfb458ec231dfeb4da7f31f31b9861517d80fd59" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0xdeafcb066a39431cddcca4ca925d83", - "0x89773b64622d0616b7a00d44eef10b", - "0x354d" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x00b3a74c75df3d1ae9e2d85b914ec5a3eae2caeb74d94604ad6754601629c008", - "0x0000000000000000000000000000009aa27f558eb18a2476ea5df0052ffde0d4" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator] +blob_commitments_hash_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" +z_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" +gamma_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.y_acc] limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", "0x0000" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc] + is_infinity = true - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.x] + limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x000000" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.y] + limbs = [ "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", - "0x0000" + "0x000000" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", "0x0000" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator] +blob_commitments_hash_acc = "0x00187829a9ce563ef3b09676aab68d45ff788b4ebcaf50d8537dc8a60bff16d5" +z_acc = "0x037c91f7c20cd129e530d7394a5b13712490b6519ce3146eefb6142707d1feed" +gamma_acc = "0x2c165f80e26ef0e01d0df74c3ae4a6d8d7041fbea2d441ebcb6f8572f7135b8e" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0xf6faa1e454907bcf639fbf08893c9a", + "0x646a3a370a047c531df74f8938396d", + "0x11bf" ] - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc] + is_infinity = false - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.x] + limbs = [ + "0x891544dcb6a857d6a29f469e0c1dfb", + "0xa733e1be542137fb2c91536493ac1f", + "0xafb101fff9677977445d144daeb7f5", + "0x175f99" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.y] + limbs = [ + "0x17bde297bf99f1e5e4a791acb171c6", + "0xbe33c99c2faf15f2d76e90595e59fe", + "0xa0dfda2abded52ad4053f7b0e493b9", + "0x097585" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges] +z = "0x0cc935911cd6e85cd04a92e9140e34d4c8a576c5f9f85959dd30706c7021f4ac" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges.gamma] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" ] - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[inputs.previous_rollup_data.proof] -fields = [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000007", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x000000000000000000000000000000000000000000000000000000000000000b", - "0x000000000000000000000000000000000000000000000000000000000000000c", - "0x000000000000000000000000000000000000000000000000000000000000000d", - "0x000000000000000000000000000000000000000000000000000000000000000e", - "0x000000000000000000000000000000000000000000000000000000000000000f", - "0x0000000000000000000000000000000000000000000000000000000000000010", - "0x0000000000000000000000000000000000000000000000000000000000000011", - "0x0000000000000000000000000000000000000000000000000000000000000012", - "0x0000000000000000000000000000000000000000000000000000000000000013", - "0x0000000000000000000000000000000000000000000000000000000000000014", - "0x0000000000000000000000000000000000000000000000000000000000000015", - "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x0000000000000000000000000000000000000000000000000000000000000017", - "0x0000000000000000000000000000000000000000000000000000000000000018", - "0x0000000000000000000000000000000000000000000000000000000000000019", - "0x000000000000000000000000000000000000000000000000000000000000001a", - "0x000000000000000000000000000000000000000000000000000000000000001b", - "0x000000000000000000000000000000000000000000000000000000000000001c", - "0x000000000000000000000000000000000000000000000000000000000000001d", - "0x000000000000000000000000000000000000000000000000000000000000001e", - "0x000000000000000000000000000000000000000000000000000000000000001f", - "0x0000000000000000000000000000000000000000000000000000000000000020", - "0x0000000000000000000000000000000000000000000000000000000000000021", - "0x0000000000000000000000000000000000000000000000000000000000000022", - "0x0000000000000000000000000000000000000000000000000000000000000023", - "0x0000000000000000000000000000000000000000000000000000000000000024", - "0x0000000000000000000000000000000000000000000000000000000000000025", - "0x0000000000000000000000000000000000000000000000000000000000000026", - "0x0000000000000000000000000000000000000000000000000000000000000027", - "0x0000000000000000000000000000000000000000000000000000000000000028", - "0x0000000000000000000000000000000000000000000000000000000000000029", - "0x000000000000000000000000000000000000000000000000000000000000002a", - "0x000000000000000000000000000000000000000000000000000000000000002b", - "0x000000000000000000000000000000000000000000000000000000000000002c", - "0x000000000000000000000000000000000000000000000000000000000000002d", - "0x000000000000000000000000000000000000000000000000000000000000002e", - "0x000000000000000000000000000000000000000000000000000000000000002f", - "0x0000000000000000000000000000000000000000000000000000000000000030", - "0x0000000000000000000000000000000000000000000000000000000000000031", - "0x0000000000000000000000000000000000000000000000000000000000000032", - "0x0000000000000000000000000000000000000000000000000000000000000033", - "0x0000000000000000000000000000000000000000000000000000000000000034", - "0x0000000000000000000000000000000000000000000000000000000000000035", - "0x0000000000000000000000000000000000000000000000000000000000000036", - "0x0000000000000000000000000000000000000000000000000000000000000037", - "0x0000000000000000000000000000000000000000000000000000000000000038", - "0x0000000000000000000000000000000000000000000000000000000000000039", - "0x000000000000000000000000000000000000000000000000000000000000003a", - "0x000000000000000000000000000000000000000000000000000000000000003b", - "0x000000000000000000000000000000000000000000000000000000000000003c", - "0x000000000000000000000000000000000000000000000000000000000000003d", - "0x000000000000000000000000000000000000000000000000000000000000003e", - "0x000000000000000000000000000000000000000000000000000000000000003f", - "0x0000000000000000000000000000000000000000000000000000000000000040", - "0x0000000000000000000000000000000000000000000000000000000000000041", - "0x0000000000000000000000000000000000000000000000000000000000000042", - "0x0000000000000000000000000000000000000000000000000000000000000043", - "0x0000000000000000000000000000000000000000000000000000000000000044", - "0x0000000000000000000000000000000000000000000000000000000000000045", - "0x0000000000000000000000000000000000000000000000000000000000000046", - "0x0000000000000000000000000000000000000000000000000000000000000047", - "0x0000000000000000000000000000000000000000000000000000000000000048", - "0x0000000000000000000000000000000000000000000000000000000000000049", - "0x000000000000000000000000000000000000000000000000000000000000004a", - "0x000000000000000000000000000000000000000000000000000000000000004b", - "0x000000000000000000000000000000000000000000000000000000000000004c", - "0x000000000000000000000000000000000000000000000000000000000000004d", - "0x000000000000000000000000000000000000000000000000000000000000004e", - "0x000000000000000000000000000000000000000000000000000000000000004f", - "0x0000000000000000000000000000000000000000000000000000000000000050", - "0x0000000000000000000000000000000000000000000000000000000000000051", - "0x0000000000000000000000000000000000000000000000000000000000000052", - "0x0000000000000000000000000000000000000000000000000000000000000053", - "0x0000000000000000000000000000000000000000000000000000000000000054", - "0x0000000000000000000000000000000000000000000000000000000000000055", - "0x0000000000000000000000000000000000000000000000000000000000000056", - "0x0000000000000000000000000000000000000000000000000000000000000057", - "0x0000000000000000000000000000000000000000000000000000000000000058", - "0x0000000000000000000000000000000000000000000000000000000000000059", - "0x000000000000000000000000000000000000000000000000000000000000005a", - "0x000000000000000000000000000000000000000000000000000000000000005b", - "0x000000000000000000000000000000000000000000000000000000000000005c", - "0x000000000000000000000000000000000000000000000000000000000000005d", - "0x000000000000000000000000000000000000000000000000000000000000005e", - "0x000000000000000000000000000000000000000000000000000000000000005f", - "0x0000000000000000000000000000000000000000000000000000000000000060", - "0x0000000000000000000000000000000000000000000000000000000000000061", - "0x0000000000000000000000000000000000000000000000000000000000000062", - "0x0000000000000000000000000000000000000000000000000000000000000063", - "0x0000000000000000000000000000000000000000000000000000000000000064", - "0x0000000000000000000000000000000000000000000000000000000000000065", - "0x0000000000000000000000000000000000000000000000000000000000000066", - "0x0000000000000000000000000000000000000000000000000000000000000067", - "0x0000000000000000000000000000000000000000000000000000000000000068", - "0x0000000000000000000000000000000000000000000000000000000000000069", - "0x000000000000000000000000000000000000000000000000000000000000006a", - "0x000000000000000000000000000000000000000000000000000000000000006b", - "0x000000000000000000000000000000000000000000000000000000000000006c", - "0x000000000000000000000000000000000000000000000000000000000000006d", - "0x000000000000000000000000000000000000000000000000000000000000006e", - "0x000000000000000000000000000000000000000000000000000000000000006f", - "0x0000000000000000000000000000000000000000000000000000000000000070", - "0x0000000000000000000000000000000000000000000000000000000000000071", - "0x0000000000000000000000000000000000000000000000000000000000000072", - "0x0000000000000000000000000000000000000000000000000000000000000073", - "0x0000000000000000000000000000000000000000000000000000000000000074", - "0x0000000000000000000000000000000000000000000000000000000000000075", - "0x0000000000000000000000000000000000000000000000000000000000000076", - "0x0000000000000000000000000000000000000000000000000000000000000077", - "0x0000000000000000000000000000000000000000000000000000000000000078", - "0x0000000000000000000000000000000000000000000000000000000000000079", - "0x000000000000000000000000000000000000000000000000000000000000007a", - "0x000000000000000000000000000000000000000000000000000000000000007b", - "0x000000000000000000000000000000000000000000000000000000000000007c", - "0x000000000000000000000000000000000000000000000000000000000000007d", - "0x000000000000000000000000000000000000000000000000000000000000007e", - "0x000000000000000000000000000000000000000000000000000000000000007f", - "0x0000000000000000000000000000000000000000000000000000000000000080", - "0x0000000000000000000000000000000000000000000000000000000000000081", - "0x0000000000000000000000000000000000000000000000000000000000000082", - "0x0000000000000000000000000000000000000000000000000000000000000083", - "0x0000000000000000000000000000000000000000000000000000000000000084", - "0x0000000000000000000000000000000000000000000000000000000000000085", - "0x0000000000000000000000000000000000000000000000000000000000000086", - "0x0000000000000000000000000000000000000000000000000000000000000087", - "0x0000000000000000000000000000000000000000000000000000000000000088", - "0x0000000000000000000000000000000000000000000000000000000000000089", - "0x000000000000000000000000000000000000000000000000000000000000008a", - "0x000000000000000000000000000000000000000000000000000000000000008b", - "0x000000000000000000000000000000000000000000000000000000000000008c", - "0x000000000000000000000000000000000000000000000000000000000000008d", - "0x000000000000000000000000000000000000000000000000000000000000008e", - "0x000000000000000000000000000000000000000000000000000000000000008f", - "0x0000000000000000000000000000000000000000000000000000000000000090", - "0x0000000000000000000000000000000000000000000000000000000000000091", - "0x0000000000000000000000000000000000000000000000000000000000000092", - "0x0000000000000000000000000000000000000000000000000000000000000093", - "0x0000000000000000000000000000000000000000000000000000000000000094", - "0x0000000000000000000000000000000000000000000000000000000000000095", - "0x0000000000000000000000000000000000000000000000000000000000000096", - "0x0000000000000000000000000000000000000000000000000000000000000097", - "0x0000000000000000000000000000000000000000000000000000000000000098", - "0x0000000000000000000000000000000000000000000000000000000000000099", - "0x000000000000000000000000000000000000000000000000000000000000009a", - "0x000000000000000000000000000000000000000000000000000000000000009b", - "0x000000000000000000000000000000000000000000000000000000000000009c", - "0x000000000000000000000000000000000000000000000000000000000000009d", - "0x000000000000000000000000000000000000000000000000000000000000009e", - "0x000000000000000000000000000000000000000000000000000000000000009f", - "0x00000000000000000000000000000000000000000000000000000000000000a0", - "0x00000000000000000000000000000000000000000000000000000000000000a1", - "0x00000000000000000000000000000000000000000000000000000000000000a2", - "0x00000000000000000000000000000000000000000000000000000000000000a3", - "0x00000000000000000000000000000000000000000000000000000000000000a4", - "0x00000000000000000000000000000000000000000000000000000000000000a5", - "0x00000000000000000000000000000000000000000000000000000000000000a6", - "0x00000000000000000000000000000000000000000000000000000000000000a7", - "0x00000000000000000000000000000000000000000000000000000000000000a8", - "0x00000000000000000000000000000000000000000000000000000000000000a9", - "0x00000000000000000000000000000000000000000000000000000000000000aa", - "0x00000000000000000000000000000000000000000000000000000000000000ab", - "0x00000000000000000000000000000000000000000000000000000000000000ac", - "0x00000000000000000000000000000000000000000000000000000000000000ad", - "0x00000000000000000000000000000000000000000000000000000000000000ae", - "0x00000000000000000000000000000000000000000000000000000000000000af", - "0x00000000000000000000000000000000000000000000000000000000000000b0", - "0x00000000000000000000000000000000000000000000000000000000000000b1", - "0x00000000000000000000000000000000000000000000000000000000000000b2", - "0x00000000000000000000000000000000000000000000000000000000000000b3", - "0x00000000000000000000000000000000000000000000000000000000000000b4", - "0x00000000000000000000000000000000000000000000000000000000000000b5", - "0x00000000000000000000000000000000000000000000000000000000000000b6", - "0x00000000000000000000000000000000000000000000000000000000000000b7", - "0x00000000000000000000000000000000000000000000000000000000000000b8", - "0x00000000000000000000000000000000000000000000000000000000000000b9", - "0x00000000000000000000000000000000000000000000000000000000000000ba", - "0x00000000000000000000000000000000000000000000000000000000000000bb", - "0x00000000000000000000000000000000000000000000000000000000000000bc", - "0x00000000000000000000000000000000000000000000000000000000000000bd", - "0x00000000000000000000000000000000000000000000000000000000000000be", - "0x00000000000000000000000000000000000000000000000000000000000000bf", - "0x00000000000000000000000000000000000000000000000000000000000000c0", - "0x00000000000000000000000000000000000000000000000000000000000000c1", - "0x00000000000000000000000000000000000000000000000000000000000000c2", - "0x00000000000000000000000000000000000000000000000000000000000000c3", - "0x00000000000000000000000000000000000000000000000000000000000000c4", - "0x00000000000000000000000000000000000000000000000000000000000000c5", - "0x00000000000000000000000000000000000000000000000000000000000000c6", - "0x00000000000000000000000000000000000000000000000000000000000000c7", - "0x00000000000000000000000000000000000000000000000000000000000000c8", - "0x00000000000000000000000000000000000000000000000000000000000000c9", - "0x00000000000000000000000000000000000000000000000000000000000000ca", - "0x00000000000000000000000000000000000000000000000000000000000000cb", - "0x00000000000000000000000000000000000000000000000000000000000000cc", - "0x00000000000000000000000000000000000000000000000000000000000000cd", - "0x00000000000000000000000000000000000000000000000000000000000000ce", - "0x00000000000000000000000000000000000000000000000000000000000000cf", - "0x00000000000000000000000000000000000000000000000000000000000000d0", - "0x00000000000000000000000000000000000000000000000000000000000000d1", - "0x00000000000000000000000000000000000000000000000000000000000000d2", - "0x00000000000000000000000000000000000000000000000000000000000000d3", - "0x00000000000000000000000000000000000000000000000000000000000000d4", - "0x00000000000000000000000000000000000000000000000000000000000000d5", - "0x00000000000000000000000000000000000000000000000000000000000000d6", - "0x00000000000000000000000000000000000000000000000000000000000000d7", - "0x00000000000000000000000000000000000000000000000000000000000000d8", - "0x00000000000000000000000000000000000000000000000000000000000000d9", - "0x00000000000000000000000000000000000000000000000000000000000000da", - "0x00000000000000000000000000000000000000000000000000000000000000db", - "0x00000000000000000000000000000000000000000000000000000000000000dc", - "0x00000000000000000000000000000000000000000000000000000000000000dd", - "0x00000000000000000000000000000000000000000000000000000000000000de", - "0x00000000000000000000000000000000000000000000000000000000000000df", - "0x00000000000000000000000000000000000000000000000000000000000000e0", - "0x00000000000000000000000000000000000000000000000000000000000000e1", - "0x00000000000000000000000000000000000000000000000000000000000000e2", - "0x00000000000000000000000000000000000000000000000000000000000000e3", - "0x00000000000000000000000000000000000000000000000000000000000000e4", - "0x00000000000000000000000000000000000000000000000000000000000000e5", - "0x00000000000000000000000000000000000000000000000000000000000000e6", - "0x00000000000000000000000000000000000000000000000000000000000000e7", - "0x00000000000000000000000000000000000000000000000000000000000000e8", - "0x00000000000000000000000000000000000000000000000000000000000000e9", - "0x00000000000000000000000000000000000000000000000000000000000000ea", - "0x00000000000000000000000000000000000000000000000000000000000000eb", - "0x00000000000000000000000000000000000000000000000000000000000000ec", - "0x00000000000000000000000000000000000000000000000000000000000000ed", - "0x00000000000000000000000000000000000000000000000000000000000000ee", - "0x00000000000000000000000000000000000000000000000000000000000000ef", - "0x00000000000000000000000000000000000000000000000000000000000000f0", - "0x00000000000000000000000000000000000000000000000000000000000000f1", - "0x00000000000000000000000000000000000000000000000000000000000000f2", - "0x00000000000000000000000000000000000000000000000000000000000000f3", - "0x00000000000000000000000000000000000000000000000000000000000000f4", - "0x00000000000000000000000000000000000000000000000000000000000000f5", - "0x00000000000000000000000000000000000000000000000000000000000000f6", - "0x00000000000000000000000000000000000000000000000000000000000000f7", - "0x00000000000000000000000000000000000000000000000000000000000000f8", - "0x00000000000000000000000000000000000000000000000000000000000000f9", - "0x00000000000000000000000000000000000000000000000000000000000000fa", - "0x00000000000000000000000000000000000000000000000000000000000000fb", - "0x00000000000000000000000000000000000000000000000000000000000000fc", - "0x00000000000000000000000000000000000000000000000000000000000000fd", - "0x00000000000000000000000000000000000000000000000000000000000000fe", - "0x00000000000000000000000000000000000000000000000000000000000000ff", - "0x0000000000000000000000000000000000000000000000000000000000000100", - "0x0000000000000000000000000000000000000000000000000000000000000101", - "0x0000000000000000000000000000000000000000000000000000000000000102", - "0x0000000000000000000000000000000000000000000000000000000000000103", - "0x0000000000000000000000000000000000000000000000000000000000000104", - "0x0000000000000000000000000000000000000000000000000000000000000105", - "0x0000000000000000000000000000000000000000000000000000000000000106", - "0x0000000000000000000000000000000000000000000000000000000000000107", - "0x0000000000000000000000000000000000000000000000000000000000000108", - "0x0000000000000000000000000000000000000000000000000000000000000109", - "0x000000000000000000000000000000000000000000000000000000000000010a", - "0x000000000000000000000000000000000000000000000000000000000000010b", - "0x000000000000000000000000000000000000000000000000000000000000010c", - "0x000000000000000000000000000000000000000000000000000000000000010d", - "0x000000000000000000000000000000000000000000000000000000000000010e", - "0x000000000000000000000000000000000000000000000000000000000000010f", - "0x0000000000000000000000000000000000000000000000000000000000000110", - "0x0000000000000000000000000000000000000000000000000000000000000111", - "0x0000000000000000000000000000000000000000000000000000000000000112", - "0x0000000000000000000000000000000000000000000000000000000000000113", - "0x0000000000000000000000000000000000000000000000000000000000000114", - "0x0000000000000000000000000000000000000000000000000000000000000115", - "0x0000000000000000000000000000000000000000000000000000000000000116", - "0x0000000000000000000000000000000000000000000000000000000000000117", - "0x0000000000000000000000000000000000000000000000000000000000000118", - "0x0000000000000000000000000000000000000000000000000000000000000119", - "0x000000000000000000000000000000000000000000000000000000000000011a", - "0x000000000000000000000000000000000000000000000000000000000000011b", - "0x000000000000000000000000000000000000000000000000000000000000011c", - "0x000000000000000000000000000000000000000000000000000000000000011d", - "0x000000000000000000000000000000000000000000000000000000000000011e", - "0x000000000000000000000000000000000000000000000000000000000000011f", - "0x0000000000000000000000000000000000000000000000000000000000000120", - "0x0000000000000000000000000000000000000000000000000000000000000121", - "0x0000000000000000000000000000000000000000000000000000000000000122", - "0x0000000000000000000000000000000000000000000000000000000000000123", - "0x0000000000000000000000000000000000000000000000000000000000000124", - "0x0000000000000000000000000000000000000000000000000000000000000125", - "0x0000000000000000000000000000000000000000000000000000000000000126", - "0x0000000000000000000000000000000000000000000000000000000000000127", - "0x0000000000000000000000000000000000000000000000000000000000000128", - "0x0000000000000000000000000000000000000000000000000000000000000129", - "0x000000000000000000000000000000000000000000000000000000000000012a", - "0x000000000000000000000000000000000000000000000000000000000000012b", - "0x000000000000000000000000000000000000000000000000000000000000012c", - "0x000000000000000000000000000000000000000000000000000000000000012d", - "0x000000000000000000000000000000000000000000000000000000000000012e", - "0x000000000000000000000000000000000000000000000000000000000000012f", - "0x0000000000000000000000000000000000000000000000000000000000000130", - "0x0000000000000000000000000000000000000000000000000000000000000131", - "0x0000000000000000000000000000000000000000000000000000000000000132", - "0x0000000000000000000000000000000000000000000000000000000000000133", - "0x0000000000000000000000000000000000000000000000000000000000000134", - "0x0000000000000000000000000000000000000000000000000000000000000135", - "0x0000000000000000000000000000000000000000000000000000000000000136", - "0x0000000000000000000000000000000000000000000000000000000000000137", - "0x0000000000000000000000000000000000000000000000000000000000000138", - "0x0000000000000000000000000000000000000000000000000000000000000139", - "0x000000000000000000000000000000000000000000000000000000000000013a", - "0x000000000000000000000000000000000000000000000000000000000000013b", - "0x000000000000000000000000000000000000000000000000000000000000013c", - "0x000000000000000000000000000000000000000000000000000000000000013d", - "0x000000000000000000000000000000000000000000000000000000000000013e", - "0x000000000000000000000000000000000000000000000000000000000000013f", - "0x0000000000000000000000000000000000000000000000000000000000000140", - "0x0000000000000000000000000000000000000000000000000000000000000141", - "0x0000000000000000000000000000000000000000000000000000000000000142", - "0x0000000000000000000000000000000000000000000000000000000000000143", - "0x0000000000000000000000000000000000000000000000000000000000000144", - "0x0000000000000000000000000000000000000000000000000000000000000145", - "0x0000000000000000000000000000000000000000000000000000000000000146", - "0x0000000000000000000000000000000000000000000000000000000000000147", - "0x0000000000000000000000000000000000000000000000000000000000000148", - "0x0000000000000000000000000000000000000000000000000000000000000149", - "0x000000000000000000000000000000000000000000000000000000000000014a", - "0x000000000000000000000000000000000000000000000000000000000000014b", - "0x000000000000000000000000000000000000000000000000000000000000014c", - "0x000000000000000000000000000000000000000000000000000000000000014d", - "0x000000000000000000000000000000000000000000000000000000000000014e", - "0x000000000000000000000000000000000000000000000000000000000000014f", - "0x0000000000000000000000000000000000000000000000000000000000000150", - "0x0000000000000000000000000000000000000000000000000000000000000151", - "0x0000000000000000000000000000000000000000000000000000000000000152", - "0x0000000000000000000000000000000000000000000000000000000000000153", - "0x0000000000000000000000000000000000000000000000000000000000000154", - "0x0000000000000000000000000000000000000000000000000000000000000155", - "0x0000000000000000000000000000000000000000000000000000000000000156", - "0x0000000000000000000000000000000000000000000000000000000000000157", - "0x0000000000000000000000000000000000000000000000000000000000000158", - "0x0000000000000000000000000000000000000000000000000000000000000159", - "0x000000000000000000000000000000000000000000000000000000000000015a", - "0x000000000000000000000000000000000000000000000000000000000000015b", - "0x000000000000000000000000000000000000000000000000000000000000015c", - "0x000000000000000000000000000000000000000000000000000000000000015d", - "0x000000000000000000000000000000000000000000000000000000000000015e", - "0x000000000000000000000000000000000000000000000000000000000000015f", - "0x0000000000000000000000000000000000000000000000000000000000000160", - "0x0000000000000000000000000000000000000000000000000000000000000161", - "0x0000000000000000000000000000000000000000000000000000000000000162", - "0x0000000000000000000000000000000000000000000000000000000000000163", - "0x0000000000000000000000000000000000000000000000000000000000000164", - "0x0000000000000000000000000000000000000000000000000000000000000165", - "0x0000000000000000000000000000000000000000000000000000000000000166", - "0x0000000000000000000000000000000000000000000000000000000000000167", - "0x0000000000000000000000000000000000000000000000000000000000000168", - "0x0000000000000000000000000000000000000000000000000000000000000169", - "0x000000000000000000000000000000000000000000000000000000000000016a", - "0x000000000000000000000000000000000000000000000000000000000000016b", - "0x000000000000000000000000000000000000000000000000000000000000016c", - "0x000000000000000000000000000000000000000000000000000000000000016d", - "0x000000000000000000000000000000000000000000000000000000000000016e", - "0x000000000000000000000000000000000000000000000000000000000000016f", - "0x0000000000000000000000000000000000000000000000000000000000000170", - "0x0000000000000000000000000000000000000000000000000000000000000171", - "0x0000000000000000000000000000000000000000000000000000000000000172", - "0x0000000000000000000000000000000000000000000000000000000000000173", - "0x0000000000000000000000000000000000000000000000000000000000000174", - "0x0000000000000000000000000000000000000000000000000000000000000175", - "0x0000000000000000000000000000000000000000000000000000000000000176", - "0x0000000000000000000000000000000000000000000000000000000000000177", - "0x0000000000000000000000000000000000000000000000000000000000000178", - "0x0000000000000000000000000000000000000000000000000000000000000179", - "0x000000000000000000000000000000000000000000000000000000000000017a", - "0x000000000000000000000000000000000000000000000000000000000000017b", - "0x000000000000000000000000000000000000000000000000000000000000017c", - "0x000000000000000000000000000000000000000000000000000000000000017d", - "0x000000000000000000000000000000000000000000000000000000000000017e", - "0x000000000000000000000000000000000000000000000000000000000000017f", - "0x0000000000000000000000000000000000000000000000000000000000000180", - "0x0000000000000000000000000000000000000000000000000000000000000181", - "0x0000000000000000000000000000000000000000000000000000000000000182", - "0x0000000000000000000000000000000000000000000000000000000000000183", - "0x0000000000000000000000000000000000000000000000000000000000000184", - "0x0000000000000000000000000000000000000000000000000000000000000185", - "0x0000000000000000000000000000000000000000000000000000000000000186", - "0x0000000000000000000000000000000000000000000000000000000000000187", - "0x0000000000000000000000000000000000000000000000000000000000000188", - "0x0000000000000000000000000000000000000000000000000000000000000189", - "0x000000000000000000000000000000000000000000000000000000000000018a", - "0x000000000000000000000000000000000000000000000000000000000000018b", - "0x000000000000000000000000000000000000000000000000000000000000018c", - "0x000000000000000000000000000000000000000000000000000000000000018d", - "0x000000000000000000000000000000000000000000000000000000000000018e", - "0x000000000000000000000000000000000000000000000000000000000000018f", - "0x0000000000000000000000000000000000000000000000000000000000000190", - "0x0000000000000000000000000000000000000000000000000000000000000191", - "0x0000000000000000000000000000000000000000000000000000000000000192", - "0x0000000000000000000000000000000000000000000000000000000000000193", - "0x0000000000000000000000000000000000000000000000000000000000000194", - "0x0000000000000000000000000000000000000000000000000000000000000195", - "0x0000000000000000000000000000000000000000000000000000000000000196", - "0x0000000000000000000000000000000000000000000000000000000000000197", - "0x0000000000000000000000000000000000000000000000000000000000000198", - "0x0000000000000000000000000000000000000000000000000000000000000199", - "0x000000000000000000000000000000000000000000000000000000000000019a", - "0x000000000000000000000000000000000000000000000000000000000000019b", - "0x000000000000000000000000000000000000000000000000000000000000019c", - "0x000000000000000000000000000000000000000000000000000000000000019d", - "0x000000000000000000000000000000000000000000000000000000000000019e", - "0x000000000000000000000000000000000000000000000000000000000000019f", - "0x00000000000000000000000000000000000000000000000000000000000001a0", - "0x00000000000000000000000000000000000000000000000000000000000001a1", - "0x00000000000000000000000000000000000000000000000000000000000001a2", - "0x00000000000000000000000000000000000000000000000000000000000001a3", - "0x00000000000000000000000000000000000000000000000000000000000001a4", - "0x00000000000000000000000000000000000000000000000000000000000001a5", - "0x00000000000000000000000000000000000000000000000000000000000001a6", - "0x00000000000000000000000000000000000000000000000000000000000001a7", - "0x00000000000000000000000000000000000000000000000000000000000001a8", - "0x00000000000000000000000000000000000000000000000000000000000001a9", - "0x00000000000000000000000000000000000000000000000000000000000001aa", - "0x00000000000000000000000000000000000000000000000000000000000001ab", - "0x00000000000000000000000000000000000000000000000000000000000001ac", - "0x00000000000000000000000000000000000000000000000000000000000001ad", - "0x00000000000000000000000000000000000000000000000000000000000001ae", - "0x00000000000000000000000000000000000000000000000000000000000001af", - "0x00000000000000000000000000000000000000000000000000000000000001b0", - "0x00000000000000000000000000000000000000000000000000000000000001b1", - "0x00000000000000000000000000000000000000000000000000000000000001b2", - "0x00000000000000000000000000000000000000000000000000000000000001b3", - "0x00000000000000000000000000000000000000000000000000000000000001b4", - "0x00000000000000000000000000000000000000000000000000000000000001b5", - "0x00000000000000000000000000000000000000000000000000000000000001b6", - "0x00000000000000000000000000000000000000000000000000000000000001b7", - "0x00000000000000000000000000000000000000000000000000000000000001b8", - "0x00000000000000000000000000000000000000000000000000000000000001b9", - "0x00000000000000000000000000000000000000000000000000000000000001ba", - "0x00000000000000000000000000000000000000000000000000000000000001bb", - "0x00000000000000000000000000000000000000000000000000000000000001bc", - "0x00000000000000000000000000000000000000000000000000000000000001bd", - "0x00000000000000000000000000000000000000000000000000000000000001be", - "0x00000000000000000000000000000000000000000000000000000000000001bf", - "0x00000000000000000000000000000000000000000000000000000000000001c0", - "0x00000000000000000000000000000000000000000000000000000000000001c1", - "0x00000000000000000000000000000000000000000000000000000000000001c2", - "0x00000000000000000000000000000000000000000000000000000000000001c3", - "0x00000000000000000000000000000000000000000000000000000000000001c4", - "0x00000000000000000000000000000000000000000000000000000000000001c5", - "0x00000000000000000000000000000000000000000000000000000000000001c6", - "0x00000000000000000000000000000000000000000000000000000000000001c7", - "0x00000000000000000000000000000000000000000000000000000000000001c8", - "0x00000000000000000000000000000000000000000000000000000000000001c9", - "0x00000000000000000000000000000000000000000000000000000000000001ca", - "0x00000000000000000000000000000000000000000000000000000000000001cb", - "0x00000000000000000000000000000000000000000000000000000000000001cc", - "0x00000000000000000000000000000000000000000000000000000000000001cd", - "0x00000000000000000000000000000000000000000000000000000000000001ce", - "0x00000000000000000000000000000000000000000000000000000000000001cf", - "0x00000000000000000000000000000000000000000000000000000000000001d0", - "0x00000000000000000000000000000000000000000000000000000000000001d1", - "0x00000000000000000000000000000000000000000000000000000000000001d2", - "0x00000000000000000000000000000000000000000000000000000000000001d3", - "0x00000000000000000000000000000000000000000000000000000000000001d4", - "0x00000000000000000000000000000000000000000000000000000000000001d5", - "0x00000000000000000000000000000000000000000000000000000000000001d6", - "0x00000000000000000000000000000000000000000000000000000000000001d7", - "0x00000000000000000000000000000000000000000000000000000000000001d8", - "0x00000000000000000000000000000000000000000000000000000000000001d9", - "0x00000000000000000000000000000000000000000000000000000000000001da", - "0x00000000000000000000000000000000000000000000000000000000000001db", - "0x00000000000000000000000000000000000000000000000000000000000001dc", - "0x00000000000000000000000000000000000000000000000000000000000001dd", - "0x00000000000000000000000000000000000000000000000000000000000001de", - "0x00000000000000000000000000000000000000000000000000000000000001df", - "0x00000000000000000000000000000000000000000000000000000000000001e0", - "0x00000000000000000000000000000000000000000000000000000000000001e1", - "0x00000000000000000000000000000000000000000000000000000000000001e2", - "0x00000000000000000000000000000000000000000000000000000000000001e3", - "0x00000000000000000000000000000000000000000000000000000000000001e4", - "0x00000000000000000000000000000000000000000000000000000000000001e5", - "0x00000000000000000000000000000000000000000000000000000000000001e6", - "0x00000000000000000000000000000000000000000000000000000000000001e7", - "0x00000000000000000000000000000000000000000000000000000000000001e8", - "0x00000000000000000000000000000000000000000000000000000000000001e9", - "0x00000000000000000000000000000000000000000000000000000000000001ea", - "0x00000000000000000000000000000000000000000000000000000000000001eb", - "0x00000000000000000000000000000000000000000000000000000000000001ec", - "0x00000000000000000000000000000000000000000000000000000000000001ed", - "0x00000000000000000000000000000000000000000000000000000000000001ee", - "0x00000000000000000000000000000000000000000000000000000000000001ef", - "0x00000000000000000000000000000000000000000000000000000000000001f0", - "0x00000000000000000000000000000000000000000000000000000000000001f1", - "0x00000000000000000000000000000000000000000000000000000000000001f2", - "0x00000000000000000000000000000000000000000000000000000000000001f3", - "0x00000000000000000000000000000000000000000000000000000000000001f4", - "0x00000000000000000000000000000000000000000000000000000000000001f5", - "0x00000000000000000000000000000000000000000000000000000000000001f6", - "0x00000000000000000000000000000000000000000000000000000000000001f7", - "0x00000000000000000000000000000000000000000000000000000000000001f8", - "0x00000000000000000000000000000000000000000000000000000000000001f9", - "0x00000000000000000000000000000000000000000000000000000000000001fa", - "0x00000000000000000000000000000000000000000000000000000000000001fb", - "0x00000000000000000000000000000000000000000000000000000000000001fc", - "0x00000000000000000000000000000000000000000000000000000000000001fd", - "0x00000000000000000000000000000000000000000000000000000000000001fe", - "0x00000000000000000000000000000000000000000000000000000000000001ff", - "0x0000000000000000000000000000000000000000000000000000000000000200", - "0x0000000000000000000000000000000000000000000000000000000000000201", - "0x0000000000000000000000000000000000000000000000000000000000000202", - "0x0000000000000000000000000000000000000000000000000000000000000203", - "0x0000000000000000000000000000000000000000000000000000000000000204", - "0x0000000000000000000000000000000000000000000000000000000000000205", - "0x0000000000000000000000000000000000000000000000000000000000000206", - "0x0000000000000000000000000000000000000000000000000000000000000207", - "0x0000000000000000000000000000000000000000000000000000000000000208", - "0x0000000000000000000000000000000000000000000000000000000000000209", - "0x000000000000000000000000000000000000000000000000000000000000020a", - "0x000000000000000000000000000000000000000000000000000000000000020b", - "0x000000000000000000000000000000000000000000000000000000000000020c", - "0x000000000000000000000000000000000000000000000000000000000000020d", - "0x000000000000000000000000000000000000000000000000000000000000020e", - "0x000000000000000000000000000000000000000000000000000000000000020f", - "0x0000000000000000000000000000000000000000000000000000000000000210", - "0x0000000000000000000000000000000000000000000000000000000000000211", - "0x0000000000000000000000000000000000000000000000000000000000000212", - "0x0000000000000000000000000000000000000000000000000000000000000213", - "0x0000000000000000000000000000000000000000000000000000000000000214", - "0x0000000000000000000000000000000000000000000000000000000000000215", - "0x0000000000000000000000000000000000000000000000000000000000000216", - "0x0000000000000000000000000000000000000000000000000000000000000217" -] - -[inputs.previous_rollup_data.vk_data] -leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" -sibling_path = [ - "0x1094cb60db3ed83699dfc4e6672f08356854df687d5940f0bbc8ea15163c30fe", - "0x2ae397986f88002051cc9874e440091ad964c38dc60bad6344814b3d8470c89d", - "0x16f88c3ecc5351615ec0637c792411462bef0c4d1f9cdaeded6afe9b2ec7487c", - "0x2423b4c1180714c94b2f31100021a5393dafaad3951ed4862ecb6ca8f2a5f798", - "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", - "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" -] - - [inputs.previous_rollup_data.vk_data.vk] - key = [ - "0x0000000000000000000000000000000000000000000000000000000000400000", - "0x0000000000000000000000000000000000000000000000000000000000000424", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000000000000000000000000000000000000000040a", - "0x000000000000000000000000000000000000000000000000000000000000041a", - "0x000000000000000000000000000000ca5b5cd8196be21678ace18bf6e21abbe2", - "0x00000000000000000000000000000000000f61ed515eee4864f37b740bd1db0f", - "0x00000000000000000000000000000018bd5bf5fbbd4b5aa02678c67d91df3b87", - "0x000000000000000000000000000000000011689c40863e8d5e42249cde4ee2b0", - "0x0000000000000000000000000000004ce3143e7a3f1dc480a9b96bf58b2f10ae", - "0x0000000000000000000000000000000000189d0e9f71f171b5b0185b13be00a8", - "0x0000000000000000000000000000000a2bc80db983adea1051a18ea330ec6daf", - "0x00000000000000000000000000000000001d6e121e27dce62b78169adcf8b01c", - "0x000000000000000000000000000000e1d95ef75a58dd45f6ff2f20593c71bfa5", - "0x000000000000000000000000000000000005c9168a15df8b45d962c14e27088c", - "0x0000000000000000000000000000003622cf2c103f21b50e434202e0bef7659a", - "0x00000000000000000000000000000000000795b5d91f40c0a926cf8f9ac7b51b", - "0x0000000000000000000000000000007a4adcd304120a266c16fa6eb7f2235fb0", - "0x000000000000000000000000000000000026bacbe0669c30a6f9bf845ccb3647", - "0x000000000000000000000000000000161b5cd0c46f96db54f5d041f013e188b5", - "0x00000000000000000000000000000000000be9cbcb0b0b4a295567000eb9e7fa", - "0x0000000000000000000000000000008a200bd775122b25ddda3f52bdb2971577", - "0x0000000000000000000000000000000000080c83b879b117c8070bf03103ead3", - "0x0000000000000000000000000000007d5d75d0e76497e3edd69c408ec709d5cb", - "0x00000000000000000000000000000000001b1807f3bfb4729f59d056cad70310", - "0x000000000000000000000000000000f23369ec8bf7b2f65b70ffe7303c13ef50", - "0x0000000000000000000000000000000000019182bd85971c13c0288a055d7765", - "0x000000000000000000000000000000641599ad193f1c54ff9b9764e08cbfd62f", - "0x000000000000000000000000000000000025aa12dfd6e2acbe02ced46b85d1a6", - "0x000000000000000000000000000000e6bee501455201368d829cd1ce79087f61", - "0x0000000000000000000000000000000000200a6916f2e94e0de862bccb7c66e9", - "0x000000000000000000000000000000ce79b607a7f0f58208394dd5ae4ed88772", - "0x0000000000000000000000000000000000289dbe505abab4d4613cf578f4ee04", - "0x000000000000000000000000000000b966fb4a6b5bd713795c371f463f506b38", - "0x00000000000000000000000000000000000b55c4eb54114031b677f74ea2715d", - "0x0000000000000000000000000000009af83e90351facea76133c77b1e641a2bf", - "0x00000000000000000000000000000000000acd389747c4f88879f6629928dc8f", - "0x000000000000000000000000000000ba10958c02f3f2301e2e99093f9257e889", - "0x00000000000000000000000000000000002524367f1e45de5b30480eca8d8047", - "0x0000000000000000000000000000006db336a752753afac1e6484580769a1b34", - "0x00000000000000000000000000000000000ec8329d868bb4927ecba504130a64", - "0x0000000000000000000000000000008723226aa57311ec9bcc7bdd5a532fa8b9", - "0x00000000000000000000000000000000000271e28fc4cbf8d6f90623432c9b1e", - "0x0000000000000000000000000000005973c923d388b4eb1e57654529e6924811", - "0x000000000000000000000000000000000012dad0b4f3ca34ed0f688641724d08", - "0x00000000000000000000000000000032c5b3376193647a05604d13f0421496b5", - "0x00000000000000000000000000000000002df0ba32039ffe90c6622cefa5df37", - "0x000000000000000000000000000000d65e0ce9c5b7797283e62920240e97e830", - "0x00000000000000000000000000000000002e491d13f3a4816d5b127a658ed9fd", - "0x000000000000000000000000000000c008b883bb9e5d0b4985e0a6cf61833582", - "0x00000000000000000000000000000000000e8f32a1d407bab69727049e1fa6a7", - "0x000000000000000000000000000000772b62a91267092e90db1688e6684a06d5", - "0x00000000000000000000000000000000002d4a0718fe401c5f04ccf4c844d41d", - "0x00000000000000000000000000000055fa282c37bea2dd922179c2f9dd6a2d63", - "0x00000000000000000000000000000000001cd26141aba76d119f8d6e5e1561e9", - "0x000000000000000000000000000000d31382e46864f02fb86d94a4ea99fd72d0", - "0x000000000000000000000000000000000000a7b911fcec977b5c666c7749425a", - "0x000000000000000000000000000000742c23d47846501fc90db1602102b88ef2", - "0x0000000000000000000000000000000000091e6e3bb3dd70592228af4e4252ef", - "0x0000000000000000000000000000008400376f1f7c175a1c031285da325eada4", - "0x00000000000000000000000000000000000997b690fefb216be02e61f386f6cd", - "0x000000000000000000000000000000409317748bcb1f1d797499fc1d3b29f525", - "0x0000000000000000000000000000000000230e8d7092f8f51daa353f383935fe", - "0x000000000000000000000000000000562875f84edd613634e5a1d89da7f4b314", - "0x000000000000000000000000000000000003e0a8278c7e5b7a9a8c3e9df20fe6", - "0x000000000000000000000000000000dd15ad163c2ca239b79f068261c9f9eab9", - "0x000000000000000000000000000000000020b1116a52aad53ca20b41fe94305f", - "0x000000000000000000000000000000a9b4b33f1b2d1d59770cde19bc27c029ea", - "0x00000000000000000000000000000000000ebefe18afcf7fa6984f4645eadd9b", - "0x000000000000000000000000000000d44fd84b5fdd2a4b48fe327a3b950ff3e7", - "0x00000000000000000000000000000000002402dd68460a6b0aea77116323d75d", - "0x000000000000000000000000000000b005290152742db6f5ccf3c8ac2daf6bc9", - "0x000000000000000000000000000000000008e6f1d89e575a869c9af76ac5a636", - "0x0000000000000000000000000000004ec29e1db15f73004b835a908abe462d12", - "0x0000000000000000000000000000000000035acb743e44a9539d3e2db57bda24", - "0x00000000000000000000000000000072de0695754227413bdf6fbbc876e4ad4d", - "0x000000000000000000000000000000000011cb9a4cc0b85f780f6af9e9b49673", - "0x000000000000000000000000000000ceb7e5d39f6f70be87e621bd47807d93f5", - "0x000000000000000000000000000000000018da0b93b94a512a0855d901bc08a6", - "0x0000000000000000000000000000007d584a993b33aaa6f9c80125608fe3b2f0", - "0x000000000000000000000000000000000025f4ae6d7b53d8f261dd7968234e9f", - "0x000000000000000000000000000000d305a71c766c61b7eea7f1fb4bdb132eb0", - "0x0000000000000000000000000000000000033e6ff38a9e813a81b7abbe3b0bcd", - "0x0000000000000000000000000000000cf2bd5b77c2b43d587c00badf5cb5ff47", - "0x00000000000000000000000000000000002e01fd8eb5e2d30d4c6ab714338948", - "0x000000000000000000000000000000ca7af69bcc072c73df53c1cfab1228bbd5", - "0x0000000000000000000000000000000000189f9643b6d5172c7c184880d19c14", - "0x000000000000000000000000000000d1f1f94023fcee85344f8fec96d9e3dd64", - "0x000000000000000000000000000000000023e895d66874e7bc8609ae5fcb00b3", - "0x000000000000000000000000000000751a63b41218c33ae5d641c130f060ce34", - "0x000000000000000000000000000000000018a3d787ef1ec164dc62244409c559", - "0x000000000000000000000000000000a0340f3ea930787df40d68fdd647a9f7d0", - "0x0000000000000000000000000000000000230b997570d1f85ae65a57bb57a7d0", - "0x0000000000000000000000000000000bc60b4ea3525f05223875c1af3ed2b02d", - "0x0000000000000000000000000000000000236868e5e41937ed2cdc41de55f10b", - "0x000000000000000000000000000000249541e175626917b9aaedb0e2915d4177", - "0x00000000000000000000000000000000002fb85434d64a786207f332f20277da", - "0x000000000000000000000000000000aec46500b248445db79f52d6ed7b30158b", - "0x000000000000000000000000000000000002321694c1a17469bdd178eafdfa6e", - "0x00000000000000000000000000000023fd9365c6a81758f239e73dee60348b69", - "0x000000000000000000000000000000000014cbd4ad9a23e8adbaa2eb703f2801", - "0x000000000000000000000000000000a1dd8f964e4f1c6a0c2c1407da434a5d2f", - "0x000000000000000000000000000000000018ee0334d49c017b30c8e7656c679f", - "0x000000000000000000000000000000f1571f393c77481ab166deb9cc943c32f7", - "0x00000000000000000000000000000000002f977fa69325d670afb3b6523af5c6", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000005236fa8ff132f028ce8c6d90af92bb0920", - "0x0000000000000000000000000000000000157e930e43a7f58b4b9eba8d572f02", - "0x000000000000000000000000000000bac5296ced6a03e6e1c5d0f93b088c6e1e", - "0x000000000000000000000000000000000012ea2ef5078f64b57312aaa9298900" -] - hash = "0x2d786dfd9d238706c365ed55568e4ad97c9181c8ab8954826bb255e59505ab48" - -[[inputs.previous_rollup_data]] -[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs] -out_hash = "0x00db4f24d6eff7983ec163d02c230d6a44237feabd8a2da284edce08afc71435" -proposed_block_header_hashes = [ - "0x009b4f347b7e89fe6e631bc1ced1536c52e1cdf08c8f4b15a40aa7dfcaceac84", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] -vk_tree_root = "0x20af990958e8575ae0f803c8a491a00c3734fc1df32d7aee2f29d13a0f14e157" -protocol_contract_tree_root = "0x13b587f58f77a7ad53b50e5509a4aff45cf77ccd44d7e5af3ea19c51bcc02d0d" -prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.previous_archive] - root = "0x1d3846bf57ef0320b75010d507a359d7f2a0220ecb6f19266cf817ae88990747" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.new_archive] - root = "0x2c06258cb57016b882323735d87a33540b08bf5d66406e3238054a7bcad534de" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091f6" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.fee_recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.gas_fees] - fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091f6" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.fee_recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.gas_fees] - fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000119f3c680" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x1b6ad507dccf0dcce964e9dc93fcd332a8cca98f5d64e0e64f01f16bb5bd4420" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0xa285dc73e73078ea78df4a3fd818e6", - "0xe2f567e65220a0f0b50c285285ded2", - "0x3795" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0099bcb173412b6d8adc18acdbcbfd9800ab892684746035bc1426805666c1cf", - "0x000000000000000000000000000000dcffbdf11d95b04de30b2104c0d2172132" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.proof] +fields = [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x0000000000000000000000000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x0000000000000000000000000000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000019", + "0x000000000000000000000000000000000000000000000000000000000000001a", + "0x000000000000000000000000000000000000000000000000000000000000001b", + "0x000000000000000000000000000000000000000000000000000000000000001c", + "0x000000000000000000000000000000000000000000000000000000000000001d", + "0x000000000000000000000000000000000000000000000000000000000000001e", + "0x000000000000000000000000000000000000000000000000000000000000001f", + "0x0000000000000000000000000000000000000000000000000000000000000020", + "0x0000000000000000000000000000000000000000000000000000000000000021", + "0x0000000000000000000000000000000000000000000000000000000000000022", + "0x0000000000000000000000000000000000000000000000000000000000000023", + "0x0000000000000000000000000000000000000000000000000000000000000024", + "0x0000000000000000000000000000000000000000000000000000000000000025", + "0x0000000000000000000000000000000000000000000000000000000000000026", + "0x0000000000000000000000000000000000000000000000000000000000000027", + "0x0000000000000000000000000000000000000000000000000000000000000028", + "0x0000000000000000000000000000000000000000000000000000000000000029", + "0x000000000000000000000000000000000000000000000000000000000000002a", + "0x000000000000000000000000000000000000000000000000000000000000002b", + "0x000000000000000000000000000000000000000000000000000000000000002c", + "0x000000000000000000000000000000000000000000000000000000000000002d", + "0x000000000000000000000000000000000000000000000000000000000000002e", + "0x000000000000000000000000000000000000000000000000000000000000002f", + "0x0000000000000000000000000000000000000000000000000000000000000030", + "0x0000000000000000000000000000000000000000000000000000000000000031", + "0x0000000000000000000000000000000000000000000000000000000000000032", + "0x0000000000000000000000000000000000000000000000000000000000000033", + "0x0000000000000000000000000000000000000000000000000000000000000034", + "0x0000000000000000000000000000000000000000000000000000000000000035", + "0x0000000000000000000000000000000000000000000000000000000000000036", + "0x0000000000000000000000000000000000000000000000000000000000000037", + "0x0000000000000000000000000000000000000000000000000000000000000038", + "0x0000000000000000000000000000000000000000000000000000000000000039", + "0x000000000000000000000000000000000000000000000000000000000000003a", + "0x000000000000000000000000000000000000000000000000000000000000003b", + "0x000000000000000000000000000000000000000000000000000000000000003c", + "0x000000000000000000000000000000000000000000000000000000000000003d", + "0x000000000000000000000000000000000000000000000000000000000000003e", + "0x000000000000000000000000000000000000000000000000000000000000003f", + "0x0000000000000000000000000000000000000000000000000000000000000040", + "0x0000000000000000000000000000000000000000000000000000000000000041", + "0x0000000000000000000000000000000000000000000000000000000000000042", + "0x0000000000000000000000000000000000000000000000000000000000000043", + "0x0000000000000000000000000000000000000000000000000000000000000044", + "0x0000000000000000000000000000000000000000000000000000000000000045", + "0x0000000000000000000000000000000000000000000000000000000000000046", + "0x0000000000000000000000000000000000000000000000000000000000000047", + "0x0000000000000000000000000000000000000000000000000000000000000048", + "0x0000000000000000000000000000000000000000000000000000000000000049", + "0x000000000000000000000000000000000000000000000000000000000000004a", + "0x000000000000000000000000000000000000000000000000000000000000004b", + "0x000000000000000000000000000000000000000000000000000000000000004c", + "0x000000000000000000000000000000000000000000000000000000000000004d", + "0x000000000000000000000000000000000000000000000000000000000000004e", + "0x000000000000000000000000000000000000000000000000000000000000004f", + "0x0000000000000000000000000000000000000000000000000000000000000050", + "0x0000000000000000000000000000000000000000000000000000000000000051", + "0x0000000000000000000000000000000000000000000000000000000000000052", + "0x0000000000000000000000000000000000000000000000000000000000000053", + "0x0000000000000000000000000000000000000000000000000000000000000054", + "0x0000000000000000000000000000000000000000000000000000000000000055", + "0x0000000000000000000000000000000000000000000000000000000000000056", + "0x0000000000000000000000000000000000000000000000000000000000000057", + "0x0000000000000000000000000000000000000000000000000000000000000058", + "0x0000000000000000000000000000000000000000000000000000000000000059", + "0x000000000000000000000000000000000000000000000000000000000000005a", + "0x000000000000000000000000000000000000000000000000000000000000005b", + "0x000000000000000000000000000000000000000000000000000000000000005c", + "0x000000000000000000000000000000000000000000000000000000000000005d", + "0x000000000000000000000000000000000000000000000000000000000000005e", + "0x000000000000000000000000000000000000000000000000000000000000005f", + "0x0000000000000000000000000000000000000000000000000000000000000060", + "0x0000000000000000000000000000000000000000000000000000000000000061", + "0x0000000000000000000000000000000000000000000000000000000000000062", + "0x0000000000000000000000000000000000000000000000000000000000000063", + "0x0000000000000000000000000000000000000000000000000000000000000064", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0x0000000000000000000000000000000000000000000000000000000000000066", + "0x0000000000000000000000000000000000000000000000000000000000000067", + "0x0000000000000000000000000000000000000000000000000000000000000068", + "0x0000000000000000000000000000000000000000000000000000000000000069", + "0x000000000000000000000000000000000000000000000000000000000000006a", + "0x000000000000000000000000000000000000000000000000000000000000006b", + "0x000000000000000000000000000000000000000000000000000000000000006c", + "0x000000000000000000000000000000000000000000000000000000000000006d", + "0x000000000000000000000000000000000000000000000000000000000000006e", + "0x000000000000000000000000000000000000000000000000000000000000006f", + "0x0000000000000000000000000000000000000000000000000000000000000070", + "0x0000000000000000000000000000000000000000000000000000000000000071", + "0x0000000000000000000000000000000000000000000000000000000000000072", + "0x0000000000000000000000000000000000000000000000000000000000000073", + "0x0000000000000000000000000000000000000000000000000000000000000074", + "0x0000000000000000000000000000000000000000000000000000000000000075", + "0x0000000000000000000000000000000000000000000000000000000000000076", + "0x0000000000000000000000000000000000000000000000000000000000000077", + "0x0000000000000000000000000000000000000000000000000000000000000078", + "0x0000000000000000000000000000000000000000000000000000000000000079", + "0x000000000000000000000000000000000000000000000000000000000000007a", + "0x000000000000000000000000000000000000000000000000000000000000007b", + "0x000000000000000000000000000000000000000000000000000000000000007c", + "0x000000000000000000000000000000000000000000000000000000000000007d", + "0x000000000000000000000000000000000000000000000000000000000000007e", + "0x000000000000000000000000000000000000000000000000000000000000007f", + "0x0000000000000000000000000000000000000000000000000000000000000080", + "0x0000000000000000000000000000000000000000000000000000000000000081", + "0x0000000000000000000000000000000000000000000000000000000000000082", + "0x0000000000000000000000000000000000000000000000000000000000000083", + "0x0000000000000000000000000000000000000000000000000000000000000084", + "0x0000000000000000000000000000000000000000000000000000000000000085", + "0x0000000000000000000000000000000000000000000000000000000000000086", + "0x0000000000000000000000000000000000000000000000000000000000000087", + "0x0000000000000000000000000000000000000000000000000000000000000088", + "0x0000000000000000000000000000000000000000000000000000000000000089", + "0x000000000000000000000000000000000000000000000000000000000000008a", + "0x000000000000000000000000000000000000000000000000000000000000008b", + "0x000000000000000000000000000000000000000000000000000000000000008c", + "0x000000000000000000000000000000000000000000000000000000000000008d", + "0x000000000000000000000000000000000000000000000000000000000000008e", + "0x000000000000000000000000000000000000000000000000000000000000008f", + "0x0000000000000000000000000000000000000000000000000000000000000090", + "0x0000000000000000000000000000000000000000000000000000000000000091", + "0x0000000000000000000000000000000000000000000000000000000000000092", + "0x0000000000000000000000000000000000000000000000000000000000000093", + "0x0000000000000000000000000000000000000000000000000000000000000094", + "0x0000000000000000000000000000000000000000000000000000000000000095", + "0x0000000000000000000000000000000000000000000000000000000000000096", + "0x0000000000000000000000000000000000000000000000000000000000000097", + "0x0000000000000000000000000000000000000000000000000000000000000098", + "0x0000000000000000000000000000000000000000000000000000000000000099", + "0x000000000000000000000000000000000000000000000000000000000000009a", + "0x000000000000000000000000000000000000000000000000000000000000009b", + "0x000000000000000000000000000000000000000000000000000000000000009c", + "0x000000000000000000000000000000000000000000000000000000000000009d", + "0x000000000000000000000000000000000000000000000000000000000000009e", + "0x000000000000000000000000000000000000000000000000000000000000009f", + "0x00000000000000000000000000000000000000000000000000000000000000a0", + "0x00000000000000000000000000000000000000000000000000000000000000a1", + "0x00000000000000000000000000000000000000000000000000000000000000a2", + "0x00000000000000000000000000000000000000000000000000000000000000a3", + "0x00000000000000000000000000000000000000000000000000000000000000a4", + "0x00000000000000000000000000000000000000000000000000000000000000a5", + "0x00000000000000000000000000000000000000000000000000000000000000a6", + "0x00000000000000000000000000000000000000000000000000000000000000a7", + "0x00000000000000000000000000000000000000000000000000000000000000a8", + "0x00000000000000000000000000000000000000000000000000000000000000a9", + "0x00000000000000000000000000000000000000000000000000000000000000aa", + "0x00000000000000000000000000000000000000000000000000000000000000ab", + "0x00000000000000000000000000000000000000000000000000000000000000ac", + "0x00000000000000000000000000000000000000000000000000000000000000ad", + "0x00000000000000000000000000000000000000000000000000000000000000ae", + "0x00000000000000000000000000000000000000000000000000000000000000af", + "0x00000000000000000000000000000000000000000000000000000000000000b0", + "0x00000000000000000000000000000000000000000000000000000000000000b1", + "0x00000000000000000000000000000000000000000000000000000000000000b2", + "0x00000000000000000000000000000000000000000000000000000000000000b3", + "0x00000000000000000000000000000000000000000000000000000000000000b4", + "0x00000000000000000000000000000000000000000000000000000000000000b5", + "0x00000000000000000000000000000000000000000000000000000000000000b6", + "0x00000000000000000000000000000000000000000000000000000000000000b7", + "0x00000000000000000000000000000000000000000000000000000000000000b8", + "0x00000000000000000000000000000000000000000000000000000000000000b9", + "0x00000000000000000000000000000000000000000000000000000000000000ba", + "0x00000000000000000000000000000000000000000000000000000000000000bb", + "0x00000000000000000000000000000000000000000000000000000000000000bc", + "0x00000000000000000000000000000000000000000000000000000000000000bd", + "0x00000000000000000000000000000000000000000000000000000000000000be", + "0x00000000000000000000000000000000000000000000000000000000000000bf", + "0x00000000000000000000000000000000000000000000000000000000000000c0", + "0x00000000000000000000000000000000000000000000000000000000000000c1", + "0x00000000000000000000000000000000000000000000000000000000000000c2", + "0x00000000000000000000000000000000000000000000000000000000000000c3", + "0x00000000000000000000000000000000000000000000000000000000000000c4", + "0x00000000000000000000000000000000000000000000000000000000000000c5", + "0x00000000000000000000000000000000000000000000000000000000000000c6", + "0x00000000000000000000000000000000000000000000000000000000000000c7", + "0x00000000000000000000000000000000000000000000000000000000000000c8", + "0x00000000000000000000000000000000000000000000000000000000000000c9", + "0x00000000000000000000000000000000000000000000000000000000000000ca", + "0x00000000000000000000000000000000000000000000000000000000000000cb", + "0x00000000000000000000000000000000000000000000000000000000000000cc", + "0x00000000000000000000000000000000000000000000000000000000000000cd", + "0x00000000000000000000000000000000000000000000000000000000000000ce", + "0x00000000000000000000000000000000000000000000000000000000000000cf", + "0x00000000000000000000000000000000000000000000000000000000000000d0", + "0x00000000000000000000000000000000000000000000000000000000000000d1", + "0x00000000000000000000000000000000000000000000000000000000000000d2", + "0x00000000000000000000000000000000000000000000000000000000000000d3", + "0x00000000000000000000000000000000000000000000000000000000000000d4", + "0x00000000000000000000000000000000000000000000000000000000000000d5", + "0x00000000000000000000000000000000000000000000000000000000000000d6", + "0x00000000000000000000000000000000000000000000000000000000000000d7", + "0x00000000000000000000000000000000000000000000000000000000000000d8", + "0x00000000000000000000000000000000000000000000000000000000000000d9", + "0x00000000000000000000000000000000000000000000000000000000000000da", + "0x00000000000000000000000000000000000000000000000000000000000000db", + "0x00000000000000000000000000000000000000000000000000000000000000dc", + "0x00000000000000000000000000000000000000000000000000000000000000dd", + "0x00000000000000000000000000000000000000000000000000000000000000de", + "0x00000000000000000000000000000000000000000000000000000000000000df", + "0x00000000000000000000000000000000000000000000000000000000000000e0", + "0x00000000000000000000000000000000000000000000000000000000000000e1", + "0x00000000000000000000000000000000000000000000000000000000000000e2", + "0x00000000000000000000000000000000000000000000000000000000000000e3", + "0x00000000000000000000000000000000000000000000000000000000000000e4", + "0x00000000000000000000000000000000000000000000000000000000000000e5", + "0x00000000000000000000000000000000000000000000000000000000000000e6", + "0x00000000000000000000000000000000000000000000000000000000000000e7", + "0x00000000000000000000000000000000000000000000000000000000000000e8", + "0x00000000000000000000000000000000000000000000000000000000000000e9", + "0x00000000000000000000000000000000000000000000000000000000000000ea", + "0x00000000000000000000000000000000000000000000000000000000000000eb", + "0x00000000000000000000000000000000000000000000000000000000000000ec", + "0x00000000000000000000000000000000000000000000000000000000000000ed", + "0x00000000000000000000000000000000000000000000000000000000000000ee", + "0x00000000000000000000000000000000000000000000000000000000000000ef", + "0x00000000000000000000000000000000000000000000000000000000000000f0", + "0x00000000000000000000000000000000000000000000000000000000000000f1", + "0x00000000000000000000000000000000000000000000000000000000000000f2", + "0x00000000000000000000000000000000000000000000000000000000000000f3", + "0x00000000000000000000000000000000000000000000000000000000000000f4", + "0x00000000000000000000000000000000000000000000000000000000000000f5", + "0x00000000000000000000000000000000000000000000000000000000000000f6", + "0x00000000000000000000000000000000000000000000000000000000000000f7", + "0x00000000000000000000000000000000000000000000000000000000000000f8", + "0x00000000000000000000000000000000000000000000000000000000000000f9", + "0x00000000000000000000000000000000000000000000000000000000000000fa", + "0x00000000000000000000000000000000000000000000000000000000000000fb", + "0x00000000000000000000000000000000000000000000000000000000000000fc", + "0x00000000000000000000000000000000000000000000000000000000000000fd", + "0x00000000000000000000000000000000000000000000000000000000000000fe", + "0x00000000000000000000000000000000000000000000000000000000000000ff", + "0x0000000000000000000000000000000000000000000000000000000000000100", + "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000102", + "0x0000000000000000000000000000000000000000000000000000000000000103", + "0x0000000000000000000000000000000000000000000000000000000000000104", + "0x0000000000000000000000000000000000000000000000000000000000000105", + "0x0000000000000000000000000000000000000000000000000000000000000106", + "0x0000000000000000000000000000000000000000000000000000000000000107", + "0x0000000000000000000000000000000000000000000000000000000000000108", + "0x0000000000000000000000000000000000000000000000000000000000000109", + "0x000000000000000000000000000000000000000000000000000000000000010a", + "0x000000000000000000000000000000000000000000000000000000000000010b", + "0x000000000000000000000000000000000000000000000000000000000000010c", + "0x000000000000000000000000000000000000000000000000000000000000010d", + "0x000000000000000000000000000000000000000000000000000000000000010e", + "0x000000000000000000000000000000000000000000000000000000000000010f", + "0x0000000000000000000000000000000000000000000000000000000000000110", + "0x0000000000000000000000000000000000000000000000000000000000000111", + "0x0000000000000000000000000000000000000000000000000000000000000112", + "0x0000000000000000000000000000000000000000000000000000000000000113", + "0x0000000000000000000000000000000000000000000000000000000000000114", + "0x0000000000000000000000000000000000000000000000000000000000000115", + "0x0000000000000000000000000000000000000000000000000000000000000116", + "0x0000000000000000000000000000000000000000000000000000000000000117", + "0x0000000000000000000000000000000000000000000000000000000000000118", + "0x0000000000000000000000000000000000000000000000000000000000000119", + "0x000000000000000000000000000000000000000000000000000000000000011a", + "0x000000000000000000000000000000000000000000000000000000000000011b", + "0x000000000000000000000000000000000000000000000000000000000000011c", + "0x000000000000000000000000000000000000000000000000000000000000011d", + "0x000000000000000000000000000000000000000000000000000000000000011e", + "0x000000000000000000000000000000000000000000000000000000000000011f", + "0x0000000000000000000000000000000000000000000000000000000000000120", + "0x0000000000000000000000000000000000000000000000000000000000000121", + "0x0000000000000000000000000000000000000000000000000000000000000122", + "0x0000000000000000000000000000000000000000000000000000000000000123", + "0x0000000000000000000000000000000000000000000000000000000000000124", + "0x0000000000000000000000000000000000000000000000000000000000000125", + "0x0000000000000000000000000000000000000000000000000000000000000126", + "0x0000000000000000000000000000000000000000000000000000000000000127", + "0x0000000000000000000000000000000000000000000000000000000000000128", + "0x0000000000000000000000000000000000000000000000000000000000000129", + "0x000000000000000000000000000000000000000000000000000000000000012a", + "0x000000000000000000000000000000000000000000000000000000000000012b", + "0x000000000000000000000000000000000000000000000000000000000000012c", + "0x000000000000000000000000000000000000000000000000000000000000012d", + "0x000000000000000000000000000000000000000000000000000000000000012e", + "0x000000000000000000000000000000000000000000000000000000000000012f", + "0x0000000000000000000000000000000000000000000000000000000000000130", + "0x0000000000000000000000000000000000000000000000000000000000000131", + "0x0000000000000000000000000000000000000000000000000000000000000132", + "0x0000000000000000000000000000000000000000000000000000000000000133", + "0x0000000000000000000000000000000000000000000000000000000000000134", + "0x0000000000000000000000000000000000000000000000000000000000000135", + "0x0000000000000000000000000000000000000000000000000000000000000136", + "0x0000000000000000000000000000000000000000000000000000000000000137", + "0x0000000000000000000000000000000000000000000000000000000000000138", + "0x0000000000000000000000000000000000000000000000000000000000000139", + "0x000000000000000000000000000000000000000000000000000000000000013a", + "0x000000000000000000000000000000000000000000000000000000000000013b", + "0x000000000000000000000000000000000000000000000000000000000000013c", + "0x000000000000000000000000000000000000000000000000000000000000013d", + "0x000000000000000000000000000000000000000000000000000000000000013e", + "0x000000000000000000000000000000000000000000000000000000000000013f", + "0x0000000000000000000000000000000000000000000000000000000000000140", + "0x0000000000000000000000000000000000000000000000000000000000000141", + "0x0000000000000000000000000000000000000000000000000000000000000142", + "0x0000000000000000000000000000000000000000000000000000000000000143", + "0x0000000000000000000000000000000000000000000000000000000000000144", + "0x0000000000000000000000000000000000000000000000000000000000000145", + "0x0000000000000000000000000000000000000000000000000000000000000146", + "0x0000000000000000000000000000000000000000000000000000000000000147", + "0x0000000000000000000000000000000000000000000000000000000000000148", + "0x0000000000000000000000000000000000000000000000000000000000000149", + "0x000000000000000000000000000000000000000000000000000000000000014a", + "0x000000000000000000000000000000000000000000000000000000000000014b", + "0x000000000000000000000000000000000000000000000000000000000000014c", + "0x000000000000000000000000000000000000000000000000000000000000014d", + "0x000000000000000000000000000000000000000000000000000000000000014e", + "0x000000000000000000000000000000000000000000000000000000000000014f", + "0x0000000000000000000000000000000000000000000000000000000000000150", + "0x0000000000000000000000000000000000000000000000000000000000000151", + "0x0000000000000000000000000000000000000000000000000000000000000152", + "0x0000000000000000000000000000000000000000000000000000000000000153", + "0x0000000000000000000000000000000000000000000000000000000000000154", + "0x0000000000000000000000000000000000000000000000000000000000000155", + "0x0000000000000000000000000000000000000000000000000000000000000156", + "0x0000000000000000000000000000000000000000000000000000000000000157", + "0x0000000000000000000000000000000000000000000000000000000000000158", + "0x0000000000000000000000000000000000000000000000000000000000000159", + "0x000000000000000000000000000000000000000000000000000000000000015a", + "0x000000000000000000000000000000000000000000000000000000000000015b", + "0x000000000000000000000000000000000000000000000000000000000000015c", + "0x000000000000000000000000000000000000000000000000000000000000015d", + "0x000000000000000000000000000000000000000000000000000000000000015e", + "0x000000000000000000000000000000000000000000000000000000000000015f", + "0x0000000000000000000000000000000000000000000000000000000000000160", + "0x0000000000000000000000000000000000000000000000000000000000000161", + "0x0000000000000000000000000000000000000000000000000000000000000162", + "0x0000000000000000000000000000000000000000000000000000000000000163", + "0x0000000000000000000000000000000000000000000000000000000000000164", + "0x0000000000000000000000000000000000000000000000000000000000000165", + "0x0000000000000000000000000000000000000000000000000000000000000166", + "0x0000000000000000000000000000000000000000000000000000000000000167", + "0x0000000000000000000000000000000000000000000000000000000000000168", + "0x0000000000000000000000000000000000000000000000000000000000000169", + "0x000000000000000000000000000000000000000000000000000000000000016a", + "0x000000000000000000000000000000000000000000000000000000000000016b", + "0x000000000000000000000000000000000000000000000000000000000000016c", + "0x000000000000000000000000000000000000000000000000000000000000016d", + "0x000000000000000000000000000000000000000000000000000000000000016e", + "0x000000000000000000000000000000000000000000000000000000000000016f", + "0x0000000000000000000000000000000000000000000000000000000000000170", + "0x0000000000000000000000000000000000000000000000000000000000000171", + "0x0000000000000000000000000000000000000000000000000000000000000172", + "0x0000000000000000000000000000000000000000000000000000000000000173", + "0x0000000000000000000000000000000000000000000000000000000000000174", + "0x0000000000000000000000000000000000000000000000000000000000000175", + "0x0000000000000000000000000000000000000000000000000000000000000176", + "0x0000000000000000000000000000000000000000000000000000000000000177", + "0x0000000000000000000000000000000000000000000000000000000000000178", + "0x0000000000000000000000000000000000000000000000000000000000000179", + "0x000000000000000000000000000000000000000000000000000000000000017a", + "0x000000000000000000000000000000000000000000000000000000000000017b", + "0x000000000000000000000000000000000000000000000000000000000000017c", + "0x000000000000000000000000000000000000000000000000000000000000017d", + "0x000000000000000000000000000000000000000000000000000000000000017e", + "0x000000000000000000000000000000000000000000000000000000000000017f", + "0x0000000000000000000000000000000000000000000000000000000000000180", + "0x0000000000000000000000000000000000000000000000000000000000000181", + "0x0000000000000000000000000000000000000000000000000000000000000182", + "0x0000000000000000000000000000000000000000000000000000000000000183", + "0x0000000000000000000000000000000000000000000000000000000000000184", + "0x0000000000000000000000000000000000000000000000000000000000000185", + "0x0000000000000000000000000000000000000000000000000000000000000186", + "0x0000000000000000000000000000000000000000000000000000000000000187", + "0x0000000000000000000000000000000000000000000000000000000000000188", + "0x0000000000000000000000000000000000000000000000000000000000000189", + "0x000000000000000000000000000000000000000000000000000000000000018a", + "0x000000000000000000000000000000000000000000000000000000000000018b", + "0x000000000000000000000000000000000000000000000000000000000000018c", + "0x000000000000000000000000000000000000000000000000000000000000018d", + "0x000000000000000000000000000000000000000000000000000000000000018e", + "0x000000000000000000000000000000000000000000000000000000000000018f", + "0x0000000000000000000000000000000000000000000000000000000000000190", + "0x0000000000000000000000000000000000000000000000000000000000000191", + "0x0000000000000000000000000000000000000000000000000000000000000192", + "0x0000000000000000000000000000000000000000000000000000000000000193", + "0x0000000000000000000000000000000000000000000000000000000000000194", + "0x0000000000000000000000000000000000000000000000000000000000000195", + "0x0000000000000000000000000000000000000000000000000000000000000196", + "0x0000000000000000000000000000000000000000000000000000000000000197", + "0x0000000000000000000000000000000000000000000000000000000000000198", + "0x0000000000000000000000000000000000000000000000000000000000000199", + "0x000000000000000000000000000000000000000000000000000000000000019a", + "0x000000000000000000000000000000000000000000000000000000000000019b", + "0x000000000000000000000000000000000000000000000000000000000000019c", + "0x000000000000000000000000000000000000000000000000000000000000019d", + "0x000000000000000000000000000000000000000000000000000000000000019e", + "0x000000000000000000000000000000000000000000000000000000000000019f", + "0x00000000000000000000000000000000000000000000000000000000000001a0", + "0x00000000000000000000000000000000000000000000000000000000000001a1", + "0x00000000000000000000000000000000000000000000000000000000000001a2", + "0x00000000000000000000000000000000000000000000000000000000000001a3", + "0x00000000000000000000000000000000000000000000000000000000000001a4", + "0x00000000000000000000000000000000000000000000000000000000000001a5", + "0x00000000000000000000000000000000000000000000000000000000000001a6", + "0x00000000000000000000000000000000000000000000000000000000000001a7", + "0x00000000000000000000000000000000000000000000000000000000000001a8", + "0x00000000000000000000000000000000000000000000000000000000000001a9", + "0x00000000000000000000000000000000000000000000000000000000000001aa", + "0x00000000000000000000000000000000000000000000000000000000000001ab", + "0x00000000000000000000000000000000000000000000000000000000000001ac", + "0x00000000000000000000000000000000000000000000000000000000000001ad", + "0x00000000000000000000000000000000000000000000000000000000000001ae", + "0x00000000000000000000000000000000000000000000000000000000000001af", + "0x00000000000000000000000000000000000000000000000000000000000001b0", + "0x00000000000000000000000000000000000000000000000000000000000001b1", + "0x00000000000000000000000000000000000000000000000000000000000001b2", + "0x00000000000000000000000000000000000000000000000000000000000001b3", + "0x00000000000000000000000000000000000000000000000000000000000001b4", + "0x00000000000000000000000000000000000000000000000000000000000001b5", + "0x00000000000000000000000000000000000000000000000000000000000001b6", + "0x00000000000000000000000000000000000000000000000000000000000001b7", + "0x00000000000000000000000000000000000000000000000000000000000001b8", + "0x00000000000000000000000000000000000000000000000000000000000001b9", + "0x00000000000000000000000000000000000000000000000000000000000001ba", + "0x00000000000000000000000000000000000000000000000000000000000001bb", + "0x00000000000000000000000000000000000000000000000000000000000001bc", + "0x00000000000000000000000000000000000000000000000000000000000001bd", + "0x00000000000000000000000000000000000000000000000000000000000001be", + "0x00000000000000000000000000000000000000000000000000000000000001bf", + "0x00000000000000000000000000000000000000000000000000000000000001c0", + "0x00000000000000000000000000000000000000000000000000000000000001c1", + "0x00000000000000000000000000000000000000000000000000000000000001c2", + "0x00000000000000000000000000000000000000000000000000000000000001c3", + "0x00000000000000000000000000000000000000000000000000000000000001c4", + "0x00000000000000000000000000000000000000000000000000000000000001c5", + "0x00000000000000000000000000000000000000000000000000000000000001c6", + "0x00000000000000000000000000000000000000000000000000000000000001c7", + "0x00000000000000000000000000000000000000000000000000000000000001c8", + "0x00000000000000000000000000000000000000000000000000000000000001c9", + "0x00000000000000000000000000000000000000000000000000000000000001ca", + "0x00000000000000000000000000000000000000000000000000000000000001cb", + "0x00000000000000000000000000000000000000000000000000000000000001cc", + "0x00000000000000000000000000000000000000000000000000000000000001cd", + "0x00000000000000000000000000000000000000000000000000000000000001ce", + "0x00000000000000000000000000000000000000000000000000000000000001cf", + "0x00000000000000000000000000000000000000000000000000000000000001d0", + "0x00000000000000000000000000000000000000000000000000000000000001d1", + "0x00000000000000000000000000000000000000000000000000000000000001d2", + "0x00000000000000000000000000000000000000000000000000000000000001d3", + "0x00000000000000000000000000000000000000000000000000000000000001d4", + "0x00000000000000000000000000000000000000000000000000000000000001d5", + "0x00000000000000000000000000000000000000000000000000000000000001d6", + "0x00000000000000000000000000000000000000000000000000000000000001d7", + "0x00000000000000000000000000000000000000000000000000000000000001d8", + "0x00000000000000000000000000000000000000000000000000000000000001d9", + "0x00000000000000000000000000000000000000000000000000000000000001da", + "0x00000000000000000000000000000000000000000000000000000000000001db", + "0x00000000000000000000000000000000000000000000000000000000000001dc", + "0x00000000000000000000000000000000000000000000000000000000000001dd", + "0x00000000000000000000000000000000000000000000000000000000000001de", + "0x00000000000000000000000000000000000000000000000000000000000001df", + "0x00000000000000000000000000000000000000000000000000000000000001e0", + "0x00000000000000000000000000000000000000000000000000000000000001e1", + "0x00000000000000000000000000000000000000000000000000000000000001e2", + "0x00000000000000000000000000000000000000000000000000000000000001e3", + "0x00000000000000000000000000000000000000000000000000000000000001e4", + "0x00000000000000000000000000000000000000000000000000000000000001e5", + "0x00000000000000000000000000000000000000000000000000000000000001e6", + "0x00000000000000000000000000000000000000000000000000000000000001e7", + "0x00000000000000000000000000000000000000000000000000000000000001e8", + "0x00000000000000000000000000000000000000000000000000000000000001e9", + "0x00000000000000000000000000000000000000000000000000000000000001ea", + "0x00000000000000000000000000000000000000000000000000000000000001eb", + "0x00000000000000000000000000000000000000000000000000000000000001ec", + "0x00000000000000000000000000000000000000000000000000000000000001ed", + "0x00000000000000000000000000000000000000000000000000000000000001ee", + "0x00000000000000000000000000000000000000000000000000000000000001ef", + "0x00000000000000000000000000000000000000000000000000000000000001f0", + "0x00000000000000000000000000000000000000000000000000000000000001f1", + "0x00000000000000000000000000000000000000000000000000000000000001f2", + "0x00000000000000000000000000000000000000000000000000000000000001f3", + "0x00000000000000000000000000000000000000000000000000000000000001f4", + "0x00000000000000000000000000000000000000000000000000000000000001f5", + "0x00000000000000000000000000000000000000000000000000000000000001f6", + "0x00000000000000000000000000000000000000000000000000000000000001f7", + "0x00000000000000000000000000000000000000000000000000000000000001f8", + "0x00000000000000000000000000000000000000000000000000000000000001f9", + "0x00000000000000000000000000000000000000000000000000000000000001fa", + "0x00000000000000000000000000000000000000000000000000000000000001fb", + "0x00000000000000000000000000000000000000000000000000000000000001fc", + "0x00000000000000000000000000000000000000000000000000000000000001fd", + "0x00000000000000000000000000000000000000000000000000000000000001fe", + "0x00000000000000000000000000000000000000000000000000000000000001ff", + "0x0000000000000000000000000000000000000000000000000000000000000200", + "0x0000000000000000000000000000000000000000000000000000000000000201", + "0x0000000000000000000000000000000000000000000000000000000000000202", + "0x0000000000000000000000000000000000000000000000000000000000000203", + "0x0000000000000000000000000000000000000000000000000000000000000204", + "0x0000000000000000000000000000000000000000000000000000000000000205", + "0x0000000000000000000000000000000000000000000000000000000000000206", + "0x0000000000000000000000000000000000000000000000000000000000000207", + "0x0000000000000000000000000000000000000000000000000000000000000208", + "0x0000000000000000000000000000000000000000000000000000000000000209", + "0x000000000000000000000000000000000000000000000000000000000000020a", + "0x000000000000000000000000000000000000000000000000000000000000020b", + "0x000000000000000000000000000000000000000000000000000000000000020c", + "0x000000000000000000000000000000000000000000000000000000000000020d", + "0x000000000000000000000000000000000000000000000000000000000000020e", + "0x000000000000000000000000000000000000000000000000000000000000020f", + "0x0000000000000000000000000000000000000000000000000000000000000210", + "0x0000000000000000000000000000000000000000000000000000000000000211", + "0x0000000000000000000000000000000000000000000000000000000000000212", + "0x0000000000000000000000000000000000000000000000000000000000000213", + "0x0000000000000000000000000000000000000000000000000000000000000214", + "0x0000000000000000000000000000000000000000000000000000000000000215", + "0x0000000000000000000000000000000000000000000000000000000000000216", + "0x0000000000000000000000000000000000000000000000000000000000000217" ] - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" +[inputs.previous_rollup_data.vk_data] +leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" +sibling_path = [ + "0x0875a4e4f269184b2ae54b26a914d419a529f73ed8b652665533e243805898b6", + "0x1e9915cf8f687c54fa6552aa96577450c5d22fd5ee294fa7eb347f75a41dbd7c", + "0x01927c72152cae3e36ff938a3aa83d84f7714194e2d7be1cec10173311bca5ab", + "0x09ecb7bbeef3ed164ac9bdefeaa1551414a28986e1d25698356c3696b31b2b4a", + "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", + "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ + [inputs.previous_rollup_data.vk_data.vk] + key = [ + "0x0000000000000000000000000000000000000000000000000000000000800000", + "0x00000000000000000000000000000000000000000000000000000000000000ec", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x00000000000000000000000000000000000000000000000000000000000000d2", + "0x00000000000000000000000000000000000000000000000000000000000000e2", + "0x000000000000000000000000000000fb69008e8413ee03462d57e45a4554de71", + "0x00000000000000000000000000000000002b3b8008ed26e8d60ae6e7f5d59ecb", + "0x000000000000000000000000000000e43af5d1b06fc147e84f7dafcd5d4c7d2f", + "0x000000000000000000000000000000000011fe8fcf9ddc1e066b222a5f36636f", + "0x0000000000000000000000000000007d8b97a2027ec5278f0e0fa9164b9f1de3", + "0x0000000000000000000000000000000000185b999373bb3e58840d34423d0b7b", + "0x00000000000000000000000000000045370beb991c5d71b13142fec874d81c56", + "0x00000000000000000000000000000000001906044e53c5bee64dd79e207136de", + "0x0000000000000000000000000000003b3e9a9a127d764fed2991653b6d264d11", + "0x000000000000000000000000000000000006e31d7dae6e9de735e63d18cbea45", + "0x000000000000000000000000000000a7894eb313fb890d4754b907a0c59697cd", + "0x0000000000000000000000000000000000059093530120da5b4ca5470894e5c7", + "0x000000000000000000000000000000d0657ba6286dbe7487b99c736cae8376ae", + "0x00000000000000000000000000000000000b45779c71e5093514b6fd2b3ee708", + "0x00000000000000000000000000000019960279f1c475e71ce87edf576a3d44cb", + "0x00000000000000000000000000000000001f7302f40a5e3535d1bda1ba3b8284", + "0x0000000000000000000000000000004051b8f813488d03643c5410bd2852b2d3", + "0x000000000000000000000000000000000019e47a48d8ef43770a5c5a44360438", + "0x0000000000000000000000000000009ee10faef63738490b33d6afe65a830d4e", + "0x00000000000000000000000000000000000f1837529e7f64ace7c470f472c14f", + "0x00000000000000000000000000000081679a247abf5bab8fc3b230217cd01e19", + "0x0000000000000000000000000000000000230b4cf50bbbd9c8b041acdece74bd", + "0x000000000000000000000000000000e30ba9684f722b8fb1b3a9912df6987d8f", + "0x00000000000000000000000000000000000a57cff24b057f7609e72272040da1", + "0x0000000000000000000000000000009b003b48720929f4a3dc740006df03a9fd", + "0x0000000000000000000000000000000000094452f469870d1d083e6035cac4f4", + "0x0000000000000000000000000000001fc5525b6dc3a1de76bf5963fcd944f856", + "0x00000000000000000000000000000000002e0cd9de1f897c332d94a00a65bb80", + "0x0000000000000000000000000000001ed9e44bc4f885ff622a3109e4413d70c4", + "0x00000000000000000000000000000000002f8ade458a9daf440c1a6f2e233a8a", + "0x00000000000000000000000000000051d7e11cb841df7bff68cadeee73ccc852", + "0x000000000000000000000000000000000007e02ff848a47b068d7ab4feae0d29", + "0x00000000000000000000000000000016532ed59e427405553c3bcc50db8c65ed", + "0x0000000000000000000000000000000000259557556119e757d7595471538e1e", + "0x0000000000000000000000000000006da6aaa0e05913a04c4b53169e428f894d", + "0x000000000000000000000000000000000025961dc1c745f5a3db24f725f25ceb", + "0x0000000000000000000000000000009b033374643424896558f97d6da87a46dc", + "0x00000000000000000000000000000000000c0b020591ae84c68e9004a8853024", + "0x00000000000000000000000000000004d1f190d0567c34129a8158840610a15c", + "0x00000000000000000000000000000000002825b6a75eb6edbe15eaa855b02be9", + "0x0000000000000000000000000000000ff32e9e22c6268b8181f9321795f494f5", + "0x0000000000000000000000000000000000292e3bc47051cb0917beb347e1b4d8", + "0x0000000000000000000000000000001754528117a8f5eccb616df797e5acd836", + "0x000000000000000000000000000000000026829e81a323f00421b3bbad4c8b41", + "0x000000000000000000000000000000e771c864cd1bad298ef87b4d13b22bcd82", + "0x00000000000000000000000000000000001e36d97a309ac2b02ecae1ec9a336e", + "0x000000000000000000000000000000e6a3bac48531075b128f3cfc35591df52f", + "0x00000000000000000000000000000000001bca328cf296a391ae4de8d0e591ba", + "0x000000000000000000000000000000f6dfa170f51b2e17572ce96c55142cdb48", + "0x00000000000000000000000000000000000851ea6497c9a6265533c5e4ba57cf", + "0x0000000000000000000000000000008ce2759fc3690fab9accdff7dedbcaec2e", + "0x00000000000000000000000000000000002d19642b49108b54485968bb915755", + "0x0000000000000000000000000000000376b237df56a223d02b589191af8db57c", + "0x00000000000000000000000000000000001b2ee0aa2099bc0a668b261478d734", + "0x0000000000000000000000000000003df27e35275da444b1e8e79a7abbd21aea", + "0x000000000000000000000000000000000011a788ee259e039b62332bb3ba12f0", + "0x0000000000000000000000000000004ddd2999b9a9cd3adcc58b26024f0e586e", + "0x00000000000000000000000000000000002922585601fbcb4c7f0860580c4e2c", + "0x000000000000000000000000000000693be3356ff82d8827934ddf8ddfb415fd", + "0x00000000000000000000000000000000000843b12f31ed91c92a45765ceb8d7d", + "0x0000000000000000000000000000005d56a2e28d3199f6db3f0974ebd1be8c1b", + "0x00000000000000000000000000000000002dca99ad136445771dbdc3aa002fbc", + "0x000000000000000000000000000000499f32df9409ef8c6beef72c11278fdf23", + "0x0000000000000000000000000000000000025c3cedeca7594b3312c68f9201a9", + "0x000000000000000000000000000000f733310e2f85df63ed63649ca8f2ad5eef", + "0x00000000000000000000000000000000001d27d0d266717bf88a7e4be0abd4a0", + "0x0000000000000000000000000000004326a2ee2ccb689893dcffd3b0383c3bc6", + "0x00000000000000000000000000000000002e6b60e77b31f93d6b110b45decb74", + "0x00000000000000000000000000000094024fb87c5ce6c89df62de24bfbafd8f2", + "0x00000000000000000000000000000000002ad93d3cdd5776c6afc96e3bbe7697", + "0x000000000000000000000000000000f1f526d325d6351a0db62385b1168da358", + "0x0000000000000000000000000000000000291a27f8a1ac888f5dbc626ae54319", + "0x000000000000000000000000000000557225c67e779a312bc031be89c3446ebb", + "0x000000000000000000000000000000000016abfaf7b8be9cd6966f0577c84a4a", + "0x0000000000000000000000000000000287e5430cfe9186b3d6db844944758629", + "0x00000000000000000000000000000000001c0ca56c9e298b5b49ab100e56b997", + "0x0000000000000000000000000000006c3a0e3611c8758e7a457d986a0b05b830", + "0x00000000000000000000000000000000000fa2bba2b581e8ef7f5859b8a49ed0", + "0x0000000000000000000000000000002502c0639280dc4932777f19d6aa62c53a", + "0x000000000000000000000000000000000026461592ab3b2f084a07558506aaf4", + "0x000000000000000000000000000000600c7bff6b993c352579fbfb4fecfdea96", + "0x000000000000000000000000000000000027959d7ddd9ab88e68d7fce37263e0", + "0x0000000000000000000000000000005e9b94342522d777dd1210e9a2175080fd", + "0x00000000000000000000000000000000002ffa66b96a784b42e9aa75ad694ca1", + "0x0000000000000000000000000000002efaca4d96d128cd16f053120bc300398c", + "0x000000000000000000000000000000000018b4165f92668f57edfc78be6db828", + "0x000000000000000000000000000000a312930706e419ed9153f698f593f95349", + "0x00000000000000000000000000000000002b48b8992ab278189e5e11a66d35ed", + "0x00000000000000000000000000000074807de886fd1f5dd20e599e83e68390c0", + "0x00000000000000000000000000000000001f6e15f6020331610636978ea44d6a", + "0x0000000000000000000000000000002adf31f83a70ac2563b07991988a962565", + "0x000000000000000000000000000000000019b3eb6c9110dc9749e778bae6148b", + "0x0000000000000000000000000000004944f3d838efd7aebe78def1c3e6d6db73", + "0x00000000000000000000000000000000001d0bbf8e0047e999b4d6fbb2a7db69", + "0x000000000000000000000000000000034b46ea26c1ff481588aa7a1d4cac1c41", + "0x0000000000000000000000000000000000160c646b20c81008eae87ef9572e9c", + "0x000000000000000000000000000000c99e19d3d7a5219ef57b6c2249dd88da8c", + "0x000000000000000000000000000000000022ed6806d8b1ee8752a4392ead3e23", + "0x000000000000000000000000000000d92c32591db729a56e147b3f85cff36c4f", + "0x00000000000000000000000000000000002337bd80484bec634ae68e617c5fdd", + "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ + "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + "0x00000000000000000000000000000007893584bdb13a5ff6da88d46466464919", + "0x00000000000000000000000000000000000dbbeac96b08cd059911750dfcd49a", + "0x000000000000000000000000000000f76b36a325c2cb56c17244a35967ae3685", + "0x000000000000000000000000000000000028807e041559ba384e4ccd4cf81e77" ] + hash = "0x11e1558e801cd19ddde9b764222e036bfaf9689c223bec8522e2434a4816cb09" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ +[[inputs.previous_rollup_data]] +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs] +out_hash = "0x00db4f24d6eff7983ec163d02c230d6a44237feabd8a2da284edce08afc71435" +proposed_block_header_hashes = [ + "0x00b4bcc0d5d88dc2335625aa30b1b29a728e7c593e2ba4c00284ab2ed4b951be", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] +vk_tree_root = "0x16e00802cd510c69cab77438b8f92c7fc6c1f77e983b2302bcb3e85e15c95eac" +protocol_contract_tree_root = "0x19ba79743ba96572bcb08efcff26637d21a4342b6eb58870935b0cbbd14d24cf" +prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.previous_archive] + root = "0x179ae87479c2a7beed82435029f39193e34a9c4de23ff3fbbef3f3b226ebe2ad" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.new_archive] + root = "0x1e28b0ab2a530f0bb5bb4a48cf3fa170fd9ef40859f5b0b1a53f646cf0ca9972" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables] + chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db907" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.coinbase] + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.fee_recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.gas_fees] + fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables] + chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db907" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.coinbase] + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.fee_recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.gas_fees] + fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000019019988" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator] +blob_commitments_hash_acc = "0x00187829a9ce563ef3b09676aab68d45ff788b4ebcaf50d8537dc8a60bff16d5" +z_acc = "0x037c91f7c20cd129e530d7394a5b13712490b6519ce3146eefb6142707d1feed" +gamma_acc = "0x2c165f80e26ef0e01d0df74c3ae4a6d8d7041fbea2d441ebcb6f8572f7135b8e" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0xf6faa1e454907bcf639fbf08893c9a", + "0x646a3a370a047c531df74f8938396d", + "0x11bf" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc] + is_infinity = false - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.x] + limbs = [ + "0x891544dcb6a857d6a29f469e0c1dfb", + "0xa733e1be542137fb2c91536493ac1f", + "0xafb101fff9677977445d144daeb7f5", + "0x175f99" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.y] + limbs = [ + "0x17bde297bf99f1e5e4a791acb171c6", + "0xbe33c99c2faf15f2d76e90595e59fe", + "0xa0dfda2abded52ad4053f7b0e493b9", + "0x097585" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" ] - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator] +blob_commitments_hash_acc = "0x0077ffa75686fd6e16ecf00bc9c830d043b5df95430082f9a85d0cbe4f41491f" +z_acc = "0x157a527766aedb27f25f36a043c4df4c1dbc872bd0f178a1cef55b82af9aaa84" +gamma_acc = "0x22f3b828a88a9bb3287c04b09ffe857d593ebe784bd64156ae1293cc81fde548" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x459dfea179f5bea53c89e5f2ebded3", + "0xdc3c5e828495bc234cccdb50189aed", + "0x363e" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc] + is_infinity = false - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.x] + limbs = [ + "0x3260e15e30636e1c2b831b96fe922e", + "0x1fdeb482031c832479dd2b603dfacb", + "0xb2f842916c4d369d08be4db8af699c", + "0x04f08f" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.y] + limbs = [ + "0x0b16b1c2f1b7655a72096c8f6a2187", + "0x91b1671ddc7e51116cea04fe01abd6", + "0x5ef209817c57ad41f0aa1052cbab04", + "0x0eaa19" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + "0x46cc5f7c08f5683e4124b1095da9d6", + "0x00ad7e885c5b0c0e2a0e3bcddfbef3", + "0x394e" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges] +z = "0x0cc935911cd6e85cd04a92e9140e34d4c8a576c5f9f85959dd30706c7021f4ac" + + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges.gamma] + limbs = [ + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" ] [inputs.previous_rollup_data.proof] @@ -6687,9 +2155,9 @@ fields = [ leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" sibling_path = [ "0x0080802eefc4bf780fe0fe5493e668fd3ce5786cc862eeb7ecba33a1fa90dfed", - "0x1910f1f5ec97f3e6c1463f0a5998c0f6bf239c3a5436252f260ccf261e3e3fb8", - "0x16f88c3ecc5351615ec0637c792411462bef0c4d1f9cdaeded6afe9b2ec7487c", - "0x2423b4c1180714c94b2f31100021a5393dafaad3951ed4862ecb6ca8f2a5f798", + "0x166aee4caadf8e1dd0ad9f6673e2c713cb1aba0b79431205db860c2376bffb47", + "0x01927c72152cae3e36ff938a3aa83d84f7714194e2d7be1cec10173311bca5ab", + "0x09ecb7bbeef3ed164ac9bdefeaa1551414a28986e1d25698356c3696b31b2b4a", "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" ] @@ -6697,117 +2165,117 @@ sibling_path = [ [inputs.previous_rollup_data.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000800000", - "0x0000000000000000000000000000000000000000000000000000000000000424", + "0x00000000000000000000000000000000000000000000000000000000000000ec", "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000000000000000000000000000000000000000040a", - "0x000000000000000000000000000000000000000000000000000000000000041a", - "0x000000000000000000000000000000eb61496d1f5d904b0aae274031d1dafdcc", - "0x00000000000000000000000000000000000be94c71465275f4c1ca4eec1a4c07", - "0x0000000000000000000000000000005d568b0163a4c0bc1bb69fb725df8e4814", - "0x00000000000000000000000000000000002480bbabc111d1b7c82d02c338c2a0", - "0x0000000000000000000000000000005ec8aeabd3fbb10e2596b7ef9a93c20da6", - "0x000000000000000000000000000000000003364916197c5148632c5445a70d1a", - "0x000000000000000000000000000000520fa482118f38a139e99731b2469616eb", - "0x00000000000000000000000000000000000ef55f3a54f83ace129748f4966d4c", - "0x000000000000000000000000000000f3051c3c42d41465206fe5f4f0b05c2056", - "0x0000000000000000000000000000000000184aa4926d0484088a0d4b80d866e7", - "0x0000000000000000000000000000008e4ce63f5ae35c150653449dbb8b6f7601", - "0x000000000000000000000000000000000028e5a77d9964d640bd7b9334fb1378", - "0x000000000000000000000000000000b4ce9c6287142e9c514b93c638049eba5f", - "0x000000000000000000000000000000000020cb604e7455797bbb753d363afff2", - "0x000000000000000000000000000000b193575cd8e8fb0849828d451b6a1a68e1", - "0x0000000000000000000000000000000000029214bd8c265facf47e75e839650c", - "0x000000000000000000000000000000560a778fa68007001f787452db5dd7997b", - "0x0000000000000000000000000000000000175d3f8637812291c21fc2f60ec360", - "0x000000000000000000000000000000f1383b48f462de97d057b50f3ae04b7905", - "0x000000000000000000000000000000000009fb2c8e7c7202187c88b36c068eee", - "0x00000000000000000000000000000058ac7a01e8d81d8ad33c02d19dd4ddfd39", - "0x00000000000000000000000000000000002fd00c13374ca05681478cb4dc2b70", - "0x000000000000000000000000000000d7bdd534ed44a0732e3307eed85b5332e0", - "0x00000000000000000000000000000000000886bfeea2547a9aaaf8008de15764", - "0x000000000000000000000000000000ebd38778b3274496532399746d9ad2b21e", - "0x00000000000000000000000000000000001f0792f3fb8d0a1fa047b39c348a0b", - "0x000000000000000000000000000000c38c90b96e080b0443ac3b57f0807e82ce", - "0x000000000000000000000000000000000002425fdb1a2c58a9b62b7b8a0e5500", - "0x00000000000000000000000000000050f1dee179885b9424a69db0f2b4502e5b", - "0x000000000000000000000000000000000005f89dced81b22b03f47e3b8c00285", - "0x000000000000000000000000000000d59cfd28f0378dc762c5e6657a5fd8faaf", - "0x000000000000000000000000000000000007fa6e138f760ad0e501036400dad8", - "0x00000000000000000000000000000012f685216352184ba2a93aeebb7aeeea63", - "0x00000000000000000000000000000000000ef453d062a637ae1148fe92a38c41", - "0x000000000000000000000000000000381b68ee476b6416301156732928bfafc3", - "0x000000000000000000000000000000000026ed4401077e284b23f7ac7b1b8cfb", - "0x000000000000000000000000000000d7498ba99bc60ad130bf154230c5cdf98e", - "0x000000000000000000000000000000000024188f25f1aaa0db23d7c279174629", - "0x0000000000000000000000000000001a12ce21f67ea9bff500920b8d31688b53", - "0x00000000000000000000000000000000000b00c49871ea2f2ee50ed195388b55", - "0x000000000000000000000000000000cf68977ff44668a91cce700a308265508b", - "0x000000000000000000000000000000000030602cb4f41a0205b0eddf8b6628b8", - "0x00000000000000000000000000000040fa1264259a8b4d0bf183121fa45677f8", - "0x00000000000000000000000000000000001f25c4f6f14bde7be4464aeff6169c", - "0x0000000000000000000000000000001fa853f44fc27a9e4c4708b889b9e55d77", - "0x00000000000000000000000000000000000f5a7cb7ef1757c9aef83b5f3aab74", - "0x0000000000000000000000000000009d80043193716d9be4bfd144f8ec464a3d", - "0x000000000000000000000000000000000017505088acf181ef8eb89ed161bda7", - "0x000000000000000000000000000000e66da483fabf0672d4d8e176cabfb91223", - "0x000000000000000000000000000000000023b6d1d9a10bf4ce6eda03108946cf", - "0x0000000000000000000000000000007b1b8d3963fe1d80fff2aeae306ed7b693", - "0x00000000000000000000000000000000002bbad54a604d0510804935fd48734d", - "0x0000000000000000000000000000008f3d83f889930ab24064e3e7ec4c08b333", - "0x00000000000000000000000000000000000db3aca030b1ddb4f5c0532ef2f709", - "0x0000000000000000000000000000004883919ff03ff070468bcd63168a9b384e", - "0x000000000000000000000000000000000027a868797fe0ed3eddf7efed6ea516", - "0x00000000000000000000000000000007045681ed847953eec4692014087da0ca", - "0x000000000000000000000000000000000004f21d8e3ebbc11281c841fb46b861", - "0x00000000000000000000000000000025413d592451eb02704404125ebbf4e879", - "0x00000000000000000000000000000000002a98871a646a255d111a072aac5b06", - "0x000000000000000000000000000000bd598a5bcc182351b0a5c66d8772c2dd10", - "0x00000000000000000000000000000000000e7c4f0baf88d51bcfaf6e069ac79a", - "0x00000000000000000000000000000088f56b7181d166ee7405cb37196111233d", - "0x00000000000000000000000000000000003019841fde0946fa63d3a7341a9028", - "0x00000000000000000000000000000031ae2c265f27d12f56bf7bd00249a7f0b5", - "0x00000000000000000000000000000000000b3cedfb9c13a55c99099c75fde0fb", - "0x00000000000000000000000000000030a888dc4dcf912be6821f47f8f0697daf", - "0x0000000000000000000000000000000000127c64805ce1696dff98f281591276", - "0x000000000000000000000000000000be254e1c5cc33517326ab21ee712cbb154", - "0x0000000000000000000000000000000000221142bcc6393df6ca0bb255cc66da", - "0x0000000000000000000000000000000fe5bf5a6ac7f5fd52a5c93e91f4d2c689", - "0x000000000000000000000000000000000021e304caef7dda6d5ad5a664e029fe", - "0x00000000000000000000000000000079e5d3be232e7833ccfe0ae45a90327ba7", - "0x00000000000000000000000000000000001b5a1f1e1e1076dba548050d398173", - "0x000000000000000000000000000000ac5a6bec1aed88197a4943c4d4f0d0b685", - "0x00000000000000000000000000000000001e095c59b597139f34e24a62927593", - "0x0000000000000000000000000000003d7eff62bccbadb0aaa62c78962d0fa075", - "0x00000000000000000000000000000000001273ec7d7ed92b6b97ca2cd19d10be", - "0x00000000000000000000000000000048d50e7535a175329c87cdc8c25c216e42", - "0x000000000000000000000000000000000027674e16056a6a86ed9e8431f13cd1", - "0x000000000000000000000000000000323286596fbe869254fc7f04c037811f4d", - "0x00000000000000000000000000000000002edf051508a42ca1dd5a94887aa5f3", - "0x0000000000000000000000000000001187444dc75491f8efd5216dc2f5dcd50c", - "0x00000000000000000000000000000000001f7c252e74468bd4aad7b242cbc2ae", - "0x000000000000000000000000000000a1df7d029b9ff4ee2daa206366393a7f31", - "0x00000000000000000000000000000000002a3f1db615617f2856ecabbfea3662", - "0x00000000000000000000000000000008b2769342754a7fb7764ba017cc543239", - "0x0000000000000000000000000000000000089d976f0a0dda0128ed6e5328907e", - "0x00000000000000000000000000000040aca0f2e0b6d770a2cf109a76532ed852", - "0x0000000000000000000000000000000000150652cf9f6b08bc31ddd4d3499362", - "0x00000000000000000000000000000049a9a7fc74679e24111f0349561c3f5be8", - "0x00000000000000000000000000000000001d751d973e4b64092b3cc8513f0a24", - "0x00000000000000000000000000000025b56a9d19de3a92e0578bc12373abad43", - "0x000000000000000000000000000000000006672a2f08656e68b0e298139a8558", - "0x000000000000000000000000000000870f121db70afc1411a31f5de38a65e652", - "0x00000000000000000000000000000000000a809bd48dc7ac613f62898ee9d058", - "0x000000000000000000000000000000dcd70143ba7789af0ba2b0ced39aa6c031", - "0x00000000000000000000000000000000002b2dc2aa64d7fbd3f023315aa26f9a", - "0x0000000000000000000000000000007e8aa43cd4201c3d7635a6a1d97d188d4e", - "0x00000000000000000000000000000000000f77c508797e4e19f7ce2a5f1730b9", + "0x00000000000000000000000000000000000000000000000000000000000000d2", + "0x00000000000000000000000000000000000000000000000000000000000000e2", + "0x0000000000000000000000000000009d7acd056f6c5c4a8037950ab91c8e0005", + "0x00000000000000000000000000000000001c4300e42f14b407709a6a763b8f37", + "0x000000000000000000000000000000813e2ac8ceebf75547808d2ff4e2928f59", + "0x0000000000000000000000000000000000109416fb7e316d8663c450a97b21cd", + "0x00000000000000000000000000000025e840e150e2d3a8fa589803eb01e055b8", + "0x000000000000000000000000000000000013e29daab20a170b1728bd0bcb94b8", + "0x000000000000000000000000000000ad046c83d7ba1cbf6159621b6245d83cfc", + "0x00000000000000000000000000000000001e07a70f93b3ce13810ea920e06af0", + "0x0000000000000000000000000000002b01a3a516f25370969c7fa3a42984b985", + "0x000000000000000000000000000000000029880f776c39901df69da7e3b262ac", + "0x00000000000000000000000000000030aaa36a4226c10998a63ef295f4d2d942", + "0x00000000000000000000000000000000002fa0a4f28398a689adf154be951390", + "0x0000000000000000000000000000000a05336750ee2712d71bd3099ae40391cc", + "0x00000000000000000000000000000000001c3ea4198b3b26f49a8e30b93a0ea1", + "0x00000000000000000000000000000064a4f66f22f5739d7bf7f454a591d693c4", + "0x0000000000000000000000000000000000221acf84d2ad11393045ae70225925", + "0x000000000000000000000000000000cb4c18dd9c3a18dd3f165752fd5aecd650", + "0x00000000000000000000000000000000002fb5a12c6fa5c4208b0d253ce1923d", + "0x0000000000000000000000000000003640cbca8f96630db37a31a4a1dbcc40ba", + "0x000000000000000000000000000000000010220d16cfa31e70e401ca93807379", + "0x0000000000000000000000000000008aa8cab65abb46d282dbf2a38372b0e915", + "0x00000000000000000000000000000000001b044285d21f5ff5627c998e9caa2d", + "0x0000000000000000000000000000007a5654bcfd370691260fbde1eac45e685d", + "0x0000000000000000000000000000000000211299f3137b7eec299cb800f28549", + "0x000000000000000000000000000000c56b7b7798efbc6d1046723950820c723f", + "0x0000000000000000000000000000000000235d202544eebfcc42e3751b4bc336", + "0x000000000000000000000000000000b1f784da596303692be2a2cae2d42d3a60", + "0x000000000000000000000000000000000003dd6de6fde0fc953328932c0e5ca2", + "0x0000000000000000000000000000000db1c0b511e9ea98c30cade17897c935f5", + "0x00000000000000000000000000000000001a4994bff0bd607b8e71631d02de4a", + "0x00000000000000000000000000000091a496ecfca83bf808362d88314a12152a", + "0x00000000000000000000000000000000000d58e3255fba93ea8ce6b124dc2279", + "0x0000000000000000000000000000005997ad7d3f765ed2b19d42f82d85429c29", + "0x00000000000000000000000000000000000fbd9a94335acb6b7dc9405debeb53", + "0x00000000000000000000000000000012f4b38fa0ddcd40247e1d2d392de73a21", + "0x0000000000000000000000000000000000111b198e0f19a68466f2bc4d605926", + "0x00000000000000000000000000000048ae556af886e58c0f9a5ea0f5d5cbcd27", + "0x000000000000000000000000000000000004ae7ffe17c16f7cf87ddd5251217f", + "0x0000000000000000000000000000002f8f0b270059a47dc10673d3975198513a", + "0x0000000000000000000000000000000000220002960e560ac667192884234df9", + "0x0000000000000000000000000000000a0ea6816f9a056fe46ba788f2b0437643", + "0x0000000000000000000000000000000000242e3ec79bc9234a5b7f269c231de3", + "0x0000000000000000000000000000007c64f57b0f1486aabcf23510ab7061fed3", + "0x000000000000000000000000000000000007825b09d9f1ceab04d3f845a6a9e0", + "0x000000000000000000000000000000361f738b9cb9810c4dab0499a3e6d04bfd", + "0x00000000000000000000000000000000001c86ccb79b302b49862cb7642d21b8", + "0x000000000000000000000000000000c9c2b71a0abd2fa2a1dd3c66aab3782ca8", + "0x0000000000000000000000000000000000228fbad0d17355152a2f2b44a67540", + "0x0000000000000000000000000000002fc493feb42743c7dd997437613a8cbb65", + "0x00000000000000000000000000000000000c686d58825ad847a70be6059cf9c5", + "0x000000000000000000000000000000221c752c1f59dde290bc9ade795ffdeb46", + "0x0000000000000000000000000000000000028411bcbe0b8ee020838937744dd6", + "0x0000000000000000000000000000002008db6293ea0c8a85653878d9959999d6", + "0x00000000000000000000000000000000000ac3399244b4210b437cce34027ac2", + "0x000000000000000000000000000000ee99b0b7c50e9d7fcfb49eef43a421a214", + "0x000000000000000000000000000000000008927de087a4d7f1ce2e2cefcc6003", + "0x00000000000000000000000000000017ac0d248b53cc19c82676e601021893a7", + "0x000000000000000000000000000000000017038e13a31fd615882d750cd46376", + "0x000000000000000000000000000000af4b328ecbd01d5aac241c2cfe590e1af9", + "0x000000000000000000000000000000000005727287a0bd95910322c884d4c407", + "0x000000000000000000000000000000573a4a3cf1877b0b82672874910a0014e6", + "0x00000000000000000000000000000000001fc085d19c81baa05f083f4f550946", + "0x0000000000000000000000000000006c7b5b8ad9968689e67a95e7c0f49257c4", + "0x00000000000000000000000000000000002745e752f669974e41d4e42c361d30", + "0x000000000000000000000000000000f5349a1ed67038d7962bc1b023a1341038", + "0x000000000000000000000000000000000018e156d75981d5666c8cd2a4697fc7", + "0x000000000000000000000000000000f74bad5060adbdfc031e2bb1846afa7a1e", + "0x00000000000000000000000000000000000db9409ca6350a39211ae30333e741", + "0x000000000000000000000000000000a2b6ea2dda8ffefb1929a9fb746cc95a4d", + "0x00000000000000000000000000000000002958cea809d5b4cc3798539d87c94d", + "0x000000000000000000000000000000cb0cbcc202d3850cea1a54511f4a49da2a", + "0x000000000000000000000000000000000014c028e74b8e00f81fe88a4c8ae4e1", + "0x000000000000000000000000000000cca92aea7187cbe6a950503c0db209efab", + "0x00000000000000000000000000000000002d10df0ed0bd5d434663148d2f5e5e", + "0x000000000000000000000000000000465fdf1e9199646a9ca3dbbb47e4d12ac2", + "0x00000000000000000000000000000000000e961e5ea3dbacb58391f1df2c731e", + "0x0000000000000000000000000000005aeb12c43d430cdab03418cb05d6622a82", + "0x0000000000000000000000000000000000128ed76e3aafb2d5daff45b938f109", + "0x00000000000000000000000000000035e155ae9473816c57a773a9fce06ecad3", + "0x0000000000000000000000000000000000269e2238b8d21ab9e9e370a5a88624", + "0x000000000000000000000000000000be7a80567333bbba9ca279875d20c6f2e6", + "0x00000000000000000000000000000000000b6429dded028ead5a9b40056c7a09", + "0x0000000000000000000000000000008152058f8575ffbd27fbd87c3c88f98bcc", + "0x00000000000000000000000000000000000001c9ba00708c8f89841c0c4963ac", + "0x0000000000000000000000000000002efaca4d96d128cd16f053120bc300398c", + "0x000000000000000000000000000000000018b4165f92668f57edfc78be6db828", + "0x000000000000000000000000000000a312930706e419ed9153f698f593f95349", + "0x00000000000000000000000000000000002b48b8992ab278189e5e11a66d35ed", + "0x00000000000000000000000000000074807de886fd1f5dd20e599e83e68390c0", + "0x00000000000000000000000000000000001f6e15f6020331610636978ea44d6a", + "0x0000000000000000000000000000002adf31f83a70ac2563b07991988a962565", + "0x000000000000000000000000000000000019b3eb6c9110dc9749e778bae6148b", + "0x0000000000000000000000000000004944f3d838efd7aebe78def1c3e6d6db73", + "0x00000000000000000000000000000000001d0bbf8e0047e999b4d6fbb2a7db69", + "0x000000000000000000000000000000034b46ea26c1ff481588aa7a1d4cac1c41", + "0x0000000000000000000000000000000000160c646b20c81008eae87ef9572e9c", + "0x000000000000000000000000000000c99e19d3d7a5219ef57b6c2249dd88da8c", + "0x000000000000000000000000000000000022ed6806d8b1ee8752a4392ead3e23", + "0x000000000000000000000000000000d92c32591db729a56e147b3f85cff36c4f", + "0x00000000000000000000000000000000002337bd80484bec634ae68e617c5fdd", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000004cc19ae3c1e2cde46169fe6cc95118495", - "0x00000000000000000000000000000000002b065f756f9303958d803aa80ffea1", - "0x000000000000000000000000000000eca53ce39bc005915a1b10bb3a84fc030e", - "0x000000000000000000000000000000000006dbf565cfa1111a03273768e49a01" + "0x000000000000000000000000000000fdaf5521e0c21d60e1159673b07d5c9439", + "0x00000000000000000000000000000000000c648c2cb1a35ad11a1183db5a1166", + "0x0000000000000000000000000000004b2d761d542c3c99401ab1ca49c730f165", + "0x00000000000000000000000000000000000e588f0bbfbc6db5f680c4de96b2d3" ] - hash = "0x0aa60b850cbd450c9ed62de761e9f15c944ef61c65832d88eb8076f2e51873ee" + hash = "0x0ad38c6dbbdcea7b2e9d9c6e6bd35db32f0322b3e21768340c539f10a3dca810" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml index 0d538f2d8248..d4cd57d95485 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root/Prover.toml @@ -3,57 +3,57 @@ rollup_type = "0x0000000000000000000000000000000000000000000000000000000000000001" num_txs = "0x0000000000000000000000000000000000000000000000000000000000000002" out_hash = "0x00f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb" -accumulated_fees = "0x00000000000000000000000000000000000000000000000000000000f3a83880" -accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000016120" +accumulated_fees = "0x00000000000000000000000000000000000000000000000000000000159a1388" +accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000001602a" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants] - vk_tree_root = "0x20af990958e8575ae0f803c8a491a00c3734fc1df32d7aee2f29d13a0f14e157" - protocol_contract_tree_root = "0x13b587f58f77a7ad53b50e5509a4aff45cf77ccd44d7e5af3ea19c51bcc02d0d" + vk_tree_root = "0x16e00802cd510c69cab77438b8f92c7fc6c1f77e983b2302bcb3e85e15c95eac" + protocol_contract_tree_root = "0x19ba79743ba96572bcb08efcff26637d21a4342b6eb58870935b0cbbd14d24cf" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.last_archive] - root = "0x1d3846bf57ef0320b75010d507a359d7f2a0220ecb6f19266cf817ae88990747" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" + root = "0x179ae87479c2a7beed82435029f39193e34a9c4de23ff3fbbef3f3b226ebe2ad" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091f6" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db907" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start.note_hash_tree] -root = "0x24bf8345dcf10341c55c076c8965595eebbf083a6d0060cf37145d4d09d2784f" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000001c0" +root = "0x2e672d8540befd6950f57c00c96fa2eeae2cc660bca82c385ecda244d78adb75" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start.nullifier_tree] -root = "0x2c8c7f37cca131a4ed8264aa1bbb7a5b67233928f324db999cb95704eb2b8b06" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" +root = "0x158f22c4b2d602cb6791f50969ef5fb2da0c3b3de5d1f501994781f5af4124c0" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start.public_data_tree] -root = "0x26408377b0aff97f1ef5d901dd6c0cfacec1cf2fa6ed570cdf08ff99e08d6af0" +root = "0x2437da91bd0b0dd21f02e725239664f77bf20c6740193536a0f890ea58c2abd5" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008e" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end.note_hash_tree] -root = "0x24bf8345dcf10341c55c076c8965595eebbf083a6d0060cf37145d4d09d2784f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" +root = "0x2e672d8540befd6950f57c00c96fa2eeae2cc660bca82c385ecda244d78adb75" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end.nullifier_tree] -root = "0x0971d8dff5aaf29977034d22e549d3c9050b0242ffe83b55b7f01ee4564e228c" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" +root = "0x18be5263551506e73eabf1c8ada36237b81cdb7b233e34dc405a960eaf33381d" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end.public_data_tree] -root = "0x2a29584ea38eb072c75f0479b76235c03373e6cbf281cbb45b8f9d3bef9d114c" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008f" +root = "0x1404a6c188b4f98751d6dc279aef4a863de6c2980f2fe0361b8d7ac5f9b19d35" +next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008e" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start_sponge_blob] fields = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -80,15 +80,15 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end_sponge_blob.sponge] cache = [ - "0x00000000000000000000000000000000000000000000021e19e0c9b2bb0a8474", - "0x00000000000000000000000000000000000000000000000000000000000003e8", - "0x0b0fed4f8b58d4d2ddf0cfb683af6599b7d7e66eabab5f89676ac3ff8abda84c" + "0x00000000000000000000000000000000000000000000021e19e0c9b33d5a5d78", + "0x000000000000000000000000000000000000000000000000000000000000076c", + "0x1afef2429206531cfda1472c1c819760d82b47a555b617fc41f765b331b2f0f9" ] state = [ - "0x142b15f9f28f1866c317e771bc2a5134b8d3209e86e61578fd40b565047f2f3b", - "0x18d991b79101a86b2642e98efa0a17528aa3d8c5119486e131c13c06f0d8fd0f", - "0x17769d6fc0b050669aeff341f78338b950cd77405056477a60d28d258792baf7", - "0x22c8be561d5f2b4236892b1b147a16468a190b7c4bf3dda7ab313452083b4b89" + "0x2c3a6a37f2db15b8e29e306f6232d6ea69bbc86e5e1bfd15900b7d22d3a3abd9", + "0x09afd2bfb1fc791158892440028fde48327284122d26834b8b2e8c3961108121", + "0x05b81072215dd8cfe279f961dbda688edec513d3b5c6a9c335db3054fdecc18f", + "0x0e0a67ff08263254286c7db3f97e3e55a393b4781a3910fd3acd0b544a8decb9" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false @@ -635,10 +635,10 @@ fields = [ [inputs.previous_rollup_data.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" sibling_path = [ - "0x0aa60b850cbd450c9ed62de761e9f15c944ef61c65832d88eb8076f2e51873ee", - "0x1910f1f5ec97f3e6c1463f0a5998c0f6bf239c3a5436252f260ccf261e3e3fb8", - "0x16f88c3ecc5351615ec0637c792411462bef0c4d1f9cdaeded6afe9b2ec7487c", - "0x2423b4c1180714c94b2f31100021a5393dafaad3951ed4862ecb6ca8f2a5f798", + "0x0ad38c6dbbdcea7b2e9d9c6e6bd35db32f0322b3e21768340c539f10a3dca810", + "0x166aee4caadf8e1dd0ad9f6673e2c713cb1aba0b79431205db860c2376bffb47", + "0x01927c72152cae3e36ff938a3aa83d84f7714194e2d7be1cec10173311bca5ab", + "0x09ecb7bbeef3ed164ac9bdefeaa1551414a28986e1d25698356c3696b31b2b4a", "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" ] @@ -766,57 +766,57 @@ sibling_path = [ rollup_type = "0x0000000000000000000000000000000000000000000000000000000000000000" num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" -accumulated_fees = "0x00000000000000000000000000000000000000000000000000000000264b8e00" +accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000003678600" accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000003780" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants] - vk_tree_root = "0x20af990958e8575ae0f803c8a491a00c3734fc1df32d7aee2f29d13a0f14e157" - protocol_contract_tree_root = "0x13b587f58f77a7ad53b50e5509a4aff45cf77ccd44d7e5af3ea19c51bcc02d0d" + vk_tree_root = "0x16e00802cd510c69cab77438b8f92c7fc6c1f77e983b2302bcb3e85e15c95eac" + protocol_contract_tree_root = "0x19ba79743ba96572bcb08efcff26637d21a4342b6eb58870935b0cbbd14d24cf" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.last_archive] - root = "0x1d3846bf57ef0320b75010d507a359d7f2a0220ecb6f19266cf817ae88990747" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" + root = "0x179ae87479c2a7beed82435029f39193e34a9c4de23ff3fbbef3f3b226ebe2ad" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091f6" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db907" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.constants.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start.note_hash_tree] -root = "0x24bf8345dcf10341c55c076c8965595eebbf083a6d0060cf37145d4d09d2784f" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" +root = "0x2e672d8540befd6950f57c00c96fa2eeae2cc660bca82c385ecda244d78adb75" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start.nullifier_tree] -root = "0x0971d8dff5aaf29977034d22e549d3c9050b0242ffe83b55b7f01ee4564e228c" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" +root = "0x18be5263551506e73eabf1c8ada36237b81cdb7b233e34dc405a960eaf33381d" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000340" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start.public_data_tree] -root = "0x2a29584ea38eb072c75f0479b76235c03373e6cbf281cbb45b8f9d3bef9d114c" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008f" +root = "0x1404a6c188b4f98751d6dc279aef4a863de6c2980f2fe0361b8d7ac5f9b19d35" +next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008e" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end.note_hash_tree] -root = "0x276f0e5a6f2079256f8963e1914a3b4603ca075d59bd9f355c2e7c1734b9a7ee" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" +root = "0x28b7352ba890ff9681247c22388b345fdaed34f094d0c65b5f02f22d30c5bf34" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end.nullifier_tree] -root = "0x07782871f00beb8f3acc069880bb193b4400bcc99da2bdc78da6b82870c73c26" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" +root = "0x20f95e04ccb763b2377f68bdb00c0e773c942b223022504477fad95386dcb8cb" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end.public_data_tree] -root = "0x014a8a2fdd844ec7413d6cf52ea80eea7f04c334540526cd2bcf01841dfa7193" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008f" +root = "0x2ddb111fadcf9247828deaabdfe53e6bf5b9fd267e671806da530ffd2fc07fde" +next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008e" [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start_sponge_blob] fields = "0x0000000000000000000000000000000000000000000000000000000000000016" @@ -824,15 +824,15 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.start_sponge_blob.sponge] cache = [ - "0x00000000000000000000000000000000000000000000021e19e0c9b2bb0a8474", - "0x00000000000000000000000000000000000000000000000000000000000003e8", - "0x0b0fed4f8b58d4d2ddf0cfb683af6599b7d7e66eabab5f89676ac3ff8abda84c" + "0x00000000000000000000000000000000000000000000021e19e0c9b33d5a5d78", + "0x000000000000000000000000000000000000000000000000000000000000076c", + "0x1afef2429206531cfda1472c1c819760d82b47a555b617fc41f765b331b2f0f9" ] state = [ - "0x142b15f9f28f1866c317e771bc2a5134b8d3209e86e61578fd40b565047f2f3b", - "0x18d991b79101a86b2642e98efa0a17528aa3d8c5119486e131c13c06f0d8fd0f", - "0x17769d6fc0b050669aeff341f78338b950cd77405056477a60d28d258792baf7", - "0x22c8be561d5f2b4236892b1b147a16468a190b7c4bf3dda7ab313452083b4b89" + "0x2c3a6a37f2db15b8e29e306f6232d6ea69bbc86e5e1bfd15900b7d22d3a3abd9", + "0x09afd2bfb1fc791158892440028fde48327284122d26834b8b2e8c3961108121", + "0x05b81072215dd8cfe279f961dbda688edec513d3b5c6a9c335db3054fdecc18f", + "0x0e0a67ff08263254286c7db3f97e3e55a393b4781a3910fd3acd0b544a8decb9" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false @@ -843,15 +843,15 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollup_data.base_or_merge_rollup_public_inputs.end_sponge_blob.sponge] cache = [ - "0x000252a9d085d1ca029766170540a8555260a67f0d45dba78653cfbf33312fc3", - "0x000eb248c0c987c2eafffc3ef8e5f9a35a20270a3d7c3f360b7dda3ea322d400", - "0x00c17d071cc36e4bd1b1bb60c09c94f7e75c742555834cd504c4c788e94e5ee3" + "0x009cf849ca69201c2ca9b8605504c36dc3a1c45433f5f311e12280aaf3b7da70", + "0x00b834936d300578521492a676c51d67b772894e5acf89072401fe37ee788058", + "0x00dae84df957dff182505aaf5d1df54a3543a14d234ab451bef6b0fe6432290c" ] state = [ - "0x286046e0f28ce90a8ac11d05e3118b9abb2c79b65dcb6300771cb3320ec41dfd", - "0x056d62f51072d6a4657a4fb1c25c8c3ccd5fafd771179f320eb71475723ac9e5", - "0x1f39cd738a50c5b238c4c8d0e306b74fac2951d043a4f4c511b9438eaefaec9b", - "0x0e88bcccc75ea21d9f5d76c3f4bac0c7bb36b4f02f043f327315456f755e23d9" + "0x19da9da5d000a21bce51220349e00a2bcfda3e13a0943a15a3e1b504312b8ec8", + "0x0906e235740461031dbb328e8eefc88b2d23128ba7a2ab23308425d1bcc4c620", + "0x0c64ee0aaee97219aa8bade415567689e94bd6139027a7028987cec1e490d588", + "0x2c53eecc979043079c65ee4ec31610bbb43ae070b2e1ee3d61a6c1c35e3fab4d" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -1398,10 +1398,10 @@ fields = [ [inputs.previous_rollup_data.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000006" sibling_path = [ - "0x00d17a0fc1e662721a4a2ac761a66eedd1c55520e769c42d4c9e394074564074", + "0x2a6157d8effaa56e71e1e1f6fff123bcc5c9075011bcd91ea75049fd33024188", "0x166d9200203972a67e495e091356eb547f3ad77502de0163b0eb32598c42137d", "0x290f67227ae4f2cc57a44bb6c9e2d654ca7396f5eefe47c0de2c3adc7240f81e", - "0x2da97ce22fde73b1c38ea81251e96f2e485ec709e7d3bf1fc778ec8c86838b5b", + "0x22c6cb052d42b1d387e0fd27c30832ea486495db0a2b470b26145ccc9df1c5a6", "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" ] @@ -1563,10 +1563,10 @@ l1_to_l2_message_subtree_sibling_path = [ "0x21849764e1aa64b83a69e39d27eedaec2a8f97066e5ddb74634ffdb11388dd9a" ] previous_archive_sibling_path = [ - "0x1fce29b9f22e032fd99a117b05a2b70b55ec00113fc7b7d8441c7be00ccb19d4", - "0x19886a788f7a924a37eb30a66b20b9a91de83d5b037d52bf0664fe8b37004ffc", - "0x2e289d113fc5db833a58538047224b5ca8feec60822e6e4aabc1247a6499c867", - "0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20", + "0x16594c87b2911e262b4d0172f01be894a3f5bc705ca8bef5f933c6821fcb7093", + "0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1", + "0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290", + "0x1b86f601c1abf3ed15ff67aaf2022216628afd869ac8a1205920f943ae4dfe59", "0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e", "0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf", "0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76", @@ -1595,9 +1595,9 @@ previous_archive_sibling_path = [ ] new_archive_sibling_path = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1", + "0x128a8092e7bbcf82d08a9f8d59d6b6a9f134068be8cdbf025f83804efa3efcab", "0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290", - "0x29a8cf37e1854efca4a37e16c3539165d95ee7ab10b2215f179f1ba021ee7f4a", + "0x1b86f601c1abf3ed15ff67aaf2022216628afd869ac8a1205920f943ae4dfe59", "0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e", "0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf", "0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76", @@ -1629,9 +1629,9 @@ prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.data.l1_to_l2_roots] vk_path = [ "0x037ff6f5a0bbb8ae28ac3ae63579d7c7786cdc7f7bdc64868b5aab1479f542f7", - "0x01fc44cd352177cd11426eae09af8e446039c08c0ffb3c29cf37510774a714f2", - "0x13b7e4bb23431a642a6f4d6c72ba975928371c0489017d45e4d18f9c12207cea", - "0x2423b4c1180714c94b2f31100021a5393dafaad3951ed4862ecb6ca8f2a5f798", + "0x29bd5901e5b4f7bde1efb5271a4a33048f6adbca12c76d6c1f95c1a59830cc96", + "0x1531e245be9fc39e0bdfbe149a6089f8615b86fbace408368197180438730202", + "0x09ecb7bbeef3ed164ac9bdefeaa1551414a28986e1d25698356c3696b31b2b4a", "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" ] @@ -2216,149 +2216,197 @@ prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.data.l1_to_l2_roots.public_inputs] sha_root = "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c" converted_root = "0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e" - vk_tree_root = "0x20af990958e8575ae0f803c8a491a00c3734fc1df32d7aee2f29d13a0f14e157" + vk_tree_root = "0x16e00802cd510c69cab77438b8f92c7fc6c1f77e983b2302bcb3e85e15c95eac" [inputs.data.previous_block_header] - total_fees = "0x00000000000000000000000000000000000000000000000000000000264b8e00" + total_fees = "0x0000000000000000000000000000000000000000000000000000000003678600" total_mana_used = "0x0000000000000000000000000000000000000000000000000000000000003780" [inputs.data.previous_block_header.last_archive] - root = "0x28b736e155feabaa3f1c86694f8195828dc14d5b8480eb2ac41410a8874ea241" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000007" + root = "0x2a3fbfdd7f5fb12e887eacaae0108766b0a9d928b58504857dcebe633fc7ec6d" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.data.previous_block_header.content_commitment] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" - blobs_hash = "0x00b8ff774b2b3dc4ea855ebcd0a539d3985b4e0b9216b64018efcab7b6ee0933" + blobs_hash = "0x00e8d48f36c920c6614610817c0a85f2768252fcc9158df608e1f9f449d40619" in_hash = "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c" out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.data.previous_block_header.state.l1_to_l2_message_tree] root = "0x2e33ee2008411c04b99c24b313513d097a0d21a5040b6193d1f978b8226892d6" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000070" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000090" [inputs.data.previous_block_header.state.partial.note_hash_tree] -root = "0x24bf8345dcf10341c55c076c8965595eebbf083a6d0060cf37145d4d09d2784f" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000001c0" +root = "0x2e672d8540befd6950f57c00c96fa2eeae2cc660bca82c385ecda244d78adb75" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" [inputs.data.previous_block_header.state.partial.nullifier_tree] -root = "0x2c8c7f37cca131a4ed8264aa1bbb7a5b67233928f324db999cb95704eb2b8b06" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" +root = "0x158f22c4b2d602cb6791f50969ef5fb2da0c3b3de5d1f501994781f5af4124c0" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" [inputs.data.previous_block_header.state.partial.public_data_tree] -root = "0x26408377b0aff97f1ef5d901dd6c0cfacec1cf2fa6ed570cdf08ff99e08d6af0" +root = "0x2437da91bd0b0dd21f02e725239664f77bf20c6740193536a0f890ea58c2abd5" next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008e" [inputs.data.previous_block_header.global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000007" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000021" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091d2" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db8e3" [inputs.data.previous_block_header.global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [inputs.data.previous_block_header.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.data.previous_block_header.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" + + [inputs.data.start_blob_accumulator] + blob_commitments_hash_acc = "0x00187829a9ce563ef3b09676aab68d45ff788b4ebcaf50d8537dc8a60bff16d5" + z_acc = "0x037c91f7c20cd129e530d7394a5b13712490b6519ce3146eefb6142707d1feed" + gamma_acc = "0x2c165f80e26ef0e01d0df74c3ae4a6d8d7041fbea2d441ebcb6f8572f7135b8e" + + [inputs.data.start_blob_accumulator.y_acc] + limbs = [ + "0xf6faa1e454907bcf639fbf08893c9a", + "0x646a3a370a047c531df74f8938396d", + "0x11bf" +] + + [inputs.data.start_blob_accumulator.c_acc] + is_infinity = false + + [inputs.data.start_blob_accumulator.c_acc.x] + limbs = [ + "0x891544dcb6a857d6a29f469e0c1dfb", + "0xa733e1be542137fb2c91536493ac1f", + "0xafb101fff9677977445d144daeb7f5", + "0x175f99" +] + + [inputs.data.start_blob_accumulator.c_acc.y] + limbs = [ + "0x17bde297bf99f1e5e4a791acb171c6", + "0xbe33c99c2faf15f2d76e90595e59fe", + "0xa0dfda2abded52ad4053f7b0e493b9", + "0x097585" +] + + [inputs.data.start_blob_accumulator.gamma_pow_acc] + limbs = [ + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" +] + + [inputs.data.final_blob_challenges] + z = "0x0cc935911cd6e85cd04a92e9140e34d4c8a576c5f9f85959dd30706c7021f4ac" + + [inputs.data.final_blob_challenges.gamma] + limbs = [ + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" +] [inputs.blob_data] blobs_fields = [ "0x000000000000000000000000000000000074785f737461727400000a00010000", - "0x03d5f52cf7271e66ad43135933d439f6249bc867f4051b021be8fef3436a17b5", - "0x000200000000000000000000000000000000000000000000000000005816a8e8", + "0x1a2fcc63d3095052d06cbf5b2159a1f3ee68c037ee56ba9909410a57cf1cb695", + "0x0002000000000000000000000000000000000000000000000000000007cd2e0c", "0x0000000000000000000000000000000000000000000000000000000004000001", - "0x1fb0267f7cecfb1743c8343e4b6ff274bca4473d2895adc6aadc640871022f8c", + "0x2d0e695a54902cf7d0db4c57f3b1b03b9121e984f1f3f7a07250e5124b4d1814", "0x0000000000000000000000000000000000000000000000000000000006000002", - "0x302314ddc4eebe1a8a176225d33c74218c5e739287d887e025384fb66c0a972e", - "0x0d37b65db704c10295b01d932502ae1a96f9d67e710988818e276c956530b830", - "0x0b0fed4f8b58d4d2ddf0cfb683af6599b7d7e66eabab5f89676ac3ff8abda84c", - "0x00000000000000000000000000000000000000000000021e19e0c9b3569c140c", + "0x25888173923446a8d08df8d665da8bb7052aa2c7b685ff51c50e8be5afdb6a9c", + "0x1fbbc88da0ff0cbcf75a2cbe533135db0f1650464dea3f9200c134ef2dfc8e6f", + "0x1afef2429206531cfda1472c1c819760d82b47a555b617fc41f765b331b2f0f9", + "0x00000000000000000000000000000000000000000000021e19e0c9b34b2742f4", "0x000000000000000000000000000000000074785f737461727400000c00010000", - "0x1abe10ac696ce04efc759921e377e44a4d52d8bddf355bc4ccb500a76cef474a", - "0x000200000000000000000000000000000000000000000000000000009b918f98", + "0x1a52e9b7c3bda4355cecf57ada698b394de09597f746a8c7882b0ba4d9d4bac8", + "0x000200000000000000000000000000000000000000000000000000000dcce57c", "0x0000000000000000000000000000000000000000000000000000000004000001", - "0x222857112ada092be2a86905c91c88b14d0060ba37ae5f907bf092385c830577", + "0x296331835202dc2c48dd4f22b393a8b3e95d3d4cdc32cc2bf400fb0d5f9bfc54", "0x0000000000000000000000000000000000000000000000000000000006000003", - "0x21321e4b3104ffe231ef6d83d1a65e7a923473ee1541cc076076591d97f5a57f", - "0x0000000000000000000000000000000000000000000000000000000000002328", - "0x1f994c676ef0333714151c8ea17ab4379f4d065b9d0a027da76713fe3a7e9f21", - "0x00000000000000000000000000000000000000000000000000000000000003e8", - "0x0b0fed4f8b58d4d2ddf0cfb683af6599b7d7e66eabab5f89676ac3ff8abda84c", - "0x00000000000000000000000000000000000000000000021e19e0c9b2bb0a8474", + "0x16564c17452ab631b92d6cbf0d6ad8b4b398a70a8b67c80ec99e8197faff90c9", + "0x0000000000000000000000000000000000000000000000000000000000001fa4", + "0x039135956844c17329cedc4f315ca31ce4ce8d157f2866dd04362d661ac31ca3", + "0x000000000000000000000000000000000000000000000000000000000000076c", + "0x1afef2429206531cfda1472c1c819760d82b47a555b617fc41f765b331b2f0f9", + "0x00000000000000000000000000000000000000000000021e19e0c9b33d5a5d78", "0x000000000000000000000000000000000074785f737461727400004600010000", - "0x2a06744dc3d74c6537cc8e82dcc864ea4e71c00873c29b4a0be6c53b6281048c", - "0x00020000000000000000000000000000000000000000000000000000264b8e00", + "0x2e48a2526e9935854c9c26d26c07aed0f47ba3d85123c7733290c93c98e94abf", + "0x0002000000000000000000000000000000000000000000000000000003678600", "0x0000000000000000000000000000000000000000000000000000000003000002", - "0x0a1739741f15672c7d7875c1c37542de943024757cf081eda18787155e60b5a1", - "0x1dc93391baeb7b79e9848176d363dfd802fdf59da43d99ba3eae0dc7d8f956e4", + "0x22c26b3c91c1659a2164d9014bd15354724b37ba6231d4f8f8f2c1266dcb3890", + "0x1bb397ad00d286a71c070215b51ac6f5b3d9b6ee5e292a653ada684202904cf5", "0x0000000000000000000000000000000000000000000000000000000004000002", - "0x2f8e67e0a0e2b772f6e454b7c508148adb1840f1626d5e97d0bdeb239e3e90c9", - "0x13ff0d4761adcc0251840d3558b53448d3b787728fdbfe503912f8219fbb8b04", + "0x00e8f7760bf6072d454df0f7f62dd2a6de186618fe999c8bc62846923d11e2db", + "0x305272bc9b13f9708df68082a5ed254414e82da21871e763fdf3ddea534fca1c", "0x0000000000000000000000000000000000000000000000000000000006000001", - "0x0b0fed4f8b58d4d2ddf0cfb683af6599b7d7e66eabab5f89676ac3ff8abda84c", - "0x00000000000000000000000000000000000000000000021e19e0c9b294bef674", + "0x1afef2429206531cfda1472c1c819760d82b47a555b617fc41f765b331b2f0f9", + "0x00000000000000000000000000000000000000000000021e19e0c9b339f2d778", "0x0000000000000000000000000000000000000000000000000000000007000003", "0x0000000000000000000000000000000000000000000000000000000000000012", - "0x02f9b46fd79ca32cd42f5e2c648433052f1b974993d1f2503fae14c205a19dce", - "0x15ec9139e77ff9e8fa60f9d7b65b2a68b3f0fefb47284bde7f248def6f4f4087", - "0x000127dc05c4e8fb1aab009dbf6a1fc4f7897ad5a7c3672e83ebbfba1b9ba6e1", - "0x004a977ce07e4a03ec73a221cde5326af3bfe93565d8e5ea0c2ec09f63070d58", - "0x008f44cc587610da581a616539dcb4e4d066f836384cb77968978ac9b43120fd", - "0x0097830ca90392ce54834f462a17b842120f110a58bacb70a4b0e87c7e7d2788", - "0x00076a91e091c37812c38454118f54c58a4ff236c2c52ba607457d0884a3663f", - "0x005eba981c07d2a3e12c93d13c05f4b03fc3d969586c2e76b8ca59ce21c13eda", - "0x00367c77d6d261c1e065e9b166427a75af2b5b53a209868432fb69c1734551e3", - "0x0039d400bffb9a28c162fd95add44afefe234bf9779f87b9cadebcd23d554dae", - "0x001b11983a579d8c458d309c2528d1be7c83d4f2bbc0485e19ba29eaad7a427e", - "0x0003e6e209aaf88c3d5e22ed863e958c78c4a0fd4a70474ec0dd1d1613f3163f", - "0x0052faa3d5ddf117ca772cc1d09fe58c6e981bfa6f8bce44d727bb7b89d2bd7a", - "0x009e123d223bbb178f805925a3d06ca9ac0ef9d8617f68f5a59cf80220cfc786", - "0x003162a36e53cee1234c0387bd4f9a64ec3134cb92e9adddbf537056b200932b", - "0x00cd5bffa7bac5e51505b48ab711d23c964ceb9c350df2e4fd1a5d6eb6c71b4f", - "0x00aae5f367317070fe94437c903b4b0c42af3515ebbe3f9885085ef4e4b6c037", - "0x006d4f67361bcaf94dd1106c767d1ed30fc949b541d296e74175bf7fd5651a8b", + "0x2332c37b7a6df63260f2b65600e49ba5813f684857d01e5380e2bb73117acd15", + "0x21074f12cca8e184dffd5fa8309350b974ec79a2978ea9b162324fe9e3596dd7", + "0x000194c6b95c5b122ff32dbe0d5d7b7a03b513c5b3b9ffd424f2a75a97a9d1ba", + "0x005943b69c60439d7169cd8e6319cc9ad0dcdb40e5164db7dbd7525ca719429f", + "0x00249838ff932bce8491db4e609253f361777e11689f8f1ebbb965c9d63c2477", + "0x00ba25fce68dc883d5cd5e66d2948218143300b0987bdb5964fb3637d1ffa12d", + "0x007ab09d2e9f1e473ad41f0f717953977b09fc14b4f3e0f243a0ea725c6d6a10", + "0x005cebd8e090716a0d2fe304e1600433b18a3041520c9b7e9cbffaced55374f6", + "0x00d0289b5393fd02de99c63b2081e0e3c736dfb03c78472de69d987185e34d4c", + "0x00f2806de88ef93dffc978a50934ff0bb261a61517f205eabc83350899760b4c", + "0x00dae724a764ee44b05d14078939665576de3e2350f4c11f8c716b86c6e0c65d", + "0x00467bb23c2643bbd4039026bb7ab976350955cef134563e30fa9f851309021b", + "0x00dcd9ce74baa9632e9e0682d6b1d2662b9d73ba61b350e2bb8c594458d0c20f", + "0x0082e52c3a56daa85198208b4a523e725416cb291f3d77f6d6156079709c08b8", + "0x0078e7a0bc470cc80cac8a45f4bf4571b16476bfe7f09df08ea27119cab60350", + "0x00dedb1c6293e114a0304e169933eb75402357e16442bae2d928817483112be7", + "0x008eac33611f1d66520681f3d2eb3d59b7d27f79aaefa50760bc9560b61afc44", + "0x00a26614fab1151e48b3e35954164434526c9081ca1832820e08462b2037fbdc", "0x0000000000000000000000000000000000000000000000000000000000000012", - "0x19d28aa9dfc97aad713a7dd8150f90eb0909d5f8248878b93ecc447745a618c6", - "0x13f8772a2c31aa17c11a519ea60a599be76578a57674848ad106919871a4af91", - "0x0001c526e4582c6737c73b5a34a8f5a4f430dbd3faab94fb69b4a769bfe969bf", - "0x005f62a18f8d392091184f9873f890e92c8fdf1f1329171e1de90768f6d830e9", - "0x00f5a0d49b3b46bf3269649c086f233b95de85a4ff7b956bc5d94a9c4084cae0", - "0x009a94079a7e7c2242ef4b177107f3ce19ca15a3ca9e42a89ec96551c70bd366", - "0x00ce71be89c724a2febd444d2594d8f6743186847e77de2a8a3f8b2af975c64a", - "0x001aa17db3a1dc6e760a6bd7dd4d102e4b632c040eb28ba63609fe912008be3d", - "0x003bf341215dc7896546b41c1aeb49c95da09dadb5e2b492dd6b02f6bb8f70e8", - "0x005d8848c98bb0912043e2eea76bbaabb6bb689062bb0035ce98222c3cc8627a", - "0x00e0acb016796b11c8535eb1016387c69724cf25680f5a531ef8aa1470cfef0f", - "0x00da3aadc7f14dc0a2a222f56a592dfe44279768c814382e599fba14eb30348b", - "0x0096c2247b08d24ff4684cf79b21456113fab9ddf3a257a6a7e815ca162e26bd", - "0x004bbee137a7c4fe8ea67749e7a8de20877fe79137ba1a3226bf19494ebbcff2", - "0x00067e9132cf2a3848a208acf29b83ab56d0942f05a40bc5dfb52e3bba2b16aa", - "0x001d9f9bbf7ec3b0e255be3a29417c8b66d1594365b044f45bd49ab18982bfe1", - "0x009d8c2893d29a0a35b755380e4000712e10b6b28efa2ac4e6a55875d3f02570", - "0x00d729ae6f73ec58fce27af7e0b8e736489a164b05226cc4220726c7a6535cbf", + "0x0c93a193b482f51a4e1b82519b1703bd8d3372d0aeedd172703819bb160f021b", + "0x178a216a5f32799976f44f55cd934203ec20d14aac7cef1a2ef876a1327d5643", + "0x0001ff49141fee256f3b015ae7d22a6d3213cbcf9d4084dede89b2d17117290d", + "0x006a52f271217093ca391923985278d5861fc5039aa92455f5da612b9aaea1b9", + "0x00f44488424ae1832902377e6772e365cf8a1d3636a527762cf9f1155eee7418", + "0x0008ac590da201561dd7d7728d12226acef2f992e832e22d9e5e34dba328ac5c", + "0x00c2076b46a26fd191911b3a3331234fdd884ed92dae18fe156a2d89102e3a77", + "0x006910ae9671c5771f9bc32d7b74235c0a7232a567b78d80b9ce48575fd5a89b", + "0x009f96d5c64f7304052ec5af2e3c92c3c423e8b33b6f7c2b9d68beeaee87d5cb", + "0x001114c6b38e15ffea014e1a528a0a06f80a2aa57f95b89692da0fe8566aafb9", + "0x005621fac0416808a103559eb71b27b653a829e62874406fb05cc4931fedeb38", + "0x00a6de1d26108ab8a8f9dbe8d5a367975e7a42f7832da98ff78fc72e7db21cf0", + "0x0026255a4eee9e186e11d9f3c18d7fd78c76b5239afc38c361b02e04dd29a3ca", + "0x00eeab6c33408ee0c63c8b4e323abdc60cd0fc8bbbe38cb31220fe07de789d74", + "0x00fb666e2722aaa755c4a589f601c7cca082b9fba293dee14a72e2127f9509c3", + "0x003ac37472b6a31c91c34795b8a2bc65e4af4562348b8da18c8294cba7d2fdcb", + "0x0092dd1f647821d9564a00ddf637d672cf8b2c2eb4d92838f2c1e787cdb822f4", + "0x0090462f4ccec365669a58d25dbcf344c29f12e08c0dc5356458336c91f30d52", "0x0000000000000000000000000000000000000000000000000000000000000012", - "0x0d10936c8788317d7391fdad75406109e5887f1a38dbfbbfcca3a3bfb87d3027", - "0x0c0446fa15e0b0ff40f046650950a08cd618a32e44e8e0e719e9210989f51645", - "0x0000a5bea6790a102122eb648a21e6fe46adaf18fdaceffa2d8bf96d5cf3f694", - "0x00930a68d82dc054f2da08028da32514e4aeb3535a322c7b3d9e2c45e786f773", - "0x00c10389c2023f4bec5a0c9e7d1557c66802018a79e1cdc859aec6e2a536a6a1", - "0x004b3f37b47573a42de7df578a276b810a1bdf2cd836bebfcb8d6ef9a1583c06", - "0x00d1a31cabd856fc9279d603324dc6090d0c8277d94268615c4df9954768c9a3", - "0x0091531fb0a0e2965aaafe463e1ccd026a327f812764b42d6eab709839a849d2", - "0x00442a12717e1dd67648123163730e7a9f4a2f194153ab565427529b4e9ba03d", - "0x006efc4b6f409c0661b200ed9c3f2f3976c803f1af1a28539ea5c2c1cac11ba9", - "0x00015c36d0daef25dfc334a37bcf164e4f3bb6360262d7cf3766457be6acdf61", - "0x00cc4a38560a4557ec1a86e5312ec542bf33fb32e12fde0f1398591619e6d263", - "0x009793a07e2b70567195734d426c7a6152ebf4e272116c96cff6f263957a0bcf", - "0x0087a9384623f22e683cdb825c87cb46826dec1c9a0adf9dbb9e56ced5b7e394", - "0x0095eff9c5a4d42d8701183e6274fec63935d0367486af8701e228b8d8034b36", - "0x00c17d071cc36e4bd1b1bb60c09c94f7e75c742555834cd504c4c788e94e5ee3", - "0x000252a9d085d1ca029766170540a8555260a67f0d45dba78653cfbf33312fc3", - "0x000eb248c0c987c2eafffc3ef8e5f9a35a20270a3d7c3f360b7dda3ea322d400", + "0x17e282fd5fe9a5670c4dc1e75241fcb053a3fc84676fa21f8265b00b29bac73f", + "0x038a902d6d2499990d1b823f6ea8f9ac1a374fae91f0e37fda5e87732102f1b0", + "0x0000b7cb6a4a76e8911fb895f96f91cfe2bc21938cb2dcf51447ec439b4af437", + "0x00ecb86624146ccf37d63baf7610ee231ccfb2412f624db74a59d34688b9f4b8", + "0x004e1b2742f7f16462515cf8dae513665385c8d5548e8de6ae7507ec25de650d", + "0x00561f893b47f4421af6d59f395be5152ca37851d1a9ad5884b622e42d86d4b9", + "0x003f599501648b1f9b4226d7229f9eec745abb7c53890a3e75a59443514df1cf", + "0x005bc4c5e7167e16d0f273f660fb1176d0e30436d5e76ae5c58b3ebeab681003", + "0x008712e49f94c9336356de1000fe6d73718486fd48e2f73080e0b6ff47ea22f2", + "0x0019dffc965c29d71cd2a380c8a1ebcec9f9b2568203d0e4c978e4088079cd42", + "0x000f33afc9cc28c3b5f1525cf7f603bcbdcfdbb769ec73f28eaeaf31201b8380", + "0x00dddad3aacd31baa55632ec76dbdb1245b208a31f042ec491cfca2212a19913", + "0x00a5e9dc4fa1ced2807e3bff1470f483b700b079ff02bf908d8c7fce196929a7", + "0x006ad3e937f66b4c15b30e7c456d4be35cdf5688ca6c9788022cdd41689880d4", + "0x00eb18fa7c652465f881b05cc6a03ba10b0710a551c22769aa3610ea7aad00d8", + "0x00dae84df957dff182505aaf5d1df54a3543a14d234ab451bef6b0fe6432290c", + "0x009cf849ca69201c2ca9b8605504c36dc3a1c45433f5f311e12280aaf3b7da70", + "0x00b834936d300578521492a676c51d67b772894e5acf89072401fe37ee788058", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -14556,22 +14604,61 @@ blobs_fields = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] -blobs_hash = "0x006a77f58a86b74317fe99d3c35fba0bbb0cbe1e405830754750fca2b7884c3b" +blobs_hash = "0x00cde9c9bcf499abf3d60409506a8ee9c2599d9c3a6f4ebfd3e9de9f83f78702" [[inputs.blob_data.blob_commitments]] - inner = [ - "0x0099bcb173412b6d8adc18acdbcbfd9800ab892684746035bc1426805666c1cf", - "0x000000000000000000000000000000dcffbdf11d95b04de30b2104c0d2172132" + is_infinity = false + + [inputs.blob_data.blob_commitments.x] + limbs = [ + "0xe3f03705b5bd9e3170d6e4ba597c79", + "0x3059e84ca86017f5c18df26a51f5b6", + "0x0e7bc7b62fd5b97c86af539a1f2dbd", + "0x1807f8" +] + + [inputs.blob_data.blob_commitments.y] + limbs = [ + "0x789ca5c776f4286b473dbc03afad64", + "0x1350a06463530709dcc6ee10d4b6a3", + "0xd553e85d960da165f67ced184b8635", + "0x17b7e7" ] [[inputs.blob_data.blob_commitments]] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + is_infinity = true + + [inputs.blob_data.blob_commitments.x] + limbs = [ + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" +] + + [inputs.blob_data.blob_commitments.y] + limbs = [ + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] [[inputs.blob_data.blob_commitments]] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + is_infinity = true + + [inputs.blob_data.blob_commitments.x] + limbs = [ + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" +] + + [inputs.blob_data.blob_commitments.y] + limbs = [ + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_root_rollup_data.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_root_rollup_data.nr index 594c40c65081..4cfcaa782722 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_root_rollup_data.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_root_rollup_data.nr @@ -46,8 +46,8 @@ pub struct BlockRootRollupBlobData { pub blobs_fields: [Field; FIELDS_PER_BLOB * BLOBS_PER_BLOCK], // see blob/src/blob.nr -> evaluate_blob() - these are used for creating each blob's challenge z_i pub blob_commitments: [BLSPoint; BLOBS_PER_BLOCK], - // Flat sha256 hash of the EVM blob hashes, can be injected here as the contract checks its validity vs the blob_public_inputs + // Flat sha256 hash of the EVM blob hashes, can be injected here as the contract checks its validity + // Only exists so we have a link between EVM blob hashes and the block header for users to check // NB: to fit it into a field, we truncate to 31 bytes - // TODO(MW): Replace with v? pub blobs_hash: Field, } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr index c2dc585999a1..15c62e948dab 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/block_merge_rollup_inputs.nr @@ -55,19 +55,17 @@ impl BlockMergeRollupInputs { let fees = components::accumulate_blocks_fees(left, right); + // Note: for blob batching, in assert_prev_block_rollups_follow_on_from_each_other we have checked: + // - left.end_blob_accumulator == right.start_blob_accumulator + // - left.challenge_z == right.challenge_z + // - left.challenge_gamma == right.challenge_gamma + let blob_public_inputs = BlockBlobPublicInputs { start_blob_accumulator: left.blob_public_inputs.start_blob_accumulator, end_blob_accumulator: right.blob_public_inputs.end_blob_accumulator, final_blob_challenges: left.blob_public_inputs.final_blob_challenges, }; - // TODO(MW): Batching here will consist of checks: - // - left.end_blob_accumulator == right.start_blob_accumulator - // - left.challenge_z == right.challenge_z - // - left.challenge_gamma == right.challenge_gamma - // (^should probably exist in assert_prev_block_rollups_follow_on_from_each_other()) - // then assigning this.start_blob_accumulator = left.start_blob_accumulator & this.end_blob_accumulator = right.end_blob_accumulator - BlockRootOrBlockMergePublicInputs { previous_archive: left.previous_archive, new_archive: right.new_archive, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr index c02a1900f3e9..dca966092ba3 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr @@ -211,7 +211,9 @@ pub(crate) mod tests { // All hardcoded values in this test are taken from yarn-project/foundation/src/blob/blob_batching.test.ts -> 'should construct and verify a batch of 3 full blobs' // These values are also used in blob_batching.nr -> test_full_blobs_batched(), but the below ensures inputs are propagated properly throughout block_root #[test] - unconstrained fn correct_blobs_with_non_empty_fields() { + fn correct_blobs_with_non_empty_fields() { + // Note: this test will not run in unconstrained, because it reaches the foreign call + // TODO(#10323): remove the oracle and switch this test to unconstrained // Fill three blobs completely with different values (to avoid a constant polynomial) let mut blob: [Field; FIELDS_PER_BLOB * BLOBS_PER_BLOCK] = [0; FIELDS_PER_BLOB * BLOBS_PER_BLOCK]; diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_root_rollup_output_composer.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_root_rollup_output_composer.nr index 41e861b13990..6cbbbbe8ec09 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_root_rollup_output_composer.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_root_rollup_output_composer.nr @@ -235,29 +235,25 @@ impl BlockRootRollupOutputComposer { self, data: BlockRootRollupBlobData, ) -> BlobAccumulatorPublicInputs { - evaluate_blobs_and_batch( - data.blobs_fields, - data.blob_commitments, - self.merged_rollup.end_sponge_blob, - self.data.final_blob_challenges, - self.data.start_blob_accumulator, - ) - // TODO(MW): Remove below once simulation of above is tested - // if !dep::std::runtime::is_unconstrained() { - // evaluate_blobs( - // data.blobs_fields, - // data.blob_commitments, - // self.merged_rollup.end_sponge_blob, - // ) - // } else { - // // Safety: TODO(#10323): this was added to save simulation time, if/when simulation times of unconstrained are improved, remove this. - // unsafe { - // blob::mock_blob_oracle::evaluate_blobs( - // data.blobs_fields, - // data.blob_commitments, - // self.merged_rollup.end_sponge_blob, - // ) - // } - // } + if !dep::std::runtime::is_unconstrained() { + evaluate_blobs_and_batch( + data.blobs_fields, + data.blob_commitments, + self.merged_rollup.end_sponge_blob, + self.data.final_blob_challenges, + self.data.start_blob_accumulator, + ) + } else { + // Safety: TODO(#10323): this was added to save simulation time, if/when simulation times of unconstrained are improved, remove this. + unsafe { + blob::mock_blob_oracle::evaluate_blobs_and_batch( + data.blobs_fields, + data.blob_commitments, + self.merged_rollup.end_sponge_blob, + self.data.final_blob_challenges, + self.data.start_blob_accumulator, + ) + } + } } } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr index f957ca3f37dd..9b67219585f1 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup_inputs.nr @@ -66,23 +66,22 @@ impl RootRollupInputs { let fees = components::accumulate_blocks_fees(left, right); + // Note: for blob batching, in assert_prev_block_rollups_follow_on_from_each_other we have checked: + // - left.end_blob_accumulator == right.start_blob_accumulator + // - left.challenge_z == right.challenge_z + // - left.challenge_gamma == right.challenge_gamma + // Below we check: + // - first (left.start_blob_accumulator) acc is empty + // Finally, we call finalize_and_validate() on the end_blob_accumulator which calculates final_gamma and checks: + // - end_blob_accumulator.z == injected.challenge_z + // - final_gamma == injected.challenge_gamma + // => Validated public inputs from acc are: FinalBlobAccumulatorPublicInputs { blob_commitments_hash, z, y, C } (gamma is not required) + assert( is_empty(left.blob_public_inputs.start_blob_accumulator), "Epoch did not start with empty blob state.", ); - // TODO(MW): Batching here will consist of checks: - // - left.end_blob_accumulator == right.start_blob_accumulator - // - left.challenge_z == right.challenge_z - // - left.challenge_gamma == right.challenge_gamma - // (^should probably exist in assert_prev_block_rollups_follow_on_from_each_other()) - // Then: - // - Validate first (left.start_blob_accumulator) acc is empty - // - final_acc := right.end_blob_accumulator.finalize() - // - Validate final_acc.z = challenge_z - // - Validate final_acc.gamma = challenge_gamma - // => Validated public inputs from acc are: { v, z, y, C } (gamma is not required) - RootRollupPublicInputs { previous_archive_root: left.previous_archive.root, end_archive_root: right.new_archive.root, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml index 44c5014bccd6..ec1b4f70adae 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml @@ -5,8 +5,8 @@ prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs] out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" proposed_block_header_hashes = [ - "0x00417d2c7feabdeebc7973fbac74d5d3595d471047b51521c840854320d9dd79", - "0x009b4f347b7e89fe6e631bc1ced1536c52e1cdf08c8f4b15a40aa7dfcaceac84", + "0x007e2bd914a7399b58061b737d14134d716fe0074a4607bc8a2f58f56dd59a43", + "0x00b4bcc0d5d88dc2335625aa30b1b29a728e7c593e2ba4c00284ab2ed4b951be", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -54,63 +54,63 @@ proposed_block_header_hashes = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] -vk_tree_root = "0x20af990958e8575ae0f803c8a491a00c3734fc1df32d7aee2f29d13a0f14e157" -protocol_contract_tree_root = "0x13b587f58f77a7ad53b50e5509a4aff45cf77ccd44d7e5af3ea19c51bcc02d0d" +vk_tree_root = "0x16e00802cd510c69cab77438b8f92c7fc6c1f77e983b2302bcb3e85e15c95eac" +protocol_contract_tree_root = "0x19ba79743ba96572bcb08efcff26637d21a4342b6eb58870935b0cbbd14d24cf" prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.previous_archive] - root = "0x28b736e155feabaa3f1c86694f8195828dc14d5b8480eb2ac41410a8874ea241" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000007" + root = "0x2a3fbfdd7f5fb12e887eacaae0108766b0a9d928b58504857dcebe633fc7ec6d" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.new_archive] - root = "0x2c06258cb57016b882323735d87a33540b08bf5d66406e3238054a7bcad534de" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" + root = "0x1e28b0ab2a530f0bb5bb4a48cf3fa170fd9ef40859f5b0b1a53f646cf0ca9972" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000007" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000021" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091d2" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000042" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db8e3" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables] chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000008" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000022" - timestamp = "0x00000000000000000000000000000000000000000000000000000000683091f6" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000a" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000043" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db907" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x000000000000000000000000000000000000000000000000000000000000b0a4" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x00000000000000000000000000000000000000000000000000000000264b8e00" + value = "0x0000000000000000000000000000000000000000000000000000000003678600" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000119f3c680" + value = "0x0000000000000000000000000000000000000000000000000000000019019988" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -388,5763 +388,1231 @@ prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x26d276a291d7f65d70e89d96cfb458ec231dfeb4da7f31f31b9861517d80fd59" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0xdeafcb066a39431cddcca4ca925d83", - "0x89773b64622d0616b7a00d44eef10b", - "0x354d" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x00b3a74c75df3d1ae9e2d85b914ec5a3eae2caeb74d94604ad6754601629c008", - "0x0000000000000000000000000000009aa27f558eb18a2476ea5df0052ffde0d4" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x1b6ad507dccf0dcce964e9dc93fcd332a8cca98f5d64e0e64f01f16bb5bd4420" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0xa285dc73e73078ea78df4a3fd818e6", - "0xe2f567e65220a0f0b50c285285ded2", - "0x3795" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0099bcb173412b6d8adc18acdbcbfd9800ab892684746035bc1426805666c1cf", - "0x000000000000000000000000000000dcffbdf11d95b04de30b2104c0d2172132" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator] +blob_commitments_hash_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" +z_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" +gamma_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.y_acc] limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", "0x0000" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc] + is_infinity = true - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.x] + limbs = [ "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x000000" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.y] + limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x000000" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ "0x000000000000000000000000000000", "0x000000000000000000000000000000", "0x0000" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator] +blob_commitments_hash_acc = "0x0077ffa75686fd6e16ecf00bc9c830d043b5df95430082f9a85d0cbe4f41491f" +z_acc = "0x157a527766aedb27f25f36a043c4df4c1dbc872bd0f178a1cef55b82af9aaa84" +gamma_acc = "0x22f3b828a88a9bb3287c04b09ffe857d593ebe784bd64156ae1293cc81fde548" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x459dfea179f5bea53c89e5f2ebded3", + "0xdc3c5e828495bc234cccdb50189aed", + "0x363e" ] - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc] + is_infinity = false - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.x] + limbs = [ + "0x3260e15e30636e1c2b831b96fe922e", + "0x1fdeb482031c832479dd2b603dfacb", + "0xb2f842916c4d369d08be4db8af699c", + "0x04f08f" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.y] + limbs = [ + "0x0b16b1c2f1b7655a72096c8f6a2187", + "0x91b1671ddc7e51116cea04fe01abd6", + "0x5ef209817c57ad41f0aa1052cbab04", + "0x0eaa19" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x46cc5f7c08f5683e4124b1095da9d6", + "0x00ad7e885c5b0c0e2a0e3bcddfbef3", + "0x394e" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges] +z = "0x0cc935911cd6e85cd04a92e9140e34d4c8a576c5f9f85959dd30706c7021f4ac" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges.gamma] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[inputs.previous_rollup_data.proof] -fields = [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000007", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x000000000000000000000000000000000000000000000000000000000000000b", - "0x000000000000000000000000000000000000000000000000000000000000000c", - "0x000000000000000000000000000000000000000000000000000000000000000d", - "0x000000000000000000000000000000000000000000000000000000000000000e", - "0x000000000000000000000000000000000000000000000000000000000000000f", - "0x0000000000000000000000000000000000000000000000000000000000000010", - "0x0000000000000000000000000000000000000000000000000000000000000011", - "0x0000000000000000000000000000000000000000000000000000000000000012", - "0x0000000000000000000000000000000000000000000000000000000000000013", - "0x0000000000000000000000000000000000000000000000000000000000000014", - "0x0000000000000000000000000000000000000000000000000000000000000015", - "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x0000000000000000000000000000000000000000000000000000000000000017", - "0x0000000000000000000000000000000000000000000000000000000000000018", - "0x0000000000000000000000000000000000000000000000000000000000000019", - "0x000000000000000000000000000000000000000000000000000000000000001a", - "0x000000000000000000000000000000000000000000000000000000000000001b", - "0x000000000000000000000000000000000000000000000000000000000000001c", - "0x000000000000000000000000000000000000000000000000000000000000001d", - "0x000000000000000000000000000000000000000000000000000000000000001e", - "0x000000000000000000000000000000000000000000000000000000000000001f", - "0x0000000000000000000000000000000000000000000000000000000000000020", - "0x0000000000000000000000000000000000000000000000000000000000000021", - "0x0000000000000000000000000000000000000000000000000000000000000022", - "0x0000000000000000000000000000000000000000000000000000000000000023", - "0x0000000000000000000000000000000000000000000000000000000000000024", - "0x0000000000000000000000000000000000000000000000000000000000000025", - "0x0000000000000000000000000000000000000000000000000000000000000026", - "0x0000000000000000000000000000000000000000000000000000000000000027", - "0x0000000000000000000000000000000000000000000000000000000000000028", - "0x0000000000000000000000000000000000000000000000000000000000000029", - "0x000000000000000000000000000000000000000000000000000000000000002a", - "0x000000000000000000000000000000000000000000000000000000000000002b", - "0x000000000000000000000000000000000000000000000000000000000000002c", - "0x000000000000000000000000000000000000000000000000000000000000002d", - "0x000000000000000000000000000000000000000000000000000000000000002e", - "0x000000000000000000000000000000000000000000000000000000000000002f", - "0x0000000000000000000000000000000000000000000000000000000000000030", - "0x0000000000000000000000000000000000000000000000000000000000000031", - "0x0000000000000000000000000000000000000000000000000000000000000032", - "0x0000000000000000000000000000000000000000000000000000000000000033", - "0x0000000000000000000000000000000000000000000000000000000000000034", - "0x0000000000000000000000000000000000000000000000000000000000000035", - "0x0000000000000000000000000000000000000000000000000000000000000036", - "0x0000000000000000000000000000000000000000000000000000000000000037", - "0x0000000000000000000000000000000000000000000000000000000000000038", - "0x0000000000000000000000000000000000000000000000000000000000000039", - "0x000000000000000000000000000000000000000000000000000000000000003a", - "0x000000000000000000000000000000000000000000000000000000000000003b", - "0x000000000000000000000000000000000000000000000000000000000000003c", - "0x000000000000000000000000000000000000000000000000000000000000003d", - "0x000000000000000000000000000000000000000000000000000000000000003e", - "0x000000000000000000000000000000000000000000000000000000000000003f", - "0x0000000000000000000000000000000000000000000000000000000000000040", - "0x0000000000000000000000000000000000000000000000000000000000000041", - "0x0000000000000000000000000000000000000000000000000000000000000042", - "0x0000000000000000000000000000000000000000000000000000000000000043", - "0x0000000000000000000000000000000000000000000000000000000000000044", - "0x0000000000000000000000000000000000000000000000000000000000000045", - "0x0000000000000000000000000000000000000000000000000000000000000046", - "0x0000000000000000000000000000000000000000000000000000000000000047", - "0x0000000000000000000000000000000000000000000000000000000000000048", - "0x0000000000000000000000000000000000000000000000000000000000000049", - "0x000000000000000000000000000000000000000000000000000000000000004a", - "0x000000000000000000000000000000000000000000000000000000000000004b", - "0x000000000000000000000000000000000000000000000000000000000000004c", - "0x000000000000000000000000000000000000000000000000000000000000004d", - "0x000000000000000000000000000000000000000000000000000000000000004e", - "0x000000000000000000000000000000000000000000000000000000000000004f", - "0x0000000000000000000000000000000000000000000000000000000000000050", - "0x0000000000000000000000000000000000000000000000000000000000000051", - "0x0000000000000000000000000000000000000000000000000000000000000052", - "0x0000000000000000000000000000000000000000000000000000000000000053", - "0x0000000000000000000000000000000000000000000000000000000000000054", - "0x0000000000000000000000000000000000000000000000000000000000000055", - "0x0000000000000000000000000000000000000000000000000000000000000056", - "0x0000000000000000000000000000000000000000000000000000000000000057", - "0x0000000000000000000000000000000000000000000000000000000000000058", - "0x0000000000000000000000000000000000000000000000000000000000000059", - "0x000000000000000000000000000000000000000000000000000000000000005a", - "0x000000000000000000000000000000000000000000000000000000000000005b", - "0x000000000000000000000000000000000000000000000000000000000000005c", - "0x000000000000000000000000000000000000000000000000000000000000005d", - "0x000000000000000000000000000000000000000000000000000000000000005e", - "0x000000000000000000000000000000000000000000000000000000000000005f", - "0x0000000000000000000000000000000000000000000000000000000000000060", - "0x0000000000000000000000000000000000000000000000000000000000000061", - "0x0000000000000000000000000000000000000000000000000000000000000062", - "0x0000000000000000000000000000000000000000000000000000000000000063", - "0x0000000000000000000000000000000000000000000000000000000000000064", - "0x0000000000000000000000000000000000000000000000000000000000000065", - "0x0000000000000000000000000000000000000000000000000000000000000066", - "0x0000000000000000000000000000000000000000000000000000000000000067", - "0x0000000000000000000000000000000000000000000000000000000000000068", - "0x0000000000000000000000000000000000000000000000000000000000000069", - "0x000000000000000000000000000000000000000000000000000000000000006a", - "0x000000000000000000000000000000000000000000000000000000000000006b", - "0x000000000000000000000000000000000000000000000000000000000000006c", - "0x000000000000000000000000000000000000000000000000000000000000006d", - "0x000000000000000000000000000000000000000000000000000000000000006e", - "0x000000000000000000000000000000000000000000000000000000000000006f", - "0x0000000000000000000000000000000000000000000000000000000000000070", - "0x0000000000000000000000000000000000000000000000000000000000000071", - "0x0000000000000000000000000000000000000000000000000000000000000072", - "0x0000000000000000000000000000000000000000000000000000000000000073", - "0x0000000000000000000000000000000000000000000000000000000000000074", - "0x0000000000000000000000000000000000000000000000000000000000000075", - "0x0000000000000000000000000000000000000000000000000000000000000076", - "0x0000000000000000000000000000000000000000000000000000000000000077", - "0x0000000000000000000000000000000000000000000000000000000000000078", - "0x0000000000000000000000000000000000000000000000000000000000000079", - "0x000000000000000000000000000000000000000000000000000000000000007a", - "0x000000000000000000000000000000000000000000000000000000000000007b", - "0x000000000000000000000000000000000000000000000000000000000000007c", - "0x000000000000000000000000000000000000000000000000000000000000007d", - "0x000000000000000000000000000000000000000000000000000000000000007e", - "0x000000000000000000000000000000000000000000000000000000000000007f", - "0x0000000000000000000000000000000000000000000000000000000000000080", - "0x0000000000000000000000000000000000000000000000000000000000000081", - "0x0000000000000000000000000000000000000000000000000000000000000082", - "0x0000000000000000000000000000000000000000000000000000000000000083", - "0x0000000000000000000000000000000000000000000000000000000000000084", - "0x0000000000000000000000000000000000000000000000000000000000000085", - "0x0000000000000000000000000000000000000000000000000000000000000086", - "0x0000000000000000000000000000000000000000000000000000000000000087", - "0x0000000000000000000000000000000000000000000000000000000000000088", - "0x0000000000000000000000000000000000000000000000000000000000000089", - "0x000000000000000000000000000000000000000000000000000000000000008a", - "0x000000000000000000000000000000000000000000000000000000000000008b", - "0x000000000000000000000000000000000000000000000000000000000000008c", - "0x000000000000000000000000000000000000000000000000000000000000008d", - "0x000000000000000000000000000000000000000000000000000000000000008e", - "0x000000000000000000000000000000000000000000000000000000000000008f", - "0x0000000000000000000000000000000000000000000000000000000000000090", - "0x0000000000000000000000000000000000000000000000000000000000000091", - "0x0000000000000000000000000000000000000000000000000000000000000092", - "0x0000000000000000000000000000000000000000000000000000000000000093", - "0x0000000000000000000000000000000000000000000000000000000000000094", - "0x0000000000000000000000000000000000000000000000000000000000000095", - "0x0000000000000000000000000000000000000000000000000000000000000096", - "0x0000000000000000000000000000000000000000000000000000000000000097", - "0x0000000000000000000000000000000000000000000000000000000000000098", - "0x0000000000000000000000000000000000000000000000000000000000000099", - "0x000000000000000000000000000000000000000000000000000000000000009a", - "0x000000000000000000000000000000000000000000000000000000000000009b", - "0x000000000000000000000000000000000000000000000000000000000000009c", - "0x000000000000000000000000000000000000000000000000000000000000009d", - "0x000000000000000000000000000000000000000000000000000000000000009e", - "0x000000000000000000000000000000000000000000000000000000000000009f", - "0x00000000000000000000000000000000000000000000000000000000000000a0", - "0x00000000000000000000000000000000000000000000000000000000000000a1", - "0x00000000000000000000000000000000000000000000000000000000000000a2", - "0x00000000000000000000000000000000000000000000000000000000000000a3", - "0x00000000000000000000000000000000000000000000000000000000000000a4", - "0x00000000000000000000000000000000000000000000000000000000000000a5", - "0x00000000000000000000000000000000000000000000000000000000000000a6", - "0x00000000000000000000000000000000000000000000000000000000000000a7", - "0x00000000000000000000000000000000000000000000000000000000000000a8", - "0x00000000000000000000000000000000000000000000000000000000000000a9", - "0x00000000000000000000000000000000000000000000000000000000000000aa", - "0x00000000000000000000000000000000000000000000000000000000000000ab", - "0x00000000000000000000000000000000000000000000000000000000000000ac", - "0x00000000000000000000000000000000000000000000000000000000000000ad", - "0x00000000000000000000000000000000000000000000000000000000000000ae", - "0x00000000000000000000000000000000000000000000000000000000000000af", - "0x00000000000000000000000000000000000000000000000000000000000000b0", - "0x00000000000000000000000000000000000000000000000000000000000000b1", - "0x00000000000000000000000000000000000000000000000000000000000000b2", - "0x00000000000000000000000000000000000000000000000000000000000000b3", - "0x00000000000000000000000000000000000000000000000000000000000000b4", - "0x00000000000000000000000000000000000000000000000000000000000000b5", - "0x00000000000000000000000000000000000000000000000000000000000000b6", - "0x00000000000000000000000000000000000000000000000000000000000000b7", - "0x00000000000000000000000000000000000000000000000000000000000000b8", - "0x00000000000000000000000000000000000000000000000000000000000000b9", - "0x00000000000000000000000000000000000000000000000000000000000000ba", - "0x00000000000000000000000000000000000000000000000000000000000000bb", - "0x00000000000000000000000000000000000000000000000000000000000000bc", - "0x00000000000000000000000000000000000000000000000000000000000000bd", - "0x00000000000000000000000000000000000000000000000000000000000000be", - "0x00000000000000000000000000000000000000000000000000000000000000bf", - "0x00000000000000000000000000000000000000000000000000000000000000c0", - "0x00000000000000000000000000000000000000000000000000000000000000c1", - "0x00000000000000000000000000000000000000000000000000000000000000c2", - "0x00000000000000000000000000000000000000000000000000000000000000c3", - "0x00000000000000000000000000000000000000000000000000000000000000c4", - "0x00000000000000000000000000000000000000000000000000000000000000c5", - "0x00000000000000000000000000000000000000000000000000000000000000c6", - "0x00000000000000000000000000000000000000000000000000000000000000c7", - "0x00000000000000000000000000000000000000000000000000000000000000c8", - "0x00000000000000000000000000000000000000000000000000000000000000c9", - "0x00000000000000000000000000000000000000000000000000000000000000ca", - "0x00000000000000000000000000000000000000000000000000000000000000cb", - "0x00000000000000000000000000000000000000000000000000000000000000cc", - "0x00000000000000000000000000000000000000000000000000000000000000cd", - "0x00000000000000000000000000000000000000000000000000000000000000ce", - "0x00000000000000000000000000000000000000000000000000000000000000cf", - "0x00000000000000000000000000000000000000000000000000000000000000d0", - "0x00000000000000000000000000000000000000000000000000000000000000d1", - "0x00000000000000000000000000000000000000000000000000000000000000d2", - "0x00000000000000000000000000000000000000000000000000000000000000d3", - "0x00000000000000000000000000000000000000000000000000000000000000d4", - "0x00000000000000000000000000000000000000000000000000000000000000d5", - "0x00000000000000000000000000000000000000000000000000000000000000d6", - "0x00000000000000000000000000000000000000000000000000000000000000d7", - "0x00000000000000000000000000000000000000000000000000000000000000d8", - "0x00000000000000000000000000000000000000000000000000000000000000d9", - "0x00000000000000000000000000000000000000000000000000000000000000da", - "0x00000000000000000000000000000000000000000000000000000000000000db", - "0x00000000000000000000000000000000000000000000000000000000000000dc", - "0x00000000000000000000000000000000000000000000000000000000000000dd", - "0x00000000000000000000000000000000000000000000000000000000000000de", - "0x00000000000000000000000000000000000000000000000000000000000000df", - "0x00000000000000000000000000000000000000000000000000000000000000e0", - "0x00000000000000000000000000000000000000000000000000000000000000e1", - "0x00000000000000000000000000000000000000000000000000000000000000e2", - "0x00000000000000000000000000000000000000000000000000000000000000e3", - "0x00000000000000000000000000000000000000000000000000000000000000e4", - "0x00000000000000000000000000000000000000000000000000000000000000e5", - "0x00000000000000000000000000000000000000000000000000000000000000e6", - "0x00000000000000000000000000000000000000000000000000000000000000e7", - "0x00000000000000000000000000000000000000000000000000000000000000e8", - "0x00000000000000000000000000000000000000000000000000000000000000e9", - "0x00000000000000000000000000000000000000000000000000000000000000ea", - "0x00000000000000000000000000000000000000000000000000000000000000eb", - "0x00000000000000000000000000000000000000000000000000000000000000ec", - "0x00000000000000000000000000000000000000000000000000000000000000ed", - "0x00000000000000000000000000000000000000000000000000000000000000ee", - "0x00000000000000000000000000000000000000000000000000000000000000ef", - "0x00000000000000000000000000000000000000000000000000000000000000f0", - "0x00000000000000000000000000000000000000000000000000000000000000f1", - "0x00000000000000000000000000000000000000000000000000000000000000f2", - "0x00000000000000000000000000000000000000000000000000000000000000f3", - "0x00000000000000000000000000000000000000000000000000000000000000f4", - "0x00000000000000000000000000000000000000000000000000000000000000f5", - "0x00000000000000000000000000000000000000000000000000000000000000f6", - "0x00000000000000000000000000000000000000000000000000000000000000f7", - "0x00000000000000000000000000000000000000000000000000000000000000f8", - "0x00000000000000000000000000000000000000000000000000000000000000f9", - "0x00000000000000000000000000000000000000000000000000000000000000fa", - "0x00000000000000000000000000000000000000000000000000000000000000fb", - "0x00000000000000000000000000000000000000000000000000000000000000fc", - "0x00000000000000000000000000000000000000000000000000000000000000fd", - "0x00000000000000000000000000000000000000000000000000000000000000fe", - "0x00000000000000000000000000000000000000000000000000000000000000ff", - "0x0000000000000000000000000000000000000000000000000000000000000100", - "0x0000000000000000000000000000000000000000000000000000000000000101", - "0x0000000000000000000000000000000000000000000000000000000000000102", - "0x0000000000000000000000000000000000000000000000000000000000000103", - "0x0000000000000000000000000000000000000000000000000000000000000104", - "0x0000000000000000000000000000000000000000000000000000000000000105", - "0x0000000000000000000000000000000000000000000000000000000000000106", - "0x0000000000000000000000000000000000000000000000000000000000000107", - "0x0000000000000000000000000000000000000000000000000000000000000108", - "0x0000000000000000000000000000000000000000000000000000000000000109", - "0x000000000000000000000000000000000000000000000000000000000000010a", - "0x000000000000000000000000000000000000000000000000000000000000010b", - "0x000000000000000000000000000000000000000000000000000000000000010c", - "0x000000000000000000000000000000000000000000000000000000000000010d", - "0x000000000000000000000000000000000000000000000000000000000000010e", - "0x000000000000000000000000000000000000000000000000000000000000010f", - "0x0000000000000000000000000000000000000000000000000000000000000110", - "0x0000000000000000000000000000000000000000000000000000000000000111", - "0x0000000000000000000000000000000000000000000000000000000000000112", - "0x0000000000000000000000000000000000000000000000000000000000000113", - "0x0000000000000000000000000000000000000000000000000000000000000114", - "0x0000000000000000000000000000000000000000000000000000000000000115", - "0x0000000000000000000000000000000000000000000000000000000000000116", - "0x0000000000000000000000000000000000000000000000000000000000000117", - "0x0000000000000000000000000000000000000000000000000000000000000118", - "0x0000000000000000000000000000000000000000000000000000000000000119", - "0x000000000000000000000000000000000000000000000000000000000000011a", - "0x000000000000000000000000000000000000000000000000000000000000011b", - "0x000000000000000000000000000000000000000000000000000000000000011c", - "0x000000000000000000000000000000000000000000000000000000000000011d", - "0x000000000000000000000000000000000000000000000000000000000000011e", - "0x000000000000000000000000000000000000000000000000000000000000011f", - "0x0000000000000000000000000000000000000000000000000000000000000120", - "0x0000000000000000000000000000000000000000000000000000000000000121", - "0x0000000000000000000000000000000000000000000000000000000000000122", - "0x0000000000000000000000000000000000000000000000000000000000000123", - "0x0000000000000000000000000000000000000000000000000000000000000124", - "0x0000000000000000000000000000000000000000000000000000000000000125", - "0x0000000000000000000000000000000000000000000000000000000000000126", - "0x0000000000000000000000000000000000000000000000000000000000000127", - "0x0000000000000000000000000000000000000000000000000000000000000128", - "0x0000000000000000000000000000000000000000000000000000000000000129", - "0x000000000000000000000000000000000000000000000000000000000000012a", - "0x000000000000000000000000000000000000000000000000000000000000012b", - "0x000000000000000000000000000000000000000000000000000000000000012c", - "0x000000000000000000000000000000000000000000000000000000000000012d", - "0x000000000000000000000000000000000000000000000000000000000000012e", - "0x000000000000000000000000000000000000000000000000000000000000012f", - "0x0000000000000000000000000000000000000000000000000000000000000130", - "0x0000000000000000000000000000000000000000000000000000000000000131", - "0x0000000000000000000000000000000000000000000000000000000000000132", - "0x0000000000000000000000000000000000000000000000000000000000000133", - "0x0000000000000000000000000000000000000000000000000000000000000134", - "0x0000000000000000000000000000000000000000000000000000000000000135", - "0x0000000000000000000000000000000000000000000000000000000000000136", - "0x0000000000000000000000000000000000000000000000000000000000000137", - "0x0000000000000000000000000000000000000000000000000000000000000138", - "0x0000000000000000000000000000000000000000000000000000000000000139", - "0x000000000000000000000000000000000000000000000000000000000000013a", - "0x000000000000000000000000000000000000000000000000000000000000013b", - "0x000000000000000000000000000000000000000000000000000000000000013c", - "0x000000000000000000000000000000000000000000000000000000000000013d", - "0x000000000000000000000000000000000000000000000000000000000000013e", - "0x000000000000000000000000000000000000000000000000000000000000013f", - "0x0000000000000000000000000000000000000000000000000000000000000140", - "0x0000000000000000000000000000000000000000000000000000000000000141", - "0x0000000000000000000000000000000000000000000000000000000000000142", - "0x0000000000000000000000000000000000000000000000000000000000000143", - "0x0000000000000000000000000000000000000000000000000000000000000144", - "0x0000000000000000000000000000000000000000000000000000000000000145", - "0x0000000000000000000000000000000000000000000000000000000000000146", - "0x0000000000000000000000000000000000000000000000000000000000000147", - "0x0000000000000000000000000000000000000000000000000000000000000148", - "0x0000000000000000000000000000000000000000000000000000000000000149", - "0x000000000000000000000000000000000000000000000000000000000000014a", - "0x000000000000000000000000000000000000000000000000000000000000014b", - "0x000000000000000000000000000000000000000000000000000000000000014c", - "0x000000000000000000000000000000000000000000000000000000000000014d", - "0x000000000000000000000000000000000000000000000000000000000000014e", - "0x000000000000000000000000000000000000000000000000000000000000014f", - "0x0000000000000000000000000000000000000000000000000000000000000150", - "0x0000000000000000000000000000000000000000000000000000000000000151", - "0x0000000000000000000000000000000000000000000000000000000000000152", - "0x0000000000000000000000000000000000000000000000000000000000000153", - "0x0000000000000000000000000000000000000000000000000000000000000154", - "0x0000000000000000000000000000000000000000000000000000000000000155", - "0x0000000000000000000000000000000000000000000000000000000000000156", - "0x0000000000000000000000000000000000000000000000000000000000000157", - "0x0000000000000000000000000000000000000000000000000000000000000158", - "0x0000000000000000000000000000000000000000000000000000000000000159", - "0x000000000000000000000000000000000000000000000000000000000000015a", - "0x000000000000000000000000000000000000000000000000000000000000015b", - "0x000000000000000000000000000000000000000000000000000000000000015c", - "0x000000000000000000000000000000000000000000000000000000000000015d", - "0x000000000000000000000000000000000000000000000000000000000000015e", - "0x000000000000000000000000000000000000000000000000000000000000015f", - "0x0000000000000000000000000000000000000000000000000000000000000160", - "0x0000000000000000000000000000000000000000000000000000000000000161", - "0x0000000000000000000000000000000000000000000000000000000000000162", - "0x0000000000000000000000000000000000000000000000000000000000000163", - "0x0000000000000000000000000000000000000000000000000000000000000164", - "0x0000000000000000000000000000000000000000000000000000000000000165", - "0x0000000000000000000000000000000000000000000000000000000000000166", - "0x0000000000000000000000000000000000000000000000000000000000000167", - "0x0000000000000000000000000000000000000000000000000000000000000168", - "0x0000000000000000000000000000000000000000000000000000000000000169", - "0x000000000000000000000000000000000000000000000000000000000000016a", - "0x000000000000000000000000000000000000000000000000000000000000016b", - "0x000000000000000000000000000000000000000000000000000000000000016c", - "0x000000000000000000000000000000000000000000000000000000000000016d", - "0x000000000000000000000000000000000000000000000000000000000000016e", - "0x000000000000000000000000000000000000000000000000000000000000016f", - "0x0000000000000000000000000000000000000000000000000000000000000170", - "0x0000000000000000000000000000000000000000000000000000000000000171", - "0x0000000000000000000000000000000000000000000000000000000000000172", - "0x0000000000000000000000000000000000000000000000000000000000000173", - "0x0000000000000000000000000000000000000000000000000000000000000174", - "0x0000000000000000000000000000000000000000000000000000000000000175", - "0x0000000000000000000000000000000000000000000000000000000000000176", - "0x0000000000000000000000000000000000000000000000000000000000000177", - "0x0000000000000000000000000000000000000000000000000000000000000178", - "0x0000000000000000000000000000000000000000000000000000000000000179", - "0x000000000000000000000000000000000000000000000000000000000000017a", - "0x000000000000000000000000000000000000000000000000000000000000017b", - "0x000000000000000000000000000000000000000000000000000000000000017c", - "0x000000000000000000000000000000000000000000000000000000000000017d", - "0x000000000000000000000000000000000000000000000000000000000000017e", - "0x000000000000000000000000000000000000000000000000000000000000017f", - "0x0000000000000000000000000000000000000000000000000000000000000180", - "0x0000000000000000000000000000000000000000000000000000000000000181", - "0x0000000000000000000000000000000000000000000000000000000000000182", - "0x0000000000000000000000000000000000000000000000000000000000000183", - "0x0000000000000000000000000000000000000000000000000000000000000184", - "0x0000000000000000000000000000000000000000000000000000000000000185", - "0x0000000000000000000000000000000000000000000000000000000000000186", - "0x0000000000000000000000000000000000000000000000000000000000000187", - "0x0000000000000000000000000000000000000000000000000000000000000188", - "0x0000000000000000000000000000000000000000000000000000000000000189", - "0x000000000000000000000000000000000000000000000000000000000000018a", - "0x000000000000000000000000000000000000000000000000000000000000018b", - "0x000000000000000000000000000000000000000000000000000000000000018c", - "0x000000000000000000000000000000000000000000000000000000000000018d", - "0x000000000000000000000000000000000000000000000000000000000000018e", - "0x000000000000000000000000000000000000000000000000000000000000018f", - "0x0000000000000000000000000000000000000000000000000000000000000190", - "0x0000000000000000000000000000000000000000000000000000000000000191", - "0x0000000000000000000000000000000000000000000000000000000000000192", - "0x0000000000000000000000000000000000000000000000000000000000000193", - "0x0000000000000000000000000000000000000000000000000000000000000194", - "0x0000000000000000000000000000000000000000000000000000000000000195", - "0x0000000000000000000000000000000000000000000000000000000000000196", - "0x0000000000000000000000000000000000000000000000000000000000000197", - "0x0000000000000000000000000000000000000000000000000000000000000198", - "0x0000000000000000000000000000000000000000000000000000000000000199", - "0x000000000000000000000000000000000000000000000000000000000000019a", - "0x000000000000000000000000000000000000000000000000000000000000019b", - "0x000000000000000000000000000000000000000000000000000000000000019c", - "0x000000000000000000000000000000000000000000000000000000000000019d", - "0x000000000000000000000000000000000000000000000000000000000000019e", - "0x000000000000000000000000000000000000000000000000000000000000019f", - "0x00000000000000000000000000000000000000000000000000000000000001a0", - "0x00000000000000000000000000000000000000000000000000000000000001a1", - "0x00000000000000000000000000000000000000000000000000000000000001a2", - "0x00000000000000000000000000000000000000000000000000000000000001a3", - "0x00000000000000000000000000000000000000000000000000000000000001a4", - "0x00000000000000000000000000000000000000000000000000000000000001a5", - "0x00000000000000000000000000000000000000000000000000000000000001a6", - "0x00000000000000000000000000000000000000000000000000000000000001a7", - "0x00000000000000000000000000000000000000000000000000000000000001a8", - "0x00000000000000000000000000000000000000000000000000000000000001a9", - "0x00000000000000000000000000000000000000000000000000000000000001aa", - "0x00000000000000000000000000000000000000000000000000000000000001ab", - "0x00000000000000000000000000000000000000000000000000000000000001ac", - "0x00000000000000000000000000000000000000000000000000000000000001ad", - "0x00000000000000000000000000000000000000000000000000000000000001ae", - "0x00000000000000000000000000000000000000000000000000000000000001af", - "0x00000000000000000000000000000000000000000000000000000000000001b0", - "0x00000000000000000000000000000000000000000000000000000000000001b1", - "0x00000000000000000000000000000000000000000000000000000000000001b2", - "0x00000000000000000000000000000000000000000000000000000000000001b3", - "0x00000000000000000000000000000000000000000000000000000000000001b4", - "0x00000000000000000000000000000000000000000000000000000000000001b5", - "0x00000000000000000000000000000000000000000000000000000000000001b6", - "0x00000000000000000000000000000000000000000000000000000000000001b7", - "0x00000000000000000000000000000000000000000000000000000000000001b8", - "0x00000000000000000000000000000000000000000000000000000000000001b9", - "0x00000000000000000000000000000000000000000000000000000000000001ba", - "0x00000000000000000000000000000000000000000000000000000000000001bb", - "0x00000000000000000000000000000000000000000000000000000000000001bc", - "0x00000000000000000000000000000000000000000000000000000000000001bd", - "0x00000000000000000000000000000000000000000000000000000000000001be", - "0x00000000000000000000000000000000000000000000000000000000000001bf", - "0x00000000000000000000000000000000000000000000000000000000000001c0", - "0x00000000000000000000000000000000000000000000000000000000000001c1", - "0x00000000000000000000000000000000000000000000000000000000000001c2", - "0x00000000000000000000000000000000000000000000000000000000000001c3", - "0x00000000000000000000000000000000000000000000000000000000000001c4", - "0x00000000000000000000000000000000000000000000000000000000000001c5", - "0x00000000000000000000000000000000000000000000000000000000000001c6", - "0x00000000000000000000000000000000000000000000000000000000000001c7", - "0x00000000000000000000000000000000000000000000000000000000000001c8", - "0x00000000000000000000000000000000000000000000000000000000000001c9", - "0x00000000000000000000000000000000000000000000000000000000000001ca", - "0x00000000000000000000000000000000000000000000000000000000000001cb", - "0x00000000000000000000000000000000000000000000000000000000000001cc", - "0x00000000000000000000000000000000000000000000000000000000000001cd", - "0x00000000000000000000000000000000000000000000000000000000000001ce", - "0x00000000000000000000000000000000000000000000000000000000000001cf", - "0x00000000000000000000000000000000000000000000000000000000000001d0", - "0x00000000000000000000000000000000000000000000000000000000000001d1", - "0x00000000000000000000000000000000000000000000000000000000000001d2", - "0x00000000000000000000000000000000000000000000000000000000000001d3", - "0x00000000000000000000000000000000000000000000000000000000000001d4", - "0x00000000000000000000000000000000000000000000000000000000000001d5", - "0x00000000000000000000000000000000000000000000000000000000000001d6", - "0x00000000000000000000000000000000000000000000000000000000000001d7", - "0x00000000000000000000000000000000000000000000000000000000000001d8", - "0x00000000000000000000000000000000000000000000000000000000000001d9", - "0x00000000000000000000000000000000000000000000000000000000000001da", - "0x00000000000000000000000000000000000000000000000000000000000001db", - "0x00000000000000000000000000000000000000000000000000000000000001dc", - "0x00000000000000000000000000000000000000000000000000000000000001dd", - "0x00000000000000000000000000000000000000000000000000000000000001de", - "0x00000000000000000000000000000000000000000000000000000000000001df", - "0x00000000000000000000000000000000000000000000000000000000000001e0", - "0x00000000000000000000000000000000000000000000000000000000000001e1", - "0x00000000000000000000000000000000000000000000000000000000000001e2", - "0x00000000000000000000000000000000000000000000000000000000000001e3", - "0x00000000000000000000000000000000000000000000000000000000000001e4", - "0x00000000000000000000000000000000000000000000000000000000000001e5", - "0x00000000000000000000000000000000000000000000000000000000000001e6", - "0x00000000000000000000000000000000000000000000000000000000000001e7", - "0x00000000000000000000000000000000000000000000000000000000000001e8", - "0x00000000000000000000000000000000000000000000000000000000000001e9", - "0x00000000000000000000000000000000000000000000000000000000000001ea", - "0x00000000000000000000000000000000000000000000000000000000000001eb", - "0x00000000000000000000000000000000000000000000000000000000000001ec", - "0x00000000000000000000000000000000000000000000000000000000000001ed", - "0x00000000000000000000000000000000000000000000000000000000000001ee", - "0x00000000000000000000000000000000000000000000000000000000000001ef", - "0x00000000000000000000000000000000000000000000000000000000000001f0", - "0x00000000000000000000000000000000000000000000000000000000000001f1", - "0x00000000000000000000000000000000000000000000000000000000000001f2", - "0x00000000000000000000000000000000000000000000000000000000000001f3", - "0x00000000000000000000000000000000000000000000000000000000000001f4", - "0x00000000000000000000000000000000000000000000000000000000000001f5", - "0x00000000000000000000000000000000000000000000000000000000000001f6", - "0x00000000000000000000000000000000000000000000000000000000000001f7", - "0x00000000000000000000000000000000000000000000000000000000000001f8", - "0x00000000000000000000000000000000000000000000000000000000000001f9", - "0x00000000000000000000000000000000000000000000000000000000000001fa", - "0x00000000000000000000000000000000000000000000000000000000000001fb", - "0x00000000000000000000000000000000000000000000000000000000000001fc", - "0x00000000000000000000000000000000000000000000000000000000000001fd", - "0x00000000000000000000000000000000000000000000000000000000000001fe", - "0x00000000000000000000000000000000000000000000000000000000000001ff", - "0x0000000000000000000000000000000000000000000000000000000000000200", - "0x0000000000000000000000000000000000000000000000000000000000000201", - "0x0000000000000000000000000000000000000000000000000000000000000202", - "0x0000000000000000000000000000000000000000000000000000000000000203", - "0x0000000000000000000000000000000000000000000000000000000000000204", - "0x0000000000000000000000000000000000000000000000000000000000000205", - "0x0000000000000000000000000000000000000000000000000000000000000206", - "0x0000000000000000000000000000000000000000000000000000000000000207", - "0x0000000000000000000000000000000000000000000000000000000000000208", - "0x0000000000000000000000000000000000000000000000000000000000000209", - "0x000000000000000000000000000000000000000000000000000000000000020a", - "0x000000000000000000000000000000000000000000000000000000000000020b", - "0x000000000000000000000000000000000000000000000000000000000000020c", - "0x000000000000000000000000000000000000000000000000000000000000020d", - "0x000000000000000000000000000000000000000000000000000000000000020e", - "0x000000000000000000000000000000000000000000000000000000000000020f", - "0x0000000000000000000000000000000000000000000000000000000000000210", - "0x0000000000000000000000000000000000000000000000000000000000000211", - "0x0000000000000000000000000000000000000000000000000000000000000212", - "0x0000000000000000000000000000000000000000000000000000000000000213", - "0x0000000000000000000000000000000000000000000000000000000000000214", - "0x0000000000000000000000000000000000000000000000000000000000000215", - "0x0000000000000000000000000000000000000000000000000000000000000216", - "0x0000000000000000000000000000000000000000000000000000000000000217" -] - -[inputs.previous_rollup_data.vk_data] -leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000c" -sibling_path = [ - "0x1af173f84611429ed4e82874a07366a6b57fb2cb78d9d555cbb3d48c1307685a", - "0x0347efdf28221164a0a84418ff9c70e46ae346d7d6c07dfcb215e1c22a40e7fc", - "0x13b7e4bb23431a642a6f4d6c72ba975928371c0489017d45e4d18f9c12207cea", - "0x2423b4c1180714c94b2f31100021a5393dafaad3951ed4862ecb6ca8f2a5f798", - "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", - "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" -] - - [inputs.previous_rollup_data.vk_data.vk] - key = [ - "0x0000000000000000000000000000000000000000000000000000000000200000", - "0x0000000000000000000000000000000000000000000000000000000000000424", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000000000000000000000000000000000000000040a", - "0x000000000000000000000000000000000000000000000000000000000000041a", - "0x0000000000000000000000000000003b08f7922ef06e7c7545d4ef22939c5c0d", - "0x00000000000000000000000000000000001f2289a582dc63acb44f83d0484ffb", - "0x000000000000000000000000000000edf4e677e1082657caea36dc91293544e5", - "0x000000000000000000000000000000000001a65f8ff3e26e7f228c9b092511d6", - "0x000000000000000000000000000000b3057be583be382ac16604e53d4bde29e9", - "0x0000000000000000000000000000000000244eecbb037e15b001ed8a09fc47c2", - "0x0000000000000000000000000000008f56b0e2f1ca887adc8d4d8a1c6a85c0cf", - "0x00000000000000000000000000000000001072c1618e60d4634f7477df462211", - "0x0000000000000000000000000000001929dddf27484f1f602916d46f9dfc0c68", - "0x00000000000000000000000000000000000c8ec094896e6a99269fd1d9b7ea22", - "0x000000000000000000000000000000c8421ce7fe938b9c364b9f129dba89bad1", - "0x0000000000000000000000000000000000244c11c493c8f0a3d1821494253a1c", - "0x000000000000000000000000000000e90b13e46374ce5e2beaf09e6f3c1c0566", - "0x00000000000000000000000000000000002c07efc13ec9802e126a081cb8d3fe", - "0x00000000000000000000000000000054f570eaca0607565d1f9b765621e30fdf", - "0x00000000000000000000000000000000002a57aedf032fba132c6fcb4204e651", - "0x0000000000000000000000000000008910a26554da199fb3606dfbfbccaf3865", - "0x00000000000000000000000000000000000a3613317e116066367112df5a17e5", - "0x0000000000000000000000000000007bce60fa95f35a2db808cbbd78bc124e9a", - "0x000000000000000000000000000000000028f9c783df7200b4de43031defd5f6", - "0x00000000000000000000000000000072b97a0ac92701d8875f6ea9c98cdee10f", - "0x000000000000000000000000000000000009e2f56498af0cf0bc7db67f7fff6d", - "0x000000000000000000000000000000e015e69d948a2c206272042dfcbc2081d3", - "0x000000000000000000000000000000000012db31901075065b47d2a5dd8800bd", - "0x000000000000000000000000000000e9cada0e9edfedcca51a7093b42db412ad", - "0x00000000000000000000000000000000002bc1a803c31d0d70abce6717bacf20", - "0x000000000000000000000000000000eedddade9871635e3b617111bcfd0d8815", - "0x000000000000000000000000000000000010f5e39e1ffa974b1f35d10e0af134", - "0x0000000000000000000000000000007592aa2b23b8fe7bf6a5088c0c37ca6698", - "0x0000000000000000000000000000000000205b51f68b74feb455da7d69d626d2", - "0x0000000000000000000000000000001eb5aedc2608039c97d1f8405c1f2e25b2", - "0x00000000000000000000000000000000000b8d0aeb5606365e6ba9366488788a", - "0x000000000000000000000000000000cbf077c9c33badd57ed00685417afc25af", - "0x000000000000000000000000000000000007b5fc655d45c82a01c479a1bcade4", - "0x0000000000000000000000000000001bb358ffe07d27acaf088a0beb7df2ada2", - "0x000000000000000000000000000000000026c7794db4a0564612c9c668bc5c6b", - "0x000000000000000000000000000000f121962ff2191fbab9234550240ea80738", - "0x000000000000000000000000000000000000d22afd229b4b313c1a1a88baf039", - "0x000000000000000000000000000000d69a197f743299078c22498485b3fdf481", - "0x00000000000000000000000000000000000ab8bd67fc0cf8b680e941b1975395", - "0x0000000000000000000000000000006a109e5151483fdb298e0f5e061c86c618", - "0x00000000000000000000000000000000000925ab78f852c2e99d524f60b39adf", - "0x000000000000000000000000000000599cc0e9a94c69414d31a632c899fd4d6d", - "0x000000000000000000000000000000000019336f5aeaeceb7624febc09b15c7f", - "0x00000000000000000000000000000033768ea1159621146853f4dbee0a7c3779", - "0x00000000000000000000000000000000001a739635dd82d71459899435a44e23", - "0x0000000000000000000000000000006e6eaf5785e0abac1d8943d0f9a9692762", - "0x000000000000000000000000000000000016ff734a00f761d47b620604291b96", - "0x000000000000000000000000000000e59267e51f6b42cfc30e7faac8349ab1ba", - "0x000000000000000000000000000000000025b395c1d2290359a4704745d84213", - "0x000000000000000000000000000000ef66194d9096f570bc9bd92fa613b1ed41", - "0x0000000000000000000000000000000000255dc20e0790ef60c95ea61d4bfc13", - "0x000000000000000000000000000000cadd875a98ff9c71459d2efc469e2a4434", - "0x00000000000000000000000000000000002118051b435b83326cbe69424983c2", - "0x000000000000000000000000000000db269f263320b83366a0e99398087b61e4", - "0x00000000000000000000000000000000002acea563d868d3e9c032030fb62efb", - "0x00000000000000000000000000000064ef35cf1c2b0ce4df191c182a050cfcde", - "0x000000000000000000000000000000000012b92f17e3f3d28ad23a27c09b1016", - "0x0000000000000000000000000000005128acaa778ed0fff4a85e2fd1cbfb9d6b", - "0x00000000000000000000000000000000002caf7f4d980d4a589ae8bccd3d483e", - "0x0000000000000000000000000000005153cac3f365164cc275dec1f4026e0592", - "0x00000000000000000000000000000000001f17406e49b13345a0666c3a3772c1", - "0x00000000000000000000000000000002d512bca4d41aa16815b2b1821caa2bc6", - "0x0000000000000000000000000000000000245857c8698cd93b5783bf4f2aa61e", - "0x000000000000000000000000000000225e8463246e68a27e54d75c1623d27248", - "0x000000000000000000000000000000000028b159d4036722c3874b16b6b42725", - "0x000000000000000000000000000000edf5e97fb8505132b0310febb8319f34d7", - "0x00000000000000000000000000000000000a141539c94972373c6a6e7f6c4dd4", - "0x000000000000000000000000000000e72b03aec38f30b633a3b8cf0b4bf04620", - "0x00000000000000000000000000000000002c9c5a89ee2e971fce5875f8116594", - "0x0000000000000000000000000000004cdf51965039115b17b6069e73e8c258c3", - "0x000000000000000000000000000000000011f8d36b7e584295f9b81f3b28aec5", - "0x000000000000000000000000000000b572765a546f7c7d0a22bfbe95b05ae57b", - "0x00000000000000000000000000000000002c716fa9b5193525d3042e7d93ae29", - "0x000000000000000000000000000000258b21405dd0d84407f399f25ae243420b", - "0x0000000000000000000000000000000000279f38f6ce11c7a0c1b624ec46b4b7", - "0x000000000000000000000000000000535770055ab425aec69447ae972ede6c07", - "0x00000000000000000000000000000000002e89380351b5b97f2f410eff9b4cec", - "0x0000000000000000000000000000005582a27f1dcf63bb8e6eefa84f1e8d44c7", - "0x00000000000000000000000000000000000b24b8d0579fe17233e53110cdd189", - "0x000000000000000000000000000000161025944f6c83ec5f9ef0999688a1aa5d", - "0x00000000000000000000000000000000001a4cc28f601466367be13aec95c2b7", - "0x0000000000000000000000000000003e6bf96292a501e3a6f8e7581b2eeede66", - "0x0000000000000000000000000000000000029f1ad8e0403601dac8e72fbf7d64", - "0x000000000000000000000000000000397f5895a8363c42b9c74626b46c0779c4", - "0x0000000000000000000000000000000000069a7b4fd2bc3608557f09725cff0a", - "0x000000000000000000000000000000657b8f76f6b5d7bc0c627227198f70fd01", - "0x00000000000000000000000000000000000d376ea7f2c2308c5aec7f3498917b", - "0x000000000000000000000000000000a6a8899d451e1d0d329ebb8710454e42d9", - "0x0000000000000000000000000000000000305c76f8bdd33d50f8ecf1c574282a", - "0x000000000000000000000000000000a83ece395da3f00121baa4e6542fae329f", - "0x000000000000000000000000000000000005292807460acbc4a39c3eb1cce1b0", - "0x0000000000000000000000000000004779b6dd712cf858f5c239ff49d371b75e", - "0x00000000000000000000000000000000000710d995fd1c6cd9e454e60eea5918", - "0x0000000000000000000000000000000bf8d28d612707694cbc74b9a26c494324", - "0x000000000000000000000000000000000016ad0da5c985528f688f18afa75652", - "0x0000000000000000000000000000009cdb1686c0c7ddcd1fa3d9f2a4cad82ebb", - "0x00000000000000000000000000000000001a2417659ff90dba3d8211d8fefc5b", - "0x000000000000000000000000000000b1a6453d678f0b547e06c8bab5f963a01f", - "0x000000000000000000000000000000000018c98423f512ca4c999a75f8195289", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000019e0ae354da71270bec797a475943a4a35", - "0x00000000000000000000000000000000002d805102b2ada234811a3919c13ee7", - "0x0000000000000000000000000000008355ae3d7e59006745cd218643d5f60175", - "0x00000000000000000000000000000000000413458335fe3b972cbaae49ed81e0" -] - hash = "0x2e239d6b958653f4a3fc328d95fa8983cc36eda5956aca985c7da05eea828185" - - [[inputs.previous_rollup_data]] -[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs] -out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" -proposed_block_header_hashes = [ - "0x00afb7a5b72ec2fe2e2c9aba4697392b5da62dd8b772a17ba5b84d78a94f3526", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] -vk_tree_root = "0x20af990958e8575ae0f803c8a491a00c3734fc1df32d7aee2f29d13a0f14e157" -protocol_contract_tree_root = "0x13b587f58f77a7ad53b50e5509a4aff45cf77ccd44d7e5af3ea19c51bcc02d0d" -prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.previous_archive] - root = "0x2c06258cb57016b882323735d87a33540b08bf5d66406e3238054a7bcad534de" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.new_archive] - root = "0x272b57cbfa967e6d6e6bde49fbfabf51a2c593371c9d1d33c181291662ed05cc" - next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000023" - timestamp = "0x000000000000000000000000000000000000000000000000000000006830921a" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.fee_recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.gas_fees] - fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x0000000000000000000000000000000000000000000000000000000007b6e981" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000009" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000023" - timestamp = "0x000000000000000000000000000000000000000000000000000000006830921a" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.coinbase] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.fee_recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.gas_fees] - fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000fb4" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x000000000000000000000000000000000000000000000000000000000dd470f8" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x00000000000000000000000025b14b9a1dc950bcac555789cc8a0d1ea5edfb06" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] - inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x303f4d9d1d5436ae20a364c1f8ab664745948e0d1fc7d04452ce71eba712b1c7" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x24253ac4a8edebedf1da7af040365d", - "0x3fed32b5505901b2fce4e31e2ce31e", - "0x3a3f" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x00ab55fce5fe66d0c054b02305db1e85b1ffa1beb2e618d4511ca69273b533a2", - "0x000000000000000000000000000000c3238145142c105b78ec3994e25a62a0e1" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.proof] +fields = [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000e", + "0x000000000000000000000000000000000000000000000000000000000000000f", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000011", + "0x0000000000000000000000000000000000000000000000000000000000000012", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x0000000000000000000000000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x0000000000000000000000000000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000019", + "0x000000000000000000000000000000000000000000000000000000000000001a", + "0x000000000000000000000000000000000000000000000000000000000000001b", + "0x000000000000000000000000000000000000000000000000000000000000001c", + "0x000000000000000000000000000000000000000000000000000000000000001d", + "0x000000000000000000000000000000000000000000000000000000000000001e", + "0x000000000000000000000000000000000000000000000000000000000000001f", + "0x0000000000000000000000000000000000000000000000000000000000000020", + "0x0000000000000000000000000000000000000000000000000000000000000021", + "0x0000000000000000000000000000000000000000000000000000000000000022", + "0x0000000000000000000000000000000000000000000000000000000000000023", + "0x0000000000000000000000000000000000000000000000000000000000000024", + "0x0000000000000000000000000000000000000000000000000000000000000025", + "0x0000000000000000000000000000000000000000000000000000000000000026", + "0x0000000000000000000000000000000000000000000000000000000000000027", + "0x0000000000000000000000000000000000000000000000000000000000000028", + "0x0000000000000000000000000000000000000000000000000000000000000029", + "0x000000000000000000000000000000000000000000000000000000000000002a", + "0x000000000000000000000000000000000000000000000000000000000000002b", + "0x000000000000000000000000000000000000000000000000000000000000002c", + "0x000000000000000000000000000000000000000000000000000000000000002d", + "0x000000000000000000000000000000000000000000000000000000000000002e", + "0x000000000000000000000000000000000000000000000000000000000000002f", + "0x0000000000000000000000000000000000000000000000000000000000000030", + "0x0000000000000000000000000000000000000000000000000000000000000031", + "0x0000000000000000000000000000000000000000000000000000000000000032", + "0x0000000000000000000000000000000000000000000000000000000000000033", + "0x0000000000000000000000000000000000000000000000000000000000000034", + "0x0000000000000000000000000000000000000000000000000000000000000035", + "0x0000000000000000000000000000000000000000000000000000000000000036", + "0x0000000000000000000000000000000000000000000000000000000000000037", + "0x0000000000000000000000000000000000000000000000000000000000000038", + "0x0000000000000000000000000000000000000000000000000000000000000039", + "0x000000000000000000000000000000000000000000000000000000000000003a", + "0x000000000000000000000000000000000000000000000000000000000000003b", + "0x000000000000000000000000000000000000000000000000000000000000003c", + "0x000000000000000000000000000000000000000000000000000000000000003d", + "0x000000000000000000000000000000000000000000000000000000000000003e", + "0x000000000000000000000000000000000000000000000000000000000000003f", + "0x0000000000000000000000000000000000000000000000000000000000000040", + "0x0000000000000000000000000000000000000000000000000000000000000041", + "0x0000000000000000000000000000000000000000000000000000000000000042", + "0x0000000000000000000000000000000000000000000000000000000000000043", + "0x0000000000000000000000000000000000000000000000000000000000000044", + "0x0000000000000000000000000000000000000000000000000000000000000045", + "0x0000000000000000000000000000000000000000000000000000000000000046", + "0x0000000000000000000000000000000000000000000000000000000000000047", + "0x0000000000000000000000000000000000000000000000000000000000000048", + "0x0000000000000000000000000000000000000000000000000000000000000049", + "0x000000000000000000000000000000000000000000000000000000000000004a", + "0x000000000000000000000000000000000000000000000000000000000000004b", + "0x000000000000000000000000000000000000000000000000000000000000004c", + "0x000000000000000000000000000000000000000000000000000000000000004d", + "0x000000000000000000000000000000000000000000000000000000000000004e", + "0x000000000000000000000000000000000000000000000000000000000000004f", + "0x0000000000000000000000000000000000000000000000000000000000000050", + "0x0000000000000000000000000000000000000000000000000000000000000051", + "0x0000000000000000000000000000000000000000000000000000000000000052", + "0x0000000000000000000000000000000000000000000000000000000000000053", + "0x0000000000000000000000000000000000000000000000000000000000000054", + "0x0000000000000000000000000000000000000000000000000000000000000055", + "0x0000000000000000000000000000000000000000000000000000000000000056", + "0x0000000000000000000000000000000000000000000000000000000000000057", + "0x0000000000000000000000000000000000000000000000000000000000000058", + "0x0000000000000000000000000000000000000000000000000000000000000059", + "0x000000000000000000000000000000000000000000000000000000000000005a", + "0x000000000000000000000000000000000000000000000000000000000000005b", + "0x000000000000000000000000000000000000000000000000000000000000005c", + "0x000000000000000000000000000000000000000000000000000000000000005d", + "0x000000000000000000000000000000000000000000000000000000000000005e", + "0x000000000000000000000000000000000000000000000000000000000000005f", + "0x0000000000000000000000000000000000000000000000000000000000000060", + "0x0000000000000000000000000000000000000000000000000000000000000061", + "0x0000000000000000000000000000000000000000000000000000000000000062", + "0x0000000000000000000000000000000000000000000000000000000000000063", + "0x0000000000000000000000000000000000000000000000000000000000000064", + "0x0000000000000000000000000000000000000000000000000000000000000065", + "0x0000000000000000000000000000000000000000000000000000000000000066", + "0x0000000000000000000000000000000000000000000000000000000000000067", + "0x0000000000000000000000000000000000000000000000000000000000000068", + "0x0000000000000000000000000000000000000000000000000000000000000069", + "0x000000000000000000000000000000000000000000000000000000000000006a", + "0x000000000000000000000000000000000000000000000000000000000000006b", + "0x000000000000000000000000000000000000000000000000000000000000006c", + "0x000000000000000000000000000000000000000000000000000000000000006d", + "0x000000000000000000000000000000000000000000000000000000000000006e", + "0x000000000000000000000000000000000000000000000000000000000000006f", + "0x0000000000000000000000000000000000000000000000000000000000000070", + "0x0000000000000000000000000000000000000000000000000000000000000071", + "0x0000000000000000000000000000000000000000000000000000000000000072", + "0x0000000000000000000000000000000000000000000000000000000000000073", + "0x0000000000000000000000000000000000000000000000000000000000000074", + "0x0000000000000000000000000000000000000000000000000000000000000075", + "0x0000000000000000000000000000000000000000000000000000000000000076", + "0x0000000000000000000000000000000000000000000000000000000000000077", + "0x0000000000000000000000000000000000000000000000000000000000000078", + "0x0000000000000000000000000000000000000000000000000000000000000079", + "0x000000000000000000000000000000000000000000000000000000000000007a", + "0x000000000000000000000000000000000000000000000000000000000000007b", + "0x000000000000000000000000000000000000000000000000000000000000007c", + "0x000000000000000000000000000000000000000000000000000000000000007d", + "0x000000000000000000000000000000000000000000000000000000000000007e", + "0x000000000000000000000000000000000000000000000000000000000000007f", + "0x0000000000000000000000000000000000000000000000000000000000000080", + "0x0000000000000000000000000000000000000000000000000000000000000081", + "0x0000000000000000000000000000000000000000000000000000000000000082", + "0x0000000000000000000000000000000000000000000000000000000000000083", + "0x0000000000000000000000000000000000000000000000000000000000000084", + "0x0000000000000000000000000000000000000000000000000000000000000085", + "0x0000000000000000000000000000000000000000000000000000000000000086", + "0x0000000000000000000000000000000000000000000000000000000000000087", + "0x0000000000000000000000000000000000000000000000000000000000000088", + "0x0000000000000000000000000000000000000000000000000000000000000089", + "0x000000000000000000000000000000000000000000000000000000000000008a", + "0x000000000000000000000000000000000000000000000000000000000000008b", + "0x000000000000000000000000000000000000000000000000000000000000008c", + "0x000000000000000000000000000000000000000000000000000000000000008d", + "0x000000000000000000000000000000000000000000000000000000000000008e", + "0x000000000000000000000000000000000000000000000000000000000000008f", + "0x0000000000000000000000000000000000000000000000000000000000000090", + "0x0000000000000000000000000000000000000000000000000000000000000091", + "0x0000000000000000000000000000000000000000000000000000000000000092", + "0x0000000000000000000000000000000000000000000000000000000000000093", + "0x0000000000000000000000000000000000000000000000000000000000000094", + "0x0000000000000000000000000000000000000000000000000000000000000095", + "0x0000000000000000000000000000000000000000000000000000000000000096", + "0x0000000000000000000000000000000000000000000000000000000000000097", + "0x0000000000000000000000000000000000000000000000000000000000000098", + "0x0000000000000000000000000000000000000000000000000000000000000099", + "0x000000000000000000000000000000000000000000000000000000000000009a", + "0x000000000000000000000000000000000000000000000000000000000000009b", + "0x000000000000000000000000000000000000000000000000000000000000009c", + "0x000000000000000000000000000000000000000000000000000000000000009d", + "0x000000000000000000000000000000000000000000000000000000000000009e", + "0x000000000000000000000000000000000000000000000000000000000000009f", + "0x00000000000000000000000000000000000000000000000000000000000000a0", + "0x00000000000000000000000000000000000000000000000000000000000000a1", + "0x00000000000000000000000000000000000000000000000000000000000000a2", + "0x00000000000000000000000000000000000000000000000000000000000000a3", + "0x00000000000000000000000000000000000000000000000000000000000000a4", + "0x00000000000000000000000000000000000000000000000000000000000000a5", + "0x00000000000000000000000000000000000000000000000000000000000000a6", + "0x00000000000000000000000000000000000000000000000000000000000000a7", + "0x00000000000000000000000000000000000000000000000000000000000000a8", + "0x00000000000000000000000000000000000000000000000000000000000000a9", + "0x00000000000000000000000000000000000000000000000000000000000000aa", + "0x00000000000000000000000000000000000000000000000000000000000000ab", + "0x00000000000000000000000000000000000000000000000000000000000000ac", + "0x00000000000000000000000000000000000000000000000000000000000000ad", + "0x00000000000000000000000000000000000000000000000000000000000000ae", + "0x00000000000000000000000000000000000000000000000000000000000000af", + "0x00000000000000000000000000000000000000000000000000000000000000b0", + "0x00000000000000000000000000000000000000000000000000000000000000b1", + "0x00000000000000000000000000000000000000000000000000000000000000b2", + "0x00000000000000000000000000000000000000000000000000000000000000b3", + "0x00000000000000000000000000000000000000000000000000000000000000b4", + "0x00000000000000000000000000000000000000000000000000000000000000b5", + "0x00000000000000000000000000000000000000000000000000000000000000b6", + "0x00000000000000000000000000000000000000000000000000000000000000b7", + "0x00000000000000000000000000000000000000000000000000000000000000b8", + "0x00000000000000000000000000000000000000000000000000000000000000b9", + "0x00000000000000000000000000000000000000000000000000000000000000ba", + "0x00000000000000000000000000000000000000000000000000000000000000bb", + "0x00000000000000000000000000000000000000000000000000000000000000bc", + "0x00000000000000000000000000000000000000000000000000000000000000bd", + "0x00000000000000000000000000000000000000000000000000000000000000be", + "0x00000000000000000000000000000000000000000000000000000000000000bf", + "0x00000000000000000000000000000000000000000000000000000000000000c0", + "0x00000000000000000000000000000000000000000000000000000000000000c1", + "0x00000000000000000000000000000000000000000000000000000000000000c2", + "0x00000000000000000000000000000000000000000000000000000000000000c3", + "0x00000000000000000000000000000000000000000000000000000000000000c4", + "0x00000000000000000000000000000000000000000000000000000000000000c5", + "0x00000000000000000000000000000000000000000000000000000000000000c6", + "0x00000000000000000000000000000000000000000000000000000000000000c7", + "0x00000000000000000000000000000000000000000000000000000000000000c8", + "0x00000000000000000000000000000000000000000000000000000000000000c9", + "0x00000000000000000000000000000000000000000000000000000000000000ca", + "0x00000000000000000000000000000000000000000000000000000000000000cb", + "0x00000000000000000000000000000000000000000000000000000000000000cc", + "0x00000000000000000000000000000000000000000000000000000000000000cd", + "0x00000000000000000000000000000000000000000000000000000000000000ce", + "0x00000000000000000000000000000000000000000000000000000000000000cf", + "0x00000000000000000000000000000000000000000000000000000000000000d0", + "0x00000000000000000000000000000000000000000000000000000000000000d1", + "0x00000000000000000000000000000000000000000000000000000000000000d2", + "0x00000000000000000000000000000000000000000000000000000000000000d3", + "0x00000000000000000000000000000000000000000000000000000000000000d4", + "0x00000000000000000000000000000000000000000000000000000000000000d5", + "0x00000000000000000000000000000000000000000000000000000000000000d6", + "0x00000000000000000000000000000000000000000000000000000000000000d7", + "0x00000000000000000000000000000000000000000000000000000000000000d8", + "0x00000000000000000000000000000000000000000000000000000000000000d9", + "0x00000000000000000000000000000000000000000000000000000000000000da", + "0x00000000000000000000000000000000000000000000000000000000000000db", + "0x00000000000000000000000000000000000000000000000000000000000000dc", + "0x00000000000000000000000000000000000000000000000000000000000000dd", + "0x00000000000000000000000000000000000000000000000000000000000000de", + "0x00000000000000000000000000000000000000000000000000000000000000df", + "0x00000000000000000000000000000000000000000000000000000000000000e0", + "0x00000000000000000000000000000000000000000000000000000000000000e1", + "0x00000000000000000000000000000000000000000000000000000000000000e2", + "0x00000000000000000000000000000000000000000000000000000000000000e3", + "0x00000000000000000000000000000000000000000000000000000000000000e4", + "0x00000000000000000000000000000000000000000000000000000000000000e5", + "0x00000000000000000000000000000000000000000000000000000000000000e6", + "0x00000000000000000000000000000000000000000000000000000000000000e7", + "0x00000000000000000000000000000000000000000000000000000000000000e8", + "0x00000000000000000000000000000000000000000000000000000000000000e9", + "0x00000000000000000000000000000000000000000000000000000000000000ea", + "0x00000000000000000000000000000000000000000000000000000000000000eb", + "0x00000000000000000000000000000000000000000000000000000000000000ec", + "0x00000000000000000000000000000000000000000000000000000000000000ed", + "0x00000000000000000000000000000000000000000000000000000000000000ee", + "0x00000000000000000000000000000000000000000000000000000000000000ef", + "0x00000000000000000000000000000000000000000000000000000000000000f0", + "0x00000000000000000000000000000000000000000000000000000000000000f1", + "0x00000000000000000000000000000000000000000000000000000000000000f2", + "0x00000000000000000000000000000000000000000000000000000000000000f3", + "0x00000000000000000000000000000000000000000000000000000000000000f4", + "0x00000000000000000000000000000000000000000000000000000000000000f5", + "0x00000000000000000000000000000000000000000000000000000000000000f6", + "0x00000000000000000000000000000000000000000000000000000000000000f7", + "0x00000000000000000000000000000000000000000000000000000000000000f8", + "0x00000000000000000000000000000000000000000000000000000000000000f9", + "0x00000000000000000000000000000000000000000000000000000000000000fa", + "0x00000000000000000000000000000000000000000000000000000000000000fb", + "0x00000000000000000000000000000000000000000000000000000000000000fc", + "0x00000000000000000000000000000000000000000000000000000000000000fd", + "0x00000000000000000000000000000000000000000000000000000000000000fe", + "0x00000000000000000000000000000000000000000000000000000000000000ff", + "0x0000000000000000000000000000000000000000000000000000000000000100", + "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000102", + "0x0000000000000000000000000000000000000000000000000000000000000103", + "0x0000000000000000000000000000000000000000000000000000000000000104", + "0x0000000000000000000000000000000000000000000000000000000000000105", + "0x0000000000000000000000000000000000000000000000000000000000000106", + "0x0000000000000000000000000000000000000000000000000000000000000107", + "0x0000000000000000000000000000000000000000000000000000000000000108", + "0x0000000000000000000000000000000000000000000000000000000000000109", + "0x000000000000000000000000000000000000000000000000000000000000010a", + "0x000000000000000000000000000000000000000000000000000000000000010b", + "0x000000000000000000000000000000000000000000000000000000000000010c", + "0x000000000000000000000000000000000000000000000000000000000000010d", + "0x000000000000000000000000000000000000000000000000000000000000010e", + "0x000000000000000000000000000000000000000000000000000000000000010f", + "0x0000000000000000000000000000000000000000000000000000000000000110", + "0x0000000000000000000000000000000000000000000000000000000000000111", + "0x0000000000000000000000000000000000000000000000000000000000000112", + "0x0000000000000000000000000000000000000000000000000000000000000113", + "0x0000000000000000000000000000000000000000000000000000000000000114", + "0x0000000000000000000000000000000000000000000000000000000000000115", + "0x0000000000000000000000000000000000000000000000000000000000000116", + "0x0000000000000000000000000000000000000000000000000000000000000117", + "0x0000000000000000000000000000000000000000000000000000000000000118", + "0x0000000000000000000000000000000000000000000000000000000000000119", + "0x000000000000000000000000000000000000000000000000000000000000011a", + "0x000000000000000000000000000000000000000000000000000000000000011b", + "0x000000000000000000000000000000000000000000000000000000000000011c", + "0x000000000000000000000000000000000000000000000000000000000000011d", + "0x000000000000000000000000000000000000000000000000000000000000011e", + "0x000000000000000000000000000000000000000000000000000000000000011f", + "0x0000000000000000000000000000000000000000000000000000000000000120", + "0x0000000000000000000000000000000000000000000000000000000000000121", + "0x0000000000000000000000000000000000000000000000000000000000000122", + "0x0000000000000000000000000000000000000000000000000000000000000123", + "0x0000000000000000000000000000000000000000000000000000000000000124", + "0x0000000000000000000000000000000000000000000000000000000000000125", + "0x0000000000000000000000000000000000000000000000000000000000000126", + "0x0000000000000000000000000000000000000000000000000000000000000127", + "0x0000000000000000000000000000000000000000000000000000000000000128", + "0x0000000000000000000000000000000000000000000000000000000000000129", + "0x000000000000000000000000000000000000000000000000000000000000012a", + "0x000000000000000000000000000000000000000000000000000000000000012b", + "0x000000000000000000000000000000000000000000000000000000000000012c", + "0x000000000000000000000000000000000000000000000000000000000000012d", + "0x000000000000000000000000000000000000000000000000000000000000012e", + "0x000000000000000000000000000000000000000000000000000000000000012f", + "0x0000000000000000000000000000000000000000000000000000000000000130", + "0x0000000000000000000000000000000000000000000000000000000000000131", + "0x0000000000000000000000000000000000000000000000000000000000000132", + "0x0000000000000000000000000000000000000000000000000000000000000133", + "0x0000000000000000000000000000000000000000000000000000000000000134", + "0x0000000000000000000000000000000000000000000000000000000000000135", + "0x0000000000000000000000000000000000000000000000000000000000000136", + "0x0000000000000000000000000000000000000000000000000000000000000137", + "0x0000000000000000000000000000000000000000000000000000000000000138", + "0x0000000000000000000000000000000000000000000000000000000000000139", + "0x000000000000000000000000000000000000000000000000000000000000013a", + "0x000000000000000000000000000000000000000000000000000000000000013b", + "0x000000000000000000000000000000000000000000000000000000000000013c", + "0x000000000000000000000000000000000000000000000000000000000000013d", + "0x000000000000000000000000000000000000000000000000000000000000013e", + "0x000000000000000000000000000000000000000000000000000000000000013f", + "0x0000000000000000000000000000000000000000000000000000000000000140", + "0x0000000000000000000000000000000000000000000000000000000000000141", + "0x0000000000000000000000000000000000000000000000000000000000000142", + "0x0000000000000000000000000000000000000000000000000000000000000143", + "0x0000000000000000000000000000000000000000000000000000000000000144", + "0x0000000000000000000000000000000000000000000000000000000000000145", + "0x0000000000000000000000000000000000000000000000000000000000000146", + "0x0000000000000000000000000000000000000000000000000000000000000147", + "0x0000000000000000000000000000000000000000000000000000000000000148", + "0x0000000000000000000000000000000000000000000000000000000000000149", + "0x000000000000000000000000000000000000000000000000000000000000014a", + "0x000000000000000000000000000000000000000000000000000000000000014b", + "0x000000000000000000000000000000000000000000000000000000000000014c", + "0x000000000000000000000000000000000000000000000000000000000000014d", + "0x000000000000000000000000000000000000000000000000000000000000014e", + "0x000000000000000000000000000000000000000000000000000000000000014f", + "0x0000000000000000000000000000000000000000000000000000000000000150", + "0x0000000000000000000000000000000000000000000000000000000000000151", + "0x0000000000000000000000000000000000000000000000000000000000000152", + "0x0000000000000000000000000000000000000000000000000000000000000153", + "0x0000000000000000000000000000000000000000000000000000000000000154", + "0x0000000000000000000000000000000000000000000000000000000000000155", + "0x0000000000000000000000000000000000000000000000000000000000000156", + "0x0000000000000000000000000000000000000000000000000000000000000157", + "0x0000000000000000000000000000000000000000000000000000000000000158", + "0x0000000000000000000000000000000000000000000000000000000000000159", + "0x000000000000000000000000000000000000000000000000000000000000015a", + "0x000000000000000000000000000000000000000000000000000000000000015b", + "0x000000000000000000000000000000000000000000000000000000000000015c", + "0x000000000000000000000000000000000000000000000000000000000000015d", + "0x000000000000000000000000000000000000000000000000000000000000015e", + "0x000000000000000000000000000000000000000000000000000000000000015f", + "0x0000000000000000000000000000000000000000000000000000000000000160", + "0x0000000000000000000000000000000000000000000000000000000000000161", + "0x0000000000000000000000000000000000000000000000000000000000000162", + "0x0000000000000000000000000000000000000000000000000000000000000163", + "0x0000000000000000000000000000000000000000000000000000000000000164", + "0x0000000000000000000000000000000000000000000000000000000000000165", + "0x0000000000000000000000000000000000000000000000000000000000000166", + "0x0000000000000000000000000000000000000000000000000000000000000167", + "0x0000000000000000000000000000000000000000000000000000000000000168", + "0x0000000000000000000000000000000000000000000000000000000000000169", + "0x000000000000000000000000000000000000000000000000000000000000016a", + "0x000000000000000000000000000000000000000000000000000000000000016b", + "0x000000000000000000000000000000000000000000000000000000000000016c", + "0x000000000000000000000000000000000000000000000000000000000000016d", + "0x000000000000000000000000000000000000000000000000000000000000016e", + "0x000000000000000000000000000000000000000000000000000000000000016f", + "0x0000000000000000000000000000000000000000000000000000000000000170", + "0x0000000000000000000000000000000000000000000000000000000000000171", + "0x0000000000000000000000000000000000000000000000000000000000000172", + "0x0000000000000000000000000000000000000000000000000000000000000173", + "0x0000000000000000000000000000000000000000000000000000000000000174", + "0x0000000000000000000000000000000000000000000000000000000000000175", + "0x0000000000000000000000000000000000000000000000000000000000000176", + "0x0000000000000000000000000000000000000000000000000000000000000177", + "0x0000000000000000000000000000000000000000000000000000000000000178", + "0x0000000000000000000000000000000000000000000000000000000000000179", + "0x000000000000000000000000000000000000000000000000000000000000017a", + "0x000000000000000000000000000000000000000000000000000000000000017b", + "0x000000000000000000000000000000000000000000000000000000000000017c", + "0x000000000000000000000000000000000000000000000000000000000000017d", + "0x000000000000000000000000000000000000000000000000000000000000017e", + "0x000000000000000000000000000000000000000000000000000000000000017f", + "0x0000000000000000000000000000000000000000000000000000000000000180", + "0x0000000000000000000000000000000000000000000000000000000000000181", + "0x0000000000000000000000000000000000000000000000000000000000000182", + "0x0000000000000000000000000000000000000000000000000000000000000183", + "0x0000000000000000000000000000000000000000000000000000000000000184", + "0x0000000000000000000000000000000000000000000000000000000000000185", + "0x0000000000000000000000000000000000000000000000000000000000000186", + "0x0000000000000000000000000000000000000000000000000000000000000187", + "0x0000000000000000000000000000000000000000000000000000000000000188", + "0x0000000000000000000000000000000000000000000000000000000000000189", + "0x000000000000000000000000000000000000000000000000000000000000018a", + "0x000000000000000000000000000000000000000000000000000000000000018b", + "0x000000000000000000000000000000000000000000000000000000000000018c", + "0x000000000000000000000000000000000000000000000000000000000000018d", + "0x000000000000000000000000000000000000000000000000000000000000018e", + "0x000000000000000000000000000000000000000000000000000000000000018f", + "0x0000000000000000000000000000000000000000000000000000000000000190", + "0x0000000000000000000000000000000000000000000000000000000000000191", + "0x0000000000000000000000000000000000000000000000000000000000000192", + "0x0000000000000000000000000000000000000000000000000000000000000193", + "0x0000000000000000000000000000000000000000000000000000000000000194", + "0x0000000000000000000000000000000000000000000000000000000000000195", + "0x0000000000000000000000000000000000000000000000000000000000000196", + "0x0000000000000000000000000000000000000000000000000000000000000197", + "0x0000000000000000000000000000000000000000000000000000000000000198", + "0x0000000000000000000000000000000000000000000000000000000000000199", + "0x000000000000000000000000000000000000000000000000000000000000019a", + "0x000000000000000000000000000000000000000000000000000000000000019b", + "0x000000000000000000000000000000000000000000000000000000000000019c", + "0x000000000000000000000000000000000000000000000000000000000000019d", + "0x000000000000000000000000000000000000000000000000000000000000019e", + "0x000000000000000000000000000000000000000000000000000000000000019f", + "0x00000000000000000000000000000000000000000000000000000000000001a0", + "0x00000000000000000000000000000000000000000000000000000000000001a1", + "0x00000000000000000000000000000000000000000000000000000000000001a2", + "0x00000000000000000000000000000000000000000000000000000000000001a3", + "0x00000000000000000000000000000000000000000000000000000000000001a4", + "0x00000000000000000000000000000000000000000000000000000000000001a5", + "0x00000000000000000000000000000000000000000000000000000000000001a6", + "0x00000000000000000000000000000000000000000000000000000000000001a7", + "0x00000000000000000000000000000000000000000000000000000000000001a8", + "0x00000000000000000000000000000000000000000000000000000000000001a9", + "0x00000000000000000000000000000000000000000000000000000000000001aa", + "0x00000000000000000000000000000000000000000000000000000000000001ab", + "0x00000000000000000000000000000000000000000000000000000000000001ac", + "0x00000000000000000000000000000000000000000000000000000000000001ad", + "0x00000000000000000000000000000000000000000000000000000000000001ae", + "0x00000000000000000000000000000000000000000000000000000000000001af", + "0x00000000000000000000000000000000000000000000000000000000000001b0", + "0x00000000000000000000000000000000000000000000000000000000000001b1", + "0x00000000000000000000000000000000000000000000000000000000000001b2", + "0x00000000000000000000000000000000000000000000000000000000000001b3", + "0x00000000000000000000000000000000000000000000000000000000000001b4", + "0x00000000000000000000000000000000000000000000000000000000000001b5", + "0x00000000000000000000000000000000000000000000000000000000000001b6", + "0x00000000000000000000000000000000000000000000000000000000000001b7", + "0x00000000000000000000000000000000000000000000000000000000000001b8", + "0x00000000000000000000000000000000000000000000000000000000000001b9", + "0x00000000000000000000000000000000000000000000000000000000000001ba", + "0x00000000000000000000000000000000000000000000000000000000000001bb", + "0x00000000000000000000000000000000000000000000000000000000000001bc", + "0x00000000000000000000000000000000000000000000000000000000000001bd", + "0x00000000000000000000000000000000000000000000000000000000000001be", + "0x00000000000000000000000000000000000000000000000000000000000001bf", + "0x00000000000000000000000000000000000000000000000000000000000001c0", + "0x00000000000000000000000000000000000000000000000000000000000001c1", + "0x00000000000000000000000000000000000000000000000000000000000001c2", + "0x00000000000000000000000000000000000000000000000000000000000001c3", + "0x00000000000000000000000000000000000000000000000000000000000001c4", + "0x00000000000000000000000000000000000000000000000000000000000001c5", + "0x00000000000000000000000000000000000000000000000000000000000001c6", + "0x00000000000000000000000000000000000000000000000000000000000001c7", + "0x00000000000000000000000000000000000000000000000000000000000001c8", + "0x00000000000000000000000000000000000000000000000000000000000001c9", + "0x00000000000000000000000000000000000000000000000000000000000001ca", + "0x00000000000000000000000000000000000000000000000000000000000001cb", + "0x00000000000000000000000000000000000000000000000000000000000001cc", + "0x00000000000000000000000000000000000000000000000000000000000001cd", + "0x00000000000000000000000000000000000000000000000000000000000001ce", + "0x00000000000000000000000000000000000000000000000000000000000001cf", + "0x00000000000000000000000000000000000000000000000000000000000001d0", + "0x00000000000000000000000000000000000000000000000000000000000001d1", + "0x00000000000000000000000000000000000000000000000000000000000001d2", + "0x00000000000000000000000000000000000000000000000000000000000001d3", + "0x00000000000000000000000000000000000000000000000000000000000001d4", + "0x00000000000000000000000000000000000000000000000000000000000001d5", + "0x00000000000000000000000000000000000000000000000000000000000001d6", + "0x00000000000000000000000000000000000000000000000000000000000001d7", + "0x00000000000000000000000000000000000000000000000000000000000001d8", + "0x00000000000000000000000000000000000000000000000000000000000001d9", + "0x00000000000000000000000000000000000000000000000000000000000001da", + "0x00000000000000000000000000000000000000000000000000000000000001db", + "0x00000000000000000000000000000000000000000000000000000000000001dc", + "0x00000000000000000000000000000000000000000000000000000000000001dd", + "0x00000000000000000000000000000000000000000000000000000000000001de", + "0x00000000000000000000000000000000000000000000000000000000000001df", + "0x00000000000000000000000000000000000000000000000000000000000001e0", + "0x00000000000000000000000000000000000000000000000000000000000001e1", + "0x00000000000000000000000000000000000000000000000000000000000001e2", + "0x00000000000000000000000000000000000000000000000000000000000001e3", + "0x00000000000000000000000000000000000000000000000000000000000001e4", + "0x00000000000000000000000000000000000000000000000000000000000001e5", + "0x00000000000000000000000000000000000000000000000000000000000001e6", + "0x00000000000000000000000000000000000000000000000000000000000001e7", + "0x00000000000000000000000000000000000000000000000000000000000001e8", + "0x00000000000000000000000000000000000000000000000000000000000001e9", + "0x00000000000000000000000000000000000000000000000000000000000001ea", + "0x00000000000000000000000000000000000000000000000000000000000001eb", + "0x00000000000000000000000000000000000000000000000000000000000001ec", + "0x00000000000000000000000000000000000000000000000000000000000001ed", + "0x00000000000000000000000000000000000000000000000000000000000001ee", + "0x00000000000000000000000000000000000000000000000000000000000001ef", + "0x00000000000000000000000000000000000000000000000000000000000001f0", + "0x00000000000000000000000000000000000000000000000000000000000001f1", + "0x00000000000000000000000000000000000000000000000000000000000001f2", + "0x00000000000000000000000000000000000000000000000000000000000001f3", + "0x00000000000000000000000000000000000000000000000000000000000001f4", + "0x00000000000000000000000000000000000000000000000000000000000001f5", + "0x00000000000000000000000000000000000000000000000000000000000001f6", + "0x00000000000000000000000000000000000000000000000000000000000001f7", + "0x00000000000000000000000000000000000000000000000000000000000001f8", + "0x00000000000000000000000000000000000000000000000000000000000001f9", + "0x00000000000000000000000000000000000000000000000000000000000001fa", + "0x00000000000000000000000000000000000000000000000000000000000001fb", + "0x00000000000000000000000000000000000000000000000000000000000001fc", + "0x00000000000000000000000000000000000000000000000000000000000001fd", + "0x00000000000000000000000000000000000000000000000000000000000001fe", + "0x00000000000000000000000000000000000000000000000000000000000001ff", + "0x0000000000000000000000000000000000000000000000000000000000000200", + "0x0000000000000000000000000000000000000000000000000000000000000201", + "0x0000000000000000000000000000000000000000000000000000000000000202", + "0x0000000000000000000000000000000000000000000000000000000000000203", + "0x0000000000000000000000000000000000000000000000000000000000000204", + "0x0000000000000000000000000000000000000000000000000000000000000205", + "0x0000000000000000000000000000000000000000000000000000000000000206", + "0x0000000000000000000000000000000000000000000000000000000000000207", + "0x0000000000000000000000000000000000000000000000000000000000000208", + "0x0000000000000000000000000000000000000000000000000000000000000209", + "0x000000000000000000000000000000000000000000000000000000000000020a", + "0x000000000000000000000000000000000000000000000000000000000000020b", + "0x000000000000000000000000000000000000000000000000000000000000020c", + "0x000000000000000000000000000000000000000000000000000000000000020d", + "0x000000000000000000000000000000000000000000000000000000000000020e", + "0x000000000000000000000000000000000000000000000000000000000000020f", + "0x0000000000000000000000000000000000000000000000000000000000000210", + "0x0000000000000000000000000000000000000000000000000000000000000211", + "0x0000000000000000000000000000000000000000000000000000000000000212", + "0x0000000000000000000000000000000000000000000000000000000000000213", + "0x0000000000000000000000000000000000000000000000000000000000000214", + "0x0000000000000000000000000000000000000000000000000000000000000215", + "0x0000000000000000000000000000000000000000000000000000000000000216", + "0x0000000000000000000000000000000000000000000000000000000000000217" ] - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" +[inputs.previous_rollup_data.vk_data] +leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000c" +sibling_path = [ + "0x1df41e8c25a259860ac0f835219035a2f141f49d1c7828b887baea157a76cba1", + "0x0347efdf28221164a0a84418ff9c70e46ae346d7d6c07dfcb215e1c22a40e7fc", + "0x1531e245be9fc39e0bdfbe149a6089f8615b86fbace408368197180438730202", + "0x09ecb7bbeef3ed164ac9bdefeaa1551414a28986e1d25698356c3696b31b2b4a", + "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", + "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ + [inputs.previous_rollup_data.vk_data.vk] + key = [ + "0x0000000000000000000000000000000000000000000000000000000000200000", + "0x00000000000000000000000000000000000000000000000000000000000000ec", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x00000000000000000000000000000000000000000000000000000000000000d2", + "0x00000000000000000000000000000000000000000000000000000000000000e2", + "0x00000000000000000000000000000054f3469d496a6b1bec8d788c347eca52fa", + "0x0000000000000000000000000000000000020761911a8c58cb8feaa1241faeac", + "0x0000000000000000000000000000005afd80bf738a8f97fc219bfdc351cd13a6", + "0x0000000000000000000000000000000000281b7de0939501898ecd6495d51014", + "0x00000000000000000000000000000099b28ea7959f3b862f7448891630ec4c4b", + "0x000000000000000000000000000000000026e0098a650f3b4fe4bc4fa069108a", + "0x0000000000000000000000000000004565b0cbf5978f6c99921dd4289b5ea8e7", + "0x000000000000000000000000000000000021beff593847f2e46f5b3b069fdbe1", + "0x000000000000000000000000000000a35e8a309acba23de9fee7633ad62e62b5", + "0x00000000000000000000000000000000000fdb6886dca4c598330a061ca1d9ab", + "0x00000000000000000000000000000085bdac36582fb4661e35a1d80e2b6d815f", + "0x00000000000000000000000000000000001f9a1162518911f0c6554f55aa3622", + "0x000000000000000000000000000000485ee0844716c704160da4234d39bf400d", + "0x000000000000000000000000000000000023ba2e2f15f4fd1101eabcc24168fd", + "0x00000000000000000000000000000094560b972678fad71b3ca4c0be68619930", + "0x00000000000000000000000000000000001184c0723f2d906b315217784e9c5c", + "0x0000000000000000000000000000009a27a5660c3f718d77fe005d040db8bbbf", + "0x00000000000000000000000000000000000ff960aa3379ccd07f9e19dd7396ff", + "0x0000000000000000000000000000006c1e87f689a08a9fe68d2d1d9679dc568f", + "0x0000000000000000000000000000000000075acf3550b4bf960fa71d75a4e510", + "0x0000000000000000000000000000008a2782ce5a78d176d45402a8d67ff3ffb5", + "0x0000000000000000000000000000000000273bb85626c7d7166bf6d881e1a784", + "0x000000000000000000000000000000b1d72eab890605280c77480d663e3f9637", + "0x00000000000000000000000000000000002afb2e81c2dcd2ed18433a567c71e4", + "0x0000000000000000000000000000003e7100d8059587b81c8a148365817bfe3e", + "0x000000000000000000000000000000000009c6f7e91e0f6d9220e3d07f1922b7", + "0x000000000000000000000000000000b0b1977e0e4f6d65ed1a74877485c38fad", + "0x0000000000000000000000000000000000103f860e4dc32eb07f931e87b02918", + "0x000000000000000000000000000000adbfc7637f81cdc876390f1ac715caed2e", + "0x000000000000000000000000000000000024ec16bf9095d40cc98103f1dfb0b1", + "0x000000000000000000000000000000e0166040aeda408e97c2c92bb690f6c0fd", + "0x00000000000000000000000000000000001361cef3acaeeb58ee6ae77a199a50", + "0x000000000000000000000000000000b52a1ae28df6bac5c3fbe44f2947220959", + "0x00000000000000000000000000000000001ebc77e53465f978b5045ff4992d6c", + "0x00000000000000000000000000000010bba967897139224f3787756d54ccb11a", + "0x00000000000000000000000000000000002711369ec9b9f7d3b82a443c7e33f2", + "0x000000000000000000000000000000b3452c21ab50d2fb1ac356472e66ebe0b9", + "0x00000000000000000000000000000000002da46d7cf8e384966ec509148c0735", + "0x000000000000000000000000000000bee04e86997a32206c92a643e456f770e8", + "0x000000000000000000000000000000000016348d8de86e28aef00310fc11a9e8", + "0x000000000000000000000000000000873398cbb07db1f690d525d0ec7e63572e", + "0x0000000000000000000000000000000000242a60ec2bd3e80762205a451e822c", + "0x000000000000000000000000000000f9f7a81cda44f267f8f1295f2663424354", + "0x0000000000000000000000000000000000046c8f94d51dda0578bb8dd2f60cd5", + "0x0000000000000000000000000000001709adb0388d9a866eab7d4d9fe9895580", + "0x00000000000000000000000000000000002be8ecb044d7814f99a312cf151401", + "0x0000000000000000000000000000009d030e48f47b14107d1d29ec4168770bc8", + "0x000000000000000000000000000000000027f1262796abc5bf3a744ec8b9ae10", + "0x00000000000000000000000000000009845b59dfec025e244d8faba7db3a6322", + "0x000000000000000000000000000000000012cc51c7522a2a8bcc5a640529d358", + "0x0000000000000000000000000000003d70bab0e7242424bd4cfd42d06530263a", + "0x00000000000000000000000000000000001d8f1ec0e1d501df763d82ea2bcaa4", + "0x0000000000000000000000000000003023e9b764af07712ea4880482ca528cfa", + "0x000000000000000000000000000000000005a5ed94d979fa9221673136c32811", + "0x0000000000000000000000000000005626dbf08a4949eb1a1968e2b15c1fc50f", + "0x000000000000000000000000000000000009c18baee794b0171243f3fbaec580", + "0x00000000000000000000000000000074119e46360a8606f3a65d000bf9db90e0", + "0x000000000000000000000000000000000028d2c89f1ef003efc402f869436628", + "0x000000000000000000000000000000eea0ae54c51b234841cd231784b732200c", + "0x00000000000000000000000000000000000d885bc79ffd77a2b842b4629ff6f2", + "0x000000000000000000000000000000e6003a71c0fc1c38e9b62c5eda8c7df301", + "0x0000000000000000000000000000000000096046ccf6d80e9b7b75e451a62d4a", + "0x0000000000000000000000000000008570ad206d4663329d43d7e61e0dbf41f8", + "0x000000000000000000000000000000000030580dea03329167c57bbb3609de7b", + "0x00000000000000000000000000000045bb0089892fe1ddf8615914d10369313d", + "0x000000000000000000000000000000000007b63db000eecade33409b72b455fa", + "0x0000000000000000000000000000000ce54e72bc6e219c4feea1f825da0db741", + "0x000000000000000000000000000000000011230c45c798121900a3b84b4c6315", + "0x000000000000000000000000000000f8a4f7fd3a3d835ae071a7bd5baa8021fd", + "0x0000000000000000000000000000000000265793426b80be3ff40947dc53c5dc", + "0x0000000000000000000000000000004fbea127accbbe885149a7787d4188d0f9", + "0x00000000000000000000000000000000001189e69a29667340c32ffd2271b5c9", + "0x000000000000000000000000000000a6f0f449f5ad09a6f54b65fe6cff8ca033", + "0x0000000000000000000000000000000000115b172418d3764d4d5b005caad05e", + "0x0000000000000000000000000000007e1625fd849ee341ba5d03d13207353533", + "0x00000000000000000000000000000000001aafdb8497a0c855deed5aa1a83c2b", + "0x0000000000000000000000000000008684250334693ac07e9ded7d6ae269292e", + "0x000000000000000000000000000000000005524ff6e8c5b3837efd3a80536709", + "0x000000000000000000000000000000316cfd2a7d8c07aec3e27ce2650cf1c8ef", + "0x00000000000000000000000000000000000959438876bea619fd823bb1266017", + "0x000000000000000000000000000000b17c393c4f7efa829e7a6f4e31d90954aa", + "0x00000000000000000000000000000000001d2e9654fa02aa313700610a11e11c", + "0x000000000000000000000000000000abae37af7eff1d99b04739f9e1c09452c3", + "0x00000000000000000000000000000000001be83c523f64b9cc53a96cc023edc6", + "0x000000000000000000000000000000cb36333bf250fecd0176958ad718a99da7", + "0x00000000000000000000000000000000002d489b73d34d163277aaf79683a0e6", + "0x0000000000000000000000000000001eac0588b677c64659495396242fbe79fa", + "0x000000000000000000000000000000000014920ac364db003504262a141987aa", + "0x000000000000000000000000000000822a280a25dcac29cf9db85f5f05c1e72c", + "0x00000000000000000000000000000000000338f417686b46d8d01b57455d2203", + "0x000000000000000000000000000000039a818ba180ed38edb514079e004bd07a", + "0x00000000000000000000000000000000002006d48e4eb1db61bb6c05bec5daca", + "0x000000000000000000000000000000928480d752f4cecfe2225b52b54efb3cb1", + "0x00000000000000000000000000000000000a883e07ef5cfc92ab83e337215d72", + "0x000000000000000000000000000000d9be571d72cf09ced6c316af27d204e99c", + "0x0000000000000000000000000000000000232f34c64548009e636cc48a6fdf47", + "0x000000000000000000000000000000e735c643e5863073e6c80e6d9cc0117017", + "0x00000000000000000000000000000000002783b00e79fce98163e925f2abd10f", + "0x0000000000000000000000000000006abc5b37edea5e9570c33e8d7a8180de7e", + "0x00000000000000000000000000000000000adc2fbebeadf9e9b9d06bff7cc396", + "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ + "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + "0x0000000000000000000000000000000d4fd44de4b6171e8cc3ed012b662360af", + "0x00000000000000000000000000000000002c33907e62e893304da5fbb0310578", + "0x000000000000000000000000000000ee839108dbbea3283d33d933f2a5dd5840", + "0x00000000000000000000000000000000001849739626a7c7d9ad4b1d6baf25db" ] + hash = "0x1bc5b5533809ebb4a3d043c7a2e8eeaab5e525ae11203d1d8f5e61950431848f" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ + [[inputs.previous_rollup_data]] +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs] +out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" +proposed_block_header_hashes = [ + "0x0038d8443d8ac776ea49cd717ad1d9077d6e08cb246fcc9bee4f11821cbc36c0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] - - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000" ] +vk_tree_root = "0x16e00802cd510c69cab77438b8f92c7fc6c1f77e983b2302bcb3e85e15c95eac" +protocol_contract_tree_root = "0x19ba79743ba96572bcb08efcff26637d21a4342b6eb58870935b0cbbd14d24cf" +prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.previous_archive] + root = "0x1e28b0ab2a530f0bb5bb4a48cf3fa170fd9ef40859f5b0b1a53f646cf0ca9972" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.new_archive] + root = "0x24d90e562c7087997042023fa87d0c7d058659cd40fbe89e8682ff712d6b645f" + next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000c" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables] + chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000b" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000044" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db92b" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.coinbase] + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.fee_recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.start_global_variables.gas_fees] + fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000898" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables] + chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" + version = "0x000000000000000000000000000000000000000000000000000000002d66bdd9" + block_number = "0x000000000000000000000000000000000000000000000000000000000000000b" + slot_number = "0x0000000000000000000000000000000000000000000000000000000000000044" + timestamp = "0x00000000000000000000000000000000000000000000000000000000683db92b" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.coinbase] + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.fee_recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.end_global_variables.gas_fees] + fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000898" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x00000000000000000000000000000000000000000000000000000000078d6d08" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000001e12c3c9389ae0c796c6844a5510c60236b561e1" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" + + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] + [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees]] + value = "0x0000000000000000000000000000000000000000000000000000000000000000" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" -] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.fees.recipient] + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator] +blob_commitments_hash_acc = "0x0077ffa75686fd6e16ecf00bc9c830d043b5df95430082f9a85d0cbe4f41491f" +z_acc = "0x157a527766aedb27f25f36a043c4df4c1dbc872bd0f178a1cef55b82af9aaa84" +gamma_acc = "0x22f3b828a88a9bb3287c04b09ffe857d593ebe784bd64156ae1293cc81fde548" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x459dfea179f5bea53c89e5f2ebded3", + "0xdc3c5e828495bc234cccdb50189aed", + "0x363e" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc] + is_infinity = false - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.x] + limbs = [ + "0x3260e15e30636e1c2b831b96fe922e", + "0x1fdeb482031c832479dd2b603dfacb", + "0xb2f842916c4d369d08be4db8af699c", + "0x04f08f" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.c_acc.y] + limbs = [ + "0x0b16b1c2f1b7655a72096c8f6a2187", + "0x91b1671ddc7e51116cea04fe01abd6", + "0x5ef209817c57ad41f0aa1052cbab04", + "0x0eaa19" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x46cc5f7c08f5683e4124b1095da9d6", + "0x00ad7e885c5b0c0e2a0e3bcddfbef3", + "0x394e" ] - [[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs]] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator] +blob_commitments_hash_acc = "0x0084472fec1b81e25c15393044423f29735b54005a554a7de14bfb08c2d469fc" +z_acc = "0x0cc935911cd6e85cd04a92e9140e34d4c8a576c5f9f85959dd30706c7021f4ac" +gamma_acc = "0x174e7d512e85d5f41452f6729540633a8d52068598fe0841b1176aa0cecf3476" - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" -] - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0x3b04fdb9c7401fb9121503994972dd", + "0x61c18838303cec1ffbad67914c42b5", + "0x0ed4" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc] + is_infinity = false - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] - limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.x] + limbs = [ + "0xe06fc3e2fc3219560629716e9fad8e", + "0xfb26c260e5342a5d447b448c31ba51", + "0x3f21db8391ba463541883c9253f678", + "0x14e75a" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.c_acc.y] + limbs = [ + "0xb5ed949e9fc8763b968a33b39e5fd7", + "0x30dd0bb8df6174e53058baceaf4401", + "0x753084d23995515b73f6c138fc9729", + "0x180ca3" ] -[[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner]] -z = "0x0000000000000000000000000000000000000000000000000000000000000000" - - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.y] + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x000000000000000000000000000000", - "0x000000000000000000000000000000", - "0x0000" + "0x0a43537a7f4ddcabadd33587f65734", + "0x4f057993bd0a457af7a22d8ff5fbcf", + "0x5239" ] - [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.inner.kzg_commitment] - inner = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000" +[inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges] +z = "0x0cc935911cd6e85cd04a92e9140e34d4c8a576c5f9f85959dd30706c7021f4ac" + + [inputs.previous_rollup_data.block_root_or_block_merge_public_inputs.blob_public_inputs.final_blob_challenges.gamma] + limbs = [ + "0x8a8177d338419dc69e0c4443523d53", + "0xa5a4866d897a9d97c855f70a6887af", + "0x1e98" ] [inputs.previous_rollup_data.proof] @@ -6689,128 +2157,128 @@ fields = [ [inputs.previous_rollup_data.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000a" sibling_path = [ - "0x1094cb60db3ed83699dfc4e6672f08356854df687d5940f0bbc8ea15163c30fe", - "0x2ae397986f88002051cc9874e440091ad964c38dc60bad6344814b3d8470c89d", - "0x16f88c3ecc5351615ec0637c792411462bef0c4d1f9cdaeded6afe9b2ec7487c", - "0x2423b4c1180714c94b2f31100021a5393dafaad3951ed4862ecb6ca8f2a5f798", + "0x0875a4e4f269184b2ae54b26a914d419a529f73ed8b652665533e243805898b6", + "0x1e9915cf8f687c54fa6552aa96577450c5d22fd5ee294fa7eb347f75a41dbd7c", + "0x01927c72152cae3e36ff938a3aa83d84f7714194e2d7be1cec10173311bca5ab", + "0x09ecb7bbeef3ed164ac9bdefeaa1551414a28986e1d25698356c3696b31b2b4a", "0x284648238edcf362d74c8a007e5fc8a4fc20d36b07b2ee02ab2ff3662bed0ec2", "0x0b37739682b911e91d9ccf8d84210dcf05d84e233ba11fd19cb9ebeaa715d8f9" ] [inputs.previous_rollup_data.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000400000", - "0x0000000000000000000000000000000000000000000000000000000000000424", + "0x0000000000000000000000000000000000000000000000000000000000800000", + "0x00000000000000000000000000000000000000000000000000000000000000ec", "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x000000000000000000000000000000000000000000000000000000000000040a", - "0x000000000000000000000000000000000000000000000000000000000000041a", - "0x000000000000000000000000000000ca5b5cd8196be21678ace18bf6e21abbe2", - "0x00000000000000000000000000000000000f61ed515eee4864f37b740bd1db0f", - "0x00000000000000000000000000000018bd5bf5fbbd4b5aa02678c67d91df3b87", - "0x000000000000000000000000000000000011689c40863e8d5e42249cde4ee2b0", - "0x0000000000000000000000000000004ce3143e7a3f1dc480a9b96bf58b2f10ae", - "0x0000000000000000000000000000000000189d0e9f71f171b5b0185b13be00a8", - "0x0000000000000000000000000000000a2bc80db983adea1051a18ea330ec6daf", - "0x00000000000000000000000000000000001d6e121e27dce62b78169adcf8b01c", - "0x000000000000000000000000000000e1d95ef75a58dd45f6ff2f20593c71bfa5", - "0x000000000000000000000000000000000005c9168a15df8b45d962c14e27088c", - "0x0000000000000000000000000000003622cf2c103f21b50e434202e0bef7659a", - "0x00000000000000000000000000000000000795b5d91f40c0a926cf8f9ac7b51b", - "0x0000000000000000000000000000007a4adcd304120a266c16fa6eb7f2235fb0", - "0x000000000000000000000000000000000026bacbe0669c30a6f9bf845ccb3647", - "0x000000000000000000000000000000161b5cd0c46f96db54f5d041f013e188b5", - "0x00000000000000000000000000000000000be9cbcb0b0b4a295567000eb9e7fa", - "0x0000000000000000000000000000008a200bd775122b25ddda3f52bdb2971577", - "0x0000000000000000000000000000000000080c83b879b117c8070bf03103ead3", - "0x0000000000000000000000000000007d5d75d0e76497e3edd69c408ec709d5cb", - "0x00000000000000000000000000000000001b1807f3bfb4729f59d056cad70310", - "0x000000000000000000000000000000f23369ec8bf7b2f65b70ffe7303c13ef50", - "0x0000000000000000000000000000000000019182bd85971c13c0288a055d7765", - "0x000000000000000000000000000000641599ad193f1c54ff9b9764e08cbfd62f", - "0x000000000000000000000000000000000025aa12dfd6e2acbe02ced46b85d1a6", - "0x000000000000000000000000000000e6bee501455201368d829cd1ce79087f61", - "0x0000000000000000000000000000000000200a6916f2e94e0de862bccb7c66e9", - "0x000000000000000000000000000000ce79b607a7f0f58208394dd5ae4ed88772", - "0x0000000000000000000000000000000000289dbe505abab4d4613cf578f4ee04", - "0x000000000000000000000000000000b966fb4a6b5bd713795c371f463f506b38", - "0x00000000000000000000000000000000000b55c4eb54114031b677f74ea2715d", - "0x0000000000000000000000000000009af83e90351facea76133c77b1e641a2bf", - "0x00000000000000000000000000000000000acd389747c4f88879f6629928dc8f", - "0x000000000000000000000000000000ba10958c02f3f2301e2e99093f9257e889", - "0x00000000000000000000000000000000002524367f1e45de5b30480eca8d8047", - "0x0000000000000000000000000000006db336a752753afac1e6484580769a1b34", - "0x00000000000000000000000000000000000ec8329d868bb4927ecba504130a64", - "0x0000000000000000000000000000008723226aa57311ec9bcc7bdd5a532fa8b9", - "0x00000000000000000000000000000000000271e28fc4cbf8d6f90623432c9b1e", - "0x0000000000000000000000000000005973c923d388b4eb1e57654529e6924811", - "0x000000000000000000000000000000000012dad0b4f3ca34ed0f688641724d08", - "0x00000000000000000000000000000032c5b3376193647a05604d13f0421496b5", - "0x00000000000000000000000000000000002df0ba32039ffe90c6622cefa5df37", - "0x000000000000000000000000000000d65e0ce9c5b7797283e62920240e97e830", - "0x00000000000000000000000000000000002e491d13f3a4816d5b127a658ed9fd", - "0x000000000000000000000000000000c008b883bb9e5d0b4985e0a6cf61833582", - "0x00000000000000000000000000000000000e8f32a1d407bab69727049e1fa6a7", - "0x000000000000000000000000000000772b62a91267092e90db1688e6684a06d5", - "0x00000000000000000000000000000000002d4a0718fe401c5f04ccf4c844d41d", - "0x00000000000000000000000000000055fa282c37bea2dd922179c2f9dd6a2d63", - "0x00000000000000000000000000000000001cd26141aba76d119f8d6e5e1561e9", - "0x000000000000000000000000000000d31382e46864f02fb86d94a4ea99fd72d0", - "0x000000000000000000000000000000000000a7b911fcec977b5c666c7749425a", - "0x000000000000000000000000000000742c23d47846501fc90db1602102b88ef2", - "0x0000000000000000000000000000000000091e6e3bb3dd70592228af4e4252ef", - "0x0000000000000000000000000000008400376f1f7c175a1c031285da325eada4", - "0x00000000000000000000000000000000000997b690fefb216be02e61f386f6cd", - "0x000000000000000000000000000000409317748bcb1f1d797499fc1d3b29f525", - "0x0000000000000000000000000000000000230e8d7092f8f51daa353f383935fe", - "0x000000000000000000000000000000562875f84edd613634e5a1d89da7f4b314", - "0x000000000000000000000000000000000003e0a8278c7e5b7a9a8c3e9df20fe6", - "0x000000000000000000000000000000dd15ad163c2ca239b79f068261c9f9eab9", - "0x000000000000000000000000000000000020b1116a52aad53ca20b41fe94305f", - "0x000000000000000000000000000000a9b4b33f1b2d1d59770cde19bc27c029ea", - "0x00000000000000000000000000000000000ebefe18afcf7fa6984f4645eadd9b", - "0x000000000000000000000000000000d44fd84b5fdd2a4b48fe327a3b950ff3e7", - "0x00000000000000000000000000000000002402dd68460a6b0aea77116323d75d", - "0x000000000000000000000000000000b005290152742db6f5ccf3c8ac2daf6bc9", - "0x000000000000000000000000000000000008e6f1d89e575a869c9af76ac5a636", - "0x0000000000000000000000000000004ec29e1db15f73004b835a908abe462d12", - "0x0000000000000000000000000000000000035acb743e44a9539d3e2db57bda24", - "0x00000000000000000000000000000072de0695754227413bdf6fbbc876e4ad4d", - "0x000000000000000000000000000000000011cb9a4cc0b85f780f6af9e9b49673", - "0x000000000000000000000000000000ceb7e5d39f6f70be87e621bd47807d93f5", - "0x000000000000000000000000000000000018da0b93b94a512a0855d901bc08a6", - "0x0000000000000000000000000000007d584a993b33aaa6f9c80125608fe3b2f0", - "0x000000000000000000000000000000000025f4ae6d7b53d8f261dd7968234e9f", - "0x000000000000000000000000000000d305a71c766c61b7eea7f1fb4bdb132eb0", - "0x0000000000000000000000000000000000033e6ff38a9e813a81b7abbe3b0bcd", - "0x0000000000000000000000000000000cf2bd5b77c2b43d587c00badf5cb5ff47", - "0x00000000000000000000000000000000002e01fd8eb5e2d30d4c6ab714338948", - "0x000000000000000000000000000000ca7af69bcc072c73df53c1cfab1228bbd5", - "0x0000000000000000000000000000000000189f9643b6d5172c7c184880d19c14", - "0x000000000000000000000000000000d1f1f94023fcee85344f8fec96d9e3dd64", - "0x000000000000000000000000000000000023e895d66874e7bc8609ae5fcb00b3", - "0x000000000000000000000000000000751a63b41218c33ae5d641c130f060ce34", - "0x000000000000000000000000000000000018a3d787ef1ec164dc62244409c559", - "0x000000000000000000000000000000a0340f3ea930787df40d68fdd647a9f7d0", - "0x0000000000000000000000000000000000230b997570d1f85ae65a57bb57a7d0", - "0x0000000000000000000000000000000bc60b4ea3525f05223875c1af3ed2b02d", - "0x0000000000000000000000000000000000236868e5e41937ed2cdc41de55f10b", - "0x000000000000000000000000000000249541e175626917b9aaedb0e2915d4177", - "0x00000000000000000000000000000000002fb85434d64a786207f332f20277da", - "0x000000000000000000000000000000aec46500b248445db79f52d6ed7b30158b", - "0x000000000000000000000000000000000002321694c1a17469bdd178eafdfa6e", - "0x00000000000000000000000000000023fd9365c6a81758f239e73dee60348b69", - "0x000000000000000000000000000000000014cbd4ad9a23e8adbaa2eb703f2801", - "0x000000000000000000000000000000a1dd8f964e4f1c6a0c2c1407da434a5d2f", - "0x000000000000000000000000000000000018ee0334d49c017b30c8e7656c679f", - "0x000000000000000000000000000000f1571f393c77481ab166deb9cc943c32f7", - "0x00000000000000000000000000000000002f977fa69325d670afb3b6523af5c6", + "0x00000000000000000000000000000000000000000000000000000000000000d2", + "0x00000000000000000000000000000000000000000000000000000000000000e2", + "0x000000000000000000000000000000fb69008e8413ee03462d57e45a4554de71", + "0x00000000000000000000000000000000002b3b8008ed26e8d60ae6e7f5d59ecb", + "0x000000000000000000000000000000e43af5d1b06fc147e84f7dafcd5d4c7d2f", + "0x000000000000000000000000000000000011fe8fcf9ddc1e066b222a5f36636f", + "0x0000000000000000000000000000007d8b97a2027ec5278f0e0fa9164b9f1de3", + "0x0000000000000000000000000000000000185b999373bb3e58840d34423d0b7b", + "0x00000000000000000000000000000045370beb991c5d71b13142fec874d81c56", + "0x00000000000000000000000000000000001906044e53c5bee64dd79e207136de", + "0x0000000000000000000000000000003b3e9a9a127d764fed2991653b6d264d11", + "0x000000000000000000000000000000000006e31d7dae6e9de735e63d18cbea45", + "0x000000000000000000000000000000a7894eb313fb890d4754b907a0c59697cd", + "0x0000000000000000000000000000000000059093530120da5b4ca5470894e5c7", + "0x000000000000000000000000000000d0657ba6286dbe7487b99c736cae8376ae", + "0x00000000000000000000000000000000000b45779c71e5093514b6fd2b3ee708", + "0x00000000000000000000000000000019960279f1c475e71ce87edf576a3d44cb", + "0x00000000000000000000000000000000001f7302f40a5e3535d1bda1ba3b8284", + "0x0000000000000000000000000000004051b8f813488d03643c5410bd2852b2d3", + "0x000000000000000000000000000000000019e47a48d8ef43770a5c5a44360438", + "0x0000000000000000000000000000009ee10faef63738490b33d6afe65a830d4e", + "0x00000000000000000000000000000000000f1837529e7f64ace7c470f472c14f", + "0x00000000000000000000000000000081679a247abf5bab8fc3b230217cd01e19", + "0x0000000000000000000000000000000000230b4cf50bbbd9c8b041acdece74bd", + "0x000000000000000000000000000000e30ba9684f722b8fb1b3a9912df6987d8f", + "0x00000000000000000000000000000000000a57cff24b057f7609e72272040da1", + "0x0000000000000000000000000000009b003b48720929f4a3dc740006df03a9fd", + "0x0000000000000000000000000000000000094452f469870d1d083e6035cac4f4", + "0x0000000000000000000000000000001fc5525b6dc3a1de76bf5963fcd944f856", + "0x00000000000000000000000000000000002e0cd9de1f897c332d94a00a65bb80", + "0x0000000000000000000000000000001ed9e44bc4f885ff622a3109e4413d70c4", + "0x00000000000000000000000000000000002f8ade458a9daf440c1a6f2e233a8a", + "0x00000000000000000000000000000051d7e11cb841df7bff68cadeee73ccc852", + "0x000000000000000000000000000000000007e02ff848a47b068d7ab4feae0d29", + "0x00000000000000000000000000000016532ed59e427405553c3bcc50db8c65ed", + "0x0000000000000000000000000000000000259557556119e757d7595471538e1e", + "0x0000000000000000000000000000006da6aaa0e05913a04c4b53169e428f894d", + "0x000000000000000000000000000000000025961dc1c745f5a3db24f725f25ceb", + "0x0000000000000000000000000000009b033374643424896558f97d6da87a46dc", + "0x00000000000000000000000000000000000c0b020591ae84c68e9004a8853024", + "0x00000000000000000000000000000004d1f190d0567c34129a8158840610a15c", + "0x00000000000000000000000000000000002825b6a75eb6edbe15eaa855b02be9", + "0x0000000000000000000000000000000ff32e9e22c6268b8181f9321795f494f5", + "0x0000000000000000000000000000000000292e3bc47051cb0917beb347e1b4d8", + "0x0000000000000000000000000000001754528117a8f5eccb616df797e5acd836", + "0x000000000000000000000000000000000026829e81a323f00421b3bbad4c8b41", + "0x000000000000000000000000000000e771c864cd1bad298ef87b4d13b22bcd82", + "0x00000000000000000000000000000000001e36d97a309ac2b02ecae1ec9a336e", + "0x000000000000000000000000000000e6a3bac48531075b128f3cfc35591df52f", + "0x00000000000000000000000000000000001bca328cf296a391ae4de8d0e591ba", + "0x000000000000000000000000000000f6dfa170f51b2e17572ce96c55142cdb48", + "0x00000000000000000000000000000000000851ea6497c9a6265533c5e4ba57cf", + "0x0000000000000000000000000000008ce2759fc3690fab9accdff7dedbcaec2e", + "0x00000000000000000000000000000000002d19642b49108b54485968bb915755", + "0x0000000000000000000000000000000376b237df56a223d02b589191af8db57c", + "0x00000000000000000000000000000000001b2ee0aa2099bc0a668b261478d734", + "0x0000000000000000000000000000003df27e35275da444b1e8e79a7abbd21aea", + "0x000000000000000000000000000000000011a788ee259e039b62332bb3ba12f0", + "0x0000000000000000000000000000004ddd2999b9a9cd3adcc58b26024f0e586e", + "0x00000000000000000000000000000000002922585601fbcb4c7f0860580c4e2c", + "0x000000000000000000000000000000693be3356ff82d8827934ddf8ddfb415fd", + "0x00000000000000000000000000000000000843b12f31ed91c92a45765ceb8d7d", + "0x0000000000000000000000000000005d56a2e28d3199f6db3f0974ebd1be8c1b", + "0x00000000000000000000000000000000002dca99ad136445771dbdc3aa002fbc", + "0x000000000000000000000000000000499f32df9409ef8c6beef72c11278fdf23", + "0x0000000000000000000000000000000000025c3cedeca7594b3312c68f9201a9", + "0x000000000000000000000000000000f733310e2f85df63ed63649ca8f2ad5eef", + "0x00000000000000000000000000000000001d27d0d266717bf88a7e4be0abd4a0", + "0x0000000000000000000000000000004326a2ee2ccb689893dcffd3b0383c3bc6", + "0x00000000000000000000000000000000002e6b60e77b31f93d6b110b45decb74", + "0x00000000000000000000000000000094024fb87c5ce6c89df62de24bfbafd8f2", + "0x00000000000000000000000000000000002ad93d3cdd5776c6afc96e3bbe7697", + "0x000000000000000000000000000000f1f526d325d6351a0db62385b1168da358", + "0x0000000000000000000000000000000000291a27f8a1ac888f5dbc626ae54319", + "0x000000000000000000000000000000557225c67e779a312bc031be89c3446ebb", + "0x000000000000000000000000000000000016abfaf7b8be9cd6966f0577c84a4a", + "0x0000000000000000000000000000000287e5430cfe9186b3d6db844944758629", + "0x00000000000000000000000000000000001c0ca56c9e298b5b49ab100e56b997", + "0x0000000000000000000000000000006c3a0e3611c8758e7a457d986a0b05b830", + "0x00000000000000000000000000000000000fa2bba2b581e8ef7f5859b8a49ed0", + "0x0000000000000000000000000000002502c0639280dc4932777f19d6aa62c53a", + "0x000000000000000000000000000000000026461592ab3b2f084a07558506aaf4", + "0x000000000000000000000000000000600c7bff6b993c352579fbfb4fecfdea96", + "0x000000000000000000000000000000000027959d7ddd9ab88e68d7fce37263e0", + "0x0000000000000000000000000000005e9b94342522d777dd1210e9a2175080fd", + "0x00000000000000000000000000000000002ffa66b96a784b42e9aa75ad694ca1", + "0x0000000000000000000000000000002efaca4d96d128cd16f053120bc300398c", + "0x000000000000000000000000000000000018b4165f92668f57edfc78be6db828", + "0x000000000000000000000000000000a312930706e419ed9153f698f593f95349", + "0x00000000000000000000000000000000002b48b8992ab278189e5e11a66d35ed", + "0x00000000000000000000000000000074807de886fd1f5dd20e599e83e68390c0", + "0x00000000000000000000000000000000001f6e15f6020331610636978ea44d6a", + "0x0000000000000000000000000000002adf31f83a70ac2563b07991988a962565", + "0x000000000000000000000000000000000019b3eb6c9110dc9749e778bae6148b", + "0x0000000000000000000000000000004944f3d838efd7aebe78def1c3e6d6db73", + "0x00000000000000000000000000000000001d0bbf8e0047e999b4d6fbb2a7db69", + "0x000000000000000000000000000000034b46ea26c1ff481588aa7a1d4cac1c41", + "0x0000000000000000000000000000000000160c646b20c81008eae87ef9572e9c", + "0x000000000000000000000000000000c99e19d3d7a5219ef57b6c2249dd88da8c", + "0x000000000000000000000000000000000022ed6806d8b1ee8752a4392ead3e23", + "0x000000000000000000000000000000d92c32591db729a56e147b3f85cff36c4f", + "0x00000000000000000000000000000000002337bd80484bec634ae68e617c5fdd", "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000002", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000005236fa8ff132f028ce8c6d90af92bb0920", - "0x0000000000000000000000000000000000157e930e43a7f58b4b9eba8d572f02", - "0x000000000000000000000000000000bac5296ced6a03e6e1c5d0f93b088c6e1e", - "0x000000000000000000000000000000000012ea2ef5078f64b57312aaa9298900" + "0x00000000000000000000000000000007893584bdb13a5ff6da88d46466464919", + "0x00000000000000000000000000000000000dbbeac96b08cd059911750dfcd49a", + "0x000000000000000000000000000000f76b36a325c2cb56c17244a35967ae3685", + "0x000000000000000000000000000000000028807e041559ba384e4ccd4cf81e77" ] - hash = "0x2d786dfd9d238706c365ed55568e4ad97c9181c8ab8954826bb255e59505ab48" + hash = "0x11e1558e801cd19ddde9b764222e036bfaf9689c223bec8522e2434a4816cb09" diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 343069a144e7..cfe7fa4116ca 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -227,10 +227,10 @@ pub global GLOBAL_VARIABLES_LENGTH: u32 = 7 + GAS_FEES_LENGTH; pub global APPEND_ONLY_TREE_SNAPSHOT_LENGTH: u32 = 2; pub global APPEND_ONLY_TREE_SNAPSHOT_LENGTH_BYTES: u32 = 36; pub global SPONGE_BLOB_LENGTH: u32 = 11; -pub global BLS12_FR_LIMBS: u32 = 3; // TODO(MW): get this from bignum -pub global BLS12_FQ_LIMBS: u32 = 4; // TODO(MW): get this from bignum -pub global BLS12_POINT: u32 = 2 * BLS12_FQ_LIMBS + 1; // TODO(MW): reduce num fields needed here but avoid breaking recursion -pub global BLS12_POINT_COMPRESSED_BYTES: u32 = 48; // TODO(MW): get this from bignum +pub global BLS12_FR_LIMBS: u32 = 3; // TODO(#14646): get this from bignum +pub global BLS12_FQ_LIMBS: u32 = 4; // TODO(#14646): get this from bignum +pub global BLS12_POINT: u32 = 2 * BLS12_FQ_LIMBS + 1; // TODO(#14646): reduce num fields needed here? +pub global BLS12_POINT_COMPRESSED_BYTES: u32 = 48; // TODO(#14646): get this from bignum pub global BLOB_ACCUMULATOR_PUBLIC_INPUTS: u32 = 3 /* v_acc, z_acc, and gamma_acc */ + 2 * BLS12_FR_LIMBS /* y_acc and gamma^i */ + BLS12_POINT /* c_acc */; @@ -242,7 +242,6 @@ pub global BLOCK_BLOB_PUBLIC_INPUTS: u32 = 2 * BLOB_ACCUMULATOR_PUBLIC_INPUTS /* + 1 /* z */ + BLS12_FR_LIMBS /* gamma */; pub global BLOB_PUBLIC_INPUTS: u32 = 6; -pub global BLOB_PUBLIC_INPUTS_BYTES: u32 = 112; // = commitment (48) + z (32) + y (32) pub global L1_TO_L2_MESSAGE_LENGTH: u32 = 6; pub global L2_TO_L1_MESSAGE_LENGTH: u32 = 3; pub global SCOPED_L2_TO_L1_MESSAGE_LENGTH: u32 = L2_TO_L1_MESSAGE_LENGTH + 1; diff --git a/yarn-project/blob-lib/src/blob.ts b/yarn-project/blob-lib/src/blob.ts index 5ce86db0f6e9..5643b5f2d491 100644 --- a/yarn-project/blob-lib/src/blob.ts +++ b/yarn-project/blob-lib/src/blob.ts @@ -301,6 +301,18 @@ export class Blob { return `0x${buf.toString('hex')}`; } + static getPrefixedEthBlobCommitments(blobs: Blob[]): `0x${string}` { + let buf = Buffer.alloc(0); + blobs.forEach(blob => { + buf = Buffer.concat([buf, blob.commitment]); + }); + // For multiple blobs, we prefix the number of blobs: + const lenBuf = Buffer.alloc(1); + lenBuf.writeUint8(blobs.length); + buf = Buffer.concat([lenBuf, buf]); + return `0x${buf.toString('hex')}`; + } + static getViemKzgInstance() { return { blobToKzgCommitment: cKzg.blobToKzgCommitment, diff --git a/yarn-project/blob-lib/src/blob_batching.ts b/yarn-project/blob-lib/src/blob_batching.ts index 89bd896559df..2370b1b92fbb 100644 --- a/yarn-project/blob-lib/src/blob_batching.ts +++ b/yarn-project/blob-lib/src/blob_batching.ts @@ -7,6 +7,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize'; import cKzg from 'c-kzg'; import { Blob, VERSIONED_HASH_VERSION_KZG } from './blob.js'; +import { BlobAccumulatorPublicInputs, FinalBlobAccumulatorPublicInputs } from './blob_batching_public_inputs.js'; const { computeKzgProof, verifyKzgProof } = cKzg; @@ -335,6 +336,30 @@ export class BatchedBlobAccumulator { return new BatchedBlob(this.blobCommitmentsHashAcc, this.zAcc, this.yAcc, this.cAcc, this.qAcc); } + /** + * Converts to a struct for the public inputs of our rollup circuits. + * @returns A BlobAccumulatorPublicInputs instance. + */ + toBlobAccumulatorPublicInputs() { + return new BlobAccumulatorPublicInputs( + this.blobCommitmentsHashAcc, + this.zAcc, + this.yAcc, + this.cAcc, + this.gammaAcc, + this.gammaPow, + ); + } + + /** + * Converts to a struct for the public inputs of our root rollup circuit. + * Warning: MUST be final accumulator state. + * @returns A FinalBlobAccumulatorPublicInputs instance. + */ + toFinalBlobAccumulatorPublicInputs() { + return new FinalBlobAccumulatorPublicInputs(this.blobCommitmentsHashAcc, this.zAcc, this.yAcc, this.cAcc); + } + isEmptyState() { return ( this.blobCommitmentsHashAcc.isZero() && diff --git a/yarn-project/blob-lib/src/blob_batching_public_inputs.test.ts b/yarn-project/blob-lib/src/blob_batching_public_inputs.test.ts new file mode 100644 index 000000000000..61e9bd8972e2 --- /dev/null +++ b/yarn-project/blob-lib/src/blob_batching_public_inputs.test.ts @@ -0,0 +1,94 @@ +import { BLOBS_PER_BLOCK, BLOB_ACCUMULATOR_PUBLIC_INPUTS } from '@aztec/constants'; +import { timesParallel } from '@aztec/foundation/collection'; +import { randomInt } from '@aztec/foundation/crypto'; +import { Fr } from '@aztec/foundation/fields'; + +import cKzg from 'c-kzg'; + +import { Blob } from './blob.js'; +import { BatchedBlob } from './blob_batching.js'; +import { + BlobAccumulatorPublicInputs, + BlockBlobPublicInputs, + FinalBlobAccumulatorPublicInputs, +} from './blob_batching_public_inputs.js'; +import { makeBatchedBlobAccumulator, makeBlockBlobPublicInputs } from './testing.js'; + +try { + cKzg.loadTrustedSetup(); +} catch (error: any) { + if (error.message.includes('trusted setup is already loaded')) { + // NB: The c-kzg lib has no way of checking whether the setup is loaded or not, + // and it throws an error if it's already loaded, even though nothing is wrong. + // This is a rudimentary way of ensuring we load the trusted setup if we need it. + } else { + throw new Error(error); + } +} + +describe('BlockBlobPublicInputs', () => { + let blobPI: BlockBlobPublicInputs; + + beforeAll(() => { + blobPI = makeBlockBlobPublicInputs(randomInt(1000)); + }); + + it('serializes to buffer and deserializes it back', () => { + const buffer = blobPI.toBuffer(); + const res = BlockBlobPublicInputs.fromBuffer(buffer); + expect(res).toEqual(blobPI); + }); + + it('converts correctly from Blob class', async () => { + const blobs = await timesParallel(BLOBS_PER_BLOCK, i => Blob.fromFields(Array(400).fill(new Fr(i + 1)))); + const startBlobAccumulator = makeBatchedBlobAccumulator(randomInt(1000)); + const converted = await BlockBlobPublicInputs.fromBlobs(startBlobAccumulator, blobs); + const expectedEndBlobAccumulator = await startBlobAccumulator.accumulateBlobs(blobs); + expect(converted.endBlobAccumulator).toEqual(expectedEndBlobAccumulator.toBlobAccumulatorPublicInputs()); + }); +}); + +describe('BlobAccumulatorPublicInputs', () => { + let blobPI: BlobAccumulatorPublicInputs; + + beforeAll(() => { + blobPI = makeBatchedBlobAccumulator(randomInt(1000)).toBlobAccumulatorPublicInputs(); + }); + + it('serializes to buffer and deserializes it back', () => { + const buffer = blobPI.toBuffer(); + const res = BlobAccumulatorPublicInputs.fromBuffer(buffer); + expect(res.equals(blobPI)).toBeTruthy(); + }); + + it('serializes to fields and deserializes it back', () => { + const fields = blobPI.toFields(); + expect(fields.length).toEqual(BLOB_ACCUMULATOR_PUBLIC_INPUTS); + const res = BlobAccumulatorPublicInputs.fromFields(fields); + expect(res.equals(blobPI)).toBeTruthy(); + }); +}); + +describe('FinalBlobAccumulatorPublicInputs', () => { + let blobPI: FinalBlobAccumulatorPublicInputs; + + beforeAll(() => { + blobPI = makeBatchedBlobAccumulator(randomInt(1000)).toFinalBlobAccumulatorPublicInputs(); + }); + + it('serializes to buffer and deserializes it back', () => { + const buffer = blobPI.toBuffer(); + const res = FinalBlobAccumulatorPublicInputs.fromBuffer(buffer); + expect(res).toEqual(blobPI); + }); + + it('converts correctly from BatchedBlob class', async () => { + const blobs = await timesParallel(BLOBS_PER_BLOCK, i => Blob.fromFields(Array(400).fill(new Fr(i + 1)))); + const batched = await BatchedBlob.batch(blobs); + const converted = FinalBlobAccumulatorPublicInputs.fromBatchedBlob(batched); + expect(converted.blobCommitmentsHash).toEqual(batched.blobCommitmentsHash); + expect(converted.z).toEqual(batched.z); + expect(converted.y).toEqual(batched.y); + expect(converted.c).toEqual(batched.commitment); + }); +}); diff --git a/yarn-project/blob-lib/src/blob_batching_public_inputs.ts b/yarn-project/blob-lib/src/blob_batching_public_inputs.ts new file mode 100644 index 000000000000..4998af4d3a31 --- /dev/null +++ b/yarn-project/blob-lib/src/blob_batching_public_inputs.ts @@ -0,0 +1,241 @@ +import { BLS12_FQ_LIMBS, BLS12_FR_LIMBS } from '@aztec/constants'; +import { BLS12Fq, BLS12Fr, BLS12Point, Fr } from '@aztec/foundation/fields'; +import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize'; + +import { inspect } from 'util'; + +import { Blob } from './blob.js'; +import { BatchedBlob, BatchedBlobAccumulator, FinalBlobBatchingChallenges } from './blob_batching.js'; + +/** + * See nr BlobAccumulatorPublicInputs and ts BatchedBlobAccumulator for documentation. + */ +export class BlobAccumulatorPublicInputs { + constructor( + public blobCommitmentsHashAcc: Fr, + public zAcc: Fr, + public yAcc: BLS12Fr, + public cAcc: BLS12Point, + public gammaAcc: Fr, + public gammaPowAcc: BLS12Fr, + ) {} + + static empty(): BlobAccumulatorPublicInputs { + return new BlobAccumulatorPublicInputs(Fr.ZERO, Fr.ZERO, BLS12Fr.ZERO, BLS12Point.ZERO, Fr.ZERO, BLS12Fr.ZERO); + } + + equals(other: BlobAccumulatorPublicInputs) { + return ( + this.blobCommitmentsHashAcc.equals(other.blobCommitmentsHashAcc) && + this.zAcc.equals(other.zAcc) && + this.yAcc.equals(other.yAcc) && + this.cAcc.equals(other.cAcc) && + this.gammaAcc.equals(other.gammaAcc) && + this.gammaPowAcc.equals(other.gammaPowAcc) + ); + } + + static fromBuffer(buffer: Buffer | BufferReader): BlobAccumulatorPublicInputs { + const reader = BufferReader.asReader(buffer); + return new BlobAccumulatorPublicInputs( + Fr.fromBuffer(reader), + Fr.fromBuffer(reader), + BLS12Fr.fromBuffer(reader), + BLS12Point.fromBuffer(reader), + Fr.fromBuffer(reader), + BLS12Fr.fromBuffer(reader), + ); + } + + toBuffer() { + return serializeToBuffer( + this.blobCommitmentsHashAcc, + this.zAcc, + this.yAcc, + this.cAcc, + this.gammaAcc, + this.gammaPowAcc, + ); + } + + /** + * Given blobs, accumulate all public inputs state. + * We assume the input blobs have not been evaluated at z. + * NOTE: Does NOT accumulate non circuit values including Q. This exists to simulate/check exactly what the circuit is doing + * and is unsafe for other use. For that reason, a toBatchedBlobAccumulator does not exist. See evaluateBlobs() oracle for usage. + * @returns An updated blob accumulator. + */ + async accumulateBlobs(blobs: Blob[], finalBlobChallenges: FinalBlobBatchingChallenges) { + let acc = new BatchedBlobAccumulator( + this.blobCommitmentsHashAcc, + this.zAcc, + this.yAcc, + this.cAcc, + BLS12Point.ZERO, + this.gammaAcc, + this.gammaPowAcc, + finalBlobChallenges, + ); + acc = await acc.accumulateBlobs(blobs); + return new BlobAccumulatorPublicInputs( + acc.blobCommitmentsHashAcc, + acc.zAcc, + acc.yAcc, + acc.cAcc, + acc.gammaAcc, + acc.gammaPow, + ); + } + + toFields() { + return [ + this.blobCommitmentsHashAcc, + this.zAcc, + ...this.yAcc.toNoirBigNum().limbs.map(Fr.fromString), + ...this.cAcc.x.toNoirBigNum().limbs.map(Fr.fromString), + ...this.cAcc.y.toNoirBigNum().limbs.map(Fr.fromString), + new Fr(this.cAcc.isInfinite), + this.gammaAcc, + ...this.gammaPowAcc.toNoirBigNum().limbs.map(Fr.fromString), + ]; + } + + static fromFields(fields: Fr[] | FieldReader): BlobAccumulatorPublicInputs { + const reader = FieldReader.asReader(fields); + return new BlobAccumulatorPublicInputs( + reader.readField(), + reader.readField(), + BLS12Fr.fromNoirBigNum({ limbs: reader.readFieldArray(BLS12_FR_LIMBS).map(f => f.toString()) }), + new BLS12Point( + BLS12Fq.fromNoirBigNum({ limbs: reader.readFieldArray(BLS12_FQ_LIMBS).map(f => f.toString()) }), + BLS12Fq.fromNoirBigNum({ limbs: reader.readFieldArray(BLS12_FQ_LIMBS).map(f => f.toString()) }), + reader.readBoolean(), + ), + reader.readField(), + BLS12Fr.fromNoirBigNum({ limbs: reader.readFieldArray(BLS12_FR_LIMBS).map(f => f.toString()) }), + ); + } +} + +/** + * See nr FinalBlobAccumulatorPublicInputs and ts BatchedBlobAccumulator for documentation. + */ +export class FinalBlobAccumulatorPublicInputs { + constructor( + public blobCommitmentsHash: Fr, + public z: Fr, + public y: BLS12Fr, + public c: BLS12Point, + ) {} + + static empty(): FinalBlobAccumulatorPublicInputs { + return new FinalBlobAccumulatorPublicInputs(Fr.ZERO, Fr.ZERO, BLS12Fr.ZERO, BLS12Point.ZERO); + } + + static fromBuffer(buffer: Buffer | BufferReader): FinalBlobAccumulatorPublicInputs { + const reader = BufferReader.asReader(buffer); + return new FinalBlobAccumulatorPublicInputs( + Fr.fromBuffer(reader), + Fr.fromBuffer(reader), + BLS12Fr.fromBuffer(reader), + BLS12Point.fromBuffer(reader), + ); + } + + toBuffer() { + return serializeToBuffer(this.blobCommitmentsHash, this.z, this.y, this.c); + } + + static fromBatchedBlob(blob: BatchedBlob) { + return new FinalBlobAccumulatorPublicInputs(blob.blobCommitmentsHash, blob.z, blob.y, blob.commitment); + } + + toFields() { + return [ + this.blobCommitmentsHash, + this.z, + ...this.y.toNoirBigNum().limbs.map(Fr.fromString), + // TODO(MW): add conversion when public inputs finalised + ...[new Fr(this.c.compress().subarray(0, 31)), new Fr(this.c.compress().subarray(31, 48))], + ]; + } + + // The below is used to send to L1 for proof verification + toString() { + // We prepend 32 bytes for the (unused) 'blobHash' slot. This is not read or required by getEpochProofPublicInputs() on L1, but + // is expected since we usually pass the full precompile inputs via verifyEpochRootProof() to getEpochProofPublicInputs() to ensure + // we use calldata rather than a slice in memory: + const buf = Buffer.concat([Buffer.alloc(32), this.z.toBuffer(), this.y.toBuffer(), this.c.compress()]); + return buf.toString('hex'); + } + + equals(other: FinalBlobAccumulatorPublicInputs) { + return ( + this.blobCommitmentsHash.equals(other.blobCommitmentsHash) && + this.z.equals(other.z) && + this.y.equals(other.y) && + this.c.equals(other.c) + ); + } + + // Creates a random instance. Used for testing only - will not prove/verify. + static random() { + return new FinalBlobAccumulatorPublicInputs(Fr.random(), Fr.random(), BLS12Fr.random(), BLS12Point.random()); + } + + [inspect.custom]() { + return `FinalBlobAccumulatorPublicInputs { + blobCommitmentsHash: ${inspect(this.blobCommitmentsHash)}, + z: ${inspect(this.z)}, + y: ${inspect(this.y)}, + c: ${inspect(this.c)}, + }`; + } +} + +/** + * startBlobAccumulator: Accumulated opening proofs for all blobs before this block range. + * endBlobAccumulator: Accumulated opening proofs for all blobs after adding this block range. + * finalBlobChallenges: Final values z and gamma, shared across the epoch. + */ +export class BlockBlobPublicInputs { + constructor( + public startBlobAccumulator: BlobAccumulatorPublicInputs, + public endBlobAccumulator: BlobAccumulatorPublicInputs, + public finalBlobChallenges: FinalBlobBatchingChallenges, + ) {} + + static empty(): BlockBlobPublicInputs { + return new BlockBlobPublicInputs( + BlobAccumulatorPublicInputs.empty(), + BlobAccumulatorPublicInputs.empty(), + FinalBlobBatchingChallenges.empty(), + ); + } + + static fromBuffer(buffer: Buffer | BufferReader): BlockBlobPublicInputs { + const reader = BufferReader.asReader(buffer); + return new BlockBlobPublicInputs( + reader.readObject(BlobAccumulatorPublicInputs), + reader.readObject(BlobAccumulatorPublicInputs), + reader.readObject(FinalBlobBatchingChallenges), + ); + } + + toBuffer() { + return serializeToBuffer(this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges); + } + + // Creates BlockBlobPublicInputs from the starting accumulator state and all blobs in the block. + // Assumes that startBlobAccumulator.finalChallenges have already been precomputed. + // Does not finalise challenge values (this is done in the final root rollup). + // TODO(MW): Integrate with BatchedBlob once old Blob classes removed + static async fromBlobs(startBlobAccumulator: BatchedBlobAccumulator, blobs: Blob[]): Promise { + const endBlobAccumulator = await startBlobAccumulator.accumulateBlobs(blobs); + return new BlockBlobPublicInputs( + startBlobAccumulator.toBlobAccumulatorPublicInputs(), + endBlobAccumulator.toBlobAccumulatorPublicInputs(), + startBlobAccumulator.finalBlobChallenges, + ); + } +} diff --git a/yarn-project/blob-lib/src/blob_public_inputs.test.ts b/yarn-project/blob-lib/src/blob_public_inputs.test.ts deleted file mode 100644 index 151858902c62..000000000000 --- a/yarn-project/blob-lib/src/blob_public_inputs.test.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Blob } from '@aztec/blob-lib'; -import { BLOBS_PER_BLOCK, BLOB_PUBLIC_INPUTS } from '@aztec/constants'; -import { timesParallel } from '@aztec/foundation/collection'; -import { randomInt } from '@aztec/foundation/crypto'; -import { Fr } from '@aztec/foundation/fields'; - -import { BlobPublicInputs, BlockBlobPublicInputs } from './blob_public_inputs.js'; -import { makeBlobPublicInputs, makeBlockBlobPublicInputs } from './testing.js'; - -describe('BlobPublicInputs', () => { - let blobPI: BlobPublicInputs; - - beforeAll(() => { - blobPI = makeBlobPublicInputs(randomInt(1000)); - }); - - it('serializes to buffer and deserializes it back', () => { - const buffer = blobPI.toBuffer(); - const res = BlobPublicInputs.fromBuffer(buffer); - expect(res).toEqual(blobPI); - }); - - it('converts correctly from Blob class', async () => { - const blob = await Blob.fromFields(Array(400).fill(new Fr(3))); - const converted = BlobPublicInputs.fromBlob(blob); - expect(converted.z).toEqual(blob.challengeZ); - expect(Buffer.from(converted.y.toString(16), 'hex')).toEqual(blob.evaluationY); - expect(converted.kzgCommitment).toEqual(blob.commitmentToFields()); - expect(converted.commitmentToBuffer()).toEqual(blob.commitment); - }); - - it('serializes to field array and deserializes it back', () => { - const fieldArray = blobPI.toFields(); - const res = BlobPublicInputs.fromFields(fieldArray); - expect(res).toEqual(blobPI); - }); - - // NB: In noir, blob.y is represented as a BigNum = 3x Fr fields. In ts, we use bigint for ease of calcs. - it('number of fields matches constant', () => { - const fields = blobPI.toFields(); - expect(fields.length).toBe(BLOB_PUBLIC_INPUTS); - }); -}); - -describe('BlockBlobPublicInputs', () => { - let blobPI: BlockBlobPublicInputs; - - beforeAll(() => { - blobPI = makeBlockBlobPublicInputs(randomInt(1000)); - }); - - it('serializes to buffer and deserializes it back', () => { - const buffer = blobPI.toBuffer(); - const res = BlockBlobPublicInputs.fromBuffer(buffer); - expect(res).toEqual(blobPI); - }); - - it('converts correctly from Blob class', async () => { - const blobs = await timesParallel(BLOBS_PER_BLOCK, i => Blob.fromFields(Array(400).fill(new Fr(i + 1)))); - const converted = BlockBlobPublicInputs.fromBlobs(blobs); - converted.inner.forEach((blobPI, i) => { - expect(blobPI.z).toEqual(blobs[i].challengeZ); - expect(Buffer.from(blobPI.y.toString(16), 'hex')).toEqual(blobs[i].evaluationY); - expect(blobPI.kzgCommitment).toEqual(blobs[i].commitmentToFields()); - expect(blobPI.commitmentToBuffer()).toEqual(blobs[i].commitment); - }); - }); - - it('serializes to field array and deserializes it back', () => { - const fieldArray = blobPI.toFields(); - const res = BlockBlobPublicInputs.fromFields(fieldArray); - expect(res).toEqual(blobPI); - }); - - // NB: In noir, blob.y is represented as a BigNum = 3x Fr fields. In ts, we use bigint for ease of calcs. - it('number of fields matches constant', () => { - const fields = blobPI.toFields(); - expect(fields.length).toBe(BLOB_PUBLIC_INPUTS * BLOBS_PER_BLOCK); - }); -}); diff --git a/yarn-project/blob-lib/src/blob_public_inputs.ts b/yarn-project/blob-lib/src/blob_public_inputs.ts deleted file mode 100644 index c9b90438e595..000000000000 --- a/yarn-project/blob-lib/src/blob_public_inputs.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { BLOBS_PER_BLOCK } from '@aztec/constants'; -import { makeTuple } from '@aztec/foundation/array'; -import { toBigIntBE, toBufferBE, toHex } from '@aztec/foundation/bigint-buffer'; -import { sha256, sha256Trunc } from '@aztec/foundation/crypto'; -import { Fr } from '@aztec/foundation/fields'; -import { BufferReader, FieldReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize'; -import type { FieldsOf } from '@aztec/foundation/types'; - -import { type Blob, VERSIONED_HASH_VERSION_KZG } from './blob.js'; - -/** - * Public inputs required to be passed from our rollup circuits to verify a blob. - */ -export class BlobPublicInputs { - constructor( - /** Challenge point z (= H(H(tx_effects), kzgCommmitment). */ - public z: Fr, - /** Evaluation y = p(z), where p() is the blob polynomial. */ - public y: bigint, - /** Commitment to the blob C. */ - public kzgCommitment: Tuple, - ) {} - - static empty(): BlobPublicInputs { - return new BlobPublicInputs(Fr.ZERO, 0n, [Fr.ZERO, Fr.ZERO]); - } - - isEmpty(): boolean { - return this.z.isZero() && this.y == 0n && this.kzgCommitment[0].isZero() && this.kzgCommitment[1].isZero(); - } - - static fromBuffer(buffer: Buffer | BufferReader): BlobPublicInputs { - const reader = BufferReader.asReader(buffer); - return new BlobPublicInputs(Fr.fromBuffer(reader), toBigIntBE(reader.readBytes(32)), reader.readArray(2, Fr)); - } - - toBuffer() { - return serializeToBuffer(...BlobPublicInputs.getFields(this)); - } - - static fromFields(fields: Fr[] | FieldReader): BlobPublicInputs { - const reader = FieldReader.asReader(fields); - // TODO: Create a BigNum to fields conversion we can use here and in type_conversion.ts - const fromBigNum = (fieldArr: Fr[]) => { - return BigInt( - fieldArr[2].toString().concat(fieldArr[1].toString().substring(2), fieldArr[0].toString().substring(2)), - ); - }; - return new BlobPublicInputs(reader.readField(), fromBigNum(reader.readFieldArray(3)), reader.readFieldArray(2)); - } - - // NB: y is NOT a BN254 field, it's a larger BLS field, we cannot use serialiseToFields here as it assumes bigints will fit - // TODO: Create a BigNum to fields conversion we can use here and in type_conversion.ts - toFields() { - const hex = toHex(this.y, true); - const bigNum = [ - Fr.fromString('0x' + hex.substring(36)), - Fr.fromString('0x' + hex.substring(6, 36)), - Fr.fromString(hex.substring(0, 6)), - ]; - return [this.z, ...bigNum, ...this.kzgCommitment]; - } - - static getFields(fields: FieldsOf) { - return [fields.z, fields.y, fields.kzgCommitment] as const; - } - - static fromBlob(input: Blob): BlobPublicInputs { - return new BlobPublicInputs(input.challengeZ, toBigIntBE(input.evaluationY), input.commitmentToFields()); - } - - getBlobHash(): Buffer { - const hash = sha256(this.commitmentToBuffer()); - hash[0] = VERSIONED_HASH_VERSION_KZG; - return hash; - } - - // Performs the reverse conversion of blob.commitmentToFields() - // 48 bytes encoded in fields as [Fr, Fr] = [0->31, 31->48] - commitmentToBuffer(): Buffer { - return Buffer.concat([ - this.kzgCommitment[0].toBuffer().subarray(1), - this.kzgCommitment[1].toBuffer().subarray(-17), - ]); - } - - equals(other: BlobPublicInputs) { - return ( - this.z.equals(other.z) && - this.y == other.y && - this.kzgCommitment[0].equals(other.kzgCommitment[0]) && - this.kzgCommitment[1].equals(other.kzgCommitment[1]) - ); - } -} - -// NB: it is much cleaner throughout the protocol circuits to define this struct rather than use a nested array. -// Once we accumulate blob inputs, it should be removed, and we just use BlobPublicInputs::accumulate everywhere. -export class BlockBlobPublicInputs { - constructor(public inner: Tuple) {} - - static empty(): BlockBlobPublicInputs { - return new BlockBlobPublicInputs(makeTuple(BLOBS_PER_BLOCK, BlobPublicInputs.empty)); - } - - static fromBuffer(buffer: Buffer | BufferReader): BlockBlobPublicInputs { - const reader = BufferReader.asReader(buffer); - return new BlockBlobPublicInputs(reader.readArray(BLOBS_PER_BLOCK, BlobPublicInputs)); - } - - toBuffer() { - return serializeToBuffer(...BlockBlobPublicInputs.getFields(this)); - } - - static fromFields(fields: Fr[] | FieldReader): BlockBlobPublicInputs { - const reader = FieldReader.asReader(fields); - return new BlockBlobPublicInputs(reader.readArray(BLOBS_PER_BLOCK, BlobPublicInputs)); - } - - toFields() { - return this.inner.map(i => i.toFields()).flat(); - } - - static getFields(fields: FieldsOf) { - return [fields.inner] as const; - } - - static fromBlobs(inputs: Blob[]): BlockBlobPublicInputs { - const inner = makeTuple(BLOBS_PER_BLOCK, BlobPublicInputs.empty); - if (inputs.length > BLOBS_PER_BLOCK) { - throw new Error(`Can only fit ${BLOBS_PER_BLOCK} in one BlockBlobPublicInputs instance (given ${inputs.length})`); - } - inputs.forEach((input, i) => { - inner[i] = BlobPublicInputs.fromBlob(input); - }); - return new BlockBlobPublicInputs(inner); - } - - getBlobsHash() { - const blobHashes = this.inner.map(item => (item.isEmpty() ? Buffer.alloc(0) : item.getBlobHash())); - return sha256Trunc(serializeToBuffer(blobHashes)); - } - - // The below is used to send to L1 for proof verification - toString() { - const nonEmptyBlobs = this.inner.filter(item => !item.isEmpty()); - // Write the number of blobs for L1 to verify - let buf = Buffer.alloc(1); - buf.writeUInt8(nonEmptyBlobs.length); - // Using standard toBuffer() does not correctly encode the commitment - // On L1, it's a 48 byte number, which we convert to 2 fields for use in the circuits - nonEmptyBlobs.forEach(blob => { - buf = Buffer.concat([buf, blob.z.toBuffer(), toBufferBE(blob.y, 32), blob.commitmentToBuffer()]); - }); - return buf.toString('hex'); - } -} diff --git a/yarn-project/blob-lib/src/index.ts b/yarn-project/blob-lib/src/index.ts index 5e19e354cfc9..b6b53c7392af 100644 --- a/yarn-project/blob-lib/src/index.ts +++ b/yarn-project/blob-lib/src/index.ts @@ -7,7 +7,7 @@ export * from './blob_batching.js'; export * from './encoding.js'; export * from './interface.js'; export * from './errors.js'; -export * from './blob_public_inputs.js'; +export * from './blob_batching_public_inputs.js'; export * from './sponge_blob.js'; try { diff --git a/yarn-project/blob-lib/src/testing.ts b/yarn-project/blob-lib/src/testing.ts index 095dfe5bc463..ca3b5595a714 100644 --- a/yarn-project/blob-lib/src/testing.ts +++ b/yarn-project/blob-lib/src/testing.ts @@ -1,10 +1,10 @@ -import { BLOBS_PER_BLOCK } from '@aztec/constants'; import { makeTuple } from '@aztec/foundation/array'; import { toBufferBE } from '@aztec/foundation/bigint-buffer'; -import { Fr } from '@aztec/foundation/fields'; +import { BLS12Fr, BLS12Point, Fr } from '@aztec/foundation/fields'; import { Blob } from './blob.js'; -import { BlobPublicInputs, BlockBlobPublicInputs } from './blob_public_inputs.js'; +import { BatchedBlobAccumulator, FinalBlobBatchingChallenges } from './blob_batching.js'; +import { BlockBlobPublicInputs } from './blob_batching_public_inputs.js'; import { TX_START_PREFIX, TX_START_PREFIX_BYTES_LENGTH } from './encoding.js'; import { Poseidon2Sponge, SpongeBlob } from './sponge_blob.js'; @@ -28,16 +28,21 @@ export function makeSpongeBlob(seed = 1): SpongeBlob { } /** - * Makes arbitrary blob public inputs. + * Makes arbitrary blob public accumulator. * Note: will not verify inside the circuit. - * @param seed - The seed to use for generating the blob inputs. - * @returns A blob public inputs instance. + * @param seed - The seed to use for generating the blob accumulator. + * @returns A blob accumulator instance. */ -export function makeBlobPublicInputs(seed = 1): BlobPublicInputs { - return new BlobPublicInputs( +export function makeBatchedBlobAccumulator(seed = 1): BatchedBlobAccumulator { + return new BatchedBlobAccumulator( new Fr(seed), - BigInt(seed + 1), - makeTuple(2, i => new Fr(i)), + new Fr(seed + 1), + new BLS12Fr(seed + 2), + BLS12Point.random(), + BLS12Point.random(), + new Fr(seed + 3), + new BLS12Fr(seed + 4), + new FinalBlobBatchingChallenges(new Fr(seed + 5), new BLS12Fr(seed + 6)), ); } @@ -48,7 +53,12 @@ export function makeBlobPublicInputs(seed = 1): BlobPublicInputs { * @returns A block blob public inputs instance. */ export function makeBlockBlobPublicInputs(seed = 1): BlockBlobPublicInputs { - return new BlockBlobPublicInputs(makeTuple(BLOBS_PER_BLOCK, () => makeBlobPublicInputs(seed))); + const startBlobAccumulator = makeBatchedBlobAccumulator(seed); + return new BlockBlobPublicInputs( + startBlobAccumulator.toBlobAccumulatorPublicInputs(), + makeBatchedBlobAccumulator(seed + 1).toBlobAccumulatorPublicInputs(), + startBlobAccumulator.finalBlobChallenges, + ); } // TODO: copied form stdlib tx effect diff --git a/yarn-project/constants/src/constants.gen.ts b/yarn-project/constants/src/constants.gen.ts index d51cb368f36f..5c548b23dfce 100644 --- a/yarn-project/constants/src/constants.gen.ts +++ b/yarn-project/constants/src/constants.gen.ts @@ -127,8 +127,14 @@ export const GLOBAL_VARIABLES_LENGTH = 9; export const APPEND_ONLY_TREE_SNAPSHOT_LENGTH = 2; export const APPEND_ONLY_TREE_SNAPSHOT_LENGTH_BYTES = 36; export const SPONGE_BLOB_LENGTH = 11; +export const BLS12_FR_LIMBS = 3; +export const BLS12_FQ_LIMBS = 4; +export const BLS12_POINT = 9; +export const BLS12_POINT_COMPRESSED_BYTES = 48; +export const BLOB_ACCUMULATOR_PUBLIC_INPUTS = 18; +export const FINAL_BLOB_ACCUMULATOR_PUBLIC_INPUTS = 7; +export const BLOCK_BLOB_PUBLIC_INPUTS = 40; export const BLOB_PUBLIC_INPUTS = 6; -export const BLOB_PUBLIC_INPUTS_BYTES = 112; export const L1_TO_L2_MESSAGE_LENGTH = 6; export const L2_TO_L1_MESSAGE_LENGTH = 3; export const SCOPED_L2_TO_L1_MESSAGE_LENGTH = 4; @@ -198,8 +204,8 @@ export const PRIVATE_TO_ROLLUP_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH = 813; export const AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH = 1042; export const CONSTANT_ROLLUP_DATA_LENGTH = 13; export const BASE_OR_MERGE_PUBLIC_INPUTS_LENGTH = 52; -export const BLOCK_ROOT_OR_BLOCK_MERGE_PUBLIC_INPUTS_LENGTH = 1032; -export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 1015; +export const BLOCK_ROOT_OR_BLOCK_MERGE_PUBLIC_INPUTS_LENGTH = 210; +export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 158; export const NOTE_HASHES_NUM_BYTES_PER_BASE_ROLLUP = 2048; export const NULLIFIERS_NUM_BYTES_PER_BASE_ROLLUP = 2048; export const PUBLIC_DATA_WRITES_NUM_BYTES_PER_BASE_ROLLUP = 4096; diff --git a/yarn-project/constants/src/scripts/constants.in.ts b/yarn-project/constants/src/scripts/constants.in.ts index ff449b067b2b..eb1eeb7334db 100644 --- a/yarn-project/constants/src/scripts/constants.in.ts +++ b/yarn-project/constants/src/scripts/constants.in.ts @@ -191,10 +191,9 @@ const SOLIDITY_CONSTANTS = [ 'NUM_MSGS_PER_BASE_PARITY', 'NUM_BASE_PARITY_PER_ROOT_PARITY', 'PROPOSED_BLOCK_HEADER_LENGTH_BYTES', + 'BLS12_POINT_COMPRESSED_BYTES', 'ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH', 'BLOBS_PER_BLOCK', - 'BLOB_PUBLIC_INPUTS', - 'BLOB_PUBLIC_INPUTS_BYTES', 'INITIAL_L2_BLOCK_NUM', 'GENESIS_ARCHIVE_ROOT', 'FEE_JUICE_ADDRESS', diff --git a/yarn-project/end-to-end/src/composed/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/composed/integration_l1_publisher.test.ts index b6095d4b49c8..294afe55ee62 100644 --- a/yarn-project/end-to-end/src/composed/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/composed/integration_l1_publisher.test.ts @@ -1,7 +1,7 @@ import type { ArchiveSource } from '@aztec/archiver'; import { getConfigEnvVars } from '@aztec/aztec-node'; import { AztecAddress, Fr, GlobalVariables, type L2Block, createLogger } from '@aztec/aztec.js'; -import { Blob, BlockBlobPublicInputs } from '@aztec/blob-lib'; +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { GENESIS_ARCHIVE_ROOT, MAX_NULLIFIERS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants'; import { EpochCache } from '@aztec/epoch-cache'; import { @@ -17,7 +17,7 @@ import { L1TxUtilsWithBlobs } from '@aztec/ethereum/l1-tx-utils-with-blobs'; import { EthCheatCodesWithState } from '@aztec/ethereum/test'; import { range } from '@aztec/foundation/array'; import { timesParallel } from '@aztec/foundation/collection'; -import { SHA256Trunc, sha256, sha256ToField } from '@aztec/foundation/crypto'; +import { SHA256Trunc, sha256ToField } from '@aztec/foundation/crypto'; import { EthAddress } from '@aztec/foundation/eth-address'; import { TestDateProvider } from '@aztec/foundation/timer'; import { openTmpStore } from '@aztec/kv-store/lmdb'; @@ -265,6 +265,7 @@ describe('L1Publisher integration', () => { block: L2Block, l1ToL2Content: Fr[], blobs: Blob[], + batchedBlob: BatchedBlob, recipientAddress: AztecAddress, deployerAddress: `0x${string}`, ): Promise => { @@ -289,7 +290,8 @@ describe('L1Publisher integration', () => { // The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values below. // 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')}`, - blobInputs: Blob.getEthBlobEvaluationInputs(blobs), + blobCommitments: Blob.getPrefixedEthBlobCommitments(blobs), + batchedBlobInputs: batchedBlob.getEthBlobEvaluationInputs(), blockNumber: block.number, body: `0x${block.body.toBuffer().toString('hex')}`, decodedHeader: { @@ -355,6 +357,10 @@ describe('L1Publisher integration', () => { let currentL1ToL2Messages: Fr[] = []; let nextL1ToL2Messages: Fr[] = []; + const allBlobs: Blob[] = []; + // The below batched blob is used for testing different epochs with 1..numberOfConsecutiveBlocks blocks on L1. + // For real usage, always collect ALL epoch blobs first then call .batch(). + let currentBatch: BatchedBlob | undefined; for (let i = 0; i < numberOfConsecutiveBlocks; i++) { const l1ToL2Content = range(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, 128 * i + 1 + 0x400).map(fr); @@ -398,23 +404,31 @@ describe('L1Publisher integration', () => { // Check that we have not yet written a root to this blocknumber expect(BigInt(emptyRoot)).toStrictEqual(0n); - const blobs = await Blob.getBlobs(block.body.toBlobFields()); + const blockBlobs = await Blob.getBlobs(block.body.toBlobFields()); expect(block.header.contentCommitment.blobsHash).toEqual( - sha256ToField(blobs.map(b => b.getEthVersionedBlobHash())).toBuffer(), + sha256ToField(blockBlobs.map(b => b.getEthVersionedBlobHash())).toBuffer(), ); + let prevBlobAccumulatorHash = hexStringToBuffer(await rollup.getCurrentBlobCommitmentsHash()); + + blocks.push(block); + allBlobs.push(...blockBlobs); + + // Batch the blobs so far, so they can be used in the L1 unit tests: + currentBatch = await BatchedBlob.batch(allBlobs); + await writeJson( `${jsonFileNamePrefix}_${block.number}`, block, l1ToL2Content, - blobs, + blockBlobs, + currentBatch, recipientAddress, deployerAccount.address, ); await publisher.enqueueProposeL2Block(block); await publisher.sendRequests(); - blocks.push(block); const logs = await l1Client.getLogs({ address: rollupAddress, @@ -426,15 +440,24 @@ describe('L1Publisher integration', () => { }); expect(logs).toHaveLength(i + 1); expect(logs[i].args.blockNumber).toEqual(BigInt(i + 1)); + const thisBlockNumber = block.header.globalVariables.blockNumber.toBigInt(); + const isFirstBlockOfEpoch = + thisBlockNumber == 1n || + (await rollup.getEpochNumber(thisBlockNumber)) > (await rollup.getEpochNumber(thisBlockNumber - 1n)); + // If we are at the first blob of the epoch, we must initialise the hash: + prevBlobAccumulatorHash = isFirstBlockOfEpoch ? Buffer.alloc(0) : prevBlobAccumulatorHash; + const currentBlobAccumulatorHash = hexStringToBuffer(await rollup.getCurrentBlobCommitmentsHash()); + let expectedBlobAccumulatorHash = prevBlobAccumulatorHash; + blockBlobs + .map(b => b.commitment) + .forEach(c => { + expectedBlobAccumulatorHash = sha256ToField([expectedBlobAccumulatorHash, c]).toBuffer(); + }); + expect(currentBlobAccumulatorHash).toEqual(expectedBlobAccumulatorHash); const ethTx = await l1Client.getTransaction({ hash: logs[i].transactionHash!, }); - - const blobPublicInputsHash = await rollup.getBlobPublicInputsHash(BigInt(i + 1)); - const expectedHash = sha256(Buffer.from(BlockBlobPublicInputs.fromBlobs(blobs).toString().substring(2), 'hex')); - expect(blobPublicInputsHash).toEqual(`0x${expectedHash.toString('hex')}`); - const expectedRollupData = encodeFunctionData({ abi: RollupAbi, functionName: 'propose', @@ -449,7 +472,7 @@ describe('L1Publisher integration', () => { txHashes: [], }, [], - Blob.getEthBlobEvaluationInputs(blobs), + Blob.getPrefixedEthBlobCommitments(blockBlobs), ], }); const expectedData = encodeFunctionData({ diff --git a/yarn-project/end-to-end/src/e2e_epochs/epochs_empty_blocks.test.ts b/yarn-project/end-to-end/src/e2e_epochs/epochs_empty_blocks.test.ts index bebc7d4fd5e0..76855f3e527d 100644 --- a/yarn-project/end-to-end/src/e2e_epochs/epochs_empty_blocks.test.ts +++ b/yarn-project/end-to-end/src/e2e_epochs/epochs_empty_blocks.test.ts @@ -7,7 +7,7 @@ import { jest } from '@jest/globals'; import type { EndToEndContext } from '../fixtures/utils.js'; import { EpochsTestContext, WORLD_STATE_BLOCK_HISTORY } from './epochs_test.js'; -jest.setTimeout(1000 * 60 * 10); +jest.setTimeout(1000 * 60 * 15); describe('e2e_epochs/epochs_empty_blocks', () => { let context: EndToEndContext; @@ -63,7 +63,7 @@ describe('e2e_epochs/epochs_empty_blocks', () => { `Reached PENDING L2 block ${epochTargetBlockNumber}, proving should now start, waiting for PROVEN block to reach ${provenBlockNumber}`, ); await test.waitUntilProvenL2BlockNumber(provenBlockNumber, 120); - expect(Number(await rollup.getProvenBlockNumber())).toBe(provenBlockNumber); + expect(Number(await rollup.getProvenBlockNumber())).toBeGreaterThanOrEqual(provenBlockNumber); logger.info(`Reached PROVEN block number ${provenBlockNumber}, epoch ${epochNumber} is now proven`); epochNumber++; diff --git a/yarn-project/end-to-end/src/e2e_epochs/epochs_proof_fails.test.ts b/yarn-project/end-to-end/src/e2e_epochs/epochs_proof_fails.test.ts index 547263fd29f5..74e09d360612 100644 --- a/yarn-project/end-to-end/src/e2e_epochs/epochs_proof_fails.test.ts +++ b/yarn-project/end-to-end/src/e2e_epochs/epochs_proof_fails.test.ts @@ -1,4 +1,5 @@ import { type Logger, getTimestampRangeForEpoch, sleep } from '@aztec/aztec.js'; +import { BatchedBlob } from '@aztec/blob-lib'; import type { ViemClient } from '@aztec/ethereum'; import { RollupContract } from '@aztec/ethereum/contracts'; import { ChainMonitor, type Delayer, waitUntilL1Timestamp } from '@aztec/ethereum/test'; @@ -94,7 +95,15 @@ describe('e2e_epochs/epochs_proof_fails', () => { await sleep(L2_SLOT_DURATION_IN_S * test.epochDuration * 1000); logger.warn(`Finalise epoch: returning.`); finaliseEpochPromise.resolve(); - return { publicInputs: RootRollupPublicInputs.random(), proof: Proof.empty() }; + const ourPublicInputs = RootRollupPublicInputs.random(); + const ourBatchedBlob = new BatchedBlob( + ourPublicInputs.blobPublicInputs.blobCommitmentsHash, + ourPublicInputs.blobPublicInputs.z, + ourPublicInputs.blobPublicInputs.y, + ourPublicInputs.blobPublicInputs.c, + ourPublicInputs.blobPublicInputs.c.negate(), // Fill with dummy value for Q + ); + return { publicInputs: ourPublicInputs, proof: Proof.empty(), batchedBlobInputs: ourBatchedBlob }; }); return prover; }); diff --git a/yarn-project/end-to-end/src/fixtures/dumps/epoch_proof_result.json b/yarn-project/end-to-end/src/fixtures/dumps/epoch_proof_result.json index c2441e1fb1bf..1bf144198a82 100644 --- a/yarn-project/end-to-end/src/fixtures/dumps/epoch_proof_result.json +++ b/yarn-project/end-to-end/src/fixtures/dumps/epoch_proof_result.json @@ -1 +1 @@ -{"proof":"0x0000b88006f32a63ab1a10c44b40a14c94fd4e693830a91920a63778c91df75b67c3a259000000000000000000000000000000000000000000000000000000000000000107280517ca1e78bf1695ef64be32a191c9be596f1187f3c7977faff7e24056bd00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb006b9585a5e170e2ee0ba4ea606cf9b6dac9096e94e5b22d48c247b37ce69514008a03d1cbf04c728546df9b241db51cfbde1c179813e31b957b5313b776ee2a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e630f76f97b5ee7be34ec1043da864e3586334f6df8b48eac5477c1a568bc2a236e28b260237bb24c77306386b852e3775bc6b9ed72afa2fd5cb1da33a76df400000000000000000000000000000000000000000000000000000000000000000ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082fe435f331308a4900000000000000000000000000000000000000000000000bdab82be1e5639d800000000000000000000000000000000000000000000000029444cf38547e68fe0000000000000000000000000000000000000000000000000000d75a2f25a232000000000000000000000000000000000000000000000008791586d317551b2300000000000000000000000000000000000000000000000191d2857ec676748100000000000000000000000000000000000000000000000f018d9789909bd0db0000000000000000000000000000000000000000000000000002cfca99fd0c9f0000000000000000000000000000000000000000000000043d66f92822507d05000000000000000000000000000000000000000000000004571d2303e8e9969f000000000000000000000000000000000000000000000008b6a52d7b966f48e00000000000000000000000000000000000000000000000000001362a5949866e0000000000000000000000000000000000000000000000065323a25284713ba2000000000000000000000000000000000000000000000001bf48920d910810fc00000000000000000000000000000000000000000000000a5c6afdb772c0f57500000000000000000000000000000000000000000000000000021fb873f04f540000000000000000000000000000009dd48fdcab23a26aa7a4b052eb69ce9a7b00000000000000000000000000000000001c77fa3a02ad09a7cf24867a113f5b00000000000000000000000000000039a316835842f0c8b2f0638ad30af7832f00000000000000000000000000000000001fb07acdd9b4b8f83910efb2e820f500000000000000000000000000000023b5a7379d329a11b3fac8d349325c8a8e00000000000000000000000000000000000e1a7d35b0c9311a04a803e4a3963d000000000000000000000000000000a3cce610462069eb0ffb868b9b77b051820000000000000000000000000000000000133c53b0fcc090147fc32300bd2cf2000000000000000000000000000000257cff25f706677c5fdf7e7bd129382652000000000000000000000000000000000001bbc313d96cc5e96e0f077da2e92800000000000000000000000000000082bbb536634fbe97cd09156f20c7104f57000000000000000000000000000000000009d76d09dacad032309bf48a1917cb0000000000000000000000000000002ec0134723ef5ef9b52e3ef8874be2c1f900000000000000000000000000000000001372b70f434540fae85f5479bef56d00000000000000000000000000000038c1a3d0abe514107a3fc76779ef3dc484000000000000000000000000000000000002ec7bcb5d5b1ae1f04a3033983645000000000000000000000000000000558ac07c2c5062472e0917f86eb469fc05000000000000000000000000000000000021687c48ef2161031addc8f8687b49000000000000000000000000000000ae49be930b168b7fd9938eea2f06ca7737000000000000000000000000000000000000852f77188f03d9f8d5144ba81df6000000000000000000000000000000389ed81026f4a087ab3b9f075401d8c6dd000000000000000000000000000000000009ca569240c24f285c62e81584c09500000000000000000000000000000084b64204b2b55309c9db00a4cb274d7ba1000000000000000000000000000000000026f54dbd35eced8f542be91183c65c000000000000000000000000000000ab8b304bdf723524cf812540110f330982000000000000000000000000000000000002513eadc5586f9409db0b2117209900000000000000000000000000000001c7cb177f4e426571e40eb596ec769bc600000000000000000000000000000000000f252a92f419518324a7e9431ae893000000000000000000000000000000a8060330bdab766572bc2e8bb8d357341e00000000000000000000000000000000002ed3c4461083df062a5d4f9df107f1000000000000000000000000000000b839b3a315247d1ae36c6c57e4759ac0d900000000000000000000000000000000002f78eb3011f73697e5be34f1c19f921ed703b2463f2a77ef1fe79232096b7313942088901da13d8c2f1e73940d91fb118d4ac09af275b1c9305e244f77ecea149fc7bfe99bcf53b7b2d7205bf26e0628e0bf2e8ca0c83dba16dd3442b7ec5870f55feffb0e3140b6fbf1608790d5d3264de73dbf3cdad21832ac08a327b78f99421e0055b1b6ca95cd3813b5e9d4961d1fa27c17d1ab48000c19237c04d8e41b2de42dfecf37d569cb82522655602a1fc1c6a4587b36b4e9e044a94a6555bf48234a3220621e09f796c121491dba632fe54e40a068f38c6188eba2a4cc4ca93882bd403a72c014c4f46f685582da3423ac9a08284604e636aad040f31c9200d3214cf18be0f3d3eecae2f832a5c6f2141ca5b05cb3a30e566140fa90a73f772fbc0946cae3da3a322cdb26457aaaec2607f370a81d39d6d7588b308b06c8689c531f6f4836d54cf2deb7f789f91a50215e5accdbf15b2f466b88a3158b974232e6df84cd2599fd7f920ba87a91f85e0ff040395f537937fbd7424d13d9dba84e1af5d3cf21d486cf2abe9ac71646b32f7ec72a40b79c6a5a0db4cf72399706546c36c3a32f2721f870b84615a17d0700480fb040f7f95a9b236766df76e269935b4fa7b28690c7ffa7d41cdcdc85250da1013b18dfc3803c8c401e6090e8bf3464bdae7e0cd8e7494c0b541238a06400a040319532aaad2c838d68fd6c5d1a8629b2ca8d945722870d5c44ac00fb3b024c0ae940ba87ad76694d4d5d1148fb5951139880580fca36ba2cca4f657620242d9ca34888e439bb3031875969e452300cc5b79bc06d256d27bd639a1a79980f341005b675ccfd8af30b044946fa54e71dde8361909baa28cf3db107eea077191774e2ebab60b25a485ddcbc65fff8b7127e8df3434ca327ddac6c5a29d2ee05da97b5c3cf1ebbae38eef142258ea8794d01c3f94d17eee961154d451f1c270f2439b2ce67890c8e9960c0533e69599e2c93f4d58dfb0da35efe0d9e1ba4cb1559a9233b5f0fdbf0c13cd079484591e371fa55c73b922fc8e2aa45b624a8bd09098c4b762f3bfdad8480bf51b94f5d0086e30c29fa5c78be9777edd6bb5ad01226beb3b974f1888db1930aa521015696153ec084713b6d40e0cc15dd5a4e4f107755e629b6989a89ad2ea842521d90c3e61b5310e294aa5186836d6d7f552e120b0ce95e8c825f905de5bda99cd0f53a9c1991df0ae2342be5694f7372ed720fa4b997b47c844a9d6e4dc5aafb91d040fecf21370b4490e9ffef9777cdbc6c1758bbee3761ab7a724f0eda2c1a90c7d112802257a6cba65fc43efe7a3b4a1010e020770079a3a01a553b85cd677abd3cac1411e55b697c7cc59148a084b9d00fb78d35e36553b508ee63604ba8bda966a4d2c11751f8d73a7b52cc13c17a761b4ec6b93cfb07d4a992784e969826e9c98c6826737da88fae0430c86e1e87060a217acefce28f78d8f26d2fbeeddfaf097cbc7fbf91388881c22feeed61ff0e1f8d569b6c93d6293073ca09d53683b460f91a1d9815212360a7271d3be47f2f05eb65b94f100ebf53c71e31affe1edeb1da02b8d92e527ba0f1be70d10c8dc0005eb1d728b07c90d03da9019d2559979b11a0e8d6819b8917d162fa646b3f96159117217d2fbc65904f4506698bbfd196cfd76d4c1aec2c08e9a7277dc369821c9ab6e3debeeb16b79a90e82c1ca614a9149c11ca2ef9d9765c38155e455aa01a9e04a8632dbf67b115df66b36d5f4d87ae6fd6741d293fcbd53b38a2a2ff22072b9199dda22f334a402919e29bd92fd5afc3327b787546227b43da103eb45f2dee9d4d85a0dcde2cb953691d3801096a61d8b7ee9cbd5334a79e043ef42b4716fc55fdb7142f9afa9e3c8d78c95bb259f7702dc6cc6bf369232ecf0be1da960dab3e12610f154cc5132498be73920018f2673b8be4bb444f24a9186cab20ab12409bac9b6ee97bfaf74407fb095fde37bbe01ab6eba1fa5e960d3bca5a6b420465306a3d9c4e09679c1104938ab257826471dbfa0b13a74baf87ef0e25d8dc2ed4db879783be9b176091b5f5729c99cdd59f8e0f0caf9572d020e51f441a9d0dd471c6415daadeb642425162282835030b02ac18afc574b2ebeb24ca86df071088e235e911e8116c6ff3d6ab70b8b1dce91b3b3391c0af1cf289618e983c5f1579b84d040ce85bfbba955afabfdb0bbffd99f844050f0b74b4cb273324d28f2a0a042e8c44626541a9c5fc6ff180f6e85b9949051f75f92554cea8e4da20b81961bf243cf0c5be999bc98393669a7a5c2617ec4e2109ea1de582ad575aaa481d37586109d01f06ed630337e69facf07665bdc8d2358444ae44a84d4dd8077a2974a78a0b289b986c7fb6dba76835fbdf088037d544510ab140a2ec0389851b00e5ae1f6c8b3a4811237605401c62751ae918be2723c062ed2fb2f5a0c541df17a9f4815ddbf72f40bb652422a2940aa0b3593c9b1c3b9108d3204adc5585e71af1df896d1ddbde91eba2533fdea3337a70cb15995026310c30c668f36fa6252144ab1cf0046a554e00b315efde48630590b81415193f2c7f6a9f2cdaf392450b9380ea79f64997d4c1ee7f081d52cfa9193426463a9a97adb33bbc5e867d4e223197fb306cddb2947ebe122670aed68f80676d763bcd607a4761dc9a08b545264393e98caeed4f48e30093a297644a469c9a8b8a94877fb4c8eb8715834a5a10f9d2a516180ec5ef831039c5ce21fd5535c24f3619dac94bf2333d79aad40f139691ae19a3fc31e9a430caf50417c68b46768644fd9d35b599d964d167333e2703cb53ad24980d5cf566b4610b0b1962cbf08c92f2f7842b8d819eef8ee7ba2e3e3d60a795d42e1eaab82127e854def40d8f4502f718fcaf67622b23e0ec13004b0c7e629fec1c5d9aa943d88db79ed9116e7736064f196068335c1c559c2a0505cc734585fd97764959afbc153f2844d86df2a3da32c5c7cf31cd69c297510f99c1c98293de15a4cb7acad077d2787b11d7fa52da57796aa3aba62170c68101a8151cc166de28d7e2548d4b2b23397d0a96f982151336583a79cd53394982092106fb50cfca4d8dd9248f7db044659f6f113cbd84d5b033d24da19b1c6a910a272371da4956855ee68a0107cbf38147ea8378845ad320719e6f06a65a65bd0d652fac48173de4017ae38e93e6ea160fc36b248736b86a842fe4d95c00d7a81a62b5367ff9995dd4ca7a8ac5b851b762a847e8af3f3a2a1dd20959e821f00e0ed4fc602d6e618db088efcc7223587d41e538467acd69cb098205995ca6a9db2934dda0ae2778704db595c8d81d2a385a958f89f0d80892c57ccb7f2379b50a2a0b72a7b1c55d5a790543c627ea4a08937dbf75158de8a14229c89a5e170a472bd770323eb32579baab712e442c6fe5b749f0a1cc54dde59761c722f10644ef1d74de9ebe4437dbf18157edaeee8fa0abda238cf48e9b6464adf661dd2992821d3b43dab55c21fa368a37f858b935497548502a2017d9d4677c69af2fb12b8901692b608886d600bd7c170f54a28ed182fe2de53279bf66e659c2adf6268ada1d11e2f80499c6c901ccae299102b2508cbaced7a8a8c0d2d7a37441487b2786188a1aac80b5e8963daf8fdf59e45d7368464b4bdf8ace37ec441c91275480571ae722530593bb6198da80351c794a0680d8acd41f4aaa71ef293a2dc811f837099f10840a5c4964d73790885a59e83e8d454533fa158870651c2122a5b80acf1ced9f2905feb5154982a9ab6d3bb3566522bb1149f4799e717a06242bc9d00e118ffb9a526fc265b4358581d449b72a937e3c6341345759979b55d892a468e8199d25b646f03f0c9082b07d586db595d0d94fd654f82d7af36a0a5d61a10d7a2c8972f62d91afc3e9aa4d92ea2144af46d2a7f69b1f7500164e3b6c8f4c80d02ce3a2d4574339219dd4718f535c0457dd2d0308f654a083d6c7abfbbac103332b83044a1bdbae0c46cfcd8588e245ee180f961a9d5b5e6f24579502298222890eb89a932a06d9f49ff93dc84626f8fd209c924034a70e8e3d7670c52850379d2c2c23a4d587b01f3dd0d0d9ad647137a313167a264912ed5c7a02a199d782d40ea7acfde509ba2a1bfa0f82d51a872269a4bb348c2b6e186e975a95a77e483f167164a393d628e7840231b88addceedd7a75e2edfdefadfd3aba9b685bf4492289e5a69f4eaa1fb811547952d1ce8865130f76a5ef4fe22f662199cb104338b2764a583ba72370aa2fce05c880f1e6454f8f934e705a82c6229255c00ad743c3019dbfd704de117a3a920c29ad2acc8702a1720e7f3d071a647292b2aa94e090254ef9379036632186ff8ce0ee2f54a03f71a28013a3f78c3085d2e75d9143f1b9d7f390e6d1cb51f38e4b762ac4fbd121e06a3733cfd1d7225a540568bb7fa301d829e86b40806b386408882102ad9ea74fc0e087b7673435ed29d80ab49f72d04e945d2ba9eaacda2f8c819b65b8c441efc3793e3fb5ce33b60e992e3b07a13f9e9318097e2ea0feb8afe17e028493ca2ab6b2adfb739ede48bb0d16db40d1535ef65460d2f0d9c21ce0ff5fbe5efd57317ebdb53cc5048f4b854cc84b4ab175b2014bdeae3f06b915c007fca2725a898ed1d424770240c0ca4a85878ff8f2cd578e01e3ed260338e69aec1a9815a6953b0167e2506a0e04e2f54de5326ee00a2c84084c56dc32389412b3d2b1d31ecd43eba8de7120a7236aa9d51d098ef2725e2c172077c9770b92d792b3c8ec369ec50d7adb749bd6274e8c280525a322da0bc9a8f41112ea571f46024b91f9e10de08ae048719560f66900b25df170c2b48e1600be108beb0772730026250d9a781088cd60d7665997311b908f24b83172aa906ebfbaf0343af409c3a648fa02d49c39c3790efa112e383fc58926d421b4bd14202e308951d9ec129adc6c25252b0c7eb35e5e2614cb4b42cc55486ae0da15bc44a42b5603bea536903980976d78ec6a4deece1f883df6e11e5154e4b03e9d5a599df3a87112e2461447182358ca210bf9dff678c23e47959939d743a199e6ee47fb6d39ccfb9bcc47db9dad1ba7b8b487c9cdc0d2320f90a70de7916269a1ab64c5f534b44b827087f4cd1a33f72c1bd9a37133e31b97308eeb7850d1f0c57de4e7a17ac9c82ce9b0bc3ba64cba818f21a2649ded1cb0b53388735f92ae49a875962c08ac1250398008ee8ad9b04132f292ceebb6e16421eda7f9d7b0591ce7a61f708684ef2471ed2bf70b93609810e005a874d2fe05833e7c1538e04bbe9c678d2c9993c1cdb22a67887ec754ce7560b51776129f1c4b03b69b39726b007f5e1b3daeb29decc99172a51c5629a97dddc9488f82ead26fce59fdf6c23131a5afa4c553929e0ac4ab6986d574a864ff00876684a5753ea61eb0352e3180e09544dd2c00395cf95309fac58ff99467c6a38b6bfb075fc3d63150a7f0e2ecee683d2204da4919d4f3bc2e4b880b72040d71ac2ab9f4ff8b13cbdee781209879852ea97818396d72497423032fe98db9f80f4fb2540df5c0e0314906d4520546acfe7ebd9de812724d2fe4c89751f36cca1d3e3eb4dde2db6c5ccfcf4a3030da1a25f6aacfa4c080656f571a38ba719da4b1187f35eeb4afc3d573c77782b362f2dd86ccdfdbeec46bd4669062a4c926d721d547aabb0ae937f5c071ef0143e9b5b45f1bd280d0fe81dc113682711519a2df642309f95fc2c177f440e032ae669f647bf998e80d13bb0381181463fcef90e1b7de9d0e8595b0865a7de3a163c8a81b4a838a66a8f770ffbb735e1c6485bf0096795d0ab7cb95e0ce6decd2238bf198fe67a0edce64f3c500b529dc91b42029830f9ec6976ef6284ba450b062d52b46c42feead236f6481506095086d9970e4e59ddb4d4c11456c50c21cc1e3fb5576dff0b8cac3c1b4083db93cce6f8804493477e8d104f798d621ae6ac0e365ed9430a53c30602fab3450889f3cae5fc98b22db706525ed03b931e2f5a0c1328a2f595c6b30fa5442db9dea2b1c4a75393f6eedf994e1f6dc0a3a99dae05d4a3ab6492cbff3cddc3c66d415deafe211cb8b10295b28d4716fd28b4a74708180356accc67b22c8aca76c2f3ac542ec4d98f523042b0a035b7ef4b88b0e209d9caa3946398e94d45b3c0b448bc8d98f6b95afef3fa92cebd617df24bb4be1dd3a659998e320aba92a990ff6191c1bde41d4eb9fd89acf49d4f916e46723c26ee3dd3de1f09bf242ed3214e6ff8357723a7c5ff4517cffb23d62aabe3054d030d58d1c5ab267f098265df13f33f12f9225eefb7a2edb336e880c3f51c0535003335d0e6ef4ce94ed502a8c1fe29a8888c9cd1cca193df5e370a092cb8a17d080be374efcf59774d1609859eb9a842a118684690e94edd4f2479e5fc0e38810b1beb671e9eb213eb22fe58270fd4baa67c2493bc5ffa80b77f9a19d12de04a00de194d54fbd50a952239f0d4705b1ca0279d8d329a8c50d529618d340f63991801a497e50cf66e6ea1fe78d66b35549e6ced288c67a88acf097dc6d2cf7be72e4b3409772e8d1105cb34eb385438dc821c2171c69ff25411757a951cafdb4a2275936c79d562bf90937df3d9ab659908fcb62ef18c18e64be23ca3bf462f3c15b4f2116b9ec7b2ac8b4ede684ffe8932972468ebd3472e6fc7127eee19942113134a84a97434300201ddda036afb82ed141bac550776ec1143b9d3a82b56dc108c8702b6f7f4225cd0af340f49fea35b114ac11401639e5cdb11ffd1ec644e22e7342db2255d10c9d563de596ca60e49f72b6e0aa42c71cce46fbe34ce365613612a6446da13db08d94af65ff4cb5345f1c9e845ae04f14b946d0ef960f91b18a4d2e3bf94bc22fee1320f72883ba737cab7fcdb6315aaadaf82c74fa969740cb0d9401a1473aa71e211f3cd93d19aaf29fd33086383b2ebc430342d630e7c1a293b7a006389d36a944dfa9f2ad9d51ecf10879ef6d589e86e0ecc58e8cb26185d29bbd6434765ad4da8352061b65d18a442ff6b6ae2f17e375c2277c1cde613599bde789ce12e78c970b8767817477041c308b65433a4754ba4f559c73f720612182f5ca918948bff0217776f23775d0e5784748409826fd2ad03d50bbfbb12f67ef472be2da6f7dc096b6f7aaf11682da09ba998f9a095ae5b81a4b45e85169b94d6764c42c7725ed767f23e637afc03864bac437388913338d309ea114926335fd155bfd7d0add6caa514055a024124efdb12d9fd365230b5f3770a3b931c2f03f2be37539cc1a737c61b9ac4f9a53213659356591b8a52b02796a0b9bd1017214c55f63a0ab0a22e86491f7c87bf54304e5dcfa168a6475e4d1caeea4810011d90154aa8e20f560341e7a3561b9eb1c6efc590d277c1fb164dbade150c1dec78d7c1e5bf81c8aae553b6c509f48d364406c2aa40f763f458dc6b73c5172369563c40fe4e2605f75adc7fdabb099bb1083f34aaf63db5abba165921596a1da76e760d347d5ddbbaa3400605199fe9eac0d061be2edfa8677ae16a3b593a26c7449976d28c06b3c6350433116f66c159feb9988584ad6d91f26d7d9d3e111fa527a2b2869b8a83deeca77e267f4bf229968e69b870cace1c09328041a3be1a79b5d9d0b435a68ebe389cc81dd3d151e9d905c85397b9522235206d9b678b1fa95f081e16a9320b73bc994d409eb8336ad55a397899e178705cf7ea951f4e073685c53d42bdb04933f743eb9a895439a589e5c862aa4f59e0a66824df29481adf68e2ff04c5631c183831a51bef34b1d946f976d08ebf31af3839e0e98f002193eeb6bf19d115e463ff6784ca1e616ff13b2870c6a5784d45c104407ff1c921ce23ad8acbbbf491c631ab20f243555f86f6054b9827244b7c3bf2ec0a103013095cdaee0bc3fd674c97b4bc5e4069f807ea0862adec57bcc04e4c1db301310a654f284b87757d8ffe9d307106f76b5ead326b5870fbd76e100610715f77062be54d6dfef417b9e83d21a93dbb5ce6141024b4d4e356a86387be0c9a6d4e8c018af79a945f97bb82f0ed99996390f7382f33dfccf007b8586f0220d430e3c22bc4cb63d0525feb3fd0ae8801860d2c79f2b55d2d07b23ffdf62a636bcc662d2b0dbba89f9408279353e211d90485fd2d357da27709eb14e731907b027579500440d9f2acc490a0b81751ede90fa18ac00fcfd842c8caad468f84ec98b8e2932c66ad7a30547f91b190fe42bb2d8067fca9b0a9c29e6585072654b0388eed852a032a509ceef1ff239dff80abbdf86d23a555632399304c914e094a85034b760ecf9d5ba24c6503811a171bf2359e22693d56db5d5eded4834618565113394a2dcd216e23da1e1962c185c1173d8cb9b6bc37caf93420f215ad2850353fab921b1d2f806b8298c5bf991cc61afe850988233591620650282e6e5bb604c3f1b81b16d0c5ce269d805ce27db8778fde21b16c572ae196b8d397b11777a28dc65a205d2f9f393d9a3515911fb34d26cdb2d9acf8956de70567d20a104cec89548929e08b8c590844ee61c97712d3e380d5873ad8dbea53ee2c5e56a8e7f94a9e7e2c9dd00a45531c280086f211a9c54adbac045f90883e4b20073660f5007df5e21ea57ca7d2eb02971e420274dd8a2bed48a99ecf62e430a21ce0710952e43ac41eb3e6ee9ea35fedca8318a05442b80ca6362cc55325335a6f1ab62bf4c1e88f121fd9c4d7010238ec273e1c87289879377a259678f0fd1d533257f03aee76c122be9bf5704fa10b6b7f5f79d5c45226963c3d9ba9f1f83dc2a63c61cf8a97d508394109dcbc213fc7ce9c01bf0689047197b8684b0b054b364793cadd42cc180d15aa2d7ccf4564292612a513c0b05aa6ea4ba75775b901edc8623fda808b9a0ee64479ebc17fbbb9990e589ac1353fadb4215ee12c14e37d7e987a98cddbe80f36f57980c04ee751bc376caf090c027f8fb2384644fcf0fee1cf98f056186d0d1194c632f643362e09e6ce3c0b73ad2ef7055f81a4b03e116e92631bcebde9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048ad486300ad4153017a4adb90cb15220ecd946d7e1da9d6069505ffd084d412e7fc5479cb6e7eabea08c5f71eaccf5f8df2b5f39cf684ecef627f957b6302e0decbb29c815a274dea884df5dbd4a0a87cc7f34d12ac2740c1aaf52dd064bfc0798673a1e171ef84cb6eb7236aeaefab5f040b24a911f5bacb6a1df820982c81521064666c44b7246102446926e08da55116ee7846984d2598f612b2cf0f7f521ed1e96722ec6dc27c88d10ea29ae3b1f0f8b7bd7e0c309391f7740205314ef030bab4b818e0df7304b924a7db2d79e3967b2ccc3b691d05f76a3a2d68545e52780eceaafe13229e5a4084bcc8bba36161251610432aa8b2954d7a5f50dc37818f94d8f2befa07786e99886666018d914a9e493ad3c83e178aee43cd07a1d2d2e47b6d577d151d677a3985cf45ad96fc5db2b02fa47c69f2826ca2f9d44f8a4065e0415180f9da0104fe2a0f8e5c4d2429560d14bb85eedacb10eea72bb5bad0ec8212e7e3f6869b2c18441fb9c4b70ab7ade85783a27cdac788d0d2a4bcd402b99eaeb4987ef78e51fb6c3dc86cea25c9c34a7292915afbd19fd6ae39ad951185a5ad36b5dab514c723951497a6a6490878eb536c90262214d416c20ab3d4925d87b8ca98691fe9e8fca6e60dcbb427db55a8c6802e6bc04669bcaa0bb112f04c181e5e8cdf2fdb6f2c2254e71fce380875181b982a683c7760e50196473d104971737c1d54b2e331c6446dc14dfdd03c06e5be624c53913349937070e472a0ae646ad72ca603a786964557a337fec578d0142222a3bc965dd982f746f315b2b5b509ce946f6350f41df3d41b26aeeb9d6dc6c30064ff93b1cee7f40cb50e928a84dd3965515581b01cb9bcfb2b62b2270a84c1354be1544392f2d113e29300d7c91b5e8a464a6e274235fad3dd557cd7a6596c24001f7a04c7d54551291f61470908accd20722e707134e72f1d6e2b912763fa4432a5a9968c9f892192a34072c4f9c7b4387c1c3971ad4a80096b8da21e3129f587f4f912aa16ad04d0d50216d205e86461c02fdaa256994e24005b72eaddbcb0cd2ab22b6a50770f911c521b5fb94d33d297af8f45d40d409d5d8e39477940178f043644c0f1e57e2487d0de09dd5149bb751bd28377b2a07cf388fd07b32e59982ab73f0dd36d352afaf086250a0e35085cbaf7f4a363e23e6a67a3f8ba1a01cb0bfa4f0608abbff55b12a71bc782aa763531fa83afe6c8a7462133629ed5974bc47b76f64f86133256621a3b5b96140b2bfef9aa46945021acff9b3e445544e4ec4d366b9492d7fb8d72e6fd16a8ee11b5ce9f1d363cc0f595c8fedabd852232cd917abbab54a0283da23544939e07cce98ef50629116377e4a47ead57d2519d297380f0179e1a25d5116bdd06b365a7e300e6a40835ab689cfd94f000a2a5fb1e5179620e4ba3055a928373275d8455dbab361910898a1d15871bc184f89b64f83cf9fbbca0f6e48411f6d4bcfe84906bab59b2db01e891883b2b582a6bde3b3a97a3e670530bbd3f323094e41be1be64089ddad6a542c035aeeee5d34301887f68f1d9a331dfc2ba32af5cf866de58d476e5ec6a2edc913778f27e8df917e69e5f8be5c79fa7f178d17e13bbe64bd382544b59528906bd65c513afe32ccb6df786c6f29428674ec8e1b693cc0589419a04b9b48c5e9e199a36c29b939b54a70cf89e00698106cbb370a3e56029708eba0cc2f82524bf5ad904043d1c5d3d8d49cbc371986dfdcc3f619769a0ab4966a51e4af1c3ae1ac880280ea95659283a29c82c051c65993733000000000000000000000000000000014a0eb4f0c9c2dfec265e282e97b0b645f00000000000000000000000000000000002ae05f0c559d20f85ae08f24fe9447000000000000000000000000000000c4fe53508a22b2acceb99c2d2437f499af000000000000000000000000000000000021015fbc703cb5ad1ac784c7ff58fd000000000000000000000000000000b2314d155e88ba9fbf93fa84f79786f61b00000000000000000000000000000000001d80cdf9d43c5a779dbf5b98b1df3e0000000000000000000000000000009549e9cf6b35413637baf9562cf9ee67c100000000000000000000000000000000001d74b73c835b408fe0b2bb50cabcfe000000000000000000000000000000c1d4666fe6f13827b36bb73b4e24fbeb2b000000000000000000000000000000000022b4eeebb4e430fd3a1236ab9b8dcf00000000000000000000000000000009e0e9b4906d9badb13fc4940fc443b37700000000000000000000000000000000000e44da549d33c58f0b0720b7f8cbcb000000000000000000000000000000e2a8e6e685a025bece92a677088dc80cca0000000000000000000000000000000000085d61c54ab2936631287530ae7b8a000000000000000000000000000000e66a862c9ea4e07fa6225d030d407b560000000000000000000000000000000000001e2c28abb5800bb72c05f899639b210000000000000000000000000000009c911199fb3e5b1e016cb83ed974b132c5000000000000000000000000000000000000b455ecc1069422b6c799fd1c8eff00000000000000000000000000000093cdb871c75e5801e21b06a9f93f1d0af5000000000000000000000000000000000017d0dc33d727086996b79f29671f09000000000000000000000000000000775e3b3b694087b89c611d87e2569be1fb00000000000000000000000000000000001477336f6724ea73477b339102e608000000000000000000000000000000d3af5b7d8f4a8abfd92f67731610af142600000000000000000000000000000000000e4131a2f1518f44ab6018d7d5e3800000000000000000000000000000006968d376b68d983480e2cd7fd43750b13500000000000000000000000000000000000916665de5ac81ae2fa6e97f50322a00000000000000000000000000000050dcabc2a55861764a0b826075c5414f6400000000000000000000000000000000000df47e0f6074507d882b4932b54e59000000000000000000000000000000a7b4053b6ec800b218698a2c1ee2a6855800000000000000000000000000000000001ebc23de04afb6a8fe18c63f5aaa3f0000000000000000000000000000001be52a4c067798580e65588ad03bbe5a3a000000000000000000000000000000000024ce2082a30448a4aaf9de568edd7c00000000000000000000000000000054a2fb2783b959ee5f9191442fbd68f92600000000000000000000000000000000000bc84cead7c68cbe8d50195f6834c800000000000000000000000000000043df2b4701d6e5c19f22322347b884fd2600000000000000000000000000000000002e5843327b229354780c89df426e8a00000000000000000000000000000048f65cd88967b9db10ad5033f84417066a0000000000000000000000000000000000297e8ce62ec12aca41e67800c67dac000000000000000000000000000000e94d232dfb911f32a914c01f4a32dc546000000000000000000000000000000000001c0f8c2bd192d94c22def6a33c6c060000000000000000000000000000009f8d2c090b76a65fe988104035b7d52e37000000000000000000000000000000000001bf044a4cce5ddadb84088c330f72000000000000000000000000000000e5b0b0d0e87dd1634067177b3c8f9baf8a000000000000000000000000000000000028ef93a94c18a66df1a5bc83ef2f5800000000000000000000000000000037fa497156abcf0c9cfcf52ccaf999949b0000000000000000000000000000000000221bfa37f832e6eeb53ea42118c113000000000000000000000000000000458237a268e42541300f3906d007c77cf1000000000000000000000000000000000018f13a7ddb1d11ff2b0f2927dbd9f600000000000000000000000000000047cbaa029638b8d19278657de7aeee31d9000000000000000000000000000000000029dea2274611ee0ba44e33faa85c6f00000000000000000000000000000032c2d871984aa2a309c105326ee2810379000000000000000000000000000000000004fc4bf60921835aa3a845e75be99c000000000000000000000000000000accac78415cdfdc61da682918fab52902e00000000000000000000000000000000002e0689141c1428aa8c84d056d0ce020000000000000000000000000000004240f83860ee4ef0169502bdec31b47f7700000000000000000000000000000000002785992eee08720ac47eb64cb62feb00000000000000000000000000000076459882466797e79a2984345915f259fa00000000000000000000000000000000001f10fdb6ee3ff40cffd01cca6ff2f4000000000000000000000000000000fcfba12e167991b0240c03f4df386f527a000000000000000000000000000000000025cfa01093eeea5c1365ccbee7ed200000000000000000000000000000001384e52efac5e447f8a5158af5500fa48300000000000000000000000000000000000b1b1853ce5b9fc9032ba3e1604bbc0000000000000000000000000000003043ceb159cb7104741f68fdb2d4f69cc700000000000000000000000000000000002f1f9f51c16bb2d8ecd4725347e1e60000000000000000000000000000009f898153483c2365b0ed44f4cc17b5a4c30000000000000000000000000000000000295e56d8d10424614b48b99d41f4dd00000000000000000000000000000085e81c86912b5af21719e451ff92882e1600000000000000000000000000000000002e37910633e327d78c778d3332eb150000000000000000000000000000001eec48a91ddec22bfe4c9d6f9564b3abeb000000000000000000000000000000000026853c48d7b620cbae63208ed05651000000000000000000000000000000225deeda05e750d5b08e1a1d616689a34a00000000000000000000000000000000001b018d981ca3bbb7f48d9fb5dcddf200000000000000000000000000000039c8a5e05bb645398af1550ddc62aa9046000000000000000000000000000000000023c1261ccfd1bf4f98e460728b55070000000000000000000000000000003d0b45310b664f5306ede875b8a22184ed0000000000000000000000000000000000141f4f3eb58291b3d8d985b4f86494000000000000000000000000000000acbf514e588b88814829baf4fcb3f47deb00000000000000000000000000000000002139741280b1459da1cfb9603b3aea000000000000000000000000000000bae1122d221f54bfe41460394564a71abf0000000000000000000000000000000000137347cce9b526149b67eb1d6e7a3d00000000000000000000000000000026bc4029472a2ca5a306d3e9934152b5ae0000000000000000000000000000000000066b8d160ef3c67562213a8617c884000000000000000000000000000000c1141fa9cf1fba0cc6d2e9ca5898186b19000000000000000000000000000000000028b6c1c744ebdeadb693f7f6522cc4000000000000000000000000000000026f11a4cd8bdd6cf063c32c35b8dbaef200000000000000000000000000000000002d6337ee5f6d3ee0b411397f6e21060000000000000000000000000000005709a1716984b61b5041e9819ba151d569000000000000000000000000000000000025ba1e198dd3ce4d447e430c31842f000000000000000000000000000000ec38afec7dd3bdbee4c6b52b34a0e865d7000000000000000000000000000000000017736f5f020352f8984167c572513c0000000000000000000000000000002eb4e48d259cd2f4fccd233a79509ad8080000000000000000000000000000000000147e14740fb27564f59fe28fcf8d3d0000000000000000000000000000001e67f67a303223b76713394340d356357e00000000000000000000000000000000000d4a5778404928e55c88345ead0781000000000000000000000000000000aad83bcffbf9e2beba3b555593f4ec77e600000000000000000000000000000000000f5839662710833beff2c88d29abd400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000007c2aa31cdddd8d6cc114c9baf92eddddb8dd0856874b3938aeed4b6d891d904026c20a07e0a892e72b4f4e9eb12ecbe64b2cf489dcf6b4d0bbd5e157a2db0892de968e848f534666fd30a126d9453589e39066203ee33cc21790bc606c0f010082e6a4fa4c893366559e8462d4293c7ecb1d6e92cfd86870e6d88d82e1e22c1081700d1ee8d69be28630b477ce36daf7e0b337d689349e800a08f2a31110c710264879c616f471d3017c10b384809787503151985201eab0f9d042d5bd03c7314aa7e9372fd91c15484ceda9667aa3ba732587f01ffa9886f20cb4e68e4cb2f0413ab00b6d171609294f1bc73579b63a0a5eb5e08f2c1027117708dafe89e8122510bf3b00bed0c56a99a72bf271f76f731d92a8f3a27bbffbd46de04e8593e07034b498ba21a80273efd5dc104fff93a497686b93bd3a89d1c27a0a32b1e74064541310fc218532b75f698ced1ed6dc9a0788122f2a4fdf71de98f055b26430f00fbd3975278398eb1048909fdc30c68704e5ba89e4d09b32781206702f548259abb4cc66a3158700d7b4c807c4eed9e25b0fc4a120d0f573c22b4eaff6c692004192251578bc6aa3d24cd408e85fb5224cd874bcf53c664a4423744f7ff711c9f3990fbe43a5ff35059b949c19a4e7abfa26bd7fd4ade9457406f376ab84f1da880b28ba2201fc8c664294dabbeb6793e48e0508569b02a5a8623b31a45932b2d75cecfd44c70ce52944eb1c73eb22fa64d1e02b674c1a02805db6afbce630447559fe3812b91e387e7367e6b59baafc3ab7dd29774d9fbfafc5c3f8e40782448bbc1995d25a012211c3731c70ba77f4deb0fab5fb09826ae66b06f34728a1fb35c9388da72cc724e3d7f04a39ffc4c21cbc3c20e2753b3215523f57ea1742d19ca57b5dd64cb7f9b62524b28a62521d59c84c5e9a6cbdcab853bdb42ea0912eb9a1b717b8217ae4f20cab94bce5e06a0b6311e0d3d73c4efe7b8714825522f8ab298375cd05dd07477aa30a59b424d44707b148a0ee4e8ad39366119fbdc2ab86e8aa871ef064750e0fbcf7e628f8ca9c373a236079acd60e6cb306bc6fd2e6c162609d85070d4636812373ff4642a45190bab2759d95cf82297c7a40e2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ab34b32c49a0b7bed5d7035c10db14d8000000000000000000000000000000000020bf79a9b7269b6abfc09eeeaec955000000000000000000000000000000ab1fdc13b60391a57dc68983730446b55d000000000000000000000000000000000003b964ae7a6fee82e168800ea0fe0a000000000000000000000000000000474d6d840c81f9023e97a526bdba7014000000000000000000000000000000000000119d436d478086df28d73a28508a82000000000000000000000000000000561ce83c55e74926f29d0c703796563a6500000000000000000000000000000000002105a214b32e3db7c801af0cc96d5e0000040c","publicInputs":"0x06f32a63ab1a10c44b40a14c94fd4e693830a91920a63778c91df75b67c3a2590000000107280517ca1e78bf1695ef64be32a191c9be596f1187f3c7977faff7e24056bd000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb006b9585a5e170e2ee0ba4ea606cf9b6dac9096e94e5b22d48c247b37ce69514008a03d1cbf04c728546df9b241db51cfbde1c179813e31b957b5313b776ee2a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e630f76f97b5ee7be34ec1043da864e3586334f6df8b48eac5477c1a568bc2a236e28b260237bb24c77306386b852e3775bc6b9ed72afa2fd5cb1da33a76df400000000000000000000000000000000000000000000000000000000000000000ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"} \ No newline at end of file +{"proof":"0x00004d6006f32a63ab1a10c44b40a14c94fd4e693830a91920a63778c91df75b67c3a2590000000000000000000000000000000000000000000000000000000000000001221894f21cae5e98d0c7a1a2658eaf169b0688cf8348dc7be4d5a944d568bd4600000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb00087e2b1632207a64d2be3430a622118411f15477dcf399a057660b8e566041001c2aa1e8a9c646939d1d0d3a1b789e2eb024aa538a4c7864db736646faf6cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e586311f1581539435ce58c90ec4a9d291746a8b33999d1654faffb07f382db2efd3fd6b542f09e9f76c84337f46370f67729ce54c815d35866b4cb2a2672030000000000000000000000000000000000000000000000000000000000000000003f1c36600e57c2c3556b97fe6d9919a7c418380b539dcf74182dacf5baea2e16743433c1b3d551429cfbc09ab7899d4e14d2b5786a3243e29bc9c6c0d76bf100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1e314549c5109330000000000000000000000000000000000000000000000078ab65cae0766dac4000000000000000000000000000000000000000000000006d9729dd2114d251600000000000000000000000000000000000000000000000000025bb48088e2d6000000000000000000000000000000000000000000000004112c333273480d9d00000000000000000000000000000000000000000000000e79ddc992614451e3000000000000000000000000000000000000000000000005d880c4e49e3909410000000000000000000000000000000000000000000000000001adc707a50e7500000000000000000000000000000000000000000000000591960a3c52d5a331000000000000000000000000000000000000000000000005d69c43aaa65acc860000000000000000000000000000000000000000000000011ce4d0df71d9b0da00000000000000000000000000000000000000000000000000007c4b84e96f1200000000000000000000000000000000000000000000000e796d0a9ec64b048d00000000000000000000000000000000000000000000000a9f1811bacc20b1ef0000000000000000000000000000000000000000000000081959aa974bf5661900000000000000000000000000000000000000000000000000014ac071abce30000000000000000000000000000000ca9d55b6e986c398073827360972cbdd6900000000000000000000000000000000001099819f900ee75e8a6ab54c59fa4000000000000000000000000000000081180a8b96072c3f4246e9a036d07f3507000000000000000000000000000000000027d2cbe77a3e0edefc570e90c90b9f000000000000000000000000000000d6ee6d7b1ba024766d6f835521249b7ae4000000000000000000000000000000000016a0da7d14c7230116a9948f6550ca00000000000000000000000000000019227c5f9b9bc32f21583696973ff92ffe00000000000000000000000000000000002e72b67d18384e0ea627c38592ab76000000000000000000000000000000f4ec1a574da16cc52af9cfe52a0a88ac0800000000000000000000000000000000002dd342a68d2d19b030ec0b82734484000000000000000000000000000000f24ff72c85a62ed5b9cdb3ab52878e5d6600000000000000000000000000000000000f7afb370a128f12d63e3649ae47790000000000000000000000000000004b35876712ed72f6999ccf4346aea9dc8800000000000000000000000000000000000b9c4ede9e05409f4df0b886e12a1e000000000000000000000000000000f4338b85257350c3bbafb99d2c1464cb8100000000000000000000000000000000002efbe244cd2cfd9aa0c8f71e50c96200000000000000000000000000000054f2bc452d87e94668fa54fdb54790c9b0000000000000000000000000000000000025980f026372c596860eda2a791d9b00000000000000000000000000000047dd57b3275e8f09905f26b7bc44e48bba0000000000000000000000000000000000010988e60c8f065cf95a1c9a292364000000000000000000000000000000c9119a149e8374416e40f7586311a3861f00000000000000000000000000000000002ad3d93fb74b1be165a915ad72a3380000000000000000000000000000000148b87898085b1b8b915c1878b2a188d000000000000000000000000000000000002a91ee00ef56a5964ff759ca2990ec00000000000000000000000000000091163f22963ea9894fdc40b2516296029f00000000000000000000000000000000001db9fdde7620ad93d46e0fad2cdd1f0000000000000000000000000000005ce65ed82881f4f78356cbe6d94699849c000000000000000000000000000000000014250c7cd0c960952568293d732d20000000000000000000000000000000cde964c7dbc45d7bea0e22c409d3f4bf960000000000000000000000000000000000016cfaf8940e476cdc1852d5a9172d000000000000000000000000000000ca8d4a2f2ec921c4b8f591c2c27dbdd8ae000000000000000000000000000000000027d9c460264941701fcd49bca2b2f61db5f435f1c9b1b0f491d38cf071b8cc67cb453563b2b60c99daaf55a85360d412ae5a3cef67ee78c3be7229910f9f90c068a3131606ba84aa07463e47ac9f2d2fa7f383cb9bda2055d025ba59925a45d09bbc3abf2a607ca649a641fbf19225033120e4db3ca51d56e3ac61527718a0a5f9d106973575780d8803c89bd9e7be0fa40d87661532cbf29108288ae6a1ceae9eb3fea4d2c7a767f4196a8d4117c52bd771c13a22a6986d53dc0734cc775e2b47c6538d0dd5f82ca62ea90010607802774fe2ae0ded6cc0fb00f591b98a8a17e9a1b0592973bcef46339b184bf1660220da8db31103b2f88257f3a6a49c41ed8895a8c759621d5994e7b71b3959c72c4290a83a957c5d7ec3305efc4137c921bc019382bb97aa434a5b206e60258a2c6283d5e2fa72db956e03a261af9807fb352d8394e8a3f8f497604c586cc43808ba9508f19dcd2c88ebdf68f7faf36d5a4ec4b5355c318734e8273a864d923c0d122ead90fb432d9beda2e8ba40fd5132ba52aa3def71f2893378e49b0c65eb0b88e36f6e25b4d27c975fa867555b51cbfd9412744819e753db95c7fa1087dd0965cf48bc50a9e96cbc1b1ce8b2ca27132029dc01101c7e1a13cac34ce8fe0128c1d28e4d69f5057c8eb4de3cd1406dbdb46f45881b41481faf3942ad75aa5612ce5af105c235ef077fae32c577a820333addc7d22ee9917dfe1823b8ff645023a789b1287e074fc0d44e1ddf5c64dd272a6ab61cdab64b9c22e95a0beeaee52b960f0eb444467e546c409a7def039a1ffe2323c7609b807d184b0207cecef406f5e7a413f18d01a6c9cd20fddcee991b2e66c646d2133bb4f296ba1465fb042e3308b159399371602a4600934b56b48c93e145ef89b8ce32e0c4319420852a260fc934bb5b2ddc0e0487fe59a88b074f579df8bc93218b7a750e7656885a450e7e8e3acc01c991025dfa5c3a0c733c02b51b4596ed1b6cca3da27a5aab6f81059fca6c74e504744b8e4f4fcf34be13c1c641e0fa69cec87fe2e61d3828f5ca2c3dd4e23ab8365dff18bf503ff9298b0f7cc5f79640672faa67f6c15a82dd6019b949fb94e03235adfec37cddf6e0c2db7803662f70f700a4134f05db1b7f331aabb24920355a935d257979d043b6f419fb652bb0ac3354a5cad5c22ce0b029083005d775aec13fe5215f2998092ce9d9c6b59e876900ba4a218b02112eabdc30339b7d9b74c357275ee52c2e92e9f840fee659f063205ee913b8771108cd7205061a27fa68b0a5d11ee01390ecf9db47180fd044e5b8e68f20876cb59d884a0634bce681ce910d3839decccbb99548e4b2c48ab58008138387a88edbd3bf541217acce5c99b311743f0a885ab4fc5be60dbd12e3691c9fcded433f2f23cfb02b5baaade2dc7bea9687c53ae5cf93f89ddac6bd8a898b1933a87ad4bb9a16ce069c746023a2d0aa491466b442061961118dcd93432104a203dd855a6a75268d06ef585e2f552d811ca934b2a17e7ce192d56bccdd8262e621a8cc0be364cbd4119113909bcef03f3d310d79c12987f7e2b9a5dd5e76438542e66c6ffb48a32f0baca42f56b4d0387f8ae9548347a56c0b7fed358db3e8a6b2267f0f4186b6a305bab73106ea0559c0c38c8b8f91b56ff8826107e411a14512aa75d9dfea89e51233560d096fb5ede83cb4925de73194869a980b0e3e4f362125d5ff962c13e60b7b5445901eb8aad7c273af9ad2154914b6d87791dee5348803b5f07b63cacc0fe976fd85339a6192505b8b1bf27e0a3947b87e57b803e091afe80a04b88f370722c07c87b4163022c8a45916f0232d73770f3186094533fa2cef9cd818384c0ddd0c4b7802230ae60738f44ac6dfaa3389a3fbbb103c5948ee0262c45f1c4619b30f1fe28037be4f630cc577705107bf585c8183c4b74fe16b9ab6f8c6dba016585ba8ce2bf3e24c49f75fedfc588b10b3d46d4b400c49335b6cee47ca48ed1aeb8bdfd317556091d058b2d82713ddfc91adae10e46be3d90c02bd11c8761e10118eace939f78fb4b27a698ec4e0660bcc540a7c6f921152185a748d5932ea10622bbbc32f885edec3a69cee3773be88a2d58199243b961efb6d4f85468f5d1d3b7315511da9a1138808b18e684baffb1ca91f77901e9928b5e31492e037600e15f1818fcf0970b973bbf36363a463c156abb1d417f1b9e674720beb55647c1bc7e1ef4a8fed5d330baef509cace450e5a5284728d158b39729aa5c09017f21ae28c00e7d7c53ff73e934226723e2f54ff4d20335249473988d3c769e0866720b787e351441001b269c93c71a16a4308f079e8506fbffb3e8fcdbd279dc03003b0e7b77b29093846aeb08ac57b63e9e6ca5da9ff9a92da45ad62a2851dce1617d2a88bb172e575a8fa2ea2b2a73947d8e0bd1e5258fe80b1f23427df5bfd1d0c22f8ca454458f49c05d75a7e015a7adaac6b6a680f2a1f847b8f163a64714b156ee53bd2b5bc153cbac4b9b180b5eda314f86176b9c3f848aff8967e1be2460e45a56ef2c2e5d2a6a432d6b68f99ee6d5bb23934cee0752286dc5e3bebf0b51fd1057ecbe5cdb0777521739a2327d621a2dbb14cf95d64fe5781595e63dead24cf5131c82145bd4d92ed504e9a60893596cdf437fa87481fbe335d33320fe42a330d852b76c0aa33dcb22045d4124e63869a825b672655be11f1539e7fd7ec1d925673b23327ac733382033d7526b09e7816787b77f4025dd8ff9560cd39b607474d881e61d07160c81c07df3d19c9ef9279ed9b9a87fd1b302f2785e6d030135a68128b627337aae616fb0c44ac0904a728e56f32b48a05c43fbca7193b3c0cbaee34a10be73cb5efb067e0a6f639fea08c4cfd9054de1dbcf775f97690502d6c3802b5407c5bb25ef4c51c82dd15622eff5c0dc883975d210126340293c608be656b21422672140c9e218cd85d7a06d0a212266afda817112a23263c790319fdfc82e8ddc9bba8ac8fc18ebb4b74655ce6a87e4fba40888f391e4483a22f17cb0e241ad558f67f921a28be36647e025291b8c3563c0d4195eec985b4b7f31cebd69fd1277c3b71f6a95c2a95745799bac4bfc84d2d8180a3352d6e7c5ec11e9470e104ed350bf8adabf8a5fb98e720f31d8d43b89260c2edb61fd9200a002b069ac3f27375d0a7a99c30137298490a133441e1659a869a6a1738969f55650ae5e20015818c4abd45165534290130c85af0656687023c6771d9b8e96507c02b0afa988c0a3329876aa1cfadbb760660dea99f70828bfe29c5272b7b128f220708fedb4747e814da49a8223d67d398335cd60746db92f3bc2fb4dee71aeb362bc028e3a57b7c3b084aa1a3d7d091fc348d7e6c66ad39307b7bb150b023d76a017cbd7259a19175f3d12a4049dbb68cd9bcc1d90e247fe3e7575b9be5548ecb1303e4899b05ed3fe96c6daa0159a41e5caf66600d0fe9776113d4ec10e32a4a1f17c4577e3e940b49c068b65f30d171a3ed813ec34c3c6a891f76c3aada0b851003e6d72ee3374d19ddd79b82631d45934204c3707e2c53f6249252b1efb95e1b944e13ea3442a2b425c64caa62e80d5a8770526dff7473d4f980773b3087040fb1e72eca5d56620add7fb2772dc91481d845d7e69c2cac5d11bfe8476cddaa119a19be2f7d19a0d6cf00dde3cc7727b829497629abc11ca4c2e173169b12bc284478c0b48994489cb12d0313b8bb5fbc3f397e6433fd13e6f20a9945a128441a52d9e2b37bdb97aefff765a8757deec39f6da1e2c5221d6e3eebfafd98f1471356c5e502404156f8ffca15d9020bc4c34a9f37b35a8759ee0dd42cc5f01eeb00fd87fc66bfc33b91e0f1462a6df820f8d06e5286d8f2b6a8f2f28cdf3b869e2347e75edb5dade6a2341fd6119ce9b236e2f8b103c95112de486515b7ef021625dd028a3009bcb2001879d0656d3f538b2181096e10afaa8741f69ae7149a9620e4005c11c98c438e7d9a9d13eda86a81031e59d5297df58ab48c33a22fc0e00e44373fb8eb35fb90540370844e2368e67f5f51f296af41afb124c5790c307f19a15d5e07a6d8615b623e0e0938b71797048cd0124124983b6ee83f476917c80aa5d7e6ff05d2e6a0871beaddb9e6cedcf9c291fe353896accd666121822ea2184f582f6ac8ec7dd9219b915ec779ee54f5d3cd398680fc81412943f8a9285f09eed8558d9a143946f77d90e49643e4088cd905eafbc32c117491ac81bd7d8703789147fc529acf0d61b7a43545a58a776d881fd9b88b39424b5ffb2c29bd6003bef49bdf90fd9119c2d3b1dbfa1f21464f9429a7977716873c9f4ce112777b1a9dc0f03761819893c52014c0e734b1bb58eb4e8c4817b727fa3766e6b5da8f0e45d6ef3bbed7662348782f6a74fe492711a610751aac932e014c32a3da7c312c73dbe8d0e04868315b24722c96b397eb20f4f071c40c58db960ff6acad6a552673df936d8d40e23a027a917fa2779fc7edb284a155773c725cd73955ea7abc2cc4889333eaa6809996e123959a3a3f8d83c96759ce9e3f7c6c09730bbdd98c1aa07c0680a3d9e6dd843d24e7fe49ec9d21a62d54bff6f64a9ee5e08fb11c3a2f8ad777f36bf832803321bc86f1f4a4f72a2eb1fb41913a6cc6dccdbdc340760ffdaff52d1f1245c0d8334d72f5cf99bdac2be88f755d6c37a8214f12bf49e7153b7e75165d3d6920173724eb228e37c3d3e869772d7e982b350e29c07bfa6311e701c78009064faa24e89582b68e68440c660c810f11d316d670f4aa66e05314c04145895b8d875b1b4dccbe89457ebd946fe0523dbe7ddf5fae64aaea32bb0a84ad33f4b8005c00eb2535d0a9ccb8af87ca7f42a78503ab8a07acd630363f2e1a87cb164e41fcf1be838f39a66288ea938fe72275a6db9cfd23b5a51ffd0a1d8ab5b1ceade4fed78376d97a2ae58b1c68c4a53350511df91ff5710ee2fa4e1649055bb19084952ada33df6ea0c8e0f1e549a2f1e6fbf1988fdf00184c98be1431b48ee04df9088e873dd33ef27eb0256512d25f8c0435cf698d52271f82872ec03f71561862b3435535f6e71f1b075d9d544d45ecc11695b695deb45d750026c294d56366e281ab66f2dd3994a5ac3a14ce157aa5d566db035b00aebc0f801e232803cca81f368079508e3a55a9e8c0914d719f7dcab5c4540d050097c61f2e0137a33b9d4e9c67c0b93a22a3b77bed25dac563925b1077627300712f42751b034ec5b3d57085922c3e7e7359bf4694070e43519adb125ea0fa5b964b20a512d95dd6694bd85101318c90fe2e1267efa53c6496c9e076368292c53c4ee56b19c683ea9f5b1fc87532eccdb8fad939f3687f42694b6af100fa1cbc6c27c8102ae94ca0d7c16c9e8ac6ccb18453be033acbf503e4811e59513b058c4ee7defe1b405e22adf7095fc5c8d4eefbb0f50989d6888e6fc9feeea9cf4e198f320a0b0812e27e24b7d3da6e853fdab5c92f85cfd8dd411c6d6c89fb3edb60e4fc3c670c8fc09cedbf16e9c156ef9bdf4f3af22f9901aa20dda1848c8aac42e59984b4031093542cecf7d2c3a039af76683801b33641e348ed611ac1013d83185c118926cd7af617c3ff1f9fdd3837eed0139bfe0d0432bea5f34a65a36a0a873846b028aa1680748beeffe1a802c1659cc25c9acf2f91fe6bb8dadd4436a80b9370e914d13105c4dbeb1bd584ce3987ae2ff62b245d26b2529874d1f49fd9449e6ad61a8993ef077f2bd170851e3eb51ba4639d81ff2fd9196e8d062227d1c1c344e412d030082a057b6dfd0d5036fd87155a2d759bfdc47245d2e55c553ee876dbc509aeaef065e60c37b09b8989af2f54c604047063bc040e07fad0677c2517f56b1b703eec763782336c9a5863ca6e1f2f52346b4586d2447d552f4f8a68cee8d4257b0fe89f35d6b5cf9d1aecfd13e5295f726f06b75a2ed43a0db405b3f1529f2beb899ac04e4b50cf45a7b68765ef92ab03785519983349f9d884ff92583e0120d9a298acd1dd9ee8234b9c35d6978ff9a282f826c41be47e647e48235ba2ee300fa16102f76dde521ddc19d186b73c27ff9b3b341d1d8ccb71664c02b74a4421d22b2ae4d624350dc2cfadb8202659a381c7d458ed1926d8cde3f3bafdc4022dcba972fbff1cbd43002e205287081e346aa39eb981df15dd01008bffe8375a0f7f302db96bbc960c5f1b44186a28c22f3efd2464fb058313bcd623d68cf3ee1424dbf0dd7f14784dc6874ce573e88dec8bf168a30d724f389436c4a1bbf2141a6307ee84eb712e53b73a93361b7ed19949e68884fb50f7782a172716c134e2030140bf394b092573ecfcc9771fe2320b4b4f1e7462af1a510ec78d9317fd51281ab64c26c0b69ff6dda6ec0528186ad0faea1e1f835a8a03d55265c99647d21dc60b01daa3c3a826a71e7a81d424ed4ef70548004185d1c394a6a4c91c75e520a1665d716cc07e8db3490df6f48695e59fd24df7936adf11fd6c76f3b93fc61af47d4f13c560bcd9f66e0be39f31fe9e01f103bda296ca7a24a1369197a2ad04e2eac8c21f92e029ac27cb43e84940b5c07e9612329c5fd30fbb79dbddd0a226da1b0cddcb5ebe352dfef7e8214a5340477d4b63f597bb991de61ace715c7503c9c99ae748d77219ef2c7afcaf2db0a0ce84f0888f8f92834caf45fa72acf81bd0a24d39f36eddbe02a9ff88b0ab7252df0c39b70805c199bc2d72855b069f13f9e8f0990780814ff0852b103ccd7bea5e80e118bbf517223edf1058498f070ffd27cf08f39ba10af54803457db4066b029146c7399e1ef16e54ff7e494e1b02d84c168f6c2a12450279dbc4544c0dbeb745c86fc87632dfe85ca8fc439d7a3053a9b1c63c64bb32940ae3a3cdba614ddd6ff98b102f6fb680684257b655452b3082fc1456ddb5eb551a5652fc46bb553ca9bfe5fd72c710a0413c4b7e5b200b37ee615524093473b99318f268a2ccef91d09ca66aa77bfa32bbc9149076dd272834a4848f29eb304a652567b5f6ee9a2d42a6c431669f71ba6bf58a2a982c1e28c5cd23179ce6f559c5f5132bd2b698b3161724d96335077f67dd22fee9951b852b6f5169f1194c61a9c526f2fbf8f59e3f9d58ccf91a655ab60edaccfa32042fea7b8a4c37f7afa5dad12747f6de96fc9327c4cf0abb75ac2322aa90d87b13816f3db7113c9114f403bc0fe5573ae876d9930e8ea7af5e48125cd50b371d2565e4cdfb5923b279a6dd8230e58e3b5afa585fee6674d6e5716db5a2464abf23163d7a16ca25c7ebbd95f03498337faf402c703b4c0867a3d39cc707d4dece2281551441763c2b90e0cd7fd734a34bccce474462352281c5830502f5e247050b1d1c46d7897740af413cb9c46018f2eeec615c65ab5a7965ec4b35391daacf0413d252d650f28c2efbbe4aac18145370a218b8a1d79e24ae8906fcabcbc530207e7de442ddd569c4763e77a97d200ae2be108367ac43d3d366bc0c36982e38228b2be51f841a9cfdb98c9f42cab2e34ee55afb8ed45b9430eb848967ae9cb2049aba7b95ae916910b49ccc9787901a2ec6f851f8a0ab7021fa43fbeffc93cc06facafaefd92b11704a252d5ad6e16f17ae8a9b1998a561789934b901b4159e03b0fbb480bdfb6f663959c4b29562d01e8a775b9c44b9e1a62d2ba4a2d85685066b847dcb0f8dcc4496b10041d5bc6234e0ecf76497a0193e7e7aa2609b300616b10c3692f12f4b265f2639d408d25dac1acee6c59600a0f01b98fbd5dc463b040214f30d7b358346351c2825f8104f1546f13387059c8b39f07a9c1863194d2b73c577664b978c19b6bcd65e64afd4927e78ec1d8626ecef2116052ace280816fc1b1cc186d0f276153d9038b7b2b3bc077f9c8a3ce84fba4484b000a8d47d19f9e5328cb52ddab8b88ef9abf4e9f84e7fd97df6740733a16d85a98cd4569624b3f2e5ff7f8d254e5ef53286e60c710b446acac2704137a72f156720f855cc0255a3365ce594033b07eef0c3033ce98118f564819ef65801f53bc1e0a34a0e21abc7411fc71c396e42edae13f5f807f7a2f79b8c85f804be41070f664a2c571c164582c928f7991d0b22e25d1f3319f1b60a61f7515b50b5889d9f4bb860b5145a3e6522506fa7aa34c7f87ee7656ee848185591f8f5f483af0ad1485186d31d613ef216c8789674a42073931c81ccabd884b77ba1479cbfa6aa3f3ed1b9a420f7ce535d19d4da400fe4c32c981e2087aa0c29d1f0142ff5a9c153ddca84062e79406b8426c4f97924950b9ef82f6a097abce445a09f7f869030148c9f7a72195870a9eeea8aa29aa93ec2921103c5bd3432207786381afb0ee572f2ceccf0021d5a2ce58679660f61d0d2619a3449489dcdc282f178223ed4f4636cbdfcc2118d31fba11378eb82c9ff5bc03bd69f198fbf63a5f6befb633be1a9e8e2bbdb133751ac604cce3cec313b48633719e9dd0b8a7916771a4b945c48996d13909c2fb952d39ac4adb75ecc2a4cf5db2178ad83ac95355ed862621304fb3d86fac62c61cca81abb5b628bd37472ba4bf4dbb3b2667eaf3b476ad980d87561512d9a10317c74dd2157b5e6181f1ef7c73438b3a4d394c401ce9215d3d03e4d3fe9e8105e648c5c684be8cc1c57c6e7bc70e29a47dd1bb5663d9b49b0b8ff3e7456be1113c8c8eb409d034d5688d6d148d416a0fa3945dc3860f23ff1ee6f4d8ac219118a28944db7061c51457c09bf97c8871a6ba6fc71849ec5baa7420709bc53b21aedfedc384f01d9c01e0091ff2736074143cb080baafff845ddefff7700808e274a56bf03d38c256536603878e346d0f47ed7002e7da6347b63a996f4fff76b2e000b11d6acde02c82d54c02c6093f099b481dce32022d817f21968a9dfd4a623822000dc618333f1929e149b18176c476ae4962042cb735a78a9b38eb30dc629a45947e5259217eec6266b3245b6589abff779e7b07d875fa903304ee96a1c16f5ccb122445362c13a16d2396e55666509342b9a9007337c0f22ab153a07920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001402f7659df3ce4b0bfa819b34f29c0f800d94162e03d2a4be37a2198f936ed70db4e58202eab407bdba483e989c8111922c71128e041a66da0d33f4835259d402d89783ff57170ab96b3aff910be4d2b64533b63d1c40433ed765c8a94cc6332e5f83b76282da1f46f08356349ad2582f792eb17a2673e895da46e01c2c8f350aab4e3cb5da218e9e596ba882ef9d62d950553b7f4f7ec360802011f5e85ff91bf63aafcdd53c44fe2db368a87455f21216924ef69539245eedfe6c6d32fb261564f88acfb671f82dec451fc8d19fa8a83ceb159999bd06396dba6a273bd093099f70a592e3cd931487dc21b8579419924a55b1eb48acd718d81d2188f854a22d2382f46605ffa664d0bbd3db337760273af98b957ad443d4304a08548aecaa1a4d6ed4e7169cd76a91b9fc30a006c4d32de3b2191fd868422affb2b6425a0e1d408d02105c088eec9cafab13a5c8581e09c0d7b46230ac8ce3eb78a18e0a9e300e2e5755002c308852d2d7a63bb4fcbb44b465bdedbfa618948505cc4b7ba23038d231dc8a11bfd7c078c21684edcb89b585bbe94ff795bbf76ad19642ab2d04c59ae6995141156908b56567f1aa2ff9fde626abda743706f3732c97460da423232162662b2d1ada17aa317cc8eaa705a07664c549b68f68837509f545c4f21f89a1cf2e9bf58f4c3826abd7e36442159374b0b9fbf1f068455ee46d5fab89217b00e1d5b92e9eb8e080ebde50fb3b142f2c7ad82359e56e7cfc08ecd802ab089aa2a8f458d4c5d20d5b4af86d7e93679d733ba41771d2c600b9841c012732215d655092a96f71ea81cf619fdbad73841d58444ee320316dc33a9a6247cc7f00636ddb0f5195c8cf49d66df0d2fa81e71bd0697589d7d16e9d66736e4ab21a1862ca3242544f5944ecfae168e77553b865263a1b5c4015284476549d4341ff0f0a9ff123dc5981de4646f53305305acddbf6879e0cb5e1913a2db655b2c3fb0e471d707375a93f30c500c1e6d84c2482e67f8781e2e7a970a7a5b819c179602dd80ef283ff3b9c6ecc7644d3995492acd0c6b34ce7a042b67ce44de924a5cf2895daf8f1953387d27048afad60b6625707aedfa2280a4dcf7800605534119f0a403b2e983004fdfc563ea25be5a8fbeec9a7977866e39376defe79a02c600816a39dd8f7151193c9acaf5ff453f9fb0f1287a54b886b3a73d22e7a8f350a7423abe64976b74963111ac5d96927dcd77d9c42e226815ef093e7aee71910f2410a4871f6f2f3fbc119cd73de82053a670e2d8271532c74dfc10b6f21e27f6d1623029782b7b3325589642a9b62b5646228f7761dddbfecdbe601dfe68dfdb4b100c68140a2e0c1f8547a8907d10c97228ef4ed84d836ec90895a8041c3b2f18323202006853989462ddd65da3e0fc9f341af8c027f49dfc3b6f450401c3bc61f05651b24f3cbfcb90076d8b52a653d214e5defa2a91106a01dd8b97701e7dad4166e196a20a4d78ee1d4fd6b759ebe21dc4749546367c3c8cc5ede0d04684b6101c3691c0bbaff670529eeccda5bd603065f4badb3b420f7ac3cd6df3cae9ce81427a4594869cc7ef87a05bd16d9fec0755be22d8379ec4455e3673e5e6e296110b58c1fbf16379a111301021f14f72bdb1d6823cfe3c3b0845ef2ecb4e14d1010af6857f22c5a75427ce225894454333b6cc21cbb530b73b62577773d55dd3d110f67b79bff7bf6bc29e6ea7d626e555374bc721c310bb584b06b0489ccc6f50060dcca1e966da7b611ee59a6aab337543b38f5523da01b751fabfcfcfde70a0000000000000000000000000000006e99400a2e669210b323b13e4a559562340000000000000000000000000000000000113587ff735be1bd07037d32afa6c20000000000000000000000000000006d61fb1ba9632b8cbc76132b5b2a4f5dbf0000000000000000000000000000000000264a56b9aaebc291ff766c2368d7b20000000000000000000000000000007fb5b38f675b9dd9adf1119e77bf6d1b2500000000000000000000000000000000001b5f6eecfd877030f4b801591720c400000000000000000000000000000044a28ec206f26f99a7fe98bdfb82bd225d000000000000000000000000000000000002dff7548595122ed0e4f353f5ad32000000000000000000000000000000bbc30b9415db001f70fdd8987beb1c3e9c00000000000000000000000000000000002d8652e9ad4e0a4c2ca8eda205c27c00000000000000000000000000000087b1b7f5e9abe2f8dc781bdac7fff1aa1100000000000000000000000000000000000d95630725a26fe91e15b78056b1500000000000000000000000000000009350c0aecfa2f72e376bf403ec8721f86d00000000000000000000000000000000000c6d69390ac401c6fc8096c173b49f000000000000000000000000000000b9a4dea2978f80a7fd5c8e51be6532ad97000000000000000000000000000000000015ac99e0063363eba179d9bddf370500000000000000000000000000000029692467d705f2920dcf22b32f79fd3be80000000000000000000000000000000000079354a1a7faf934f32b3869c64d6b000000000000000000000000000000f2617d01e89a14e588bd8f6a599b8f9e8f00000000000000000000000000000000002026b9dc6c9c2ea6c9b6d97ad5e7cf00000000000000000000000000000073167a42c43fb98d38ff8f48623b8027d400000000000000000000000000000000000d68131afcb0dd20f4972cf543772b000000000000000000000000000000afaf580c7bf00931cd0c4102f8aaa7fcbb00000000000000000000000000000000000c7217eaf7d8bb18f8748c77bdb31e0000000000000000000000000000000ed9d41f73191606c11301a7b542dcfea400000000000000000000000000000000001fd2713b9e5b9e5117fe3732873c9400000000000000000000000000000091750a4e48f1feefffe3c4cc8dfa11b384000000000000000000000000000000000020c1023a70b1d27bca3d24b06d5579000000000000000000000000000000d74a7d51338e01a28b236c60ff8fbbf394000000000000000000000000000000000004e1232c30bfcce815402234f0713f0000000000000000000000000000006bde145ebdd90ca2a689e65943777fd80600000000000000000000000000000000002df07a18ed3fe8b2c070a57c944bbc000000000000000000000000000000d5b24ca3dc8e1f9d29e2a17ade852f1b7b000000000000000000000000000000000026360c3bda49bc3f5f5093c2a1c5d5000000000000000000000000000000dba886e62edf0787e22c73d9fa6ade05830000000000000000000000000000000000178848e705cb1df7f400459540a5e700000000000000000000000000000025170aa9b693320182c04029c5e7e4121900000000000000000000000000000000000bd42d893c4e1c614c357437d6bc74000000000000000000000000000000c4ecd919483c1a2ab845f12dc62077900b000000000000000000000000000000000022f1c6248535576a0717d01d4bf1ea000000000000000000000000000000965739e421592c66c4afb6565d07df6a5900000000000000000000000000000000000c66b846cea6387827a86b53f06a69000000000000000000000000000000460c41dff84a6bce3104c5f6c492c66f7c0000000000000000000000000000000000064f261a0890bd5ef9598cf92611d7000000000000000000000000000000de718a32a28cfaa98d7295000e72c06fc6000000000000000000000000000000000009015a08cdef623230553bbef5b9ac000000000000000000000000000000b7858366c56a0c3da72210cb7b47ebd3ad000000000000000000000000000000000012c80e071fb1aff3b4afc0d80c0902000000000000000000000000000000b32fcd0ca6d0c4e2a35634876ae6b4bcfc00000000000000000000000000000000002295aec998986d3260001b2652da8500000000000000000000000000000073ea51d2509a870718aa82b7f00e974ad2000000000000000000000000000000000023324c74a3b371c2f5e5b31ccfbce80000000000000000000000000000000e2b8a28a33389a4c09c8af5d4e7422ea700000000000000000000000000000000000041d2e62390a06022c514c42745300000000000000000000000000000002b5f6ed66337998236038a6fff1fc69502000000000000000000000000000000000023d1351f04cd9ef7abe1048ddf6c3e000000000000000000000000000000ce251683e0567843df829e63031f4350df00000000000000000000000000000000002ec340753bd9e99424e8910d75ab02000000000000000000000000000000d35ee5cb042d4aec737803c5dea2630c1b00000000000000000000000000000000000daac357d6549124e57d6eedc0b98c000000000000000000000000000000b0309944ea7e471a09fd971bfb9c36c7e7000000000000000000000000000000000007a368b4c1f6e35c0a480af8414da900000000000000000000000000000021f1225266bea5ab62e97d6c3e2fd7048000000000000000000000000000000000000a9599125c1c84e9f03acd8fcf7a1f0000000000000000000000000000004f93b5557f54eeb37238973013387e6efc00000000000000000000000000000000002a543ca44d941e21b40b2aeaffd067000000000000000000000000000000a3ffd818a85aff4e9590b851012624dcd200000000000000000000000000000000000db87fb229661e5b4f3c1491b7036a00000000000000000000000000000087c95c65ed8c8c03b7ff4c8b83dab94254000000000000000000000000000000000004670b0675c3aa38c1e2fd7d32b6ea000000000000000000000000000000a602a4b43bf305b4c888b9a3ba01964ac3000000000000000000000000000000000012ab08c2a76a1a8f30626d315d20da0000000000000000000000000000005fb41fc6841b45666f000ec89dc579a2e800000000000000000000000000000000002d975efc23a624beb991500f03d4da0000000000000000000000000000004b7702c931ece3321f98d33e85c557ef13000000000000000000000000000000000007bac1ea635e4f038b3a994679d54d0000000000000000000000000000000d079e5da08c9dcb4de83eb932d9c9903c00000000000000000000000000000000000682058115f71bc5f523d1d22e30a600000000000000000000000000000054fd9150dcee9f00d909983a171c0a599500000000000000000000000000000000002d48075b83ac71ac534ae7d2aa536f000000000000000000000000000000ed5a96f25e597e90a24fb0c975b83a94a80000000000000000000000000000000000286dd35274d7ceddfadc89056807f8000000000000000000000000000000c00e574323056ecdbb5d95b5a47edd2aba00000000000000000000000000000000001608e6ba98f975d660532fe37b3a4e000000000000000000000000000000544f7a22b7c1d9abbde125f75aefd6aaa5000000000000000000000000000000000020ea76d9fa9beca8380bb22786eb610000000000000000000000000000007ccab9b2d3cf3fde1b40b5f4b8f805b8a10000000000000000000000000000000000209c01f19dc726d266498735ce39ff0000000000000000000000000000006623a5a32ef26f9cba849c2a3b5d83f4d0000000000000000000000000000000000008b8b0ca5a59ef76e1cf60c225e528000000000000000000000000000000b56ec3076bdb7efb74026f41615800a0d600000000000000000000000000000000001423b8dea35a8c0a50385d1b3fd90a0000000000000000000000000000002d1e81446b8c8b2f0ffc3e938cb93b9abc0000000000000000000000000000000000128e448ffc3b1d09bb6783e8058d6d0000000000000000000000000000007dd79fa7035ce3f454326310495ee858a7000000000000000000000000000000000000efb75639b2a3995e71dd437a87fe0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002f6e89e0c65369b14dcc2c500f1653e2ba0053cde393ff12a24aa7de7199043904f6e693ca4adb84f584bba58973a656fea999d21d2efed64d68ef99bdce42e8224cb7be17d12a3223468b5ad8b342779c65f128f23a4a871ff9ea0dac5f94ac19511f9f9e02b4e6cad2370327ba5cfd9f56a1eb61ecf26002ceaec5956a3e0c07cf7141c8ab2e596ab54faebe21f755ba27fd7827a62aa79077e68dffc9a5db202e77fc3a7b1ee01c71e10b4364e1d2f60b3914f243ce8cd2f618fc654680af1d043d652ea6e0f94a1ff8184d1801b34e194007dbcae2e2cc17bc7a07112d2c24cae6f901fd2ac5aa4b4d5f57a80f4ca19132fdb8394094abb6b644bc1eeaf60623ffd184eb42d69422fe3c8e7e0a5484104237c6d958ceeedf99115ebb23560a4ee4d99bd2cc2d9849764fb6559e84ab8c1d0e7b95035151f352b79276cf9e0b5c1b63ce6c1617492d76d8e142dda684bcb496c4cdde8690daddb45be1dbd127bb04a18858b34bacc49be594a39529f480c2aff0b8b67833e7953543f9a4a0057a24f76635c33bebfbc2781a62109d5210a5b13481ad512ddf9c36489be1c00d8989acb1cf7a2e02d624709d64b4aaecb354be0042c31be8c1a0711005482f27a30debe3a61beec341ea0be8357862e8eef1611d25a3aa5ef24d10e086e55d20781cb4cc82d176856102ed95e23228a3fcc1018c82af19eaff112f49ff2781177c7fab42b6ce9d966bc00cd97599627593135e2303cc474f901e61b9b89027069fc33f61a60b3e3bf3ae214db2fe8b94eccde58ffa6439c880bdd8d36f88d2241abbfe0d66f0d9293cd917e89d821159777eaaf33b161f1a486086ff4731dc16ea174843bc9db2c00b4d44221a51d99201bc6f9bbea6cc0c76750f9ea7adb117f445ef3bdbaeec5f74bdcc560dfb38070d574c5a36868d7e259599d32b44a015d26a96cf4ecf6b87753b90cfde8f7126bf21a2644bd8f4ef3c0496eb9b2fdc200267b60b708a173e0d9cf60d568bb809f330e66d07fcee343a558487037afb041f2f05543014ce39617d817df11c8bc033dca9b7879ff2e94653c5f4b979081c1ad70b66e6e75726d2a35d17bd4f1c63a0da3cf0ce7868061f4a6f0071dda90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006433fe684a939fe75a79663e5496d1680000000000000000000000000000000000000ba38b32961bbbd1dfb4742ae9ed5e000000000000000000000000000000638380b39c287b4e608ce046004a50e60600000000000000000000000000000000002b3900dc5cf28d0d8c086719f213ed0000000000000000000000000000005a49a0137d2c4bb49fb4aa0728b8989e97000000000000000000000000000000000027ebfae78d513cdef72f79f46392d3000000000000000000000000000000ca4f7981894ec601389fbb86e8c0941d7f00000000000000000000000000000000000604b2124e61269498e2e20f005a19000000b3","publicInputs":"0x06f32a63ab1a10c44b40a14c94fd4e693830a91920a63778c91df75b67c3a25900000001221894f21cae5e98d0c7a1a2658eaf169b0688cf8348dc7be4d5a944d568bd46000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb00087e2b1632207a64d2be3430a622118411f15477dcf399a057660b8e566041001c2aa1e8a9c646939d1d0d3a1b789e2eb024aa538a4c7864db736646faf6cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e586311f1581539435ce58c90ec4a9d291746a8b33999d1654faffb07f382db2efd3fd6b542f09e9f76c84337f46370f67729ce54c815d35866b4cb2a2672030000000000000000000000000000000000000000000000000000000000000000003f1c36600e57c2c3556b97fe6d9919a7c418380b539dcf74182dacf5baea2e16743433c1b3d551429cfbc09ab7899d4e14d2b5786a3243e29bc9c6c0d76bf10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"} \ No newline at end of file diff --git a/yarn-project/ethereum/src/contracts/rollup.ts b/yarn-project/ethereum/src/contracts/rollup.ts index 9dff11ec4e47..6f563811bd37 100644 --- a/yarn-project/ethereum/src/contracts/rollup.ts +++ b/yarn-project/ethereum/src/contracts/rollup.ts @@ -456,8 +456,12 @@ export class RollupContract { return this.rollup.read.getStatus([address]); } - getBlobPublicInputsHash(blockNumber: bigint) { - return this.rollup.read.getBlobPublicInputsHash([blockNumber]); + getBlobCommitmentsHash(blockNumber: bigint) { + return this.rollup.read.getBlobCommitmentsHash([blockNumber]); + } + + getCurrentBlobCommitmentsHash() { + return this.rollup.read.getCurrentBlobCommitmentsHash(); } getStakingAsset() { diff --git a/yarn-project/foundation/src/fields/bls12_point.ts b/yarn-project/foundation/src/fields/bls12_point.ts index 03728f892a29..94027f68e1e5 100644 --- a/yarn-project/foundation/src/fields/bls12_point.ts +++ b/yarn-project/foundation/src/fields/bls12_point.ts @@ -1,6 +1,7 @@ import type { ProjPointType } from '@noble/curves/abstract/weierstrass'; /* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381'; +import { inspect } from 'util'; import { toBufferBE } from '../bigint-buffer/index.js'; import { randomBoolean } from '../crypto/random/index.js'; @@ -48,6 +49,14 @@ export class BLS12Point { return this.toString(); } + [inspect.custom]() { + return `BLS12Point { + x: ${inspect(this.x)}, + y: ${inspect(this.y)}, + isInfinite: ${inspect(this.isInfinite)}, + }`; + } + static get schema() { return hexSchemaFor(BLS12Point); } diff --git a/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts b/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts index b0da314f6df2..590946024c0c 100644 --- a/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts +++ b/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts @@ -1,9 +1,17 @@ -import { BlobPublicInputs, BlockBlobPublicInputs, Poseidon2Sponge, SpongeBlob } from '@aztec/blob-lib'; +import { + BlobAccumulatorPublicInputs, + BlockBlobPublicInputs, + FinalBlobAccumulatorPublicInputs, + FinalBlobBatchingChallenges, + Poseidon2Sponge, + SpongeBlob, +} from '@aztec/blob-lib'; import { type AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED, AZTEC_MAX_EPOCH_DURATION, - BLOBS_PER_BLOCK, + BLS12_FQ_LIMBS, + BLS12_FR_LIMBS, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS, type NESTED_RECURSIVE_PROOF_LENGTH, @@ -12,9 +20,8 @@ import { ROLLUP_HONK_VERIFICATION_KEY_LENGTH_IN_FIELDS, type TUBE_PROOF_LENGTH, } from '@aztec/constants'; -import { toHex } from '@aztec/foundation/bigint-buffer'; -import { Fr } from '@aztec/foundation/fields'; -import { mapTuple } from '@aztec/foundation/serialize'; +import { BLS12Fq, BLS12Fr, BLS12Point, Fr } from '@aztec/foundation/fields'; +import { assertLength, mapTuple } from '@aztec/foundation/serialize'; import type { MembershipWitness } from '@aztec/foundation/trees'; import { type AvmAccumulatedData, @@ -63,11 +70,12 @@ import type { AvmAccumulatedData as AvmAccumulatedDataNoir, AvmCircuitPublicInputs as AvmCircuitPublicInputsNoir, AvmProofData as AvmProofDataNoir, + BLS12_381_Fq as BLS12FqNoir, + BLS12_381_Fr as BLS12FrNoir, BaseOrMergeRollupPublicInputs as BaseOrMergeRollupPublicInputsNoir, BaseParityInputs as BaseParityInputsNoir, - BLS12_381_Fr as BigNum, - BlobCommitment as BlobCommitmentNoir, - BlobPublicInputs as BlobPublicInputsNoir, + BigCurve, + BlobAccumulatorPublicInputs as BlobAccumulatorPublicInputsNoir, BlockBlobPublicInputs as BlockBlobPublicInputsNoir, BlockMergeRollupInputs as BlockMergeRollupInputsNoir, BlockRootOrBlockMergePublicInputs as BlockRootOrBlockMergePublicInputsNoir, @@ -77,6 +85,8 @@ import type { ConstantRollupData as ConstantRollupDataNoir, EmptyBlockRootRollupInputs as EmptyBlockRootRollupInputsNoir, FeeRecipient as FeeRecipientNoir, + FinalBlobAccumulatorPublicInputs as FinalBlobAccumulatorPublicInputsNoir, + FinalBlobBatchingChallenges as FinalBlobBatchingChallengesNoir, MergeRollupInputs as MergeRollupInputsNoir, Field as NoirField, ParityPublicInputs as ParityPublicInputsNoir, @@ -150,26 +160,46 @@ import { /* eslint-disable camelcase */ /** - * Maps a BigNum coming to/from noir. - * TODO(): Is BigInt the best way to represent this? * @param number - The BigNum representing the number. * @returns The number */ -export function mapBLS12BigNumFromNoir(bignum: BigNum): bigint { - // TODO(Miranda): there's gotta be a better way to convert this - const paddedLimbs = [ - `0x` + bignum.limbs[2].substring(2).padStart(4, '0'), - bignum.limbs[1].substring(2).padStart(30, '0'), - bignum.limbs[0].substring(2).padStart(30, '0'), - ]; - return BigInt(paddedLimbs[0].concat(paddedLimbs[1], paddedLimbs[2])); +export function mapBLS12FrFromNoir(bignum: BLS12FrNoir): BLS12Fr { + return BLS12Fr.fromNoirBigNum(bignum); +} + +export function mapBLS12FrToNoir(number: BLS12Fr): BLS12FrNoir { + return { + limbs: assertLength(number.toNoirBigNum().limbs, BLS12_FR_LIMBS), + }; +} + +/** + * @param number - The BigNum representing the number. + * @returns The number + */ +export function mapBLS12FqFromNoir(bignum: BLS12FqNoir): BLS12Fq { + return BLS12Fq.fromNoirBigNum(bignum); +} + +export function mapBLS12FqToNoir(number: BLS12Fq): BLS12FqNoir { + return { + limbs: assertLength(number.toNoirBigNum().limbs, BLS12_FQ_LIMBS), + }; +} + +/** + * @param number - The BigCurve representing the point. + * @returns The point + */ +export function mapBLS12PointFromNoir(bigcurve: BigCurve): BLS12Point { + return new BLS12Point(mapBLS12FqFromNoir(bigcurve.x), mapBLS12FqFromNoir(bigcurve.y), bigcurve.is_infinity); } -// TODO(MW): Use BLS12Field's .toNoirBigNum() -export function mapBLS12BigNumToNoir(number: bigint): BigNum { - const hex = toHex(number, true); +export function mapBLS12PointToNoir(point: BLS12Point): BigCurve { return { - limbs: ['0x' + hex.substring(36), '0x' + hex.substring(6, 36), hex.substring(0, 6)], + x: mapBLS12FqToNoir(point.x), + y: mapBLS12FqToNoir(point.y), + is_infinity: point.isInfinite, }; } @@ -239,40 +269,85 @@ export function mapSpongeBlobFromNoir(spongeBlob: SpongeBlobNoir): SpongeBlob { } /** - * Maps blob commitment to noir. - * @param commitment - The stdlib commitment. - * @returns The noir commitment. + * Maps blob challenges to noir. + * @param challenges - The stdlib challenges. + * @returns The noir challenges. */ -export function mapBlobCommitmentToNoir(commitment: [Fr, Fr]): BlobCommitmentNoir { +export function mapFinalBlobBatchingChallengesToNoir( + challenges: FinalBlobBatchingChallenges, +): FinalBlobBatchingChallengesNoir { return { - inner: mapTuple(commitment, mapFieldToNoir), + z: mapFieldToNoir(challenges.z), + gamma: mapBLS12FrToNoir(challenges.gamma), }; } /** - * Maps blob public inputs to noir. - * @param blobPublicInputs - The stdlib blob public inputs. - * @returns The noir blob public inputs. + * Maps blob challenges from noir. + * @param challenges - The noir challenges. + * @returns The stdlib challenges. */ -export function mapBlobPublicInputsToNoir(blobPublicInputs: BlobPublicInputs): BlobPublicInputsNoir { - return { - z: mapFieldToNoir(blobPublicInputs.z), - y: mapBLS12BigNumToNoir(blobPublicInputs.y), +export function mapFinalBlobBatchingChallengesFromNoir( + challenges: FinalBlobBatchingChallengesNoir, +): FinalBlobBatchingChallenges { + return new FinalBlobBatchingChallenges(mapFieldFromNoir(challenges.z), mapBLS12FrFromNoir(challenges.gamma)); +} - kzg_commitment: mapBlobCommitmentToNoir(blobPublicInputs.kzgCommitment), +/** + * Maps blob accumulator public inputs to noir. + * @param blobPublicInputs - The stdlib blob accumulator inputs. + * @returns The noir blob accumulator public inputs. + */ +export function mapBlobAccumulatorPublicInputsToNoir( + blobPublicInputs: BlobAccumulatorPublicInputs, +): BlobAccumulatorPublicInputsNoir { + return { + blob_commitments_hash_acc: mapFieldToNoir(blobPublicInputs.blobCommitmentsHashAcc), + z_acc: mapFieldToNoir(blobPublicInputs.zAcc), + y_acc: mapBLS12FrToNoir(blobPublicInputs.yAcc), + c_acc: mapBLS12PointToNoir(blobPublicInputs.cAcc), + gamma_acc: mapFieldToNoir(blobPublicInputs.gammaAcc), + gamma_pow_acc: mapBLS12FrToNoir(blobPublicInputs.gammaPowAcc), }; } /** - * Maps blob public inputs from noir. - * @param blobPublicInputs - The noir blob public inputs. - * @returns The stdlib blob public inputs. + * Maps blob accumulator public inputs from noir. + * @param blobPublicInputs - The noir blob accumulator public inputs. + * @returns The stdlib blob accumulator inputs. + */ +export function mapBlobAccumulatorPublicInputsFromNoir( + blobPublicInputs: BlobAccumulatorPublicInputsNoir, +): BlobAccumulatorPublicInputs { + return new BlobAccumulatorPublicInputs( + mapFieldFromNoir(blobPublicInputs.blob_commitments_hash_acc), + mapFieldFromNoir(blobPublicInputs.z_acc), + mapBLS12FrFromNoir(blobPublicInputs.y_acc), + mapBLS12PointFromNoir(blobPublicInputs.c_acc), + mapFieldFromNoir(blobPublicInputs.gamma_acc), + mapBLS12FrFromNoir(blobPublicInputs.gamma_pow_acc), + ); +} + +/** + * Maps final blob accumulator public inputs from noir. + * @param finalBlobPublicInputs - The noir blob accumulator public inputs. + * @returns The stdlib final blob accumulator inputs. */ -export function mapBlobPublicInputsFromNoir(blobPublicInputs: BlobPublicInputsNoir): BlobPublicInputs { - return new BlobPublicInputs( - mapFieldFromNoir(blobPublicInputs.z), - mapBLS12BigNumFromNoir(blobPublicInputs.y), - mapTupleFromNoir(blobPublicInputs.kzg_commitment.inner, 2, mapFieldFromNoir), +export function mapFinalBlobAccumulatorPublicInputsFromNoir( + finalBlobPublicInputs: FinalBlobAccumulatorPublicInputsNoir, +): FinalBlobAccumulatorPublicInputs { + return new FinalBlobAccumulatorPublicInputs( + mapFieldFromNoir(finalBlobPublicInputs.blob_commitments_hash), + mapFieldFromNoir(finalBlobPublicInputs.z), + mapBLS12FrFromNoir(finalBlobPublicInputs.y), + // TODO(MW): add conversion when public inputs final + BLS12Point.decompress( + Buffer.concat([ + mapFieldFromNoir(finalBlobPublicInputs.c[0]).toBuffer().subarray(1), + mapFieldFromNoir(finalBlobPublicInputs.c[1]).toBuffer().subarray(-17), + ]), + ), ); } @@ -285,7 +360,9 @@ export function mapBlockBlobPublicInputsToNoir( blockBlobPublicInputs: BlockBlobPublicInputs, ): BlockBlobPublicInputsNoir { return { - inner: mapTuple(blockBlobPublicInputs.inner, mapBlobPublicInputsToNoir), + start_blob_accumulator: mapBlobAccumulatorPublicInputsToNoir(blockBlobPublicInputs.startBlobAccumulator), + end_blob_accumulator: mapBlobAccumulatorPublicInputsToNoir(blockBlobPublicInputs.endBlobAccumulator), + final_blob_challenges: mapFinalBlobBatchingChallengesToNoir(blockBlobPublicInputs.finalBlobChallenges), }; } @@ -298,7 +375,9 @@ export function mapBlockBlobPublicInputsFromNoir( blockBlobPublicInputs: BlockBlobPublicInputsNoir, ): BlockBlobPublicInputs { return new BlockBlobPublicInputs( - mapTupleFromNoir(blockBlobPublicInputs.inner, BLOBS_PER_BLOCK, mapBlobPublicInputsFromNoir), + mapBlobAccumulatorPublicInputsFromNoir(blockBlobPublicInputs.start_blob_accumulator), + mapBlobAccumulatorPublicInputsFromNoir(blockBlobPublicInputs.end_blob_accumulator), + mapFinalBlobBatchingChallengesFromNoir(blockBlobPublicInputs.final_blob_challenges), ); } @@ -380,7 +459,7 @@ export function mapBlockRootOrBlockMergePublicInputsToNoir( vk_tree_root: mapFieldToNoir(blockRootOrBlockMergePublicInputs.vkTreeRoot), protocol_contract_tree_root: mapFieldToNoir(blockRootOrBlockMergePublicInputs.protocolContractTreeRoot), prover_id: mapFieldToNoir(blockRootOrBlockMergePublicInputs.proverId), - blob_public_inputs: mapTuple(blockRootOrBlockMergePublicInputs.blobPublicInputs, mapBlockBlobPublicInputsToNoir), + blob_public_inputs: mapBlockBlobPublicInputsToNoir(blockRootOrBlockMergePublicInputs.blobPublicInputs), }; } @@ -430,11 +509,7 @@ export function mapRootRollupPublicInputsFromNoir( mapFieldFromNoir(rootRollupPublicInputs.vk_tree_root), mapFieldFromNoir(rootRollupPublicInputs.protocol_contract_tree_root), mapFieldFromNoir(rootRollupPublicInputs.prover_id), - mapTupleFromNoir( - rootRollupPublicInputs.blob_public_inputs, - AZTEC_MAX_EPOCH_DURATION, - mapBlockBlobPublicInputsFromNoir, - ), + mapFinalBlobAccumulatorPublicInputsFromNoir(rootRollupPublicInputs.blob_public_inputs), ); } @@ -612,11 +687,7 @@ export function mapBlockRootOrBlockMergePublicInputsFromNoir( mapFieldFromNoir(blockRootOrBlockMergePublicInputs.vk_tree_root), mapFieldFromNoir(blockRootOrBlockMergePublicInputs.protocol_contract_tree_root), mapFieldFromNoir(blockRootOrBlockMergePublicInputs.prover_id), - mapTupleFromNoir( - blockRootOrBlockMergePublicInputs.blob_public_inputs, - AZTEC_MAX_EPOCH_DURATION, - mapBlockBlobPublicInputsFromNoir, - ), + mapBlockBlobPublicInputsFromNoir(blockRootOrBlockMergePublicInputs.blob_public_inputs), ); } @@ -670,6 +741,8 @@ function mapBlockRootRollupDataToNoir(data: BlockRootRollupData): BlockRootRollu previous_archive_sibling_path: mapTuple(data.previousArchiveSiblingPath, mapFieldToNoir), new_archive_sibling_path: mapTuple(data.newArchiveSiblingPath, mapFieldToNoir), previous_block_header: mapHeaderToNoir(data.previousBlockHeader), + start_blob_accumulator: mapBlobAccumulatorPublicInputsToNoir(data.startBlobAccumulator), + final_blob_challenges: mapFinalBlobBatchingChallengesToNoir(data.finalBlobChallenges), prover_id: mapFieldToNoir(data.proverId), }; } @@ -678,7 +751,7 @@ function mapBlockRootRollupBlobDataToNoir(data: BlockRootRollupBlobData): BlockR return { // @ts-expect-error - below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)' blobs_fields: mapTuple(data.blobFields, mapFieldToNoir), - blob_commitments: mapTuple(data.blobCommitments, mapBlobCommitmentToNoir), + blob_commitments: mapTuple(data.blobCommitments, mapBLS12PointToNoir), blobs_hash: mapFieldToNoir(data.blobsHash), }; } diff --git a/yarn-project/noir-protocol-circuits-types/src/utils/server/foreign_call_handler.ts b/yarn-project/noir-protocol-circuits-types/src/utils/server/foreign_call_handler.ts index e34122a56045..36ed54f2946a 100644 --- a/yarn-project/noir-protocol-circuits-types/src/utils/server/foreign_call_handler.ts +++ b/yarn-project/noir-protocol-circuits-types/src/utils/server/foreign_call_handler.ts @@ -1,5 +1,14 @@ -import { Blob, BlockBlobPublicInputs, SpongeBlob } from '@aztec/blob-lib'; -import { Fr } from '@aztec/foundation/fields'; +import { Blob, BlobAccumulatorPublicInputs, FinalBlobBatchingChallenges, SpongeBlob } from '@aztec/blob-lib'; +import { + BLOBS_PER_BLOCK, + BLOB_ACCUMULATOR_PUBLIC_INPUTS, + BLS12_FQ_LIMBS, + BLS12_FR_LIMBS, + BLS12_POINT, + FIELDS_PER_BLOB, + SPONGE_BLOB_LENGTH, +} from '@aztec/constants'; +import { BLS12Fq, BLS12Fr, BLS12Point, Fr } from '@aztec/foundation/fields'; import { applyStringFormatting, createLogger } from '@aztec/foundation/log'; import type { ForeignCallInput, ForeignCallOutput } from '@aztec/noir-acvm_js'; @@ -16,31 +25,62 @@ export async function foreignCallHandler(name: string, args: ForeignCallInput[]) const fieldsFr: Fr[] = fields.map((field: string) => Fr.fromString(field)); log.verbose('debug_log ' + applyStringFormatting(msg, fieldsFr)); } else if (name === 'evaluateBlobs') { + // Args are nested arrays with a max depth of one. If structs change using these nested arrays will break => + // we flatten all inputs and use constants. + const flattenedArgs = args.flat(); + let offset = 0; // TODO(#10323): this was added to save simulation time (~1min in ACVM, ~3mins in wasm -> 500ms). // The use of bignum adds a lot of unconstrained code which overloads limits when simulating. // If/when simulation times of unconstrained are improved, remove this. // Create and evaluate our blobs: - const paddedBlobsAsFr: Fr[] = args[0].map((field: string) => Fr.fromString(field)); - const kzgCommitments = args[1].map((field: string) => Fr.fromString(field)); + // - args[0] is an array of raw blob fields: + const paddedBlobsAsFr: Fr[] = flattenedArgs + .slice(offset, (offset += FIELDS_PER_BLOB * BLOBS_PER_BLOCK)) + .map((field: string) => Fr.fromString(field)); + // - args[1] is an array of BLOBS_PER_BLOCK commitments, which are BLS12_381 points: {x: bignum, y: bignum, is_inf: bool} + // TODO(#14646): Omit/compress some fields to reduce number of public inputs & outputs here? + const kzgCommitmentsFields = flattenedArgs.slice(offset, (offset += BLS12_POINT * BLOBS_PER_BLOCK)); + const kzgCommitments: BLS12Point[] = []; + for (let i = 0; i < kzgCommitmentsFields.length; i += BLS12_POINT) { + const x = BLS12Fq.fromNoirBigNum({ limbs: kzgCommitmentsFields.slice(i, i + BLS12_FQ_LIMBS) }); + const y = BLS12Fq.fromNoirBigNum({ + limbs: kzgCommitmentsFields.slice(i + BLS12_FQ_LIMBS, i + BLS12_FQ_LIMBS * 2), + }); + const isInfinite = Fr.fromString(kzgCommitmentsFields[i + BLS12_FQ_LIMBS * 2]).toBool(); + kzgCommitments.push(new BLS12Point(x, y, isInfinite)); + } + + // - args[2] is the spongeblob accumulator const spongeBlob = SpongeBlob.fromFields( - args - .slice(2) + flattenedArgs + .slice(offset, (offset += SPONGE_BLOB_LENGTH)) .flat() .map((field: string) => Fr.fromString(field)), ); + // - args[3] is the challenges struct, containing z (BNFr) and gamma (BLS12Fr) + // TODO(#14646): Omit/compress some fields to reduce number of public inputs & outputs here? + const finalBlobChallenges = new FinalBlobBatchingChallenges( + Fr.fromString(flattenedArgs[offset++]), + BLS12Fr.fromNoirBigNum({ limbs: flattenedArgs.slice(offset, (offset += BLS12_FR_LIMBS)) }), + ); + + // - args[4] is the start blob batching accumulator + // TODO(#14646): Omit/compress some fields to reduce number of public inputs & outputs here? + const startBlobAccumulatorFields = flattenedArgs.slice(offset, (offset += BLOB_ACCUMULATOR_PUBLIC_INPUTS)); + const startBlobAccumulator = BlobAccumulatorPublicInputs.fromFields(startBlobAccumulatorFields.map(Fr.fromString)); + const blobsAsFr = paddedBlobsAsFr.slice(0, spongeBlob.expectedFields); // NB: the above used to be: // const blobsAsFr: Fr[] = args[0].map((field: string) => Fr.fromString(field)).filter(field => !field.isZero()); // ...but we now have private logs which have a fixed number of fields and may have 0 values. // TODO(Miranda): trim 0 fields from private logs const blobs = await Blob.getBlobs(blobsAsFr); - const blobPublicInputs = BlockBlobPublicInputs.fromBlobs(blobs); // Checks on injected values: const hash = await spongeBlob.squeeze(); blobs.forEach((blob, i) => { - const injected = kzgCommitments.slice(2 * i, 2 * i + 2); - const calculated = blob.commitmentToFields(); - if (!calculated[0].equals(injected[0]) || !calculated[1].equals(injected[1])) { + const injected = kzgCommitments[i]; + const calculated = BLS12Point.decompress(blob.commitment); + if (!calculated.equals(injected)) { throw new Error(`Blob commitment mismatch. Real: ${calculated}, Injected: ${injected}`); } if (!hash.equals(blob.fieldsHash)) { @@ -49,7 +89,8 @@ export async function foreignCallHandler(name: string, args: ForeignCallInput[]) ); } }); - return Promise.resolve([blobPublicInputs.toFields().map(field => field.toString())]); + const endBlobAccumulator = await startBlobAccumulator.accumulateBlobs(blobs, finalBlobChallenges); + return Promise.resolve([endBlobAccumulator.toFields().map(field => field.toString())]); } else if (name === 'noOp') { // Workaround for compiler issues where data is deleted because it's "unused" } else { diff --git a/yarn-project/prover-client/src/block-factory/light.test.ts b/yarn-project/prover-client/src/block-factory/light.test.ts index 38468b4ea120..838480e3f854 100644 --- a/yarn-project/prover-client/src/block-factory/light.test.ts +++ b/yarn-project/prover-client/src/block-factory/light.test.ts @@ -1,5 +1,5 @@ import { TestCircuitProver } from '@aztec/bb-prover'; -import { Blob, SpongeBlob } from '@aztec/blob-lib'; +import { BatchedBlob, Blob, SpongeBlob } from '@aztec/blob-lib'; import { BLOBS_PER_BLOCK, FIELDS_PER_BLOB, @@ -12,8 +12,7 @@ import { TUBE_VK_INDEX, } from '@aztec/constants'; import { padArrayEnd, times, timesParallel } from '@aztec/foundation/collection'; -import { sha256ToField } from '@aztec/foundation/crypto'; -import { Fr } from '@aztec/foundation/fields'; +import { BLS12Point, Fr } from '@aztec/foundation/fields'; import { type Tuple, assertLength } from '@aztec/foundation/serialize'; import { ProtocolCircuitVkIndexes, ProtocolCircuitVks, TubeVk } from '@aztec/noir-protocol-circuits-types/server/vks'; import type { ProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types'; @@ -55,6 +54,7 @@ import { jest } from '@jest/globals'; import { buildHeaderFromCircuitOutputs, + getBlobsHashFromBlobs, getLastSiblingPath, getRootTreeSiblingPath, getSubtreeSiblingPath, @@ -225,6 +225,8 @@ describe('LightBlockBuilder', () => { return block.header; }; + let blobsHash: Buffer; + // Builds the block header using circuit outputs // Requires a callback for manually assembling the merge rollup tree const buildExpectedHeader = async ( @@ -251,7 +253,13 @@ describe('LightBlockBuilder', () => { ); const endState = new StateReference(messageTreeSnapshot, partialState); - const expectedHeader = buildHeaderFromCircuitOutputs(previousRollups, parityOutput, rootOutput, endState); + const expectedHeader = buildHeaderFromCircuitOutputs( + previousRollups, + parityOutput, + rootOutput, + blobsHash, + endState, + ); // Ensure that the expected mana used is the sum of the txs' gas used const expectedManaUsed = txs.reduce((acc, tx) => acc + tx.gasUsed.totalGas.l2Gas, 0); @@ -344,7 +352,8 @@ describe('LightBlockBuilder', () => { const newArchiveSiblingPath = await getRootTreeSiblingPath(MerkleTreeId.ARCHIVE, expectsFork); const blobFields = txs.map(tx => tx.txEffect.toBlobFields()).flat(); const blobs = await Blob.getBlobs(blobFields); - const blobsHash = sha256ToField(blobs.map(b => b.getEthVersionedBlobHash())); + const startBlobAccumulator = await BatchedBlob.newAccumulator(blobs); + blobsHash = getBlobsHashFromBlobs(blobs); const rootParityVk = getVkData('RootParityArtifact'); const rootParityInput = new RootParityInput( @@ -362,6 +371,8 @@ describe('LightBlockBuilder', () => { previousArchiveSiblingPath, newArchiveSiblingPath, previousBlockHeader, + startBlobAccumulator: startBlobAccumulator.toBlobAccumulatorPublicInputs(), + finalBlobChallenges: startBlobAccumulator.finalBlobChallenges, proverId: Fr.ZERO, }); @@ -382,11 +393,11 @@ describe('LightBlockBuilder', () => { const blobData = BlockRootRollupBlobData.from({ blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_BLOCK), blobCommitments: padArrayEnd( - blobs.map(b => b.commitmentToFields()), - [Fr.ZERO, Fr.ZERO], + blobs.map(b => BLS12Point.decompress(b.commitment)), + BLS12Point.ZERO, BLOBS_PER_BLOCK, ), - blobsHash, + blobsHash: new Fr(blobsHash), }); if (previousRollupData.length === 1) { diff --git a/yarn-project/prover-client/src/mocks/test_context.ts b/yarn-project/prover-client/src/mocks/test_context.ts index aad0c397dc17..22b2b06e7c11 100644 --- a/yarn-project/prover-client/src/mocks/test_context.ts +++ b/yarn-project/prover-client/src/mocks/test_context.ts @@ -137,6 +137,10 @@ export class TestContext { return blockNumber === 0 ? this.worldState.getCommitted().getInitialHeader() : this.headers.get(blockNumber); } + public setBlockHeader(header: BlockHeader, blockNumber: number) { + this.headers.set(blockNumber, header); + } + public getPreviousBlockHeader(currentBlockNumber = this.blockNumber): BlockHeader { return this.getBlockHeader(currentBlockNumber - 1)!; } diff --git a/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts b/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts index 643afab151f2..8bfbd6928725 100644 --- a/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts +++ b/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts @@ -1,4 +1,4 @@ -import { Blob, type SpongeBlob } from '@aztec/blob-lib'; +import { BatchedBlobAccumulator, Blob, type SpongeBlob } from '@aztec/blob-lib'; import { ARCHIVE_HEIGHT, MAX_CONTRACT_CLASS_LOGS_PER_TX, @@ -15,7 +15,7 @@ import { import { makeTuple } from '@aztec/foundation/array'; import { padArrayEnd } from '@aztec/foundation/collection'; import { sha256Trunc } from '@aztec/foundation/crypto'; -import { Fr } from '@aztec/foundation/fields'; +import { BLS12Point, Fr } from '@aztec/foundation/fields'; import { type Tuple, assertLength, serializeToBuffer, toFriendlyJSON } from '@aztec/foundation/serialize'; import { MembershipWitness, MerkleTreeCalculator, computeUnbalancedMerkleRoot } from '@aztec/foundation/trees'; import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree'; @@ -243,12 +243,28 @@ export const buildBlobHints = runInSpan( async (_span: Span, txEffects: TxEffect[]) => { const blobFields = txEffects.flatMap(tx => tx.toBlobFields()); const blobs = await Blob.getBlobs(blobFields); - const blobCommitments = blobs.map(b => b.commitmentToFields()); + // TODO(#13430): The blobsHash is confusingly similar to blobCommitmentsHash, calculated from below blobCommitments: + // - blobsHash := sha256([blobhash_0, ..., blobhash_m]) = a hash of all blob hashes in a block with m+1 blobs inserted into the header, exists so a user can cross check blobs. + // - blobCommitmentsHash := sha256( ...sha256(sha256(C_0), C_1) ... C_n) = iteratively calculated hash of all blob commitments in an epoch with n+1 blobs (see calculateBlobCommitmentsHash()), + // exists so we can validate injected commitments to the rollup circuits correspond to the correct real blobs. + // We may be able to combine these values e.g. blobCommitmentsHash := sha256( ...sha256(sha256(blobshash_0), blobshash_1) ... blobshash_l) for an epoch with l+1 blocks. + const blobCommitments = blobs.map(b => BLS12Point.decompress(b.commitment)); const blobsHash = new Fr(getBlobsHashFromBlobs(blobs)); return { blobFields, blobCommitments, blobs, blobsHash }; }, ); +export const accumulateBlobs = runInSpan( + 'BlockBuilderHelpers', + 'accumulateBlobs', + async (_span: Span, txs: ProcessedTx[], startBlobAccumulator: BatchedBlobAccumulator) => { + const blobFields = txs.flatMap(tx => tx.txEffect.toBlobFields()); + const blobs = await Blob.getBlobs(blobFields); + const endBlobAccumulator = startBlobAccumulator.accumulateBlobs(blobs); + return endBlobAccumulator; + }, +); + export const buildHeaderFromCircuitOutputs = runInSpan( 'BlockBuilderHelpers', 'buildHeaderFromCircuitOutputs', @@ -257,13 +273,13 @@ export const buildHeaderFromCircuitOutputs = runInSpan( previousRollupData: BaseOrMergeRollupPublicInputs[], parityPublicInputs: ParityPublicInputs, rootRollupOutputs: BlockRootOrBlockMergePublicInputs, + blobsHash: Buffer, endState: StateReference, ) => { if (previousRollupData.length > 2) { throw new Error(`There can't be more than 2 previous rollups. Received ${previousRollupData.length}.`); } - const blobsHash = rootRollupOutputs.blobPublicInputs[0].getBlobsHash(); const numTxs = previousRollupData.reduce((sum, d) => sum + d.numTxs, 0); const outHash = previousRollupData.length === 0 @@ -359,6 +375,7 @@ export function getBlobsHashFromBlobs(inputs: Blob[]): Buffer { } // Validate that the roots of all local trees match the output of the root circuit simulation +// TODO: does this get called? export async function validateBlockRootOutput( blockRootOutput: BlockRootOrBlockMergePublicInputs, blockHeader: BlockHeader, diff --git a/yarn-project/prover-client/src/orchestrator/block-proving-state.ts b/yarn-project/prover-client/src/orchestrator/block-proving-state.ts index 8dab72b970bd..3f0aa9eb10ee 100644 --- a/yarn-project/prover-client/src/orchestrator/block-proving-state.ts +++ b/yarn-project/prover-client/src/orchestrator/block-proving-state.ts @@ -1,4 +1,4 @@ -import { SpongeBlob } from '@aztec/blob-lib'; +import { BatchedBlobAccumulator, SpongeBlob } from '@aztec/blob-lib'; import { type ARCHIVE_HEIGHT, BLOBS_PER_BLOCK, @@ -9,7 +9,7 @@ import { type RECURSIVE_PROOF_LENGTH, } from '@aztec/constants'; import { padArrayEnd } from '@aztec/foundation/collection'; -import { Fr } from '@aztec/foundation/fields'; +import { BLS12Point, Fr } from '@aztec/foundation/fields'; import type { Tuple } from '@aztec/foundation/serialize'; import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees'; import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree'; @@ -34,7 +34,7 @@ import type { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees'; import { type BlockHeader, type GlobalVariables, StateReference } from '@aztec/stdlib/tx'; import { VkData } from '@aztec/stdlib/vks'; -import { buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js'; +import { accumulateBlobs, buildBlobHints, buildHeaderFromCircuitOutputs } from './block-building-helpers.js'; import type { EpochProvingState } from './epoch-proving-state.js'; import type { TxProvingState } from './tx-proving-state.js'; @@ -56,6 +56,9 @@ export class BlockProvingState { public blockRootRollupStarted: boolean = false; public block: L2Block | undefined; public spongeBlobState: SpongeBlob | undefined; + public startBlobAccumulator: BatchedBlobAccumulator | undefined; + public endBlobAccumulator: BatchedBlobAccumulator | undefined; + public blobsHash: Buffer | undefined; public totalNumTxs: number; private txs: TxProvingState[] = []; public error: string | undefined; @@ -74,6 +77,9 @@ export class BlockProvingState { ) { this.baseParityProvingOutputs = Array.from({ length: NUM_BASE_PARITY_PER_ROOT_PARITY }).map(_ => undefined); this.totalNumTxs = 0; + if (this.blockNumber == parentEpoch.firstBlockNumber) { + this.startBlobAccumulator = BatchedBlobAccumulator.newWithChallenges(parentEpoch.finalBlobBatchingChallenges); + } } public get blockNumber() { @@ -97,7 +103,6 @@ export class BlockProvingState { if (!this.spongeBlobState) { throw new Error(`Invalid block proving state, call startNewBlock before adding transactions.`); } - const txIndex = this.txs.length; this.txs[txIndex] = tx; return txIndex; @@ -146,6 +151,30 @@ export class BlockProvingState { this.blockRootProvingOutput = provingOutput; } + public setBlock(block: L2Block) { + this.block = block; + } + + public setStartBlobAccumulator(accumulator: BatchedBlobAccumulator) { + this.startBlobAccumulator = accumulator; + } + + public setEndBlobAccumulator(accumulator: BatchedBlobAccumulator) { + this.endBlobAccumulator = accumulator; + } + + public async accumulateBlobs() { + if (!this.block || !this.startBlobAccumulator) { + // We only want to accumulate once we have all txs, so we wait until the block is set. + return; + } + const endBlobAccumulator = await accumulateBlobs( + this.allTxs.map(t => t.processedTx), + this.startBlobAccumulator, + ); + this.setEndBlobAccumulator(endBlobAccumulator); + } + // Returns the complete set of transaction proving state objects public get allTxs() { return this.txs; @@ -202,6 +231,7 @@ export class BlockProvingState { const previousRollupData = await Promise.all(nonEmptyProofs.map(p => this.#getPreviousRollupData(p!))); const blobData = await this.#getBlockRootRollupBlobData(); + this.blobsHash = blobData.blobsHash.toBuffer(); if (previousRollupData.length === 1) { return { @@ -225,6 +255,10 @@ export class BlockProvingState { throw new Error('Root parity is not ready.'); } + if (!this.blockRootProvingOutput || !this.endBlobAccumulator) { + throw new Error('Block root not ready for padding.'); + } + // Use the new block header and archive of the current block as the previous header and archiver of the next padding block. const newBlockHeader = await this.buildHeaderFromProvingOutputs(); const newArchive = this.blockRootProvingOutput!.inputs.newArchive; @@ -235,6 +269,8 @@ export class BlockProvingState { previousArchiveSiblingPath: this.lastArchiveSiblingPath, newArchiveSiblingPath: this.newArchiveSiblingPath, previousBlockHeader: newBlockHeader, + startBlobAccumulator: this.endBlobAccumulator.toBlobAccumulatorPublicInputs(), + finalBlobChallenges: this.endBlobAccumulator.finalBlobChallenges, proverId, }); @@ -285,10 +321,18 @@ export class BlockProvingState { } const endState = new StateReference(this.l1ToL2MessageTreeSnapshotAfterInsertion, endPartialState); + // TODO(MW): cleanup + if (!this.blobsHash) { + this.blobsHash = ( + await buildBlobHints(this.txs.map(txProvingState => txProvingState.processedTx.txEffect)) + ).blobsHash.toBuffer(); + } + return buildHeaderFromCircuitOutputs( previousRollupData.map(d => d.baseOrMergeRollupPublicInputs), this.rootParityProvingOutput!.inputs, this.blockRootProvingOutput!.inputs, + this.blobsHash, endState, ); } @@ -300,7 +344,12 @@ export class BlockProvingState { // Returns true if we have sufficient inputs to execute the block root rollup public isReadyForBlockRootRollup() { const childProofs = this.#getChildProofsForBlockRoot(); - return this.block !== undefined && this.rootParityProvingOutput !== undefined && childProofs.every(p => !!p); + return ( + this.block !== undefined && + this.rootParityProvingOutput !== undefined && + this.endBlobAccumulator !== undefined && + childProofs.every(p => !!p) + ); } // Returns true if we have sufficient root parity inputs to execute the root parity circuit @@ -329,6 +378,8 @@ export class BlockProvingState { previousArchiveSiblingPath: this.lastArchiveSiblingPath, newArchiveSiblingPath: this.newArchiveSiblingPath, previousBlockHeader: this.previousBlockHeader, + startBlobAccumulator: this.startBlobAccumulator!.toBlobAccumulatorPublicInputs(), + finalBlobChallenges: this.startBlobAccumulator!.finalBlobChallenges, proverId, }); } @@ -338,7 +389,7 @@ export class BlockProvingState { const { blobFields, blobCommitments, blobsHash } = await buildBlobHints(txEffects); return BlockRootRollupBlobData.from({ blobFields: padArrayEnd(blobFields, Fr.ZERO, FIELDS_PER_BLOB * BLOBS_PER_BLOCK), - blobCommitments: padArrayEnd(blobCommitments, [Fr.ZERO, Fr.ZERO], BLOBS_PER_BLOCK), + blobCommitments: padArrayEnd(blobCommitments, BLS12Point.ZERO, BLOBS_PER_BLOCK), blobsHash, }); } diff --git a/yarn-project/prover-client/src/orchestrator/block_building_helpers.test.ts b/yarn-project/prover-client/src/orchestrator/block_building_helpers.test.ts index a9896c8d6845..d55a1adcc1d8 100644 --- a/yarn-project/prover-client/src/orchestrator/block_building_helpers.test.ts +++ b/yarn-project/prover-client/src/orchestrator/block_building_helpers.test.ts @@ -1,5 +1,4 @@ -import { BlobPublicInputs } from '@aztec/blob-lib'; -import { Fr } from '@aztec/foundation/fields'; +import { BLS12Point, Fr } from '@aztec/foundation/fields'; import { updateInlineTestData } from '@aztec/foundation/testing/files'; import { TxEffect, TxHash } from '@aztec/stdlib/tx'; @@ -16,24 +15,28 @@ describe('buildBlobHints', () => { expect(blobFields).toEqual([]); expect(blobCommitments.length).toBe(1); - const blobCommitmentStr = fieldArrToStr(blobCommitments[0]); - expect(blobCommitmentStr).toMatchInlineSnapshot( - `"[0x00c0000000000000000000000000000000000000000000000000000000000000, 0]"`, - ); + const blobCommitmentStr = blobCommitments[0].compress().toString('hex'); + expect(blobCommitmentStr).toEqual(BLS12Point.COMPRESSED_ZERO.toString('hex')); const blobsHashStr = blobsHash.toString(); expect(blobsHashStr).toMatchInlineSnapshot(`"0x001cedbd7ea5309ef9d1d159209835409bf41b6b1802597a52fa70cc82e934d9"`); - const publicInputs = BlobPublicInputs.fromBlob(blobs[0]); - expect(publicInputs.y).toBe(0n); - const zStr = publicInputs.z.toString(); + expect(blobs.length).toBe(1); + expect(blobs[0].evaluationY).toEqual(Buffer.alloc(32)); + const zStr = blobs[0].challengeZ.toString(); expect(zStr).toMatchInlineSnapshot(`"0x0ac4f3ee53aedc4865073ae7fb664e7401d10eadbe3bbcc266c35059f14826bb"`); + // TODO(MW): add conversion when public inputs finalised + const blobCommitmentsFields = [ + new Fr(blobCommitments[0].compress().subarray(0, 31)), + new Fr(blobCommitments[0].compress().subarray(31, 48)), + ]; + // Run with AZTEC_GENERATE_TEST_DATA=1 to update noir test data. updateInlineTestData( 'noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/empty_block_root_rollup_inputs.nr', - 'expected_empty_effect_blob_commitment', - blobCommitmentStr, + 'expected_empty_effect_blob_commitment_fields', + fieldArrToStr(blobCommitmentsFields), ); updateInlineTestData( 'noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/empty_block_root_rollup_inputs.nr', @@ -62,21 +65,27 @@ describe('buildBlobHints', () => { expect(blobFields.length).toBe(5 + 7); expect(blobCommitments.length).toBe(1); - const blobCommitmentStr = fieldArrToStr(blobCommitments[0]); + const blobCommitmentStr = blobCommitments[0].compress().toString('hex'); expect(blobCommitmentStr).toMatchInlineSnapshot( - `"[0x008c32fe581c8fdba12c0d7597911dead2d937d68525bae655508412bb53bb98, 0x0000000000000000000000000000006aaa0680f21270e7d8de4e19da5164f95c]"`, + `"8c32fe581c8fdba12c0d7597911dead2d937d68525bae655508412bb53bb986aaa0680f21270e7d8de4e19da5164f95c"`, ); const blobsHashStr = blobsHash.toString(); expect(blobsHashStr).toMatchInlineSnapshot(`"0x00a965619c8668b834755678b32d023b9c5e8588ce449f44f7fa9335455b5cc5"`); - const publicInputs = BlobPublicInputs.fromBlob(blobs[0]); - expect(publicInputs.y).toMatchInlineSnapshot( - `17179655213294173540446545222866729565951946174336496855332549059993428157821n`, + expect(blobs.length).toBe(1); + expect(blobs[0].evaluationY.toString('hex')).toMatchInlineSnapshot( + `"25fb571bd6a15d4e3a8f6fe199b714c51e1e03ef40366e2e77e5c5733ab9e57d"`, ); - const zStr = publicInputs.z.toString(); + const zStr = blobs[0].challengeZ.toString(); expect(zStr).toMatchInlineSnapshot(`"0x1f92b871671f27a378d23f1cef10fbd8f0d90dd7172da9e3c3fc1aa745a072c3"`); + // TODO(MW): add conversion when public inputs finalised + const blobCommitmentsFields = [ + new Fr(blobCommitments[0].compress().subarray(0, 31)), + new Fr(blobCommitments[0].compress().subarray(31, 48)), + ]; + // Run with AZTEC_GENERATE_TEST_DATA=1 to update noir test data. updateInlineTestData( 'noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr', @@ -90,17 +99,12 @@ describe('buildBlobHints', () => { ); updateInlineTestData( 'noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr', - 'expected_blobs_hash', - blobsHashStr, - ); - updateInlineTestData( - 'noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr', - 'expected_blob_commitment', - blobCommitmentStr, + 'expected_blob_commitment_fields_fixture', + fieldArrToStr(blobCommitmentsFields), ); updateInlineTestData( 'noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/block_root_rollup_inputs.nr', - 'expected_challenge_z', + 'expected_challenge_z_fixture', zStr, ); }); diff --git a/yarn-project/prover-client/src/orchestrator/epoch-proving-state.ts b/yarn-project/prover-client/src/orchestrator/epoch-proving-state.ts index 685128745d3a..9bcc55f67ca9 100644 --- a/yarn-project/prover-client/src/orchestrator/epoch-proving-state.ts +++ b/yarn-project/prover-client/src/orchestrator/epoch-proving-state.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, type FinalBlobBatchingChallenges } from '@aztec/blob-lib'; import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, @@ -48,6 +49,7 @@ export class EpochProvingState { | PublicInputsAndRecursiveProof | undefined; private rootRollupProvingOutput: PublicInputsAndRecursiveProof | undefined; + private finalBatchedBlob: BatchedBlob | undefined; private provingStateLifecycle = PROVING_STATE_LIFECYCLE.PROVING_STATE_CREATED; // Map from tx hash to tube proof promise. Used when kickstarting tube proofs before tx processing. @@ -59,6 +61,7 @@ export class EpochProvingState { public readonly epochNumber: number, public readonly firstBlockNumber: number, public readonly totalNumBlocks: number, + public readonly finalBlobBatchingChallenges: FinalBlobBatchingChallenges, private completionCallback: (result: ProvingResult) => void, private rejectionCallback: (reason: string) => void, ) { @@ -143,6 +146,31 @@ export class EpochProvingState { this.paddingBlockRootProvingOutput = proof; } + public setFinalBatchedBlob(batchedBlob: BatchedBlob) { + this.finalBatchedBlob = batchedBlob; + } + + public async setBlobAccumulators(toBlock?: number) { + let previousAccumulator; + const end = toBlock ? toBlock - this.firstBlockNumber : this.blocks.length; + // Accumulate blobs as far as we can for this epoch. + for (let i = 0; i <= end; i++) { + const block = this.blocks[i]; + if (!block || !block.block) { + // If the block proving state does not have a .block property, it may be awaiting more txs. + break; + } + if (!block.startBlobAccumulator) { + // startBlobAccumulator always exists for firstBlockNumber, so the below should never assign an undefined: + block.setStartBlobAccumulator(previousAccumulator!); + } + if (block.startBlobAccumulator && !block.endBlobAccumulator) { + await block.accumulateBlobs(); + } + previousAccumulator = block.endBlobAccumulator; + } + } + public getParentLocation(location: TreeNodeLocation) { return this.blockRootOrMergeProvingOutputs.getParentLocation(location); } @@ -181,14 +209,15 @@ export class EpochProvingState { return this.blocks.find(block => block?.blockNumber === blockNumber); } - public getEpochProofResult(): { proof: Proof; publicInputs: RootRollupPublicInputs } { - if (!this.rootRollupProvingOutput) { + public getEpochProofResult(): { proof: Proof; publicInputs: RootRollupPublicInputs; batchedBlobInputs: BatchedBlob } { + if (!this.rootRollupProvingOutput || !this.finalBatchedBlob) { throw new Error('Unable to get epoch proof result. Root rollup is not ready.'); } return { proof: this.rootRollupProvingOutput.proof.binaryProof, publicInputs: this.rootRollupProvingOutput.inputs, + batchedBlobInputs: this.finalBatchedBlob, }; } diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator.ts b/yarn-project/prover-client/src/orchestrator/orchestrator.ts index 654b06b423ab..6e42569a861b 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator.ts @@ -1,3 +1,4 @@ +import { FinalBlobBatchingChallenges } from '@aztec/blob-lib'; import { L1_TO_L2_MSG_SUBTREE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, @@ -107,14 +108,26 @@ export class ProvingOrchestrator implements EpochProver { return Promise.resolve(); } - public startNewEpoch(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number) { + public startNewEpoch( + epochNumber: number, + firstBlockNumber: number, + totalNumBlocks: number, + finalBlobBatchingChallenges: FinalBlobBatchingChallenges, + ) { const { promise: _promise, resolve, reject } = promiseWithResolvers(); const promise = _promise.catch((reason): ProvingResult => ({ status: 'failure', reason })); if (totalNumBlocks <= 0 || !Number.isInteger(totalNumBlocks)) { throw new Error(`Invalid number of blocks for epoch (got ${totalNumBlocks})`); } logger.info(`Starting epoch ${epochNumber} with ${totalNumBlocks} blocks`); - this.provingState = new EpochProvingState(epochNumber, firstBlockNumber, totalNumBlocks, resolve, reject); + this.provingState = new EpochProvingState( + epochNumber, + firstBlockNumber, + totalNumBlocks, + finalBlobBatchingChallenges, + resolve, + reject, + ); this.provingPromise = promise; } @@ -272,6 +285,9 @@ export class ProvingOrchestrator implements EpochProver { logger.verbose(`Block ${blockNumber} completed. Assembling header.`); await this.buildBlock(provingState, expectedHeader); + logger.debug(`Accumulating blobs for ${blockNumber}`); + await this.provingState?.setBlobAccumulators(blockNumber); + // If the proofs were faster than the block building, then we need to try the block root rollup again here await this.checkAndEnqueueBlockRootRollup(provingState); return provingState.block!; @@ -319,7 +335,7 @@ export class ProvingOrchestrator implements EpochProver { await this.verifyBuiltBlockAgainstSyncedState(l2Block, newArchive); logger.verbose(`Orchestrator finalised block ${l2Block.number}`); - provingState.block = l2Block; + provingState.setBlock(l2Block); } // Flagged as protected to disable in certain unit tests @@ -358,6 +374,15 @@ export class ProvingOrchestrator implements EpochProver { throw new Error(`Epoch proving failed: ${result.reason}`); } + // TODO(MW): Move this? Requires async and don't want to force root methods to be async + // TODO(MW): EpochProvingState uses this.blocks.filter(b => !!b).length as total blocks, use this below: + const finalBlock = this.provingState.blocks[this.provingState.totalNumBlocks - 1]; + if (!finalBlock || !finalBlock.endBlobAccumulator) { + throw new Error(`Epoch's final block not ready for finalise`); + } + const finalBatchedBlob = await finalBlock.endBlobAccumulator.finalize(); + this.provingState.setFinalBatchedBlob(finalBatchedBlob); + const epochProofResult = this.provingState.getEpochProofResult(); pushTestData('epochProofResult', { @@ -687,6 +712,17 @@ export class ProvingOrchestrator implements EpochProver { provingState.reject(`New archive root mismatch.`); } + const endBlobAccumulator = provingState.endBlobAccumulator!; + const circuitEndBlobAccumulatorState = result.inputs.blobPublicInputs.endBlobAccumulator; + if (!circuitEndBlobAccumulatorState.equals(endBlobAccumulator.toBlobAccumulatorPublicInputs())) { + logger.error( + `Blob accumulator state mismatch.\nCircuit: ${inspect(circuitEndBlobAccumulatorState)}\nComputed: ${inspect( + endBlobAccumulator.toBlobAccumulatorPublicInputs(), + )}`, + ); + provingState.reject(`Blob accumulator state mismatch.`); + } + logger.debug(`Completed ${rollupType} proof for block ${provingState.block!.number}`); // validatePartialState(result.inputs.end, tx.treeSnapshots); // TODO(palla/prover) @@ -770,7 +806,6 @@ export class ProvingOrchestrator implements EpochProver { } const inputs = provingState.getBlockMergeRollupInputs(location); - this.deferredProving( provingState, wrapCallbackInSpan( @@ -859,15 +894,17 @@ export class ProvingOrchestrator implements EpochProver { } private async checkAndEnqueueBlockRootRollup(provingState: BlockProvingState) { + const blockNumber = provingState.blockNumber; + // Accumulate as far as we can, in case blocks came in out of order and we are behind: + await this.provingState?.setBlobAccumulators(blockNumber); if (!provingState.isReadyForBlockRootRollup()) { - logger.debug('Not ready for root rollup'); + logger.debug('Not ready for block root rollup'); return; } if (provingState.blockRootRollupStarted) { logger.debug('Block root rollup already started'); return; } - const blockNumber = provingState.blockNumber; // TODO(palla/prover): This closes the fork only on the happy path. If this epoch orchestrator // is aborted and never reaches this point, it will leak the fork. We need to add a global cleanup, diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_errors.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_errors.test.ts index a672aad9be56..1eac774526fa 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_errors.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_errors.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob, FinalBlobBatchingChallenges } from '@aztec/blob-lib'; import { timesParallel } from '@aztec/foundation/collection'; import { Fr } from '@aztec/foundation/fields'; import { createLogger } from '@aztec/foundation/log'; @@ -10,10 +11,12 @@ const logger = createLogger('prover-client:test:orchestrator-errors'); describe('prover/orchestrator/errors', () => { let context: TestContext; let orchestrator: ProvingOrchestrator; + let emptyChallenges: FinalBlobBatchingChallenges; beforeEach(async () => { context = await TestContext.new(logger); orchestrator = context.orchestrator; + emptyChallenges = await BatchedBlob.precomputeEmptyBatchedBlobChallenges(); }); afterEach(async () => { @@ -26,8 +29,10 @@ describe('prover/orchestrator/errors', () => { it('throws if adding too many transactions', async () => { const txs = await timesParallel(4, i => context.makeProcessedTx(i + 1)); await context.setTreeRoots(txs); + const blobs = await Blob.getBlobs(txs.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); - orchestrator.startNewEpoch(1, 1, 1); + orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); await orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); await orchestrator.addTxs(txs); @@ -41,7 +46,7 @@ describe('prover/orchestrator/errors', () => { }); it('throws if adding too many blocks', async () => { - orchestrator.startNewEpoch(1, 1, 1); + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); await orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); await orchestrator.setBlockCompleted(context.blockNumber); @@ -57,21 +62,21 @@ describe('prover/orchestrator/errors', () => { }); it('throws if adding a transaction before starting block', async () => { - orchestrator.startNewEpoch(1, 1, 1); + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); await expect(async () => await orchestrator.addTxs([await context.makeProcessedTx()])).rejects.toThrow( /Block proving state for 1 not found/, ); }); it('throws if completing a block before start', async () => { - orchestrator.startNewEpoch(1, 1, 1); + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); await expect(async () => await orchestrator.setBlockCompleted(context.blockNumber)).rejects.toThrow( /Block proving state for 1 not found/, ); }); it('throws if adding to a cancelled block', async () => { - orchestrator.startNewEpoch(1, 1, 1); + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); await orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); orchestrator.cancel(); @@ -81,15 +86,15 @@ describe('prover/orchestrator/errors', () => { }); it.each([[-4], [0], [8.1]] as const)('fails to start an epoch with %i blocks', (epochSize: number) => { - orchestrator.startNewEpoch(1, 1, 1); - expect(() => orchestrator.startNewEpoch(1, 1, epochSize)).toThrow( + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); + expect(() => orchestrator.startNewEpoch(1, 1, epochSize, emptyChallenges)).toThrow( `Invalid number of blocks for epoch (got ${epochSize})`, ); }); it('rejects if too many l1 to l2 messages are provided', async () => { const l1ToL2Messages = new Array(100).fill(new Fr(0n)); - orchestrator.startNewEpoch(1, 1, 1); + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); await expect( async () => await orchestrator.startNewBlock(context.globalVariables, l1ToL2Messages, context.getPreviousBlockHeader()), diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_failures.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_failures.test.ts index d235e2efaffd..ad4058082758 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_failures.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_failures.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { timesAsync } from '@aztec/foundation/collection'; import { createLogger } from '@aztec/foundation/log'; import type { ServerCircuitProver } from '@aztec/stdlib/interfaces/server'; @@ -33,7 +34,10 @@ describe('prover/orchestrator/failures', () => { // We generate them and add them as part of the pending chain const blocks = await timesAsync(3, i => context.makePendingBlock(3, 1, i + 1, j => ({ privateOnly: j === 1 }))); - orchestrator.startNewEpoch(1, 1, 3); + const blobs = (await Promise.all(blocks.map(block => Blob.getBlobs(block.block.body.toBlobFields())))).flat(); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + + orchestrator.startNewEpoch(1, 1, 3, finalBlobChallenges); for (const { block, txs, msgs } of blocks) { // these operations could fail if the target circuit fails before adding all blocks or txs diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_lifecycle.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_lifecycle.test.ts index 3af8997caaad..d4c98cc22c01 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_lifecycle.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_lifecycle.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob } from '@aztec/blob-lib'; import { NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants'; import { Fr } from '@aztec/foundation/fields'; import { createLogger } from '@aztec/foundation/log'; @@ -38,8 +39,8 @@ describe('prover/orchestrator/lifecycle', () => { deferredPromises.push(deferred); return deferred.promise; }); - - orchestrator.startNewEpoch(1, 1, 1); + const emptyChallenges = await BatchedBlob.precomputeEmptyBatchedBlobChallenges(); + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); await orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); await sleep(1); diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_mixed_blocks.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_mixed_blocks.test.ts index d0ca585ce8f3..6fddb512af8e 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_mixed_blocks.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_mixed_blocks.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants'; import { range } from '@aztec/foundation/array'; import { timesParallel } from '@aztec/foundation/collection'; @@ -17,7 +18,10 @@ describe('prover/orchestrator/mixed-blocks', () => { const l1ToL2Messages = range(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, 1 + 0x400).map(fr); - context.orchestrator.startNewEpoch(1, 1, 1); + const blobs = await Blob.getBlobs(txs.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + + context.orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); await context.orchestrator.startNewBlock(context.globalVariables, l1ToL2Messages, context.getPreviousBlockHeader()); await context.orchestrator.addTxs(txs); diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_multi_public_functions.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_multi_public_functions.test.ts index 36e85a8aea5c..b4d8dc5c8426 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_multi_public_functions.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_multi_public_functions.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { DEPLOYER_CONTRACT_ADDRESS } from '@aztec/constants'; import { Fr } from '@aztec/foundation/fields'; import { createLogger } from '@aztec/foundation/log'; @@ -86,13 +87,15 @@ describe('prover/orchestrator/public-functions', () => { tx.data.constants.protocolContractTreeRoot = protocolContractTreeRoot; } - context.orchestrator.startNewEpoch(1, 1, 1); - await context.orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); - const [processed, failed] = await context.processPublicFunctions(txs, numTransactions); expect(processed.length).toBe(numTransactions); expect(failed.length).toBe(0); + const blobs = await Blob.getBlobs(processed.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + context.orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); + await context.orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); + await context.orchestrator.addTxs(processed); const block = await context.orchestrator.setBlockCompleted(context.blockNumber); diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_multiple_blocks.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_multiple_blocks.test.ts index 3e2e1335888a..ae22bb774185 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_multiple_blocks.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_multiple_blocks.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { timesAsync } from '@aztec/foundation/collection'; import type { Fr } from '@aztec/foundation/fields'; import { createLogger } from '@aztec/foundation/log'; @@ -29,9 +30,11 @@ describe('prover/orchestrator/multi-block', () => { logger.info(`Seeding world state with ${numBlocks} blocks`); const txCount = 2; const blocks = await timesAsync(numBlocks, i => context.makePendingBlock(txCount, 0, i + 1)); + const blobs = (await Promise.all(blocks.map(block => Blob.getBlobs(block.block.body.toBlobFields())))).flat(); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); logger.info(`Starting new epoch with ${numBlocks}`); - context.orchestrator.startNewEpoch(1, 1, numBlocks); + context.orchestrator.startNewEpoch(1, 1, numBlocks, finalBlobChallenges); for (const { block, txs } of blocks) { await context.orchestrator.startNewBlock( block.header.globalVariables, @@ -54,9 +57,11 @@ describe('prover/orchestrator/multi-block', () => { logger.info(`Seeding world state with ${numBlocks} blocks`); const txCount = 2; const blocks = await timesAsync(numBlocks, i => context.makePendingBlock(txCount, 0, i + 1)); + const blobs = (await Promise.all(blocks.map(block => Blob.getBlobs(block.block.body.toBlobFields())))).flat(); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); logger.info(`Starting new epoch with ${numBlocks}`); - context.orchestrator.startNewEpoch(1, 1, numBlocks); + context.orchestrator.startNewEpoch(1, 1, numBlocks, finalBlobChallenges); await Promise.all( blocks.map(async ({ block, txs }) => { await context.orchestrator.startNewBlock( @@ -83,9 +88,11 @@ describe('prover/orchestrator/multi-block', () => { logger.info(`Seeding world state with ${numBlocks} blocks`); const txCount = 2; const blocks = await timesAsync(numBlocks, i => context.makePendingBlock(txCount, 0, i + 1)); + const blobs = (await Promise.all(blocks.map(block => Blob.getBlobs(block.block.body.toBlobFields())))).flat(); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); logger.info(`Starting new epoch with ${numBlocks}`); - context.orchestrator.startNewEpoch(1, 1, numBlocks); + context.orchestrator.startNewEpoch(1, 1, numBlocks, finalBlobChallenges); await Promise.all( blocks.map(async ({ block, txs }) => { await context.orchestrator.startNewBlock( @@ -117,10 +124,19 @@ describe('prover/orchestrator/multi-block', () => { for (let epochIndex = 0; epochIndex < numEpochs; epochIndex++) { logger.info(`Starting epoch ${epochIndex + 1} with ${numBlocks} blocks`); - context.orchestrator.startNewEpoch(epochIndex + 1, epochIndex * numBlocks + 1, numBlocks); - const blockInEpoch = blocks.slice(epochIndex * numBlocks, (epochIndex + 1) * numBlocks); + const blocksInEpoch = blocks.slice(epochIndex * numBlocks, (epochIndex + 1) * numBlocks); + const blobs = ( + await Promise.all(blocksInEpoch.map(block => Blob.getBlobs(block.block.body.toBlobFields()))) + ).flat(); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + context.orchestrator.startNewEpoch( + epochIndex + 1, + epochIndex * numBlocks + 1, + numBlocks, + finalBlobChallenges, + ); await Promise.all( - blockInEpoch.map(async ({ block, txs }) => { + blocksInEpoch.map(async ({ block, txs }) => { await context.orchestrator.startNewBlock( block.header.globalVariables, [], @@ -136,7 +152,7 @@ describe('prover/orchestrator/multi-block', () => { const numProposedBlocks = countProposedBlocks(epoch.publicInputs.proposedBlockHeaderHashes); expect(numProposedBlocks).toEqual(numBlocks); expect(epoch.publicInputs.proposedBlockHeaderHashes.slice(0, numProposedBlocks)).toEqual( - blockInEpoch.map(b => b.block.header.toPropose().hash()), + blocksInEpoch.map(b => b.block.header.toPropose().hash()), ); expect(epoch.proof).toBeDefined(); } diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_public_functions.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_public_functions.test.ts index d42ff5cb59e1..b1397f01eef7 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_public_functions.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_public_functions.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { createLogger } from '@aztec/foundation/log'; import { getTestData, isGenerateTestDataEnabled } from '@aztec/foundation/testing'; import { updateProtocolCircuitSampleInputs } from '@aztec/foundation/testing/files'; @@ -38,9 +39,11 @@ describe('prover/orchestrator/public-functions', () => { // Since this TX is mocked/garbage, it will revert because it calls a non-existent contract, // but it reverts in app logic so it can still be included. const [processed, _] = await context.processPublicFunctions([tx], 1); + const blobs = await Blob.getBlobs(processed.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); // This will need to be a 2 tx block - context.orchestrator.startNewEpoch(1, 1, 1); + context.orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); await context.orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); await context.orchestrator.addTxs(processed); @@ -63,7 +66,9 @@ describe('prover/orchestrator/public-functions', () => { tx.data.constants.protocolContractTreeRoot = protocolContractTreeRoot; const [processed, _] = await context.processPublicFunctions([tx], 1); - context.orchestrator.startNewEpoch(1, 1, 1); + const blobs = await Blob.getBlobs(processed.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + context.orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); await context.orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); await context.orchestrator.addTxs(processed); await context.orchestrator.setBlockCompleted(context.blockNumber); diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_single_blocks.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_single_blocks.test.ts index 489f39810488..c3e6c7422612 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_single_blocks.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_single_blocks.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants'; import { range } from '@aztec/foundation/array'; import { timesParallel } from '@aztec/foundation/collection'; @@ -21,7 +22,7 @@ describe('prover/orchestrator/blocks', () => { describe('blocks', () => { it('builds an empty L2 block', async () => { - context.orchestrator.startNewEpoch(1, 1, 1); + context.orchestrator.startNewEpoch(1, 1, 1, await BatchedBlob.precomputeEmptyBatchedBlobChallenges()); await context.orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); const block = await context.orchestrator.setBlockCompleted(context.blockNumber); @@ -33,8 +34,12 @@ describe('prover/orchestrator/blocks', () => { const txs = [await context.makeProcessedTx(1)]; await context.setTreeRoots(txs); + const blobFields = txs.map(tx => tx.txEffect.toBlobFields()).flat(); + const blobs = await Blob.getBlobs(blobFields); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + // This will need to be a 2 tx block - context.orchestrator.startNewEpoch(1, 1, 1); + context.orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); await context.orchestrator.startNewBlock(context.globalVariables, [], context.getPreviousBlockHeader()); await context.orchestrator.addTxs(txs); @@ -49,7 +54,11 @@ describe('prover/orchestrator/blocks', () => { await context.setTreeRoots(txs); const l1ToL2Messages = range(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, 1 + 0x400).map(fr); - context.orchestrator.startNewEpoch(1, 1, 1); + const blobFields = txs.map(tx => tx.txEffect.toBlobFields()).flat(); + const blobs = await Blob.getBlobs(blobFields); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + + context.orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); await context.orchestrator.startNewBlock( context.globalVariables, l1ToL2Messages, diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator_workflow.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator_workflow.test.ts index de1dd2a1b284..21dae423b4f6 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator_workflow.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator_workflow.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { NESTED_RECURSIVE_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants'; import { Fr } from '@aztec/foundation/fields'; import { createLogger } from '@aztec/foundation/log'; @@ -74,7 +75,9 @@ describe('prover/orchestrator', () => { } }); - orchestrator.startNewEpoch(1, 1, 1); + const emptyChallenges = await BatchedBlob.precomputeEmptyBatchedBlobChallenges(); + + orchestrator.startNewEpoch(1, 1, 1, emptyChallenges); await orchestrator.startNewBlock(globalVariables, [message], previousBlockHeader); // the prover broker deduplicates jobs, so the base parity proof @@ -105,9 +108,11 @@ describe('prover/orchestrator', () => { }); it('waits for block to be completed before enqueueing block root proof', async () => { - orchestrator.startNewEpoch(1, 1, 1); - await orchestrator.startNewBlock(globalVariables, [], previousBlockHeader); const txs = await Promise.all([context.makeProcessedTx(1), context.makeProcessedTx(2)]); + const blobs = await Blob.getBlobs(txs.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); + await orchestrator.startNewBlock(globalVariables, [], previousBlockHeader); await context.setTreeRoots(txs); await orchestrator.addTxs(txs); @@ -123,8 +128,11 @@ describe('prover/orchestrator', () => { it('can start tube proofs before adding processed txs', async () => { const getTubeSpy = jest.spyOn(prover, 'getTubeProof'); - orchestrator.startNewEpoch(1, 1, 1); const processedTxs = await Promise.all([context.makeProcessedTx(1), context.makeProcessedTx(2)]); + const blobs = await Blob.getBlobs(processedTxs.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); + processedTxs.forEach((tx, i) => (tx.clientIvcProof = ClientIvcProof.fake(i + 1))); // TODO(AD): we shouldn't be mocking complex objects like tx this way - easy to hit issues (I had to update to add data field) const txs = processedTxs.map( diff --git a/yarn-project/prover-client/src/prover-client/server-epoch-prover.ts b/yarn-project/prover-client/src/prover-client/server-epoch-prover.ts index cae999ff5e79..46de69240cde 100644 --- a/yarn-project/prover-client/src/prover-client/server-epoch-prover.ts +++ b/yarn-project/prover-client/src/prover-client/server-epoch-prover.ts @@ -1,3 +1,4 @@ +import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib'; import type { Fr } from '@aztec/foundation/fields'; import type { L2Block } from '@aztec/stdlib/block'; import type { EpochProver } from '@aztec/stdlib/interfaces/server'; @@ -15,8 +16,13 @@ export class ServerEpochProver implements EpochProver { private orchestrator: ProvingOrchestrator, ) {} - startNewEpoch(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number): void { - this.orchestrator.startNewEpoch(epochNumber, firstBlockNumber, totalNumBlocks); + startNewEpoch( + epochNumber: number, + firstBlockNumber: number, + totalNumBlocks: number, + finalBlobBatchingChallenges: FinalBlobBatchingChallenges, + ): void { + this.orchestrator.startNewEpoch(epochNumber, firstBlockNumber, totalNumBlocks, finalBlobBatchingChallenges); this.facade.start(); } startTubeCircuits(txs: Tx[]): Promise { @@ -25,7 +31,7 @@ export class ServerEpochProver implements EpochProver { setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise { return this.orchestrator.setBlockCompleted(blockNumber, expectedBlockHeader); } - finaliseEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof }> { + finaliseEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof; batchedBlobInputs: BatchedBlob }> { return this.orchestrator.finaliseEpoch(); } cancel(): void { diff --git a/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts b/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts index 4f6faa90d510..c17fccce3135 100644 --- a/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts +++ b/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts @@ -1,4 +1,5 @@ import { BBNativeRollupProver, type BBProverConfig } from '@aztec/bb-prover'; +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PAIRING_POINTS_SIZE } from '@aztec/constants'; import { makeTuple } from '@aztec/foundation/array'; import { timesParallel } from '@aztec/foundation/collection'; @@ -40,7 +41,7 @@ describe('prover/bb_prover/full-rollup', () => { it.each([ [1, 1, 0, 2], // Epoch with a single block, requires one padding block proof - // [2, 2, 0, 2], // Full epoch with two blocks // TODO(#10678) disabled for time x resource usage on main runner + // [2, 2, 0, 2], // Full epoch with two blocks // TODO(#10678) disabled for time x resource usage on main runner // NOTE: we need this test to create the fixture for integration_proof_verification.test.ts, which doesn't seem to be run, though does pass // [2, 3, 0, 2], // Epoch with two blocks but the block merge tree was assembled as with 3 leaves, requires one padding block proof; commented out to reduce running time ])( 'proves a private-only epoch with %i/%i blocks with %i/%i non-empty txs each', @@ -48,11 +49,9 @@ describe('prover/bb_prover/full-rollup', () => { log.info(`Proving epoch with ${blockCount}/${totalBlocks} blocks with ${nonEmptyTxs}/${totalTxs} non-empty txs`); const initialHeader = context.getBlockHeader(0); - context.orchestrator.startNewEpoch(1, 1, totalBlocks); - + const processedTxs = []; + const blobs = []; for (let blockNum = 1; blockNum <= blockCount; blockNum++) { - const globals = makeGlobals(blockNum); - const l1ToL2Messages = makeTuple(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, Fr.random); const txs = await timesParallel(nonEmptyTxs, async (i: number) => { const txOpts = { numberOfNonRevertiblePublicCallRequests: 0, numberOfRevertiblePublicCallRequests: 0 }; const tx = await mockTx(blockNum * 100_000 + 1000 * (i + 1), txOpts); @@ -61,13 +60,25 @@ describe('prover/bb_prover/full-rollup', () => { return tx; }); - log.info(`Starting new block #${blockNum}`); - - await context.orchestrator.startNewBlock(globals, l1ToL2Messages, previousBlockHeader); log.info(`Processing public functions`); const [processed, failed] = await context.processPublicFunctions(txs, nonEmptyTxs); expect(processed.length).toBe(nonEmptyTxs); expect(failed.length).toBe(0); + processedTxs[blockNum] = processed; + blobs.push(await Blob.getBlobs(processed.flatMap(tx => tx.txEffect.toBlobFields()))); + } + + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs.flat()); + context.orchestrator.startNewEpoch(1, 1, totalBlocks, finalBlobChallenges); + + for (let blockNum = 1; blockNum <= blockCount; blockNum++) { + const globals = makeGlobals(blockNum); + const l1ToL2Messages = makeTuple(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, Fr.random); + const processed = processedTxs[blockNum]; + + log.info(`Starting new block #${blockNum}`); + + await context.orchestrator.startNewBlock(globals, l1ToL2Messages, previousBlockHeader); await context.orchestrator.addTxs(processed); log.info(`Setting block as completed`); @@ -118,15 +129,18 @@ describe('prover/bb_prover/full-rollup', () => { Fr.random, ); - context.orchestrator.startNewEpoch(1, 1, 1); - - await context.orchestrator.startNewBlock(context.globalVariables, l1ToL2Messages, context.getPreviousBlockHeader()); - const [processed, failed] = await context.processPublicFunctions(txs, numTransactions); expect(processed.length).toBe(numTransactions); expect(failed.length).toBe(0); + const blobs = await Blob.getBlobs(processed.map(tx => tx.txEffect.toBlobFields()).flat()); + const finalBlobChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(blobs); + + context.orchestrator.startNewEpoch(1, 1, 1, finalBlobChallenges); + + await context.orchestrator.startNewBlock(context.globalVariables, l1ToL2Messages, context.getPreviousBlockHeader()); + await context.orchestrator.addTxs(processed); await context.orchestrator.setBlockCompleted(context.blockNumber); diff --git a/yarn-project/prover-node/package.json b/yarn-project/prover-node/package.json index a49996b791e6..e061ef1e6350 100644 --- a/yarn-project/prover-node/package.json +++ b/yarn-project/prover-node/package.json @@ -54,6 +54,7 @@ "dependencies": { "@aztec/archiver": "workspace:^", "@aztec/bb-prover": "workspace:^", + "@aztec/blob-lib": "workspace:^", "@aztec/blob-sink": "workspace:^", "@aztec/constants": "workspace:^", "@aztec/epoch-cache": "workspace:^", diff --git a/yarn-project/prover-node/src/job/epoch-proving-job.test.ts b/yarn-project/prover-node/src/job/epoch-proving-job.test.ts index 1f6a1a625501..41ca4fd9d605 100644 --- a/yarn-project/prover-node/src/job/epoch-proving-job.test.ts +++ b/yarn-project/prover-node/src/job/epoch-proving-job.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob } from '@aztec/blob-lib'; import { fromEntries, times, timesParallel } from '@aztec/foundation/collection'; import { toArray } from '@aztec/foundation/iterable'; import { sleep } from '@aztec/foundation/sleep'; @@ -34,6 +35,7 @@ describe('epoch-proving-job', () => { // Objects let publicInputs: RootRollupPublicInputs; let proof: Proof; + let batchedBlobInputs: BatchedBlob; let blocks: L2Block[]; let txs: Tx[]; let initialHeader: BlockHeader; @@ -81,6 +83,13 @@ describe('epoch-proving-job', () => { publicInputs = RootRollupPublicInputs.random(); proof = Proof.empty(); + batchedBlobInputs = new BatchedBlob( + publicInputs.blobPublicInputs.blobCommitmentsHash, + publicInputs.blobPublicInputs.z, + publicInputs.blobPublicInputs.y, + publicInputs.blobPublicInputs.c, + publicInputs.blobPublicInputs.c.negate(), + ); epochNumber = 1; initialHeader = BlockHeader.empty(); blocks = await timesParallel(NUM_BLOCKS, i => L2Block.random(i + 1, TXS_PER_BLOCK)); @@ -97,7 +106,7 @@ describe('epoch-proving-job', () => { db.getInitialHeader.mockReturnValue(initialHeader); worldState.fork.mockResolvedValue(db); prover.startNewBlock.mockImplementation(() => sleep(200)); - prover.finaliseEpoch.mockResolvedValue({ publicInputs, proof }); + prover.finaliseEpoch.mockResolvedValue({ publicInputs, proof, batchedBlobInputs }); publisher.submitEpochProof.mockResolvedValue(true); publicProcessor.process.mockImplementation(async txs => { const txsArray = await toArray(txs); diff --git a/yarn-project/prover-node/src/job/epoch-proving-job.ts b/yarn-project/prover-node/src/job/epoch-proving-job.ts index e60a489a099a..6a239084136b 100644 --- a/yarn-project/prover-node/src/job/epoch-proving-job.ts +++ b/yarn-project/prover-node/src/job/epoch-proving-job.ts @@ -1,3 +1,4 @@ +import { BatchedBlob, Blob } from '@aztec/blob-lib'; import { asyncPool } from '@aztec/foundation/async-pool'; import { createLogger } from '@aztec/foundation/log'; import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise'; @@ -113,7 +114,12 @@ export class EpochProvingJob implements Traceable { this.runPromise = promise; try { - this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks); + const allBlobs = ( + await Promise.all(this.blocks.map(async block => await Blob.getBlobs(block.body.toBlobFields()))) + ).flat(); + + const finalBlobBatchingChallenges = await BatchedBlob.precomputeBatchedBlobChallenges(allBlobs); + this.prover.startNewEpoch(epochNumber, fromBlock, epochSizeBlocks, finalBlobBatchingChallenges); await this.prover.startTubeCircuits(this.txs); await asyncPool(this.config.parallelBlockLimit ?? 32, this.blocks, async block => { @@ -158,11 +164,18 @@ export class EpochProvingJob implements Traceable { const executionTime = timer.ms(); this.progressState('awaiting-prover'); - const { publicInputs, proof } = await this.prover.finaliseEpoch(); + const { publicInputs, proof, batchedBlobInputs } = await this.prover.finaliseEpoch(); this.log.info(`Finalised proof for epoch ${epochNumber}`, { epochNumber, uuid: this.uuid, duration: timer.ms() }); this.progressState('publishing-proof'); - const success = await this.publisher.submitEpochProof({ fromBlock, toBlock, epochNumber, publicInputs, proof }); + const success = await this.publisher.submitEpochProof({ + fromBlock, + toBlock, + epochNumber, + publicInputs, + proof, + batchedBlobInputs, + }); if (!success) { throw new Error('Failed to submit epoch proof to L1'); } diff --git a/yarn-project/prover-node/src/prover-node-publisher.test.ts b/yarn-project/prover-node/src/prover-node-publisher.test.ts index f19f8844d61a..4b413144ee0f 100644 --- a/yarn-project/prover-node/src/prover-node-publisher.test.ts +++ b/yarn-project/prover-node/src/prover-node-publisher.test.ts @@ -1,3 +1,4 @@ +import { BatchedBlob } from '@aztec/blob-lib'; import type { L1TxUtils, RollupContract } from '@aztec/ethereum'; import { EthAddress } from '@aztec/foundation/eth-address'; import { Fr } from '@aztec/foundation/fields'; @@ -147,6 +148,14 @@ describe('prover-node-publisher', () => { ourPublicInputs.previousArchiveRoot = blocks[fromBlock - 2]?.endArchiveRoot ?? Fr.ZERO; ourPublicInputs.endArchiveRoot = blocks[toBlock - 1]?.endArchiveRoot ?? Fr.ZERO; + const ourBatchedBlob = new BatchedBlob( + ourPublicInputs.blobPublicInputs.blobCommitmentsHash, + ourPublicInputs.blobPublicInputs.z, + ourPublicInputs.blobPublicInputs.y, + ourPublicInputs.blobPublicInputs.c, + ourPublicInputs.blobPublicInputs.c.negate(), // Fill with dummy value + ); + // Return our public inputs const totalFields = ourPublicInputs.toFields(); rollup.getEpochProofPublicInputs.mockResolvedValue(totalFields.map(x => x.toString())); @@ -158,6 +167,7 @@ describe('prover-node-publisher', () => { toBlock, publicInputs: ourPublicInputs, proof: Proof.empty(), + batchedBlobInputs: ourBatchedBlob, }) .then(() => 'Success') .catch(error => error.message); diff --git a/yarn-project/prover-node/src/prover-node-publisher.ts b/yarn-project/prover-node/src/prover-node-publisher.ts index bfcf727dc1f4..6192a74d3b49 100644 --- a/yarn-project/prover-node/src/prover-node-publisher.ts +++ b/yarn-project/prover-node/src/prover-node-publisher.ts @@ -1,3 +1,4 @@ +import { type BatchedBlob, FinalBlobAccumulatorPublicInputs } from '@aztec/blob-lib'; import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants'; import type { L1TxUtils, RollupContract } from '@aztec/ethereum'; import { makeTuple } from '@aztec/foundation/array'; @@ -15,6 +16,7 @@ import type { FeeRecipient, RootRollupPublicInputs } from '@aztec/stdlib/rollup' import type { L1PublishProofStats } from '@aztec/stdlib/stats'; import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client'; +import { inspect } from 'util'; import { type Hex, type TransactionReceipt, encodeFunctionData } from 'viem'; import { ProverNodePublisherMetrics } from './metrics.js'; @@ -94,6 +96,7 @@ export class ProverNodePublisher { toBlock: number; publicInputs: RootRollupPublicInputs; proof: Proof; + batchedBlobInputs: BatchedBlob; }): Promise { const { epochNumber, fromBlock, toBlock } = args; const ctx = { epochNumber, fromBlock, toBlock }; @@ -146,8 +149,9 @@ export class ProverNodePublisher { toBlock: number; publicInputs: RootRollupPublicInputs; proof: Proof; + batchedBlobInputs: BatchedBlob; }) { - const { fromBlock, toBlock, publicInputs } = args; + const { fromBlock, toBlock, publicInputs, batchedBlobInputs } = args; // Check that the block numbers match the expected epoch to be proven const { pendingBlockNumber: pending, provenBlockNumber: proven } = await this.rollupContract.getTips(); @@ -176,8 +180,17 @@ export class ProverNodePublisher { ); } + // Check the batched blob inputs from the root rollup against the batched blob computed in ts + if (!publicInputs.blobPublicInputs.equals(FinalBlobAccumulatorPublicInputs.fromBatchedBlob(batchedBlobInputs))) { + throw new Error( + `Batched blob mismatch: ${inspect(publicInputs.blobPublicInputs)} !== ${inspect(FinalBlobAccumulatorPublicInputs.fromBatchedBlob(batchedBlobInputs))}`, + ); + } + // Compare the public inputs computed by the contract with the ones injected - const rollupPublicInputs = await this.rollupContract.getEpochProofPublicInputs(this.getSubmitEpochProofArgs(args)); + const rollupPublicInputs = await this.rollupContract.getEpochProofPublicInputs( + this.getEpochProofPublicInputsArgs(args), + ); const argsPublicInputs = [...publicInputs.toFields()]; if (!areArraysEqual(rollupPublicInputs.map(Fr.fromHexString), argsPublicInputs, (a, b) => a.equals(b))) { @@ -193,20 +206,9 @@ export class ProverNodePublisher { toBlock: number; publicInputs: RootRollupPublicInputs; proof: Proof; + batchedBlobInputs: BatchedBlob; }): Promise { - const proofHex: Hex = `0x${args.proof.withoutPublicInputs().toString('hex')}`; - const argsArray = this.getSubmitEpochProofArgs(args); - - const txArgs = [ - { - start: argsArray[0], - end: argsArray[1], - args: argsArray[2], - fees: argsArray[3], - blobPublicInputs: argsArray[4], - proof: proofHex, - }, - ] as const; + const txArgs = [this.getSubmitEpochProofArgs(args)] as const; this.log.info(`SubmitEpochProof proofSize=${args.proof.withoutPublicInputs().length} bytes`); const data = encodeFunctionData({ @@ -239,32 +241,50 @@ export class ProverNodePublisher { } } - private getSubmitEpochProofArgs(args: { + private getEpochProofPublicInputsArgs(args: { fromBlock: number; toBlock: number; publicInputs: RootRollupPublicInputs; - proof: Proof; + batchedBlobInputs: BatchedBlob; }) { + // Returns arguments for EpochProofLib.sol -> getEpochProofPublicInputs() return [ - BigInt(args.fromBlock), - BigInt(args.toBlock), + BigInt(args.fromBlock) /*_start*/, + BigInt(args.toBlock) /*_end*/, { previousArchive: args.publicInputs.previousArchiveRoot.toString(), endArchive: args.publicInputs.endArchiveRoot.toString(), proverId: EthAddress.fromField(args.publicInputs.proverId).toString(), - }, + } /*_args*/, makeTuple(AZTEC_MAX_EPOCH_DURATION * 2, i => i % 2 === 0 ? args.publicInputs.fees[i / 2].recipient.toField().toString() : args.publicInputs.fees[(i - 1) / 2].value.toString(), - ), - `0x${args.publicInputs.blobPublicInputs - .filter((_, i) => i < args.toBlock - args.fromBlock + 1) - .map(b => b.toString()) - .join(``)}`, + ) /*_fees*/, + args.batchedBlobInputs.getEthBlobEvaluationInputs() /*_blobPublicInputs*/, ] as const; } + private getSubmitEpochProofArgs(args: { + fromBlock: number; + toBlock: number; + publicInputs: RootRollupPublicInputs; + proof: Proof; + batchedBlobInputs: BatchedBlob; + }) { + // Returns arguments for EpochProofLib.sol -> submitEpochRootProof() + const proofHex: Hex = `0x${args.proof.withoutPublicInputs().toString('hex')}`; + const argsArray = this.getEpochProofPublicInputsArgs(args); + return { + start: argsArray[0], + end: argsArray[1], + args: argsArray[2], + fees: argsArray[3], + blobInputs: argsArray[4], + proof: proofHex, + }; + } + protected async sleepOrInterrupted() { await this.interruptibleSleep.sleep(this.sleepTimeMs); } diff --git a/yarn-project/prover-node/tsconfig.json b/yarn-project/prover-node/tsconfig.json index 1e82cfa793c0..b8ae430a409a 100644 --- a/yarn-project/prover-node/tsconfig.json +++ b/yarn-project/prover-node/tsconfig.json @@ -12,6 +12,9 @@ { "path": "../bb-prover" }, + { + "path": "../blob-lib" + }, { "path": "../blob-sink" }, diff --git a/yarn-project/sequencer-client/src/publisher/sequencer-publisher.test.ts b/yarn-project/sequencer-client/src/publisher/sequencer-publisher.test.ts index fcc6688b5c01..96ad7e060f1e 100644 --- a/yarn-project/sequencer-client/src/publisher/sequencer-publisher.test.ts +++ b/yarn-project/sequencer-client/src/publisher/sequencer-publisher.test.ts @@ -222,7 +222,7 @@ describe('SequencerPublisher', () => { await publisher.sendRequests(); expect(forwarder.forward).toHaveBeenCalledTimes(1); - const blobInput = Blob.getEthBlobEvaluationInputs(expectedBlobs); + const blobInput = Blob.getPrefixedEthBlobCommitments(expectedBlobs); const args = [ { diff --git a/yarn-project/sequencer-client/src/publisher/sequencer-publisher.ts b/yarn-project/sequencer-client/src/publisher/sequencer-publisher.ts index fc6da81a40b3..35757850ec1c 100644 --- a/yarn-project/sequencer-client/src/publisher/sequencer-publisher.ts +++ b/yarn-project/sequencer-client/src/publisher/sequencer-publisher.ts @@ -474,7 +474,7 @@ export class SequencerPublisher { throw new Error('L1 TX utils needs to be initialized with an account wallet.'); } const kzg = Blob.getViemKzgInstance(); - const blobInput = Blob.getEthBlobEvaluationInputs(encodedData.blobs); + const blobInput = Blob.getPrefixedEthBlobCommitments(encodedData.blobs); this.log.debug('Validating blob input', { blobInput }); const blobEvaluationGas = await this.l1TxUtils .estimateGas( diff --git a/yarn-project/stdlib/src/interfaces/epoch-prover.ts b/yarn-project/stdlib/src/interfaces/epoch-prover.ts index 6dfe395c0eb3..96398552feb6 100644 --- a/yarn-project/stdlib/src/interfaces/epoch-prover.ts +++ b/yarn-project/stdlib/src/interfaces/epoch-prover.ts @@ -1,3 +1,4 @@ +import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib'; import type { Fr } from '@aztec/foundation/fields'; import type { L2Block } from '../block/l2_block.js'; @@ -15,7 +16,12 @@ export interface EpochProver extends Omit { * @param firstBlockNumber - The block number of the first block in the epoch. * @param totalNumBlocks - The total number of blocks expected in the epoch (must be at least one). **/ - startNewEpoch(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number): void; + startNewEpoch( + epochNumber: number, + firstBlockNumber: number, + totalNumBlocks: number, + finalBlobBatchingChallenges: FinalBlobBatchingChallenges, + ): void; /** * Kickstarts tube circuits for the specified txs. These will be used during epoch proving. @@ -27,7 +33,7 @@ export interface EpochProver extends Omit { setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise; /** Pads the epoch with empty block roots if needed and blocks until proven. Throws if proving has failed. */ - finaliseEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof }>; + finaliseEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof; batchedBlobInputs: BatchedBlob }>; /** Cancels all proving jobs. */ cancel(): void; diff --git a/yarn-project/stdlib/src/rollup/block_root_or_block_merge_public_inputs.ts b/yarn-project/stdlib/src/rollup/block_root_or_block_merge_public_inputs.ts index 004f455ea17e..51732090b562 100644 --- a/yarn-project/stdlib/src/rollup/block_root_or_block_merge_public_inputs.ts +++ b/yarn-project/stdlib/src/rollup/block_root_or_block_merge_public_inputs.ts @@ -57,9 +57,9 @@ export class BlockRootOrBlockMergePublicInputs { */ public proverId: Fr, /** - * Public inputs required to verify a blob (challenge point z, evaluation y = p(z), and the commitment to p() for each blob) + * Public inputs required to verify a batch of blobs. */ - public blobPublicInputs: Tuple, + public blobPublicInputs: BlockBlobPublicInputs, ) {} /** @@ -80,7 +80,7 @@ export class BlockRootOrBlockMergePublicInputs { Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), - reader.readArray(AZTEC_MAX_EPOCH_DURATION, BlockBlobPublicInputs), + reader.readObject(BlockBlobPublicInputs), ); } diff --git a/yarn-project/stdlib/src/rollup/block_root_rollup.ts b/yarn-project/stdlib/src/rollup/block_root_rollup.ts index 179fec1b1d6a..3a67335c86cb 100644 --- a/yarn-project/stdlib/src/rollup/block_root_rollup.ts +++ b/yarn-project/stdlib/src/rollup/block_root_rollup.ts @@ -1,3 +1,4 @@ +import { BlobAccumulatorPublicInputs, FinalBlobBatchingChallenges } from '@aztec/blob-lib'; import { ARCHIVE_HEIGHT, BLOBS_PER_BLOCK, @@ -5,7 +6,7 @@ import { L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, NESTED_RECURSIVE_PROOF_LENGTH, } from '@aztec/constants'; -import { Fr } from '@aztec/foundation/fields'; +import { BLS12Point, Fr } from '@aztec/foundation/fields'; import { bufferSchemaFor } from '@aztec/foundation/schemas'; import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize'; import { bufferToHex, hexToBuffer } from '@aztec/foundation/string'; @@ -37,6 +38,14 @@ export class BlockRootRollupData { * The header of the previous block. */ public previousBlockHeader: BlockHeader, + /** + * The current blob accumulation state across the epoch. + */ + public startBlobAccumulator: BlobAccumulatorPublicInputs, + /** + * Finalized challenges z and gamma for performing blob batching. Shared value across the epoch. + */ + public finalBlobChallenges: FinalBlobBatchingChallenges, /** * TODO(#7346): Temporarily added prover_id while we verify block-root proofs on L1 */ @@ -80,6 +89,8 @@ export class BlockRootRollupData { fields.previousArchiveSiblingPath, fields.newArchiveSiblingPath, fields.previousBlockHeader, + fields.startBlobAccumulator, + fields.finalBlobChallenges, fields.proverId, ] as const; } @@ -97,6 +108,8 @@ export class BlockRootRollupData { reader.readArray(ARCHIVE_HEIGHT, Fr), reader.readArray(ARCHIVE_HEIGHT, Fr), BlockHeader.fromBuffer(reader), + reader.readObject(BlobAccumulatorPublicInputs), + reader.readObject(FinalBlobBatchingChallenges), Fr.fromBuffer(reader), ); } @@ -131,9 +144,8 @@ export class BlockRootRollupBlobData { public blobFields: Fr[], /** * KZG commitments representing the blob (precomputed in ts, injected to use inside circuit). - * TODO(Miranda): Rename to kzg_commitment to match BlobPublicInputs? */ - public blobCommitments: Tuple, typeof BLOBS_PER_BLOCK>, + public blobCommitments: Tuple, /** * The hash of eth blob hashes for this block * See yarn-project/foundation/src/blob/index.ts or body.ts for calculation @@ -186,7 +198,7 @@ export class BlockRootRollupBlobData { // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)' // reader.readArray(FIELDS_PER_BLOB, Fr), Array.from({ length: FIELDS_PER_BLOB * BLOBS_PER_BLOCK }, () => Fr.fromBuffer(reader)), - reader.readArray(BLOBS_PER_BLOCK, { fromBuffer: () => reader.readArray(2, Fr) }), + reader.readArray(BLOBS_PER_BLOCK, BLS12Point), Fr.fromBuffer(reader), ); } diff --git a/yarn-project/stdlib/src/rollup/root_rollup.ts b/yarn-project/stdlib/src/rollup/root_rollup.ts index 138e727b4321..0ff33358ec1f 100644 --- a/yarn-project/stdlib/src/rollup/root_rollup.ts +++ b/yarn-project/stdlib/src/rollup/root_rollup.ts @@ -1,4 +1,4 @@ -import { BlockBlobPublicInputs } from '@aztec/blob-lib'; +import { FinalBlobAccumulatorPublicInputs } from '@aztec/blob-lib'; import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants'; import { makeTuple } from '@aztec/foundation/array'; import { Fr } from '@aztec/foundation/fields'; @@ -110,7 +110,7 @@ export class RootRollupPublicInputs { public vkTreeRoot: Fr, public protocolContractTreeRoot: Fr, public proverId: Fr, - public blobPublicInputs: Tuple, + public blobPublicInputs: FinalBlobAccumulatorPublicInputs, ) {} static getFields(fields: FieldsOf) { @@ -157,7 +157,7 @@ export class RootRollupPublicInputs { Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), - reader.readArray(AZTEC_MAX_EPOCH_DURATION, BlockBlobPublicInputs), + reader.readObject(FinalBlobAccumulatorPublicInputs), ); } @@ -179,7 +179,7 @@ export class RootRollupPublicInputs { return bufferSchemaFor(RootRollupPublicInputs); } - /** Creates a random instance. */ + /** Creates a random instance. Used for testing only - will not prove/verify. */ static random() { return new RootRollupPublicInputs( Fr.random(), @@ -191,7 +191,7 @@ export class RootRollupPublicInputs { Fr.random(), Fr.random(), Fr.random(), - makeTuple(AZTEC_MAX_EPOCH_DURATION, BlockBlobPublicInputs.empty), + FinalBlobAccumulatorPublicInputs.random(), ); } } diff --git a/yarn-project/stdlib/src/tests/factories.ts b/yarn-project/stdlib/src/tests/factories.ts index 6e220d9f7e0e..c4b1798b740f 100644 --- a/yarn-project/stdlib/src/tests/factories.ts +++ b/yarn-project/stdlib/src/tests/factories.ts @@ -1,4 +1,4 @@ -import { makeBlockBlobPublicInputs, makeSpongeBlob } from '@aztec/blob-lib/testing'; +import { makeBatchedBlobAccumulator, makeBlockBlobPublicInputs, makeSpongeBlob } from '@aztec/blob-lib/testing'; import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, @@ -46,7 +46,7 @@ import { toBufferBE } from '@aztec/foundation/bigint-buffer'; import { compact } from '@aztec/foundation/collection'; import { SchnorrSignature, poseidon2HashWithSeparator, sha256 } from '@aztec/foundation/crypto'; import { EthAddress } from '@aztec/foundation/eth-address'; -import { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields'; +import { BLS12Point, Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields'; import type { Bufferable } from '@aztec/foundation/serialize'; import { MembershipWitness } from '@aztec/foundation/trees'; @@ -738,7 +738,7 @@ export function makeBlockRootOrBlockMergeRollupPublicInputs( fr(seed + 0x800), fr(seed + 0x801), fr(seed + 0x900), - makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeBlockBlobPublicInputs(seed), 0x100), + makeBlockBlobPublicInputs(seed), ); } @@ -802,14 +802,16 @@ function makeBlockRootRollupData(seed = 0) { makeTuple(ARCHIVE_HEIGHT, fr, 0x2200), makeTuple(ARCHIVE_HEIGHT, fr, 0x2300), makeHeader(seed + 0x2400), - fr(seed + 0x2500), + makeBatchedBlobAccumulator(seed + 0x2500).toBlobAccumulatorPublicInputs(), + makeBatchedBlobAccumulator(seed + 0x2600).finalBlobChallenges, + fr(seed + 0x2700), ); } function makeBlockRootRollupBlobData(seed = 0) { return new BlockRootRollupBlobData( makeTuple(FIELDS_PER_BLOB * BLOBS_PER_BLOCK, fr, 0x2500), - makeTuple(BLOBS_PER_BLOCK, () => makeTuple(2, fr, 0x2600)), + makeTuple(BLOBS_PER_BLOCK, () => BLS12Point.random()), fr(seed + 0x2700), ); } @@ -904,7 +906,7 @@ export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs { fr(seed + 0x702), fr(seed + 0x703), fr(seed + 0x704), - makeTuple(AZTEC_MAX_EPOCH_DURATION, () => makeBlockBlobPublicInputs(seed), 0x800), + makeBatchedBlobAccumulator(seed).toFinalBlobAccumulatorPublicInputs(), ); } diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index a4142984879a..bd6a14c79b20 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -1191,6 +1191,7 @@ __metadata: dependencies: "@aztec/archiver": "workspace:^" "@aztec/bb-prover": "workspace:^" + "@aztec/blob-lib": "workspace:^" "@aztec/blob-sink": "workspace:^" "@aztec/constants": "workspace:^" "@aztec/epoch-cache": "workspace:^"