diff --git a/broadcast/DeployECDSA.s.sol/11155111/run-1714676307.json b/broadcast/DeployECDSA.s.sol/11155111/run-1714676307.json new file mode 100644 index 00000000..5fc16ace --- /dev/null +++ b/broadcast/DeployECDSA.s.sol/11155111/run-1714676307.json @@ -0,0 +1,47 @@ +{ + "transactions": [ + { + "hash": "0x9803b4ddc4b3ef54acc03d828a762ab711f0c1764134b5692f66dd22bb249b9f", + "transactionType": "CREATE2", + "contractName": "ECDSAValidator", + "contractAddress": "0x845adb2c711129d4f3966735ed98a9f09fc4ce57", + "function": null, + "arguments": null, + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x9fafe", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006080806040523460155761071b908161001b8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600090813560e01c908163173bf7da1461043a57816320709efc14610403575080636d61fe701461034a5780638a91b0e3146102d4578063970032031461028e578063d60b347f14610240578063d68f602514610124578063ecd05961146100e55763f551e2ee1461008757600080fd5b346100e25760603660031901126100e2576100a061049e565b506044359067ffffffffffffffff82116100e257506100c76020936100d09236910161046b565b906024356105e5565b90516001600160e01b03199091168152f35b80fd5b50919034610120576020366003190112610120576020925081359160018314928315610116575b5050519015158152f35b149150388061010c565b8280fd5b509160603660031901126101205761013a61049e565b9267ffffffffffffffff6044358181116101205761015b903690850161046b565b505033825260208281528483205490956001600160a01b039182169116036101f157835192858401918211848310176101de575083949291945283815282519382859384528251928382860152825b8481106101c857505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016101aa565b634e487b7160e01b835260419052602482fd5b835162461bcd60e51b8152808401869052602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608490fd5b50903461028a57602036600319011261028a5760209061028161026161049e565b6001600160a01b0390811660009081526020819052604090205416151590565b90519015158152f35b5080fd5b506003199082823601126100e25783359167ffffffffffffffff831161028a576101209083360301126100e257506020926102cd91602435910161051d565b9051908152f35b5091602036600319011261012057803567ffffffffffffffff811161034657610300903690830161046b565b5050336000908152602081905260409020546001600160a01b031615610330575081903382528160205281205580f35b602491519063f91bd6f160e01b82523390820152fd5b8380fd5b5091602036600319011261012057803567ffffffffffffffff811161034657610376903690830161046b565b33600090815260208190526040902054919290916001600160a01b03166103ec5750601411610120573560601c90338352826020528220816bffffffffffffffffffffffff60a01b825416179055337fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca8380a380f35b6024908451906393360fbf60e01b82523390820152fd5b90508234610120576020366003190112610120576020926001600160a01b0391908261042d61049e565b1681528085522054168152f35b8285602036600319011261028a5780359067ffffffffffffffff8211610120576104669136910161046b565b505080f35b9181601f840112156104995782359167ffffffffffffffff8311610499576020838186019501011161049957565b600080fd5b600435906001600160a01b038216820361049957565b92919267ffffffffffffffff918281116105075760405192601f8201601f19908116603f011684019081118482101761050757604052829481845281830111610499578281602093846000960137010152565b634e487b7160e01b600052604160045260246000fd5b3360009081526020819052604081205490926001600160a01b03918216926101008101359036819003601e19018212156105e1570180359067ffffffffffffffff82116105e1576020019181360383136105e157836105866105803685876104b4565b8361067d565b1685146105d9576105ca926105c4916020527b19457468657265756d205369676e6564204d6573736167653a0a33328752603c6004209236916104b4565b9061067d565b16036105d35790565b50600190565b505050505090565b8580fd5b919033600052600060205260018060a01b0391826040600020541693836106106105803685876104b4565b16851461066c5761064f926105c4916020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c6004209236916104b4565b160361066057630b135d3f60e11b90565b6001600160e01b031990565b50630b135d3f60e11b949350505050565b919091602060016080600082948390604080998151986106bb575b5050505afa51923d156106ad57600060605252565b638baa579f6000526004601cfd5b8492835287808201518352828251146106fb5760418251146106e4575050509050388881610698565b60609384830151901a905201519052388881610698565b9250015190601b8260ff1c019052848060ff1b031660605238888161069856", + "nonce": "0x45", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xb578d9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x9803b4ddc4b3ef54acc03d828a762ab711f0c1764134b5692f66dd22bb249b9f", + "transactionIndex": "0x51", + "blockHash": "0xb4650a875f62666e5c1d1525cbb634af43376ea7ed4a8cf9994547f472ea1e4c", + "blockNumber": "0x58db5c", + "gasUsed": "0x6d375", + "effectiveGasPrice": "0x836fb6b6f", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x845adb2c711129d4f3966735ed98a9f09fc4ce57" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676307, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployECDSA.s.sol/11155111/run-latest.json b/broadcast/DeployECDSA.s.sol/11155111/run-latest.json index 485e7e90..5fc16ace 100644 --- a/broadcast/DeployECDSA.s.sol/11155111/run-latest.json +++ b/broadcast/DeployECDSA.s.sol/11155111/run-latest.json @@ -1,22 +1,20 @@ { "transactions": [ { - "hash": "0x8562ad26e46f807af71418ec082c720698f553e8eba477999545a42408ffa4a4", + "hash": "0x9803b4ddc4b3ef54acc03d828a762ab711f0c1764134b5692f66dd22bb249b9f", "transactionType": "CREATE2", "contractName": "ECDSAValidator", - "contractAddress": "0x8104e3ad430ea6d354d013a6789fdfc71e671c43", + "contractAddress": "0x845adb2c711129d4f3966735ed98a9f09fc4ce57", "function": null, "arguments": null, "transaction": { "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0xa28d7", + "gas": "0x9fafe", "value": "0x0", - "input": "0x00000000000000000000000000000000000000000000000000000000000000006080806040523461001657610740908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600090813560e01c90816320709efc14610459575080636d61fe70146103a05780638a91b0e31461032e57806397003203146102e8578063aacbd72a1461028e578063d60b347f14610240578063d68f602514610124578063ecd05961146100e55763f551e2ee1461008757600080fd5b346100e25760603660031901126100e2576100a0610490565b506044359067ffffffffffffffff82116100e257506100c76020936100d0923691016104ab565b9060243561060a565b90516001600160e01b03199091168152f35b80fd5b50919034610120576020366003190112610120576020925081359160018314928315610116575b5050519015158152f35b149150388061010c565b8280fd5b509160603660031901126101205761013a610490565b9267ffffffffffffffff6044358181116101205761015b90369085016104ab565b505033825260208281528483205490956001600160a01b039182169116036101f157835192858401918211848310176101de575083949291945283815282519382859384528251928382860152825b8481106101c857505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016101aa565b634e487b7160e01b835260419052602482fd5b835162461bcd60e51b8152808401869052602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608490fd5b50903461028a57602036600319011261028a57602090610281610261610490565b6001600160a01b0390811660009081526020819052604090205416151590565b90519015158152f35b5080fd5b5082606036600319011261028a5767ffffffffffffffff9080358281116102e4576102bc90369083016104ab565b50506024358015150361012057604435918211610120576102df913691016104ab565b505080f35b8380fd5b506003199082823601126100e25783359167ffffffffffffffff831161028a576101209083360301126100e25750602092610327916024359101610542565b9051908152f35b5091602036600319011261012057803567ffffffffffffffff81116102e45761035a90369083016104ab565b5050336000908152602081905260409020546001600160a01b03161561038a575081903382528160205281205580f35b602491519063f91bd6f160e01b82523390820152fd5b5091602036600319011261012057803567ffffffffffffffff81116102e4576103cc90369083016104ab565b33600090815260208190526040902054919290916001600160a01b03166104425750601411610120573560601c90338352826020528220816bffffffffffffffffffffffff60a01b825416179055337fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca8380a380f35b6024908451906393360fbf60e01b82523390820152fd5b90508234610120576020366003190112610120576020926001600160a01b03919082610483610490565b1681528085522054168152f35b600435906001600160a01b03821682036104a657565b600080fd5b9181601f840112156104a65782359167ffffffffffffffff83116104a657602083818601950101116104a657565b92919267ffffffffffffffff9182811161052c5760405192601f8201601f19908116603f011684019081118482101761052c576040528294818452818301116104a6578281602093846000960137010152565b634e487b7160e01b600052604160045260246000fd5b3360009081526020819052604081205490926001600160a01b03918216926101008101359036819003601e1901821215610606570180359067ffffffffffffffff82116106065760200191813603831361060657836105ab6105a53685876104d9565b836106a2565b1685146105fe576105ef926105e9916020527b19457468657265756d205369676e6564204d6573736167653a0a33328752603c6004209236916104d9565b906106a2565b16036105f85790565b50600190565b505050505090565b8580fd5b919033600052600060205260018060a01b0391826040600020541693836106356105a53685876104d9565b16851461069157610674926105e9916020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c6004209236916104d9565b160361068557630b135d3f60e11b90565b6001600160e01b031990565b50630b135d3f60e11b949350505050565b919091602060016080600082948390604080998151986106e0575b5050505afa51923d156106d257600060605252565b638baa579f6000526004601cfd5b8492835287808201518352828251146107205760418251146107095750505090503888816106bd565b60609384830151901a9052015190523888816106bd565b9250015190601b8260ff1c019052848060ff1b03166060523888816106bd56", - "nonce": "0x3e", - "chainId": "0xaa36a7", - "accessList": null, - "type": null + "input": "0x00000000000000000000000000000000000000000000000000000000000000006080806040523460155761071b908161001b8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600090813560e01c908163173bf7da1461043a57816320709efc14610403575080636d61fe701461034a5780638a91b0e3146102d4578063970032031461028e578063d60b347f14610240578063d68f602514610124578063ecd05961146100e55763f551e2ee1461008757600080fd5b346100e25760603660031901126100e2576100a061049e565b506044359067ffffffffffffffff82116100e257506100c76020936100d09236910161046b565b906024356105e5565b90516001600160e01b03199091168152f35b80fd5b50919034610120576020366003190112610120576020925081359160018314928315610116575b5050519015158152f35b149150388061010c565b8280fd5b509160603660031901126101205761013a61049e565b9267ffffffffffffffff6044358181116101205761015b903690850161046b565b505033825260208281528483205490956001600160a01b039182169116036101f157835192858401918211848310176101de575083949291945283815282519382859384528251928382860152825b8481106101c857505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016101aa565b634e487b7160e01b835260419052602482fd5b835162461bcd60e51b8152808401869052602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608490fd5b50903461028a57602036600319011261028a5760209061028161026161049e565b6001600160a01b0390811660009081526020819052604090205416151590565b90519015158152f35b5080fd5b506003199082823601126100e25783359167ffffffffffffffff831161028a576101209083360301126100e257506020926102cd91602435910161051d565b9051908152f35b5091602036600319011261012057803567ffffffffffffffff811161034657610300903690830161046b565b5050336000908152602081905260409020546001600160a01b031615610330575081903382528160205281205580f35b602491519063f91bd6f160e01b82523390820152fd5b8380fd5b5091602036600319011261012057803567ffffffffffffffff811161034657610376903690830161046b565b33600090815260208190526040902054919290916001600160a01b03166103ec5750601411610120573560601c90338352826020528220816bffffffffffffffffffffffff60a01b825416179055337fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca8380a380f35b6024908451906393360fbf60e01b82523390820152fd5b90508234610120576020366003190112610120576020926001600160a01b0391908261042d61049e565b1681528085522054168152f35b8285602036600319011261028a5780359067ffffffffffffffff8211610120576104669136910161046b565b505080f35b9181601f840112156104995782359167ffffffffffffffff8311610499576020838186019501011161049957565b600080fd5b600435906001600160a01b038216820361049957565b92919267ffffffffffffffff918281116105075760405192601f8201601f19908116603f011684019081118482101761050757604052829481845281830111610499578281602093846000960137010152565b634e487b7160e01b600052604160045260246000fd5b3360009081526020819052604081205490926001600160a01b03918216926101008101359036819003601e19018212156105e1570180359067ffffffffffffffff82116105e1576020019181360383136105e157836105866105803685876104b4565b8361067d565b1685146105d9576105ca926105c4916020527b19457468657265756d205369676e6564204d6573736167653a0a33328752603c6004209236916104b4565b9061067d565b16036105d35790565b50600190565b505050505090565b8580fd5b919033600052600060205260018060a01b0391826040600020541693836106106105803685876104b4565b16851461066c5761064f926105c4916020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c6004209236916104b4565b160361066057630b135d3f60e11b90565b6001600160e01b031990565b50630b135d3f60e11b949350505050565b919091602060016080600082948390604080998151986106bb575b5050505afa51923d156106ad57600060605252565b638baa579f6000526004601cfd5b8492835287808201518352828251146106fb5760418251146106e4575050509050388881610698565b60609384830151901a905201519052388881610698565b9250015190601b8260ff1c019052848060ff1b031660605238888161069856", + "nonce": "0x45", + "chainId": "0xaa36a7" }, "additionalContracts": [], "isFixedGasLimit": false @@ -25,25 +23,25 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0xaf2a76", + "cumulativeGasUsed": "0xb578d9", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x8562ad26e46f807af71418ec082c720698f553e8eba477999545a42408ffa4a4", - "transactionIndex": "0x42", - "blockHash": "0x05be0f541009e1f0df7b4c62fdfe876fb76559f2d962acd90cb8f1afb24bfefe", - "blockNumber": "0x569a7d", - "gasUsed": "0x6f2d1", - "effectiveGasPrice": "0x66b60fa8", + "transactionHash": "0x9803b4ddc4b3ef54acc03d828a762ab711f0c1764134b5692f66dd22bb249b9f", + "transactionIndex": "0x51", + "blockHash": "0xb4650a875f62666e5c1d1525cbb634af43376ea7ed4a8cf9994547f472ea1e4c", + "blockNumber": "0x58db5c", + "gasUsed": "0x6d375", + "effectiveGasPrice": "0x836fb6b6f", "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": "0x8104e3ad430ea6d354d013a6789fdfc71e671c43" + "contractAddress": "0x845adb2c711129d4f3966735ed98a9f09fc4ce57" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1712847787, + "timestamp": 1714676307, "chain": 11155111, - "commit": "f8be0c5" + "commit": "8f7fd99" } \ No newline at end of file diff --git a/broadcast/DeployECDSA.s.sol/80008/run-1714675930.json b/broadcast/DeployECDSA.s.sol/80008/run-1714675930.json new file mode 100644 index 00000000..7881a0c4 --- /dev/null +++ b/broadcast/DeployECDSA.s.sol/80008/run-1714675930.json @@ -0,0 +1,51 @@ +{ + "transactions": [ + { + "hash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionType": "CREATE2", + "contractName": "ECDSAValidator", + "contractAddress": "0xd6d8369145120b397f362cb18f930756fb70c627", + "function": null, + "arguments": null, + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0xbdacc", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b506109328061001f6000396000f3fe6080604052600436106100865760003560e01c806397003203116100595780639700320314610118578063d60b347f14610139578063d68f602514610169578063ecd0596114610189578063f551e2ee146101a957600080fd5b8063173bf7da1461008b57806320709efc1461009f5780636d61fe70146100f25780638a91b0e314610105575b600080fd5b61009d6100993660046106ff565b5050565b005b3480156100ab57600080fd5b506100d56100ba36600461075d565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009d6101003660046106ff565b6101e2565b61009d6101133660046106ff565b61028e565b61012b61012636600461077f565b6102e7565b6040519081526020016100e9565b34801561014557600080fd5b5061015961015436600461075d565b610426565b60405190151581526020016100e9565b61017c6101773660046107ca565b61044a565b6040516100e99190610824565b34801561019557600080fd5b506101596101a4366004610873565b6104dc565b3480156101b557600080fd5b506101c96101c43660046107ca565b6104ef565b6040516001600160e01b031990911681526020016100e9565b336000908152602081905260409020546001600160a01b031615610220576040516393360fbf60e01b81523360048201526024015b60405180910390fd5b600061022f601482848661088c565b610238916108b6565b3360008181526020819052604080822080546001600160a01b03191660609590951c94851790555192935083927fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca9190a3505050565b336000908152602081905260409020546001600160a01b03166102c65760405163f91bd6f160e01b8152336004820152602401610217565b505033600090815260208190526040902080546001600160a01b0319169055565b336000908152602081905260408120546001600160a01b031636826103106101008701876108eb565b915091506103548583838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b6001600160a01b0316836001600160a01b0316036103785760009350505050610420565b60006103a9866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006103ed8285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316856001600160a01b03161461041657600195505050505050610420565b6000955050505050505b92915050565b6001600160a01b038082166000908152602081905260408120549091161515610420565b336000908152602081905260409020546060906001600160a01b038681169116146104c35760405162461bcd60e51b815260206004820152602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608401610217565b506040805160208101909152600081525b949350505050565b6000600182148061042057505060041490565b33600090815260208181526040808320548151601f86018490048402810184019092528482526001600160a01b031691610545918791879087908190840183828082843760009201919091525061062592505050565b6001600160a01b0316816001600160a01b03160361056d5750630b135d3f60e11b90506104d4565b600061059e866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006105e28287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316836001600160a01b03161461061157506001600160e01b031992506104d4915050565b50630b135d3f60e11b979650505050505050565b604051600190836000526020830151604052604083510361066157604083015160ff81901c601b016020526001600160ff1b0316606052610687565b604183510361068257606083015160001a6020526040830151606052610687565b600091505b6020600160806000855afa5191503d6106a857638baa579f6000526004601cfd5b600060605260405292915050565b60008083601f8401126106c857600080fd5b50813567ffffffffffffffff8111156106e057600080fd5b6020830191508360208285010111156106f857600080fd5b9250929050565b6000806020838503121561071257600080fd5b823567ffffffffffffffff81111561072957600080fd5b610735858286016106b6565b90969095509350505050565b80356001600160a01b038116811461075857600080fd5b919050565b60006020828403121561076f57600080fd5b61077882610741565b9392505050565b6000806040838503121561079257600080fd5b823567ffffffffffffffff8111156107a957600080fd5b830161012081860312156107bc57600080fd5b946020939093013593505050565b600080600080606085870312156107e057600080fd5b6107e985610741565b935060208501359250604085013567ffffffffffffffff81111561080c57600080fd5b610818878288016106b6565b95989497509550505050565b60006020808352835180602085015260005b8181101561085257858101830151858201604001528201610836565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561088557600080fd5b5035919050565b6000808585111561089c57600080fd5b838611156108a957600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156108e35780818660140360031b1b83161692505b505092915050565b6000808335601e1984360301811261090257600080fd5b83018035915067ffffffffffffffff82111561091d57600080fd5b6020019150368190038213156106f857600080fd", + "nonce": "0xd", + "chainId": "0x13888" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x94cef", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionIndex": "0x1", + "blockHash": "0x12d046d39dec83067ae6bf64fc96fa6f7514165519146b424a4dc3356c18314e", + "blockNumber": "0x1d1abf", + "gasUsed": "0x895ba", + "effectiveGasPrice": "0xf433c", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "l1Fee": "0x1624d6e954fa4", + "l1FeeScalar": "0.684", + "l1GasPrice": "0x364d33a88", + "l1GasUsed": "0x98a0" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675930, + "chain": 80008, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployECDSA.s.sol/80008/run-latest.json b/broadcast/DeployECDSA.s.sol/80008/run-latest.json new file mode 100644 index 00000000..7881a0c4 --- /dev/null +++ b/broadcast/DeployECDSA.s.sol/80008/run-latest.json @@ -0,0 +1,51 @@ +{ + "transactions": [ + { + "hash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionType": "CREATE2", + "contractName": "ECDSAValidator", + "contractAddress": "0xd6d8369145120b397f362cb18f930756fb70c627", + "function": null, + "arguments": null, + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0xbdacc", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b506109328061001f6000396000f3fe6080604052600436106100865760003560e01c806397003203116100595780639700320314610118578063d60b347f14610139578063d68f602514610169578063ecd0596114610189578063f551e2ee146101a957600080fd5b8063173bf7da1461008b57806320709efc1461009f5780636d61fe70146100f25780638a91b0e314610105575b600080fd5b61009d6100993660046106ff565b5050565b005b3480156100ab57600080fd5b506100d56100ba36600461075d565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009d6101003660046106ff565b6101e2565b61009d6101133660046106ff565b61028e565b61012b61012636600461077f565b6102e7565b6040519081526020016100e9565b34801561014557600080fd5b5061015961015436600461075d565b610426565b60405190151581526020016100e9565b61017c6101773660046107ca565b61044a565b6040516100e99190610824565b34801561019557600080fd5b506101596101a4366004610873565b6104dc565b3480156101b557600080fd5b506101c96101c43660046107ca565b6104ef565b6040516001600160e01b031990911681526020016100e9565b336000908152602081905260409020546001600160a01b031615610220576040516393360fbf60e01b81523360048201526024015b60405180910390fd5b600061022f601482848661088c565b610238916108b6565b3360008181526020819052604080822080546001600160a01b03191660609590951c94851790555192935083927fa5e1f8b4009110f5525798d04ae2125421a12d0590aa52c13682ff1bd3c492ca9190a3505050565b336000908152602081905260409020546001600160a01b03166102c65760405163f91bd6f160e01b8152336004820152602401610217565b505033600090815260208190526040902080546001600160a01b0319169055565b336000908152602081905260408120546001600160a01b031636826103106101008701876108eb565b915091506103548583838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b6001600160a01b0316836001600160a01b0316036103785760009350505050610420565b60006103a9866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006103ed8285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316856001600160a01b03161461041657600195505050505050610420565b6000955050505050505b92915050565b6001600160a01b038082166000908152602081905260408120549091161515610420565b336000908152602081905260409020546060906001600160a01b038681169116146104c35760405162461bcd60e51b815260206004820152602360248201527f454344534156616c696461746f723a2073656e646572206973206e6f74206f776044820152623732b960e91b6064820152608401610217565b506040805160208101909152600081525b949350505050565b6000600182148061042057505060041490565b33600090815260208181526040808320548151601f86018490048402810184019092528482526001600160a01b031691610545918791879087908190840183828082843760009201919091525061062592505050565b6001600160a01b0316816001600160a01b03160361056d5750630b135d3f60e11b90506104d4565b600061059e866020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006105e28287878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061062592505050565b9050806001600160a01b0316836001600160a01b03161461061157506001600160e01b031992506104d4915050565b50630b135d3f60e11b979650505050505050565b604051600190836000526020830151604052604083510361066157604083015160ff81901c601b016020526001600160ff1b0316606052610687565b604183510361068257606083015160001a6020526040830151606052610687565b600091505b6020600160806000855afa5191503d6106a857638baa579f6000526004601cfd5b600060605260405292915050565b60008083601f8401126106c857600080fd5b50813567ffffffffffffffff8111156106e057600080fd5b6020830191508360208285010111156106f857600080fd5b9250929050565b6000806020838503121561071257600080fd5b823567ffffffffffffffff81111561072957600080fd5b610735858286016106b6565b90969095509350505050565b80356001600160a01b038116811461075857600080fd5b919050565b60006020828403121561076f57600080fd5b61077882610741565b9392505050565b6000806040838503121561079257600080fd5b823567ffffffffffffffff8111156107a957600080fd5b830161012081860312156107bc57600080fd5b946020939093013593505050565b600080600080606085870312156107e057600080fd5b6107e985610741565b935060208501359250604085013567ffffffffffffffff81111561080c57600080fd5b610818878288016106b6565b95989497509550505050565b60006020808352835180602085015260005b8181101561085257858101830151858201604001528201610836565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561088557600080fd5b5035919050565b6000808585111561089c57600080fd5b838611156108a957600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156108e35780818660140360031b1b83161692505b505092915050565b6000808335601e1984360301811261090257600080fd5b83018035915067ffffffffffffffff82111561091d57600080fd5b6020019150368190038213156106f857600080fd", + "nonce": "0xd", + "chainId": "0x13888" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x94cef", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x426046d7ec8addc099befc6f19266ae9acc511bfbaef54c31fcb8d03a10cd5b5", + "transactionIndex": "0x1", + "blockHash": "0x12d046d39dec83067ae6bf64fc96fa6f7514165519146b424a4dc3356c18314e", + "blockNumber": "0x1d1abf", + "gasUsed": "0x895ba", + "effectiveGasPrice": "0xf433c", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "l1Fee": "0x1624d6e954fa4", + "l1FeeScalar": "0.684", + "l1GasPrice": "0x364d33a88", + "l1GasUsed": "0x98a0" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675930, + "chain": 80008, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714675886.json b/broadcast/DeployKernel.s.sol/11155111/run-1714675886.json new file mode 100644 index 00000000..9623d7f8 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714675886.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675886, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714675987.json b/broadcast/DeployKernel.s.sol/11155111/run-1714675987.json new file mode 100644 index 00000000..8ba2fd3e --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714675987.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714675987, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714676050.json b/broadcast/DeployKernel.s.sol/11155111/run-1714676050.json new file mode 100644 index 00000000..fc08bd71 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714676050.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676050, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714676402.json b/broadcast/DeployKernel.s.sol/11155111/run-1714676402.json new file mode 100644 index 00000000..76041a40 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714676402.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x60ce26", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006101403461020257601f6153a738819003918201601f191683019291906001600160401b0384118385101761020757816020928492604096875283398101031261020257516001600160a01b038116810361020257306080524660a05260a082516100698161021d565b60068152600a602082016512d95c9b995b60d21b81526020865161008c8161021d565b838152019269302e332e312d6265746160b01b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b8252600481526101158161021d565b5190516001600160581b0319918282169190601581106101ed575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b0319825416179055519061516e928361023984396080518361429b015260a051836142be015260c05183614330015260e051836143560152518261427a01525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b1616803880610130565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102075760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d8161035661034960008051602061514e8339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b60008051602061514e833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e61077560008051602061514e8339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a660008051602061514e8339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b61081560008051602061514e8339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d161081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b9030613470565b509215610e055761001b9250613497565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133ee565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b61129561081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff60008051602061514e8339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b5a565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613497565b38806116af565b6116a9925061173536348761336a565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b3461020357600036600319011261020357602060008051602061514e8339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd160008051602061514e8339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb61081560008051602061514e8339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c969798613542565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b5050919390929461021396613542565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c160008051602061514e8339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613856565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c8565b603460148301359201906136fb565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135b0565b611b1f565b6018860135956038019491612333565b6136fb565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a0e565b600284036126b8576122b893506001600160a01b03166139c4565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b9161396a565b91926004810361276d57506122b89261273a9161271360008051602061514e8339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138bb565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f0575060008051602061514e8339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d75760008051602061514e8339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a0e565b613d5f565b906122b89291613b5a565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b03163690349061336a565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613dbc565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613497565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613449565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b0316600090815260008051602061512e8339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae889160008051602061514e8339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514e83398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613efb565b612cb2926136fb565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b60008051602061514e833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd19185858561415b565b9492939196909661424f565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614278565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614776565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614576565b94614776565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614776565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b908861438c565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514e83398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba5760008051602061514e833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b60008051602061514e833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b600a815269302e332e312d6265746160b01b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133da57505090565b611e5692503d8091833e6109388183610f4f565b6000928361341595936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af190811561091957600091613434575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d5906024830190610c78565b03925af18015610919576134e65750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b8051156135125760200190565b6134ef565b80518210156135125760209160051b010190565b908210156135125761027d9160051b810190612003565b96959192939694909460005b86811061356057505050505050509050565b806135a18a60019360051b850135613577816102a7565b61358d84613585818c613517565b51938c61352b565b90613599868b8b61352b565b949093612b4c565b0161354e565b90156135125790565b6001600160a01b039391929190848316156136f3575b6135cf90611dd1565b946135fb6135ee6135e083856135a7565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136d4575050908061361d92861693611b4c565b823b156102035761364892600092836040518096819582946306d61fe760e41b845260048401612322565b03925af1948515610919576136846136a493600193610213986136c1575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136ce92610eca565b38613666565b925092505094919403612a6a5760016136a49161368461021396613668565b8492506135c6565b6001600160a01b031691821580156137be575b6137b95760405163d60b347f60e01b8152306004820152602081602481875afa9081156109195760009161379a575b5015613765576001600160f81b03198061375a6135e084866135a7565b161461376557505050565b8061376f92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137b3915060203d602011610981576109738183610f4f565b3861373d565b505050565b506001831461370e565b919392916001600160a01b03908184161561384d575b16600081815260008051602061512e8339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613849576134d59394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137de565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388882610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a82519561391b8761390d6020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a61392e8c610efd565b828c525193f1943d9081613961575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b6000915061393d565b61397a6139ad9194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b03908116600081815260008051602061512e8339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a40613a2e60008051602061514e8339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a50611cfe83611c53565b93613a71613a5d84611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aaa57506122b89291613a9891369161263c565b9060581c6001600160a01b03166138bb565b600160f91b141590506103d8576102139160081b614811565b604051613acf81610f18565b600181528060005b602080821015613af257906060602092828501015201613ad7565b50505090565b90613b0282610f8a565b613b0f6040519182610f4f565b8281528092613b20601f1991610f8a565b019060005b828110613b3157505050565b806060602080938501015201613b25565b906040611e5692600081528160208201520190610c78565b613b6e818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf9575050613ba0908035019060208201913590565b929093168015600014613bb8575050611e5691614a8f565b03613bc657611e56916149d2565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c9b575090613c0f91614926565b93909294613c1b613ac3565b971680613c40575050613c2d93614977565b613c3683613505565b526122b882613505565b03613bc657613c4e9361494e565b613c5784613505565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b5160405191829182613b42565b0390a1565b919593918203613bc657613cd290613ccc613cb4613ac3565b9780613cc66123ce6123c88387611b30565b93611b69565b91613470565b613cde87959295613505565b5216908103613d1c575015613cef57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c96613c8984613505565b613bc6576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613db2575b6137b9578215613512576001600160f81b03198135811614613d9357505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d72565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e1057505050565b6000526020600020918201915b828110613e2957505050565b818155600101613e1d565b6001600160501b03199035818116939260168110613e5157505050565b60160360031b82901b16169150565b80548210156135125760005260206000200190600090565b805468010000000000000000811015610edd57613e9a91600182018155613e60565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613eec57505050565b60020360031b82901b16169150565b90803501906020808301923560fe81118015614153575b61414157600180613f2285611e09565b0154614128575b60001982019260005b84811061404b5750614010959461401e949093613ff49350613fed9250613f8d613fde613fc5611f87613fbf613fb987878e613fb48e613f85611d3b6123ce6123c8613f7f89898961352b565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b61352b565b90611bc2565b90613ecf565b613fce88611e09565b9060f01c61ffff19825416179055565b6001600160a01b03169661352b565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb9565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b6140a2611d3b611d3b6123ce6123c8613f7f868a8e613fb48f61406e8e91611e09565b0161409c61408f61408961408388888861352b565b90611b86565b90613e34565b6001600160501b03191690565b90613e78565b906140b1613fed82878b61352b565b906140d260409161401083519485928d63ffffffff60e01b168a8501613eb9565b833b156102035760009384926140fc92519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614115575b5001613f32565b8061091361412292610eca565b3861410e565b61413c600161413686611e09565b01613dfc565b613f29565b60405163b62d956d60e01b8152600490fd5b508015613f12565b84846141de926141c997969498956040519161417683610f33565b6141d860009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b28565b60ff806141f76141f16135e087866135a7565b60f81c90565b160361423d57614226614211846142219561423694611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c16928315600114614270575b5060d01c92565b925038614269565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614305575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e6565b9192909261439861280f565b906143a39085611b30565b6143ac91612333565b60601c6020820181905260008051602061514e8339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d84369061441d9261263c565b80519060200120913661443190888861263c565b8051906020012036614444908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144d061010082610f4f565b5190206144dc90614278565b607489013589018d8b82013591016144f392614d7a565b9a6144fe9488612b4c565b6145088183614f17565b61451191611af4565b61451a91611c27565b61452391613856565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061455057505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458885611e09565b016000835b6145d5575b5050505060ff806145a96141f16135e087896135a7565b160361423d576101006145cd6145c68561422696611e5698611b4c565b369161263c565b910152611e09565b819796975481101561476e576146066145fe6145f18385613e60565b90549060031b1c60501b90565b908160501c90565b98909761462261461c6141f16135e085856135a7565b60ff1690565b80840361473d575090818161465b61464f6146496146438461467898611bd0565b90614533565b60c01c90565b6001600160401b031690565b6009019161466d6145c6848484611be1565b6101008b0152611c0f565b989098975b600160f01b1615614692575b5083018361458d565b99866146cf929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455f565b0393165af195861561091957889661471e575b505084166147045750506146fa859493928592614776565b9a91929350614689565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614735929650803d10613163576131548183610f4f565b9338806146e2565b909991989083111561475b57604051630760bdcf60e11b8152600490fd5b6147636125e9565b61010088015261467d565b969596614592565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a757505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614809575b8381168015614802575b8781109088180280881897146147fa575b508181119082180218921716171790565b9550386147e9565b50806147d8565b9550856147ce565b9190803501916020906020840193359061482a81611e09565b9260019060018501906001825401850361491457906000835b6148a6575b505050506148959161489082613ff4610213979861486d600161413661401098611e09565b87546148849060101c6001600160a01b0316611d3b565b9460001981019161352b565b6138bb565b5080546001600160b01b0319169055565b815481101561490f579083826149056140108c6148f78a6148dc868e6148d46145fe6145f18c9f9e8e613e60565b96905061352b565b6040519586939092906001600160e01b0319168c8501613eb9565b6001600160a01b03166138bb565b5001909192614843565b614848565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a6573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b91908110156135125760051b81013590605e1981360301821215610203570190565b9190916149de83613af8565b9260005b8181106149ee57505050565b806149fc60019284866149b0565b8035614a07816101f2565b614a2860208093604093614a1d85830183612003565b93909201359061494e565b614a32858b613517565b5215614a41575b5050016149e2565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a85614a70858b613517565b51838051948594888652850152830190610c78565b0390a13880614a39565b919091614a9b83613af8565b9260005b818110614aab57505050565b80614ae16020614abe60019486886149b0565b8035614ac9816101f2565b614ad66040830183612003565b939092013590614977565b614aeb8288613517565b52614af68187613517565b5001614a9f565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b47614221845163ffffffff60e01b1690565b01936000936000958054965b878110614b6557505050505050505050565b80614b776145fe6145f18c9486613e60565b6001600160a01b031660a0880190815260808801959091614ba0906001600160f01b0319168752565b614bba614bb36141f16135e08a856135a7565b60ff168952565b614bc861461c895160ff1690565b808403614d425750868181614bed61464f614649614643614c419c9d614c1498611bd0565b60208c018181528c60c0614c096145c660099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c33906001600160f01b031916611f87565b166001600160f01b03191690565b15614c4e575b5001614b53565b51909150614c64906001600160a01b0316611d3b565b8651614c8890614c7b906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614ccd6101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614afd565b03915afa938415610919578b94614d23575b50506001600160a01b038316614d085750860180518b9392614d0091614776565b905238614c47565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d3a929450803d10613163576131548183610f4f565b913880614cdf565b839196945010600014614d6157604051630760bdcf60e11b8152600490fd5b614c418b93614d703688612619565b60c08a0152614c19565b60008051602061514e8339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e3d5750604051637aa8f17760e11b8152936020938593909284928392614dd2923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e1e575b505b6001600160e01b0319166374eca2c160e11b01614e0c57565b6040516362467c7760e11b8152600490fd5b614e37915060203d602011611f5f57611f578183610f4f565b38614df1565b919550929190600160f91b036103d857602091614e609160081b9584308861415b565b60405163392dffaf60e01b81529297929586949385938493614e9393909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb5575b50614df3565b614ece915060203d602011611f5f57611f578183610f4f565b38614eaf565b15614edb57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f246106528383611af4565b906004831015614f3357505050565b602c83106150c357614f4e611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f88614f7a6135ee6135e087876135a7565b6001600160f81b0319161590565b80615032575b94614fcf61251795611d3b95614fd4956102139b956123ce9a614fe4575b614fbf611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135b0565b611bfe565b602c86013595604c019491612333565b61502d606c8701358701615027602c604c83019201358061500e611d3b6123ce6123c88488611b30565b93615022856001600160a01b038a166150d1565b611b69565b916136fb565b614fac565b5091939092956040519163ecd0596160e01b83526020838061505c60048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fd497614fcf956000916150a4575b50959a50959b5095509550955050614f8e565b6150bd915060203d602011610981576109738183610f4f565b38615091565b505060046102139114614ed4565b61021391906001600160a01b039081831615615124575b1660005260008051602061512e83398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e856fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x42", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74", + "function": null, + "arguments": [ + "0xcB0441B80fCC3b0f92Fd56646Df2aF318AbcCEC4" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000cb0441b80fcc3b0f92fd56646df2af318abccec4", + "nonce": "0x43", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x38fF1127Ddbae72287D4C96cB419C08f88583f74", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb00000000000000000000000038ff1127ddbae72287d4c96cb419c08f88583f740000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x44", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xf99ee0", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4524513590edfaf9c0ec1d8a8950320c01ecd4df84213bc7edca398f116c957a", + "transactionIndex": "0x64", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x461b12", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xcb0441b80fcc3b0f92fd56646df2af318abccec4" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xfdba13", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2751ad8a78160b751905d64ad661decd1fbb1fcd1cea06e82f6b51d1a7fa1929", + "transactionIndex": "0x65", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x38ff1127ddbae72287d4c96cb419c08f88583f74" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x11972af", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x88d8a8f5863000a8d42b8c1bd476b0d6df242989a5e6e6eec7a073bfb3478be6", + "transactionIndex": "0x67", + "blockHash": "0x96510910bf9e042dd6c48f7cfcb236be37aeeebcfcc79669e20bda7ba2827e1e", + "blockNumber": "0x58db3c", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x3d4370928", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676402, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-1714676485.json b/broadcast/DeployKernel.s.sol/11155111/run-1714676485.json new file mode 100644 index 00000000..2894b625 --- /dev/null +++ b/broadcast/DeployKernel.s.sol/11155111/run-1714676485.json @@ -0,0 +1,124 @@ +{ + "transactions": [ + { + "hash": "0x952bfd07525fd91a68340bf2e3cac2f78b7ae26109c0bdfe787953c56e51c6e8", + "transactionType": "CREATE2", + "contractName": "Kernel", + "contractAddress": "0xdc4cfd181a721a047ee48a55393b25258b27ecb0", + "function": null, + "arguments": [ + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x6678bb", + "value": "0x0", + "input": "0x0000000000000000000000000000000000000000000000000000000000000000610140346101fd57601f61539d38819003918201601f191683019291906001600160401b038411838510176102025781602092849260409687528339810103126101fd57516001600160a01b03811681036101fd57306080524660a05260a0825161006981610218565b600681526005602082016512d95c9b995b60d21b81526020865161008c81610218565b838152019264302e332e3160d81b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b82526004815261011081610218565b5190516001600160581b0319918282169190601581106101e8575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b031982541617905551906151699283610234843960805183614296015260a051836142b9015260c0518361432b015260e051836143510152518261427501525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b161680388061012b565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102025760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d816103566103496000805160206151498339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b600080516020615149833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e6107756000805160206151498339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a66000805160206151498339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b6108156000805160206151498339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d16108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b903061346b565b509215610e055761001b9250613492565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133e9565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff6000805160206151498339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b6112956108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff6000805160206151498339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b55565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613492565b38806116af565b6116a99250611735363487613365565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b346102035760003660031901126102035760206000805160206151498339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd16000805160206151498339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c96979861353d565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b505091939092946102139661353d565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c16000805160206151498339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613851565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c3565b603460148301359201906136f6565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135ab565b611b1f565b6018860135956038019491612333565b6136f6565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a09565b600284036126b8576122b893506001600160a01b03166139bf565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b91613965565b91926004810361276d57506122b89261273a916127136000805160206151498339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138b6565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f057506000805160206151498339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d7576000805160206151498339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a09565b613d5a565b906122b89291613b55565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b031636903490613365565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613db7565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613492565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613444565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b031660009081526000805160206151298339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae88916000805160206151498339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514983398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613ef6565b612cb2926136f6565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b600080516020615149833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd191858585614156565b9492939196909661424a565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614273565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614771565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614571565b94614771565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614771565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b9088614387565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514983398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba57600080516020615149833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b600080516020615149833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b6005815264302e332e3160d81b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133d557505090565b611e5692503d8091833e6109388183610f4f565b6000928361341095936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af19081156109195760009161342f575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d0906024830190610c78565b03925af18015610919576134e15750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b80511561350d5760200190565b6134ea565b805182101561350d5760209160051b010190565b9082101561350d5761027d9160051b810190612003565b96959192939694909460005b86811061355b57505050505050509050565b8061359c8a60019360051b850135613572816102a7565b61358884613580818c613512565b51938c613526565b90613594868b8b613526565b949093612b4c565b01613549565b901561350d5790565b6001600160a01b039391929190848316156136ee575b6135ca90611dd1565b946135f66135e96135db83856135a2565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136cf575050908061361892861693611b4c565b823b156102035761364392600092836040518096819582946306d61fe760e41b845260048401612322565b03925af19485156109195761367f61369f93600193610213986136bc575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136c992610eca565b38613661565b925092505094919403612a6a57600161369f9161367f61021396613663565b8492506135c1565b6001600160a01b031691821580156137b9575b6137b45760405163d60b347f60e01b8152306004820152602081602481875afa90811561091957600091613795575b5015613760576001600160f81b0319806137556135db84866135a2565b161461376057505050565b8061376a92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137ae915060203d602011610981576109738183610f4f565b38613738565b505050565b5060018314613709565b919392916001600160a01b039081841615613848575b1660008181526000805160206151298339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613844576134d09394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137d9565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388382610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a825195613916876139086020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a6139298c610efd565b828c525193f1943d908161395c575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b60009150613938565b6139756139a89194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b0390811660008181526000805160206151298339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a3b613a296000805160206151498339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a4b611cfe83611c53565b93613a6c613a5884611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aa557506122b89291613a9391369161263c565b9060581c6001600160a01b03166138b6565b600160f91b141590506103d8576102139160081b61480c565b604051613aca81610f18565b600181528060005b602080821015613aed57906060602092828501015201613ad2565b50505090565b90613afd82610f8a565b613b0a6040519182610f4f565b8281528092613b1b601f1991610f8a565b019060005b828110613b2c57505050565b806060602080938501015201613b20565b906040611e5692600081528160208201520190610c78565b613b69818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf4575050613b9b908035019060208201913590565b929093168015600014613bb3575050611e5691614a8a565b03613bc157611e56916149cd565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c96575090613c0a91614921565b93909294613c16613abe565b971680613c3b575050613c2893614972565b613c3183613500565b526122b882613500565b03613bc157613c4993614949565b613c5284613500565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c91613c8484613500565b5160405191829182613b3d565b0390a1565b919593918203613bc157613ccd90613cc7613caf613abe565b9780613cc16123ce6123c88387611b30565b93611b69565b9161346b565b613cd987959295613500565b5216908103613d17575015613cea57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c91613c8484613500565b613bc1576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613dad575b6137b457821561350d576001600160f81b03198135811614613d8e57505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d6d565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e0b57505050565b6000526020600020918201915b828110613e2457505050565b818155600101613e18565b6001600160501b03199035818116939260168110613e4c57505050565b60160360031b82901b16169150565b805482101561350d5760005260206000200190600090565b805468010000000000000000811015610edd57613e9591600182018155613e5b565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613ee757505050565b60020360031b82901b16169150565b90803501906020808301923560fe8111801561414e575b61413c57600180613f1d85611e09565b0154614123575b60001982019260005b848110614046575061400b9594614019949093613fef9350613fe89250613f88613fd9613fc0611f87613fba613fb487878e613faf8e613f80611d3b6123ce6123c8613f7a898989613526565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b613526565b90611bc2565b90613eca565b613fc988611e09565b9060f01c61ffff19825416179055565b6001600160a01b031696613526565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb4565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b61409d611d3b611d3b6123ce6123c8613f7a868a8e613faf8f6140698e91611e09565b0161409761408a61408461407e888888613526565b90611b86565b90613e2f565b6001600160501b03191690565b90613e73565b906140ac613fe882878b613526565b906140cd60409161400b83519485928d63ffffffff60e01b168a8501613eb4565b833b156102035760009384926140f792519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614110575b5001613f2d565b8061091361411d92610eca565b38614109565b614137600161413186611e09565b01613df7565b613f24565b60405163b62d956d60e01b8152600490fd5b508015613f0d565b84846141d9926141c497969498956040519161417183610f33565b6141d360009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b23565b60ff806141f26141ec6135db87866135a2565b60f81c90565b16036142385761422161420c8461421c9561423194611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c1692831560011461426b575b5060d01c92565b925038614264565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614300575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e1565b9192909261439361280f565b9061439e9085611b30565b6143a791612333565b60601c602082018190526000805160206151498339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d8436906144189261263c565b80519060200120913661442c90888861263c565b805190602001203661443f908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144cb61010082610f4f565b5190206144d790614273565b607489013589018d8b82013591016144ee92614d75565b9a6144f99488612b4c565b6145038183614f12565b61450c91611af4565b61451591611c27565b61451e91613851565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061454b57505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458385611e09565b016000835b6145d0575b5050505060ff806145a46141ec6135db87896135a2565b1603614238576101006145c86145c18561422196611e5698611b4c565b369161263c565b910152611e09565b8197969754811015614769576146016145f96145ec8385613e5b565b90549060031b1c60501b90565b908160501c90565b98909761461d6146176141ec6135db85856135a2565b60ff1690565b808403614738575090818161465661464a61464461463e8461467398611bd0565b9061452e565b60c01c90565b6001600160401b031690565b600901916146686145c1848484611be1565b6101008b0152611c0f565b989098975b600160f01b161561468d575b50830183614588565b99866146ca929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455a565b0393165af1958615610919578896614719575b505084166146ff5750506146f5859493928592614771565b9a91929350614684565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614730929650803d10613163576131548183610f4f565b9338806146dd565b909991989083111561475657604051630760bdcf60e11b8152600490fd5b61475e6125e9565b610100880152614678565b96959661458d565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a257505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614804575b83811680156147fd575b8781109088180280881897146147f5575b508181119082180218921716171790565b9550386147e4565b50806147d3565b9550856147c9565b9190803501916020906020840193359061482581611e09565b9260019060018501906001825401850361490f57906000835b6148a1575b505050506148909161488b82613fef6102139798614868600161413161400b98611e09565b875461487f9060101c6001600160a01b0316611d3b565b94600019810191613526565b6138b6565b5080546001600160b01b0319169055565b815481101561490a5790838261490061400b8c6148f28a6148d7868e6148cf6145f96145ec8c9f9e8e613e5b565b969050613526565b6040519586939092906001600160e01b0319168c8501613eb4565b6001600160a01b03166138b6565b500190919261483e565b614843565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a1573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b919081101561350d5760051b81013590605e1981360301821215610203570190565b9190916149d983613af3565b9260005b8181106149e957505050565b806149f760019284866149ab565b8035614a02816101f2565b614a2360208093604093614a1885830183612003565b939092013590614949565b614a2d858b613512565b5215614a3c575b5050016149dd565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a80614a6b858b613512565b51838051948594888652850152830190610c78565b0390a13880614a34565b919091614a9683613af3565b9260005b818110614aa657505050565b80614adc6020614ab960019486886149ab565b8035614ac4816101f2565b614ad16040830183612003565b939092013590614972565b614ae68288613512565b52614af18187613512565b5001614a9a565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b4261421c845163ffffffff60e01b1690565b01936000936000958054965b878110614b6057505050505050505050565b80614b726145f96145ec8c9486613e5b565b6001600160a01b031660a0880190815260808801959091614b9b906001600160f01b0319168752565b614bb5614bae6141ec6135db8a856135a2565b60ff168952565b614bc3614617895160ff1690565b808403614d3d5750868181614be861464a61464461463e614c3c9c9d614c0f98611bd0565b60208c018181528c60c0614c046145c160099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c2e906001600160f01b031916611f87565b166001600160f01b03191690565b15614c49575b5001614b4e565b51909150614c5f906001600160a01b0316611d3b565b8651614c8390614c76906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614cc86101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614af8565b03915afa938415610919578b94614d1e575b50506001600160a01b038316614d035750860180518b9392614cfb91614771565b905238614c42565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d35929450803d10613163576131548183610f4f565b913880614cda565b839196945010600014614d5c57604051630760bdcf60e11b8152600490fd5b614c3c8b93614d6b3688612619565b60c08a0152614c14565b6000805160206151498339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e385750604051637aa8f17760e11b8152936020938593909284928392614dcd923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e19575b505b6001600160e01b0319166374eca2c160e11b01614e0757565b6040516362467c7760e11b8152600490fd5b614e32915060203d602011611f5f57611f578183610f4f565b38614dec565b919550929190600160f91b036103d857602091614e5b9160081b95843088614156565b60405163392dffaf60e01b81529297929586949385938493614e8e93909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb0575b50614dee565b614ec9915060203d602011611f5f57611f578183610f4f565b38614eaa565b15614ed657565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f1f6106528383611af4565b906004831015614f2e57505050565b602c83106150be57614f49611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f83614f756135e96135db87876135a2565b6001600160f81b0319161590565b8061502d575b94614fca61251795611d3b95614fcf956102139b956123ce9a614fdf575b614fba611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135ab565b611bfe565b602c86013595604c019491612333565b615028606c8701358701615022602c604c830192013580615009611d3b6123ce6123c88488611b30565b9361501d856001600160a01b038a166150cc565b611b69565b916136f6565b614fa7565b5091939092956040519163ecd0596160e01b83526020838061505760048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fcf97614fca9560009161509f575b50959a50959b5095509550955050614f89565b6150b8915060203d602011610981576109738183610f4f565b3861508c565b505060046102139114614ecf565b61021391906001600160a01b03908183161561511f575b1660005260008051602061512983398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e356fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x46", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x244a50f193b593c6083a1b45b7a32ff092076f421612d413f435b89660b4bf29", + "transactionType": "CREATE2", + "contractName": "KernelFactory", + "contractAddress": "0x8134d811e37c7c3c88e6fba5322808c6871d58a5", + "function": null, + "arguments": [ + "0xDC4CfD181a721A047EE48A55393b25258B27ECB0" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x600f4", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000dc4cfd181a721a047ee48a55393b25258b27ecb0", + "nonce": "0x47", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa7c6b6633c4b26acb79ec12954dac829e9b4c4d2169964f2623c2c814f27ff71", + "transactionType": "CALL", + "contractName": "FactoryStaker", + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x8134d811E37C7c3C88e6fBA5322808c6871D58A5", + "true" + ], + "transaction": { + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", + "value": "0x0", + "input": "0x6e7dbabb0000000000000000000000008134d811e37c7c3c88e6fba5322808c6871d58a50000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x48", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xac75b9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x952bfd07525fd91a68340bf2e3cac2f78b7ae26109c0bdfe787953c56e51c6e8", + "transactionIndex": "0x42", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0x461625", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xdc4cfd181a721a047ee48a55393b25258b27ecb0" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xb090ec", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x244a50f193b593c6083a1b45b7a32ff092076f421612d413f435b89660b4bf29", + "transactionIndex": "0x43", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x8134d811e37c7c3c88e6fba5322808c6871d58a5" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xb145ff", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa7c6b6633c4b26acb79ec12954dac829e9b4c4d2169964f2623c2c814f27ff71", + "transactionIndex": "0x44", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1714676485, + "chain": 11155111, + "commit": "8f7fd99" +} \ No newline at end of file diff --git a/broadcast/DeployKernel.s.sol/11155111/run-latest.json b/broadcast/DeployKernel.s.sol/11155111/run-latest.json index cfeeda21..2894b625 100644 --- a/broadcast/DeployKernel.s.sol/11155111/run-latest.json +++ b/broadcast/DeployKernel.s.sol/11155111/run-latest.json @@ -1,86 +1,65 @@ { "transactions": [ { - "hash": "0xed1ae98e017b385eeea04d65b6b259f183da0a95c6b068944fa376c39d3b7c05", + "hash": "0x952bfd07525fd91a68340bf2e3cac2f78b7ae26109c0bdfe787953c56e51c6e8", "transactionType": "CREATE2", - "contractName": "KernelLiteECDSA", - "contractAddress": "0xbEdb61Be086F3f15eE911Cc9AB3EEa945DEbFa96", + "contractName": "Kernel", + "contractAddress": "0xdc4cfd181a721a047ee48a55393b25258b27ecb0", "function": null, "arguments": [ - "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", - "0xd9AB5096a832b9ce79914329DAEE236f8Eea0390" + "0x0000000071727De22E5E9d8BAf0edAc6f37da032" ], "transaction": { - "type": "0x02", "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x285e72", + "gas": "0x6678bb", "value": "0x0", - "data": "0x0000000000000000000000000000000000000000000000000000000000000000610160346200021357601f6200230b38819003918201601f19168301916001600160401b0383118484101762000218578084926040948552833981010312620002135780516001600160a01b039182821682036200021357602001519182168092036200021357306080524660a05260a06200007a6200022e565b600681526005602082016512d95c9b995b60d21b815260206200009c6200022e565b838152019264181719171960d91b845251902091208160c0528060e052604051917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83526020830152604082015246606082015230608082015220916101009283526101209182527f439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dd96a010000000000000000000080600160f01b03198254161790556101409081527fdea7fea882fba743201b2aeb1babf326b8944488db560784858525d123ee7e976001808060a01b0319825416179055604051916120bc93846200024f853960805184611b7c015260a05184611b9f015260c05184611c11015260e05184611c3701525183611b5b0152518281816104fb015281816107ba015281816108c701528181610a5201528181610b7301528181610d1201528181610e780152818161101c01528181611114015281816111c40152818161126d01526115c2015251818181610e160152610ed90152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620002185760405256fe6080604052600436101561001d575b366111a75761001b611e6b565b005b60003560e01c806306fdde03146101ad5780630b3dc354146101a8578063150b7a02146101a35780631626ba7e1461019e57806329f8b17414610199578063333daf921461019457806334fcd5be1461018f5780633659cfe61461018a5780633a871cdd146101855780633e1b08121461018057806351166ba01461017b578063519454471461017657806354fd4d501461017157806355b14f501461016c57806357b750471461016757806384b0196e1461016257806388e7fd061461015d578063b0d691fe14610158578063bc197c8114610153578063cdaea3ed1461014e578063d087d28814610149578063d1f5789414610144578063d54162211461013f578063f23a6e611461013a5763f2fde38b0361000e576110f1565b611097565b611005565b610ec4565b610e45565b610e00565b610d71565b610cfc565b610cc7565b610c1f565b610be8565b610b64565b610b10565b610a0b565b610942565b61087e565b61083c565b610796565b6106b3565b61062e565b610486565b610433565b6103a6565b610327565b6102f3565b60009103126101bd57565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101eb57604052565b6101c2565b606081019081106001600160401b038211176101eb57604052565b608081019081106001600160401b038211176101eb57604052565b604081019081106001600160401b038211176101eb57604052565b90601f801991011681019081106001600160401b038211176101eb57604052565b6040519061026f8261020b565b565b6040519061016082018281106001600160401b038211176101eb57604052565b6040519061029e82610226565b600682526512d95c9b995b60d21b6020830152565b919082519283825260005b8481106102df575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016102be565b346101bd5760003660031901126101bd5761032361030f610291565b6040519182916020835260208301906102b3565b0390f35b346101bd5760003660031901126101bd57602060008051602061207c8339815191525460501c6040519060018060a01b03168152f35b6001600160a01b038116036101bd57565b359061026f8261035d565b9181601f840112156101bd578235916001600160401b0383116101bd57602083818601950101116101bd57565b346101bd5760803660031901126101bd576103c260043561035d565b6103cd60243561035d565b6064356001600160401b0381116101bd576103ec903690600401610379565b5050604051630a85bd0160e11b8152602090f35b9060406003198301126101bd5760043591602435906001600160401b0382116101bd5761042f91600401610379565b9091565b346101bd57602061044c61044636610400565b91611c6d565b6040516001600160e01b03199091168152f35b600435906001600160e01b0319821682036101bd57565b65ffffffffffff8116036101bd57565b60c03660031901126101bd5761049a61045f565b602435906104a78261035d565b604435906104b48261035d565b6064356104c081610476565b608435936104cd85610476565b60a4356001600160401b0381116101bd576104ec903690600401610379565b9590946001600160a01b0393337f00000000000000000000000000000000000000000000000000000000000000008616141580610624575b6106125784926105596105859261054a61053c610262565b65ffffffffffff9094168452565b65ffffffffffff166020830152565b6001600160a01b03851660408201526001600160a01b03831660608201526105808761116f565b611869565b1693843b156101bd576040519063064acaab60e11b825281806105af6000998a94600484016118d9565b038183895af1801561060d576105f4575b5016906001600160e01b0319167fed03d2572564284398470d3f266a693e29ddfff3eba45fc06c5e91013d3213538480a480f35b80610601610607926101d8565b806101b2565b386105c0565b6115a9565b604051637046c88d60e01b8152600490fd5b5030331415610524565b346101bd57602061064761064136610400565b91611f94565b604051908152f35b9291926001600160401b0382116101eb5760405191610678601f8201601f191660200184610241565b8294818452818301116101bd578281602093846000960137010152565b9080601f830112156101bd578160206106b09335910161064f565b90565b6020806003193601126101bd576001600160401b036004358181116101bd57366023820112156101bd578060040135918083116101eb578260051b9060409081519461070187850187610241565b85528585019160248094860101943686116101bd57848101935b86851061072b5761001b8861126a565b84358481116101bd578201606060231982360301126101bd57835191610750836101f0565b8782013561075d8161035d565b835260448201358b8401526064820135928684116101bd576107878c94938a869536920101610695565b8682015281520194019361071b565b60203660031901126101bd576004356107ae8161035d565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610832575b61061257807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2005b50303314156107e3565b6003196060368201126101bd57600435906001600160401b0382116101bd576101609082360301126101bd5761064760209160443590602435906004016115b5565b346101bd5760203660031901126101bd576004356001600160c01b038116908190036101bd57604051631aab3f0d60e11b815230600482015260248101919091526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561060d5761032391600091610914575b506040519081529081906020820190565b610935915060203d811161093b575b61092d8183610241565b8101906114ca565b38610903565b503d610923565b346101bd5760203660031901126101bd5761032361098761096161045f565b600060606040516109718161020b565b828152826020820152826040820152015261116f565b604051906109948261020b565b805465ffffffffffff80821684528160301c16602084015260601c60408301526001808060a01b03910154166060820152604051918291829190916060608082019365ffffffffffff80825116845260208201511660208401528160018060a01b0391826040820151166040860152015116910152565b60803660031901126101bd57600435610a238161035d565b6044356001600160401b0381116101bd57610a42903690600401610695565b9060643560028110156101bd57337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580610ae5575b80610ad0575b61061257610a9581611220565b610abe576000828193926020839451920190602435905af13d82803e15610aba573d90f35b3d90fd5b6040516367ce775960e01b8152600490fd5b50610ae0610adc611d3c565b1590565b610a88565b5030331415610a82565b60405190610afc82610226565b6005825264181719171960d91b6020830152565b346101bd5760003660031901126101bd5761032361030f610aef565b9060406003198301126101bd57600435610b458161035d565b91602435906001600160401b0382116101bd5761042f91600401610379565b610b6d36610b2c565b505050337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580610bde575b6106125760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b5030331415610ba3565b346101bd5760003660031901126101bd57602060008051602061207c8339815191525460e01b6040519063ffffffff60e01b168152f35b346101bd5760003660031901126101bd57610c75610c3b610291565b610c43610aef565b90604051928392600f60f81b8452610c6760209360e08587015260e08601906102b3565b9084820360408601526102b3565b90466060840152306080840152600060a084015282820360c08401528060605192838152019160809160005b828110610cb057505050500390f35b835185528695509381019392810192600101610ca1565b346101bd5760003660031901126101bd57602060008051602061207c8339815191525465ffffffffffff60405191831c168152f35b346101bd5760003660031901126101bd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f840112156101bd578235916001600160401b0383116101bd576020808501948460051b0101116101bd57565b346101bd5760a03660031901126101bd57610d8d60043561035d565b610d9860243561035d565b6001600160401b036044358181116101bd57610db8903690600401610d41565b50506064358181116101bd57610dd2903690600401610d41565b50506084359081116101bd57610dec903690600401610379565b505060405163bc197c8160e01b8152602090f35b346101bd5760003660031901126101bd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101bd5760003660031901126101bd57604051631aab3f0d60e11b8152306004820152600060248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561060d576103239160009161091457506040519081529081906020820190565b610ecd36610b2c565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821690821603610fb55760008051602061209c8339815191525416610f6457610f30610f2a61001b93610f3693611308565b906117ef565b60601c90565b60008051602061209c83398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b8152602060048201526024808201527f4b65726e656c4c69746545434453413a20616c726561647920696e697469616c6044820152631a5e995960e21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f4b65726e656c4c69746545434453413a20696e76616c69642076616c6964617460448201526137b960f11b6064820152608490fd5b60203660031901126101bd5761101961045f565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061108d575b6106125760008051602061207c83398151915290815469ffffffffffff000000004260201b169160e01c9069ffffffffffffffffffff191617179055600080f35b503033141561104c565b346101bd5760a03660031901126101bd576110b360043561035d565b6110be60243561035d565b6084356001600160401b0381116101bd576110dd903690600401610379565b505060405163f23a6e6160e01b8152602090f35b60203660031901126101bd576004356111098161035d565b6001600160a01b03337f00000000000000000000000000000000000000000000000000000000000000008216141580611165575b6106125760008051602061209c83398151915280546001600160a01b03191691909216179055005b503033141561113d565b63ffffffff60e01b166000527f439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dda602052604060002090565b60006111bd81356001600160e01b03191661116f565b5460601c337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580611211575b61061257818091368280378136915af43d82803e15610aba573d90f35b5061121a611d3c565b156111f4565b6002111561122a57565b634e487b7160e01b600052602160045260246000fd5b80518210156112545760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806112f7575b6106125780519060005b8281106112b357505050565b6000806112c08385611240565b5180516001600160a01b03166020916040838201519101519283519301915af13d6000803e156112f2576001016112a7565b3d6000fd5b50611303610adc611d3c565b61129d565b906014116101bd5790601490565b906004116101bd5790600490565b90929192836004116101bd5783116101bd57600401916003190190565b906024116101bd5760100190601490565b906058116101bd5760380190602090565b906024116101bd5760040190602090565b906038116101bd5760240190601490565b90600a116101bd5760040190600690565b906010116101bd57600a0190600690565b909392938483116101bd5784116101bd578101920390565b6001600160e01b031990358181169392600481106113dc57505050565b60040360031b82901b16169150565b9190610160838203126101bd57611400610271565b9261140a8161036e565b8452602081013560208501526040810135916001600160401b03928381116101bd5781611438918401610695565b604086015260608201358381116101bd5781611455918401610695565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e082013560e08601526101008083013590860152610120808301358481116101bd57826114a7918501610695565b9086015261014092838301359081116101bd576114c49201610695565b90830152565b908160209103126101bd575190565b606080825282516001600160a01b0316908201529193929160409161159f90602081015160808401528381015161151e610160918260a08701526101c08601906102b3565b9061158c61153e606085015193605f1994858983030160c08a01526102b3565b608085015160e088015260a085015192610100938489015260c08601519061012091828a015260e08701519461014095868b01528701519089015285015184888303016101808901526102b3565b92015190848303016101a08501526102b3565b9460208201520152565b6040513d6000823e3d90fd5b6001600160a01b039392917f0000000000000000000000000000000000000000000000000000000000000000851633036117dd5760049485359283610144810135019187602484019301359461161461160e8786611316565b906113bf565b926001600160e01b03198085169182156117b0576116339036906113eb565b9461164d60008051602061207c8339815191525460e01b90565b1616156116655760405163fc2f51c560e01b81528a90fd5b97989697600160e01b810361175f575090602095966116ef6116bd6116a461169f61160e8760646000990135016024878201359101611316565b61116f565b6001810154909a9081906001600160a01b031698611324565b995460d081901b6001600160d01b03191660709190911b65ffffffffffff60a01b1617995b8b611751575b369161064f565b610140850152611713604051998a9788968794633a871cdd60e01b865285016114d9565b0393165af190811561060d576106b092600092611731575b50611ff9565b61174a91925060203d811161093b5761092d8183610241565b903861172b565b348080808f335af1506116e8565b9095939190600160e11b036117a3576117996116ef9460009361179461160e8a606460209c01350160248d8201359101611316565b611901565b91999296916116e2565b5050505050505050600190565b9750505050505050916106b0939450806117cb575b50611e9c565b3490349034903490335af150386117c5565b604051636b31ba1560e11b8152600490fd5b6bffffffffffffffffffffffff19903581811693926014811061181157505050565b60140360031b82901b16169150565b35906020811061182e575090565b6000199060200360031b1b1690565b6001600160d01b0319903581811693926006811061185a57505050565b60060360031b82901b16169150565b81516020830151604084015160309190911b6bffffffffffff0000000000001665ffffffffffff9290921691909117606091821b6bffffffffffffffffffffffff19161782559091015160019190910180546001600160a01b0319166001600160a01b0392909216919091179055565b90918060409360208452816020850152848401376000828201840152601f01601f1916010190565b919061190d8282611341565b611916916117ef565b60601c936119248383611352565b61192d91611820565b6058830160788201948583605801906119479183886113a7565b61195091611820565b61195a8287611363565b61196391611820565b61196d8388611374565b611976916117ef565b60601c61198436878761064f565b8051602091820120604080517f3ce406685c1b3551d706d85a68afdaa49ac4e07b451ad9b8ff8b58c3ee9641769381019384526001600160e01b03198e169181019190915260608101949094526001600160a01b0392909216608084015260a080840192909252908252906119fa60c082610241565b519020611a0690611b59565b9084019660788801611a199184896113a7565b90611a2392611f94565b611a2d8287611363565b6001600160a01b031991611a419190611820565b16611a4b91611ff9565b966078868801019682036077190195611a648382611385565b611a6d9161183d565b60d01c92611a7b8183611396565b611a849161183d565b60d01c91611a928282611374565b611a9b916117ef565b60601c91611aa891611341565b611ab1916117ef565b60601c91611abd610262565b65ffffffffffff909516855265ffffffffffff1660208501526001600160a01b031660408401526001600160a01b03166060830152611afb9061116f565b90611b0591611869565b6001600160a01b03871691823b156101bd57611b3b926000928360405180968195829463064acaab60e11b8452600484016118d9565b03925af1801561060d57611b4c5750565b8061060161026f926101d8565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615611be6575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f0000000000000000000000000000000000000000000000000000000000000000604082015246606082015230608082015220611bc7565b90611c789291611f94565b65ffffffffffff808260a01c16908115600114611ce3575b428360d01c11611cd35742911610611cc6576001600160a01b0316611cba57630b135d3f60e11b90565b6001600160e01b031990565b506001600160e01b031990565b506001600160e01b031992915050565b905080611c90565b908160209103126101bd575180151581036101bd5790565b6001600160a01b0390911681526040602082018190528101829052606091806000848401376000828201840152601f01601f1916010190565b60008051602061209c833981519152546001600160a01b039081163314611e6557611d726000356001600160e01b03191661116f565b60018101546001600160a01b031691821615908115611e29575b8115611dfe575b5015611d9f5750600090565b60206040518092639ea9bd5960e01b82528180611dc0363360048401611d03565b03915afa90811561060d57600091611dd6575090565b6106b0915060203d8111611df7575b611def8183610241565b810190611ceb565b503d611de5565b54611e18915065ffffffffffff165b65ffffffffffff1690565b65ffffffffffff4291161138611d93565b905065ffffffffffff611e49611e0d835465ffffffffffff9060301c1690565b168015159081611e5b575b5090611d8c565b9050421138611e54565b50600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b90611ecc906020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b9061014081013590601e19813603018212156101bd5701908135916001600160401b0383116101bd576020019180360383136101bd576116e881611f1392611f1995611324565b90611f45565b60008051602061209c833981519152546001600160a01b03908116911603611f4057600090565b600190565b6001608060006041602094969596604080519880519285526060810151851a88528781015182520151606052145afa51913d15611f86576000606052604052565b638baa579f6000526004601cfd5b6020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c600420611fcd9291611f139192369161064f565b60008051602061209c833981519152546001600160a01b03918216911614611ff457600190565b600090565b8082186001600160a01b031615600114612014575050600190565b65ffffffffffff60a01b8181169265ffffffffffff60a01b1992831692811691908415612072575b8116801561206b575b848110908518028085189414612063575b5081811190821802181790565b925038612056565b5080612045565b9350809361203c56fe439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dd9dea7fea882fba743201b2aeb1babf326b8944488db560784858525d123ee7e970000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789000000000000000000000000d9ab5096a832b9ce79914329daee236f8eea0390", - "nonce": "0xa", - "accessList": [] + "input": "0x0000000000000000000000000000000000000000000000000000000000000000610140346101fd57601f61539d38819003918201601f191683019291906001600160401b038411838510176102025781602092849260409687528339810103126101fd57516001600160a01b03811681036101fd57306080524660a05260a0825161006981610218565b600681526005602082016512d95c9b995b60d21b81526020865161008c81610218565b838152019264302e332e3160d81b845251902091208160c0528060e0528451917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260208301528482015246606082015230608082015220916101009283526101209182528051602081019063deadbeef60e01b82526004815261011081610218565b5190516001600160581b0319918282169190601581106101e8575b505090507f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f9060581c60018060a81b031982541617905551906151699283610234843960805183614296015260a051836142b9015260c0518361432b015260e051836143510152518261427501525181818161050301528181610827015281816109dd01528181610d74015281816110d901528181611241015281816112a1015281816117c901528181611938015281816121d70152612a880152f35b8391925060150360031b1b161680388061012b565b600080fd5b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102025760405256fe6080604052600436101561001d575b366129485761001b612917565b005b60003560e01c8063112d3a7d146101ed57806312af322c146101e8578063150b7a02146101e35780631626ba7e146101de57806319822f7c146101d95780631f1b92e3146101d45780633659cfe6146101cf57806357b3a5f4146101ca5780636e6fa0c6146101c5578063721e67f4146101c057806384b0196e146101bb5780638dd7712f146101b657806390ef8862146101b15780639198bdf5146101ac5780639517e29f146101a75780639cfd7cff146101a2578063a65d69d41461019d578063a71763a814610198578063adb610a314610193578063b8afe17d1461018e578063bc197c8114610189578063c3e5897814610184578063d03c79141461017f578063d691c9641461017a578063e6f3d50a14610175578063e9ae5c5314610170578063f1f7f0f91461016b578063f23a6e61146101665763f2dc691d0361000e57611ac5565b611a6b565b611a33565b611907565b61174e565b61166a565b61161d565b611541565b61143a565b6113d0565b61139c565b611270565b61122b565b6111d4565b6110a8565b610fa1565b610e50565b610d3f565b610c9d565b610bf1565b610b94565b610ae6565b61099d565b6107e5565b6104c5565b610465565b61040b565b6102b9565b610281565b6001600160a01b0381160361020357565b600080fd5b3590610213826101f2565b565b9181601f84011215610203578235916001600160401b038311610203576020838186019501011161020357565b6060600319820112610203576004359160243561025e816101f2565b91604435906001600160401b0382116102035761027d91600401610215565b9091565b3461020357602061029d61029436610242565b92919091611cc5565b6040519015158152f35b6001600160581b031981160361020357565b34610203576080366003190112610203576004356102d6816102a7565b6024356102e2816101f2565b6001600160401b039060443582811161020357610303903690600401610215565b90926064359081116102035761031d903690600401610215565b9390926001600160581b031961035d816103566103496000805160206151498339815191525460581b90565b6001600160581b03191690565b1615611d8f565b8616156103f9576001600160f81b03198616600160f81b81141590816103ea575b506103d8578561039061001b97612af1565b6103b061039b610f70565b60018152926001600160a01b03166020840152565b600080516020615149833981519152805463ffffffff60a81b1916600160a81b179055612b4c565b6040516361c4e91b60e11b8152600490fd5b600160f91b141590503861037e565b604051631a0a9b9f60e21b8152600490fd5b34610203576080366003190112610203576104276004356101f2565b6104326024356101f2565b6064356001600160401b03811161020357610451903690600401610215565b5050604051630a85bd0160e11b8152602090f35b34610203576040366003190112610203576024356001600160401b038111610203576104a361049a6020923690600401610215565b90600435611eaa565b6040516001600160e01b03199091168152f35b90816101209103126102035790565b606036600319011261020357600480356001600160401b038111610203576104f090369083016104b6565b60243590604435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b05780849261053a6020830135612eb8565b6001600160f81b031990911615959093909186610786575b908461055e939261309d565b9561057061056b84611c53565b611fd7565b9415948580610744575b61073357602001516001600160a01b0316918216908115610722576001926105af6105ce926000526000602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b036106815782610623575b5050610612576105fc9250805b610600575b506040519081529081906020820190565b0390f35b3490349034903490335af150386105eb565b604051631a0a9b9f60e21b81528390fd5b61067a92506106769161065861065261064c61064161066f95611c8c565b936060810190612003565b90611af4565b90611c27565b63ffffffff60e01b16600052602052604060002090565b5460ff1690565b1590565b38806105d9565b829192916106ef575b506106de5761064c8160606106a0930190612003565b638dd7712f60e01b916001600160e01b0319916106bc91611c27565b16036106cd576105fc9250806105e6565b60405163dbbb044b60e01b81528390fd5b604051631a0a9b9f60e21b81528490fd5b61071c915061066f61070361067692611c8c565b6106586106526107166060880188612003565b90611ae3565b3861068a565b604051631a0a9b9f60e21b81528990fd5b604051633ab3447f60e11b81528990fd5b50805163ffffffff1663ffffffff61077e6107756000805160206151498339815191525463ffffffff9060c81c1690565b63ffffffff1690565b91161061057a565b93509061055e916107a66000805160206151498339815191525460581b90565b9490919250610552565b6040516348f5c3ed60e01b81528590fd5b6004359063ffffffff8216820361020357565b359063ffffffff8216820361020357565b6020366003190112610203576107f96107c1565b61081b6108156000805160206151498339815191525460581b90565b60581c90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610993575b156109885760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610959575b50156109475760405163d68f602560e01b815291600083806108aa363433600485016120c6565b038183865af19283156109195760009361091e575b506108c990613244565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906108f69060048301612102565b03925af180156109195761090657005b8061091361001b92610eca565b80610c4a565b611e9e565b6108c9919350610940903d806000833e6109388183610f4f565b810190612068565b92906108bf565b6040516348f5c3ed60e01b8152600490fd5b61097b915060203d602011610981575b6109738183610f4f565b810190612035565b38610883565b503d610969565b505061001b90613244565b5030331415610850565b6020366003190112610203576004356109b5816101f2565b6109d16108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610aca575b15610abf5760405163ecd0596160e01b8152600480820152911690602081602481855afa90811561091957600091610aa0575b50156109475760405163d68f602560e01b81529160008380610a60363433600485016120c6565b038183865af192831561091957600093610a7f575b506108c990612113565b6108c9919350610a99903d806000833e6109388183610f4f565b9290610a75565b610ab9915060203d602011610981576109738183610f4f565b38610a39565b505061001b90612113565b5030331415610a06565b6001600160e01b031981160361020357565b34610203576020366003190112610203576105fc610b28600435610b0981610ad4565b600060408051610b1881610ee2565b8281528260208201520152611dd1565b60405190610b3582610ee2565b80546001600160a01b0390811680845260019092015480821660208086019182526001600160f81b031960589390931b831660409687019081528651958652915190931692840192909252905116918101919091529081906060820190565b3461020357604036600319011261020357602060ff610be5600435610bb8816102a7565b610bcd60243591610bc883610ad4565b611c8c565b9063ffffffff60e01b16600052602052604060002090565b54166040519015158152f35b34610203576020366003190112610203576020610c27600435610c13816101f2565b6000604051610c2181610efd565b52612aca565b60405190610c3482610efd565b546001600160a01b031690819052604051908152f35b600091031261020357565b60005b838110610c685750506000910152565b8181015183820152602001610c58565b90602091610c9181518092818552858086019101610c55565b601f01601f1916010190565b3461020357600036600319011261020357610cec610cb9613324565b90604051928392600f60f81b8452610cde60209360e0602087015260e0860190610c78565b908482036040860152610c78565b90466060840152306080840152600060a084015282820360c0840152602060605192838152019160809160005b828110610d2857505050500390f35b835185528695509381019392810192600101610d19565b6040366003190112610203576004356001600160401b03811161020357610d6a9036906004016104b6565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610947576060906001610dc6610db96024356000526000602052604060002090565b546001600160a01b031690565b91821614159283610e20575b610ded610de6826060610df4940190612003565b8091611b02565b903061346b565b509215610e055761001b9250613492565b505015610e0e57005b60405163f21e646b60e01b8152600490fd5b9150610df4610ded610de6610e46610e3e610de66060880188612003565b9034876133e9565b9492505050610dd2565b3461020357600036600319011261020357602063ffffffff6000805160206151498339815191525460c81c16604051908152f35b9181601f84011215610203578235916001600160401b038311610203576020808501948460051b01011161020357565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610edd57604052565b610eb4565b606081019081106001600160401b03821117610edd57604052565b602081019081106001600160401b03821117610edd57604052565b604081019081106001600160401b03821117610edd57604052565b61012081019081106001600160401b03821117610edd57604052565b90601f801991011681019081106001600160401b03821117610edd57604052565b6040519061021382610f18565b6040519061021382610f33565b6001600160401b038111610edd5760051b60200190565b6080366003190112610203576001600160401b0360043581811161020357610fcd903690600401610e84565b906024358381116102035736602382011215610203578060040135610ff181610f8a565b916040916110026040519485610f4f565b8084526020906024602086019160061b8401019236841161020357602401905b83821061106a57505050505060443584811161020357611046903690600401610e84565b916064359586116102035761106261001b963690600401610e84565b9590946121a8565b848236031261020357828591825161108181610f18565b61108a856107d4565b815282850135611099816101f2565b83820152815201910190611022565b6110b136610242565b6110cd6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806111ca575b156111be5760405163ecd0596160e01b815260048082015291169290602081602481875afa9081156109195760009161119f575b50156109475760405163d68f602560e01b8152936000858061115d363433600485016120c6565b038183885af19485156109195760009561117e575b506108c9939495612364565b6108c9949550611198903d806000833e6109388183610f4f565b9493611172565b6111b8915060203d602011610981576109738183610f4f565b38611136565b50509161001b93612364565b5030331415611102565b34610203576000366003190112610203576105fc6040516111f481610f18565b60168152756b65726e656c2e616476616e6365642e76302e332e3160501b6020820152604051918291602083526020830190610c78565b34610203576000366003190112610203576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b61127936610242565b6112956108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611392575b156113865760405163ecd0596160e01b815260048082015291169290602081602481875afa90811561091957600091611367575b50156109475760405163d68f602560e01b81529360008580611325363433600485016120c6565b038183885af194851561091957600095611346575b506108c9939495612673565b6108c9949550611360903d806000833e6109388183610f4f565b949361133a565b611380915060203d602011610981576109738183610f4f565b386112fe565b50509161001b93612673565b50303314156112ca565b3461020357600036600319011261020357602063ffffffff6000805160206151498339815191525460a81c16604051908152f35b346102035760203660031901126102035760406114006004356113f2816102a7565b6113fa61280f565b50611c53565b602082519161140e83610f18565b5463ffffffff81169283815260018060a01b03928391019160201c168152835192835251166020820152f35b346102035760a0366003190112610203576114566004356101f2565b6114616024356101f2565b6001600160401b0360443581811161020357611481903690600401610e84565b50506064358181116102035761149b903690600401610e84565b5050608435908111610203576114b5903690600401610215565b505060405163bc197c8160e01b8152602090f35b602080825282516001600160f01b03191681830152808301516001600160a01b03166040808401919091529092015160608083015280516080830181905260a090920192908101919060005b828110611523575050505090565b83516001600160501b03191685529381019392810192600101611515565b34610203576020806003193601126102035760043561155f81610ad4565b611584604091606083805161157381610ee2565b600081526000878201520152611e09565b9080519161159183610ee2565b805460f081901b6001600160f01b031916845260101c6001600160a01b031684840152815160019182018054808352600091825286822083880197939490939092905b8282106115fb576105fc8888886115ed818e0382610f4f565b8183015251918291826114c9565b845460501b6001600160501b03191689529788019793830193908301906115d4565b3461020357602036600319011261020357602061029d600435612828565b9060406003198301126102035760043591602435906001600160401b0382116102035761027d91600401610215565b6116733661163b565b916001600160a01b0361168533612aca565b541690811561173c57606060019460018414159485611725575b6116a99293613b55565b92611715575b5050906040519060208083016020845284518091526040840191602060408360051b8701019601926000905b8382106116e85786880387f35b90919293948380611704839a603f198b82030186528951610c78565b9997019594939190910191016116db565b61171e91613492565b38806116af565b6116a99250611735363487613365565b925061169f565b60405163710c949760e01b8152600490fd5b6060366003190112610203576004803590611768826102a7565b6001600160401b0391602435838111610203576117889036908401610215565b93604435908111610203576117a09036908501610215565b906117bd6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f000000000000000000000000000000000000000000000000000000000000000083161415806118fd575b156118ed57169560405163ecd0596160e01b81526020818061181b8a8201906004602083019252565b03818b5afa908115610919576000916118ce575b50156118bd5760405163d68f602560e01b815293600085806118553634338d85016120c6565b0381838c5af19485156109195760009561189e575b5061187594956128ea565b823b15610203576108f69260009283604051809681958294630b9dfbed60e11b84528301612102565b61187595506118b7903d806000833e6109388183610f4f565b9461186a565b6040516348f5c3ed60e01b81528690fd5b6118e7915060203d602011610981576109738183610f4f565b3861182f565b50509261001b95929194506128ea565b50303314156117f2565b6119103661163b565b61192c6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580611a29575b15611a1d5760405163ecd0596160e01b815260048082015291169190602081602481865afa908115610919576000916119fe575b50156109475760405163d68f602560e01b815292600084806119bc363433600485016120c6565b038183875af1938415610919576000946119dd575b506108c99293946128ff565b6108c99394506119f7903d806000833e6109388183610f4f565b93926119d1565b611a17915060203d602011610981576109738183610f4f565b38611995565b50509061001b926128ff565b5030331415611961565b346102035760003660031901126102035760206000805160206151498339815191525460581b604051906001600160581b0319168152f35b346102035760a036600319011261020357611a876004356101f2565b611a926024356101f2565b6084356001600160401b03811161020357611ab1903690600401610215565b505060405163f23a6e6160e01b8152602090f35b3461020357602036600319011261020357602061029d60043561290a565b906008116102035760040190600490565b906004116102035790600490565b909291928360041161020357831161020357600401916003190190565b906018116102035760040190601490565b906014116102035790601490565b906020116102035790602090565b909291928360011161020357831161020357600101916000190190565b909291928360141161020357831161020357601401916013190190565b906016116102035790601690565b906016116102035760020190601490565b909291928360161161020357831161020357601601916015190190565b906002116102035790600290565b906009116102035760010190600890565b909291928360091161020357831161020357600901916008190190565b90602c116102035760180190601490565b90939293848311610203578411610203578101920390565b6001600160e01b03199035818116939260048110611c4457505050565b60040360031b82901b16169150565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f850602052604060002090565b6001600160581b0319166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f851602052604060002090565b90929060018103611d1457506001600160a01b0392611d0e9250611cfe915060581b600160581b600160f81b0316600160f81b17611c53565b5460201c6001600160a01b031690565b16151590565b60028103611d4757506001600160a01b0392611d0e9250611d3b9150610db9908416612aca565b6001600160a01b031690565b600303611d8757611d68611d63610652600193611d7695611af4565b611dd1565b01546001600160a01b031690565b6001600160a01b0390811691161490565b505050600090565b15611d9657565b60405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b63ffffffff60e01b166000527f7c341349a4360fdd5d5bc07e69f325dc6aaea3eb018b3e0ea7e53cc0bb0d6f3b602052604060002090565b63ffffffff60e01b166000527f7bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f852602052604060002090565b908160209103126102035751611e5681610ad4565b90565b908060209392818452848401376000828201840152601f01601f1916010190565b611e56949260609260018060a01b0316825260208201528160408201520191611e59565b6040513d6000823e3d90fd5b91611eb491612d3d565b91906001600160f81b031980831615611fb6575b6001600160a01b039081611ee1611d3b611cfe87611c53565b16156103f9578316600160f81b03611f6657906020939291611f05611f2396612e6f565b604051637aa8f17760e11b8152968795869485933360048601611e7a565b039260581c165afa90811561091957600091611f3d575090565b611e56915060203d602011611f5f575b611f578183610f4f565b810190611e41565b503d611f4d565b509060081b92600160f11b611f94611f87611f8087611e09565b5460f01b90565b6001600160f01b03191690565b16611fa457611e56933390612dbe565b604051635b71057960e01b8152600490fd5b9150611fd16000805160206151498339815191525460581b90565b91611ec8565b90604051611fe481610f18565b915463ffffffff81168352602090811c6001600160a01b031690830152565b903590601e198136030182121561020357018035906001600160401b0382116102035760200191813603831361020357565b90816020910312610203575180151581036102035790565b6001600160401b038111610edd57601f01601f191660200190565b602081830312610203578051906001600160401b038211610203570181601f8201121561020357805161209a8161204d565b926120a86040519485610f4f565b8184526020828401011161020357611e569160208085019101610c55565b916080939160018060a01b03168352602083015260606040830152806060830152806000848401376000828201840152601f01601f1916010190565b906020611e56928181520190610c78565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b9060405161217481610ee2565b82546001600160a01b039081168252600190930154928316602082015260589290921b6001600160f81b0319166040830152565b959294919390946121cb6108156000805160206151498339815191525460581b90565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580612318575b156123085760405163ecd0596160e01b8152600480820152911695906020816024818a5afa908115610919576000916122e9575b50156109475760405163d68f602560e01b8152966000888061225b363433600485016120c6565b0381838b5af1978815610919576000986122c8575b5061227c96979861353d565b803b1561020357604051630b9dfbed60e11b81529160009183918290849082906122a99060048301612102565b03925af18015610919576122bb575b50565b8061091361021392610eca565b61227c9798506122e2903d806000833e6109388183610f4f565b9796612270565b612302915060203d602011610981576109738183610f4f565b38612234565b505091939092946102139661353d565b5030331415612200565b916020611e56938181520191611e59565b6bffffffffffffffffffffffff19903581811693926014811061235557505050565b60140360031b82901b16169150565b6001810361244057506106526102139361242c61243a93600160581b600160f81b039060581b16600160f81b17946123fb6123d4611d3b6123ce6123c86123c16000805160206151498339815191525463ffffffff9060a81c1690565b9786611b30565b90612333565b60601c90565b6123eb6123df610f70565b63ffffffff9096168652565b6001600160a01b03166020850152565b6014810135810192603482013582019160548101350193603460148401359301916034601483013592019089612b4c565b603460148201359101611af4565b90613851565b6002810361249c57509161248d61021393612472611d3b6123ce6123c860148801358801966034890135890198611b30565b928391601482013591603401906001600160a01b03166137c3565b603460148301359201906136f6565b9091906003810361251c5750612517611d3b612507610213958461250260186123ce97013582016123ce60388401358401996124db6106528787611af4565b906124fc611d3b6124ec8989611b1f565b6018880135976038019691612333565b916135ab565b611b1f565b6018860135956038019491612333565b6136f6565b9091906004810361255d57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6005810361259b57506001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6006036125d7576001600160a01b031691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b604051631092ef5760e11b8152600490fd5b604051906125f682610efd565b60008252565b35906020811061260a575090565b6000199060200360031b1b1690565b91906040519061262882610efd565b819360008352116102035760206000910152565b9291926126488261204d565b916126566040519384610f4f565b829481845281830111610203578281602093846000960137010152565b9291906001840361269d576122b8935060581b600160581b600160f81b0316600160f81b17613a09565b600284036126b8576122b893506001600160a01b03166139bf565b909190600384036126e757506122b8925080806126db6106526126e19486611af4565b93611b02565b91613965565b91926004810361276d57506122b89261273a916127136000805160206151498339815191525460581b90565b61271f611cfe82611c53565b6001600160a01b03868116911614612740575b50369161263c565b906138b6565b61274c61276791611c53565b8054640100000000600160c01b031916640100000000179055565b38612732565b600581036127f057506000805160206151498339815191525460581b5b61279d6127978386611b3e565b906125fc565b906001600160f81b03198116600160f91b146127c5575b50506122b89261273a91369161263c565b60081b6001600160e01b031916146127de5738806127b4565b6040516313002bdd60e31b8152600490fd5b6006036125d7576000805160206151498339815191525460581b61278a565b6040519061281c82610f18565b60006020838281520152565b61283c818060081b918160301b9160501b90565b929091600160f81b916001600160f81b0319919082168381141590816128e0575b816128d5575b816128c6575b506128bc57169081141590816128b2575b506128ab576001600160e01b0319166128a5576001600160501b0319166128a057600190565b600090565b50600090565b5050600090565b905015153861287a565b5050505050600090565b607f60f91b1415905038612869565b838114159150612863565b801515915061285d565b916128fa91610213959493613a09565b613d5a565b906122b89291613b55565b600711156128a057600190565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b6129656129606000356001600160e01b031916611dd1565b612167565b80516001600160a01b039190829061297e908216611d3b565b168061299657604051631cd4b64760e21b8152600490fd5b606090600181141580612ac0575b15612a7c57505080516129c3906001600160a01b031636903490613365565b915b60408201516001600160f81b031990811680612a3c5750506020820151612a0d93906001906129fc906001600160a01b0316613db7565b9590945b516001600160a01b031690565b92831603612a2c575b5050612a2457602081519101fd5b602081519101f35b612a3591613492565b3880612a16565b03612a6a576020820151612a0d9390600190612a62906001600160a01b03163690613444565b959094612a00565b604051632d6a6bb760e01b8152600490fd5b92809193036129c557337f00000000000000000000000000000000000000000000000000000000000000008216146129c5576040516348f5c3ed60e01b8152600490fd5b50838114156129a4565b6001600160a01b031660009081526000805160206151298339815191526020526040902090565b60207f6789ec0c85d6458d897a36a70129b101f8b4d84c6e218046c3107373dbcbae88916000805160206151498339815191528160581c6001600160581b0360a81b825416179055604051906001600160581b0319168152a1565b9193909294612b67612b5d84611c53565b5463ffffffff1690565b9360008051602061514983398151915294612b8a865463ffffffff9060a81c1690565b63ffffffff809281808416911614612cff575b50506020820180516001600160a01b0397919291612bca91891615612cf6575b5460a81c63ffffffff1690565b81612bdc610775865163ffffffff1690565b91161490811591612ccc575b50612cba57612a00612c3792612bfd87611c53565b815181546020938401516001600160c01b031990911663ffffffff9290921691909117921b640100000000600160c01b0316919091179055565b91600185841603612ca9575b5050506001600160f81b03198116600160f81b8103612c8d575060581c1691823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b909350600160f91b141590506103d8576102139160081b613ef6565b612cb2926136f6565b388080612c43565b604051633ab3447f60e11b8152600490fd5b9050612cda612b5d87611c53565b90612cec610775855163ffffffff1690565b9116101538612be8565b60018452612bbd565b600080516020615149833981519152805463ffffffff60a81b19166001939093019190911660a81b63ffffffff60a81b169190911790553881612b9d565b9182358060f81c80600014612d835780600114612d7657600214612d6057600080fd5b6001600160d81b03191692600501916004190190565b5092601501916014190190565b5050600160009301916000190190565b9092608092611e569694835260018060a01b0316602083015260408201528160608201520191611e59565b909192612ddd94612dd191858585614156565b9492939196909661424a565b509065ffffffffffff8091164210918215612e63575b5050612e5057612e31612e07602096612e6f565b60405163392dffaf60e01b8152978896879586959193916001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091611f3d575090565b506001600160e01b031995945050505050565b16421190503880612df3565b611e569060405160208101917f1547321c374afde8a591d972a084b071c594c275e36724931ff96c25f2999c838352604082015260408152612eb081610ee2565b519020614273565b90818060081b9160ff839260f01c16600214612ed057565b6001600160d81b031983169150565b9080601f8301121561020357816020611e569335910161263c565b91906101208382031261020357612f0f610f7d565b92612f1981610208565b8452602081013560208501526040810135916001600160401b03928381116102035781612f47918401612edf565b604086015260608201358381116102035781612f64918401612edf565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e08201358381116102035781612f9f918401612edf565b60e0860152610100928383013590811161020357612fbd9201612edf565b90830152565b90816020910312610203575190565b80516001600160a01b03168252611e56919061305061302061300e61012060208501516020870152604085015190806040880152860190610c78565b60608401518582036060870152610c78565b6080830151608085015260a083015160a085015260c083015160c085015260e083015184820360e0860152610c78565b916101008092015191818403910152610c78565b939291613081906040928652606060208701526060860190612fd2565b930152565b929190613081602091604086526040860190612fd2565b9290926000926130ad3682612efa565b9161010091828101916130c08383612003565b90949093600160f81b936001600160f81b03199384168514613209575b50505087160361316a575050604051639700320360e01b8152936020928592839160009183916131109160048401613086565b039260581c6001600160a01b03165af190811561091957611e5692600092613139575b50614771565b61315c91925060203d602011613163575b6131548183610f4f565b810190612fc3565b9038613133565b503d61314a565b909460081b93909291600160f01b613187611f87611f8088611e09565b166131f75760006131a86131a26020966131d299858a614571565b94614771565b604051630ccab7a160e01b8152979096889586948593926001600160e01b03191660048501613064565b03926001600160a01b03165af190811561091957611e56926000926131395750614771565b6040516314b9743f60e01b8152600490fd5b9091955061322593985061321e929450612003565b9088614387565b969192909361323885899599369161263c565b908601523880806130dd565b60008051602061514983398151915280549163ffffffff92600a848260a81c16019084821161330e5782851691851682116132fc5760c81c84161015612cba57600080516020615149833981519152805463ffffffff60c81b191660c89290921b63ffffffff60c81b1691909117905554818160c81c1691829160a81c16106132ca5750565b600080516020615149833981519152805463ffffffff60a81b191660a89290921b63ffffffff60a81b16919091179055565b60405163e60fd64760e01b8152600490fd5b634e487b7160e01b600052601160045260246000fd5b60405161333081610f18565b600681526512d95c9b995b60d21b60208201529060405161335081610f18565b6005815264302e332e3160d81b602082015290565b60405163d68f602560e01b815233600482015260248101929092526060604483015260648201839052600092839183918290849060849083908084838501378181018301849052601f01601f191681010301926001600160a01b03165af19182156109195780926133d557505090565b611e5692503d8091833e6109388183610f4f565b6000928361341095936040519687958694859363d68f602560e01b85523360048601611e7a565b03926001600160a01b03165af19081156109195760009161342f575090565b611e5691503d806000833e6109388183610f4f565b60009060405192808385378338925af4913d82523d6000602084013e60203d830101604052565b60009192806040519485378338925af4913d82523d6000602084013e60203d830101604052565b6001600160a01b0316803b1561020357604051630b9dfbed60e11b8152602060048201529160009183918290849082906134d0906024830190610c78565b03925af18015610919576134e15750565b61021390610eca565b634e487b7160e01b600052603260045260246000fd5b80511561350d5760200190565b6134ea565b805182101561350d5760209160051b010190565b9082101561350d5761027d9160051b810190612003565b96959192939694909460005b86811061355b57505050505050509050565b8061359c8a60019360051b850135613572816102a7565b61358884613580818c613512565b51938c613526565b90613594868b8b613526565b949093612b4c565b01613549565b901561350d5790565b6001600160a01b039391929190848316156136ee575b6135ca90611dd1565b946135f66135e96135db83856135a2565b356001600160f81b03191690565b6001600160f81b03191690565b946001600160f81b0319808716806136cf575050908061361892861693611b4c565b823b156102035761364392600092836040518096819582946306d61fe760e41b845260048401612322565b03925af19485156109195761367f61369f93600193610213986136bc575b505b82546001600160a01b0319166001600160a01b03909116178255565b0180546001600160a01b0319166001600160a01b03909316929092178255565b805460ff60a01b191660589290921c60ff60a01b16919091179055565b806109136136c992610eca565b38613661565b925092505094919403612a6a57600161369f9161367f61021396613663565b8492506135c1565b6001600160a01b031691821580156137b9575b6137b45760405163d60b347f60e01b8152306004820152602081602481875afa90811561091957600091613795575b5015613760576001600160f81b0319806137556135db84866135a2565b161461376057505050565b8061376a92611b4c565b823b15610203576122a992600092836040518096819582946306d61fe760e41b845260048401612322565b6137ae915060203d602011610981576109738183610f4f565b38613738565b505050565b5060018314613709565b919392916001600160a01b039081841615613848575b1660008181526000805160206151298339815191526020526040812080546001600160a01b0319166001600160a01b0390951694909417909355803b15613844576134d09394836040518096819582946306d61fe760e41b8452602060048501526024840191611e59565b8280fd5b600193506137d9565b7f9d17cd6d095ac90a655405ab29f30a7ee7e88ef3974c1bf7544bf591043bb71a9160609161388382610bcd83611c8c565b600160ff198254161790556040519163ffffffff60e01b1682526001600160581b031916602082015260016040820152a1565b60407f2b82f87bf66300af618a9621d3f221edfab735f5bacb4e004cce1b62375396c3919392935a825195613916876139086020820193638a91b0e360e01b8552602060248401526044830190610c78565b03601f198101895288610f4f565b6000918291828587519a6139298c610efd565b828c525193f1943d908161395c575b6020818360009352013e81516001600160a01b0390911681528415156020820152a1565b60009150613938565b6139756139a89194939294611dd1565b80546001600160a01b031981168255600190910180546001600160a01b0392831696919492169161273a9136919061263c565b5080546001600160a81b03191660ff60a01b179055565b6001600160a01b0390811660008181526000805160206151298339815191526020526040902080546001600160a01b0319811690915590911693926122b89261273a91369161263c565b90929192613a3b613a296000805160206151498339815191525460581b90565b6001600160581b031980851691161490565b6127de57613a4b611cfe83611c53565b93613a6c613a5884611c53565b8054640100000000600160c01b0319169055565b6001600160f81b03198316600160f81b8103613aa557506122b89291613a9391369161263c565b9060581c6001600160a01b03166138b6565b600160f91b141590506103d8576102139160081b61480c565b604051613aca81610f18565b600181528060005b602080821015613aed57906060602092828501015201613ad2565b50505090565b90613afd82610f8a565b613b0a6040519182610f4f565b8281528092613b1b601f1991610f8a565b019060005b828110613b2c57505050565b806060602080938501015201613b20565b906040611e5692600081528160208201520190610c78565b613b69818060081b918160301b9160501b90565b5090936001600160f81b031993600160f81b939092508416838103613bf4575050613b9b908035019060208201913590565b929093168015600014613bb3575050611e5691614a8a565b03613bc157611e56916149cd565b60405162461bcd60e51b815260206004820152600b60248201526a155b9cdd5c1c1bdc9d195960aa1b6044820152606490fd5b94959490919080613c96575090613c0a91614921565b93909294613c16613abe565b971680613c3b575050613c2893614972565b613c3183613500565b526122b882613500565b03613bc157613c4993614949565b613c5284613500565b52610213577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c91613c8484613500565b5160405191829182613b3d565b0390a1565b919593918203613bc157613ccd90613cc7613caf613abe565b9780613cc16123ce6123c88387611b30565b93611b69565b9161346b565b613cd987959295613500565b5216908103613d17575015613cea57565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7613c91613c8484613500565b613bc1576102135760405162461bcd60e51b815260206004820152601360248201527211195b1959d85d1958d85b1b0819985a5b1959606a1b6044820152606490fd5b6001600160a01b03169081158015613dad575b6137b457821561350d576001600160f81b03198135811614613d8e57505050565b82600111610203576122b89261273a913691600019019060010161263c565b5060018214613d6d565b600080604092835136810185523683823784516014810186523360601b90528260143601925af1918151913d83523d6000602085013e60203d8401019052565b8054906000906000815582613e0b57505050565b6000526020600020918201915b828110613e2457505050565b818155600101613e18565b6001600160501b03199035818116939260168110613e4c57505050565b60160360031b82901b16169150565b805482101561350d5760005260206000200190600090565b805468010000000000000000811015610edd57613e9591600182018155613e5b565b819291549060031b9160501c821b9160018060b01b03901b1916179055565b9092809260209483528483013701016000815290565b6001600160f01b03199035818116939260028110613ee757505050565b60020360031b82901b16169150565b90803501906020808301923560fe8111801561414e575b61413c57600180613f1d85611e09565b0154614123575b60001982019260005b848110614046575061400b9594614019949093613fef9350613fe89250613f88613fd9613fc0611f87613fba613fb487878e613faf8e613f80611d3b6123ce6123c8613f7a898989613526565b90611b94565b9a8b91611e09565b805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b613526565b90611bc2565b90613eca565b613fc988611e09565b9060f01c61ffff19825416179055565b6001600160a01b031696613526565b8091611ba5565b6040519586939092906001600160e01b03191660208501613eb4565b03601f198101845283610f4f565b803b15610203576040516306d61fe760e41b81529160009183918290849082906122a99060048301612102565b61409d611d3b611d3b6123ce6123c8613f7a868a8e613faf8f6140698e91611e09565b0161409761408a61408461407e888888613526565b90611b86565b90613e2f565b6001600160501b03191690565b90613e73565b906140ac613fe882878b613526565b906140cd60409161400b83519485928d63ffffffff60e01b168a8501613eb4565b833b156102035760009384926140f792519586809481936306d61fe760e41b835260048301612102565b03925af1918215610919578492614110575b5001613f2d565b8061091361411d92610eca565b38614109565b614137600161413186611e09565b01613df7565b613f24565b60405163b62d956d60e01b8152600490fd5b508015613f0d565b84846141d9926141c497969498956040519161417183610f33565b6141d360009b8c92838652836020870152604086019d8e52606086019c8d918583528560808901528560a0890152606060c089015260e088019286845261010089019687529063ffffffff60e01b169052565b6001600160a01b039091169052565b52614b23565b60ff806141f26141ec6135db87866135a2565b60f81c90565b16036142385761422161420c8461421c9561423194611b4c565b9490955163ffffffff60e01b1690565b611e09565b5460101c6001600160a01b031690565b9351929190565b60405163b32eeb6960e01b8152600490fd5b8065ffffffffffff91828160a01c1692831560011461426b575b5060d01c92565b925038614264565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615614300575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000006040820152466060820152306080820152206142e1565b9192909261439361280f565b9061439e9085611b30565b6143a791612333565b60601c602082018190526000805160206151498339815191525460a81c63ffffffff1680835260349560148082013582018089019791959294919360548601358601808b019490880135939092878c01358801808a013593908d0192918a0135918891908d8436906144189261263c565b80519060200120913661442c90888861263c565b805190602001203661443f908b8d61263c565b8051602091820120604080517fb17ab1224aca0d4255ef8161acaf2ac121b8faa32a4b2258c912cc5f8308c5059381019384526001600160581b0319989098169088015263ffffffff9390931660608701526001600160a01b0393909316608086015260a085019390935260c084019290925260e080840192909252908252906144cb61010082610f4f565b5190206144d790614273565b607489013589018d8b82013591016144ee92614d75565b9a6144f99488612b4c565b6145038183614f12565b61450c91611af4565b61451591611c27565b61451e91613851565b6094810135019293830192013590565b6001600160c01b0319903581811693926008811061454b57505050565b60080360031b82901b16169150565b604090611e56939281528160208201520190612fd2565b60009493916001868161458385611e09565b016000835b6145d0575b5050505060ff806145a46141ec6135db87896135a2565b1603614238576101006145c86145c18561422196611e5698611b4c565b369161263c565b910152611e09565b8197969754811015614769576146016145f96145ec8385613e5b565b90549060031b1c60501b90565b908160501c90565b98909761461d6146176141ec6135db85856135a2565b60ff1690565b808403614738575090818161465661464a61464461463e8461467398611bd0565b9061452e565b60c01c90565b6001600160401b031690565b600901916146686145c1848484611be1565b6101008b0152611c0f565b989098975b600160f01b161561468d575b50830183614588565b99866146ca929b60018060a01b036040918983518092633894f6e760e11b8252818b868260209c8d9760049c63ffffffff60e01b168d840161455a565b0393165af1958615610919578896614719575b505084166146ff5750506146f5859493928592614771565b9a91929350614684565b51631f24c1fb60e11b81529081018c815281906020010390fd5b614730929650803d10613163576131548183610f4f565b9338806146dd565b909991989083111561475657604051630760bdcf60e11b8152600490fd5b61475e6125e9565b610100880152614678565b96959661458d565b6001600160a01b03818318811615606083811b848601821b9081149186901b1417176001146147a257505050600190565b65ffffffffffff60a01b80831693906001600160d01b031984811691908316908615614804575b83811680156147fd575b8781109088180280881897146147f5575b508181119082180218921716171790565b9550386147e4565b50806147d3565b9550856147c9565b9190803501916020906020840193359061482581611e09565b9260019060018501906001825401850361490f57906000835b6148a1575b505050506148909161488b82613fef6102139798614868600161413161400b98611e09565b875461487f9060101c6001600160a01b0316611d3b565b94600019810191613526565b6138b6565b5080546001600160b01b0319169055565b815481101561490a5790838261490061400b8c6148f28a6148d7868e6148cf6145f96145ec8c9f9e8e613e5b565b969050613526565b6040519586939092906001600160e01b0319168c8501613eb4565b6001600160a01b03166138b6565b500190919261483e565b614843565b60405163013dcc8d60e31b8152600490fd5b908060141161020357813560601c928160341161020357601483013592603401916033190190565b906000928491604051958692833738935af1913d82523d6000602084013e60203d830101604052565b9092600092819594604051968792833738935af1156149a1573d82523d6000602084013e60203d830101604052565b503d6000823e3d90fd5b919081101561350d5760051b81013590605e1981360301821215610203570190565b9190916149d983613af3565b9260005b8181106149e957505050565b806149f760019284866149ab565b8035614a02816101f2565b614a2360208093604093614a1885830183612003565b939092013590614949565b614a2d858b613512565b5215614a3c575b5050016149dd565b7fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb791614a80614a6b858b613512565b51838051948594888652850152830190610c78565b0390a13880614a34565b919091614a9683613af3565b9260005b818110614aa657505050565b80614adc6020614ab960019486886149ab565b8035614ac4816101f2565b614ad16040830183612003565b939092013590614972565b614ae68288613512565b52614af18187613512565b5001614a9a565b9092608092611e569594835260018060a01b0316602083015260408201528160608201520190610c78565b9190606083016001936001614b4261421c845163ffffffff60e01b1690565b01936000936000958054965b878110614b6057505050505050505050565b80614b726145f96145ec8c9486613e5b565b6001600160a01b031660a0880190815260808801959091614b9b906001600160f01b0319168752565b614bb5614bae6141ec6135db8a856135a2565b60ff168952565b614bc3614617895160ff1690565b808403614d3d5750868181614be861464a61464461463e614c3c9c9d614c0f98611bd0565b60208c018181528c60c0614c046145c160099586018789611be1565b910152510191611c0f565b959095965b51600160f11b90614c2e906001600160f01b031916611f87565b166001600160f01b03191690565b15614c49575b5001614b4e565b51909150614c5f906001600160a01b0316611d3b565b8651614c8390614c76906001600160e01b03191681565b6001600160e01b03191690565b60e08701519091906001600160a01b031691614cc86101008901519360c08a01516040948551808095819463184dfdbb60e11b835260209a8b9760049a8b8601614af8565b03915afa938415610919578b94614d1e575b50506001600160a01b038316614d035750860180518b9392614cfb91614771565b905238614c42565b9051631f24c1fb60e11b815290810183815281906020010390fd5b614d35929450803d10613163576131548183610f4f565b913880614cda565b839196945010600014614d5c57604051630760bdcf60e11b8152600490fd5b614c3c8b93614d6b3688612619565b60c08a0152614c14565b6000805160206151498339815191525460009493929060581b916001600160f81b03198316600160f81b8103614e385750604051637aa8f17760e11b8152936020938593909284928392614dcd923060048601611e7a565b039160581c6001600160a01b03165afa90811561091957600091614e19575b505b6001600160e01b0319166374eca2c160e11b01614e0757565b6040516362467c7760e11b8152600490fd5b614e32915060203d602011611f5f57611f578183610f4f565b38614dec565b919550929190600160f91b036103d857602091614e5b9160081b95843088614156565b60405163392dffaf60e01b81529297929586949385938493614e8e93909230906001600160e01b03191660048701612d93565b03916001600160a01b03165afa90811561091957600091614eb0575b50614dee565b614ec9915060203d602011611f5f57611f578183610f4f565b38614eaa565b15614ed657565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642073656c6563746f724461746160601b6044820152606490fd5b614f1f6106528383611af4565b906004831015614f2e57505050565b602c83106150be57614f49611d3b6123ce6123c88685611b1f565b602c8201358201602c604c820191013591604c840135840194614f83614f756135e96135db87876135a2565b6001600160f81b0319161590565b8061502d575b94614fca61251795611d3b95614fcf956102139b956123ce9a614fdf575b614fba611d3b6123ce6123c88a8a611bfe565b916001600160a01b0316906135ab565b611bfe565b602c86013595604c019491612333565b615028606c8701358701615022602c604c830192013580615009611d3b6123ce6123c88488611b30565b9361501d856001600160a01b038a166150cc565b611b69565b916136f6565b614fa7565b5091939092956040519163ecd0596160e01b83526020838061505760048201906002602083019252565b03816001600160a01b0389165afa92831561091957610213986123ce9761251797611d3b97614fcf97614fca9560009161509f575b50959a50959b5095509550955050614f89565b6150b8915060203d602011610981576109738183610f4f565b3861508c565b505060046102139114614ecf565b61021391906001600160a01b03908183161561511f575b1660005260008051602061512983398151915260205260406000209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b600192506150e356fe1bbee3173dbdc223633258c9f337a0fff8115f206d302bea0ed3eac003b68b867bcaa2ced2a71450ed5a9a1b4848e8e5206dbc3f06011e595f7f55428cc6f84f0000000000000000000000000000000071727de22e5e9d8baf0edac6f37da032", + "nonce": "0x46", + "chainId": "0xaa36a7" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x51fdbdb5c359eec4cb7fe5587022757aa30168e5fa6abbb8a0f73f0c9a25b3fc", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3", - "function": null, - "arguments": null, - "transaction": { - "type": "0x02", - "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", - "to": "0x5de4839a76cf55d0c90e2061ef4386d962e15ae3", - "gas": "0x10945", - "value": "0x0", - "data": "0xbb30a974000000000000000000000000bedb61be086f3f15ee911cc9ab3eea945debfa960000000000000000000000000000000000000000000000000000000000000001", - "nonce": "0xb", - "accessList": [] - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x3f4ef14181d12218de8a8b432284b32592b8604eee3e8cf648737fcd0899641a", + "hash": "0x244a50f193b593c6083a1b45b7a32ff092076f421612d413f435b89660b4bf29", "transactionType": "CREATE2", - "contractName": "Kernel", - "contractAddress": "0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5", + "contractName": "KernelFactory", + "contractAddress": "0x8134d811e37c7c3c88e6fba5322808c6871d58a5", "function": null, "arguments": [ - "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789" + "0xDC4CfD181a721A047EE48A55393b25258B27ECB0" ], "transaction": { - "type": "0x02", "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x293c83", + "gas": "0x600f4", "value": "0x0", - "data": "0x000000000000000000000000000000000000000000000000000000000000000061014034620001b757601f620021e238819003918201601f19168301916001600160401b03831184841017620001bc57808492602094604052833981010312620001b757516001600160a01b0381168103620001b757306080524660a05260a062000069620001d2565b600681526005602082016512d95c9b995b60d21b815260206200008b620001d2565b838152019264181719171960d91b845251902091208160c0528060e052604051917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83526020830152604082015246606082015230608082015220906101009182526101209081527f439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dd96a010000000000000000000080600160f01b031982541617905560405190611fef9283620001f3843960805183611a6a015260a05183611a8d015260c05183611aff015260e05183611b2501525182611a490152518181816104db0152818161079a015281816108a701528181610a3201528181610b5a01528181610d5401528181610e7501528181610f740152818161109e01528181611147015261148e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620001bc5760405256fe6080604052600436101561001d575b366110815761001b611ece565b005b60003560e01c806306fdde031461018d5780630b3dc35414610188578063150b7a02146101835780631626ba7e1461017e57806329f8b17414610179578063333daf921461017457806334fcd5be1461016f5780633659cfe61461016a5780633a871cdd146101655780633e1b08121461016057806351166ba01461015b578063519454471461015657806354fd4d501461015157806355b14f501461014c57806357b750471461014757806384b0196e1461014257806388e7fd061461013d578063b0d691fe14610138578063bc197c8114610133578063d087d2881461012e578063d1f5789414610129578063d5416221146101245763f23a6e610361000e57610fef565b610f5d565b610ec1565b610e42565b610db3565b610d3e565b610d09565b610c61565b610c2a565b610b44565b610af0565b6109eb565b610922565b61085e565b61081c565b610776565b610693565b61060e565b610466565b610413565b610386565b610307565b6102d3565b600091031261019d57565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116101cb57604052565b6101a2565b606081019081106001600160401b038211176101cb57604052565b608081019081106001600160401b038211176101cb57604052565b604081019081106001600160401b038211176101cb57604052565b90601f801991011681019081106001600160401b038211176101cb57604052565b6040519061024f826101eb565b565b6040519061016082018281106001600160401b038211176101cb57604052565b6040519061027e82610206565b600682526512d95c9b995b60d21b6020830152565b919082519283825260005b8481106102bf575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161029e565b3461019d57600036600319011261019d576103036102ef610271565b604051918291602083526020830190610293565b0390f35b3461019d57600036600319011261019d576020600080516020611fcf8339815191525460501c6040519060018060a01b03168152f35b6001600160a01b0381160361019d57565b359061024f8261033d565b9181601f8401121561019d578235916001600160401b03831161019d576020838186019501011161019d57565b3461019d57608036600319011261019d576103a260043561033d565b6103ad60243561033d565b6064356001600160401b03811161019d576103cc903690600401610359565b5050604051630a85bd0160e11b8152602090f35b90604060031983011261019d5760043591602435906001600160401b03821161019d5761040f91600401610359565b9091565b3461019d57602061042c610426366103e0565b91611b5b565b6040516001600160e01b03199091168152f35b600435906001600160e01b03198216820361019d57565b65ffffffffffff81160361019d57565b60c036600319011261019d5761047a61043f565b602435906104878261033d565b604435906104948261033d565b6064356104a081610456565b608435936104ad85610456565b60a4356001600160401b03811161019d576104cc903690600401610359565b9590946001600160a01b0393337f00000000000000000000000000000000000000000000000000000000000000008616141580610604575b6105f25784926105396105659261052a61051c610242565b65ffffffffffff9094168452565b65ffffffffffff166020830152565b6001600160a01b03851660408201526001600160a01b038316606082015261056087611049565b61172b565b1693843b1561019d576040519063064acaab60e11b8252818061058f6000998a94600484016117de565b038183895af180156105ed576105d4575b5016906001600160e01b0319167fed03d2572564284398470d3f266a693e29ddfff3eba45fc06c5e91013d3213538480a480f35b806105e16105e7926101b8565b80610192565b386105a0565b611475565b604051637046c88d60e01b8152600490fd5b5030331415610504565b3461019d576020610627610621366103e0565b91611e13565b604051908152f35b9291926001600160401b0382116101cb5760405191610658601f8201601f191660200184610221565b82948184528183011161019d578281602093846000960137010152565b9080601f8301121561019d578160206106909335910161062f565b90565b60208060031936011261019d576001600160401b0360043581811161019d573660238201121561019d578060040135918083116101cb578260051b906040908151946106e187850187610221565b855285850191602480948601019436861161019d57848101935b86851061070b5761001b88611144565b843584811161019d5782016060602319823603011261019d57835191610730836101d0565b8782013561073d8161033d565b835260448201358b84015260648201359286841161019d576107678c94938a869536920101610675565b868201528152019401936106fb565b602036600319011261019d5760043561078e8161033d565b6001600160a01b0390337f00000000000000000000000000000000000000000000000000000000000000008316141580610812575b6105f257807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2005b50303314156107c3565b60031960603682011261019d57600435906001600160401b03821161019d5761016090823603011261019d576106276020916044359060243590600401611481565b3461019d57602036600319011261019d576004356001600160c01b0381169081900361019d57604051631aab3f0d60e11b815230600482015260248101919091526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156105ed57610303916000916108f4575b506040519081529081906020820190565b610915915060203d811161091b575b61090d8183610221565b810190611396565b386108e3565b503d610903565b3461019d57602036600319011261019d5761030361096761094161043f565b60006060604051610951816101eb565b8281528260208201528260408201520152611049565b60405190610974826101eb565b805465ffffffffffff80821684528160301c16602084015260601c60408301526001808060a01b03910154166060820152604051918291829190916060608082019365ffffffffffff80825116845260208201511660208401528160018060a01b0391826040820151166040860152015116910152565b608036600319011261019d57600435610a038161033d565b6044356001600160401b03811161019d57610a22903690600401610675565b90606435600281101561019d57337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580610ac5575b80610ab0575b6105f257610a75816110fa565b610a9e576000828193926020839451920190602435905af13d82803e15610a9a573d90f35b3d90fd5b6040516367ce775960e01b8152600490fd5b50610ac0610abc611c13565b1590565b610a68565b5030331415610a62565b60405190610adc82610206565b6005825264181719171960d91b6020830152565b3461019d57600036600319011261019d576103036102ef610acf565b90604060031983011261019d57600435610b258161033d565b91602435906001600160401b03821161019d5761040f91600401610359565b610b4d36610b0c565b90916001600160a01b03337f00000000000000000000000000000000000000000000000000000000000000008216141580610c20575b6105f25780600080516020611fcf8339815191525460501c1691610ba681611eff565b1692836040519360009586947fa35f5cdc5fbabb614b4cd5064ce5543f43dc8fab0e4da41255230eb8aba2531c8680a3813b15610c1c578385610bfa819593829463064acaab60e11b8452600484016117de565b03925af180156105ed57610c0c575080f35b806105e1610c19926101b8565b80f35b8380fd5b5030331415610b83565b3461019d57600036600319011261019d576020600080516020611fcf8339815191525460e01b6040519063ffffffff60e01b168152f35b3461019d57600036600319011261019d57610cb7610c7d610271565b610c85610acf565b90604051928392600f60f81b8452610ca960209360e08587015260e0860190610293565b908482036040860152610293565b90466060840152306080840152600060a084015282820360c08401528060605192838152019160809160005b828110610cf257505050500390f35b835185528695509381019392810192600101610ce3565b3461019d57600036600319011261019d576020600080516020611fcf8339815191525465ffffffffffff60405191831c168152f35b3461019d57600036600319011261019d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f8401121561019d578235916001600160401b03831161019d576020808501948460051b01011161019d57565b3461019d5760a036600319011261019d57610dcf60043561033d565b610dda60243561033d565b6001600160401b0360443581811161019d57610dfa903690600401610d83565b505060643581811161019d57610e14903690600401610d83565b505060843590811161019d57610e2e903690600401610359565b505060405163bc197c8160e01b8152602090f35b3461019d57600036600319011261019d57604051631aab3f0d60e11b8152306004820152600060248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156105ed57610303916000916108f457506040519081529081906020820190565b610eca36610b0c565b600080516020611fcf83398151915254919290916001600160a01b03919060501c8216610f4c57610efa81611eff565b1691823b1561019d57610f2f926000928360405180968195829463064acaab60e11b84526020600485015260248401916117bd565b03925af180156105ed57610f3f57005b806105e161001b926101b8565b60405162dc149f60e41b8152600490fd5b602036600319011261019d57610f7161043f565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316141580610fe5575b6105f257600080516020611fcf83398151915290815469ffffffffffff000000004260201b169160e01c9069ffffffffffffffffffff191617179055600080f35b5030331415610fa4565b3461019d5760a036600319011261019d5761100b60043561033d565b61101660243561033d565b6084356001600160401b03811161019d57611035903690600401610359565b505060405163f23a6e6160e01b8152602090f35b63ffffffff60e01b166000527f439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dda602052604060002090565b600061109781356001600160e01b031916611049565b5460601c337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806110eb575b6105f257818091368280378136915af43d82803e15610a9a573d90f35b506110f4611c13565b156110ce565b6002111561110457565b634e487b7160e01b600052602160045260246000fd5b805182101561112e5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806111d1575b6105f25780519060005b82811061118d57505050565b60008061119a838561111a565b5180516001600160a01b03166020916040838201519101519283519301915af13d6000803e156111cc57600101611181565b3d6000fd5b506111dd610abc611c13565b611177565b9060041161019d5790600490565b909291928360041161019d57831161019d57600401916003190190565b9060241161019d5760100190601490565b9060581161019d5760380190602090565b9060241161019d5760040190602090565b9060381161019d5760240190601490565b90600a1161019d5760040190600690565b9060101161019d57600a0190600690565b9093929384831161019d57841161019d578101920390565b6001600160e01b031990358181169392600481106112a857505050565b60040360031b82901b16169150565b91906101608382031261019d576112cc610251565b926112d68161034e565b8452602081013560208501526040810135916001600160401b039283811161019d5781611304918401610675565b6040860152606082013583811161019d5781611321918401610675565b60608601526080820135608086015260a082013560a086015260c082013560c086015260e082013560e086015261010080830135908601526101208083013584811161019d5782611373918501610675565b90860152610140928383013590811161019d576113909201610675565b90830152565b9081602091031261019d575190565b606080825282516001600160a01b0316908201529193929160409161146b9060208101516080840152838101516113ea610160918260a08701526101c0860190610293565b9061145861140a606085015193605f1994858983030160c08a0152610293565b608085015160e088015260a085015192610100938489015260c08601519061012091828a015260e08701519461014095868b0152870151908901528501518488830301610180890152610293565b92015190848303016101a0850152610293565b9460208201520152565b6040513d6000823e3d90fd5b6001600160a01b039392917f00000000000000000000000000000000000000000000000000000000000000008516330361169f576004948535928361014481013501918760248401930135946114e06114da87866111e2565b9061128b565b926001600160e01b031980851691821561167c576114ff9036906112b7565b94611519600080516020611fcf8339815191525460e01b90565b1616156115315760405163fc2f51c560e01b81528a90fd5b97989697600160e01b810361162b575090602095966115bb61158961157061156b6114da87606460009901350160248782013591016111e2565b611049565b6001810154909a9081906001600160a01b0316986111f0565b995460d081901b6001600160d01b03191660709190911b65ffffffffffff60a01b1617995b8b61161d575b369161062f565b6101408501526115df604051998a9788968794633a871cdd60e01b865285016113a5565b0393165af19081156105ed57610690926000926115fd575b50611f4c565b61161691925060203d811161091b5761090d8183610221565b90386115f7565b348080808f335af1506115b4565b9095939190600160e11b0361166f576116656115bb946000936116606114da8a606460209c01350160248d82013591016111e2565b6117ef565b91999296916115ae565b5050505050505050600190565b9697505050505050506106909394508215611d47573434343486335af150611d47565b604051636b31ba1560e11b8152600490fd5b6bffffffffffffffffffffffff1990358181169392601481106116d357505050565b60140360031b82901b16169150565b3590602081106116f0575090565b6000199060200360031b1b1690565b6001600160d01b0319903581811693926006811061171c57505050565b60060360031b82901b16169150565b81516020830151604084015160309190911b6bffffffffffff0000000000001665ffffffffffff9290921691909117606091821b6bffffffffffffffffffffffff19161782559091015160019190910180546001600160a01b0319166001600160a01b0392909216919091179055565b90602091808252806000848401376000828201840152601f01601f1916010190565b908060209392818452848401376000828201840152601f01601f1916010190565b9160206106909381815201916117bd565b91906117fb828261120d565b611804916116b1565b60601c93611812838361121e565b61181b916116e2565b605883016078820194858360580190611835918388611273565b61183e916116e2565b611848828761122f565b611851916116e2565b61185b8388611240565b611864916116b1565b60601c61187236878761062f565b8051602091820120604080517f3ce406685c1b3551d706d85a68afdaa49ac4e07b451ad9b8ff8b58c3ee9641769381019384526001600160e01b03198e169181019190915260608101949094526001600160a01b0392909216608084015260a080840192909252908252906118e860c082610221565b5190206118f490611a47565b9084019660788801611907918489611273565b9061191192611e13565b61191b828761122f565b6001600160a01b03199161192f91906116e2565b1661193991611f4c565b9660788688010196820360771901956119528382611251565b61195b916116ff565b60d01c926119698183611262565b611972916116ff565b60d01c916119808282611240565b611989916116b1565b60601c916119969161120d565b61199f916116b1565b60601c916119ab610242565b65ffffffffffff909516855265ffffffffffff1660208501526001600160a01b031660408401526001600160a01b031660608301526119e990611049565b906119f39161172b565b6001600160a01b03871691823b1561019d57611a29926000928360405180968195829463064acaab60e11b8452600484016117de565b03925af180156105ed57611a3a5750565b806105e161024f926101b8565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f000000000000000000000000000000000000000000000000000000000000000046141615611ad4575b671901000000000000600052601a52603a526042601820906000603a52565b5060a06040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f0000000000000000000000000000000000000000000000000000000000000000604082015246606082015230608082015220611ab5565b90611b669291611e13565b65ffffffffffff808260a01c16908115600114611bd1575b428360d01c11611bc15742911610611bb4576001600160a01b0316611ba857630b135d3f60e11b90565b6001600160e01b031990565b506001600160e01b031990565b506001600160e01b031992915050565b905080611b7e565b9081602091031261019d5751801515810361019d5790565b6001600160a01b0390911681526040602082018190526106909291019061179b565b611c1d3633611e7b565b611d4257611c366000356001600160e01b031916611049565b6001810154611c55906001600160a01b03165b6001600160a01b031690565b906001600160a01b03821615908115611d06575b8115611cdb575b5015611c7c5750600090565b60206040518092639ea9bd5960e01b82528180611c9d363360048401611bf1565b03915afa9081156105ed57600091611cb3575090565b610690915060203d8111611cd4575b611ccc8183610221565b810190611bd9565b503d611cc2565b54611cf5915065ffffffffffff165b65ffffffffffff1690565b65ffffffffffff4291161138611c70565b905065ffffffffffff611d26611cea835465ffffffffffff9060301c1690565b168015159081611d38575b5090611c69565b9050421138611d31565b600190565b9091611d5336836112b7565b610140928381013590601e198136030182121561019d5701938435946001600160401b03861161019d5760200193853603851361019d57611d9d6115b487611de5986020986111f0565b908301526000611dc7611c49600080516020611fcf8339815191525460501c60018060a01b031690565b9260405196879586948593633a871cdd60e01b8552600485016113a5565b03925af19081156105ed57600091611dfb575090565b610690915060203d811161091b5761090d8183610221565b600080516020611fcf833981519152546040805163199ed7c960e11b8152600481019390935260248301529092602092849260501c6001600160a01b03169183918291611e65916044840191906117bd565b03915afa9081156105ed57600091611dfb575090565b600080516020611fcf8339815191525460408051639ea9bd5960e01b81526001600160a01b039384166004820152602481019190915292602092849260501c169082908190611c9d90604483019061179b565b7f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587460408051338152346020820152a1565b600080516020611fcf83398151915280547fffff0000000000000000000000000000000000000000ffffffffffffffffffff1660509290921b600160501b600160f01b0316919091179055565b8082186001600160a01b031615600114611f67575050600190565b65ffffffffffff60a01b8181169265ffffffffffff60a01b1992831692811691908415611fc5575b81168015611fbe575b848110908518028085189414611fb6575b5081811190821802181790565b925038611fa9565b5080611f98565b93508093611f8f56fe439ffe7df606b78489639bc0b827913bd09e1246fa6802968a5b3694c53e0dd90000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789", - "nonce": "0xc", - "accessList": [] + "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034607357601f61046c38819003918201601f19168301916001600160401b03831184841017607857808492602094604052833981010312607357516001600160a01b03811681036073576080526040516103dd908161008f823960805181818160d10152818161023401526102f00152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600490600436101561001757600080fd5b600092833560e01c90816348aac39214610267575080635c60da1b1461021f5763ea6d13ac1461004657600080fd5b61004f36610352565b94919083519560209661007a86828a81019486888737868201908c820152038a8101845201826103a5565b5190209483958551917fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076875261600989527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f97602192605f60212060358601523060581b855260ff855380601586015260558520993415948b3b156101fe57505050506001916101f85785388180348c5af1156101ed57505b818652846060521561016b575b505091516001600160a01b0390931683525050f35b8082859493859483378101838152039082875af1903d156101e7573d9067ffffffffffffffff82116101d3578351916101ad601f8201601f19168801846103a5565b8252853d92013e5b156101c35738808080610156565b5163487e630960e11b8152600490fd5b634e487b7160e01b81526041600452602490fd5b506101b5565b63b12d13eb8652601cfd5b50610149565b91939a5091935034f59687156102145750610149565b63301164258652601cfd5b838234610263578160031936011261026357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b848334610263578260209361029d8361027f36610352565b90808a879498019788378201908982015203878101845201826103a5565b51902081517fcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f36060527f5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076835261600985527f0000000000000000000000000000000000000000000000000000000000000000601e5268603d3d8160223d3973600a52605f6021209083528360605260ff84536035523060601b6001526015526055822091603552519060018060a01b03168152f35b9060406003198301126103a05760043567ffffffffffffffff928382116103a057806023830112156103a05781600401359384116103a057602484830101116103a057602401919060243590565b600080fd5b90601f8019910116810190811067ffffffffffffffff8211176103c757604052565b634e487b7160e01b600052604160045260246000fd000000000000000000000000dc4cfd181a721a047ee48a55393b25258b27ecb0", + "nonce": "0x47", + "chainId": "0xaa36a7" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x74567087b677cd2647da0b9a4fc91a3bf13d1f0e4fd2ff03b1c59d1543f3db6c", + "hash": "0xa7c6b6633c4b26acb79ec12954dac829e9b4c4d2169964f2623c2c814f27ff71", "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3", - "function": null, - "arguments": null, + "contractName": "FactoryStaker", + "contractAddress": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "function": "approveFactory(address,bool)", + "arguments": [ + "0x8134d811E37C7c3C88e6fBA5322808c6871D58A5", + "true" + ], "transaction": { - "type": "0x02", "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", - "to": "0x5de4839a76cf55d0c90e2061ef4386d962e15ae3", - "gas": "0x10945", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "gas": "0x108d1", "value": "0x0", - "data": "0xbb30a9740000000000000000000000000da6a956b9488ed4dd761e59f52fdc6c8068e6b50000000000000000000000000000000000000000000000000000000000000001", - "nonce": "0xd", - "accessList": [] + "input": "0x6e7dbabb0000000000000000000000008134d811e37c7c3c88e6fba5322808c6871d58a50000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x48", + "chainId": "0xaa36a7" }, "additionalContracts": [], "isFixedGasLimit": false @@ -88,75 +67,58 @@ ], "receipts": [ { - "transactionHash": "0xed1ae98e017b385eeea04d65b6b259f183da0a95c6b068944fa376c39d3b7c05", - "transactionIndex": "0x9", - "blockHash": "0x8d370586a3ffd220a407c402847fe251ad7242ccdd6db61cf83eb4e0dcdcc035", - "blockNumber": "0x45bf79", - "from": "0x9775137314fE595c943712B0b336327dfa80aE8A", - "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", - "cumulativeGasUsed": "0x311470", - "gasUsed": "0x1d3c2a", - "contractAddress": null, - "logs": [], "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "effectiveGasPrice": "0x13ce89c52" - }, - { - "transactionHash": "0x51fdbdb5c359eec4cb7fe5587022757aa30168e5fa6abbb8a0f73f0c9a25b3fc", - "transactionIndex": "0xa", - "blockHash": "0x8d370586a3ffd220a407c402847fe251ad7242ccdd6db61cf83eb4e0dcdcc035", - "blockNumber": "0x45bf79", - "from": "0x9775137314fE595c943712B0b336327dfa80aE8A", - "to": "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3", - "cumulativeGasUsed": "0x31c9d2", - "gasUsed": "0xb562", - "contractAddress": null, + "cumulativeGasUsed": "0xac75b9", "logs": [], - "status": "0x1", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0x13ce89c52" + "transactionHash": "0x952bfd07525fd91a68340bf2e3cac2f78b7ae26109c0bdfe787953c56e51c6e8", + "transactionIndex": "0x42", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0x461625", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0xdc4cfd181a721a047ee48a55393b25258b27ecb0" }, { - "transactionHash": "0x3f4ef14181d12218de8a8b432284b32592b8604eee3e8cf648737fcd0899641a", - "transactionIndex": "0xb", - "blockHash": "0x8d370586a3ffd220a407c402847fe251ad7242ccdd6db61cf83eb4e0dcdcc035", - "blockNumber": "0x45bf79", - "from": "0x9775137314fE595c943712B0b336327dfa80aE8A", - "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", - "cumulativeGasUsed": "0x4dfe15", - "gasUsed": "0x1c3443", - "contractAddress": null, - "logs": [], "status": "0x1", + "cumulativeGasUsed": "0xb090ec", + "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0x13ce89c52" + "transactionHash": "0x244a50f193b593c6083a1b45b7a32ff092076f421612d413f435b89660b4bf29", + "transactionIndex": "0x43", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0x41b33", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": "0x8134d811e37c7c3c88e6fba5322808c6871d58a5" }, { - "transactionHash": "0x74567087b677cd2647da0b9a4fc91a3bf13d1f0e4fd2ff03b1c59d1543f3db6c", - "transactionIndex": "0xc", - "blockHash": "0x8d370586a3ffd220a407c402847fe251ad7242ccdd6db61cf83eb4e0dcdcc035", - "blockNumber": "0x45bf79", - "from": "0x9775137314fE595c943712B0b336327dfa80aE8A", - "to": "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3", - "cumulativeGasUsed": "0x4eb377", - "gasUsed": "0xb562", - "contractAddress": null, - "logs": [], "status": "0x1", + "cumulativeGasUsed": "0xb145ff", + "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0x13ce89c52" + "transactionHash": "0xa7c6b6633c4b26acb79ec12954dac829e9b4c4d2169964f2623c2c814f27ff71", + "transactionIndex": "0x44", + "blockHash": "0xe3a090ce8595f1d8a8b4614da7e626d4539fd884046c2478eda58fe45d47bc20", + "blockNumber": "0x58db6a", + "gasUsed": "0xb513", + "effectiveGasPrice": "0x74362dc8a", + "from": "0x9775137314fe595c943712b0b336327dfa80ae8a", + "to": "0xd703aae79538628d27099b8c4f621be4ccd142d5", + "contractAddress": null } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1698379731, + "timestamp": 1714676485, "chain": 11155111, - "multi": false, - "commit": "e1104e2" + "commit": "8f7fd99" } \ No newline at end of file diff --git a/script/DeployKernel.s.sol b/script/DeployKernel.s.sol new file mode 100644 index 00000000..1329acf2 --- /dev/null +++ b/script/DeployKernel.s.sol @@ -0,0 +1,29 @@ +pragma solidity ^0.8.0; + +import "forge-std/Script.sol"; +import "forge-std/console.sol"; + +import "src/Kernel.sol"; + +import "src/factory/KernelFactory.sol"; +import "src/factory/FactoryStaker.sol"; + +contract DeployValidators is Script { + address constant ENTRYPOINT_0_7_ADDR = 0x0000000071727De22E5E9d8BAf0edAc6f37da032; + address constant DEPLOYER = 0x9775137314fE595c943712B0b336327dfa80aE8A; + address constant EXPECTED_STAKER = 0xd703aaE79538628d27099B8c4f621bE4CCd142d5; + + function run() external { + vm.startBroadcast(DEPLOYER); + Kernel kernel = new Kernel{salt: 0}(IEntryPoint(ENTRYPOINT_0_7_ADDR)); + console.log("Kernel : ", address(kernel)); + KernelFactory factory = new KernelFactory{salt: 0}(address(kernel)); + console.log("KernelFactory : ", address(factory)); + FactoryStaker staker = FactoryStaker(EXPECTED_STAKER); + if (!staker.approved(factory)) { + staker.approveFactory(factory, true); + console.log("Approved"); + } + vm.stopBroadcast(); + } +} diff --git a/src/Kernel.sol b/src/Kernel.sol index 46e6673c..f516dc63 100644 --- a/src/Kernel.sol +++ b/src/Kernel.sol @@ -83,7 +83,7 @@ contract Kernel is IAccount, IAccountExecute, IERC7579Account, ValidationManager if (validator.isModuleType(4)) { bytes memory ret = IHook(address(validator)).preCheck(msg.sender, msg.value, msg.data); _; - IHook(address(validator)).postCheck(ret); // TODO don't support try catch hook here + IHook(address(validator)).postCheck(ret); } else { revert InvalidCaller(); } @@ -119,7 +119,7 @@ contract Kernel is IAccount, IAccountExecute, IERC7579Account, ValidationManager function _domainNameAndVersion() internal pure override returns (string memory name, string memory version) { name = "Kernel"; - version = "0.3.1-beta"; + version = "0.3.1"; } receive() external payable { diff --git a/src/factory/AdminLessERC1967Factory.sol b/src/factory/AdminLessERC1967Factory.sol deleted file mode 100644 index 5d3fa3c9..00000000 --- a/src/factory/AdminLessERC1967Factory.sol +++ /dev/null @@ -1,287 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.4; - -/// @notice Factory for deploying and managing ERC1967 proxy contracts. -/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ERC1967Factory.sol) -/// @author jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy) -/// @author taeklee (https://github.com/zerodevapp/kernel) -contract AdminLessERC1967Factory { - /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ - /* CUSTOM ERRORS */ - /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ - - /// @dev The proxy deployment failed. - error DeploymentFailed(); - - /// @dev The salt does not start with the caller. - error SaltDoesNotStartWithCaller(); - - /// @dev `bytes4(keccak256(bytes("DeploymentFailed()")))`. - uint256 internal constant _DEPLOYMENT_FAILED_ERROR_SELECTOR = 0x30116425; - - /// @dev `bytes4(keccak256(bytes("SaltDoesNotStartWithCaller()")))`. - uint256 internal constant _SALT_DOES_NOT_START_WITH_CALLER_ERROR_SELECTOR = 0x2f634836; - - /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ - /* EVENTS */ - /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ - - /// @dev A proxy has been deployed. - event Deployed(address indexed proxy, address indexed implementation); - - /// @dev `keccak256(bytes("Deployed(address,address)"))`. - uint256 internal constant _DEPLOYED_EVENT_SIGNATURE = - 0x09e48df7857bd0c1e0d31bb8a85d42cf1874817895f171c917f6ee2cea73ec20; - - /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ - /* STORAGE */ - /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ - - /// @dev The ERC-1967 storage slot for the implementation in the proxy. - /// `uint256(keccak256("eip1967.proxy.implementation")) - 1`. - uint256 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - - /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ - /* DEPLOY FUNCTIONS */ - /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ - /// @dev Deploys a proxy for `implementation`, with `salt`, - /// and returns its deterministic address. - /// The value passed into this function will be forwarded to the proxy. - /// Then, calls the proxy with abi encoded `data`. - function deployDeterministicAndCall(address implementation, bytes32 salt, bytes calldata data) - internal - returns (address proxy) - { - /// @solidity memory-safe-assembly - assembly { - // If the salt does not start with the zero address or the caller. - if iszero(or(iszero(shr(96, salt)), eq(caller(), shr(96, salt)))) { - mstore(0x00, _SALT_DOES_NOT_START_WITH_CALLER_ERROR_SELECTOR) - revert(0x1c, 0x04) - } - } - proxy = _deploy(implementation, salt, data); - } - - /// @dev Deploys the proxy, with optionality to deploy deterministically with a `salt`. - function _deploy(address implementation, bytes32 salt, bytes calldata data) internal returns (address proxy) { - bytes memory m = _initCode(); - /// @solidity memory-safe-assembly - assembly { - let hash := keccak256(add(m, 0x13), 0x89) - // Compute and store the bytecode hash. - mstore8(0x00, 0xff) // Write the prefix. - mstore(0x35, hash) - mstore(0x01, shl(96, address())) - mstore(0x15, salt) - proxy := keccak256(0x00, 0x55) - // Restore the part of the free memory pointer that has been overwritten. - mstore(0x35, 0) - if iszero(extcodesize(proxy)) { - proxy := create2(0, add(m, 0x13), 0x89, salt) - if iszero(proxy) { - // Revert if the creation fails. - mstore(0x00, _DEPLOYMENT_FAILED_ERROR_SELECTOR) - revert(0x1c, 0x04) - } - // Set up the calldata to set the implementation of the proxy. - mstore(m, implementation) - mstore(add(m, 0x20), _IMPLEMENTATION_SLOT) - calldatacopy(add(m, 0x40), data.offset, data.length) - // Try setting the implementation on the proxy and revert upon failure. - if iszero(call(gas(), proxy, callvalue(), m, add(0x40, data.length), 0x00, 0x00)) { - // Revert with the `DeploymentFailed` selector if there is no error returndata. - if iszero(returndatasize()) { - mstore(0x00, _DEPLOYMENT_FAILED_ERROR_SELECTOR) - revert(0x1c, 0x04) - } - // Otherwise, bubble up the returned error. - returndatacopy(0x00, 0x00, returndatasize()) - revert(0x00, returndatasize()) - } - - // Emit the {Deployed} event. - log3(0, 0, _DEPLOYED_EVENT_SIGNATURE, proxy, implementation) - } - } - } - - /// @dev Returns the address of the proxy deployed with `salt`. - function predictDeterministicAddress(bytes32 salt) public view returns (address predicted) { - bytes32 hash = initCodeHash(); - /// @solidity memory-safe-assembly - assembly { - // Compute and store the bytecode hash. - mstore8(0x00, 0xff) // Write the prefix. - mstore(0x35, hash) - mstore(0x01, shl(96, address())) - mstore(0x15, salt) - predicted := keccak256(0x00, 0x55) - // Restore the part of the free memory pointer that has been overwritten. - mstore(0x35, 0) - } - } - - /// @dev Returns the initialization code hash of the proxy. - /// Used for mining vanity addresses with create2crunch. - function initCodeHash() public view returns (bytes32 result) { - bytes memory m = _initCode(); - /// @solidity memory-safe-assembly - assembly { - result := keccak256(add(m, 0x13), 0x89) - } - } - - /// @dev Returns the initialization code of a proxy created via this factory. - function _initCode() internal view returns (bytes memory m) { - /// @solidity memory-safe-assembly - assembly { - /** - * -------------------------------------------------------------------------------------+ - * CREATION (9 bytes) | - * -------------------------------------------------------------------------------------| - * Opcode | Mnemonic | Stack | Memory | - * -------------------------------------------------------------------------------------| - * 60 runSize | PUSH1 runSize | r | | - * 3d | RETURNDATASIZE | 0 r | | - * 81 | DUP2 | r 0 r | | - * 60 offset | PUSH1 offset | o r 0 r | | - * 3d | RETURNDATASIZE | 0 o r 0 r | | - * 39 | CODECOPY | 0 r | [0..runSize): runtime code | - * f3 | RETURN | | [0..runSize): runtime code | - * -------------------------------------------------------------------------------------| - * RUNTIME (127 bytes) | - * -------------------------------------------------------------------------------------| - * Opcode | Mnemonic | Stack | Memory | - * -------------------------------------------------------------------------------------| - * | - * ::: keep some values in stack :::::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 3d | RETURNDATASIZE | 0 | | - * 3d | RETURNDATASIZE | 0 0 | | - * | - * ::: check if caller is factory ::::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 33 | CALLER | c 0 0 | | - * 73 factory | PUSH20 factory | f c 0 0 | | - * 14 | EQ | isf 0 0 | | - * 60 0x57 | PUSH1 0x57 | dest isf 0 0 | | - * 57 | JUMPI | 0 0 | | - * | - * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 36 | CALLDATASIZE | cds 0 0 | | - * 3d | RETURNDATASIZE | 0 cds 0 0 | | - * 3d | RETURNDATASIZE | 0 0 cds 0 0 | | - * 37 | CALLDATACOPY | 0 0 | [0..calldatasize): calldata | - * | - * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::::::: | - * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata | - * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata | - * 7f slot | PUSH32 slot | s 0 cds 0 0 | [0..calldatasize): calldata | - * 54 | SLOAD | i cds 0 0 | [0..calldatasize): calldata | - * 5a | GAS | g i cds 0 0 | [0..calldatasize): calldata | - * f4 | DELEGATECALL | succ | [0..calldatasize): calldata | - * | - * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata | - * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata | - * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata | - * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata | - * | - * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::::::: | - * 60 0x52 | PUSH1 0x52 | dest succ | [0..returndatasize): returndata | - * 57 | JUMPI | | [0..returndatasize): returndata | - * | - * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata | - * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata | - * fd | REVERT | | [0..returndatasize): returndata | - * | - * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::::::: | - * 5b | JUMPDEST | | [0..returndatasize): returndata | - * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata | - * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata | - * f3 | RETURN | | [0..returndatasize): returndata | - * | - * ::: set new implementation (caller is factory) ::::::::::::::::::::::::::::::::::::: | - * 5b | JUMPDEST | 0 0 | | - * 3d | RETURNDATASIZE | 0 0 0 | | - * 35 | CALLDATALOAD | impl 0 0 | | - * 06 0x20 | PUSH1 0x20 | w impl 0 0 | | - * 35 | CALLDATALOAD | slot impl 0 0 | | - * 55 | SSTORE | 0 0 | | - * | - * ::: no extra calldata, return :::::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 60 0x40 | PUSH1 0x40 | 2w 0 0 | | - * 80 | DUP1 | 2w 2w 0 0 | | - * 36 | CALLDATASIZE | cds 2w 2w 0 0 | | - * 11 | GT | gt 2w 0 0 | | - * 15 | ISZERO | lte 2w 0 0 | | - * 60 0x52 | PUSH1 0x52 | dest lte 2w 0 0 | | - * 57 | JUMPI | 2w 0 0 | | - * | - * ::: copy extra calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: | - * 36 | CALLDATASIZE | cds 2w 0 0 | | - * 03 | SUB | t 0 0 | | - * 80 | DUP1 | t t 0 0 | | - * 60 0x40 | PUSH1 0x40 | 2w t t 0 0 | | - * 3d | RETURNDATASIZE | 0 2w t t 0 0 | | - * 37 | CALLDATACOPY | t 0 0 | [0..t): extra calldata | - * | - * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::::::: | - * 3d | RETURNDATASIZE | 0 t 0 0 | [0..t): extra calldata | - * 3d | RETURNDATASIZE | 0 0 t 0 0 | [0..t): extra calldata | - * 35 | CALLDATALOAD | i t 0 0 | [0..t): extra calldata | - * 5a | GAS | g i t 0 0 | [0..t): extra calldata | - * f4 | DELEGATECALL | succ | [0..t): extra calldata | - * | - * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 3d | RETURNDATASIZE | rds succ | [0..t): extra calldata | - * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..t): extra calldata | - * 80 | DUP1 | 0 0 rds succ | [0..t): extra calldata | - * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata | - * | - * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::::::: | - * 60 0x52 | PUSH1 0x52 | dest succ | [0..returndatasize): returndata | - * 57 | JUMPI | | [0..returndatasize): returndata | - * | - * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::::::: | - * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata | - * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata | - * fd | REVERT | | [0..returndatasize): returndata | - * -------------------------------------------------------------------------------------+ - */ - m := mload(0x40) - // forgefmt: disable-start - switch shr(112, address()) - case 0 { - // If the factory's address has six or more leading zero bytes. - mstore(add(m, 0x75), 0x604c573d6000fd) // 7 - mstore(add(m, 0x6e), 0x3d3560203555604080361115604c5736038060403d373d3d355af43d6000803e) // 32 - mstore(add(m, 0x4e), 0x3735a920a3ca505d382bbc545af43d6000803e604c573d6000fd5b3d6000f35b) // 32 - mstore(add(m, 0x2e), 0x14605157363d3d37363d7f360894a13ba1a3210667c828492db98dca3e2076cc) // 32 - mstore(add(m, 0x0e), address()) // 14 - mstore(m, 0x60793d8160093d39f33d3d336d) // 9 + 4 - } - default { - mstore(add(m, 0x7b), 0x6052573d6000fd) // 7 - mstore(add(m, 0x74), 0x3d356020355560408036111560525736038060403d373d3d355af43d6000803e) // 32 - mstore(add(m, 0x54), 0x3735a920a3ca505d382bbc545af43d6000803e6052573d6000fd5b3d6000f35b) // 32 - mstore(add(m, 0x34), 0x14605757363d3d37363d7f360894a13ba1a3210667c828492db98dca3e2076cc) // 32 - mstore(add(m, 0x14), address()) // 20 - mstore(m, 0x607f3d8160093d39f33d3d3373) // 9 + 4 - } - // forgefmt: disable-end - } - } - - /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ - /* HELPERS */ - /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ - - /// @dev Helper function to return an empty bytes calldata. - function _emptyData() internal pure returns (bytes calldata data) { - /// @solidity memory-safe-assembly - assembly { - data.length := 0 - } - } -} diff --git a/src/sdk/KernelTestBase.sol b/src/sdk/KernelTestBase.sol index cd2ba2a4..32fc2ad4 100644 --- a/src/sdk/KernelTestBase.sol +++ b/src/sdk/KernelTestBase.sol @@ -200,9 +200,8 @@ abstract contract KernelTestBase is Test { ) ); - bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1-beta", address(kernel)), hash) - ); + bytes32 digest = + keccak256(abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), hash)); return digest; } @@ -947,7 +946,7 @@ abstract contract KernelTestBase is Test { function testSignatureRoot(bytes32 hash) external whenInitialized { bytes32 wrappedHash = keccak256(abi.encode(keccak256("Kernel(bytes32 hash)"), hash)); bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1-beta", address(kernel)), wrappedHash) + abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), wrappedHash) ); bytes memory sig = _rootSignDigest(digest, true); sig = abi.encodePacked(hex"00", sig); @@ -975,7 +974,7 @@ abstract contract KernelTestBase is Test { bytes32 wrappedHash = keccak256(abi.encode(keccak256("Kernel(bytes32 hash)"), hash)); bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1-beta", address(kernel)), wrappedHash) + abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), wrappedHash) ); bytes memory sig = _validatorSignDigest(digest, true); sig = abi.encodePacked(hex"01", address(enabledValidator), sig); @@ -1002,7 +1001,7 @@ abstract contract KernelTestBase is Test { ); bytes32 wrappedHash = keccak256(abi.encode(keccak256("Kernel(bytes32 hash)"), hash)); bytes32 digest = keccak256( - abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1-beta", address(kernel)), wrappedHash) + abi.encodePacked("\x19\x01", _buildDomainSeparator("Kernel", "0.3.1", address(kernel)), wrappedHash) ); bytes memory sig = _permissionSignDigest(digest, true); sig = abi.encodePacked(hex"02", PermissionId.unwrap(enabledPermission), hex"ff", sig);