UNPKG

@mantleio/contracts

Version:
385 lines (384 loc) 33.3 kB
{ "_format": "hh-sol-artifact-1", "contractName": "InterTxVerifier", "sourceName": "contracts/L1/fraud-proof/verifier/subverifiers/InterTxVerifier.sol", "abi": [ { "inputs": [ { "components": [ { "internalType": "address", "name": "coinbase", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "number", "type": "uint256" }, { "internalType": "address", "name": "origin", "type": "address" }, { "components": [ { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { "internalType": "uint64", "name": "gas", "type": "uint64" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "v", "type": "uint256" }, { "internalType": "uint256", "name": "r", "type": "uint256" }, { "internalType": "uint256", "name": "s", "type": "uint256" } ], "internalType": "struct EVMTypesLib.Transaction", "name": "transaction", "type": "tuple" }, { "internalType": "bytes32", "name": "inputRoot", "type": "bytes32" }, { "internalType": "bytes32", "name": "txHash", "type": "bytes32" } ], "internalType": "struct VerificationContext.Context", "name": "ctx", "type": "tuple" }, { "internalType": "bytes32", "name": "currStateHash", "type": "bytes32" }, { "internalType": "bytes", "name": "encoded", "type": "bytes" } ], "name": "executeOneStepProof", "outputs": [ { "components": [ { "internalType": "uint64", "name": "blockNumber", "type": "uint64" }, { "internalType": "uint64", "name": "transactionIdx", "type": "uint64" }, { "internalType": "uint16", "name": "depth", "type": "uint16" }, { "internalType": "uint64", "name": "gas", "type": "uint64" }, { "internalType": "uint64", "name": "refund", "type": "uint64" }, { "internalType": "bytes32", "name": "lastDepthHash", "type": "bytes32" }, { "internalType": "address", "name": "contractAddress", "type": "address" }, { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint8", "name": "callFlag", "type": "uint8" }, { "internalType": "uint64", "name": "out", "type": "uint64" }, { "internalType": "uint64", "name": "outSize", "type": "uint64" }, { "internalType": "uint64", "name": "pc", "type": "uint64" }, { "internalType": "uint8", "name": "opCode", "type": "uint8" }, { "internalType": "bytes32", "name": "codeHash", "type": "bytes32" }, { "internalType": "uint64", "name": "stackSize", "type": "uint64" }, { "internalType": "bytes32", "name": "stackHash", "type": "bytes32" }, { "internalType": "uint64", "name": "memSize", "type": "uint64" }, { "internalType": "bytes32", "name": "memRoot", "type": "bytes32" }, { "internalType": "uint64", "name": "inputDataSize", "type": "uint64" }, { "internalType": "bytes32", "name": "inputDataRoot", "type": "bytes32" }, { "internalType": "uint64", "name": "returnDataSize", "type": "uint64" }, { "internalType": "bytes32", "name": "returnDataRoot", "type": "bytes32" }, { "internalType": "bytes32", "name": "committedGlobalStateRoot", "type": "bytes32" }, { "internalType": "bytes32", "name": "globalStateRoot", "type": "bytes32" }, { "internalType": "bytes32", "name": "selfDestructAcc", "type": "bytes32" }, { "internalType": "bytes32", "name": "logAcc", "type": "bytes32" }, { "internalType": "bytes32", "name": "blockHashRoot", "type": "bytes32" }, { "internalType": "bytes32", "name": "accessListRoot", "type": "bytes32" } ], "internalType": "struct OneStepProof.StateProof", "name": "", "type": "tuple" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "coinbase", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "number", "type": "uint256" }, { "internalType": "address", "name": "origin", "type": "address" }, { "components": [ { "internalType": "uint64", "name": "nonce", "type": "uint64" }, { "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { "internalType": "uint64", "name": "gas", "type": "uint64" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "v", "type": "uint256" }, { "internalType": "uint256", "name": "r", "type": "uint256" }, { "internalType": "uint256", "name": "s", "type": "uint256" } ], "internalType": "struct EVMTypesLib.Transaction", "name": "transaction", "type": "tuple" }, { "internalType": "bytes32", "name": "inputRoot", "type": "bytes32" }, { "internalType": "bytes32", "name": "txHash", "type": "bytes32" } ], "internalType": "struct VerificationContext.Context", "name": "ctx", "type": "tuple" }, { "internalType": "bytes32", "name": "currStateHash", "type": "bytes32" }, { "internalType": "bytes", "name": "encoded", "type": "bytes" } ], "name": "verifyOneStepProof", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611656806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632138b3e41461003b57806389c3ad0f14610061575b600080fd5b61004e610049366004611220565b610081565b6040519081526020015b60405180910390f35b61007461006f366004611220565b6100a0565b604051610058919061130a565b6000610097610092868686866100a0565b610229565b95945050505050565b604080516103a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e08101829052610200810182905261022081018290526102408101829052610260810182905261028081018290526102a081018290526102c081018290526102e081018290526103008101829052610320810182905261034081018290526103608101829052610380810182905290610191610f46565b61019c8585846102c9565b604051919350915060009085878237839020905086811461021e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4261642053746174652050726f6f66000000000000000000000000000000000060448201526064015b60405180910390fd5b505050949350505050565b6000816040015161ffff16600014156102b257610244610f46565b825167ffffffffffffffff9081168252602080850151909116908201526103008301516040820152610100830151606082015260a08084015160808301526103608401519082015261032083015160c082015261034083015160e08201526102ab81610511565b9392505050565b6102bb8261051c565b805190602001209050919050565b60006102d3610f46565b6101d06102ea67ffffffffffffffff851686611528565b1015610352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f6f6620556e646572666c6f772028496e746572290000000000000000006044820152606401610215565b61039f8367ffffffffffffffff1686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610bab9050565b67ffffffffffffffff1681526104026103b984600861153f565b67ffffffffffffffff1686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610bab9050565b67ffffffffffffffff16602082015261046861041f84601061153f565b67ffffffffffffffff1686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610c2b9050565b604082015261047b6103b984603061153f565b67ffffffffffffffff1660608201526104986103b984605061153f565b67ffffffffffffffff1660808201526104b561041f84607061153f565b60a08201526104c861041f84609061153f565b60c08201526104db61041f8460b061153f565b60e08201526104f585856104f08660d061153f565b610cab565b610100820152610507836101d061153f565b9150935093915050565b60006102bb82610d5a565b60606105968260000151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528290610eab565b90506105db8260200151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506106208260400151604051602001610561919060f09190911b7fffff00000000000000000000000000000000000000000000000000000000000016815260020190565b90506106658260600151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506106aa8260800151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506106c68260a0015160405160200161056191815260200190565b90506001826040015161ffff1611156108535761071c8260c00151604051602001610561919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b90506107618260e00151604051602001610561919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b905061077e82610100015160405160200161056191815260200190565b90506107c4826101200151604051602001610561919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b905061080a826101400151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050610850826101600151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90505b610897826101800151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506108dd826101a00151604051602001610561919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b90506108fa826101c0015160405160200161056191815260200190565b9050610940826101e00151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050816101e0015167ffffffffffffffff166000146109775761097482610200015160405160200161056191815260200190565b90505b6109bb826102200151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b905081610220015167ffffffffffffffff166000146109f2576109ef82610240015160405160200161056191815260200190565b90505b6001826040015161ffff161115610a7e57610a47826102600151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b905081610260015167ffffffffffffffff16600014610a7e57610a7b82610280015160405160200161056191815260200190565b90505b610ac2826102a00151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050816102a0015167ffffffffffffffff16600014610af957610af6826102c0015160405160200161056191815260200190565b90505b610b14826102e0015160405160200161056191815260200190565b9050610b3182610300015160405160200161056191815260200190565b9050610b4e82610320015160405160200161056191815260200190565b9050610b6b82610340015160405160200161056191815260200190565b9050610b8882610360015160405160200161056191815260200190565b9050610ba582610380015160405160200161056191815260200190565b92915050565b6000610bb882600861156b565b83511015610c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e64730000000000000000000000006044820152606401610215565b50016008015190565b6000610c3882602061156b565b83511015610ca2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e647300000000000000000000006044820152606401610215565b50016020015190565b610cb3610f99565b610cbb610f99565b60005b6008811015610d5157610d148467ffffffffffffffff1687878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610c2b9050565b82518260088110610d2757610d27611583565b602002018181525050602084610d3d919061153f565b935080610d49816115b2565b915050610cbe565b50949350505050565b6060610d9f8260000151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050610de48260200151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050610e00826040015160405160200161056191815260200190565b9050610e1c826060015160405160200161056191815260200190565b9050610e38826080015160405160200161056191815260200190565b9050610e548260a0015160405160200161056191815260200190565b9050610e708260c0015160405160200161056191815260200190565b9050610e8c8260e0015160405160200161056191815260200190565b9050610ba58261010001516000015160405160200161056191906115eb565b6060806040519050835180825260208201818101602087015b81831015610edc578051835260209283019201610ec4565b50855184518101855292509050808201602086015b81831015610f09578051835260209283019201610ef1565b508651929092011591909101601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660405250905092915050565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091526101008101610f94610f99565b905290565b60408051610120810190915280610f946020820160088161010080368337509192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff8111828210171561101257611012610fbf565b60405290565b60405160e0810167ffffffffffffffff8111828210171561101257611012610fbf565b803573ffffffffffffffffffffffffffffffffffffffff8116811461105f57600080fd5b919050565b803567ffffffffffffffff8116811461105f57600080fd5b600082601f83011261108d57600080fd5b813567ffffffffffffffff808211156110a8576110a8610fbf565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156110ee576110ee610fbf565b8160405283815286602085880101111561110757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000610120828403121561113a57600080fd5b611142610fee565b905061114d82611064565b81526020820135602082015261116560408301611064565b60408201526111766060830161103b565b60608201526080820135608082015260a082013567ffffffffffffffff81111561119f57600080fd5b6111ab8482850161107c565b60a08301525060c082013560c082015260e082013560e082015261010080830135818301525092915050565b60008083601f8401126111e957600080fd5b50813567ffffffffffffffff81111561120157600080fd5b60208301915083602082850101111561121957600080fd5b9250929050565b6000806000806060858703121561123657600080fd5b843567ffffffffffffffff8082111561124e57600080fd5b9086019060e0828903121561126257600080fd5b61126a611018565b6112738361103b565b815260208301356020820152604083013560408201526112956060840161103b565b60608201526080830135828111156112ac57600080fd5b6112b88a828601611127565b60808301525060a083013560a082015260c083013560c0820152809650506020870135945060408701359150808211156112f157600080fd5b506112fe878288016111d7565b95989497509550505050565b815167ffffffffffffffff1681526103a081016020830151611338602084018267ffffffffffffffff169052565b50604083015161134e604084018261ffff169052565b50606083015161136a606084018267ffffffffffffffff169052565b506080830151611386608084018267ffffffffffffffff169052565b5060a083015160a083015260c08301516113b860c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e08301516113e060e084018273ffffffffffffffffffffffffffffffffffffffff169052565b5061010083810151908301526101208084015160ff908116918401919091526101408085015167ffffffffffffffff9081169185019190915261016080860151821690850152610180808601518216908501526101a080860151909216918401919091526101c080850151908401526101e08085015182169084015261020080850151908401526102208085015182169084015261024080850151908401526102608085015182169084015261028080850151908401526102a080850151909116908301526102c080840151908301526102e08084015190830152610300808401519083015261032080840151908301526103408084015190830152610360808401519083015261038092830151929091019190915290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561153a5761153a6114f9565b500390565b600067ffffffffffffffff808316818516808303821115611562576115626114f9565b01949350505050565b6000821982111561157e5761157e6114f9565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156115e4576115e46114f9565b5060010190565b60008183825b60088110156116105781518352602092830192909101906001016115f1565b505050610100820190509291505056fea2646970667358221220c7123a2e3d48d824c5f4bad814aee3e06ee59f9cfb518382560b2833b38cffde64736f6c63430008090033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80632138b3e41461003b57806389c3ad0f14610061575b600080fd5b61004e610049366004611220565b610081565b6040519081526020015b60405180910390f35b61007461006f366004611220565b6100a0565b604051610058919061130a565b6000610097610092868686866100a0565b610229565b95945050505050565b604080516103a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e08101829052610200810182905261022081018290526102408101829052610260810182905261028081018290526102a081018290526102c081018290526102e081018290526103008101829052610320810182905261034081018290526103608101829052610380810182905290610191610f46565b61019c8585846102c9565b604051919350915060009085878237839020905086811461021e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4261642053746174652050726f6f66000000000000000000000000000000000060448201526064015b60405180910390fd5b505050949350505050565b6000816040015161ffff16600014156102b257610244610f46565b825167ffffffffffffffff9081168252602080850151909116908201526103008301516040820152610100830151606082015260a08084015160808301526103608401519082015261032083015160c082015261034083015160e08201526102ab81610511565b9392505050565b6102bb8261051c565b805190602001209050919050565b60006102d3610f46565b6101d06102ea67ffffffffffffffff851686611528565b1015610352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f6f6620556e646572666c6f772028496e746572290000000000000000006044820152606401610215565b61039f8367ffffffffffffffff1686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610bab9050565b67ffffffffffffffff1681526104026103b984600861153f565b67ffffffffffffffff1686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610bab9050565b67ffffffffffffffff16602082015261046861041f84601061153f565b67ffffffffffffffff1686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610c2b9050565b604082015261047b6103b984603061153f565b67ffffffffffffffff1660608201526104986103b984605061153f565b67ffffffffffffffff1660808201526104b561041f84607061153f565b60a08201526104c861041f84609061153f565b60c08201526104db61041f8460b061153f565b60e08201526104f585856104f08660d061153f565b610cab565b610100820152610507836101d061153f565b9150935093915050565b60006102bb82610d5a565b60606105968260000151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528290610eab565b90506105db8260200151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506106208260400151604051602001610561919060f09190911b7fffff00000000000000000000000000000000000000000000000000000000000016815260020190565b90506106658260600151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506106aa8260800151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506106c68260a0015160405160200161056191815260200190565b90506001826040015161ffff1611156108535761071c8260c00151604051602001610561919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b90506107618260e00151604051602001610561919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b905061077e82610100015160405160200161056191815260200190565b90506107c4826101200151604051602001610561919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b905061080a826101400151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050610850826101600151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90505b610897826101800151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506108dd826101a00151604051602001610561919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b90506108fa826101c0015160405160200161056191815260200190565b9050610940826101e00151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050816101e0015167ffffffffffffffff166000146109775761097482610200015160405160200161056191815260200190565b90505b6109bb826102200151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b905081610220015167ffffffffffffffff166000146109f2576109ef82610240015160405160200161056191815260200190565b90505b6001826040015161ffff161115610a7e57610a47826102600151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b905081610260015167ffffffffffffffff16600014610a7e57610a7b82610280015160405160200161056191815260200190565b90505b610ac2826102a00151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050816102a0015167ffffffffffffffff16600014610af957610af6826102c0015160405160200161056191815260200190565b90505b610b14826102e0015160405160200161056191815260200190565b9050610b3182610300015160405160200161056191815260200190565b9050610b4e82610320015160405160200161056191815260200190565b9050610b6b82610340015160405160200161056191815260200190565b9050610b8882610360015160405160200161056191815260200190565b9050610ba582610380015160405160200161056191815260200190565b92915050565b6000610bb882600861156b565b83511015610c22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e64730000000000000000000000006044820152606401610215565b50016008015190565b6000610c3882602061156b565b83511015610ca2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e647300000000000000000000006044820152606401610215565b50016020015190565b610cb3610f99565b610cbb610f99565b60005b6008811015610d5157610d148467ffffffffffffffff1687878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293925050610c2b9050565b82518260088110610d2757610d27611583565b602002018181525050602084610d3d919061153f565b935080610d49816115b2565b915050610cbe565b50949350505050565b6060610d9f8260000151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050610de48260200151604051602001610561919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b9050610e00826040015160405160200161056191815260200190565b9050610e1c826060015160405160200161056191815260200190565b9050610e38826080015160405160200161056191815260200190565b9050610e548260a0015160405160200161056191815260200190565b9050610e708260c0015160405160200161056191815260200190565b9050610e8c8260e0015160405160200161056191815260200190565b9050610ba58261010001516000015160405160200161056191906115eb565b6060806040519050835180825260208201818101602087015b81831015610edc578051835260209283019201610ec4565b50855184518101855292509050808201602086015b81831015610f09578051835260209283019201610ef1565b508651929092011591909101601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660405250905092915050565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091526101008101610f94610f99565b905290565b60408051610120810190915280610f946020820160088161010080368337509192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff8111828210171561101257611012610fbf565b60405290565b60405160e0810167ffffffffffffffff8111828210171561101257611012610fbf565b803573ffffffffffffffffffffffffffffffffffffffff8116811461105f57600080fd5b919050565b803567ffffffffffffffff8116811461105f57600080fd5b600082601f83011261108d57600080fd5b813567ffffffffffffffff808211156110a8576110a8610fbf565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156110ee576110ee610fbf565b8160405283815286602085880101111561110757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000610120828403121561113a57600080fd5b611142610fee565b905061114d82611064565b81526020820135602082015261116560408301611064565b60408201526111766060830161103b565b60608201526080820135608082015260a082013567ffffffffffffffff81111561119f57600080fd5b6111ab8482850161107c565b60a08301525060c082013560c082015260e082013560e082015261010080830135818301525092915050565b60008083601f8401126111e957600080fd5b50813567ffffffffffffffff81111561120157600080fd5b60208301915083602082850101111561121957600080fd5b9250929050565b6000806000806060858703121561123657600080fd5b843567ffffffffffffffff8082111561124e57600080fd5b9086019060e0828903121561126257600080fd5b61126a611018565b6112738361103b565b815260208301356020820152604083013560408201526112956060840161103b565b60608201526080830135828111156112ac57600080fd5b6112b88a828601611127565b60808301525060a083013560a082015260c083013560c0820152809650506020870135945060408701359150808211156112f157600080fd5b506112fe878288016111d7565b95989497509550505050565b815167ffffffffffffffff1681526103a081016020830151611338602084018267ffffffffffffffff169052565b50604083015161134e604084018261ffff169052565b50606083015161136a606084018267ffffffffffffffff169052565b506080830151611386608084018267ffffffffffffffff169052565b5060a083015160a083015260c08301516113b860c084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e08301516113e060e084018273ffffffffffffffffffffffffffffffffffffffff169052565b5061010083810151908301526101208084015160ff908116918401919091526101408085015167ffffffffffffffff9081169185019190915261016080860151821690850152610180808601518216908501526101a080860151909216918401919091526101c080850151908401526101e08085015182169084015261020080850151908401526102208085015182169084015261024080850151908401526102608085015182169084015261028080850151908401526102a080850151909116908301526102c080840151908301526102e08084015190830152610300808401519083015261032080840151908301526103408084015190830152610360808401519083015261038092830151929091019190915290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561153a5761153a6114f9565b500390565b600067ffffffffffffffff808316818516808303821115611562576115626114f9565b01949350505050565b6000821982111561157e5761157e6114f9565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156115e4576115e46114f9565b5060010190565b60008183825b60088110156116105781518352602092830192909101906001016115f1565b505050610100820190509291505056fea2646970667358221220c7123a2e3d48d824c5f4bad814aee3e06ee59f9cfb518382560b2833b38cffde64736f6c63430008090033", "linkReferences": {}, "deployedLinkReferences": {} }